lmarbles-1.0.8/0000777000175000017500000000000011271400536010325 500000000000000lmarbles-1.0.8/src/0000777000175000017500000000000011271400536011114 500000000000000lmarbles-1.0.8/src/gfx/0000777000175000017500000000000011271400537011701 500000000000000lmarbles-1.0.8/src/gfx/wood/0000777000175000017500000000000011271400537012651 500000000000000lmarbles-1.0.8/src/gfx/wood/background.bmp0000644000175000017500000063646607206511223015427 00000000000000BM6=6(9  xf>)FI9[6Y7S' 2|6 #[/{BN%c*v#d:vp4mF&rB HU*z'e2g >"F(K"j:I[>.on.S6:E.NIg$*~G2\ *jB6VYRd;{HF>6B.~ i%#2NE:;e>j"p ^G"w>I\[J7|B5L*&~2\>>: 1N21r&ncBS:R#I.d+\$TOb{6:62v > 6 25Z( .2\8e D>zg >G.bv BFS&v .zB&|&Do *dd FL%k(f"r*3{<nb8fv> N 6V JB J6R : F[.[(QTeS BR$v2MJ_ .;nGVTfB *v\R r.>62N&z B>N:J 6 *q.]VB> :h&r/nf' 2:{Z*[*P-X\|^QrND(;r>lN:&jN2 .v:FJ20NNqqYYY++____qqqY+YqqY+qYqYYYqqY+YqqhNۄ>N>>$u>>UBe٭>>>>>o>N lo2Bkklo~][Wβqqq$Nq_qq__@YqYY++YqqqYqqqqqY+Y+qq$>>>$YNU@0@@+q+Y$$$Yq+qe$$Y<Y<([[[[\YәʇeӇ<$Ә$әʘ$$$$YNNN$NoN$$Nu٭u>NY<>>u([l~l]]ssjj=]o>o歭>>UuuU ۤŠђ$<>>> l>>gol54oo ([l&&RYYKU++Y$$+qq+++___+@+YqqYY++qq+Yqqqqqq$U U$(!+++$NYYqڙeYqqYYYqYʙeuKeY$Y<$({(dwN<Ә$K$$$$$Nʙ$$\$懙Y$YY$>N>>uu>N<ۙ<\<>4(d]l~~l]l~l[j]]=]Βۭ(l(llu4<$h<>>>o4 u(4oR44l44lll(]55~oqquUKU+Y♙$++++q@++@++__+++Yqqq++Y+q0qqY0q@@+Y++@+UUU >NU uY++YYY+YqYYqee$\☘$$ʘ>{d(h\>>>>><<>>NNNu<$h$$h$ ll![[[44k]]{s[3=]lRol(4 (l o>u>>٭o l(lu44oooolk44 o4]kR2+Y! 4o<<<<>uu>$NN<>h>U>$qqq+$q$$YYYYYq\Y⇇$$$U] 2og>Nي$$<>o>B><愄N$$\<ъNN<><u>ۄ>>ۄ<$<<>o(((((d]u( ul~~l]l]34]]]((]u >o>>o lkŚkllkk2Rಲ~ll[]kkl4@@$uuuUNuل$+qqq$0q+YY+YqqqYY@qqqqqqqq+q(u><>l >(N$qq++YڙqʙʘY+Y$$$\ʘ$Ә$$YY !(lgg2>>$K\Y$N$YN$\\Ӈg44o>R4(u$NUuْ>>u4kuۇ>>> uluuu(lol4~]]]]2~{Ƣ%]]j==](loo o2Rk[]l(ޚ[[Ԃ]Ϛ~o]]][(l++N>(>>ۤ<>ۄ<NhR(hY++qYʥeYYY+YYYYYY$$$$$$$ ][=44R2>><<ooR懇$\$<>BuuےNNBu<>N<>u4޲2lۇe<>lu4 u(l 4ޚk2R~~]{F?tt=loo~~l]lR4l][[Ԛ]]5ϴϲ4]]~4R4]lo00qq<uul٭>uۭhY\$ʙʘ☘Y+Y$ʥYY+YYq+YqY+q+Y<>\okkB\qqq+qYY$$$$N$YYYYʘYN<<ۄ>ulllllR>4(lo4uuهB<ۄoN>٭N>>>>uu42>шu>$<ӭ٭>>43Sk2o444]= =[]4o]kll4]]~=s]Aj]~4l]d]l2eqq$luR><<>>>>u(uoh$$N$<YʙNNN$\YYYʙʘʙY$$$<$YY\\( 3klo<YY\$$ʘ$$<يu<Nl4ll~o>o444l>NuuN<N$<<>>uuo22׫5NhoNN>>kl~~~]]]s=F%{]s]Ԗ[s]]j]s=jS=~4]]llYY$$N>>4 N$$N2Pgooo>hےN<$\<>NN$Nh$NN>>><\$>N<<<>>>>ےoooBuoh<ے>44lk[l~~= %%F 3=j=ss]ss]s[]l]Y$Nuull>NN<$N>u(k((N$$$N$NN$YʙNN<$ӘYYәN$(ŊYYY$N$ʘӘ$$$\\YN<\eN$+Nl=l>N$$$$$$$$N<<o4ll44 ooے 4R4>u<N<$hNu<<歭٭>Y<$$$$<ے>o542g45kl]]lRRR ===s==j===]s4!!KeUkkd!$<$<> 4(kل$$$ӘN$\Ә$\Y$$<<$\$NN$$$<N<\\U!eʘY$$$Ә$<ʘNʇ$$$$$$N<ه$$uooouْ>ْ>>oBY>><<>>o>>oo4ײuB׈2gou5(l4l~l~4o~] t==ݶF1FF===sssj/=wluu(Udd!k($$$<>lk(4 >>NNN>>>N\$Ӈ$<o>N$Ә\N<\\hۤ> (dloo~]=]l][{(ۘNqY$$$<$$$$eN>歄$<ۇ4ul4 o>4l(l uB<$$<愇‡NNN<oouuuuBBooo׫kkl44Ruk(u4o4~=t a=s= t 11 F ==j~jsj]sSk >ۙU٭٭>$Ә<>([d>>>>>>uuuuu(4>>懇٫dll >> ((!( >>lll l l l((d[[3D]4ll(l2 愄NNN$\\Y\$<$ʘNNNNۙ$Y$N$NN$Nә$< [1s>NqY$$$$$<$$$Nۇ<$\ӄلۇugۇ>4 >>4o42hhhh4ouۤ>Buل>>N’’2oBuo2oo422BkkuBg2k54B׫uu(k((ll=ttaM 1XFF ,s=/,hےNY+YYYUKK$>!dl> >N>ld((([wku٭Bْ٭w3{{{[[3{D3{3[[{D333333d4N> >>44 >\>o<<$YY$eee<$$<$Y$♙$$<$\ے u2<>>oRo<>NuN<\$N d>>>Ӥ d[{[du4(k4 uB4o4I3[{̶3yy3  F 33{[!uN$>>4d[(>N\ӄ<<<<>NYYYqY$☘$$Y> R4هY\Y\$Y$ۄNNh<<٭\hoooooۤhoo24k4>>h\<>ohے<huo<ӒBuk4oBBײ4oo52uBo撒hӒo’uB22oBBuuu l!( 4l[=[[[uooo>o4 2>4RR[33333[[[[ s=( N$$Nl[[$Ә>NY\\h\<NNY$$Yq$>> j<$$<<\>h\\hNolkklŲul44l442ggoluْoo>ooh\h4>44oBuhhoBu]![dd(l(d[(lRoo>o<ے>hNd[33l$$$$YY\hӘY$NN$NY$$$ۭlj]B<‡u$\\\Bohouuo>l>ol4oohooۤ>>o42>ۤhhBчh\\B׊2ooogooBB撤2o22o4Roײ44ooooo4ײo2hPBˆBooP4 4444~l~SyAg~js=s/s=sj/]==a=sYqqq+_ܓ+Y+q$YY$$e>N$$ dk( >> uoo> o2huBےlogPPےoRll](l((4RoR4l][[[]l([] oo h<l[ҳ 3ŭ$\Y<$YYYYӘYYYYY$$$N$Y\>>u4o<$hےoooduu o4uu44ku2og2Ro>44o44oou(uo2o>ooۤ4o>o>Nۤۇ­u\<ےoےo2ˆo\o42ol54ooo4oBu>>>oB4>>4׈u4>o4gggg~ςsSֻj=sjs=sqq@qqqq++ʇYYY$ ! $ә<$ >>o懒<ۇѫd<>o42g44(I[[d4 l(l4>>>><<YYYYYqYYYN<> uu>ۤ$Buuuul444(lْukl2<4kk4o244lಒےB4ooogoB(ْ>Bْْ24oB>撒u懒gh2’

45k44ok4oo2ooшok2o2o4oog22gokl544444RR4RRWԖAjsjjssjMaY+q0qYq+YYYYY\Y$uKۙ 4<<>NUNN<$<>uuduBdku 4 %Fj~4og4<$愒>>> o>ul><BB44>o4lo>>o4l4gR4RoR44ooohB4>>>2oulגol4ogo>44oooْN<<يBuBghh<2Bo2gou4o4o2oooB42o4Bol44l4o44o l(oooR555[4k]k&Aԕjj&sMMqqYY+qᓎqᎎYYYYYYʇN>☘$euBBkduuu!!>ooو44o>>Rlu44o 444ooBْoo444o4o2oohӤoPg22RRoo2ooBoolklےou٤>o4׈oh<<$$N<>NNBuuu4oog44oo<\\ >ے2> o>2(4ldkloo>oB4o4B4>((4>\4uo4uoo2oo44k>>Bluuu2o<uk4B٤$<<$<<ےoBgBk5Bhou5loo44l44l4244ulkk5luk(kl44]dl~k4ld] o45lk]A]SS,]/&/aqqq@q+qqY+u(NNNYYqYY\$<<\Y<$$$$$ʄeN$YY$$Ә$N>愄2oh>>g\h\<ۤod3j224R4oooBBBgh24u(k~oRk(kk4uogo2oB4loo>h4>lllulkoooook4454ْ2o>>o>ۤ>o224oouluuu>椤>gguBђBko4ooٲ44o454oll5[Sz[k]]l4l~4]4~~]l]]kA]~5R25Sz]~S]]/=a++qqqq++qqqʘY\\披KNeq+YYYYY\Y\qʙYqYqqYo>hhP<<2]3 zs2442g2Ѥ2BBo2o4kl44o44R44ײ4445BBooo4Bo44oۤ٤o2>4o2ooo2go44ul2>4uBoo>>>2

>$\<\N<ۇN٤P4[3F`~(R2g2555llR2o oooo4ײ444ulײB4B224o>ool4oے>goo42o4ggooghhhh<ۤ>><ے>>(u٤ۤo¤hgolulkk5o>o42RRl(k]lRol]klk~Ik]]~k~~RlW5WW7&ςϴ]&β]9/9aqYq+@0++Yq$eeeBuu$qq+$YYʘYYY$$ʘYY\\☘YYYYY++YY\YY\<$N\YY\<55PPgl㢳(>N<\Ӈ<<g2ٲloooײ44oo4oo4l(kku o44ogouoR42uu4ogo4ukB>>>ugPog‡¤<2o45kkul5k24l]k]]]lkl~k]]k[[]l~]~oR55AWRR~~]j~]R3=M@+qʘ++qqqʥ$egeB244]33ll\Yۇ<$<4ײoo444oے4u(k4l4oo4kk4o٤>gےou > uu>Bgou2go>2lo5k(ll4~]R~]kϚl]]]~~~]j]~]9A]~~~~~4gh~lll4&/+qʙ@++♥YY$<чhhe$YqYYY+eUe$qqʘ☙Y+YYY\YYYqY!dl4~77]=S[d><٭愄uhho44l4goo>oBo<>oo>odkْgے>42Ph2>okIޫoo442>ٲgo42~~4~~l]]RR]RRkR]]AWԚ]jR4]Ϛ]~R2ol42R=q☘0@ᨨYYY+YYYgPhqqYY$qqYY+YYYYYYqYY+YYqYq+qYYYYYY+Y>ud( o7&{d l(uuuuل$N<ۤN$<$BB>=]/tta3g22o22o2B5B45lo~oh4looo2Ro44Rou4>2ooog222ok24ku4(4o2>g>oӤo>Pےo٫u><>>N>><ђ\\P2loooR~~l~Ϛ]kR~2Rllk]]ԴWA]ϴ4~]]]lRWBk,YY+qYYᎨYʇW\([A9W~~33(l(ۤѭ¤\<>>هN\$$$h\o(l4>ooo44245og>>גӤۤPh244hے<>oBoh懤B(uۤNN\Y$˜YYNNN><\\<<\Ӥ̶MAI]RRRR~΃ރh2o74R4lk4gR5RRogoR~k4oBBB5B2gBϫ2Rlullu44ooh2\B2oB¤hBdB2>>oo2ukkku4Buْ<>>o e>>>[yF=a]]~j~R~RWWдl]j]]RRR[[l5]l]k5BBBl52oooo4kB׫dkײu2>>>o>4ooud<Ӥ>2>ۈ44ooB5k445k] ldk](](]l][ϲRRl~]]]~R~]{]2gPς]]]Ϛ]]=j]jj]Ԗ++Y+Yqʙ0+qq+qqqYUUe<YqYYYY\q+qYYYYY+YYY++Y++YYYY⇄$$<\YY$Y\ޖ]]s3Fpd( >>uooBo2>2kkgP2Bْ22و4u٤>> u4l44(lloRR o4ll~RR~4ޖl~4R~l~RR[[~~kkk7΃5Ж[]k&&/sԚqq+++0q+qqYYq+qqᓓYYee\„+YᎎYYYYYqYYYYYʙq+YqYYYYYqqYYY$ӘӇ<$$$$$$$$\k[F㢶[[d4>ےPP$PP>>>uu>>>o2oB椤2BoP2Ѥ2gg¤>>>>ol5u>k42ogo2o>444g> ~4RRRR5kRA]]]~]][Ԛk]k]ll5&WW2R]R999Y++Y++q++++++YqqYYqYeee<\YRl3[=̢F2g4وol4oou4B2\PP~ݱ ]ԴR2]33Ԃ]2P2(]=]]ARRςSzzSSs[]]]&24lϴRgPg2­ououu<<$hg4ْ4oْ224444lu44o4ޖ[޲4A]~~~lSk]A]]ޚW5ಲlRRR~R2~~ಃ&=Ԃqq+qqq+++qqqYYqqYYYᓨqYᘇee<\Y+Y++q+qqqqY$$Ә$$$$$$YY+eeeY\$Y$<$\ee<$ol hPg2~rt,W~[]RR~][[49ނA33z{Sz3[]j4l4Ro2goۤ<懤uهh‡hhhч<$222шBђo2oo2o2ou4ْB4o2o44lll RW]~2RR]SS]klkW55lR4~~RRo2RAjjj]]qqqqYqq+YqqqY+++YYYʇeB$eYYᎨ_+YYYYYY$<$ʘYYYYqYYY$e<$h\Y\$$\YYӘ$uNۤ<>4]d] ?` PPggggol42h22k]SFjR~=]A~kRl]]]]~ASS]/s=s]4ok222o4o>o2g2uBBoo22B<¤h\go’o4422gg22Bk4P<>o44BBB2Bk>4(445kk24]~~2~l~~~WW~~AA5σ5]jSqqYq0q0qYqqYq+qqq'qqYʇeh\Әo7&,/a j~jA[~~~~]=s===s]SS]RoR44o2o222]A~~{~2g44o>o2o2o44o>oo>o45Bg2ooۤP24Έ22BBooo ooۤoوgo4go4o2444llಲlo24~~RϖR2g55lllRR4]Wk5&/9Aq+qqY+++qYqYYq+qq+YYY<<NNu¤\ƒ= F]~]jj]lllll==`a=΃]d]l4kΒool4~]]]]AAA~~A]7R]~]SS~&~~l5oR4u4R2gggglPgo2P42P244ײB׈ouu4o4uB>hoo44llo>ol4kംWϚRRR~kRR~ϴ~]kR55k]]W5W7Rq++Y+++Y+++++Yq0qYqqqYYY+Y<$$<<Ӈ愄BY+qqY\YY☘o4B4o4Ro44ogodk~44]5~]ഴk]~R]~Rlϖ]5WR5ЃޚϚϚ~Msj++Y+++Y+q@qq+ژYY\e<4kl[[[~s3Sssj]5ך]][1F.jψ2Rlk>uo44444ll4o>l]lRϲ~~R~]22BW]~l~ϖ~A3Ɵ]]lԖj]]]A]]~o2oRRB22Bk>ۤuBlkloooo4dl5kRRoRRಲ5ϴlo2]~]44σ&gW]]]Aj jԚ+q++YYqYq++qY+Y+᎓Yqʙӄ׫eNhي‡YYYYʘ\YNN$<$N<<<‡懤NN$<$<<ۄNuB<<>ll~]s]]==,/jjj/S]5kl2][=p1jR4koog2o4o2o RRkl]4~]~RϚ5~o]2~R2A~~99[[]sj/jjssjj==ԯjj2~R22g2gPgβ44u4oo4o4kdllkd4oooR44l]]l]Wςk޲ϴ4Rl554~~RR422RAϴ~`=+qYY+++qY+q++Yqq+q+q++q@ʘq$Yu>NNuNNN>4>ϖjj=,s9/]BѤhR~1X`9kooB2gےo4lk(4ogRo]RR~шˆRlk~R44RoR7j]]S=ssԖjjjskRΈoPouk(5׈>oo>ou4gRll4o444(d]llkgPRlk]ϚAϲk4W~l5R527RRR~~Rs~R++q+qq++YqYqY++YYqYY\Y24goooo4gllkd4(22ಲಃ5W55kϲRo555]l~lllR25R]]4RΈ2gP22RR2R/3a=R&ᓓ++Y+++YYYYYYqYYY\$uBه\<ے<\\$$Y$N$<ل‡懄Nۄ>N<<<<<ل<<ۤ<><\N>>ل<>>>o愭>ll~//M=+++qYqqYYYYY+$<ʇӇ<<$N>>uuNӤ>><RAAΕA2oR2oo$>>2lo<\g~s?sjR2oي> lku>o2Phlg22k5l5]]44o5kllk]l4ll4]o4g44uuو45RR~24]~RlR~~ԂA&]jss/j/jkk~~RRRR~R2R2o44R2R5k2Rjl]l22σ7&2RWR224oR4l44 4 ۇ 4aEk~q+++qqqYYYYYYYYYY$$<<<<>uu<>>o(ogo4uBeN<4oo4g]2gۤ>$NoےےghӒ]~l42٫ol(dl2222R44222l]l4o4Ro(l44o2gR544B4o2oo׃55524~~oR7R޴]S,ss=S][~~]]]2~4~]RR~]]~]Rg~4ޖ22455]]][[4u4o>٭4kSƗS]4RR+++q+qqqYY$YYӘqYYYY<$NlI<YYY<\>>>>$\(>hےS4o2l~u44ےoool5222l~4~2Rײo> 44R4>ײolkB4>٫٤<>>>ۄےou>o>>>ldo4B22ookl4o44go4R4ll25l4><5BBB2o2o4RlR2oo2gԖSS==s]jjԂj3=]M3ƻ=jS=s]=52BIWkk ooP<4R lssM/R54+++Y++YYqYYʘ\$$$$☘ʙYYYӘY\h>ӘYY\$NNN‡<ے>ْۤ>><\h>>>>>4o45NNhh<24gg2~~[5lBBBeшBku4oوu>452oRzS92~~R2>o>ے4R42oR4޲ooײ444>~kl 4k]gg22g4k5u2BBBgo4oBo24Bo2Ԗ~&д=33]jjj =[3333S]s]]25BklgIIϖނkoB22oul 4Ի//,2ol44q+++YqqqqqYYY$>>N>٭>>N<<>٭>>>4B44l444׫B(k4o2R[9z7~,,jRR2>u٭o2224ooo25loo44oll4~lll5522guB4uBBBBBBBgggo’oђBBB2gg4]][]~777]j]j]]j==ݗ=~~S]~~]5ϲ5AWσ4RRΈ5o4l]F,&]5l2oooB+qqY+Y+YN$NY$$$$$>>o>>>٭>>N<<<٭hӄe<\hP<<ӘӇه<\$o><<<<撤<>N<<ۄلۄۘ(ku luRohgoo[3SSl[RRo2ooےooB>Pghh2>Ѳg2SƶƟ&, `]]4>loo44oooo22o4l4 oo4lk[]4o4ll]ll4ײolo>4P2o4BBgPo><<<<<>>ۤNu>>>o4oo>ے>44og5ޖ]=[[R2gΈ4oo>o o4ۤۤPggSM7&jk52'2o4RoR4ײ4BBB4hg2k444o o44ooo4ْhoˆۄ><\\u٤g2B5Bg222R]9999S9S9ABBWIjW5WW5RΈ55oσ2~4~s=j7&PoooBB+qژYq$Y$$YY$YYq\ʘӇ<<ђ>ۄ>٭>N>>>u>NNhhh>ol~[kBoooooooo>o2ghhgg\RAz3Aj/,M==~~[4>Rogo4B4oo2o>o4 lk(l4lk4R5lg22gggo>oooPgogђoPh>B2<ˆײooo4R ~~~&R[ˆBB2gB572R]AA&΃WAA7WЃ22RRΈ5oRR~RRss2~jЃ5Wo5+qqYYYYYY$$$$ژY☙N☘YӇe$<<<Ә\ӤNN$¤P\h<<<ۄ<„„ou<<>BoN<>>٭لN$N$ul4Rlo4uo22]]kಈ2ooo>o>>og222g4zS=j&]=Ro>2oPg2ggg5׈o>ooo]k]]k]]2Rl54B>>44lײ2goBoo22BoBBBPgkB\2kokl4olgRR~k22g52222Έ22g\R~~]552Έ2gg2oΈRΈ4kϲRRR~jAԚ55l4kqYq+Y$YY$$<Yq♘YәNNʙ\$<<<>>$<‡hY><>o4u4>>BBg~3]j2ے4ےoo2oيےo42g29//==]sj&4o4(4g2‡kײl(kl44lk[2oR4ooo444(l>h25BooBْײo2okk44(l(4(l oR2~4ϲ44ol4B4ooukgےoBBg22~kgϴ&βgβRoΈo222ޖRRR~/jj ՕԚAσq+Yڙ$\<Y$$ۙY$$$<<<٭<o>يN>>P2ooo444ooBBuBΒ2]3]]ђ>44>٤ooooۊgghgh3%ؕ=sjjԏԲ 4kuouBђo4uײool4oo4(l522ooo4uol]dl u(u2gPPPlo44l424kuooud4Plu o> oooggo44k4gu 24kB4luB4ld~RԖ~R2o55RRΈk~oRj=/,֟]R5ޖϲ2q+Yq$$NYY$Y$$Y$Ӈ<<<<$<‡dI3lo><$ۇgg撇h$<>N>ۄ>>٭o>ۄuNN4>ۤ>g2oR4Bْ’eBу=]jooBBgog>4oo>4>>\>><\,s]=%/,,u>>4B22B244o>44llll54ogo44 R4ld(l4l4ooh\\oRoR2o442o( >ldhlu(loou444oo4(4ooukkRْo>ۤP2uu4 24([kllR~]~~AA5552ΈR4oΈ֯Mƻ9Wl]]A++☇e$Y$Y$$$$\\<<ӘNNN\$>>oo<<>ou>ou٤h櫫u>oo>ll4ٲ5ooR2gl~&~]5oBهo>u(4ے„>B>Bh l4R4l5222>ےooۤ>4l>N><>4uuuo>>4uBBBo>o4oےo> ll4oBBѲl > lllk]~~]S[klRR2oklޖSz3=/ƻ~К2ԎYqYqqYYqq+$N$N$<ۙ$$$<NN\Pْ2k׫kl >>44o$Ӥ<\>4 o٭٭uuN>>uNk披uo4o>oR>>٫uu4oB~4R]~~l2gш2و44oou422>Boghg>4u2ے>Ro4Rβl2Rl R444Ro4>ۤ>444 >>luhBoooh<2gBBB44og\24o4424l4PP4ޖ]]zzzyzƻ9~~~9]kS[]=MMMjP]ϲ5~l]YqqʙqʙY$$$$$YY<$N$P\gh\Po44RgPѲk(( o o>oهN$<<oooo24Bo224oN$4[S~2R4ooo>4u>R4522R5׈2o2oo>(d o>ےo oo4luuےh\Po’oBBBهBuۇ>oB٭<224o4RR44g44ooB5BoooRAS]]9ԖԂ3s[kl]jsa=sj2RR4l(l]qqqqqYko24u(l(]dddlh\uk5![duuo>N<<ۄ<ۄ<<<>>hhoْBBBkBoolu4444oۈooo4uBk55g2]952ggoooo>hookko\Y$$Ӥ~szS2loϴ5ג2ooo4ْo45޲ooRo<4koo4oےo((u>uBu>>4u>>o>>h椤ۄ>’>BB4B22ײ4o42hP4ogBo24o~]]42~gR~~]]]]~42o~]]j=s9Rl]d5l]YYYYqʙqʙ>Nي$Әۄۇ><<<4وok޲R2k]]]]o2255o 444oo2Bg~]=Fl5oB4hgo2o55[522k>oo2ou(4>2u4ugB2hNh4u>>BBBш225׈o u4o55okoo4l2ggg222g2~4Rl~ogR4]~~~R~]~S]gP24M˶jl޲55~~~YqY\Y$ʥqڙ懇$$ue<od>>o (II޲><g>>>ے2β]ϴ]]4Rool >oooo2goBBBo22bpSR225Wψ5k54455kkdk5goBBuoB5Boou‡g><ۤ$o22oo2ے4oْgu>>kko>542R][]lR4l444ogooo>5oےeшoR2PsF2g5WIkuoBB4u444o4oo4BBoBBBBuBoˆh‡gouuфk>h2BB<$h>ۄو‡2oBuo2olk׃2Rl5l555kಲk4l޴2oRoR4kl44oR42olRR,ݯn9AllllWW$$YY oBѤhPPN٭><>’>ouBoѲk >(ooo>44oo44>o4k4ggR2Rl]2k~~lk4l4ll o>oo2gPoBgg244RRg]Ƣs~g2B52oBog2gggo2>BB>o2oBBB’o¤‡$<¤h撤>2uoےoo>ooBoo4uoogے>oo>ۤPoےuBۤN4>>4 ~42oRR4Roolkl4lײ4lkloo4lR>lkkllll4444oo44lB2RljtJtt9]]4~Έ5]YY$$Ne \\$$qYʘژYYڙ\<$$<BBBh\\\$<<<ۄo>Buo\\<٤hgBu44ْ4dd(>oۤguBo>4ookoo>׫4o4koooooч<<ۄBuuooRo2RR22Rk542o4׈2oײoْ4o2o4k5uooޫkݗJa=Rk~2~$NN$$Y$$$YN$$$$\lh4[kkII5\\hфۭNo>>oه>hےْhhl5]R2gR]]~ggRolll(ll4Bo44BooBBg\\5ll~2g4]jAgψog4ohhh\B4g<o4²2hh2oooP2B4o>>lo44~~~k]]]54o5kl4޲ol4k5l44og25oBooj`ݬMs//ϴ]k7]N$ Y$N<$ۘY$hh$hhӘNN$YYӘ<4Bkg\<<uل’oogo 4o4kkuooo>4oR5]5RR22βklSS44og44(llulBB4ooooBooB2gk]loggRS9W&RRohg4l<\Bْ4oooogh\BogP愇uklo4goB452oB4o2oB׈ou44ײoP44ooooш2<(k(44oR~2R4]k55kd[kl444o4kk4o4444o22oBB׈R~na.``E,]&A((lUuk!(u<$Ә<$۫dѫ<ӤgѲl4o(4>4kk42R2oo2uNۄuلْ<>B撤4oٲ4β]]2oR44uu4و׈oBB2oѲkײBhP4~k4(]~R]I?zRR2o4224uhkduB椤Poوgoo„<$ol442oooooRoooo44oo44444444oooR4ooooooooggo5(llll~ll]l~~k]]k54Rloo2βR5RkBBu5[5~=a=/a`jjԂ]]A(u(uu!(uuu(uh$>4ko2Ph2’N<>oPhPo>ou4>uu>u5kB>>o22RRkl~ll]ޖllk4>444oBB5k4B4Ph\k[k~R3Ƃ4Rg]Ro~>o<<٫u>׈<وokB$\Ӈuul4>2444oooghoo4BBgg442kookϲg22oog4oo44I~~~]k~]]~24o4lkσokk5422k4sa/J?ԟj$<<<<懇沫5kIdddddudkwޫudkk((dwd4oBBBu4o [d(uook2Phok4NNN$<ۭN$hgےo4k(lho׫ϫ2>l42R4R~l[]l~]d2oo4o22B>go4kk4loۤo4o2B<<(k[]~g2RRβ5R4l52Pg5lΈ554BRlϖЖԂ]]ޚ~k]~[WRRl4lW222W~jaF7]ԯ3SssӤ$$NN<<٫kkkw[ϫuB4Buuهddkul(u(uo kII22ۤ[kllloےϚ4oldu>NN$$ӄe<>ђ<<<>o>’Booo>oo oulo4ou44>Bu4]o2244]]~RRlϚ42>¤oBP4oB44oo2R4l><>U$ӒoRS%FSjR][](]lۤh\>o4dku2>l٤\(4>>u>gۤho4B>PhP>( >ll o[54ou>NN$懭٭ے>uo>oooo>ooۤ l4>hollo>(l4><$N<$>l!]55l52βo222oRoR4llkRkRgo4~]]]]~Rl]]2~~&R&WW5o4~][=aaaJJ9A],js==j<\\Y\N椇2g‡<<$<¤\hŠB¤<>2BogP24ho4 ْ>>uI2~kll>N<<$歭eNNR]]ϲR2~]lR4(Ik‡oBђ2Bogo422g<>o>NNӤPRS9SSƻ3=~424Bh2oo>44uk ud(24 ><$No(lϲR4o444o2oRR2o222ރ224oPPo44g΃W]]~~~ϴ]]A7R&&&22k4jMMa,дs/qq+qYә<<$e$$<u>يNBђ<<ђ>¤\hk52RRd424Rl[kog4l4>>>ѫkӇӤuuB2g\ےےN$hBNh<<<<<2RAzFss=]]oggP\o 2o44544kkפϖohB2g~R5&B2gg>>o&2\llloR5WWWW5ϖAϲϴ]]k~]]RWAAP55o4~ll~3MM/,7jj{q000qq++Yqڇ<$Y\Yʇee\\h\\\ӤPBBBu<$懇g\hP2B4lk4o(5llkkoRk4o2 >k懇ӄ‡<ۤۄ><>><<\\go ?z,,san2Έkkkoo4B4o22o޲ol(4kk4\PRRABΈ44ulullײBg24o~l~RR2522Έ5554ಲlWϲR&5W&4lR2goSFs&Ђԕsj]jjq0+qYYY+YYYYYYژYYY\NBluu54 5(42o4ll~4o~[kR<ۤudN<oooo224BllllBh\g25552 4 l55ooo~l]o~&5W4lRRRRlRoR&5W5&ނ444ol3ݗs]]A9jjqqq00+YYYv_+Y+Yqeeeeu!uue懇guuB<\PфBBBB>oo]3̫$N<$ۤolughhBPo42((o2lkR>2oo44ooRoPPo4>h<ۄۘooo4dIwId\$<$$$<>hۤh\Ӥ椒ےNۤے oBB¤ooٲo4k4h2oRPRR4h’kk22ˆgPhhBg2oBk(>>PgRl]SSs,&45ނlRo2222g2oΈ4ooRW5B25ϲ5]22RRRΈ2oooٲllςϲ2&552Pg5~R4k55WWWϲβ5Wl]kϚ~j=ԟSjSs/=/eYᨓq+@@@00\q0Cv_ܓq+++$$NӇhӤ<<<4l>g4[I'<<$$NӤ<Ә\<>>>>>><<<<>oo>>BP22 og 4ogoo45dk2~R454oogoooBl522BBgou4<ou >BIIגӘY$N>ے>u >>N>>>u<\oג4o2\gIA~2Ϛ54>4oo22kBB5׃B552gggg24> >>o>oooo449==3R~l]Ro225552Bg2R~o2lBB4o4ll25AW55RRײಲ~2Aϲ&в72RRϖAഴRRk]~Rl]AԖ]S9,sE //,NYvv +__ܝ@ܓܨ v+YYʘ\\$‡Y\\hѤhh<$>>>>u3yI2\\\YY\uu>>uuluul > >> >>>o>чBۭ(o>o(4o >2 5[SS]~~~4gooko2o55o22g22244 l u><<uo5ku4ll 2h\\P ]δ97RlϲR4WA555554 R4IkooB4gP22=sAj]~l~~5RR2R2BB55RRl~&&ЂAAA4lk5ll4ooB4l5g55ಈRl~4~~W5&WW]WWW]~&WSAW9~]]]A]]=jՕE(ūK!Uqq++v qeeeeUK+ᓨ K@_Y+Yʙ$\Ӈ<<$u>> 4u(((u>>uuSk2odk4o22]3S]Ak5k42β52d>\4k(4BBB222 [ԴԚ]β2~ς5555lдψk5kkk~4R4555ײ5kಲ5lllRRRςWAσA~RβA5ς9]]& j>ے4u٭uʙU!Kv ''''+q)*KY++qYYӘeeeۤ<<<<<歒<ۭu(4[S[4>ϒoRR 4lko4{yz&RWk~74l~422R22R~3SjsSSR&R4lR4~5g255gдAAAk4~>o444l&ΈβW]koRRRΈ5ϴ5WIW~ϴ&R7~~R]]]]AՂ\\hYNNN+Yū$YY+vvYqYʥeK +ܨv@0@ڥ+++ʥYʘӘӇ‡NNh<$<(u>>Rޖl>l4o2o4lgP2SSς~RlR&,22RR2]RR~P2RRR4oP422l~R4Ro4lS]jSy?y]j&]]]lR2RR~22׈52&&]WSSRoΈoR47gR2k~l[WPβЃW&&βW~&]~W~~~j //go5uouu(u>$ū!$YY+0燥!*ʘYvܓ00_+$$Y<k\\$<>>>ۤ>l[lۤoo>ooPP2д~9S&z9j7]g]RRoے>(lٲPSSj2R~]lR5kRggR5BдSS]ool4o2Rllk5kk2oRllWkΒΈ]]7ԂAj]~RRA]]~4l],9AIz9II[!ld0K+eKeq v v_@+e$<<Ә<׫o\YY'+Yee˜hh<<NN<<>N<44l5ޤ>44lo4klog]AAAAS3SֻzzSzSASSS]5Ro2g> BBBB4RR~]z99j,,,&2~]]s~gPPgBBR,/[I޲o25BR~]55542kllR&в&~Ϗ]AA~jAAԚj]]k]ll~kςԚd]Izz[][[4>Y@0@00_YeeKeqvLvC_ܨ_Y\\h<<$uBh\kw\'' Y++ʥUB­Ѥ¤BN>>ۄuN>Nh2z35lllkdk2o]W]jֶ?/3SsSƶjR2222( >oB52gRR,ձSֻS~~]s=R2l2P2B55Εjs[I޲55&&R2oR5kkkRRR5W55ς]R~]]R&WԖԚRR]]]9W\goRh44ogPhgoRoo YYYY@@CCCvvvvv_'eKᨨ_vv_+ _ʇ懇<\h\>(>4lY++vvv_quчBoo>ۭuu>>>N< 2>hhullkko4o kklR2~k]]~7~&~77A9A9A7Ѓl>22244~~2~]j9SSjs]==s9W225ײ4~gAj][4B4Ro~R4RR5W55kRЃW]j]]]]]]A]A]R4]AAA>2gk[Nl(>Nq_轠__eY<ѭ歭lے >o٭ۙ4>Nudk >duvx\$Uu4ol>>٭愄٭$udפo44Rkogoْ>4oo4ll4o u(u444WWWI999WAW&R΃]WWR~~&]SSS?`E8E ذ&&PR4ײoo4R&9Sj5B44Rooo4]AAW77RRRR2]]~&&Ѓ&RR&&&7П93z]>懄$$$$$_Cf_CC+@@+0q0ᓓ_vC+@_YqY<׫kBh (d(N>uuvvCYqeeUuلuۤۄ<٭>٭$uddBΒ244g252l4ٲْ>4uooloRW7~9&&WA5вRR]ss/a-J EsЂAA~42ggSSΈR24(W&]7W~77&]RR~9j~~~дԕмs~4NNNduhӤڨ轌vvC___+_0+@eUu<o4B&&&2~]jjԂ]]&AAAЃRWR22gR227j/M/M=,ss,/ՏAWRRo2A/j,o2o5ಲR~7д]&ಲ5RϴW5ം2R]kR~77WAσ&AA/]~4RN$$$$$YYʙN$q+_____Lv_Cq+e*!e⎓ڙ+ʙ$$\Ӈے4!du$ٙ_CC____Yeu¤22oBB2B‡Bug<<‡h>4B~o2~5oooBoo444oP2βWA5A]22R5472RR2244olSEֻS99&j&,999A7&W~j~&WWW2]RARσ~Pj?ւkkBuuo$$$$Y++++_____CCfff0_ܓv_v  0KYYYY\$$N<$<ӤBB‡PBوBgg2RlAYvv LfCvvvqe\\<<o2o>ۤ>IޒhBgh<פhBB\\¤oBβBBײ>4445WAA5ЃςAWAϚk[ޖ[I5kB4ۤP2jS֯A9W& &WAAR2RBIA&д72WW7Кβ5ϲ222o799/Ag2BkdBBљNYYq+ܓv_vv ᎨqY qKe+NeNB¤PPgggg4B5g2>g~]!茌蠠ܝvYY$$\e„чBg¤PBBg¤o444o\lBk¤P¤oo>ˆ5Έo4BB׫BBo>>>oul΃7ϴ5Wς]5lW޲4kkkuo>ے4llЀA9&&`?ƵA5ЂA9WWWW7j9S99]AA22WR555R27Լsl5BBBB5BeN$$$Nʙq_C_ܠCLLL_++وgA~~wvvCv0祥q⥥0Yʙ懫чB5BgBB‡2o٭>$\wwuk4B2\h2oB252gB׈lRo o2~W77A~~7~lo4׈555B>oo44oo2&R5]ϖRog24BooBBgP<$<$N2ΈR4>45[R297&WSײoolRRA&22&2β57RσЕE?Ɵ/ 44kk<$$<$Ә$$@_CfffffGL莙eYYq00@__v_+qeeY\Bk5R~]l5BB5Wk׈/44uvfC__v0YʇшB22>يB><\ӤBB>oo4du4k4N$4k((k]]]l[kkB5kkkوR77 Ԃޫ0CffCCvC_ܓq$eUUuuBBo撒>4u\<$$\l![[[{[]~BB244o77UCf"6L66fv蠽_蓨_Y$o2‡N4(4uђ77[d(_ܽ6"66666666fffffvCC___+\\2222<„ۤ$hho4N<$hwIBӤ>ldN<>lo22PPBѤ’g2>R44R22~R5&΃&ЃR2ogee\hNN> NNe!K+++YYhhNBB&j(>vGGfCffffCCC+>>>ْhʇhhBBk[[l4~~4o4R222ˆu2222o2242B5g255AσRl54ےBBل<u l((>o4lײΈ5I&δ]k]j]9RRoPBђ22]4o44&Ԃ]AA9AW&&,s9j,99A&2oo442$$NY$ʘYᓓ+_v򌌌CvC_CfffCfv+$><\Y+ ''Yh44&{[ٓ 6"fàffffff66ff6fCf_YYʙʙN>ه$\hh\h2ohhϚ42oggђBkBBoo>σRRBBو2222555׈o557B545oےuNوBBBBo<$<<>udu‡<<$ӤӇ222>g>oo42gPgB4’oooo25Bˆ2o42gBBB5kBBBuNNNNKwk$uϖ9A,AS9z5&RA޲224&2oR4 27&7&W&Ѐ&7&&&ЃЃ&/9]&A]A>NN$<<懇<<‡eev_C_CfCff_v___vvvۄ\h24lײolu4uk4<''ʙ+Yuo4R5kuu_666ス载CvCffCfCCY懇2Bg2(SS Е A997R54l42&&777ЂςϴWAAWAWЂ,/7ЂAAխ>>UӄuهuهN$<<<<$+ᓓ_CvCv 0qYYᎨ_'$Ku\goRl4l2gRou>h$+qN׈R4kkwKCffCܽCC_ܽffC򌌠YYe2go$ӇNY$ۄeuъuهN<$\ >oBB4PI55IIwu<eeeq@@Yu>BBB22hP\PouBBIגh>ukdkh<‡ۇۤے’o<$'_+eKKUUuukSd[w>oA~l~24ϚlNӘ$Y'q+'>!((ޚ&~ԖwU___@___q@qʥq@CC_C$No4B22NNN$NY$$Yъu¤Ӈ\<<<<$<\22oײ45oRgRΤےguчBu2ggo4Bo$ʥKu4u(l Rϖ9yASSIWSIk~ԚSS3($$eY(ul]~~k( v___+eUKK!!e!K_fܽC@q+YӭoBuN<uBB2g27kkIIwd<<$BBوo>ooo242gRْwwww!(hh4ku\Y>>oo~~&R]3!U 蓎qeKw!d!!!!Ke_____fffCܓYq$>4<>uukkײ4oಲ22gooBBBB\BBuogzkBu$$q@0_CCff6ff"fY I]S??&24422βWW55&WWWಲ~js, S,~A,l4oٲogoBBooo ]]ԕSSj]llwzeY$'Y!ūB4lok5u愥0+ff__Y$Y<ْ>ђ’NNN$<椤gg[uou7ԟ932444o׃&&&σ5W577==/jԚ~Ђ]oo4k5424BBoo>gے>oRRRjyS]~~R4kl>\'\h>oR2g2>k>lu44llk o]Ђ/3jчh\YY\< ]]jA]9]SIIw\$\g4o2٫e0q6f""ffC_qq$>>g>o2>$<<4224BBoBuB2\Poo撤ے5olW5l52R2BѤP\&֟5u$Yᨓv66GGGm66G6""6GfܓWB~3S~2oo>ے5в~~ЂWo55ϲR]ԯ=,,j,/j&244l44oo2>UuooBkk2o~k٤h>u>ug\h\hY\$4oP4kWI9g /aJaݯj&ЃB$\\Y l~~3?~I5\$BP\P2&7ъBKKq_ff"ffff+YNN2uggRPgoo>oBBo2u>u[oR]22RRR2PhP\A/פ''Y++Cf66666GGGGGG66G"6666fqNBB4ഖ5og Ro44k4oRR22>o44B44dA[ISzFsRj44ײlkd(٤>h<>$\\\\Ph\2o>ll]]&j&MMnsn/j׈ۤ<4422o٭>g5go2gPg4o\\2uuuukg׈2gRR2olluR>2oW9S5uهӘYCCܽ66f66G"""G6GG6"66GG66"CvvqYkk׃zy׈R&~&в&4o29Sjsaj~ϴWo4lll~lkk2R²zzS޲WA~~~2gRϲ45Wk44okBBu٭<dS/j/,js=s=Ms],,&2A~3[]A999SA / ֻ֏BWP7 Mj&qC"fqq☘$<>>442B4oΒog׫hh2 B'Pu愇>&uu٭Buo$>u!(>5lk5kduu__ff6f66"""66"GL"6666fffCC$u],& ARR׈Έ&&7]W~ll55WA/j=sjjԖAA]W> ooo4~9SA933AR2R~~~~4]44R4~lk~2>o4oouBueYYUŖ3j]ys/ =j==joR]9j,//,/s%?IRsj/jd@_fC_訓YqYY<☙YYYqY+Cfff66f"66"f66ffffCC$AW7577ƵR44&&4kWЀkkl9Ajj=ssԖ]A]WWW> >>gozj~7RR4~Rkl~]44R2Έ22o2Roo>BuBuuUqڙe>d33==??`Sƶa=]22A9jj,&//Szj /~dYvffCܓ$hے2oRol22¤P!uuloghoۭu\ o44]3&~R7g4l5kRoRRo2R22g2o4o>歄<$_C_YӤ[S]RR&MƬ=s=]R7]&jlR]=EI&g$Y_Cv_+ژqYN>ْo2225Boo2B<\hlo4d4g5uѲuل$+u4>uBPgъBkku׫uYqܽ6LÌf6666f6G666f__ԏWϏ9Akϲuo>2 AAWAA2A7/sം~&7&o4I939]4RR4~42ggR44k4l44l2 RR22RlBoooo\Yq__ffCYoklRo~j[=/s7 aJa==/]9~2~=j=43?FF?yz9P><蓓@ړ+ou2o2oBooo2oђu<\\\R]okowuqBgBЂ5& AAЃ]dޫчhP AWW5Az֏AAAj]]7δjū5kI~~4jԂ~kol5l45l5l4ll222oRlo4oooBu<$\\Ә+_CCfܽܓY\$B2]=a ˗`ςR4~Rjjs~j?9W77=]WIIkuq⨓+Yܓ+Y$$ۈB¤oooB’‡B<’o~lRl]5l4Bd!uvvv_qBBP\gh\+Cff66"666G"""ÌffffG66Ì6fC__Y۲[W&&RޖW~~~Wlu׭>R44l42R[[RRo22RRg2RooR442ol544B4o>24¤ۄqCfCCCYʫw(g/Ma MM/RR~5222Rj&7&A9Sj,jWkk!N\$+qٲ(k[B2>22o4kB4oP>B¤<ۭ((UܽCCʘYeeU!eqCCffff"6G"fL6f6f6fCCG6"6f66"f_ 42222gggk5k2gPo55ײlo22o2gogogg2oooR4l52uog<$ӘYᨎ''\g\lS~/ saJSS]]ψo¤\g2WBg'y?==s,&&]ϲهYY+++YBoooBk2oo44o222>o4R2oR2o24ddB4ْ\hhч\$hP\P~4zƗֱJJ=M/7A5Bk5B2Έkk55o{Szz2R2ۙ$\<4Wς~kkklR42g4BB=j]~\''蠽0@qeY+_CCܽC_CCCCff6f6ff6ff66GG666fffxfC6ffC"fC_ekw~&gPgP\g25ޖޖ52odo2ghRԖ/9Ea /Aj,9/ ,,MogBoBBBoۤoوooo2ol~o4l4lulu44 oo4([oooooo444gooo4Bu4o¤\PIIk5ll7~RRRR&/sta7PP΃B>(]oh>uuh'>]39PghgoW77&~R&R5β,j=] Ro 4 o>>>ے>24uo2RR52oo4BB522Κ4WR4~Rl]&,,sJgggP<$l]4l2hh>oBBBפ\g22RR2R454u>>>o24\RR2l455kR]]SS]ݶEtEaA'<٭ol4k\$>I\ӄ<$NN>ƗyS9A]]]kAAW/՟s]]R&~΃Ѐ&&7sslٙY_ _qڙ\\CCffff6mG"""GGmmG"m""G66666ff6fCvܽf66򌌌Cv⊸wBI9WP\\[/,&,Ԗ]ޚ(~l]]Ԃ9``?JntEJJEM,/ /s APg$„‡Έш22P2oo44llϚkl44ooghB¤22gg2gu5>o>>uoooo22ghPooh\hkl44ooςA7jM?Ea s]AWuu442g2A2PPgh>Rz/ME?`~ֵ~, / j/s &2~jF]4uYYY>>ۤӘY__fCCff"""66GGmGG"6"6GGG666666m6"ffff6ffffff"ff_eS9 74RlRk~R4(]]AAػaլ``E,ռs //j9/&ւ9دNoooo4u4o4og2oRR4oggg24Bu$\h\>44oϲ~]santaata]2uuoh2ooϲA5gےoBuuoRݗaJЏj//,j/ /aa`ě% ]2koᎎYڥl>hN懥eᨨ_"f6666GGGG6f"6G66G66"6Ì6GG6fffff6ffCff6fff66fvqBWֵ[]A]S3]ԖAA9,/=ˬ= ձEEƻS9SW&撤ےۄۇg2B22ΈB44RooooR4R2R522oooB4o>>o>oo44B4oRو44luRoo2oouuB>\\hgoo2R5AWstt&&4ْh<ۈ4kkײA95k2g>47/J/aռ //j,js ƶ/J8ta F?ƟASo♄K!uk4يeeUYCCfffff6f66"6GGGGGf66򌌌6f6f"6ffCCfffffffffffff66fܠh4&S9AWzR5W,ԏ&&Հ&M˗j&js կ=9s/j&o>>٭o2ogB42222Ro2g24R2BBoo2B22o5B4uBB44uo>ukkuuo<4>Bohh222R422[j~/ns=Ϗ7o2]]~jS3Sk\P]~Jt-JM,EֱJJn ?`E?9ho5k4kkl4oS39ּWЃ&A9z]77&/,Mj/j&s  ,jj,,,,дoBg2>шoo2B4B4B׃Έ4l224l4oooBo4l>>45kuu4ogӤ>gN>424225RR4]4],,=M9o>2oR\2sj9k2=/Jnnn&& , ر3EصֱzEEJat tMsjSzy42~kog\hhh<<<>4oӤo>2>>>ےۤ$h<>ˆْogP44Roo>RRgR~~j, sSS~sM ]ARgg7JJnaJJa s77 , ,j/,ռؼ&S/ԯ&&tF`&&ԏ99zW9֟W2g¤ے歭o<$N2o4(4og2R4224(>444ookSj,/===S&ച/js==M,sS~R2R~j /M/ a-aJ8EJ ,//sjՏ ԏ,&777&jF?J77jAj/ЂA55Bч$Yᘘ++___CC_CCܽ_+++q_vfffCfCfffvC_C_KyS&A9j,/ؼ A7& ռjsjjR Ѐ&A&Bu’22ggooo2oBBoo&&&go44o44o2oglo>oh<愄N\NBل$hh<ۤoo24RRl54ooo4(k5IϴS3sRP~]sj2P,M`Fttt,jj&/Maa/t8lj-,aݗE7&s, & Ђ&R&&aMkϲoAA7&R2ooѤu<ѫYqq+_qY____ܓ_q_C_CfffffCff66fffCCܓC+Agjs ЂA؟/ j=j~AR&7ЂЏAA/79e3zIB2gogg4ogg224ol5looll44o45kloh4ے<ےNۄ>B4o2o2R((u4445ooW7R7j7&s?y9A/ݶ tݗnaJ,,9-Jattn-t#Z aEE,,&&Џ,?~R4k(kuWAg7~254\BBшŠ٭楄eK!ūeq+ܓ___CCffCfffff6C_CCC+Nhg2[?`t jռ9صssК]9AA,Y$Nk5uBu$<<$Ӥ>ooooBuo2o4444lu42o>Poےooooۄ<歊B4ooRRR2Rಲ4~4ЂR~jjSSSS3//aa?rttttnaa,,լ8ttnt####-Հ Jֻ9 &7&557]s%?]54Ro>uuk(lംЂAA&75~5β25BBBuKuےoue0@qᓓ_Cܽvfv载CCf_ܽff\$u[[dF?,jFEص M//]A jj,j99/Y$$$\h4׫׫B¤Ng244>go>o44BBBBB2>oْh>24وoooo4o2oR2244R&ς]3z,&SSS7/aaannt8aJaJE%r..tnn----#ZrtnJ Mֵ Џ7?El4o>kkk&&jj3lЃWA9Ak5Bo>(uB44NU$+YYqYYYYYY______ܽffffCCܽC_v訨q(!`EE/`?ݬJ j]AAA ,,//&/ԏjԟjԱ+ʘʇ$BBuwuч<oo>Ng>4o>>o׈oBBggo4uuBo244oou4442ooo44o>o4555RRRRRl]]д]][AsSS9ƻ7MaJ-aJJJ-r#F`.n8#####Za& ֵ֯&ARϚWW555~jRo~5k(u(l4l޴ASSSj]Ђ9AAAWW95Rg25I9A2k>uUNN$YqeUU$\'___CCCܽf_ܓ+hlz֟=AF`#ts,,/ ,,jj,///,/Y><>>>>>>>>ggۤB2B’>oo4lk>oo>oooolk4444و4o4444ll~AWW]k]]s3֕&7 sMJJ--aJ--#..#r-#Z##8`Eռ ~σB5ݮjRkR2o>oWA]AsjjjA,,RRg&&99Ԛ(u!uu>ud!Y\kk55B<\__fC@@qᓎYk9zS ,MXFtaA///// j/=s/,sjjj,qʘ\Y\hh\h<<¤\PPPˆ24>ouu>>>oo2oR442oRkR~~]AA&&]]~ԏ,Ԃ~jjƵ-MհEEE8J|. .8##8-8Ǯˮ?ݵ ,,jjjԟ7W~BB2a8a&7R2]j=s9&7&AA&77&]lluu(5kkl5[zI4B95N++fC'+x0@00Yh7S997&M JrtnEAصs/js/, s]/q++YYڙ$N$Y\<<$$$No\hѤPoш444442g2o42R~R22&RRR~45kRl~l5ےo442~5~Έ]]l&]``ttat.n||.##Z----#8EEE&sss=7B\4ols8=&ldkk5BR~]]93AWS999Ajԟ/WA ,,,=J7&-&=&& ``]R<YYYd$YӤ\\ewSS=]Jtr-Հj,,/Ѐ&,j=/AIAWWk5wkIqq++Y++qq+++qYqq++$ʙKe$$$\\hh<’22o445444RR~]~2~~~4~~44Έ5W5R2oBBBׂW&&RײoR4/aJntan8#r..r8-J-ˮEEݻƶ,δMjg4Bl4//,-rn/]Ako oR7R7~~~l2WAAԂj/jj&] AMan8---ɬJa & Eݬ=]dIuu><<<\Y\$e$N!gPoYWkljs``.-/jݕsjԖAW‡<<<\Bϫdw[oh2kl4 >ۤ24~jݮ#-- ԕռ/j/sjjP\\YYYq$YYqYYqY$$Y\YY$hʤeh\$<<<<\\hBk5u2oBBBuwkl޲lkkl4444lk~R~4R4~RRR~]k5ggβW542gԼ&,ƻ/Etn /M=sSMM]jAAWgk5~l, 8r`=&]]&2]~S&ԂA]Ђt`t#8###JE & ---EEEF`/RPgRj4~&AzSI7ISW][l\PPPP,# AA,,صՕ=\Ә\$$$YYYYY$$\$YʙN$☇$Ә\Y>o4Bou4o4ޫײoo224o4~lo22ooll~4R444&WAA7RlR4555W7&A& `39&~~RRS Ѐ&j/j&R`E7]jssAЃAAЏЃA9AW98.##8---8#EtaJJaE 8Z##8rrrEE77 M ,/s/&ЀJtɵԂA 7 /E؟&Ph\<$e٭>>N\<$h\$Ә<懤<٫޲B4k555lo24(]~ll~]AAAAR5522ϲ52WAWWA&]j9W]l~24zjjԂjRΒPRR` &,,WAAWW9A WAAAWWWWW77,E# ..#8##-Ja MMؼ & -#Z#Z###ZZZOZZ##Z &77& ?=MM#8 9 EAWW5\чu<懇<<<\\\oBuه\h\\<$$NN<<ъ2BBшP22o2o>44oR4l2o44R ~Rog2255]j]Ђ\ghBuoo~ko>hP\P]SSA~&ԴЏ9j~& FEnJM ԕЀAAA&WЃЃ&&& aݗ.|.#8#8--a / հEE -Z###ZZZZZ#ZZZOOZOZ#&##ǀE-Zr ɵɵA88J-a--#EيB<ч<<<<<<<‡ۤ<>ф<<<<\$Nو&9W2R45R55lkRS&PPhӇk555BhR9z9SAj,]j?9A2&,ռ9`t ,s/ԕ9AWAIWWAЃ&յ`r##ZZZZ#- aEEǮE --ZZZZ#ZZZZZOOOZZZZZZZ#--8- .-88Ȯˡ8]A8EE-----8Z EE‡<<‡‡>ۇo‡NۇouB<<ۤ<<<懇h<„<dۤPP9A]ԱjЀ `..```ՕM ռ, j,, д&7& t.##ZZZ#88EصJ8#---`-JJ-#ZZ##ZZZZZOOOZZ##ZZ-----#Ğ#E8- ؼЀ E##-8  7\he<<>‡NoшBB2ےRWlkl5224222279Sz`W\<ْ><>>ےoo<椤„hNgۤ‡2Po5ђh< 4llk3Il4S2R54W&77Aƻ/3z$&Pg5k2oR2S7&W&,& S,,AA taanaJaE?Msss/jW &AjՕ 8#8Z#Z---ZZ8-=JJJ#Z||O|Z|t8n=J.8Ǟ8-- =Mss հJaJ8---?`j<<>>u撒BBBuBѤ4ψhg45I5BBˆo2¤PhP¤h\g¤g¤22N>o 2ރ55W&&&9 &>ʄу7&2252PhP&5 jjj&Џj֟]]]AյEtnt saat`FEEE/M j/],jjj/sMJ#-8##Z &--8-Js/հJJ-8#8-88#8###j&jtǞ888a /ԟ ЀЃWAЀ M/M-Jt-J/?yzguu<<$ 4o>2o42oBBB2’PPk[5kk54555B5BŠh''gBRggPlkA7& &7&β4Ә$$פP7~P\޲&j9ԏsj,ՀՀ9Ʊ/]l/J/MtF?=,MaEJE?8aJaaJ&j/s ,j,/s/ ˮEZ#-#8 &ּJ8-aEյJE8EttaaanaM -t& ?8. -J/՟ &ЏAAA , հJaJa8-]]<<<٭>N<Ӈhh<24o2o4o>oooo><$h<ooooo22IIςς7Ro52PP22BBB¤g<‡h$<ےgے24o[[5442Ph4oogˆ22’g2NNN>>>uu<Ӥ5Ϛ3SAj&&SMֻ<<\h2R][[lϖ57R]AؕS9/,/Mj/յ &sEJ/J8nJ-#``8Et.rM=Ԃ],s/M,/M/յJJJ-a-8#-8##8-E-J 쉮.nEEE &aaؼП -8EEJM,ss ԏЀ, ؼ , oPPhg>o>>oooBukσ4l5R4l4oo42hg>B¤ۇۤg<<\2ooۤ<\<<2Bo2o>u4o4oR&ԟ&Ԃ]]ԟ&WA9//,,/k>N$\hkPRRk2RW&Ϛ72&Ə֟j,jsss/յAAI7,/MM J-anJJ-8rJM/]]A]]j a---#-######8- հJJ----E-aE&--8Mɼ, E8EMj,Տ]Ѐ&WW Հ WA99A9ghhhoBk54444o4oRlllljԕԂAAA9ЏWԏ,`E/R44g2gP2522AR& j`,nJ=MհaEEEؕsAAA,ݗJJaJaaJ-J8.tJ ,/R]AlWޟ Et8-8#8##Z#8#--E? JJ8-- &&-# հݰ-#- -Eݬ,AصEEEƻ?3SzS2¤P2uBBPPoo44oB2>>22oo24lRo45>٭$>hшB¤g22ooPhgPP25WWI5k(R4lԯ9ss,&&S99jjAsS`%`?s~44>2R25P&RRj7S&&/=MMMa/99A,j=&/EE JJJJ-8?J յЂA&5WW5Ϗ-a88---##8#88-8#-JJJJJJJ-J -JEZZ#--- 7----sAAA رػjԏ]2ш’u5BBuBoooh2oB4oo444444u44ΈRRoR4o4uuNhYNB٭<’oooo2BB4P2445WޖA9A]]]Ԗ]j]/s,&77&&7&/9 j/sa`RRo2R&&j/P/&=ƶnJ=Ma/Maa 9j]=, M??/J88J8-J/ЃWAW EEaJ88888#Z##Z##8JJռ  a-8 -ZZZ#888---&#ǮZZ-/AσWAA7&&7& / & д2]2шB5kBo5k5B5o2og2gR44lײ44ooooo444o24o42Ro2oBe$$Ә<ŠuhPBo2BBB[޴]]ޚS[j~]Ԗsjs,,j///&Е9Aԏj/Fjд&7WW57&/A&/]==Ms /JJԂ//՟,/E JEnݡ &&&&&& &7ՀJE-8E###888#88-8JJƼEհȞt8#XZ-88-հ-8##-Z#---88ZԏޏWЂ &777& &7&/]l]j~5ΈoBgײo4w44gollo4ogg2R5lPu\$B$$\YoB2\\oےBBςWAWAj&7~jj/ԯj/s W&&,jAԂj/&/aWW&9/ƻ%?S s`t`,MJ8FjԂ/jjjjj]//j,,/AEEJJJtrr- ɀ 7& /E8--888--888- ՟EصEEZZ#nlj##ZZ8- J#-ZO8#---~7&&&7&&&ռؼ7&]l2~g>55k5Bޚ5R4o42244B55׃B45k5oh$\h٭NYY$<$ےooggoo2B2R]sj9jj=&Ѓ&AAAдjM/3zػ95&SESj,/ ݶF?M-JMԏՏ ss]]jЀ,յؼ Ѐ Jrr &&  && EE8888-8---8?EJ, Օ&  J8E#lj|ĺ#-JJJJ-E#OĮ-8###E-Ƽ RgAAsՀ WARo25~RlRgg22o4׃444~~R44o\go<goײkϚԚj]/]AW5&&&ЂAW~,j/Ա9zz99S7&s /Ƶ7,,/9j,,?rtJaa/,sjjjjص/&&7=/ %rEȮ-##a?Z#--##8E-J ,  7&-ǮZZ#..|OZt8tE##O#E.8--?&g~9Օؼ &WW&k2Ry5RWl5l]R2~RR2g5lo24222oRoN>NN$YYYu4444B>o>oo44o>>Bk55555kϖW~]]&&jWW&22lϲRײjԂ9SAԂ9ss &sرjj/sM`ˮEn-8a,/ԕs]jA,/,&&ar?E?r#88-88r88#OZ#8-J /,,J-8#Z.|O|r.ݗ--ZOt J ?zRПS=M/&&7R]Զ25&RW~~lಲ[555lRRR44Ѥ愇$$Y\<۫d5oo2244o4ooΈײBBW9R~~&~&RR25A555224ಲkB&777jaaJ/&ݱMj,j,&,, //հEFFtJJJ js]]]Ԛ59SAj]=s=/MEEJ`EE###ZEaJ- ##Z#Z##8J յ// 888#Zrȉ#ZE &#ZZZ8հ& &99Pg7&ؼJJJ 7&22~]3Ԗz3R~Ϗ9A~lR45oR555k<Ӈeʇe<ggg2g222g2SAAނ~~~~2]555kWlll22oo4oooB55kBWЃ&js=?``Հ//jj//s/7777&,/SJJJtE8/-a ,/jjj]sЀ&~3ƻMհJJ]l&s=J8E#O----- ---##88- ɵ jػM #8-888rEt8-J 77 8#ZZ#EMյ&,Sj/t/a8W9W&&&&25jsz~~~Џ9A]~~lR22RooRR5ಲRR2o55RѤe$YehoR]Rluuo22oooo222o2og2hg9A]R75kk5k׈BB222Ro>o>o><<22o[IA[[d(ueeq$\N$NN<$ә<$N<$$$$Y\Y$eeيu5W&&93`8Ǯ#aaՀ,/ԏj]/E88#.  ϖAσ&]] 57ZO8#888---a-J8  -`tn--8#-na&MasMˡ& ɮJ .,A&AA JA &WAWI5o9o~(l]9Sss&jj=,AWWϲoR2R~l~~l55B\<<YedBkdIIIWAA/,j ]WB\\YYYYY!eeeeъePPs%`Ѐ-/SS7& Ert88E&7& &WAAW5kkul4459IW9,/J=/taM8ZE8--##8#8Ǯ-#-#J   & -ɀ7A/Js/,հa Џ99ص///,&//,<\\\\Ưj]4gh>~Wԕj,7&,]j]SSA44oײ2o<$<\hB(BoϴR2R~~R222P‡<4>gBwSIss],,,- -##ZEɰ-8--88 ɮ-8  #- 9 հJtMM7AA///,,,j,j,Ph$Y?9Sz4~lo ~/j]j]=so352Bog>ۇh\4k5]k4Βg<‡BB‡$Y\IWR&7/&&R5BBkkuhhoو5W]΃¤‡>>kײBoԖ]WNۤ<<<ۇ<‡¤hh<<<\$椭>$N>>$luR2]]jj~]Ro2olRكkkЃBY_CYqqY<4l`r?JE=]9Ʊ &-Z-EE&9ւR]A[2>\\Y+<\hPB7&7  &8#88#OOOZ#88####--888Z-8nJ--#-#####O-###ZZZZOOĉ.ttEEּ777&& MJE?E2BBYSRR~I,j&==j47W~o> 4ْ4lײ4&WWA&ςB>ghh ((42gA]~77l4o4lloۤ>k޼Auo47%ȮE- 8#8-8OOOOOOOĉ--8-#ĺO.||Z#-8Z##8##Z88Zɀ-####ZZZZZ8MصЀ7EEJɀ &gh\<~l~]W&]jjƶ&ֻƶ~=R&5WA7W~4~4ooRR]W&&939AWo>4>g>BoBuB٤PB5ײB5k42&&j/Po42o4~ol44BЀ5Be+@@CC____$BRa-JJM/&/JJa -8#쉉#E--/,=/7PP$(=?E8.rȾȡġZOOZ#8#ZOOOZO#ZZ#O.|Z#88##-#8-8#-#-----8##ZZZ-8--ɼּ&& &-J---89gg]]l~]ԖAA59Sj]=z/RЈ4RWW7~&ԂAW4o(42>444luu44&7&k޲&5~֯s22~loR22R222&ЏЂ5u_CCf__00ehhAjEE88-Ja  &777 .ɰ.#.#---JMJJ &ASƯjj݉ZZZZOOOZ#-ljO##OOOOZ###ZOOOOOOZOOX|||ZOOZ88#Z#--8#-#8-888#888##Z#Z-8-JخE &8 R4~4llRg7&ԱjR,9W&7&s`]7&R]A&7&]44l4o>o44l4l44Boo42RR&&7&σ7&7&&]]/&&7777ԏ/&д5d$_f__CڥWlR]#888E` - 7Jsn-J-t###ZZ8-aJJJJEEE#ZZZZZZ###Z|#tn88XĪZOOZOOOOOXOͧ|OZ|OOOOO##Z#88--###ZZZZ###8####- -ɼE &ϖkd]]~&77RR7&A,&77A]]S3&΃RkBuooo2o4o2>>4RRR2&7&&WW7&7jjjM؁pȆEE??,&777&&&744l_C___Y[],/JE88## &&Ja.8n-88a8##lj#8## M ---˵&&& -ZOZ#ZOOZ##ZZZ#.Z||OOOOOͪͧͪX||O͉Z.|ZZ8#ZOZ-###8#8#######ZZZZZ####J---#-- --#رR~5&A&&9&=?FՏ /,7Ԃ]]ޖ]ll3Ԛ]4I9~σ222g25o4oRR~2~W7W&7&& լJ/aaQ1O徾1.FXF 77~]l5‡+Cq@eUBu4R]E#--8JՀռJݮtt#.##||-tMՀ& a--EݮE -#####Z#ZZZZZ||Z||ZZ产ͧͧͪͧ1X ccͧX11ccXOOZZ#ZZOOZOZZZ###Oͺ#ZZ#..t|8#Z#88ZZ#-ZZ8 Jn#8EJAA557WWWWA9AF?Հ&j]d44lRoR]l]lk޲R5A2R2224g2ϲ4kk&W7&&Ѐ& .tJ|.nJ-##OOZ|;톪???֏j==~]BB\C+qʘBk(2SS&--8--#ta?a`EJa8Z.#8#.tt8-MJJEJJJ-.8----#ZZ#ZZ|OXOOO||OOOOOOOͪX}cc}cQc1cQ|OQccc}OͪOͪOOOZZOZZZOͺZXX|.#||######ZZZZZ--8#8--t8-8a555дAЀR/%?J/lϲ](&~Ro~l]lR222k5Έ5ϴ229&7jMM`at8ơ-Jan.r8Ja8.......ˬa?`rFF=s]ވYY+_qʇ<\hBBa-#8tEEratˮ-8#tnt###Eˬ-8-հJJ8EE##888###ZZZ|ZZͪZ|Oͪͪccc}cccccc.cQcccQ}}ccOͪOOOOͧOOXXXXXOXZ||Z|8#OZ#Z8####---85]5~ޖA7ϴ]=F jϏ&kW]RoR2~~5k5WϲW75&/JantaMĆ߆ȕ//JaaJJJa.`.r|͡r- Jt`?p 1~j>$__+‡$gPA/JEǮ`?E & -EtJ---J-t--8#####E-հEJ-հJ##888#ZZ##ZOOOOOZOccccccQQcccccQQQc媧}}}cc}}}ͺ|ħX.OħOͪcccccccc}|ZO#|Z##88-8----#Z--EWWς5ARR,AAAԏ/&jFJ /?M7]ԕWAWA]]R~~&WWWW7& //&n=` t .pF`Ja=`F?F`tntȡtJ.7n`ݱp円Q[~R~R>$+q+Y\\hΈR]ֱMJ-`?ݰ7JJ`----8888t88`Eյ/ -8888-8#Z|||ZXOOcOcc}cc1cX1͛}1ͣXFXěr|X..XXc}cTcOX.|OZ#ZO##-8###-Z#8#-WϴAA]]]]]],A&Ajss?&&7AW~~]A&]j/ /,,=a=X1rMj7&&&sMsaa/&t`a݉O;ߑ}. =~N\Y'hg~S/a-JJ-%rE E88 -8--#-Z#8#Z`/, -J-8--8OX人O|OcccccO.|XX1attt `.XF.`.`X%.tsJJntt.FE.X}}ͧ.#OZZZZZOZ888#--8555ς]kςԂs=j]A]=`aE֟/,/&&Ѐ&Ђ]j3jjԚjAAj,&& MJaa nFȬ/aȾ.  .s=2&7ЂAA]~lsjsݗJ77ЀJn bp1N<ʤhhPg7P2jEJ JEJ - -88|ȉ#Z#E-J/-Jat-88-88|XOOͧOccO|Z#Z.a,&& ==s7/Ѓ77&/n.XX1.OOOOOOOO#-Z.#잏]ԖSς]jss=]jAԂjj]~js?J/,,j&7,jsjjjj]ԂԂЏ/sMsj,?aհanaF1Fb`.tt.˯/jsAAAA]RRR],/..8ɀ&77s QTH?FyPN>ug22WWWςj/sJJJ --7- -8-#Z####8#ȞjՀ  --8tt#Z|Z|||OͧOOcOOZ-MJJ,&77g27P77MˡFtt#OOOO.#|8R&]]]]ς]дj/jsj]jԖϚ]==]&/MF%r`a,M`jMj77,/&/sj&/jjjsjjsR[=`aMnˮ--`X?a,&7j]]APg2RlRޚ2PP\ASSnntǮ-&7&&&1F%,\4llR&&/&/JEtJ 77&&nE--88-88###Z#EFEj԰ M յ & -lj#|ĪXͧccccc8Oͧ|#a- J?E&&/WI9IWAl5]R2oo2ggB2gWBP2бa//rġO#O#8ĺJ##R]]j]]Ԛ]/ss]j]]]ം]j]jMaaraa`FM/,j]/Ms=/jj&/&/=/б,Зts=J`t.Xt..tss &R~j57gh\\2h4!( o>ookl kPPg5\PggPgίF1tn`nJ..=]][]~W55дд5A]]]]Aj~,s ?հݱaJaFEJ/=ݰ F 1tM=Mj/j,,/=&s=~~&ЂWWWϴ&]dku<$Ye$YӄB[s=E\PR4\R9]s/=?`M `|Ȱ. .r|aJt#|||.8####-8-8#--88E888-Jn հJnnnľZͧ}1ͧX|ccOͪ|ͧ|Oͧ}Xݗs7775!N$Y\<<\<2>>>]>< <3(4g\gg3]ݗMaySR&]]ϴl]~[j]]AԚԴ]3==?aMM & J// Ja ```ݗEtM7Fasj/,j],Aԕ]RooR~AAR]ԯAϚk4$YYYYq+Y]jj=lo>kzySj /arˣrO.ttt#r.8--8#t#.#a8tnJtrJt8nE-8E--a-aJJJJ-tnt.`|ljOOXXX1.XX.O|X|XZOOXX..tA\hN\Yh<<$!(N lolo\\ӇΤ\h4׈gz``F?%SR545Ѓ]]kl~l~~kl]k]k]lWAA/FJ/ Ma=J,MMa```a,F.M&R&WSW]]~4l[AA&j]d<+0YӒ4ll[]~ ><'o{&7&?8Z#nZX|.ntlj..rljt#n-##..#-8EE8JaJJ-n...|O.##ǺOXOXXͧXX..Xc|.OO#Z|.&&&77BB2N\Y<ۇ>ӭۭee$$hh'\ӇBUD1 ::: [l{3k$\<<‡\hk5W?2]ү3z5&&5k~4R4]~l~]IޖϲϖWWA]j]~~7/nEFJr`,//,=a=E?J`?F/=jj]A9W33{[]s9AAAAAAAAԂ&4$q@@Y\<(]AϚ(>2>o<A, & JJ 8.||#tt#.|#lj||Z|O-..88tJaatttna8.8n8t|Ǻͧ|X}}c}}争X|X|ar%ݗ77&A2kdN$$> >P<ń\ddHp`S&'YY'Ӈ<\>^: Q^::囗[dgB\h>>>ghϤ\ou~l]]]]93A]Ssj]Ԃ&W5o2RRll~~~l~l]]ԚAԟaaA]~2Rl~/?˶%FM,/  7&AW(]42YYq@_+qY+Y<صA/j/Ms==jsjAֻرa#8JJ-n8..|..#lj##X|.Z|||.#|..|t.|tlj|O퉺Oͧ|X.䪪X}|ͧO|ZOr.?=,&77&ЏA\4BBuh\\PRA9W5Bh\\Y\ohg}QQ?YY\\u H b H}^QİjWw44 >4[]ҋ ;QQ`~~k懇hhuu$l]k~l&RRԯsj&ϚAA~R~k4llklk]]ll~~~&R~&ԕ]~&&&7,s,/ƶ/jj,,,j/s,&4\\\hӘq++ᓓYʘ<\33=]=j,/E``aa.F.#|.na.X.....|#tn.tt|X争|X|t#|O|OͧͧcO##ZJsR22ײ<Tz }.a3>\\hӒll llo= cHXHP\\o242o<\Ѳ5IgW!<‡uu٫e$h\\oޫdwkl[zcQQ}b=~2R \4hl]u<ْBūۇ¤<N٭Ӈ>>lk{=sjs=jjJ?`aaJJJخEEttt.-Jljljt.|..ljOXXOX||XXXXO䧧O1ͪX||ZOXa2B5Bhl(lN<<<<>>NBuѤkh<Ӥ2ll~`c}c} } ;cQc1};cccQ^^ Q^^^;}QQ;.F]gR3z2hgg‡«]]]]=,//3=s====3s{3S]s=ssԚ]]]]]=33333{j4SS9W][~~R~lBΈ4B2&~&&&,]jjRRRRogoooӤUe0ʘYYhk̗F1FFF˶``%F`ݶݗ-t-aJnE`ݬaJa-հJJJatnt.#n-lj..tnat.|X1X..X||O|OOOXXXXOX#XOO8oggl4goPu\\BBBBh<22222pQTc1 QcX} cQ}; c} Q^c;cc}ccc ?~g~IgB\22[[=?%Fݗݬƻƶ=SSj&2]]]]]]j[s9SSS33SSS4RR~R22R~Βg4oB2jj/Ms &&]~R2ouBuBBe++Y$(h$\5ψ5PӤe2Roo o1c}1 1c QQXͧXX1H};c H }Q .~==PIIzW5l][]j3SM/aݗ`ݗ/3sj=jj~jj]]]]R~j~]39~]looRoB5ײ4BB׃ƻ``Ja]j444uuUUUчYᓓY$وSt.ttt t8nttnnantnJJa/JJa8t....tn-tt-a8n.nanlj.X||ħ|X|||X|Xͧ|OXO|ljOOXXXXͧ8#OZ|`]ΚS,]&5kl lBBBoo5Aψ\PBhgu(l(dBR&j1. QQ.X.n}}};;}t }}s,s&R\AIW9BP]~l]={ƻz=jjjjs,j=asa/j]]j=s===/]=SS=]~R2~]~]~~дA3[[kR5kR3%r=[](( ӘY+Y+q+qq+q<<>ӄђPg][ c-& 4j} 1 t/T%\2]]]],jԟ==jj,ԕss]],jjRAj/szsss,Ԃ7l4[y3~R4~~lkσ&&ԱntnadNYYN goR]jsaFr??Ft`%.tntn tn# --t-8..|..|||XXX1...11. XX.|..ͧOX.O.Xta.XX.XͧͪX.cX.}XOc j.XQXpM&9ABI55B(k4懇\\g5hN % ^^O bF2!$>]]]]]j]jj]sjjjssjjjjдWA///j/j]js=szƶs]]j99Aд~~d]2gR]33jlRR&ja..ˉt-a]ll[]l~ykl42lޚkl(]jR&s,հJaat-JJaatJJJ-88tn#..||||||||||X1XXXX|XX}|XX|..|..||..XXX|XXX.媺X|X͉|Occߪs=M//,Е&7PR44ooBBu׊Ә'h>RȾȶ`E pbl2B<=?Q} 2hB]jj]]]js/,ssssssjjjԖs]A]jjjjj//sj]]3/pbp?3l4oRoo2g2j]]33SjRj,snt݉Z#8JJ3 `jJ %y34R{{zƶ?Ɨ9E?ݬJ &7& JaJaJJJ-n#|r|.||||||XX|ͪX. XX|XͪXXXͧ|X|XͧXaXX|X|Xc1cc }F,&]7&&&,7,j2oBuB¤\~1}]PPg2h~]5As=sjjs/sԕs/]jjA9A]j,sԖj&~js]Fݯ]~3zzSS333[=sݬ/ant######`˗nnt.`.`zsjs=E?F??tJ-JEEEaJJ?`8ݬEE-.#lj|||.X.X䧪XXͪͧ䧪X䧺XXXO|ͧ|..XXXXͧX8}cM== ?ݬ=]P,a/Mԏ¤ge2g]7g={\\>>hB5Pgs[\g]AA]ԕj,j,],jjsjjjsjjj]]]j]AAA~]]~]A]~~]3=[j=s]~]l]]o3=l4~{3[=sJ8-8-݉....#-88---#.tnnaJEntEJJ--8---Jn8EtMMaatE.t-8J--J----t|쉉|||..XXXXͧX}XXXXXXX|..X|.Xc||X.|XXO|Xc.ljXͧ.ccX.ccX|Xttț 7΃2NBB2o\g]lB7]kPgR4oPSI22]~][zY<ъg4jA]&]&s]S=sj]sjj,j,~]AWA5~~=j&PPhPPgo>h]![zD(dl (d[kyJ t8t-8#t-#--aJaant--ttntaJaa-annaJ-.ntaaaa,anaan--n----8EEEE-88#||||XXXͪ}XXͪXͪ䧉.OX...XXX|OX...|.OXQQtO|XcQQ} .X|cX}톛#-j,,( \ג>k4~g2R΃AWo9Wh4][ψ5ϲR4lh(5kB\$\$u]~],Sԕjsjj/jjjs]~&~~~~]ς5lk޲R~~]3y~P''YӭUN\$\$$ kz33?.tnnn8t..-n8-JJa-Ett-an.nMM-8Ǘaa.a8ns/MjaaaJ n#-J JJ -8-JJ8...䧪ͧ䧪cXX|XX||䧪.|X.t|ͧͪXXXXXX}|Oc}X.X}OOͪcXccccQcX ||OOOǰ ==s][(l]{dgRoo4lg΃&Rgo]lkP2]4W4l]]jjjs` `Ea.a/MJJaaJn/aaan.taMMMa t.XO#tnJtaJ JJJJn.#|...䧧ͧXXX|XXX͉.XX8X..|XXͧX|X8ct.ͧ|..OOXcͪcX}cQQ䧉|X#ZZ-݉a>l4]]ogh4ggo27&7,/99/==2&lRR7ʙ]~]]jjjԯSԖj]j/,j,jjj]]]R&ϴll~4R2RB55Wϲ~4RRRjSzS3~uuBY\YYYqY$YY$<<4=FpF?ݗݗEE/,,,//a/nFXM=nү Fģ .|OO..88trˉ#lj||||XXXXO||XXͪ䧉|Xͧ|t..|XXXXX|XXXc}OXXXOO-t|ͺQQcXX|ͪX.产#ZOt/an[]gR]44(4&sMR,,/,jRΒP57N<~~jjsjs9jԖԖjjsj]~25loRl55555j3z~!u<ӘdYNNNYYYӘ\\holSzzzSIAI&j=s~]l][{3ƗsjJMt##Z.r.#.r.݉.#.OX|||XOO||OX|XOX....X䧧XXXX}}Xͧͧ||}c}ͧ#Zͪ|t-OO|#OZOZ#OcX톆 TTȾXX`rrr attpFs2P77<\]]sjjjj/]jjjj]j]jjjԃ]]]55ll]k~R4]]klll555lRR4l~~44~~~R2jSzS&]=s3yIB’NYY+YY$ژYN<<$Ӓ4k[I2243z39Wggo>2o(d%=JaJ-##-8ZX|X|..||X||||#|r|||XO䉉Z||.-J8#|.OcXXXXXXOXcc}䪪ͧ|.Xͪ|ZZZ##Z|XOͪ|XZZ#--ZccQ|.c|.8JǞO}1 Eݶ=lЂWԂ]=]s]sj]jjjjs/j~ԖԂ]]&~Ԃ]~5225k]R2~l~~R~~kklR4l444l~~2ЕEE?``FFS[k\q$Y+Y$ʘ\\\<ْS4ۭNƻ--8..at|.....t#t--8O#|人||||OXX|t#||X}.cXXXXXcc.}cc}X|cXXOOOOZZ##Z##ZO|O캺8-ɾOZOZZ#ͺZ.n,a|JJX1X.t#XZO훪..t. 1XľFțăς]js=sjjj=sssj,/s===jj=j]ലWWo44o4kRRRR~l ll4R~~4~l4k54RR4~lR2MݗaMa=/~zSN\Y\hY$qYYY\hh\\P<$<\$$PPP`JaEݰJlj..8-8#8#--J----#ZZljZ|OOOZOXt|#XX|||X}XXX}}|OO#ZOZOOZOZ8#ZZZ#OZ-8OOOZĉlj#-#ttaJJ|||.#ZOZc}.ZZ.供l4~k][[][{]]]====ssjj]]jjjj]s==sss,]jԂWW472l5ಲRll~~~5kв&]jj~R25SoP2[g\$$<Ӈ<<\\\\\\YY'qY+e222],ss8nat|#----88J-n--8#8-##Z#ͺ||ZO|8.XXXͧXͪ}ccXX. XͺXOX#OZ##ZZZ#####Z8--O8Oc|#|ZXXn#nͪ잛Qͺ͆^QQQ Z##.|2~l]~]=]Sjj]],]]]]]]=sjjjj/Ԗj]дW5ഃ]]]]ll5ϲ55~3zy?S2(d(>>¤<<$\\Y\\Y$’g~l]]`p`ta####tlj..###8--8#ZZZX|.X1ͧXX|ZO1XͧOQQc1.tt.1ͪOX-###888#ZOO88###OOȞ8-#.-nnɵtttntMEr?n#..rrr8Z..tt.}ccccĉ.X]j]j]]s[]]9]ԏԏjssj/ssssjj,jԂԏAAA5kk~4R~k5]ll5l]]7SSySAyS4>hg’ч2h4RR4222245777&&AAWlRR4R57΃goRo44 >>osa-|..8nt8#-J`EE,&2ghPb.F.|##rOOZZZOOOOOOOOOZOZZOZZ|ZZ####ZZ#88E-//%Eֵ&&W IuY\'&&9j9527&؏77&==`ƶ3z`F%?=////,///j,sjj/,jsMM=M=/MMj//jss==,,js///ss=sjj9A=s[=[sj]sjԂ]WA&д7~AAA27&2ol2gRo~4~oR΃3]4o&Wl4o>>>N<~9&&E8a8rE#8n-EEEƱ/hPhgoRjr%EJJJ8#--ZXOOZ#ZOOOOZZZZZZZZZOO|#OOZ#8#8ɰa8ݗ 7, &JjA & ɏg$'<57E?%?&gP\7&SSW2kޚa/====ssy%`F1|FFF`s/s/ssaؗMj//aaa==Ms/j,,/M==,]=====sssssjjԖ=j=]jj/sԯS,jWAW2&zSA~&R2~2RRR2RΈgR2z]ϲ7BA7A9WWWWWW554Roool27&A &&JE`8-E==N<Y\<4dkP2FƶaEnFr..##OOOZZZZZZZZ####8#rZrݬtaJ/Wweq$u&7AWWWσ<$$kdd!u懎Y׈,~~~~llkjs==a===nE,=Jta===MMsMݶ`ƗرEػֱ~j]jj,,],jj//ss/ՏЏ]W777&SzSjjAlRRؼЂA] MM&&7777Po4loәUN$Y\uulo R[jzFF`1.X..8ljZZZOZ##...rE.E8J8#8a-JJttJJMAW[ފe<2,&/z9W7g<$$<<ӘYYqY+q+q+_YYY'l9S,ԕsԂ2P\ᎎYYYYʇYY抭<<(kBu<<<u9AޏAkB2hӘ\\\Y\YYUYY$YY!BP''55g]7&?шϚ[][[]l]js]]]]jƶƶ33SԕAj/=M===s/j,jjsԂ//ԕj,js]/jsssMs/9ذJJaJaaJJaEE?E`EݬJ/, M=aMJJMMMհMMMMرر/JJJJE /JJ M/J-JJ-EEtaaJ / ,]]9AW՟Aj EE--88#--8-J//Ղ9AԂ9SzIAS5k[d٫٭>ޤ5RP=E ޒ]]{]d]]j]jjsjj]j]]]===ss3ֻ/SsssMss]sssԂjԂs/====saEJE8JJMMM ռa/MJJM/ ,/ /M& MհJE88EE-JJJJJJ ՕM՟ص-JJEEEaaJ/հs/ 9 WռհsՕ/s Հ---#Z88888---ɰռՏԕAWWA9Ay]o<\PPR~/?=- P~44ll~ll]]l(~],]]]]]],]js]]]js,j9SsԂ,sMs==ԟ999ԕԕԕA=9=sjj]=JJaaaMJaJJհMssJJaM/MհՕMMMM // /Mհհ հJJJ--r?EJ M/ հ,M ձ՟Jɰ aaJEa////Ԃ/j,, ԏ/,Џԕ J---8-8#Z#---88---------ɰ  ,E%9& &/s,`?`a 7ٲl~lll]]ll]]j]]]]]jl]]]]RR]/jjjԂjԕsԖ/ԕԕԕԕAԱssss/j/ss=sssj/ՕM/MMM/JM MMMM/Mհ MM/ՕMMհJJJJJJJJa-a-8?rJ/հصՕհ MaJ=/jjς/, 9 //ЏAAJJ-8#Z#8-888#8E8#-JM &7%7,,  JEJ//Տs&72ݗݗ.ta/&klkl]kl]]d]]]КA]]]jjjj]]j/ԏjjjjԂsԕ/ԏss===]j]j,]jsssՕ/MJMհ=J==MMM,JMM=MMMMJM ռJJرJaJJJJJEE8?r?/M/M հM//jAдЂj,  ,՟9aJJ-8----88E-8Ǯ#ǮZ#--8 Հ&&&ռ EJ & -F?`F`. AϚB4o4ul4l5]4llk]l~R]l]]]]]]]jj]]ддjsj,/s//j//js==/s,//aMM=MM Maa`JMM //MMJJ--JJJհaaJarrrrˬJaJ//ؼ/ՕJj//jկԖsAAjՏ  // /9صصص--8888----J888--Jn8--88-8Z8 9 ռ& JJ-EtJF` J9sЂ9ABBBll(lkl5l545k~k]~дW,,,,,j===sM=sՏ՟s/ssM/MaرJ//JհMJJJJ-JJMJMMM/MM8aaJJat?ȡ.`.tnռ /JՕ/,/j //// / ՏՏ/صJ------8--8---8n---88--##--- Հ& E9 EJJ #-J-aJ, M k55kk5llkk5l5׃555k5ϴ5[Ԛԏ]дWAԕ,,]jj]jj֗===sj//ssM==ssjs/jjjj=MjM//j,MJJɵ-JJJM=JJJJaJ/ /n8..#..E/հMMSAA/jM؟ /]Ԃഏ& AA/JɵJJ--888-8##888-888--8888----8---8,յS/؏ ?  - 8ɀ ,ԕ/M5B׃ײo4R4ll4Ro44]]ಃl]]]&]& Ђ,ԟjԕԖj/ԕjj]]]jjss====sjj==sjjjj/ԕ=/s=M=MaaMMaaaJJJJJJaaJMnantaJ 9ֻA /M & j / W , J-J88------888--88#8-88-a-8-8--8---ɰ-յM ,J-rr#J  &A],ՀR~oRk~4u((kk5]4~ko]j]]j//jjjjj,s/,s]jjsjjj/jssjss=s,js],jj,,]j]jj]=sMs/jj=/s=j&& A/js=M/ƻJaaرJMհ-JJJJJaaJJ8JصؕMհJJJJJaMaJJ``./ MյՕ/jsS֕//]jj/s,ՏE7? /M ----8-8888#8888#8#------J8#8-8-J-8J JJ  ɮ#JZ`a W&A//45]]ޚ(ll44RR]jsss=sssssjj]jԕssss/j,s,]sj]]j]]]]j]/jj/===sjssMssԕԕjjs=MհJJaaantttaJصMհ=MJtǬJ/ յJ ռؼ ]//ԕsj],j/jjjsj & M--ɰJ888----88888#8######88E8-8.E-a8--8-M-8E `tJ7&Aֵ7,ձRW]4l44l(kԂsss/j]]sjs=s=jjss/=]sssjj]jjj99ԖԖԖSs]/jj/s],js=ss//sssA//Օs/s=MM//ssՕ/M=MJaaJJJaJJ-JaJհJMJJJMsMMMJ,Jn`?M,/M/ M jj j ,j,j,jsjj/sM/s/,// JJJ8J-8EE8J88#8-88########--8t8--t#8--8n----8-JJհݱ #- aݰM,Еկ2R]R~~R2g22o>R~]Ԃ]jj]j]]jjj/s=ssjjssjjjԟssssԕƻSƻֱ99SsjjԖsjjԻԏjj//=Ԗj ss//jj/s/sMհMMaMMaMs/JaaaJJaaJa/MMJJJJJJaa=nFE/ M/&MMJJ /ռ Օsjj,/j,/,Օ=M/,=j/=M MJaJ---88----J-ɰ-8888---8888--888-8-J--8#`8n8--8E8-a-- ,JJE-E-r7&ɀE?Eյs,&,MRRo4~k~~l]kRRR&~j,]j/sj=/jsj///jsj,js/jj/jj],,j~]]]AAAz3SS99s/AAAA/,/=M===aaaaaaJaJJEEaaaaaaaJJJJJJJJaJJaaMsJ/`?E-aݗaEaEJ հJ=s , j /յ/,J՟Jذ,aJJJJMJJ---J--8--8888888-------8--a-J-nJ-E#tZ#-8-&,J-#--  `//,7//j //22R]]j,]]j]j,]j/s/,jjsssjss=jjsj/]]jjj,~jsjjss]ԖA9Sj9AؼAԂ///j sMss,sj / ,JJJaaJJJJaaJaaa8aJJJJJJJJMMMM=M MMaaJE```EEJ , JaJMaJJհ-J------8aJ-888n8-8888-8#8888--88--a--E#t8nE8JaJ  J  %`9ص&M,,//4RR2oR4~~~9ssssj],]jj,jjԖjjss,jsjjs//j/WԂ]]]]ϴд&&~jWA9999/sss/ /// s/MMMMJMJaJ MհJհ8a հJaJJMaaJMJaaJ=M=M=JJJJaJnaanݬatEEJ /հ-JJJJJJJaEMaaJt88JJJ-88n--8888-888888E-8aE8-at8-Ja8E-a8at8Et-- --&ɼ%? =j,////554]]k]ޖS9]jj/A39SS3Ԗj]~ss]js/ԕAjjԂW&ςjjj&,A99SMՕs=հ/JaEݬaaJ/JJհM aJaEaaaEtJaJJJaJ=MaJaMaJJaJaMMJaaMa`ݬ`rFJɵ JJ---aJa-at E EJaant-J-------8n-8#8E-----8-J--J-J-88-a8`888tEt8tEnaJEJE-&E 77%&,,s/25ވ5ϚSS]jj?3Ssj,]js]/s=sjMԂjjjԕjjjjA]д]Aj AԕԕJMMMMJM/MaJJJհJرJJaJJannJna8-JJJJaaJJaaլaaaaaJJM=MJJa/sMaaMMJaaan8``ȞE-  ɵ- - - ɰMJJJJaanaaaJJ--8En-E8n888n-n8--a8J-JJ--8JaJJEEJJJJ---EE8-88EE& E%ȡ 7,%&Ѐ&jσA555kSz3Ԛԏ]/j&~ssjs3s,sԕjjsj]AЃ]]],j]Ԛ /j,,/s//MMMMMaJaaJJJJJaJJaaatttt-aJJJaJaaaJMMaJaaa M , MJaatݬEErrEEErr-E-JJMMaaJaaJJanE8888-------a-naa---a8--J J-ؼJJJJaJJJ-JJJ#7Ǟ -E%Ь?`//A]S]]l]~l]]ԕj,jssjj,jjjjsjjsSS=MsssԕԏjjԂjԖjԂj]j],jssj/jj //j,,j,,jss/j,/sՕ==aaaJJaJJJJJJJJJJJaaaaaJMJ8aaaaaaaaJaaa-aaaJJsanaaaa8aanJJEJ-JE??Eaa-ݮEEEݮ8J8aEE8tݮ-------8--888-8888E8JJ-JJMɰɰJ-rEJ-ݬՀՀ %pr,,/,`E&5]l~R~44~44]sj]jsssss=,j=ssjԯ=jjjjjjԕjAԂj]]jjjjjssjjs=sjjjj,j/j///sMMs=s /s=aJaaaJJaaaaaaJJaaJaJJaaJMaaJJJaJaaaJJaJaaJJa-aJaJJ  հJaJ JJJaEEtEtJJ---E88888J---J---JaɼM----J-ɰ 8E----,&&?E& j/,A422~ llllk]ssjjs]jsjjjj,j=s/ssjjjs/sjjsjsj]sԂjj],j]jjj,j]]jj,jj],sjssss,,/M/sM==s/sհMMEaaJaaaaJJaJaaaaJaJaaaaJJJaaaJaaaaMMMMJM=a,,/ , // հM// հaJJJJհMMհJaaM--888--JJɰJMJJJJJaaaaaJJصص---JJ-JJ-E-J հ Eݻ/A2R4]kl~4R~d]l]]]s]]]jsssԖ/jssssjj=],jj,ss]/sjs=sԂj,sjjjssj,]]]jsjjjjjjsjjjj,j,jss/j=,jjj=sM=JM /MM//s/ =M//MMMaaaaaaaaaaaJJJaJMհaaJaJaaa-aJaaJaaaaJرJMMհ//=JJJ հ J &aJEaJM հ JJJJa-J-88-----JɵJ--JJJռ  --J-EE-J-/E/M52R~~~]ll(kk5(]]],jԖjssj/ss=sjjsjsssss/j,j,j,j,]jjj,sj]j],,=sss=ssj/s====s==aaMsssՕ==JJaaa8taanaaaaJJaaJJJaaJJJa-aaaaa-JaaaJJ=MM/ ՕJJEEaaaJ=ռ/ՕՕM=MM,JJaaEJ-JJ-----JJJaJMM/ 7 W-J--J8EJnEtJEM,Ѐ,s/] lψ5k]~R~klu]~~]]jԂs/j=sSs/=s=sj/=ss/jjjssjs,/=j]s/jj,j j]j/=//s=ssjss====ݗaaEaSaaaaaaaJJaaEEtE8aa-JJJJJaaMJaaaJ/JMMհJMM/MMJaE`EJ/JصJMMM صհJJaJ--JJյJa-aJJ/ ɵɵ--J--a---JaJEj k]k[Wll~~]jjjss]jj=s/,,,j/,/j/j]ԗ====aJaaMЀ,jsMMM==aa==ssss=s=sjs======sMMMM=MM=/M,/MsaJaaaصtرJMJaJJJJMՕ/ذJصJaEJհJJJJ==s =JaMJJJJMJJaMJJa/JJJɵ ɵ JJ8EEtEJ/Օkk[ഴԏ~]~]sj]]/j]/s/,s///jjsjjssЏ]=,]js==جEEJJas==s=====ss===aaaJaaJJرM=//MJJJJaaJaa-aaaa-aaaa֟جaJaaaaJJaJJJMհsMՕaaJJaJaaJaaJMJJEEEJɼ-صJJJaJJJ-aaJռJaJ]d]]]k]WWj~,jj]/jj,=s/sM/Ass=sj3MJدMM//M=====j//=Mss==Msssss===M=ՕMsM/// ,,,,/////ՕռJJMJJaJJJaaصEEaJJaaaaaaJaJMJJMJJJaJJa-JJ-JMM/ MMJaaرJJJJJJJJɰJJرa-8-aɵ-JJaJJaJJJJռհJJ4l~l]]]5ംSS[j]ss,/sM/MS3ԟ9j/j=]sjjjsssssssss/sՕs/Mjs=/,/==ss,s/,j//հJJaJaJJaaJJJM/JJMM/MMMMaJMMM JJJaJ-ر؟///sMMMaaJJJJaJJJJJ8-JJJJJJaհJaJ-J-JJJJJJaMհՕՏ/ ll4o4ಈ5l]yz9sj]jjj,j=M/ Օjs=/Mԟj/sJԖԕ=9999sAՕMM/ssM,/sj ,Օ,, s,/Օ=MaJJaMհMJ=MMMMMJՕJՕMMM//MM/// MJJյJEƮEEJJJJJ հJJJJJհJJaa-JɰJaJJ---JɰJ--J--J--JJJJJaMJM M՟M4(k4RR45ll~~~~~]~R44]S3SSS9ssj/sj/s=M=/[jjjj]jsԕAM//M=صss/jЀ,j / /=MMMMJJJJJJaaaJJaJMMMհՕMsMMMM//MՕMMJJJEE?հJJ--JJaJJJJ-aaaaJJ--JJJ---aJJJ--JJ---JJJJJJJJ JM//Օհ/sslluul4lײ2][l]]9SS9Szz3S99SSԯsj/MsMM,,/j]]]Ԗ/jjssjj/////M//=jj],sMs/,js`s/j,jMMհJJJaJaJaJJJJJJaJJaaaMհJհM/JMMMJMՕJaJMհJJJEEEJJMJaaJJJJJJJJ88JJɰɰ-aJJJMJMMհ/////sM/Օs/j,,>4lkl455kW]~k]]j]js=sss=j/js/j,///Ѐ M,,s// ss=ssԕss///ss=/jj,,,,jjjjjj/jj////j,/,///ss//s/,///MsMJaJMJMհJJJJJJJJJJJJرJa/Jذհ/MհJJM/ հaJJJJ-J-JJ-J J J-JJaJMհ ///M/ &7, ,,,, // j /,uluu((ku5kϫkkϚkRԚ]]]]j]/ss=]=j/j/M/j ///=/j=ssj/sj/jj]j,j//,,js ,/,]j /=SMհMMMMMMMհJJصJJaJJJ=ج՟հռ/MMJJJJJJa հMJJJJJصMհ ,j///Օj,E,/j,,///,!(kkkײBlRϚkl~~ll]д]]jj]jjs//ssssj/s,jssMss=/jM/ /MsM=ss/jsss]j]]]j]jjjjsMsss=/Տ ,/sM=/M/MرaaaMJJJJJJJJJJJرaaaռ,, , j/MصM/// jԕ,/s /9A ,/,jjԫu(uB22oR2oll~~4ll]lsjjjs=jjsS99SSSرՕMj/==[==[=[s==[==[]==ssss/s/ss/=j/s////JaaJJaJJJJaJJJaJJJaرJJرر= , /Օss/Օ/,jj /s,j/ss/հ=ՕՕռ,///ԕԏ/ss /j,,,jA9AAj,&Џۄ>>ۇ2ђl5kk]]Ԛ]jj]]]js==sss99999ԕj],j=/[=[[=[[[==9s==Sռ,///,MM/ հ MJJaرJجaaJJJaaaJaJaJJՕؼ/Տ// /,/,/j,,ԕ/,jjj/jj,jԼsjj s/,,/Տԏԏ/ /,ԕs/j/,j,,ЂAԕAWA ,//9&NNۄ歭׫k4kdkk]lkll(d]l]]]ԂWA]]jss=s=/jssԏAj]A]]][A[[[[[{SSSƶƻS=sjMs=, /MMMJMJرaرJM=JMհ//M/ /// ,,,, Ղ]&j]j/s] sjAԏԏԕ / ԏ&&ЂA9jΈέuBukk44ll444o 444R]AAA[]ςjssssj==j]]]]]]]jϴ]kd]k5lkkkk[[[wk(d[(dd(kkdkkkkkkk]AAԂԕssj/jjj////MJհJaJMJJJJJaJ=Mհ=հMM/ ص,j ///j, ]Ԛ~k/jjj/ԖԂj]]j Џ]ԚԚ&& &&PRz?%NۭooouRolloo4 4444l]ςAA]]jԂsԂԖԕ[=[]]]]~~4Bouulluuuu(uluuuu4يuooooo4>o4BBooR42R5&777~j]]]jsM///,/,,MMMJaaJհհՕՕMMM=JMs / j //ԏ /j]ϴAAA]5]~~l]]j]j]jj]ϴ&~ЃԏAAA&7&&&&AA &ƻzƻ9lʙ$$N>o>o4lkollkkA[[Ԛ]~ll]dd(o‡Nu׫kdddkdޖ]]jԚ99Դ[ԖAAAAςAWku4luo4Buo2¤<<$ӘYYYYqqܓ___v討Y'' \Ә$$(UN$Y\☘<2jF?ƶ%?~~R4kkk5kk/sj&A//ssssMM=sM=MM//,J-9AԂAԂޚdkkWς]ЂԂ&дЃ&&Ѓ&Έo>>2>2Rgg4BBшBш4~l~lBo>o g4R2]]l4]2&W9zԚ]~\'P\<ۤ<$$\qq+ܓCfC!(ҶD d(o>o]s??7&j/j,j//s/////ss===M===ر/ /-~llll4o4B4&7W~~~75W5вWBBײΈ2222oo5ײooogRR224422Bko2oo44RoBBg„4uddkBeeeeeۇ>oR4o 4o22R[[kA]lײ45lu4BooB<$$ӘqqY++_vUDHbH [11 11 Fݰa aa`FFFƏ&//7&&,,jj&&sjs/j//Ms=Ms=9՟Հ&2g22222P\hghPgg&ARR4R4l55B5WBW5B‡‡ oo4]]]dk[[]]RRl4l4ײײ5oB5Blu4oo>N<@q+____@0̳ 11 1 1}11H}} }}H}}}䣛X.tǰJMntMFs&,/,///==s==M=MM===j,52>2Ѥ<<<Uuu(uuuuB44l( >oo>ۤhhPgRl>BuohْNN$$hY\\\<<<$Y\YqYqYYYY☥ʇNN‡>2g2ol5Bl(u>懇<$$<¥$h\hhgg¤懇e\g5B'\$$ʎ'''\Uzp[P'gIW77W9eUUUeUeeUUK!U!(!( uu(!!d4uu444ou>>><$<懒ۤ$<Әh$N$<N$YY\YY$$$\Y\\\\PheB$Y'N\qY!TbP3WƢ?ڥ00UUUU(!!!ޫdluuNN$<<<NYY♇$ژ$NY\\$'iyيUqYY+ᓓ+$Y'Y>>NN<N$NNN۫udduBo!ф懇22Έ77lײkk(u(((ll~&&RΈ~RR22h\hho oRg2o2o22oj,j&j=Ԛ4RooRRo2ggg22<\h$<$$$$N\$ӘY\\B<<$$ʙ$$Y$ʘYYY\Y\YIyyzwŊU+qqᓓ_YolϕbTi P7P&?S7jfffCCfC_00@0$Ә$NN<$$N>>$22274l44 UU!d[l R4(l((d]]](loooRoR4ooooo> >>>ogo4kײ4uBl]A/]]ϴl5l5k]](k]kl55׫uBъ愇N愇„<\hh<<NY$dI(UYYᨨ___᎘uul[SFp>'<( gASz7PCCC_@00q$$N>>>uuo٭(!!]]!]!]((( lll(dddd](l4BBuuuuuBo44llllll~~R]&~Wl]Ϛ[ޖ[4׫׊ee歭愇撇hh>B(!{yy(4uNYY _@Ꭽ3y3\g4{`~jj3ԯ0@_ܓ_ܓ+qY+qqqYY> u(!!(!u<ۄ$N懇$ә$NeUew*w!!Uيo٭>uuيKKKU4u!(l( l4oo4~ 44l(](ll(ײB4 llll(]]l~l]]~]]jд57lײoo45k5 R4~554Έф\\Ӥ<q_+YqYYqqUuo{3]Pgl]FP2~7=T00@++NU (!Y\N<\YYYYY+qqqYqqYYYY\ʙeee>>UU(]]](ll(4o 4ll5Wkkk]jssj==]Ak2o4R5׈2ll~kgo<<<$<Ә<<<<Ӓ>455444o$$uu>\'q+_ 訓>Dd>ll<PgPRj??2]Fp%]<<>UUUUUUKKKKUKK!)!KKUUUU>N0__qUKK>>>u(udwwӤeuB$Y_______訓᎓+ܓ_Y$hggۤ>U(!4ll]]]k55&Ԛ]]]ԟAA555]22o2o2g2okӇ¤<<<>ueukuu٫k!!wwd楘YYC_ܓڥ0ܓܓ@+''\\\\hNl((ϚkϚނޚ]]]] WAAAAWA~&5~Rgggo22o524]kgg2g$<¤<<<>>ۭw>gB2g\PhPӘ [=[3zzz%F`FƯ%bT3=g2~N$$$Ә$<<> >Nuuulll![([]d[[{(u>>ڥ$Ӈ2g<׫uUY+qqqqY_++Yq>><<әUw! \YY+!d[SISy33S]lo]]]]=jsjss==]~]{Sz99zFFʙNNNN<NNN>>> ll]kk]]k][d4dlluә$$qY☥BBBۇBۇ<$<$ӘN$$ӘY<YY$$$$YY\<<„>N<>>>ےoldRlllll4k lu$$q+YYӇBeч<\\$$$\Nuu(dduu<$ۙhNNNo>uNNNN$NNN$ee$Keeee$$NuBBBB445uBu懇<<>ud]o<\\'h>\N>\[dF{]l=3]&7s?p`s,aMsj&,7jsj]j/j]~lkl $NuU>>UKu>>>>Nۭ44>R D(NۭN<qYYqY\uduukddkd5!kloNNN$$$ӘhNN\$00qeKeeUeUeUeeUeuP\<$<\'YYY\''''Y$KweY\\''''ʥY'Y@+qqq___0UuYUw>uk5gh\Yeee*w!!!e>(dk2\\2g4P'>([d?==~]]&7&??%%Fl]==J=sM`FF74RRR4<>>> oYNuu(>>>>Bْ><((ly{ \Y$<$$0+ʘYYUʙ<Ә\\\hgoklkdkd[d44luNN$YYY\$YYY0_ܓܓ@@@00eNN$$يNYᎎ YӘ\Y\Y\\YY$euww!!UYl!! dDdN$NN$Ne$ʙNN$\hP\\h<2B22ogg2224~l~5lu>ۙqY$Y_C_CCCܽ载fCC___Y$0qNN$$$$Y$$eʙee< lU!ddduNN$eKU+q0q\<<$hhh\Ӈ$¤h2oR ooooo22>44uuUNYYqܽfffffCCܽvff__v蓓+YqqYʙ$Y$\ʥeʇūeq+YYYY⥄Y᎓_+++ᓓ________qYqNwI (ūdw($q+@$$wd[wuY\\\\$h>u4٭> oo>>>NNNeUUe+_ܽCCCCܠffffffvffvvv_++ᓓYYY++Y$UweuK(Udd!4uu((!k!eUUN<<<YYژ+Y+e⨨YKK!K>Kd!!(((!!U u u٭>>>N$Yᓨ'ޚu<$ʘYYN>N<BIA5$$$\$qYژU٭d!Keq+++YY+YᎨ_q0ʙq00!yUKKU$$>(u>u4N>U<\Yqqq+Yq>4dū!wY$Ә$<$<$NN$$$$NY\'NN\Yᓎ᎓討qqᓎ'q+eUeKeY@@+qʙNUwyiU!*!+qqY$$\$$$N ><>ۇ٫(uْ<YYqq++q$dul>4wdwe\\$<$<>NN>>>N$$<<$NNNN$@0@@@q@000@@0+Y0UUeU!)**wwKUK*KUeeeeeU\ou>>„¤o>>NN歫uN >>>>N$>N$Uqqqq00Y+Yq0eK*w*!UK***w***w*)K!*iyyyiyi̸Kʇ+q__ᓨ_YY_v_++qqq_+ᓎ++*!*iU!!Ueew*ń q_eK$q+++ᓓ_vv__$qe@00_++q+ᓓ++__訨 'YNqq\\YNN$*U!!K0qq++UUUʘ☘>> 4wI!eee愄>$N>$YYUYY$$eKKKUeيUU!KUqUʘʄeYʎY$KuYYY\qYYq++0@@0UeU+qqqq@qY+Y++q@@+@)w*e0qYᎎv eeeeUKKe祥00@@@ʥ00_qqqqq@YqqY+YYʇ$Y<$ӘulY\NӘ$N\<$hۭ$祥0qq0!UUK$<$dudeNuN<\$YYYYYYYᎎYYYYYY\Y''' '\4>44q@@+eK!*!)KKKKUeU$ӭ!!u>o4lkl u!!euuwwIwwSzzSIIk[ld[[!wd(!k(www!uUKd!wwwd>u(wd!ee$ӘӘ\\\\Y+Y+' 訨++Y$CxfxCf"fCvvx0NN>YY' '''' ''''_v_vvvv _C_C_v__ܓܨڨ ++Y+Y_v+@0000)KK0q+@@YY⎎$懘N>oلNN<۽vffCCC_CC6"G"6f66f6Cܠvvvv討YY+YYYeKuKKYY$Y__vvf@0U00qq0e000__CffC⦆q0xxx@@_fLLLmLLLLLLmLmLLmàfLLLLLLÌLLLLLÌLÌf6m66f6ffCCCCx0CCܽfܽ____ڥ!))e)!*)Ke)*)K)KKeeeeeUUNe$<<YYK(K!*!!!!U>N$___@@00xܽvfffffffffܠfff"f"6ffffCGmG""mG@***!**KUUC00_fCڥܽffCC载ffC@ʘ$ vܽfff""f6f"6666ÌfCxfÌÌf66LLmmmmmmmLmmmmGGmLLLmLLLL򠌠vC_ffff_@@0@_CCfCx0@_Cܓ+ U uUu(((I[{{D!(!d[[ү 1F1Hb;bbT b3D!qv v vvC"fffx000vvvvvffff6666666""66f6f"fffGG""mmmG6K)U)K$+0x@qYU0fffffLvYeeK癥qCCvfCvffffxxCfv6fffCCfffff"""LÌLLLLÌLLfffx0@@0x0@0靝xC_0x**獍)*)x)))***![{D3D[[[[k3{zHbb111.ttt11͛c}b}1 =p bb;b(6ffff6fCffvv __ܓ_蠠ff666"f"G66""66ff6ffffG"GLm6ffC___ܓq++00q00CCff"x"fff_qYe*!祥0LLCf6fff000000vvCx@xfffvf@xx0)0000_v@0@x))*)x"f"6"6"x0)DiDiybpbpbbbT Tbbb;bぁ1 H;;};}X} }c;  =/M  .  pTQTyD!@fv q!KKeq__Cff"66""xx0xxm66fCfܽvC_ܓ___+0q0qY+e_蠠f""6"fv0Y'Yqff66fff66fܠ@qqq0@____vx@q0KUKe*eʙ _v0@x0x0xxxx"""m66mLLLmGmmG6"C6fx*i******ii!)*iiiiii*Di;; ;;; ;;;; HH1 1 M=jjst1bb%FHT; :U!w*KKKK!!>Y>$Y\qDi̸)!DDDDD!!ffq0q0000x@@+ᎨYUUe$YeeeY++0CCffffLLLffYY@0qqCff66Gmm"6G6vv UUYN$ژYY+q+@@00UK!!!KeUKeUKKUY''**!!))xx""GmmmmmGmmmLLmmG6mLmLLL6x)V D*)*Dl[d(D =]]o=zF% 1ߑ^:::TDUKwiibDDD;b3HTT>3 bߦHp ^ ;H}Q;(@UK00000@0ʥqʥʥʥUq@@x0xxf6LmLCCffYx66mmG"GmG6"fv U(u>NuNYY$$eww(uU'''$eU*x"LLLG"G"6)DyD(3=.X11HQQ4]dʎ'u̢b;^H Hl D = Q^^^ߦ円};T)))i*x@00UKKYڥqqY0__Cxx6mLCLffܓ@@__靅"mGGGG"GG""66fu!l(44>$NeuKeeKUU!!!N<' !H ^^Q; ;;D!D(<( Dl]Ң;T ;;; K!"ꜜ*)"""""""666"UKKq0ᓓܽC0xfLCffC____Cv"fGGGG"C@UUlldloۭ>N!!eeeeUeeYYYNqYq+q@x)V*fmm6fx)iiDD{٭K!YT;;; DD; :ifmmGG"0++00x@@+qCv0f"L0f0LfLG"+ڭu >ululNNNeeqeedeY_@0@x"L6"x) Tb*DDD; ;T;bifܝ祥0v_qq@ܽfC0@轨ᝌLG"0$u R(!l>٘qY++eeef"f6Gmmmmmm*D*덷xY_Lf@0LLL0@C66x! l44~]42d4Y☤P0ʘڝ"GmL""6G)iV))"GLC)!xKNNl45k5<\'> luo @@C"GGGiiV"mLܥ)iDD *iD 4~\Y>l!dw(lU0L6x"mf0iH D^::^:^ H]> uw[w]g2­eCxLLCff); ^ ;^: ^ H;QHDwIӇGLmf);H ;   ;D(U!oq@m""mm"C_KH ;  ;; D!Kqe獅"GG6; ;  ^ DDUvKi6"6_!KD;   V T_)*!i6xCvyDH ^ ;D! q+vLf))i)"_vND H ;;^ ddu$q܌0*)qD!D;D :; ^ !+L))f(D;  ;  ^D)xVfC(D  ;H !!eYv)V[H ;^:DDyu)VV"iKD ; Q;HH;  KVVHc1D ;; ^ H 1qe*V*D3{DD: ^ Hd>m"; DDDD*iV :^:::V)6m"ꅅViVVlmarbles-1.0.8/src/gfx/wood/teleport0.bmp0000644000175000017500000001206607206511057015213 00000000000000BM66(   :ƥzӮN>ĞgNrnӯŚYV3дӨѰ(֮ǟβΠ^fA*۶"زt*ƚʥRN}ְҵ6|ھžnjϪ^Y}ŚֶJ:ZJˢΦҮVE. rz:Һɢˠʫ~ҲxEĚ^_̤bg̺ʦپRJոֽRҪjfB/Ζz}řΪɢ̦ZQȞQFŞG3pb^4߱nw–vuĜƚV ʣ~2 B&㸚jjśѪ–>&ܴ޺Ұ˪Ѫǜʣڰήĕ˴v|ÓjrRB;~⾠3ƪ]£ֺήѪѮ>!ÕںΧҲF0习npˢrụfhâzVOj .š"&ǚNBZZbbN:bƞbY~VJ~jnB6뾢|.ֺƦ’ӪC*#6<5+p&KK AA5^OjH#K6`~H6R#ݐ`c`zRm#&cz/ݐӈ65 Rz..AK^rZQBZH)އQ!ȼRފA"t`谵6cAp.?X2jP5^+RR7BzQ^KȆr66zAӎH5K)`H+?Z"K{EEE{"g{~{jRA? ??{+55ȈE~~j#Rrr?7??H m#߳X..u֠E 2Rz t òCWA&K6XEZWu EHKcj` "CCQP).aٴ[щّ#~C* ԶC KP WfĘ~r5KR7tC|W{K^Ф3eS@Ii3 ?#{hVVhԐHr&K&ㆺuNMy>9uUa~+^]Ӿ"~{V"%|;ᕲ!+/X@@--ۨ:33fL{H]##&thh0pAZK&j\gg3q1N'qq9w׺OA?ǫ;Yh|W~аWb@-@@ªar&+C|;4000Cz`P5HLD8@}oqoog X]t"V%;4Y;;?z??\3ࡡG}}:͏Qm߆HHtVhY44V龃PKmr?g3D--$di6]^#r*h;4llllYYǕCK޳..g3:8@-g 2QQ~ +ȸjOY hǫ_^{b @---}b33W`jPK^]XW|ΜYll T%΀zߖ~Eہ}-@Dy{"X6<՞>EAVs l4V*z?M=}G-ʁ=w.߸rzW|%Yl Y;CtQנg}-x{Z?CC|ҽl Ts?ZA<7?Ek(i}ࡡ-۱ّ)AAzVV4 lYC莵-(EX`zzCT %,z縈ZC[xࡡ-gפ`AB?_T T"?Zz.ہ@-G}x[a?z؈C|;Yl TY|z!?WEN>a[x}ࡡ-LE&`صB_4 l|AEƭ.b@---vXr/t|Y YVWj6PROEMkiš-ͭȿ!A萦Yl YÂJQQW @@-}vL\2PP!ݾ|%Yl llTY|"ݼj"{D-@"jYYT l̶z^PR`23wbGG--@ guUXmߚW;4 llYYY|Xz^KHQ2@ࡡ@:Ī.n R˫;YTl hZc^]6ad-D3gLEXK5jCllT4hǀ?)掏͓}ࡡGʔ3\X~#K߃镫;ll lT YhǢ{zӃ+XoooDL~՚#?V 0sY4YYh%{z<ra٪=@@ʡ}@vbg2P`z|%Y4YΫ~ڵjں(qq1N193g\AK"zBY%Բ"Ar#)~f3$-@@g~j+rK~Whh̫?+`~aUugg>MNĉu&AcJV|C{~")KXei@e^ӳWh%_Vh?H5\kyWWyfPKKrjR66{ҀCt7Z^K#؃Ӭ(b셪ё~P瞂CԲCV ~6HݵE ֟u{zZ6#QCC{?烞cQ< R EkgnunU6]]5&WC þ* C5#m&~EXtA5#]?C?zڲ rrQcc5+t~"1٠{2r^555^]"??* Zյ#Atں`66r#^?z؞?"ARR/2Xڳnc#Zյ7rRr#PRrﵐK``" PKAAz..zA6+ K&+/uR6xwlސ.NL+zhm/NIB^ֆ @+FZeڂ3Vbj8m|J>jZzMV}m"b_l`dw~KI6X`\jV^C7v;= b{ *?FDt4]nKOZdm}ro@qg݇PPZeJ&D,7I8Xvx^rap & mol%fHK"^i{F%zUc6XrB2e|KAdv+vWZlNP=$3atQZ:JZeR:ORqzN^~ovA%l|QVF6zy8WjwovE2lVGDJgނiu: ow "yrb|^v.~njx&jF.TYan<rHBgtJBHF}FR_)rqmRh{ Z;E:9YnHHp}}suլ˜6#mu/>R2۲yHnom6J"GNmnQwW=W2R#ۋ2tuwPH=U-JTR?{?UR~A!h޶!m/ꊇC''cJ/mRWWHyR=f{^"􈜲#Q'BhtUow൩tWRum#>㌌WW=gc֜Э ϳ5g g"\.-w'厎7jߌӎu=-Wfr g-H'AU"g6wu""[.?{`V{{``G?}=y>㘌ABʫʐ+KRPwyW.UUNk\ m-ouHWCRKՇ=6wy˶?``ek\[CuQga7v++̷6#P3kV\g5Auyu'䝝SaSmc˩%¦``ͻ¼["5iSS9Sco#y#dI``Ng#mhߔgbKSÄ焷aa=T"`__V"mwuP#̠SSä@R#Aϼ`1I dE.qoPQRՌ̢SSħpٷaɇ꺂yAW(;;zzXN###-KلZ:|@@@KRuۋV``` e1{ FE?.."-y4<Z٠"Ջg"\`zzzz_;``,fCHTmBbpȏȏȏ | UTHuyV`_(;(]O3m>yЂ=S*<ȏ:hh=@ȏȏȏpp9|RCm#2t3V(;zzzzzzz;ѥ2Q65 4pȏȏiߎc܈Wt[`;;_zzzzzzzzzz;eIG3.q垘+@ďȏȏȏYR-3dO(z_zzzzzzz;_es{GQT5a iȏȏȏȏSbBƀ;;zzzzzzzzzzF^ssGӊȏi|&YWWRC"fN`_zzzzzzzzz;(}-U5SSiȏȏȏLBWW {(;zzzzzzzzzzz(F^^hAbpȏȏȏZô+R^F _zzzzzzzzzz_ͻ[-RRՠ|:ȏȏZĮؘ怙q[`;zzzzzzzzzzGt̮ZȏȏȏM:|5^(zzzzzzzzzzz_X{R#PR=|*ZȏȏM*"Ah=t;;zzzzzzzzz;(^NrftWBMȏȏZ49S5t-oUsIs^F_zzzzzzzzzz_;CWBj|ȏȏȏȏ٢{se;;zzzzzzz_z`{3ӎBpMȏȪp ab5>T20.3GNe;zzzzzzzzzz_;`VGQc-R=8|ȏȏҹ+c2ѻ;zzzzzzz;FE}q#mc焄:ȏȏZp* 5g~C0[gEzzzzzzzzzz_;V{ qc#hP#ƣgN?»sId¼#WRY9ηLÄKbg/ӥ3,`ͯͻX¼kթ%-55S9 S"2mPuUտ¦rk3#Png᷷ΔqQ/C!^eD`XfgP˺-RWb++bagPoomr3sUU.WH֋b5CWPPGredVx{.uЈT'=KʫYY+ou-"  Wo懶=uy-t#.\"g ݳrr uuoɿ7A&ʌj22C܇2RWwct=Ɍ嚈C'P#"" {fh=wojh氖QQQ'ՇւۭH'=ޘ=WRRm~/RR?{?RCT~6y~Th!~u坊WyJ-厕U6nN}GgՀJ6ywTW=-umRn~m-J Cu#敺Tlmarbles-1.0.8/src/gfx/wood/teleport2.bmp0000644000175000017500000001206607206511101015203 00000000000000BM66(   ~9rVnk>/]&9|rHj &GmFc2PȢ(}^>OsJ["XA4޶PRf6qN+]*}f^xH$vv~j jN5 *ѪuR~b.VyZj:^.ծjBVrAQnH zL " .xNH fV"r#z^X.JDa6zVna2Z~z{R̦۲fnY&g2pFH rBn_.zJf*Nbjj>g:bvwK7@rsJsFZWn>I2fV~Zn6b*xNb;^d.LT~%~vS¢D{VRjlBzZ"0_2^vrQ"rh6>٦ e0)`s aaa)C4<ܰNo0PuuB>&x0㰳ձc0 x4e(a ;SNs<ܳ#y(' Ĥ(yCNN`s4c!JLZ y&#-c2ce"Rٺ0>CNN9a42 0oyeah '9; R"hЮeoB-Rَ9eaa<<9)&a;a cg("xC:[=6'P0app'g'|'`#&a(9eau cZ[[|#y <"-Z=g'#`xRZMMMMMMMs -;;c6__M 66J|;oB '[|XM6j[=a4>-;u'X/_ 75++kz_jG&&S[jXDXX6 cc2x;u([X _z^Q @@*tb9PS#4'MM[/XX~j:>-s(Z 5{ +UUm{{@e;;;|jDVVVfffggg:`y&Ns6]{%̞ɖ/:bБMXVV6j[s&9=rzmاUUUUwkb;sM/V1q=c`oCy)'rz+mivQ*qs0Gox(MJX/EE6[u)N'J@O]+UUUUUUUUU+m{@p||jMEEEKKKKKTVg" q F +UUUUUUUUUU+؄jZp||gMKKKKKKKKV a4":qtrU+UUUUUUU+nO@W޺`0b[qKKKKKKKf~j9pu"a<[6QnUUUUUUUUUU6'cڲqqڽVKKKKKKKKTfXLM9s+UUUUUUUUUnmH,ɾ`u-Pbq=MLVKKKKKKKKTf=ZȐZ:: k{UUUUUUUUUU++{^wɫ䟐"`u#`6XTKK1VJb;oC#sb<'@mnUUUUUUUUݏO tLN>" B[J61KKKTKTTVrbcea"`oG0sqJ$i m zzﵥCC)u![JMME//JquxÆsЮcbX~A[|4)&G'_zOؒn{7 _;"R2Չ=j6r~DDXJ!|eS;Jd_lt墻J;>4apa6t~j:['GC>BZJ_ Q,,m{]v7*䁩-)>P|ZbtMq[=j[!'<SԎ:tZΩt`#SȺ0|j='c"Cx27zttSPg!bMb|'Z!['R#SPBqӅZb! R)))b!|ߦ2BSSNN dt}qZ2Rx`` [Z|Zg'Zu)y#u!ꚴ ua94&ʈ<|-""R"sܳe>No029aCy 44䶵s`;Ȑac2"#&#9ƕ2sʀyR(u 40y 0c:Rx` a܆PxNB<4s0&>ٸuuP0#&0<)&aaa s`>lmarbles-1.0.8/src/gfx/wood/teleport3.bmp0000644000175000017500000001206607206511112015206 00000000000000BM66(   "*Rzs+BXiWxbY(>R9VvVv ]&:Ox}v;Vrl@bS~w$6F tGnCb"/b3Nfn*9UlPzr?^hp^*B^Xf5QopHnni~NvEfl)zt"2F;Zz][uc^&6Gjm{fQzfk?^~!2Bp]V{Lrs&2^a|U~lOvMrwv|m[ dT~Ins3Nj{~}#mu/FczV_8Rj.Jjp|/F^Jrs;Z~dj [$7J[ Ѧvjj#i[4K#<3<K<{op6{U#4Jv\U26ۻij_`{牊<' vЍP_DD[6d5̸6K}UUd2V"'}pDDU2QЊ-ӑ&XxT"KT d55~o>e'K }?<2j5ζj\̶[6? {\_d'TΞIII8mTjН`c_{ " D⍶jPP7ȗ[Ddd`5e_)̽}<[Vxg󇑪P܊p2Uo~ᘄwTK2Pg_eNI{#'D-_V64ԍ97ևFFX9g5wW:.Ycv'6 K 8CA&Ie?62j5URd?4T[S$M ڨEEܠ}2,YGGG#dQK1}&AN\DTT1}wGOq dxևMLakELJȖ6GOƕ]ZO]OO %h-eήV4eIǁEknmn tNg551РqZBBB] /¬)KSe#&F!!Lrrkf&+?'6 ݐɾB]]HHyyߺ;~%w"#8ttbbgx{'Ko)GG]]y]6U57Ekararrra&#Q }}o ]yHH;GeVK?Ekka!L=kk &9#p1K?_RZ ]OHHߏ澜[J+8Lrrrrrrrra!̒J QаOHH Hy;Ovp6[6޽!araraaa=FEEDѡTT'U)œZ]]HH q/٠V [5MFk0arrrrrrrrrr+x5p-h%HHyB.v#}Ԓ7X&=rrrrrrrLk̶ ԝ\YZZHHHB_S#98karrrrrrrrrr= CܵΝ^>;HO^~jD{d{I9*8rarrrrrrra=F*+ pZ] Hߏ;dDI$!arrrrrrrrrraènҟzeـ.^| HH(Z~U-Ѷ)9ҋarrrrrrrrra!k9VvSeY|H HYUD̒$arrrrrrrrrrr0@mA+ HHy;.ej5)XAk!rrrrrrrrrrrakMN6jDRZHHyBej̶MkarrrrrrrrrrrbI5HHyHG嘞jeCm@u=rrrrrrrrrrraf$XjD^ZHHHy](ݤeMk!arrrrrrrrraéjw£HHy]Z){SvzAkarrrrrrrrrra0$IeUGOHH]qϭI+f=Lrrrrrrrar8*7doO]H Z€p숿ⵚշC k=rrrrrrrrrra0 89[{j:HHHHH]BGRįSo\̒fkarrrrrrr0&7ԖϜHHHHHH]G±\Ԣ'ܤ+rrrrrrrrrrL!ʪ5SޝBHHɯ_oh-QD&EEFk=aaarara!fMg[ ԰/]Z;HHHߏ]]O)ȞiT[v!arrrrrrrr=E8+ՠJS 吜HHH/ejQKT6pvևb =a!akEEx"[GG]Hyy]׾]OGU{6\##&MMarrrraakE7xUK6 eƺyy] 6xtfbb8x:.Z]H/ɐ)pii+EkrrLfF&vS[ DYqB]]]/5555gʲ@nmn $EDzIe-KvU5o>O]׾(B/j6}EFL=kMExd42α)/׾OB;O; /?ԙ D\x+N&Cm}i\̊-~Yqq(ws6KxI+񁁥 E_?[T)Y/)̖?IN&zC87 K4?soQ[jUj?<o~5jQ??22d`U1Kp_D#ԅ 'DD_PD# 'K6޽55\ed'۔ `Ue\#Kn>I6*V^&*B>~Q6A*R^~~j>*jBn>Z*Fu&=F".N$Z~6N&NZ"rJn>Z:^ .B6j~BBV6~5%J^'Vn6&v.\m2Br6Z>^.V*~bnBbNn*B^v.J:R>i4:.6<.NR~:r6V>6.:j&2brV~4:6F&NV&^f:.j*n2z:^LRz.>>U2v::rFj"*6^2F:V&ZrJfn"Rj"Nb*6J2z6%"Rr&b>jBn^BZ. *>*5>zBj*Jb"2"Nv.vrJ~FU !2*:J2>f.:N:N&nNr5v2NbBB:ZF *BV4z,:h"6>V"Vv.j6Vj& :G..r*Bj,f8BV &6:f*bz2r2Rb .FBj5n2R.BF[f#AN6R.B:R:"Ff:B^6J=v)^zNh &:N~:B6jzJB*f BR*b.":2~.r*j.*b6*<Jj$fN.:N"Rv "62N::v(Rc"n"6B*Bf2V2~2=3fv".b"Nr&6N:J>NJr*F&6Bf:bV"FV . >*VbB.n(Vj"VzBV:Fb2B2B.Bj~:6~)v>^NMM>>M>~ס ܡs>MKF'~'ss 硡ss>M>Ysssޡ%f`sKjjsՉieYF sqKsޡޡȡMM FFar`6?b rr`6rgrK!?bՅYrr`6grą's!]]5..Xzz]]]A]+CeX1ObN]]..+..5.ժX8.@a;GHX JG.Af-9SGHXSc ǧS0b0Sݵ;aP}Yp˼@8$O0LL`KTշSS0$00S00ǹ`cXza|SL4rzSz80aSa;MXޡh24U;;S0000SSnSS`sP2X9qP2X..9}h'' cP24e44C--''fO -- 0.ȃP2X3}c .sKP7.J49ae;Az.rKP70A.@.4kkk54.4.SSS.rx7!.22ȯ43AS0.qP2aA7A.k45kAJ;@4GK7描tIh76I +caWˡ7!0.k+ +SA44S.Ks^z$S9K^zzK5,AvĺKQ!X3Je,AK@@ 00ں@@zK !K@]}ғ6KKr00-K$9;;yKK3,Kv@Cy}&ď9@KK,Xv@@C;0-yK.s.@@0QȡKs\K4@0yyc&!@.s[\KK. yy`&@.s; 3 `Q&K@4sfeA;;QQQ殩@4s;'4-;0;- &ș|||C Q@@ꕕ 0-}Q!6@@@0;;;;; y}aK.@@@}}!!.@r`A0 };ď4@r`A00-ߧ!@;߃K@@0;ArKKK46߃aK!@@@0;ArK00 T0慮4.G3 h榦4.W;Au Kr!곺h!44W;A !KSz&ȡ74a03ǮK!ra374a40;A4.4.WP20!4A;;A5..@4S0AxT<3A4..4Sk.2GT͵AGP!`S.4@..SSS2`P20a慅A3P`44..4SS0!ĺ @@4WL.S{KK`>@4J}L470ⵈK>S@@@4S0!HoA4ac `!5cKK>e`!ǹp K!sĆ: `**!!插**5s!"***5:Y⦦!!!YliBpaYliB~ p!aa%Yl)Bffp⦏Ϧ!Y[ekaW55͸[(Y{k]aWr55ӱ͸[%ɞkc.55k45͞͸i)(0i5B%Ji)(#0iB#МB%Jkdi)iw 0iBTTTZZB%JZZTt7%i%P)Bt<7%=lP/i%P)BtElS7%PP/i%Pl%)Blmarbles-1.0.8/src/gfx/wood/floor.bmp0000644000175000017500000000331607206511234014411 00000000000000BM(   *EbKb!Ab!E[Eh!:Q!0E&:0:&5A&0*A!55K*K&Kh"=TFX0E0Q!0Q5W:[!:P&E&5AQAd0LlI_8V=Z4H!A[ -J/A).%>'?1 ,!8)@%<0D,D8L0<,8&=+<2M=O3N(?,6 8N5H%5) 5!0)8 . "Ab @a1L5D0@!0 ,#/$ )&AW%@U,< !)%!,0 !8#  /D: 05 )@$8 ',@O5C ) %5H' 9Z:W"9)5.@"/0Wv/Ul$C[5E*5Eg)Da?W:Q)D5<5@0<),#7%?T2C"/.71C):%,!,8)0.5"))*=%6#3." .%)   +)   "   %)"  AAWVVVVWAJJgAVWWWAVWAVJAAAWAVAWV)><>dRRO>>R[,>;;R>)T;;*??F;NG00;FFlG>;?;;?00-Fe..e+?..?JJ~:NFF--?...N?F-FN?NN?>;|?..}_Atuvwe--xF-y/z{FN000;;?+>;??;NsKAopqrF..;,;;;?..?./.-Nl?N;>.?emn_ijk>;>+,.eNeSRR[Rbcd\,]^_XYZ>T[?;;+,;?+0PQRO?+.N.;SOTUVWLM:NN???0;+;;;>O++?>G>H>,.++;IJKBCD+,++++1EEF?0.++.?.,++;?;>>@AA9:;;;;+;<=>>*,,)*+,-./012345678 !!"#$%&'()    AJJgAVWWWAAWVVVVWWAVAWVAVWAVJAAA>[,>;;R>)T)><>dRRO>>R;?;;?;;*??F;NG00~:NFF--?...N?F00-Fe..e+?..?JJtuvwe--xF-y/z{FN-FN?NN?>;|?..}_AopqrF..;,;;;?..?000;;?+>;??;NsKAijk>;>+,.eNe./.-Nl?N;>.?emn_`a+;0;>RR[RbcdT[?;;+,;?+0N;?;;;;GRR>\,]^_LM:NN???0;+;;;>OPQRO?+.N.;SOTUVWBCD+,++++1EEF?0.++?>G>H>,.++;IJK9:;;;;+;<=>>*,,++.?.,++;?;>>@AA !!"#$%&'())*+,-./012345678   lmarbles-1.0.8/src/gfx/wood/wall.bmp0000644000175000017500000001006607206511244014230 00000000000000BM66(`    nn22Fz&NV63g2^BNBJ.6&jM~2RBn>VZqB:&&":2R .BhB&JzPhXBVjBv2N&6:~~!Vz2brZ0^z.&J^2BrV:^'jfZ:WRz>_2f:r*2*CXr!2R4z&NBbFj66jBZ Rr)vB\Jr "2:6Z*T2:$b.:6>+n>N*zN5[.j:vFzNoV~b 6fBb*~&F *>.>n"Rr>g "8>Z,vJf2RBn$^#Y8_B^22Z*2B"F+b:fB/f:v..N"Jvb8W .BJf>rJv".N-U"b.N}JrBV.^bNv=w1vF>FV)r:^!BR.^n6Q(8J&BBBb>f&6"2>Nz2V4*Wn6J(P\*`z&*Gv .F>j2Rb:^6Z.T Z~*Vb.:NV*Bj&>b$fuJ6N.@0z>H^&2*n Zz&*:::4fv:j*D &:2r6+JBz.>R!Yu**&>fZ2V~2*O*r#.Jk6v*6^Bb2E:*>NIrFnRvJkZ:r)f.5 -M&f&Pb:JBhf>~1~>R>V%P"B&f:N9.U**Jj&*n6F2Jv*66~R{"("A6m6AAAAAmA{gY{A{`dURRRoIRR8פR9ƛMRRR;X}}YYjjj5bbA{XA_Ƨ]RPR ^QR9I՛O+fN дwwwд}6IIIIRIIyRRo`9R`d``:~–-9~\f***,ffA5 Y]]]Y]ӕheb]6]Y ] ^^AA66a666e00A 1A0NNtN NjYYAkkt뎃c(QvE66]6]Y@@E6]]6](9yF,gN1С `5ߌNYYߌ0;߮ЮNAcYQ]]]YbYb]]6YQQY4RfmmLc111 L1ڛ\iZY֞5A{Gj Nf?Y8Q ]6]]6YY]6]66 b'Dmmc11C1Akh5U jSAAc]QQ6]6Eb]]DQQ6M[2[]DDb66UUj---jUUY1e3AAAޱ򁁈uuHОj^6?QQb]]]]6]6]YQQ:P22[6"mE6]]]]bbYY6]6]1 1eI3f006бuﭭu4AjmJL(QYY]6]]YbǕ99[2e~Y]e66YY]bb]66ݽ6o3A066u}=6uuY zmJ?QE]e]6YbjQ99::~]]]]]]b(Y66]]Y16oI3AAдs4u6uuNnmA%c(@Yj]666]]b@9[2ޖ:~666Yab]]UƦAAk4su=uYA6/[YYb]]66Yj(Yb]`"o:6]6]bY66ᱱUƿAA'kKKs=u!Hm"%25bbj+Y]6]]b+bY6OLBd~o66.a]]cU< hAAkHKsss0Ek2ZYYb]]]]YjYbmDLBd:6唔RR]1AHKT?ss=0}}E[b(bjY66]6b(Y6D9L~]RRܔR6cU<{00БKus_?0u6c33dd]j+b]eEjh6]DLd~o66aa]]c<10e6XKsssu{u33Td2Z6ӅY6]Yj]6DO4d:~6]]bY66]ᱱUt0A鱁uTsssss67Ekld% ZbbYY]]]6YbbY6922:~66YaY]]30066usB?=u}}{X!jXd% ZYYbbbYYb6;I칱:"66]]]b((666661YBe0 sssBs0ށXUXu`bbbYYYbb]gI2[~~]]66YY6bY6]]mZIև__{_s?sB=6Ё{0=dpYbY<"6޸2ŷD666]mbbYb]66661 1~d3gss_XussssB_uXuXXX\<<b6bb6Y<]I[[m4]YRRb]m~3ۘBsssBsBB}6!lsHY]]<<<6]b<O2[6:G6EY]6111~d3˜B??sBsBB4}{uU<Y]6<<6]YfA`Y]b]]6666]Y6Y1 3u?BB_B_o__=""=60٭˵[]6]<<<<]6]<6SYBm"mؖ"D:B( 1jXu#<<˦<__"域ťU66]œ<<6e]<64y<<*,1YmP:d~Od絛D~XB<v챠8xfQV> ))))))))))WWWWW⍍$,22N2&N>8lmarbles-1.0.8/src/gfx/wood/arrow_d.bmp0000644000175000017500000001122607206510746014733 00000000000000BM(   Pz?`?_?`DhKpJoImInInImBd?`eÚWKrPyY…ZXWWTBe<[dÙfÛPyLtS}WƒZ‡YQ{IofÚLsLuUX[ÉZKpJpaÔS~ZMuKqSUÀWÅFlLrríYÉKrGkvôvóLsIohR|OxKpJoiR}R|R}YLjbӓaϑ_ˏ_ΐ_ϐ_ϏW΃S}rbitvsrrnWOwiclrvutj_Бcdoswvb̓aӒmveڙbԔlor\܍cѕubە]Ռcؗ_Ցg՝KqJnaq¬ju_Q|LqLsJoNv?aFkOvQzPxJpQ|}y~^vwxyxz{^qSSS`rstu^hiSSjklmnop]^_SS`abcdefMgQQRSSSTUVWXYYZ[\DEFFGHIJKLMMMNOP?A;<=>7849:234356-./01$%&'()*+, !!" # ?A;<=>7849:234356-./01$%&'()*+, !!" # ?;<=>7849:234356-./01$%&'()*+, !!" # Q|}y~^vwxyxz{^qSSS`rstu^hiSSjklmnop]^_SS`abcdefMgQQRSSSTUVWXYYZ[\DEFFGHIJKLMMMNOP?A;<=>7849:234356-./01$%&'()*+, !!" # =>849:234356-./01$%&'()*+, !!" # ?A;<=>7849:234356-./01$%&'()*+, !!" # Q|}y~^vwxyxz{^qSSS`rstu^hiSSjklmnop]^_SS`abcdefMgQQRSSSTUVWXYYZ[\DEFFGHIJKLMMMNOP?A;<=>7849:234356-./01$%&'()*+, !!" #BC ?A;<=>7849:234356-./01$%&'()*+, !!" # ?@;<=>7849:234356-./01$%&'()*+, !!" # lmarbles-1.0.8/src/gfx/wood/arrow_l.bmp0000644000175000017500000001140207206510764014737 00000000000000BM(   eÚPzidÙ?`R}fÛW?_rR|fÚPyKribaÔLs?`?acR}DhEjYLjvôríSLtPyKpMslcibӓhvóYÉUÀLuS}Y…Jo]pͫLrkãuodltaϑOxLsWÅUWƒZImFlUKpQ{g՝cؗrorv_ˏIoKrS~XZ‡XInKq_Ցbەmsvs_ΐGkFlZ[ÉYWInKq]Ռ\܍vwur_ϐLrMuZWcѕeڙvtrKpQ{JpbԔb̓jTImInaӒn_ϏIoBeBd_БWW΃<[?`@bOwS}R}TXЇAcAcGmAbAbInIoAc@bJpFkDhPzMsWLriVKqTNuMtJpPyOwJoKrKpCe?a?`|h|h|h|h|hp|hp|hp|h|hiz{thiz{thiz{thiz{t|iz{th}~ypiz{t}~ypiz{th}~ypiz{thiz{thqrsfthqrsfthqrsfthqrsft%qrsfthuvwxypqrsftiuvwxypqrsfthuvwxypqrsfthqrsftbcdefghbcdefghbcdefghbcdefgibcdefghjklmnopbcdefgijklmnopbcdefghjklmnopbcdefghbcdefgST0UVWXYST0UVWXYST0UVWXYST0UVWXZST0UVWXY[\<]^_`aST0UVWXZ[\<]^_`aST0UVWXY[\<]^_`aST0UVWXST0UVWXABCC#DEFGHBCC#DEFGIBCC#DEFGABCC#DEFJKBCC#DEFGLMNN*OPQRABCC#DEFJLMNN*OPQRBCC#DEFGLMNN*OPQRABCC#DEFABCC#DEF-./012345./012346./01234-./012378./012349:;<=>?@-./01239:;<=>?@./012349:;<=>?@-./0123-./0123 !"#$% !"#$% !"#$% !"#$& !"#$%'()*+, !"#$'()*+, !"#$%'()*+, !"#$ !"#$%                            lmarbles-1.0.8/src/gfx/wood/arrow_r.bmp0000644000175000017500000001122607206510773014751 00000000000000BM(   ?`<[S}OwBdBeIoW΃W_БImTInJp_Ϗn_ϐaӒWQ{KpKqrjb̓bԔYZMuLrtveڙcѕW[ÉZFlGkruwv\܍]ՌInXZ‡XS~UÀKrIo_ΐsvsmobە_ՑImZWƒULtWÅLsR|Ox_ˏvrocrcؗg՝JnQ|JoY…S}LuKrYÉvóhJoaϑtldbuKqu_KpPySrívôKpbӓilq¬jDheÚYLja?`LsaÔfÛR}c?_PyfÚR|iWr?`dÙR}PziJoLsJpLqNvPxQzOvFk?asssvsssvsssvsssvsssvsssv{{{{{{{{{{{{{{{{{{U{U{U{^U{U{U{^U{U{U{^xUUyz{xUUyz{xUUyz{|^^}~xUUyz{xUUyz{xUUyz{|^^}~xUUyz{xUUyz{UUyz{|^^}~rUUUUssrUUUUssrUUUUsst^^^^uvrUUUUssrUUUUswrUUUUsst^^^^uvrUUUUssrUUUUssUUUUsst^^^^uvefBUUghiefBUUghijfBUUghiklK^^mnoefBUUghiefBUUgpqefBUUghiklK^^mnoefBUUghiefBUUghifBUUghiklK^^mnoQRSTU3VWXQRSTU3VWXYRSTU3VWXZ[\]^;_`abRSTU3VWXQRSTU3VcdQRSTU3VWXZ[\]^;_`aQRSTU3VWXQRSTU3VWXRSTU3VWXZ[\]^;_`a>?@ABCCDE>?@ABCCDF>?@ABCCDFGHIJKLLMNO?@ABCCDF>?@ABCCDP?@ABCCDFGHIJKLLMN>?@ABCCD>?@ABCCDF?@ABCCDFGHIJKLLMN./012345./012345./0123456789:;<=./012345./012345/0123456789:;<=./012345./012345/0123456789:;<= #$%&' #$%&' #$%&'()*+,- #$%&' #$%&'#$%&'()*+,- #$%&' #$%&' #$%&'()*+,-    !"    !"    !"                     lmarbles-1.0.8/src/gfx/wood/arrow_u.bmp0000644000175000017500000001140207206511003014733 00000000000000BM(   OxhIoLsvóvôGkKrWÅYÉríeÚLrFlUÀSfÛKqMuZS~LtKraÔJpKpZ[ÉXULuLsfÚIoInQ{YZ‡WƒS}PydÙ<[BeTWWXZY…PyW?`BdImInImJoKpDh?`?_?`PzFl]UpͫInKqKpLrMsEj?aQ{kã@bg՝_Ցcؗ]Ռbەrucѕ\܍olbԔeڙvmcbaӒb̓vwsodc_Б_ϐjtuvrliOwWnrrsvtirS}W΃_Ϗ_ΐ_ˏaϑbӓYLjR}R|R}i?aCeKpKrLrMsFkAcAbAbAcR}TiDh@bAcT?`JpNuVWPzJpIoInGmXЇJoOwPyMtKq567#;<=>>?@+,-../01234 "#$%%&'()* !    67###+,-../01234 "#$%%&'()* !    rrr{|}~~fffZZqrstuvwxeffy`zhijklmnffop`abcdefffg`[\]W]^_`UVWXYZQRSTOP567###89:;+,-../01234 "#$%%&'()* !    rrr{|}~~fffZZqrstuvwxeffy`zhijklmnffop`abcdefffg`[\]W]^_`UVWXYZQRSTOPFG+,-../01234 "#$%%&'()* !    rrr{|}~~fffZZqrstuvwxeffy`zhijklmnffop`abcdefffg`[\]W]^_`UVWXYZQRSTOPN67###89:;<=>>?@+,-../01234 "#$%%&'()* !    LM56E;FGHIJK>>?@+,-../01234 "#$%%&'()* !    567###89:;<=>>?@+,-../01234 "#$%%&'()* !    CD567###89:;<=>>?@+,-../01234 "#$%%&'()* !    AB567###89:;<=>>?@+,-../01234 "#$%%&'()* !    lmarbles-1.0.8/src/gfx/wood/barrier_lr.bmp0000644000175000017500000000225607206511027015415 00000000000000BM(                                       lmarbles-1.0.8/src/gfx/wood/barrier_ud.bmp0000644000175000017500000000225607206511040015403 00000000000000BM(         lmarbles-1.0.8/src/gfx/metal/0000777000175000017500000000000011271400537013003 500000000000000lmarbles-1.0.8/src/gfx/metal/background.bmp0000644000175000017500000063646607206511151015561 00000000000000BM6=6(9  $$v`T@.*pR*:>r "r8,n!ph# rF<]f T+Pe R .hR&L > `0# e QXz;0h #< ,/AtI&,SR$H u> #LF%| dY J6 ^|U(hfu K#; A0` ".'>P4,9dF}$".1p-h *  V` :<+(>6 E)H(TZ.1$ 4F<ZO; JF X#0 rN;00(x'2p ufhB0:|-  .3 '-0ER>XT^h, 6 $` F #zn R-U/]G` YB\ P#s: ,/?$f<#9p/|J0>440(!#H2 z$$/,S(p mm]]]]mmmmmmmI''m]]]mmmI'm]]]]m''ImmImm]]]m'm]]]mm''''Im]mI''m]]m]]]]]]mm'I'mmmm]]]]]mmm'Im]]mmmmmIIm''mmmmmI''mm@@j??$$'mmmmII]mI''Im'm]]m'''m]mmmmImmm]]]]m]m]]mmmm''ImmI'Im'@I]Immmm'r$rmmmmmmm'r$?tq\?'mmmmmIm'ruuImmm]mrIImmmmmmm]mmI''Im]]]]'mm'''rrjjjrr@'I]]I@͌B$rrrB\gBB$rImmmmm]mIއr$B,2\zIIIIm]'r''mmmmmI'''''mmIImII'ruB$rr˞V$r'r]]?V VBu$'$uBu'rr$'mmmIIIm'?V$@^z,ѥVr'm]mI'?Bur'ImmmIIImImmmmmI''''''IIm'rrrr,ij@?Eg̥Brr۞$m]rBVuzu$$rrr']mr$rmIImm]@"urj ͞rImrm]]$BVzzzjr''''''Immmmmmm'rrr$$u?zz]ii"H B$$BiE\˷'@'''uBBu$rIm]]r$m]]]m'r'$zVE"$Im'rImmrru$uu@@rr'mmmmmI'rz"pHp|r''j$B, |333ii\ ѰEpp"^rImm''IIIm]rBHizr'mmr$'mmIr'ImI'@r'II'IIm'r???zj'Immmm'r^Hg7mIuBu,|axtƛ"?ur'mI''''˞^z^?r'm''m]]]mBz"$rr'Im'''''ImIm]mI''''II'rz"z?mImmmmI'ru" LLo%$å 3:Y99x3׃ur'mI'ޞ$rr$@jjjrrr]]]]]IBEi˞jImm'm]]Im'r''ImI''ruBEEEE?mmmmmr$VxQxb􎕳,zuð2̰||64(w׹׃ 'I]]z"irrrr'm'IIrB,}^z""mI'$@B˷$B\"B'mm]ru,i]mI'@a:UUabbƌEt3Z(Ћ,t$I'm]rBM^u$'m]]]]IIImmBMB$uEBr''r$B^@z^$ Mz$@^]]]mr$ ~;a ;aмbxQ++8JUL"u,2r''rzƓ>Brr'mm'r$^?z$$$'r$Buu$uuu'BBME$$?@zi,m'r$^;wګŦ`ڡC;+(`p$$ugדu$۞@? X铓 "^$$ˇ'ImmmII''''$u$rrjr$uêVVz$rI'$uzz, tt\Bu@??B$u\mr;<5C+(&+y!##`9+fk5cwS,BQQbppp3pZ~K2 "Vu$r''r$rI'rrj$rr$^"iΰpiVz''rBzE\Eiju$r$zm''9Ywc[+NT)&ֲ;h&x;C<+QHiurrr"^]]mIm'^urr͌͌pzIm'r^i,$'Im'rm]u$mmm'zxܦ(y SaQٙWTCwwLSSQxQU~9+cc~է~5CZ[Ocbx \Htm]Im'''""E$rrrzi,B$B$$r'III''uΰ\$rmIm]uummu{{<c>9**!‘CSccb>qahcC<+RЖS5T#k=y!ykw5;Kttx>urImmI'''B\MpV$'uu$r''$"^zizurrmmmrz\tQ"'mmruBmmmmmmی|seUbUԟQFTF#[+`69(c2oh6ZSxaܣ8_.Qgg::|$'''ruȰV$'mm''mrjHQxVzImImmruEp Br'm^iêBBu]mmmmImmmm'^H%b׃vKc[!=*`&ܡ`OZ|9(vY9 Ugxx=.W`ɓX;Zp>222Kӕ3xVB$u^^zEE?@rIImmI'zpxU{{pV$rrrrrr$$uumIz\ izmmmmIImmruLx{s*cx B\{ c6 h`x Bur,,gGb BVpM,z$r'I'mmmIruz\22mmmI'II'^ :UxxxfecC<*!!8!`hCk44y`)cx~{oИܑ#ܡ{+0lحFxQxS<(٣N6Z VLfX3Cy+`*![Q "^uuBMgQ \|Q>MzImI'$zE 2>>mmmmmmI$BLS 66RZZ#8kN46hOO9f#!!Fcc`yW&U;[FTn!TN H}|ț~R:CyTkTNJ+[Sɂp Lx|x,,,Mg2׹77i$'ÌHp>7mImm^Hyyw R Hp\##JJnNyO)hw5#TNwQ|[[(։呲=WW_y9wy=ll0nܧo Ss]m'$Dܑ+NdaCc{ \SCw8n_N#&O&###!#pLSCF!=kFy#*=n pp xa&n00؍k5w<]]]]I$"HG-1aX>x O(.yLH, Qx33R [Y+ڝw5#Ny:ShOU<< ɟ}kk*5YaoxQGaZZa22Q)! dcTll!`#Tyww<Ÿ5waZZ]'uVsG׃ 22׃\x7Q B$u >ן{Yէ{Y6y+hC<61hbeQK;+T4N>R[ 3>,B$uEtד7pxL [b#!*#w~Q>>>%g SZZ;;|xܒ!֣!=!9 ՏC!=y[6S{ ce:e[J0OZO0FFky!mIL:xx, DZ+9a\,i"""QQ&{:b­(ggM\|Qq7gʐ3b| ;CcH[|777fc;C5Ĝ86LElW!yyymIBEbRQȰs>h9&cHKX--x,, qѰX[񦦸B,KfY6DQf;h8ֲ;xǎxƃ̹2ה>U~5wk*nnNn==Ny`c|,EɻGGeda.&7:6O5 K5n4²H0W8&6 +mmIm]]r b--ɳ,q>Z&­6p\̟s9*U3QMu${9c6SSd<;hO֣AC9Y,gg>ɨ/Ⓝ3<9(TFT Br'rџfʆddȋN肔[TTkSSpQbeY+ +#T 3mmI'm(ZVQ:Ƀ>ptq329.4b݃Q1} gK+&6XKV"x:Sܑ9Y;ZcCF(*k.YxE,33 v 9(h6ژcw9}3\u'''BE:3>cOCէ*k!kTyw2H͒.k Ղ2mmmIEpQQaaФ77נ99Y ๓>QL|-b Hɻ{Lxxxc..+|L:f9N!*ģZM b{x>2Ґ9 [&S:17"z$rr?xb71p6cZ ;C6kkcw(.г\,>З1B,7Ga~oUЩ(¦6HtRYnnO |6ZMg2>a a Ze-2MEpErI^\>~SZ(9k8=yOp:dF>3ưDNJ[ 6 Lm''ͺ77} fGUtt22 H$Ûq>>3dsuuBBÛgQLQ9%GװM dzדKQ|i\q7dw~̥$rEpxQ \Y{~oM>OФEEi x50#6} Ny姏ǂD[Ys$$BgtHiu$ΰ3K:c;c褗F!=4)H{Ջ|xRZHH9w5wFmm'rQq2>Xgpa~>RRUb}}fX &!3,6 d;C!&-st77efab/'|gg2>:>>>>(48~=!TyxFNnnnmI@LK>g>g2>Q{RGG>22>bx9aKరQbx,EL>9xx KKQXKSwn¯a++C)O2ɽ{9<ov3v>>|R1-G|x3>vKUd<<;Ь+y(C`!\Lb7%KQ||\, ,ppBu\7p$$".֡9 ʐqR:17gLbQxRah4呐h`wIm'$"|{QҎb9YH>gsvUSZ71ǕK 篿FZX19+GX՘;U>>aʘC5nZ Cnn`6D--:xzB, LB73,L4&SZ ~R}o2,XR3>2 ..(pLh#mmII$f9+|K:Qa睝2;bQKU3gv}uB|Z5Y~`!+떂oXX Mxbc wyN 4.69K$$$$B,ƠpiuB,McS3ZO| LxbxxƛiiM欐cS|3>;xa;w&Smm'ͺ{ʼ7xxbbbH:KKb|3B$ppp{  ccէ4G1^,,~Z aEL+Nyc;YQg,V"iΰ3ƛzVV|Q>>FUEE,MM,zuBѹKyN&\6SxUC6III'ͺXx3o>%:x7>M\qp$uMƂ2gbc#YKǐUi'$uB|睝gQQQ;aKUb33Q}׃gBr$Bib;TT;x\B$uMMBrr\ Wy aS6**ŝ<`hmm''ru >gxƃ>s}:2g~x[xKQ9ҳpbGLVHt7Ȃ:UHZ36yx"m'@^\xS:7>>>Q>:Usɔ7>HzuƔa 934&cƠ \\Kr$uB`nυK: 4yCx<+kkmI'i}s>2g׃fʤ ΪSSgxhw<m'r">+{蕔27>țY;U2v>QY9(.UU{33>Kzz $ p2gУ aM$r$pCk:%X3xRBBu$B }X ~Q1KxUDg27:Y7>EH"p\|xv>Rݹɋ6mmmm]m'rz3xqqɕ|B,gp,73 >g2LX2N…33ab,ê,׃7xK׃ư xmImmmI@V>>Q>>KbHEX>Buga7 Ɠ ⓃQS)֣92>3{נ"u {f}iz"^B\p[. 8yQ\"zuEbbx6٭zr$"̄}H..Ybɕv>+$\Ux3&nN&ɰ1113p VqɕU>,gmmI@Q3Qa%XvBoss,,EGҊ(p|U>QrrzY"$i+k6Qѥ&A=.Z2v2\iz\\tqqR9K2t>-:G$EogL[+YgBXtH'mQdž[Ox|mmmm'r^q7%%ԕGoRXMbRҽQ\i{x賹vxx苌\xdK>"r'zQ||$Λ^.0lФ(ŝx,QTįC6 >MM,uB"g27v̰>SZSb,\"zG{Gq2LSr󄄓 ,bI'z=6SaH,mmmmmm]]mqɠ71|Ȱgsx3B$q ̠7KHL> 3}H$BImr",VuuiLZPPl֡SxL~99+\BMC5< Hp1>$rg2>qq$B5*OQ,B$Bz%-qq>2}prvrusѥCW8T&3mmmmB q//ݓ>:R| g%ɠׂ\$z3,̨ \3gѥB΂xyoq "LR9!0nդܕ>$i͋;Cex| Br'g23"YTu$zEדǂQtѰbL "@@u 3ur$K17zBy숈WNwUgmmm'ruQvv>ƠQp {/>g7irBH"russ}|\݄v2B\g2Mp44Xp"$$ppHQ+9w0ؙNx>, Z(+x ߂{;xB$΃bRQ<Įlّu'|p"zz^@j$$?L13'|>Xt<_WWW(mmI$ Qv73GM,Ȱsaxg"r$z''Bt,, >|pB\tE..|gê :K yٙbX7tbb{p׳7:QHVz,g:G{kčWqB}tK $r'zL}d%ɪ$B$,q&(4=88Tomm]]m'$H3b|bs>71ư3H|t2>$rBBm', q,i }/v|^^>R9dK2gܐ攠>9{ЗHHHv>>ׂ[9aRxHV\\Qf<у>H;RqEz?}77'IIIImI''ro+.yexizruư,""ZppHLxmm]]'rB s3DՐR%12ןs3ɔ7|pgg2>u "''uL1Ҋ,2v3|Hrg,Ƞ+y:ƃa`ퟠ,,1GY5wp\,΃2>x;w<+9{""QexMȰM pE z^^"Hp \"r'm''IImmIu|SUKY{r'mmurBѰmmm]]m'iR{Y~2>7{{K>uv2,EiHq"r'r$,|exg2Ѱ>2,B""2,Ώĉ&QOZDEd<g,BMgcН^$$Bуx|rrrm'r'm''''rE\Q+YR,rmm"$I]I$ggg2mmm'EQfYoQQGҐՏxR,Q>$Bt2,r'rHQ ~giΰvgH \" 6`*n؍.6H q}tME\M g\ ̠ \\׎Rxa6BrgxpurI]mI'mmII'mIImIrB@u,LZ6trmrIIrz\,Ȱߠmm]m'$V|:R:\2\,Mi2QÛRH']Ha<3}߰\pMƠ3+#CCFFaQb;Qts-H"u$@2 LR}>pȳӆ:x̃u2i]]]m'r@rr'I''II'r,x7"o,\Ei$m]pBBz\2m'o3b37Q3V΂̃ 'L9(x7:EE>džC#ٙU2V 3׃MurI /7L,Q,3~RUg,iMr'm@^zur$Brmmm$|ULEeo3Br'IIm]IL> B" ѹI$RfФQQ픹vׂ3K7>>EV-ヰg,ar$YYbg>qbQggћi qư|N[U7zr\>L$r$>>H,x՘ݓgiut\$r'ͥM䋌$''pf1x|-уrm]]m'mz}s-VBuMm$VҖbvq>v׳33}q12נt BBE3߃3Yƞr$-g>{R> ̥ug|6[t|'黽VÛQ\BBV"͌,ȃ99,ర|a׹ 3tpzr,Hzr'r$,\iVuVL+({9|r]'m|zr$,vmmmmI$ o|vt>3ssKɔK7s1>2rB͛g3BrrB> gG~q2,B$urBKQY ^'mu%|Bp}s\}t3tqqsoH,K>Q +s> u>p$BVq7KRЖQ | ~{YY+9++|\u$$muv> mmIu,וҖ|,,>>׹22gggK>׃Q{"BȰƠ7$B"הRt7q2iiuB?--ed96u$v> x,V,xqK:x(’7sQ>Mz@EB"HLZ͋xSҖQ>L~ИDgELwŐ|uu?͌VurII>t\rr mm]33x|,u䠠>v222׳Q,||bt3 H'r$EvדgpL6aqtg$ù׃v>p3qXZ VuB,gƠ>>ȰKK>ׂ aLHiu$uBBs9Z66L>3xV\$˞uvx.=+%铃gV Z ,\,,\E|;9L r$BÛMMVE:<mm'$ qɔQu-ɂ3>>ưx 3>7MrB"p XxQb׹X,,Ơ3$rrQ| UXYD ""ͪ\9.+^uB,g2B,$$r$vX<n+dKg,KXg,uu^z,,,,\B$uQ{9Y:({| 3ʅmmmImm]'$\Q,,tsG̠M,Ƞ3騂ur\,1Q:oa uu̠>>>\|iIIHQp `c|{~~Ղt\:w+rgMΰE$u\3>3awp\Ms$g%o}urB H9+{QHb逹\E>|a',>>33>Mgsxx,g22׃g37ݨ3H"z\,9w~7 HRx$BM>>,x\Luγ7H||U+.&>ȃ}R>>Ơ>>,UoHVu$?g>tt$rz|KQqHEzrB11%E$r$7GL"ru,x:LL-%>gg|DZ'\3XQ}v> Q7QȰ߰gvtq> }׹,}Y 73$zL%uzV\Q3p6$m'3>2EHX9.b>xZt3:ME>>7g$@H-}pzrVg>i$rr$7ɨ$׃mI$iƕeox6d/,|L6O&rg2x,\gg̥E,t>77X-xʢ{svr$>݄vE \QK-ӔMZ[$یXEXc`D7>BB3S(~Rsg,>3K "E>X₌r'I@g\uB%ɠrru3>3ѰuIr|Qu${ɹv2bԎOy.m]]ImuEKǕbXq{g7$usQxҐUQ:-7\EEE:3ggu$v:,уq>GN,ur gu2 פ~tx"$B|fcF(9 },gR~L973॰vr'IImtt\EEi,M17Ȫu$Π>>t\$m'Iz|7>Erz͝gmI$}s:bbQgg{ox,ru}Q :>7,ȃ>װzS;,Ȱt71K:9y.4 $ tGvBg>S   +yNx$,ga+|Ȱ2tMB$r$V q,BE1HV337''"|v2mIruLHE,,K mm]I'r? s7Lq7ɔBrruQ>2Y:|KXƂ33GѰ 6hn!;:,Ȱtt}敤xR9ٙW#r;;sg> >9U<9f~aLg2r$"gXeSFy#ha|pp\Λt}1,1%1 ߃7'z>>̥$']Iz,>2>{w<mm]]]IsqHxv1ME,\u2gQ{<a:1KqqqqfGЧϿդ ,,,|:xa5k5z$BHL1/t2b;| 3$E>KL 3k044y5y9>7,qq7 \,ד>Ȱ2tr$Vq}I]]'ru,}g2ʬmmVLs>Kvx:3,B22g2Ge:锠Gs}qtg3(n4Z$K>DU\$$"xxƓ -:7t3v>țEêpx>qXvK1=WģUQg2,,:K7tQ>2g>Xg,\êEXrI3>>3>mm$i}1K323Xbb \\\,,,tq>gtQ-gR ΥM,,Ͳ4W0zz"$$BE3}ȰMpQ,a7ssxt}>g13\[[{{ӕx2;#ض#Hbq>:K3M>s7נ>q,ƥ\\ߠ郛BrIVD肠>227m'rzt>Q}׹qt>q>>E\$Bqt3b Ƃ}x"$rr$uuBWD2EiHp\߰EiV"z,2stqqь^@$ub3>-R|,ttΚ¿+>>K ,דay؍wxQ is3|xbX>gKR3p|73,,>E"᝔ݔݹ3m't72g̃g2q}|\$uuu927L $B\M7Ȱu'@$$^r"L`v v2pppM$Br$Ã,\$B$'3|๨ѰV(LL:oDHMډ02B}\p%1/>t pxMBi\p,\p Ƃy5xqɳ3mm']z>32>3ư,gq--pi$}c BBr@?^zBVȰg^rz $rr$E,LDЂ3tsΪ$$$rImm,>Qr$,gt}s1gVBu$LaL~狰KK!B B?EvXx| t,|E |Vr'u,3,BBEUʬ >v7:mm'$߹7g,,,ME7Er$,2tV'rrrr g$urr"pư$rig|s>3Q$V޷]m'u>'Dr$z,3Qg,$r$fo aXN` M\E\iV"ΰgtXQp \\E$BMƂo}"rz,тu$uUUe:t>2vqRmI"QK1K3>22>3xb3ǂ$rr,\Br'rrru3H^rr$"LHB,̃ƃX-K>q7pri"ruV\M\\ur@$uRog,Eu$ gBr''mtKsɓ숈x MM|o:22g1,B$rrr$gߌurruiEzB$:逓>3>m'V7s:37q>gbaUKtQE\V$jj^B$̓q ?ri %%xxb>qM|Ԏ||M2v$uB$$M "ur?,QK>q|B\3QH"rrm$߃g׹72axxHMQߊ++g3I]r$z>X-GKr^"iB$$۪\G-/-G}, ߰gIHQ|\,Ks:3MU:ɨ}qs77|߃BziB 7L"z>fv77x1g&{6דEu''$Eу22 @zƳɔ| 2niVB,27{4ϙ5Ѓ3 ^tSyn8T,$IBi 7敕}zuBBEQ}-1|bs>mrzX>3L,\MƤӽ3Qb2Ƴ׹K2g,,,Ei ݹ u> ;U333>g,Y.N(¦S│E''u"H 3v,u''$g7K1e3E,黼Qt'''ru\H3ד2Aa>BrrBgu|6Wln+{߃>i$$Ke3gѥ\XXZ­ܠ2ߋܝ...9UK7eLHzraR2>r'm'$gKbbLpvbxtM"r''$^DRRbxxEuI$rrd&F< DZ1YCp$'@^Bu$$sKaSSXS;Нm]I3227}߃2-QɟRQ,\> 33gtt beR}|,Ƞ7څ4‘ț+~p*!!:G{aE$?+93gE"jr$z\Biq>x|BBrrr@ ~Rb||acQu^Hi$MHa<22gg>227 ,$$BpQRs}x277Ƃe:x}tMpZ B ,pxxp,2Q|б<>Ca|pbƃ3g\Vg > B$Iѹ>Q>.U,ttgLx px:RxKQS6hNwǽ-Sd>Π>QEB\373h=*6aF؜Wmrͤ- ƹv}\B2$rpXs9լưƠa >>{(+{g2KQ:Ha:3Q~됼 Hp3D69RofU t2pm$2>C#;#0NTm\pHHvb{Ћ,,$$>ݓ$B\>ܝ|KYc`g,$$ꎔLqqo™Wne>ZCSLE,pc(.xL£y9s>KsXtBr$B w5 ;gQ苝bg>3,G{|2gȥ}s-ҤuuV\nnn}gx|>xL"zB\_N&T00ДQKRՎ}B$uHh40.xQ6y_55k.J//HzrrrBs…\ >bxQ3׹srIm$%斩CwFwV͌m$΂K q~HM\iVx3iBuB,>Gb~a׹tQ7Qx\r$;ЧYobba睳\$$"\Qy00`* p|%fʖQE0Ř|a< {+.4!T## 87/Bru}s{p\|ǽ22g7>sa$rru ;yn:,,Bmmz1¿胂qK3g2v2׃M\r,$q,ߟ|ɓQQt͞ImI$p::1KL +:q22E|L=순_ y:x:>t|aw4!CQK7>5kTTa(5ZO壅5a/E,,M,o3Ȱדq SK7}Buvyn $$m'rip}ǕcNxx>>>7qנ3tvK:aH"HústBB ߔg22tțr']I'Qx[蕽K{(YxKg2x9<[[=l_ؙ_l73KXXqx+y#H1bN`xwcHc``6eQt3> p,,fț37Xstp L 311Ы`#=|2$mm]]'$bx H6bx{ɓqg2huiE$B"g223݄72 z''r 3QX̂GH Mxթ::<|37cD݀36OŬKImtoʘ L&LQQ93>g:9 ê>p$\Q2gה,2txtgȌ^$˷r$t3ߠso:{{,,M2>\ 4W*TCchcc >gMHQo9(##`D3xd~ZbXݓKKdwxQb KU[COCaMmm]Ir\qK:էSxc&H;ԢY,vvƪ$|fK,R VV$rz@$ug 2>-GYՖ:7guB$uEy00=hxx>Kas3ɨB2>+#3 )|L5n_4Hurr$׹ <<{7X>:fSfeQ+da[88=Qg2I]BUabլ> ߠ22;&n&;!88=yUCTę՗u$3<{YYeK73K:K3K>3aw.(kYx 6C72m'm]]'\ƕxxf9wQװ MEzpv>}RDBIIr䂧wFC2V"B4xx7b7>L>gCO#ţ4;<(.y+bzzV>X7ffռp b:3x¿+9[p"xx+<s7mIIIu::bbY< cʽ3EE x7$BEMq>L i,,QUf{dzQ"B\>\ \|,}g ?$B7Kǎ'mr7;2BU+.²|7X:}|o{3Ȱ7tgDSO.0.xg <9D>3L:fxQbqQ;y6[$$$ 71ɂD#Fd>qKII'$ΰet3}a9<6x zu$ Murr >>2gE,7:UKMgBðһq 3,Ȱ\u$rr$,tq33Er''ruH̰E"rB xDiNJMQ,|Yfbaō0xxV\ EB,gQeǕKbC5HLBBg3a+ LU>>I'ru|ƂK߃tQp\3VVB$E,\r?6~:->gȰ>:%|qpE,77,\\$,qg\jz" g>g^|u,xE,׃\ Lx3p \,ȥÛg pp\E$-XX/;wyCbxpV"??wa>>]mI$"fg33 g M \׃i'rY:Q|Lqנggs>ǟb,,tX2tpM,EB$$uiu$B[{b ,ƳQGtêp ,2׃xLcFNN |#J0y p ,Vpvp̓t,,3vv>>/e5yy#9xovg踭hp >pQӼQ׃|9Y ̂Qxoדj" Y9QcU3q3>qs}\,B^MKKgg+i,,\"", r$,9+Y}E>>Q}ߔ-H\11QБ9&TW윍ߖ9.4WlJn6H,M gBBg22>,,ȓ;CwOX>Thpg>Q|HHimIm'r >g>bʢb>3Qo뢧cЎ}MaK3e3>2tHz'r'g2g(Bg$mm'D-7\tqKXX|aYoXX> |v %ӕO0n8숈Yn04g2̹v>||̓MuuEMME,zib~ ZUebaCxo󳠤ЖbQQM:faR2|xݨaưM QK׃\zrmm'r>>3R}ҧS,,,$z"" >um'jHt$XX3Qb~Qq>|ɀԼ#W4ٍ0؍9|>Xh!WW_3tt2q|tB@$u M\z^""pswf:b;ЬfQME>3\m'rz 73QRbKx3ȰX1K:xb2KUM<|p$rr$uBM,E7K1Kg>3Q,΃BB^B2??r@rqQQEp, V| Lwyw4ٿŖ׃gg2ggQQQנ,iii, థ\iB\qw+w;eesxzuuQqt, uEt7a~~>Q-bb~gMߠ73v>|Kb7L.5B2>tts:M>3ƛq\$$|7,''''mIrio os2urrBE,z^͌ S褳K3>ZZE,xEbb>Qт3߰,,\VBÛvXKŦZb:7qq Þ$r$t,z1秏>KUa{RMgt3;"瑬Y.y'Ih[Hg}6YY Ezizibu''mv[&{YGII'rrru,r搼|\pg23Q\z kTN6Y(-Q173>,ppv>>c&FF򝂳:􎔳3ur'''Irguȹܝg>K7>:3g>ttуH6#"HQ>39?@I'I'hx|9uBBuip$rui"u,EbY99w6;{mr'm]zfq̠r]rr?L irr$QVggE Mtg"BW¡(.9Xpfד7,\,,\|ZC55<ʬ| ''uѠ׃mmIr?E1DEg2g>>>>vtg>>3tg>t\,6y|,ȃ\2 >7HzmAk`=!$B i'r^VEEY*ŸZ+@']$L,Ȱ$$$>\,萐eBu䰰ƠEg̥ayΪVz,u"E66+y(F&C$r'I''$,>73m'V26Lq77>>>72>:ɓ>3,_llhg Q2B'IuQ4n(ܘXp"rr$Ɩw&ʝL(r'rrrࠤiB$å\ u ѥ > BEƃ EE2׹|1>MЯNZQ5+|pL7-K3"zu,,^?pY9abcC!.n f}"$rѤ2Q'$VeaSZZR-32tǕK>Ԕ>g̃g,M _0CH2s$Bm'Bvaw(0yդQ H>,''u{9xТY- m'r" M}:z$"x u'IruBis[$uQ33g>>>x>QS5:>gN*yyդK3 $$giG-Q衅+qBH2p3:S~{}sҕg3:>ggg,xa+w|}73ME,Y{B$ۺBImi22ZC3,ERӻ,$'''$s|rm'$V>33 mI\^IrBK97vgB^ip>7q| 7KUC9oqЙ؈0y>,7ggț\,Xx,v\V@@ruH3 Ir"aS;ԕQgQRffxgqK>\p4.gt3HpY\Hrm?, ,Brruqss>\]mIg$rrr$turrg,ur'IrrrrIm$Vg D7XX1X iX5F[MN P&7gKSQѰƠ Ϊ"΃>vt3EzrrrȳLHg1--ru[h݀qQ7{f33>g2>QuuΌT`|v2یL(Lx%Br'r\,qB$Err'ir''r2X$zz"דqB'j^""$m"p|>2\Q9(9-1ɔ1%%> E1wk&6}Qkٶ#hHg2׽{9f׃>LQQ z~[a|'z :eǔ1mIi袦`` |xQ/zuBM ) 22 2Eu$ȺSRvu,}hEѥB$r]]mjBVr$z$у$MXɠr亊b韺\BBL}r'I$QK:x$|b +0g$BD}v2VHME$]I'r$ ,$$ƛE$>1?B΂׀q p\,ip1\]]'u99f3u|Nl!6xM7qtƳ清UǠY9f>qQsԽK77>E,g.(h|K:ƥx>2>>g{REzruip(ūSggMVrup|x,iH}79,B^r'm' g?$q2HUvR{ ,grB|}svg,zj]]B9>rB\k W* p\>̰XeCQ3 ->K>7/׳ru5Зד!.N!*eUI'!~>v>QaBrrrrC#`ИOHggEzr'$,\VB"HוUx׹t߰H͞$m]]ð2?rrq1b7ZpMM\rru--- ^''rf+`L3q^BbT5ʂMpx>,Xebࠕ7ȃo ׹X/3$'$иY+2 ݀蘫y!nkKX'?yy֋{>Qof ruH묘 *!CM2ѥzrg,B''ruHp733xNx$'m'@t VBq}\p΂ӽXv>,,Þ"LɔK1}L Q;wT=*CǓɊb>Ѱ,ȹ71K3GY9oנE/%R< >2u>X3$3թ9…>aU(+1eIrpbS!+[bɟKKǕ{xV'"9Qƃ:=_ viB'mm$i t3yirrrB݄qt ҆UbL9 ;96b >7H>>j|7:eDЩ5C%->|>>719{,K577q7ݹz$BѳyL>gvՏЎKKKmm'HD[ֶ;|Qx߃:oQ'@h,vٜ0(a2 ''r$um'Iu q,,g2\pQ\uB|\B$zԆ::Gfe|,N常Y.[Cy.=b3в*TFf}um^pNT!kw/ ;V?Ƃ73EQЧwwCK,t}2ׂQp2gMM;>X7Q>g37m'rua[#=k5;||x3 $EMl g>0Tk6 uIBr''mmI͛g DʕKs\ȃiB$rrQ:f2Q|>+y![ZZ#cfS(y<> mr:(_0Ny <;-9991Hzr73CSQ \| Ys7q,g>>2U{a->>cn9223ww떔vM,mm]'|===(2YaxG:3̓vtb#hL>T**cxBr'm$"BmmIm'$uB\ qד},tt ,ۂ:U gxxky[LB"z <9|w4F32: ''z>T0SR{LF!ư7>3|n5 g|[lln(Cb>B^m$QCNyN!*Ŀ&2ȗY<Y2> 2ъcWcܒ*֣Y7$rz"uj'II'j$ͺBE|,Q̛rmmsKv2ttH|N("Brr$V|:;9 "uLJW ʐQ3וC*y+B- &xgv1>,ppEȰ2gH0N< QWh_蠰$rmi[&O!4Ng}fUx|hw>q ̟n#nW`y<2pjuuBrrˇV\Bzurι ::7rד1ɳqtE,̼4$''ra:QE΂: kpBj>pJTc|3eDge[hO84H,BÛ渣8ىkdU>7X%a>zg>L;3t n=nD`gLưgr\"$B"@r$Bi"V",̹2qѰQ7m2>XBHh! umI$x>zuuaڡ[_V™00:x7ԆwWW_(o|iB\qkOab3K733bY|>2gx5CyNhZco|Br]I]'zEw[C`44X3Tx|p>cNc#|6xvxLg$u QEEߛu$uBiVVBr'BE7ΰtttɕXX>,'mbR{EV"VHc5NT9.p?'"{.Lq3K;T!w,Ek#F[Yx|xUv2 "rˌד߰,QQ22gx Z|Hp2L*lnkyx|:2z۞V\}\ t,$r$BBêurE>$,p $rr$ƃ>:X$rr$3%G%,Im{o|i"ELCT. zr$+.+a,:S#W!SMƥQ}f9nnN&м$$^ 3KȰt:g{fQ7tgm''mm'mmrHyb{<ܘ>23a4xMM 45n >ɂR՝\rBqɃ E"Br'uB,vBE>\rBBuB^$z gg2vQqVii7%-s\']]B\M| y_+ggQ,up>|L wpB$zNWn=!``[ piii\H< EHHxԂq%1|p^$uz\߰iBu$mm$EY((xx| |3ggKLD.4٣,ggg P+FK>}9Uu>vg$r''ޞBL gHV'mr$$$"p׹2 Mz]mr2gM\Cn\Ѡ,tt%t$$%|x|Y\Br22VI'r$u*xDIrzzxbxqXMȰ๹픃,ur$a|,߃3bHE\B}x|ưHj>QxO4b 6kk#Wn88.0WWn!aynN(;sXvGݹu'r" у\Bgggt}muȠ6TS}32g,,t}xb!J[UXݹ ;5PPh |ǽ2t $MvɳQ|$rz,l5w9|E@","BR2E2>v2EzHpZ4(;2qqq72,Bu^"z@uQRx|7>,u'r׹>>bZ6Wll_!cf-|HELc&5։T#T숈4(dlٯ>>>>ץi3MB2>m,L!T胠װ\,,bY !ȰM P x3b܋Q7Kfob Vg7Ԕ*(D$r@pxč4Q]͛z$i%/X2,׃gƹ2 ؍cst̹gE^'rp觯wSL̃$rzi Mk؉ӨqqM##=8#lll_fTTS߹tƥƃ3>7B$,>׃'zaT#Q׃gpEg+! PP !C-%ư JPP F;UQ:,u$^V,Q!kBrrj?E04’\$\,uBXV\q>q ݃=q$m]$b{9H,߰uVxܦNk!TNx>,,g>9n=։=lllWWnh6&Jg2ఃQ1/݄u$$EHLLa7mIrzkڗQ37>3YAlGϾ6bQyZ3:qEѰ|baOύ5;|i$rriEL񍍣d,Buig> p||M$B\㤤, 40Ndx>g$']]mBU:KEȰp KRl.yFkwy.+cLƃw488#=8 k[c>ڣ4w\g߂ fb31%%̠""L<mmmrzELDܲA*TNwdeKg6 ) aQ| ؾPأpQe:ZS:K3BBiiMtQx95p$r$,\haV 33vgbs17כru,r$xQMÛ`C5w!+9 QX"$]]uEu$Bx:U:Wģ&cL [pCN4#`N_lWnL2x[DD9717נHL Z&m'z !*0NU36ScFW*6QC8_ϙx3٭Дgi ర:Gc#h Bu,QgG:t$'Ii"uðX7,yW٫af H\>7>2rImm|V$uMw5NęT a |3 7X蝧n5ŖڦN4[ƃx,g2fCZp ſ ݓ>37v>[!ؙ#ZEm'zMQ=8=W*h׃QR{+ګcxbTϙNwk!A 2vɟɔQٍ0n u>R~g,Ȱp\ ݊g\Itiuΰv1>,\px_.v7buuXӽ7i$rrugȞ@"bFTNy;Q펎v;Cwű`k&QQatqQgg2KaS5.ݹ׃,2Y40_T M+JJ0S:>̹הcl 87K*!6;58=*x}>ߠxw0lBu\Q:2E\zzcM$' ijz\%g>|9{X7b r'r}Q~װMEjIu HX1`=Lvvg\!#!nWn(yګ[KVQ7Ơe~RL`#==*G>Bf,tBB2 [x,$"uz ׃QKv>pz'ݹQ2,r]^L66:1ǸnXi23knTčٯ ZZ6C \\3Mtqq>QK+.!633ga{ʆɳQgȃm^E6`=J l윶OSCNZ7v>Ĉ4x *=+볔xDofa!!J¿.w\\}qL)=l;,qsvg>>gggg$rêurruiɂgv>,>7ưE$rrqvg |ttB'riٍ4ٙN6Egɓ7tpEQU!#*yZw(L7Ό,ursvX(4:QggנG9YUa,mmIruE|ba8Wl쁶ګN>39.l Pb7S# ~UQT#Ocnhc珝x[Nlƃt>׃׃ț>6 'Iz\\Vz$$BEM,2,QpH$r$Q}Q\I'$ wl!~)kᩬxM\׹7E|5**NTTy>董NNgMU@r'tg6*ę<:v>>>>Qef3MEmmmm'r$BEx O!ll*k(8ɃQl0勗O=Wn DFkN`)h)*ll W=)Nk+¿lW x33ǤgxcCdԔru\\\V>1ǔ߰||f~x$B|ggQt}Br''r=0N Ƀ\Ȱ ,,C lTڂŅ99{Ǡ"$rvcO3>>>>>>>71K%2נưm'uEp諡O8l=nn8Nx3|HLllllN=lQ 6N8n8 8WWk*N0ll =63>>7Ǖx寸eB$z$ä Mƃ>XX>>xՑ+wZV"|qturr$M6)֍nkywUX,|UeeLCnllW032LwdмʬǂB$ Q;hS;5TnW6Q>>>777XXXX7/̃mI$V\p|x5#PPn= 8ll8hyWT6&5`nWW0J00PPlJlll *8l!g>>QQRYwwUQBBExGӽtg1ԕ7Kכ,ywДU:>׹ z yyO`NNUxpEDCk(wcZS&NWlWW8nkSc5y<>x5Q;…Kss>X>׃>2mmIrQxSţWPP lT==.[&On!`)Jl8kOlPؾP؜ll A8dvvQ+(;,,G-7>1e-vH LQkK7Q3>mm'$VEQ#nWP l=A!`.[LZ;!!AnFAJ lWPPPPP؈PP 8na223햏S3 |UUɔUfeUǹZFkC5kwQ3xД /Z؜QהY~;;dYNN.9q +>կy7ScTW0OĘ lllϿ>XXKKs3Q7mmr@3S`knlP =`)!6p؜lP#hhAl_PPPϾP_ϾPll#qgaSL\3>}U::KU:7ם9dGůyH|и{ ⫍lN׳vv2f:&F!!N.|xUg>v7;y>35Į7C  b& SX1-ƃ핕m]m? 3x6NWPP n`_ySx 8P&yJPP__PPPϾؾϾ쾈숮=ODQtg2g33-%L2q:ФK:b::{f:G4yxgN+% TT>>UUƃ׹ЫSC9QUC5N&Tl*b##LXXK>>ߠʐ6mmr?PPP 8h.ny숁P_=9N0_ϾϾϾؾlWT&D>2v׃33B>-a:ԕ1bb3:+cxQ2נx݄Kŭwb23̃+Yo>>vנb;c 3,,||x:SaFCw#lllZ !lĉk&Z77>>7>2vvׂ5N(]Igׂa!P_ lP&[N=왦TPlPT64_ؾؾl왙ag \ƃ$B3{:aXR}3>Q33Q>>>|x|Q Qʕ7/ N4..mS`= Pl!&l= WPW lP!O!4__ϾϾϾؾPlFC>,$ip79UUa:bx>gQƔ7 >ɔQb7v7>C|KXq<(N.n Ȱb99a6{s>UǕf;f1XQQið3׹>p3,sQ{> 17>xa;Qq>aЖ<.00lF x|SwNF-o`ֶPؾPWlT` Uf9+U:q%133xUU;0&L]mrTWPP P=*h[06bNWl  0AOOϾϾϾϾؾؾlPlA6bMi,M$V\K:;9:> Bɨ9+b>ts5…դq7,𓓳>>ׂx׹2KGUŦNT5Tn٣.—X> Lk _8ؾn*K%Ka&55_#D]]]rz&P W TOىOx P ll l_ #*T0PϾؾϾϾؾϴϾϾؾl숈wt, BB7bKбwxMBHד>(>􆬡Fny;q,Ơ17;H>>(.K7>xh֜lNTllnykNQ>gxn=TC6`_ؙfUa;ܘeɹ7KLFk!#cr$ 2`0!27bc#!;: gB|xK:{Ye:Y:5ٍ0y>LO lnWW#hg2>U 5T#*CUx.N&6C[7퐦lll0W(CmjE>c*ę숈 l숈PP AO#;ahJJ؜PP_ؾϾϴ_؈04wݹ߃\Eq->`čk51v,B$ruX c50:%7|kTd72,gp:9+dxRky<> FT8N!hx:G{2>2ɼ<O);x0ύN!N9cK>>KdyW c CN& >mmm'rz`0PP PPPPl!5)PPlWlPllPPP__ؾؾϾϾP숈 ٣%x7,MM|KeЫ##n0A z^ד2Lw.W;5n8y7ɳM ׂC+xUQbwCZxb1K5` aX-eK37Y&N973Q.0W0kܼ17槯lll`\!ZmmmI'z#8W PPP =!6ZN_PllPP l쾾_ϾϾ؈Pl l쮜 D::-7X>|M,ȂcWnn8=`6SEpM,icy!y`yN妱;U:3t pDcaxƃg>3S6ڡZeR`ګ5b>KQʐf;CTwxţ4Ͼ؜왣ly)n8=mmIr$iH!숈PPPPPPW8*ZLlll llPPP 쾾ؾϾϾl )1K>Q} ƤS40lll8!`~a:Q HH| |Z Hcyٙ4!Aٍ.C:U; 9.>>|bҎv2>>LC.&555Sڑ[aU3C5;:ZFy5QNϾɹ3WO4_؜mmmm''r$"H=WPPPPPllO;;hTW lPP ϾϾϾϾ윮lkh AASbocZaU1Q&숈nO珧լaS6xonW0`O44y37ܣn44!({>2̺ƃ22ZnlF#hC6b3Sw5&5&;ʝDSFwcb:.숈nU:>tפTNy54I'III''"H6&ĮPPPPPPl `S#ٙW P lPϾϾؾWĉ!*#=ay!Sf9w&yYf:ן)=!69CCc46sNl_C59aד>6yWg7g -kll8Fy9QbcF#55wOkklġaU>>37caOm'jVExkPPPPPPPkca Nn=*ĮPW؈PؾؾؾϾϾؾP0Tw5&CbkT.OSewf3>1oO#ڋG{YS0_F7ayPح pLHg>Z#n*Zx| , L9(9l WNxL輐ЬC5FyyFk#T&;Ֆ:6=Wllll0yX7be;&w&&===Tym'rjr^,cNPPPPPP쾈 P(aCNk*8왍*8ؾ0PؾؾؾT <;qg<&ZQvbK3::KewűSKTW04нKN8532Ѱ3g>xcTٍ[PPPPPPPPPP숈lPPP_b3QC)8_lWW¯Z` 숮 PؾlĉC LfK,,qǕ>vb13Qx:eaK71멱 S;踣l nZ00Tg>̳|5.MgݕUD cxKKύ*yNk=<5C兯caeL6ZՐUc0Wؾ4bǨX-ed7Z#4(mr$Bz?^Bȃ[! PPPPP쾾llP순PP_Q>O0l 0LO= l P0ؾl=#Zڸ+~|iK73߰KUd UfCC59SbxklA6UTnk ׹>3>>נHCn[HE+Q>v7>:w**׹7Kwk*4n0Tkw5&cSSCnlh敐wyٍl(Z:dyN*OZ褂TI$z"z>CPPPPPlPPPPx7bS8؍*)6З* J8_FC5+([H\u$ 2/:Udk&O6ЬywC9+ F##TF5dUU;FxK7;0L\ Y|>Uy!!g3QZNٙ٭c6De1WWk5eU:|; `P_n: kn*SЕbyk5QmV,EEೕ PPPPPPPPPP숈P7QS! lP8)D|!숮ֶJ*T_ 0#hc9܋r\Ȱד1:Ud5&CCwa;5kknW&CF[ps27:(6 hH3:Uk,Ȃ7׃5FF`FNS6:eQ+*l֡Lbb_lT==5l윮 lZЫ5<E^$z M\>vK:U&&ژy嘐&8``y(aR7UqgK:Sxv2c.TL3KKwS,>>šZ6df UdCCw&=l!C bbگb!__k ;y!#dmj\clPPP쾾PPPOx>>Qx)8P #Qxw4؈=T==!Z= lll #Z wy53g2ד3\q31K:o[wK7K5kS;FčyS&)8l_w|wPĉ=AH*l_0NOYU~dАK-:7-1p㽂Q7ǔoЏ `+(XK:<(NT։SRkZyyw9fdz 23,ΰg>ggg3< 6ɽ+f:f:QxU>Uʩǽ>Qbx瑸{ӔQոw5 剉k``*y>Q;< p\,3%Q3>>>3gK,UcT8įCGeUwCTlnWllll80P4!eИO0W8Ķ=#'B\uzHC8숈PPP숈ئQQxxxC0W llUPP؍NFllTAnUtt7FaűeQbU5d223Q3>U>b;a`!k#!*AgxwQ3>/Kgg2t3:s튂g{T؈؅! ;C  dC= Tn0Wl8#8=0Ͽ`lWW=ĉTy]rBzu$u"L; P숈 lW`&8 ll WxQ`PP_ύ!llAh`nWx:敤S;w(U%xbSNNhH23e:77aU򑭍808Ug+>–׃bfRqƌV>>sK>79_윜<###!177fUU!=yĮ !& c__dd{:U5k0؍8n؍rrRC# PP숈 6QHhN48=l WT&ZaCWlPPP؜08llnhnlQQw#`C¦;F!Kׂ3 KU:K7ɔ|a80n!賓>+Fݹ7vvga7$ד>by .<¿8W-ݓbĭFTРQCWNf:U!80ؾؾ0J=]]I''˞HF8lPP숈 (0W숈A8n4 .WllPl0*  Wnyyyk#T쮣QSUQ:DyNTNyy&Uo<5`(:>[Q>ߛp9(+W_&:K#:73䰊 vo~aL^p䂠g׃詯ZQ.40l X黻:Dhn6TT5;K=lTx||Z&N40Ͼ4!]ipbT PPl lPPlc؈W lA.*Zll *!  0N&hAxbНh`&w5ZYYʆ܋w..f3>ȰY.9c8l#&;U`WWT:9Y-,"ru" p̃QʐxxL8.0l6QKaSh#ky&O#nlģkGh*8n#O`59O=._04_ ]$EKTl PP윈 PPPPw:nW#T=n=A#P l_*l خ=`F=eQQS¬!`L2K6`*ny;23էZ&.G->g;Н W#b*=ĉד1YCF_0kXg30_ؙ!&lP왍wӻ purjuug,׹g(n4_4kll왣#F孿٭ʱwk8TTT5 Zؾ__W ϴϴϴ؈'IKkl8PP! 5Qxa(CaZ&`TWllؾ  WWn=##nǕQb4©.NL >xO8nN#!32>#n 77qggנ0؜l5T8lW_ύ+9{"Ì  @@\>,B$zz΃v 2ߖwWW_Tnl l0WWTF5Ĉllĉĉ!ŧ:PϴؾϴWI'˪bUFl*lPPl ` lWcګ``lllll쾾J J8nykU34&y#x>vLډ=.#xE,gQZ*Q>דKsv>>:_ϴ؜!#TT#!T :M\VVxa4,ruM2>3"B^"̓|Tؿ ZFWlllWkkǝ!숈lWWF*&s#Wϴ윙']i|_ #nPPPPl8cفl6xR*TAll lPؾؾJ_ؾP n#&>QDC55ДvvFnky#x"נ7>ƃ|33acϴOdcb,z$@id.٘>$u ҎxiV"V3QbxቍTC4_80WWddcch!=0W8WAAy[S_ϾϾ0]]]|&!!ֶCWPPlDD!ę |33c֭.llllPPl__WWؾP*aQQxC𓓓<ZSc&cQu,3YxڙϴhǤ7Q@?Xأ|ix{9~L\\ p37QxQyO**#` k٭NON!!l8=썯Cn0_ؾϾ__0]]]$|k!!!(؈PPT 6=LƛƃQ=W8lll8=0 PPPP_ؾPWWnSВ&yfQxnQ723Þz>e{G}>q-e;Ͼl NbK1:ɤVi:60W0Sbb9(6\ K%tL7R9ܫ6|xd;L|6WW4& Z`WT C__WP쾾Ͼ]]B[a։_PPW))*yQ >n0Wk` PP00ؾؾخىɳUyX>װ" ƔǟQQ3fd<>xb,ȂU;w֮0(Ƃ|H99>2g /{YdzGGeU l0hxl ;N0 ؜PϾmmu,ᡫ;;;6OW숈P8*ٙ&䃓>aT=T8*#C)`=쾾_PϾ8#677Q::x:`#᝕镘TӀ2"pǕ>䎢++d蘦Wؾϙ;ɤ05>g2Dc+Z숈L-ݓ7vv z$X:XX771KYY!W.\225[Tn08W윮 WlؾϾImz K ZxH*PlKyOOx..9; ,Hx.l0`)`W+:ggXU5W7CY&TJؑp>>/x>Bpt3Kɹ%xQ T8l0L2gKyllġC*__0l`O#Ͼm 7ɏ< ɓݔ: דqt\H ͌>>ו.(hgg\c5<$z*nl0ySw437bkT7|7W!W4韔Xqq ,i׃U+R:KcCcLvє17K dCϙll_m"R#nФ WCx3Ƥ;F x7>N=PP P 숈k5&WW.5KtM,Q%K7QGGԔ\2yNK>2\h5``5;>>9ūc[xC<{3{oHyNyؙ(а⹕Q7b| "V\p,,,B>{K7cDMq7Q7LL묩;;y숈ىw鹫.ؾI"QդZ+aS윮lJ0|<6xp37>Ɲ+Z숈 lWP T=)hhٜ4XE//K<+%Qpt>:S֭yUK7xƛ.wx b2,pL|[h[.[Q7>bUUV eoOCvױ4.wդ77Q13,V$uM$77e禯܋E7>Q:6#l=&F=!%2 .44mm'r|R< SZAWWnTMYC6xpL>>׳NFWll0ā  l숮nl*O`مԟ,,gqgYGeQ>fWأ:;c;pQ.45aw肠$u>Zk>gg:e|bUH6QXϙNf%uB$ru,ưȰ 7v>׃47:;ylNCZL&|.4¯mI'"k cC)08=WkO6>踯Qxxngw6<+N! a"$t݄xMo{%X汯wU;c:77LAىCU:o>BBru { \H3g2>U%W 37X73UWb3>S5wx+Sm'$͋ba;C蝑 W*Tn >QU<>>K{G27yF6Z*Wc_l PPW lKg3׹7:>נ4O{3{9dN4.!p2;r23e+.40.[͌uBRUw._TwNwa3b=W#Y{13B$$$$? (44<|"2>Q6+>ɃK>U;+4.LM\E S amIIV|xoCCS|W *։#h7ư>9{x>7K"PPW#ZO!8nWlnS|.l PWlC1Sc褔77q>הws2>N! >լ.0nH2׳fHzruƥN4(S@ra9n04NWl!)ߠ7\ipy.4;ఌtw.q#K>>77X:UX>7w4Im]mEQYYŅl`ֶO>v33vvK^|b;P`xS&N!_F>P PPWWWlT62K+ŗvK3X>БܧxnQ3$z\5Lp,UQ\z$\EH>V'rpx6&(FCF5Kfwll 2,ȃ zB2|L54ܖEzv>ҩ[LQCl.<{p׳Q{G:bQpQɳ߃v>adQ737'm]Iup򆤂c숈l!!#̰peg22vzSd`8PW!a4hKXZlPPPPJWny2:.܂27x&kܗQd.4+ГuBg3ag,tbu$u,\  v?E|S6&eи+U9(U>װ E\2|h#T:7XXIm]]^QR[QL֙숈W 8k&A*QvߛE 3t3ƌ[(`lPPn.|:>D֜PPll8ą9n+>/%1xk=n&a54_7Xx|QMKKg7K+Y ,M/ ת$']\2c ;o5FNYv,toHH(׃ћi,rigK:>gӼ;444cw9;b5Y\D`=e/逓XIm"| ;UF0؜T8&[F+9gu$Bi ߂}̃ƛ\H+pD순!=ىhKXlPl8=#*AF|kw[KXf9N!.|Z>X|37r⓹̠gXx.3tqƠzI>|Ч{bxZh!8֫72,G|6++U>gppz$?̓%>2g2g>>>:;0ayTyScw9: \Lha'mzbGa;Gfؿ&#¿M,Br$i ƛ |L+ nWh>x+=FCTũ pHSccX XҺ1+(ى9땂2 7ig7X55q>>s,rI 122Zk8= vB|bbxǓ gĝ3Vu^>X߰2g׹vgQx50( xK;x32>QbDD&WbKKIZ6ӼֿOS&T= 6++gMBu''$p,M\u>gQ T 0nM ..Ty&C ЖnCՊEH9GɹXKd ߂HvggtbMM>7Xxaűab7q7G-qgur3𻨓v3/1;n#ת$B\gX qoEÛv zEgggg,ȃ>|Z0Ͽ1>g1%oC`TllFSQQsebDZadk=nL|;2|"BImmrXg6# lkSx3qѥêz͘ܫC&a4FDDiu>%𤱸1tuBQ7UQQXg,Z$r>3|c[dR1/ Mד7>xYsi>7MbwWn$g>s3(©QDgУ04%Q>נg--#čWSvQ>>q]]Yh L ;yT&MKXsHurmmIuiptrg3gTWTkCD3tSaHx3>:;yN&L|\$- 1$rrtт +7 \gv𩯯rzȰLT*a1K3\>途;>țzBp\,,Mxcww=Ny3iV" \>3xoҠ2>b7,uru3N`Z|1/ؾ4f>߰3c`l4w2Ea&&wH[ | z"zrmmI'r@p cQ78:77EBj3||72w[ rBX:3$Ețc(7 vƝFyCLEzZN֡;S[[CUưXo+̛$$ ⃰,SyN9YQ3D-}2vX妸Н,B^zE3g(0`cԻ1UCln<:Ìba07>>S ] &O9(wp&aQQss,?\'Ir/\H (+a37椘؈ vƥ$r'I󀂂X>>e ,rrV}>\^'mIruêzzB +a7t7cN3'"64Wk UF帼2>Ye׃i^^,2>|, N8W_yCUR>XN<>71bddd;a:1 놕3(0lW=TK36!&a|QQErruQԩ5kT0y;5mIGeUYc5kdGo\EѰ$'ImmrtMp{9|ɟbWy>2v$$>tv> O r''$Im$Bur$rr$9GKQ+$rrHh#k9wd,::>t3vLx|̺NnH ff+.9Q7 ݨ->3:eӼ:O(.v<+!nٿ+X त7t$I'u5a+.4mmr-KXRxRYn ,2qQٍy|Y+0hx 2 >C[L271KKKX09v:5kż1ݓ 23׹/,ur'm$Es!Tywd4_`Zmmmmrg7XY9d>v:y<| p{aZh;Ԡt2Br'm?p>YYȰHCĭ| ใH?z>>|WW.']^"Bp z$@@$/ 3Xɹ3RH ,;٦Sʤ3q $$פ븐gQoC7fdd5Q7gv&.D| |>nWy,>;XǤ鄨|"''upf<։FUS4؈lkmIr37>xwh+weg\'B,EQ,BBΰnx \iH""\2 Q>C]r'"X|L$rrVt/\,2>| gg,yK}x//ɳ3$rr|Յ(o22ҼLL17>:{9fp Խ (ixx0yciB>KGf7>v1-s'rz[h&X1:Z`._WmIrgQ>xS6:QCaL*4+׃@]'rȂqi $;nE>7zzQ 䋧fllyu'''m}{a}ujrr$Hݓ,Mgד/⃰3ȃ:d9<>%>3qɔ,B$:b}32vEpaeKuuVHK}qX42$gi>cz>Q2xnY1II b:177ſ0WmI$>Q3S[;Ux`qxb(g2gr]]Im$,s-},B3 ?$=EpK3$u\ v l\']jj$\:Ya$'zvE\\ߔgȰ33>,>9ݓvv,tQכ^r@dx,,,uzur2rB,߃:+(T6M BB΃g>>;4.'ɝ .(93׹vi@\1%%ɽbb&lAIp7xbQwwS9MQpjmIIm'$t}$u|3Q{ip|W0.O,1-$BH+U/ D lng"$'um?q>qQI''$Ơ>KQ E,7%Kg>g| g ݓ2,,gg{vEu'r$+Lqu$ru㕤$$,\S~CXxL>7M.LðQdN0nc|2vx ,,/v>aC  ]I;;`CNbg,Qpȥ rrruqsQ$uHƂQf{ ElO\2B4N {DiHNThL2MVj@\Ir,qIIrð3e3>2%eQ\ðvLp >q,Z6of$$"H9|Qg>q"gB$@?@z""HGe3>Ơ&h rr$ƃS5W013 v݄/|܅NTT왣oʬTOD|cxg,,3,\у\iۥ$jΛ ҅{\Wc2ݓ\6FZ>ݹԺuLLדV$$$u$$iEr'I'r|{1}XX{{דqut> qݓq|5a>׳Qधt3q3\ה>|ttpBK:wŨ>z۞VE3 y00>7x+{,2ɹ>3a40nWl؍"{+O8O CpBB\̓qu$>Mj<2 pw7>izVL6SX,B$\}t,t u$uVI'zGX%vuuM߰ M>gNC{eY{->9(7tqנу3/-G%/E3wʆ\Ȱ׹>>Bzt7Ky0D>b99bEE7K>y4lnmf,uB>ƪrB$B\UUg k,,g3quz ~9ʔ2BȂXt>3>,,GLLH|zBi|e71X1a͠g3gg>,>G+9Sx<.(K7adǂ|Qɓ K/GvqÞ$^3(+9Gx ^Bê7BM3/1:51oRGeK> Q:;+FWW x;a14РYK>tǂیu>7ƪ'r$$Kg>&|B$rz31K+5L 7тQ\z$gKf<qx|\ȃ>2M, >>exgQy+K37:>vgg>EBBg7::铃Qg2$r$t+Y{^rBM3,1XGa(9327XXf ;!Ah֮Fr KKxHxX>5NwU2c-13^g2ד2zIr$31K׹Q[.֌$r$q|rƟ;7>g 3, |5 "@>%oR׃ v 22т7ǽ17H LɤQ\BÛЖ}>72M\$$,Kt $BȔSQ'$BB$ȃ;<<044[q7%GCw<;Z# l&mmmImmm''$>>x:ӻ7h`C>>דҎV'RQ\ȃ>grrruitUn r'BsGu$>hn#Z3%ư, VD4.+| $>>3s1,Mƹt׹t71dzՏ/u$ÛxaQ2XUx̃u-f3u|pa M,umIIrB"z₋(wU_4W왅K7> %{QZ-\>cOT_0 dŝ >>gg$$^p<.yH,g>|}-Ǖ, gv2>7X>3HL69[&(-uV,>: ݓXwnx2ః+9$mmrix:6gXǤ3rm]muiLG{5..(~o7>3דݓ7:dNll=!<m]mIImr$6мKИSм>>>g,uz|bK7|~{gvgg,|p2gg3xdc5yX>'$Q-12|!_H>ĉCt3|bruQS&Uda2vxpX1737v׃>>7>Xɔ3xCů5bɔt,7-%׹ v2vK&7Ѱ~$x<.~x2>3\umIrf--e7>GY7󓹓7ʣٙ_lFY~Qm$'mmmm$` USн֭N9c|3,$$BHfUQQv2gƃqU;&DM7"rI͎ L5OFyy< \M藫典S$$>:R22X|> > vXXGcU7߃x7KKq,|ܣNtp^$ubӻKEzuu|94¼ɔ73E$I$fY<9Y>S::>32׹3Ь[y4~Qmm]'Y?'mmm".ycaaf:!N+zurrze9м3:>>g3g3Mx<:Sȹ7''Bڒ((2KӢ&9 >>>XX>K7>%e|S&=yw׃KռX1}tB$B\Z.(f1>i$rB|-3B Y>KǕɳur|: f픳2׹׹qU;5y;7sɹ>Ѱ2ו.¦cm]m'+z'mm]I$)==[bUX!!Q}H"$rzQ9+oҎ3HLo6cCכv\$'z|c.wf멘Zd숈N購<_0N&ѹv v׹qt.n(Kv݀77>/%%1>-ԝc#X99ДXirz +(3$xBL}1>1oX,u,g32ה>Ⓚ׎{򯭭wQv2g}>qb,D<ܝxm]9YUm'?lP!ba1w#ĉ! 3prr3U-%XԊ|Q`{Nşݓ1D  zrrۗ !8Nk QUڡdlNWP0vv 2 34Ϝn!23>X-->敐5y0ya3K7GY~蔹 x|z'zL U>uaЖx/̛,MƠ7Ko7\E%>g2ɟvgM,qRװ|Hm]m dUpmm''$ZPUǔvC`kh>v\BrruiM QK/ |HLZOn’+OkFY+O6gVuuz6yٙ.#Do*#hZ5W|&Wy3>>7$rrr$z,S9y3fҏo3_FgKxpqV$IupxQ>,屝%,uBΰBu 1qװ,7%72g>77׳;.4(ᘤ>XXBB,Hykܼb| ,]mIm^Zdj'r$.=kb7>>gyygvvB$H\t DWCx׳藡C 29kw 2,nϙ_0Qy0WnTCWݕl,>B$$jj'xxKBH>2ga{xCya|,g>7Qݓ> $qoꆻ>y4(b:1>"$׹1qê, gg2X铹s ڒ+72\D540FQQhT0WFW 2vv=Ĉk H|ƃzuiE"?''t׹u$E2v23Qx>guuZ+44 L,g>׹7>VuuuE/19Yb1Q.0y+:sHK:sirH\,M7vg2׹XXKe<-%vzu^ kl.+ 5n5>,$mIuDip|>Q0l 67>ge&C|/2, H,3}s>704[ K:,[6:3\6N6#_Nn)gKOFTxMz" BBM鄄ݠt3Bg>q߃H^z(4!E>X>qp"êBq%b2ύydb.(<9ʼ@E2>t21⓹7:ee11e:G:Kii[n0CnlW>umm$Hy, LpW쮮c77>>x7ݹ߰,,Y9{+YxN0P왦 v7K2,,,a99ʂ>2aFT66ZZ!xNbŅ.+|$uziMB$̓$2// qgɨ,i \zIr,+.6>2XK2vߌi|3%%M>3­;b>Q(:a:<~Uurr@"X̃g2ɔvf1⹓XX>w& HH0!WWwUqrmmhN[ L.PP=#7X7Q )>vgv>7,|c++v7cO*kNyy`ZQqƂ/Xț '$\.4x>>Ⓚɔ2v׃V͊GogqQSv:ewxU5(wДB$,,>7qKvK-GfXXK// ז!;b|™lWkk=8Tqumm]$Z=5&T48**80PPPlW=kyKɔ7&9SMŐ1gL&.Zg1h8숈l!L>KQʬUbb蝘;x%c&Tę_0.*aiZ;}xH\E>{K232>>K݀>gQxgߛ$Bga.~QqX3,v2,p{9dg2tpp |׹ %:LQ:<<>.Bƹ,}32Y11> //鐑Ĉ&<;wN0wC:1%xpmmm]$ =8l_PP윁=Q7xcywƃ2gY>H22Lڣl#ZQbgg||,׳p\E⓹Yg>>qbKvvנ ssK7$r$>x,,>:w׹ץ$$2gv%bfe7-%#y5װ\\3דv>f9 e5TW#w9UU;5;7%IIm]]r"T8=PPPPJ =!&|7c6wdHד2Qfd}S a7US)!00asX2ոC5w11;O!0=`Uc*ywQ|1>Sv2>M, Q̹Ɇ&ϙ# |UXqv27Y$u,v>Q B"%}qK",K95'23Xv{fUן|6CwSX/g,pvK~{||{>3U/777X1Ԑ5<7g藝q7{{Rm]IzZn= lPPPl Tc:bo9ű+Ȃvvx>a{Yw`4.Nc|K>3S#kk/ɐ9*AlwadF#嘝c~һ+¦c1>,322=&6<ŸXM$B2g\a{o H x$$ȃɳsHB,HZZ|{-3۷uq3Ơ3g23>aK1,|29(9e{sqggpx7>3:1{9(YxȠ2׳3ư2go31KKeww6Cw; Ж,H==khaK3CWWAl=Ty5wTW8N:%4 *Q3qg2pHpD|Q;kwG$$\3/Bixf` x|zrg>zuziq7q7Xi >ݓv>2gg,:dgGt,p>2Ѱ712XQ,ד>mm\xyJ Pl#>׳c9 ʂgUGK>e3uuv>Egݓ׃>9{>gHLULH,2XXXKg߳K3ѰM2gMBQƃ> tpi\2  PP!CSՒLLQgg2߃G:wNggӕ,,๔DytzrB,C6a\ur"ffQcT4NyBtt\E>>\VrgX1q$$V 2⓹>XL;ww p>3׹/%Z݀グ,u˷r:<4= EMv 2'HZ숈PPP T :{c; Ȱ߃>>g|x}>Q;Wgg׊133g>9:--UWl0 ֣!=__외X>W(G,,> "?@@@BRddkFՎs>נrz踍___Ф,gtBs% }͞$$B,Q>>$$>X7+Y nwQԕt1x*w2gg ӝM$r@|<,<ٜPv,\37mmmm]'"p6y0lPPlT#<|ZggL 0>ћ\3v>t?uu>eݔ9 0Dv2g2t3,g:qH\3$$Q77g,ߕ+Ny+!T!Fw~ʆǽd[0ϭ>, [?z녭[v/&=0SΛKmmIIImmEL&.PPPPPTaaxa3>3ggRQ:8aQt,BsQ7 &&O8 J &>7K!W5x߰ > i΃>UwT<oaRK^$g―.؜0Sɓ3>MȺtg>Q1苊B$HK33bw٭y*T5w<{U5yTy_0kp͛Y>M,Eƃ:! ڲSg,Ed Z5mmmmIIImmm'rVHPPPnŖeYbossߠ5w x> čդu$OT3ǧnn== ؾW Pؾ_0wK =_OZS|LM vנ3豣;Q %ab>QL+.*N²ڂpHpQsefop"p""B$|---QQ3M,΃:cCw&&kF<w9yN-X3>: /a;k`#mmmmmmmmmmm'u0PPPP# KK::7sKQM|ZNnggn zrrz n0(ax #ٮlll0P؜lġf!W(| ݓ>wgSax3i$B6ZD[c|r|%//ԬwQs鄄 Bzz,%%% Qc&kCaUSa_8čy M,Epe%3MGT8n5:݄{eK>HkWWTmmmmm]mHnPPl=1K3737>:>{țLyny52>1|Bˇ'$.|xZ`lll0숈CfyT(\,Ezr"༖ 9+YI$p1/;&!0wX2g>vu>݀7>iHQ>Xtggx5ywSɀK|b;c(TFk&H:;;:K<#.: {QbbQ_044mmț_P&SQ>1K71-Ԕg<9KCwQ,@'rB&QFl lؾϾ숈__5U5č؍* \1Q>7  LwTkf͌uruExK:fbmIrz//C4R> >7v2țHE,sݓ>$$-qvwyг>Qb;򫝤dd[ՠKUd<7Qu Cb1aS/ﲍ4'E ZPl8CQ>X11d+ H,, S6D227Kcx2iB$ELQN0lll_ __؈؜Cc5TTy5x,g21x,,xxQ:K>6wĮ²6EE,$rr1:mm"pX58n3/v722gvҎv-bwU v>>> h ɐYMuȂqXUx+Y//O`[mIzQll8b>1׃7ǔKsacw5CZ,LSS|x2g>>cC;bzg׃؈l0W윈 __P_ϜW dC~2,\ߠUfL~{~aC=ntt"r'/:rm''V:d5S7X|g2X>׹tB7敂wC; >;844gM,g X>KsS.(/pLmI'''''ImmmmmI$icn! K׹󹃔1ɔ55|ΰLg߳Fy|"2v6k=W숈 ؾ_Fa~<bU7gț|6x..=*Dw£֍lN&/$%%$''rUg{YK%Ǡ>>>>7K>נ3$2X3> 7wf v7L40؉㧩7>>71 X1+ M̃xIrrr$rImmmmm"CNllT b>77772>-X3: &kTY{:g>xQ+NNĦcZ|7H2ppbU|)*8Wؾ_kc6aU:K1g߂2+..T5Daeӆ9ڡnl`Rݰur^Q,$rr$ -7fg9דX::K7v>u" gvvC~7Qf~cNP_5|3t}װ,g:f ll8k&>7gQ>g7>3pZyTx3袅GQgQa£!Tk!=!Ő1XqKDګUT 숈ؾؾؾٲ6[ФKKv┠yyݹxUKKQ|L#٦> 7K rrHB 1鹔fww33;f% ̠L ^ѹ ~NT5Co蘡CwFyTWأу1>:CNNyʤ,$I'$Um'$E͞r''mmI'r$3>v3yn  nw3>373>>v7X(n53{bw6DT06h(n nT &ؾؾϾ.¦CwQx$z׃,33f9y#wTkC6nlnC23QXԆ5y!k<\uQ:|iBr]]u\HIr$ pzr'mmmm'uêggwn lllk%敤b7v17y=C3fǃx[_.;H+4xO4Okn&nڡJlؾ_0PZ6+C7%1ʯTŬ/ΪUx:K2ɗwgXX7>u@p>v>>--ӕ ΰ,7ҩo݀..Ŀyf% 13M׹ҼFhDh8 TTw2v>/-:[##kdԳ>2}\$m]ˌmmm'B2|^'mmmmm'uuuêiȰy8 l S1:bbK7v2>1v>w#FCx37dwxQZ#WWgg|.2v3S_FڡNىkyw5&O0؜PP0藡yNU-acU u$Ã[C{7|E$Q>7/ݓMB3>XǖH 1R.W.~7s--:KKq17*=455ĮlTFCKGwf攔KK>g2>'mm'$mm''ru,߂QQx"m'r$BBBu$$uzi3|cFn8 l l! 7b:G723G>|CTT5a薘w&\, x[6ɤ¿y;d+6Sh`!JϾ숈!ڝ.NxL>X7u'$E+N9-BѥM\B 鄄/>$àKaLMt1>x7W;3Xs~+91>>7QgT+wy؜n!6d5 ae1X>UwU멩UQU33>7$r$B,mm'r$u^zMDSb'mm$,u@z,ߠTāl =# b>:G>>b::3xk `=8N=Z\ Xx7bb Kba DLyJ_ϴϴ؈Ww (.M\,Ȱ'rΎ릣(:Xv,ѥ$u7X>HEȳ9S<,HFFQ17v3Zdɹ>gg<Syy;լǕ17>הCf%UbUҼ萯9::>am'ruzVpE\Q6[[$'mBVΪzBB۪,ƃS!= l8TX7>>3x33U#&+** R E >vv3g>X3>xUw0ؾϴ؈llnCa~{~xuuB,Nw"\、cUvߥ$r|QX7b蒅k`F59>>>:KBg&!<>2MLdӼ,e-7#3b4UKRxQXGfU2!./73x;<9<ǔȰt䝧m'BVxa6O~VImmmmB\ê>aCT└:G>>3 Qb3#`&!88l WN  ggq217ɔTWؾϴϾĉlNH3r$,twW4Vuut||镺̰ȰBêwh:eo 94FCe/ɠo{YY-Hu$E_4{>g,Ì-oEBgMFF2yv>qX7:{e9F=n`6K 7eІ>gU,,ȰM>>:;C!ll8#;>>Ӕ>>3K>3Q;llW 0ī> 3>7ׂg227>Ǭ0ϾPPPPWFTCx>݀zr<40iB?^׳oưy400&G-Qbկn`6 :YY%BG4¦ǂ,uuX%uB뢻ݖF5H,g3Dgg3Ы {f38U/vXX7}qgȰHS9(*);'Big7cCܗr'mmI'r@ ׃,B\M̠t>>7;T=čl8k>3Q>77M4nlW Ɠ >݀>|gQQKKxxSW쾾Ͼϴ숈lWk`cw xz$z\ HSy9LBr7bgȰ70_kԳKGkCZxY<GUԀ y|:KEu^bKzBU%ݨKww5xtR>2Яfb3Sy0_` ݓ22t2.4N...9mzQaY9S"$mI'r$Bg\EiE Ѡ>׹QaCTWl8!S11:Q2377X1Gb k#8W.FNlNU3bx1 xS&kwaQ20ؾϾ00l=*ūQQM,VVEH|:bHH\$,>>, 7[(4: MfwyQL(Q/|`:fb3ƪe:x}+deX9>: 0 \QN7Q|,g1<4.HruV >v6 BrI''?Ȱq73 EEiƃ222g2v7KU!88!K7:31X%1##= N;&ll_Ua|Q|Q ynN&`LcL>1WؾPW؈!#FwC6ڸwCw+C6Lp\,M i$'\7gg,|L Z z$$2a, 煯e敳qp\yy :̰z'V :G9(&KK2{Q3>cF06>_n&xH|vv d m$Mv|LLҠmI'?ͥv V,ggg߃v7c!= T:KK111┼N!ACa90(&Z40nl*|NؙPPl!&dS[yk__637q7,Bu$ruHb~Yƃ>qQȃ g^rr3U:weK tQ.%X urr2:d>3~9(xgӬ%Uձy_gB>XUyn {ճs}31ǔ2R'r?,o: ErImIIr^"\2vư,ggߠ׃76`!8 =C;Gdz>37:U핔3w&fJa`l8֭nU4؜0nWٯw6=4_0WPP؜&;1;(y5Wb,Û> >ɔz$H:¼B$E >2–qi$rBxXݓ>:bư&nUz1kNKG\um]mr$B\v2ư,ΪiziưדxSTll CG::>נ>QU;Zc;w吤|`֙_K4!`!JTTTN5;a`.4_ l= 8TF v7a;Kum'uMʧg3'm'$>g,,êiΛț߃>x񉙜=C :dz>>w5`h~ 9NyZ[3O`=nnWJ0` ) PFTT8N5ǫ((y` *XQᡬaZ0_ڝ>13M3>H9YOc\z$$ɨ%xY9:K|i$$$,g2ɬXY1|Lqg,פ!Cc5F5 $Ã>~ӆ;C<܋ ;aS褕x㔂< Нa;o:1G733Q1K$'u׃>>zr']'E̓g\\i,,,,ê\\\g|! Ue:7739n**55hb `n4&p|<9O6C58>xD)A W*`#!=XXDc ##OC5ũK:攂wN9Y|:ɹ ׃7C& >:25Fz,t锂v2EuBK;y4KݻsviL,,M>[N!`5.4R2\̂w(9,p/V\>>e{U>XɆc>/bae:oU;v{2g>GUzI'rq6> ]mIrB\2v ,Ϊț\zΛ,,,LClWn#;:13w؜*ᑯ`ZС=40n[|YyZLycx>:y؈05__y5Т H.0_ύNkcCyyQ>23>ݳ&(҂o11f_!11%%%6xuuEMݓ v\K : "H++W>>B ,xǽY.w40=x ZZBr$>Ɍ̹b7Чa׀%-eeYbUeeg2bs gb(9pm'$}tc[33>mmmmIImI? 2vgM\ț,,,,,,,dٜWl!7ԕ7숈WTySc*nW43wW=hx‘͂Q N؈0_44;-/ HHH `ؾ0_OFTbg׃3ߓapLLR{X{0l_nU1G-锂|׹7>>g2;S+T#FNaЗ,Ƴb~Ueϙ BuuuVI''}1sQ>qf7ɕK-QefG-av2>7Et7{4HIruipaڒ+咤3Q>B]mmmI'up32ț,,țEE\ƃ EQ: &=X椔:C8PPnڡ`!W05>HO8lWn9 kWW4Lb%\Eؾϙ=A* HE>,ΛȰsɹ ؙa:xKKKӐb33ʆf c[+3>RXg3kL urrrB,E$'B|QMuqK:d.1>G{:17KK{-7>3bpp>QZ##*``:Kv>so P8=Thh&ف ġC8WbgQ{QOlTW4&Hx>>Zh*ؾlA=ltьVi?u 3,2>|ڭl؜9xʱ:>g|¿U߃ɽeɎ9Ny##(...9q-Y9o-vEYuI]]rj???BEr Qwn߳Ӹ<;, >>һ72b7XMB'BM>\DFٙO]B|e<9!8 =!#ŔQ>>$']mmmmmImrÌ߰,,,\Mƛ,,,MMу2׹v׹KO*#*5>:Kal*A։y(W);Wl=¬>>ҳ ęh쿅L\|QHSnPWlnֿWWdgь"$r$\>MEttBup Exh4؜4xwxdWWؙ!e>׹q7󓹹v>KUwNN(4MƔ2>3 Ewaj]]]mrjr$,z''r |a+47:3gvɔ},Ȱ  ؿBUJ= 픳3>,r']mmmmI'',>>ư\MM̹׃MMƃ2׃ ݹS[`!F;Q7>7>k88!nn!!yy8)|yl8!N>Kqv4蝲n4( ,>3 .0lynnn22EiugΛt$''u,.0_˜<Ф2gWl&5w v2>77:UYs,H|7KU:K>>Qfxr''''j/̰$'Ir^Ex&Ф1:Գ373E$UdTC,B"3 \Ȱ|#PPu\|ZT! X7rImmIIII'̓3q׃ƃ׹vѰ߃22׹vc`!=8nT|2vX7S`T=Nk=*C8=`y#Oxa…{KS`y|Ȱ #!nT==*ڋaCT׹v,,']uE.ٍؙ:xv W!d 7vg73ɓ>>LL$,Qde:q:Brr'r$r@$$'mB ~KݓX,,> ,@ðT0>z>|ig5Pl'rV"H[++CSb7rI]I?>222 v2߰MM g߃U;d7XZ6[5`TnkC`!OSTkybU >va:cQ ,byPW5!ܖ>>#CU7݃MgpE'IV7򣿯& K>ɻe5ٍTSUYXv2x>>uB͛"r''$V.nU Bruz$uuz\>󟂛Bruu/-:>B$ð s2r3yW4YpVu%-2g5n0m'$@i"La>>7tmmzH> ݀222vvvgM,\\gƂo ==c%11ݹd&&c=kcZ=n!~6Ĝ>X>pHg׳>QaLêED(00PkKR*cx7t̃HH|}\Brpq/1U c<;ag+y`֭CЂ:K133>׃Lr$Bzj$ yN#;: B@@uB$Bzz\EVVE" -:%>v7}ɓⓥrB>֮ϯ "-{sQ:wyCmmIg222>>>3qt Bmm'$Ûvvvg߰M zzBuuu$uBzi, 2>:ffS=8h6obxZD (Ty`yknQ3xR%23X:`y4&u$.Wv하X>|‘M\,,tvi'@-% K|x:eeԳ>23 T!*71ssK>Qɹ>ݹa99'''r"BHL:&y Qv>q/$'I]Ir$?p22t,btqt\ /1f<됋B,gY{Q>>$r3a#05uz3d:XIz,gq} $'m'MѠ׹vEzB$rrrr$$uiɟ1KKKǎQ3888=T& ~X1Kxcxa[+yw5yN`nM>|G>>v>>U9!*N$r c32>QUf⃗1|H"BV@uBu'/x%:11fk!n%X}}|t XU~ob\iI'r~Ǭ+(yfqzrmI]?H,3q7Xݓ>x9H,EM,,ߖYoǔg,$$\ewlC:7`CCU7m'ig2vד3q$'mImmIB׃gߥMzB$r''rr$u3ssKఠN#X7K7Qмba;w5y`ٍygqK7>>׃7n4wLEz,xn’߂3>(.5Uqz$mmrH']rt7:נLD{{ǂ7-GRUG5W#N:pÌ}t׃Xs-q"$̟9{Y(11X>M?rI$iBu΃ɟ>>3w|L|q{Kɂi"Mf4047:dw5F5&;x>Izigg22>3tprmmmm''Imm'$iEƃ2MMu$r']]]mruåE22QH ,,,4llc>7XX72>ᑡhhO=ى,>7Ԇ33qvx4±bLu$|Sxx+iBmmr$r,uII>U`+.9QU:k&C[Xv$2BƓq1-%X@È9攔K7v17pzu$r]zrrrr$,הKfdg27:fw(5w:g,q%136ᩬf.9;33\:acCCaQm$,ưg߃\Bmmm'''''uzM߃\iB$$r'Imr$\Mg\"^'''rZ =a:>1X2g:feC[6LL`0Ng\v:tq זY[SxQuLHxUQb;U 7qMBrI$iiߥB$ð ZwnٿU3>K̃gggQՆ:c;xZ#Įأ3|ƃ1:q3 2|,36&w+߃QxxR%U/2Vr'$ EBr˪܅40ϿZ&>Ҥyny&UDBu\3q>7s--}ݹ3>-e>X鹓XX732g$mmmmmm˪9}227g3nNY>g,$QUC0Ͽ߰,fXv :<<]mruz߰߃ư$'mIm'r$g2$rrrr'r$BBzr'm]]'rW =ka77b7vUUxk&<T(ZXaaa:2X1 |v2gp OYx3GXQxgȌ"''$HEEur"vڅTNWlP`NNT&9ab*nyC>vsLpBM>,>:dG藗UX23|p|K> ݓ7ƌ?'$jIm]]]$ ~XƠ>>Q߰,Ms~ ቙nL|zjj"d:1>.’D^'ui\ggу,'mmI'^g2 B$rrr$$u$rrr'm'']mN=8*;aUR::Kg߂`F§ #(o<91gȃ>敤|Mȃt,,OnT,Ȃ:ӻg3QȰBtQ M r^Hg9)_kkwofxHy3ЋBB3,373yw56d2,Լ> X33z'r'm]]]]'rB2%:>YG:2q>vcڡn|,Br]I'uv<9|004m,׃MiurImm''$z,gvנM,BuuBBuu$$u$uuuuB'IIImmm;F8==OC;UxZS>2g2QCS n*֭Gs1%+؍U1K|1gנC, {,,gEzr'm@Q3rz 226(TڭWlNs<cZeꕝN(CazBBMEM,ƃKs:kn=1ɔȰ+(O7/r'I?VI]]',399Q2{: /1蘫wŬ$r]'$2:;fKxWlw'ruM>׃2߃gzmmmIr$V, vuuBBBBBB$$uuuuuu$IIbFCaڼeǕvɒ w94A=8C7Xwl7:x%ݹ7>țM33QZCy>,D9,,,V$r^}2tBr䳳v>_Z&숈v&17bNl؜  ,  |b1K0W8yw> \a9ܑn4©Ө⹄/B$IIB\?IIr$"VBHx9g\>Ux:-%f~LL'B1>:5nWbIrV gggmmm]]]'r$zVivưBBBBuuuuu$$$$r'Im'HnWk;;Se~aU腭+Y+(.0k)>7QNWWlW賂K݀ɔ\Eg3xa+4(Zٸ>$u\2Bu͋> vƂXčS~l`x:oU[_l4.OH,2>993qq:ϮJdK>~h[444.w%%>ɂ3ț$rmmrΥ''ÛZ9[t2B┝c(DeYY~\Eƥ$]r Gy0WN'r?Ezr'mIm]]]'BȰ>׃gzzi^VzBBBBu$$r''S=٣C66;x =٭Ua;Uw=n=AQh忙_nŋD>q7x >>" cNaf.؈.f藒..g,\>;´.6nlNn.؜_NQ2''''$ͥBmY.+,?/AN~eL"i$r''$3++9{1:Ӽ!Fm'rj^i,,,,,,,uImmm'm]]]]'ziggg׹>M3׃g,\\\\ΪiiBj'mmٲ66LQ;33 X3gKѰ^[(>XcNKba Nl04¤>: c5y_PP.S>װ |_Z,BuEQ`WlnwX+lLt׃K\V$rrrrr@ ̰$m]rb9iIIgX&~R:|zurrmM{999Y{H!ykIBB,,BmmIIm'z\gg2vv2߰׃ggB^"zB$'m'W&`Z>:믦Cc)5=n =TfLSSNnŘ..Kד>\\EƠר-g|7e:ɳQt2e, yϿ&q6;:ɓvxd8&3>fn(6PyaKL.0hEÌO#lԀ>40|$uqqה1K|z$$$BzV^B$rr^zrmG V^''BȹY¿:x3M$IImIrXQd22g߃׃Mizj''I'''mrE`lT#CwKQ;<&O #č8Twfx| ܯ(d&N.4;33>>Qx褔у1{>Ka-g>;44>%G-:ܸŬהXZ>U5Cknyd>N>6(4#a> M7UW!cb1_$ip qsQHjI$,xp i$''ru2'$q>3E^rr$,3R$r''rrrrrr:xLON4m'r$BBBêB'mmI]m' 22׃gv> Vz'mmmmmImISNlTFٙTO#Twv:{oiXed|ʭضe:Ua9+<ɳvwT8#U&8WTX%%ǐ+Nwu2U5Į9s0>EE|us\ImÃbu2$2$BBB$$Ã>//urm'uzzi?u$ua(X7qQ{3fwD xZT_H27>7~9Ggg>Qfw# l8FaKQTkԄ Xbf9!왣S\ gL22tu̟>B$ui|;doRi>ߌuVqtƛ\࠳qqz$r'$|M,\ Qʱ50NKUw mmr$BurmIrB׃MMțדݓ7rIIImmmm'r|4٣Cҩk`#CZ6D6&N.+;:*٭yC> HDb:>\\>CUԨ2,>>3\U{+ |:녿`h(W;,ɓװx{g߂ Nn FЕ>:Y+e%/7aw!nϦBE[4 =>2,\g2K@,s>i9+2px$^HX7gvpMu$z?j">3K,\>Z_(9С0PI'rrrrr$uBu$rmmIBEtvM,\ –3E$m'$pL88l00TS:&ykA!&CCdF88x7Tyy>Kȹ />Q1,,,M/ɂ gtQMȃe{obxFN40lyȃ߰ao}Ȱ裿nWTbxbf&C96# uuBzEX%G)1,;.4|g> ד1rzLXQ2222 |3,"@$u x|}G{~ ߓbСn000O0Irr$uB$$rImI'$^ ׹M,׀X>\rImm'I'rAnn=[`!=`C;ww5n*gⳫ(`Kv,7 /Ep2݄>72v7vBz37>dfbQ3 N48ؙ.w2Q}Ugn400nTCUǤKG>4d3"(n Brj 1:N0.c >gMSwwMȰ 7 viuMK%eeU>v2߰ >,@B/1s{Qg-w(čFh Zh4mmrrr$$$rI]]m'ru">vB,>\rImm]m$"n=* #cX:НcY!CUʧ=OՕgvva:UQΰ ,\|g>7q̰Kg$t,>Udw<bcbU.y0CQ2 ,Ƞ>3:S0ؿ00F>̃B^Vȃ23ɃirIm\cn!KUbxFT|aŅ>gg7Lyn(c3<99Eț>2gggs>u"t>,g>b­kN77>yN)0 -s O WƂ,u$uueWw:$>xω x{Q2,,\M2tEtUw ,,ț VBpvX7>> `=4k3g7:Um'rrrrI]$M>>>>,i,3mmmI]r= 8*ScCZиy!&LNSɓggZcٙ|>>QN&6$i}|g2>>ɨgH3>;kW0_ύ;>::Oxg7bZ6bxdCed+<K>3e!Wwb,iw0WxB$B3K 6.y5+{,gvX++{72,B^ E,p?$$7.̰iiB$$$V3ư2\ >7KQ .5>q>mIr'I ד>>>,zBuM2vX mm]]'ð(+*llwC#nTc|S9 ;٣Q[y&O|pB$|oR|tg>2gQԻsȰדp>3(N*ؾ&eɔK¿wyS3׳<>>7-kwM -qQ%5!nuz3HY<<(<̓eV$"E,V$$z,2C0f⃳qt\BBu$rruΥMK/g׃XxZy Q2gmIm'rI]]r''''II$>3z^BÛgvQi$'mmr$D{9w*lyC#kN0_nFxQD;ʐ; Fyy9 \ǧab3ɀ2Lv2v݄ݳb.(_ؙ;:1S!_WlFs9W \Kpg />771;y4YG/ݤ~-U< uBQS:x|>3pBrr$u"͌H\uu,g.د22Q B$r'u,Ѡg-X7v>GcyT,mmIr$rm]']r'u33߰,z$BMMgv7gVImm]rh=WT##8b{wwd::ǂ|6ŘxxoהKQMU;x๓> ߃23:v݄1x9_4.W’ 73gv-┤ꖕ2>}:/a7/%U; ,Bbf9+Qg X2$I'r۞?^ Ͽg ,--M"vvוG{b5ĉ+H\Mmmr'ImI''urruit7װ,u$B \2>3gi'mI"DTZZګk=76<>Xv3Ბvv>s:>,77X׹>|CwYXKab&0(w;d%%Uy+z"\Xw |p,{{߃Q3>$mm'r']]B,!4L> />Ơ|-17%7E@ruL&WWnڋQ'r۞'Imm''r$zz$ ț,Þ$u\,g>3rmmmm'" L ZZCC&x+DБy(׹71oG|37>KG`TN51ǔgװD`&U9׹Ud5wNa3>ɻ%vX|x:5y>Cwʗ*!2>gu-v7S0&c31׹>>'mmrrrr'IIIm]]]'B HLh+ం݀v>s1>Qʢ-771,u'$H0W04y[a:]m??r'mI'ruizuuV>7׃,zuB\,g׹>rImI"(8866CUK:;; NqS9>ӎxH/w0=O2a%vL>>Y{f2gȪ}ٸ>2%XxB$EL:e &ݓdFn&.Cb7>g-L4+`L2v>g-o^@uu$B$Im]]ߺR6;:7X>KeKɔ{22MBr\,>>ummm]]p!![we77d`k#=T>22gx>>7 3Uw(F~g,t7݀|6777M{G%UR\e5 RwTky8ٙٯ>ׂs- HZC./qQfS "iiBmE}~+Ȫ$mmm]]m'ruLFy[&*FdXbh)Tn=+9x37gg߂33>7>77ЯWwSE\ƠKNNGK7׃ד Q.0.(2vvKUR㰰 /򦫤77ɳ6d--:3\BB\X%6yl٭'Irrrruz$$Bz\ț\B$$BV>ƛimmmI'BLwcON=&7:a6L&N!`#Ḹ3g32vv>7M!8ᤔN\\33ƃeX̃7[446v3s226 aЬe:-%X,g-dU> KC55Cęl8-%Qg,>UG:v/\$i 993gנM$mmI'M3.TN ׃ X//ɐyl04xXnAO֍!y5m'$B$$$uuuBzV^i\ț\Vu$$Bg>E^'mm]'ukn_y::b 9C6{QQvxxgvv vgd&ZMÛx}2Ke9G3Ƞ11Y+ H Qxxx|xvgg>{W :KK Ǽ:x2דX1GKq>xa9(5-%2ggMV >/77>v2q\I''r"xԽ>> \r'''B>awnnw >gv> /7&ll nk LQg>=#ڡůٍnm$BuuBzzi,Ȫi,iiu$$B\g>irmmmZw*W b::-e|::aR>>2;Q,UxK藝M\}ߠQ E|g Qp"$ה12l&: 7KX>3v<e>bUU>sYYF;U%e-gb3ѥu$ }>3Emm'r1KL LHi$rr3XUd2g3݄hn =5t>hFh;aw0mm]'rB\M,gi,,,BuuB\gzmmmmImmm'^7Mx||ǕѰKUq-eƥii `67>ggK,B$BL}/-{llCq77qqq9nT5薝А;{qg%3dUdw5Cc:V$rBKdz|,,zI'I'rz(Ny!O|Eu$^p2K>K--Qx72MQKy.y`#Tl.93vFnF:77&=mm]]Bΰ,Λgg,i,,z^,Ȱ\rmmm''m]mm]ۋ;5* <{GUx薤bU<5T2LЧL>ggtQ3Yv2,g2 VHɢ4.+1ݹ,i"i ߹݄XfL0حӎK,M3>nkSc Sw5;YwyY7Z*PPmmm]]$,gΪ,,iz,ߠ$mmmmImmm]@ STkOw~Qxk8!>vg|ycaН+Y/ݰ>>gg ȃ.4d|pQK/v>77vC6S(+􆸫6GߠK7c!n寑CnwCa{$͌$@^7}a& 4K3MMנ|;Y@mi>Wl37ttX/KԐ;;UX협#=n6xC5K>3bkTTaAPmm]mrBÛ\,,,Bți\,izBE rmmmmmm 9NT#`C;;xxfQفC 2#n{y(w:ROb2,QxSdU%KcSɄg1e9:.(a x+kd:s2>;yWWn5ycefb"$$rMttqq4숈b3װ>ڲp]]'H}>2v>3an3\$zE2>t\,>1+wX1dy.=#L, WxCwNFwSZ'ii\,BuuzM\iΪ,g2vg\Vz,\MBmmmmm]mmmmmuZ<<~3QUfҕⳤ yNl/ SnnFCW٭wUɕ yOZ3Cb>3g \w:ݹ+Ŗ9..yS>..Y|pn7>>1q2,;y0WnkFU%2 iΪp QCl`Е773׹ .4. 77\ur''r +4433긅33 \>vH\94n7n5;x$$ixwLLhy444T*CC8_lm$i,u$$,,ggBB,,$']Imm'Im''r|9 Z;SD::Ka8 9Ӏ׋ClĉyKSyxF4{>3MU;w;UݓCk<SCC ,g!!Ő7K},,g:4yc :-L:Ԩ,B$$ wN< ._4> BI'44.9X>bƀ7Qpv>X u$$z\+FNFUbCW5eV$ .(#Nn+hZOFl'iuuu,,guBzrm]]u(cSO6K%CT!!#{>R)!!*ydxbNw;yU7 2 z,7:we-sU<:Q 7[擹Kb>KKK:w:݀ɼfCCq2''u|Uyw(¸v 1Ц4(Y}um'rLR.+X >||>X7>ƛgHQ;ůFC SĮ;>,踉NW04&Q|FW0؈m'r$^z,uuuzêѰ,BBMu]'uH6Ywk`<{GMaK:;5kFFy~|ЬfcO*d:aţw;;ŧ2227BMg2U9<Ө/Q ddvv>v/R-:ovKUK+wFkwФ ti'$Ȃd񭿯դ>g2>b$' H xv\>XKQߠggݓ|;yT&OCĜ;Kт숮 XפN숈8IV\Bz\,ȰƛBM$'rD;;FNNT~f|Cű b37SccaLZ&yO Qg[C;x31,37ʩdU;UK>vHH2|+𔳳ɔ>:1ӻ%%/77v߰Ơ>Y51݄tƪze:cyg2}u,puiE7>s3g2>6`‰klT`n숍 2W0׹K_숈mm'r^z,Λzz\VưzuzB\rmmI"|&*OcU:xaSaSxߠ &cZbDCkFw2>LZS3Q3㟔ɔ>U7>E,ȰR>>, xgg~-X1 %}>vvafdwݓX/,R:;Zbg2>>נI$MVB$B\qTWl0+yTlT59Z Mg2E_kZƂKk!=WIm'$,BBBBBBBBBu,,ƛzBBuBz$Imm':#JbfocD7&ydS5w91xa Qv2g9<w~xvtMf¿yHiBVf7>2X7߂i>7RobvbH|x9.w>K1v>Ѱ6Qx|>g2qr'mmmzq\irr$Mgț>L[&&nlPWllyyN² B,ƚJP6aUbCFNIIr@zΛBBBBuuuuBBuuuM,B$$Bzr'mIm]]'Lkؾ=k5SGG{9x3:G觯8k~{>277<.+7a773M,XK$|9 |x +.4( |pið$B2f,,g:KQi2922p<;Kɓ{(..+Q̓נQggV$Imm'uBrmu\,>%%6`٭WlllĮP_l T5CűyY,+ Tw>x--373\B$pb<9SH*yʃ E3>,i\ Y(²sgg>>UbbR:2x+ϴ.{t vߛ]]m'r$"@r']]u\,M>7!lWlWnnT#&Fn_؜&dU:oxHyl k{e:X7׳LmI'r"V,\,$$B$jB$$$zzΛM,,$rrmmII]mr7:`* WT6g>;cc:7<:F3KxH37K{D ,77 S9>9Qӆ蝎o-z^^Q9eXqaO!e B |QC5v3||} MgQY. 2\,2I]rI]'$ E\: kWىĉNkw5 D#0OCdeeUUҩ5k =Tʤ>>2>3muΪiB$$$uB$$$r$B\MMrr']m'Ir%O88W>7S;e>xY>a!nǼp1>73|b{{ ,>>xbQ;a+9ҌzuuMQ9ӓ`#qqb핰2ggg(.5݃MQb5NF3s>E E"Ɛ44 gz''r˞rrrr@@BpMɂNneKUS&T__0#yfQ7:%xH9xL3K2g>C-eb"$|bUgǸyRbиwdӽbSx㔂xб5y:KMMu$BiE,БLM̥EƃtpVBr$zizB$˞zi ͌x7>3ylk;g|U;Zڦ_OZFTĮllWNw x'ΪB$$$$rrrruuB,,MM$$rIm]IrM*#knn8ǕGoUxxa:>:fC蕽,у-exK3ȃʼg2&% p\}K2 %w` [+eosU;dT5d{|Er^p|pM,t32ur'z",M gvv>g>5W8|,BzEfdC.NFOWl؍.&xx#8݄wU 5yT=y5rz\fYX/;hnlnT*=l57MqXar$BÛ\u$rrrrrrrrrrr''rr$,V^B$r'mmmIBQb y`O<:%ǐ|{S;xGԐưg4Z%X1׃21-d Mg2,> Mוd+‰yeUk !n.+R72 C6ff;&`5wCKr$^"͌37ur" .Ӄ}$$uBȰgt> 릿.N{a;NW0(Dt<+X3Tkc>2UFF=Į=k&c::17ƥ3XmuȰ,$rrrrr''Imr$uB,Vi$'mmIr kTOФ%X7Q:ʸ5ZxKGЎM>F04H7G:>X3Xv>1:̠3q,> ƃ C<77UwT=44n0¼vK U 4n(Y6(Nllcvxw 16n8=TF:K7>gm'r$B,,Bur'rrI''''r$u,țBmmmmIImm #C>X苂7ǕbUU:򣭉塤7Keww;b|ɀ7bA_&6|<+9>Ⳕv|x>햎>v271׃bߠ2܅y2>f5&`(ynxC!T7 &č=0l=gvǕKƛ ד7иdeeT8=W8!&Ǩ7\i$B,gv'r,Buu$r'rrr]mrruBEE,ƛurImm]'ShŔ:U:>>;;aCN<ߔ;А~s74=`#Nw;LS{p|Kɔ2Kɕҕ2׹:fw2׹Z&3wCdQH3k!FkWn5:Q1Kȥ La>>>\>7Kbűc04.*WlWυc||ݓvaCЬ5kNW숈c?jgtmzBBBBBrr'rr''IIrz\VE$z$mmmmmmm]mmm'|f&FCU::|kwQ觑Cx373>vve{f7XwS&yЂq%UMYd>X:߃>GTWN2G~sɔ<KUSHQt!Nk#Tģ&:Kɔу|(k55*U%7БOF~3z$zz$u,M}q2g,,>/Ьe3Z&…&؈P#5q̃:D6CFF=*n0윜nCZq>xx 'uBBuBuB$rrrrrrr'm'r,Ȱư,$$BmmmmmmmmmImIrp``5FC3>Sy=#T<>ggwL377>U; CU:xa&U9}%ʉ>eeb3>:7KU22Û2QNnT`5 fG77gxwNNy&N>gę4+z$@@uBqg|Q:aІ-a&Z2h_0 UȰ߳<08nk4ϙN#SR7QsXmrBBu$uu$u$$rrrrr$$rrIm'ruBu$uê,BzE^'mmo#Fy賽~QxR߂5NN L2Gn9SLxKeT8 f<ʤ\M3tݟK>,xy :eUMef{x-\a+0(aM"?uu3>Lܧ~ǩhHJ0_؜.x,Ȃw_08n.w;;<5'zêB$$$$uBB$rrrrr$ur'II'r$$$$uBiVBrImmmmI~9+FF<<!kLS6¸>&#[CE>>K>CT&3 vKQUNZ 7:C#!kb;Q ,-G wkUvq:M QK: >i^E\bϜ_y>>p"$rBE>9!T5oxNn=O5(_±xMpQsʸkNٍ00=`OQ3g333v2 XఛH'ru$$uuuurru'''rrrrrrrrzE̹2,\$m]]IIm]r 5TxaSTTSC&yc3:F=c&N( |fӔƂ7ߔKʐCNU7vvX:x365kg2>sK12>72$uVQn0!Z|"$B3L .y:cSDTn.444pp%;w9;D||EEH уưƃ>gg>ɟs iEE m$zê^$$$$uBBBBu$$$$$j$rrB,߃gz$mmmmm[5kTŝ|ZC c5yCCwy!8ģQek&CCkNFY9btȰf:w bKX7:ʝbX:72ȃ㤋~Y7,,u77KK>YYesԻgqKg3g,$uEwA 2r'$ bw&6` ϴ44*\7>>b\\"\,,Mưߠ>EzzzB$rr$uBu$$rr'II'ru,Mggț"@rImImmm ;<kŗLZ5Swڦ&5!*=NԆWnT56Fc|T5cRM2XR7K1g<;﨓gg32Qf:3נ3tQ 7҂Ƥbf{UQ1X 7}"@zȰxH7*8k ݄2r̔nlh> 7ǩyw`lW.h iiX/2g׃32vB$u?BuB,ưరM 22'Bzurr$B$rrr޷'mImI'''r$BVggg,E͞rImmmIrB\| `bRx|xUxxK>g>7Im\99|v<44- Ѻz@$,2fN;ҕF_l8AhE\ \,,M>g$B$B,3M>׃',,Bu$rrrrr۞u$rrrrrII'''mI'$,gM ,,zr']mImm]Bp|##5e<ה  Eg>a[nnQpţ4Ϝl_²6MzEv/7K1>>,BziiEz Λp>7%1K7>> xDSdI$iBurrrrrr$uurrrrrrrrrr'''''mm'rr$ȰM,,\ur'Im]m'mIImr$ipcyT[ObԕxUCNTĦS|ZSaaf<* `dkg,u\}}K93:Xg6(¯99 >79+ɀ vX1:⹓> B'{9,awTkcV$rj^;h=T&6x\<¿WWFk.(OLE$uбT4NQ|$^H%733`…>CnT'$uurrrrrr$uuuurrr$$$$$rrr'm]'rm]r$,Ȱ'I'mmmmImr`O=8Tk8`6 c*Tn6. 7 ɩJ J8`[TTkCwx,,1Ћ䐼> ODLa<9E7ǔQ7>3x KK:e177鹳7tzr:kb߳Br'''$qsdwTllNx  (n#&OCCwVEQNyB$z^,锔,\ ֭0Tw0=IBzzuurrrrrrr$$urrjBu$u$$$$uBu$r''I]Ir'I]'r$B,ȰurI'''IImmmmmm$*.Tn!ؙؿ 55&`!n٣bٍ&ɓ6W0٣kaMbQ>>󓹔Sp3c6o:ycZǔ:o{Qs,ʆY9:K:Q11ɳKssKQu$,uEQUfdd 1>$rr'uȃɕlll; $Z6kkSx|蝗HHBBi>35NWJJTeQzrr$>vX7QU|4000nk`T['uzB$rrrrrr$uBu$rru$uBj$uVVB$$r]]r'I]$zΰg,r'IImmmm]I[lll6xU5wF##kkOk9{fC W0n=ĉ#&Yg>>>Λ7K1> w.(g>Cf:+dЂ{9%t$u  K%Xɕe褋x:>B uuu|:f껓$>Ɨ&T0lxp pp5РѰE|pEB\̹2;8n urB}27>$u7/XҊggg‘QKCged<92ׂKgBX| >7K묬5ГݔU CNE\OL,u$j?EMo%⃰ME|L|7bn08kŬUƃ7{ gg\>7>vKņ%7Qi\>>–<4ؙNn_왙NXmm'$BBuB$rrrrr$$BuBBB$$$$$$u$$$B\g,r'mIrr'mmI'z,,\M,,Bjj'Immmm0   l #;T*T#OSDDLSCĭF#TT8=FKݓri%XUcH,gZyNkUKFUKBrr$7G{M37KKN444C7/詯ٍ.ph..{urr$RK:Y9e:%K!­C;d:7>>LM\pD:픓ݹX:Q1Gヰ:Q7>ǢnN00_PPύ=Oce1mIuzBu$$B$uu$$$rr$uuzB$$B$$uBÛѰB'I'r''Immmuiiê\$$V^?^rmmmmIm]mmIm]' +l W*cŒ#T&65(U#`cxwFT`hyT86x1QX2,rsbdkk&>Z&;K.n9~RԕͪfU73 B\3~+H>>דXn#aǔ7y9: [..ppzrr$HxG9ІkTF5wf7Xgggțqq>2nTb v>1:+蠓x{x >GʫCP =mmm''ruBu$$$$$u$$$$u,z$u$$$B,߰B''''mm'uizzB,gu\pz$r'mmmmmm]mI'I'YPPCC!Cũ\ŅQ5nS1ǘh!y&l!&:KKq\""2a9kN3g23tǽUʸ4썯ZQ >776l؜0l&5+mmI''ruu$$$$$$$$rr$$u$$u$$$BB'Imm'uiizBu,BV\MB$'mm]]]mmmmI'Ic._lā&Cchww&x{Б. 7yUU=.4=*8nF;K1qߠs+Nn…9RYSVuEDU픃7ɔ3wK,aϴ4y3Gx,,x,:|c5k4_==8Tbbxƃ77:;w0PJAOS3߰ʸ:5<3$ri3Zk!!ęPmm'$u$$rr$rrrr$BB$$$$$r$uuB$rrrrrImIVrrru, \êgr'I''''ImmI''Immmm'I'$!4_08ژc6hF5b3:&!n*+(n8*ATqb771ڲ0ى=aa<[ur$BiȂ%sqư3ƕ-%1::37-ԕK>yش# :RoZQ3 důT_ؙύWl8Tcw67xN0_0쾾NतФ豣kd,$rM|xc*쁶_mI$$$rrrrrrrrr$$uBuuBBur$uBBB$rrrrrr''mIuVBg22g2v EV?$$$z?j'mmI'mmmrO.00 8=cCC`#X>K5#Wa~F!NĉyD,fژ;:Xכ[wyy7ǩ$rupQLxbta2Q:xvXǤǂM\Hſ40*OwhhdwnNyd{K1%Щ<忦e~[Z؜_ؙl8TN.ND_숈숮F 㕔#y#kTk$g7K3xC_PPmIm'u$rrrrrrrrrrrruBBBBB$$BBBBzzz$rr''mm'$BV?rmIBÌpg22gvvvgѺHqI]mI˞zBmm]]$(W=&hŲ&*``c%XXݓC``ll&>w#y+kN܌<9y(X>3x;5>a+ uzHxpU| C.YU;Gw>2eGE#.W*n44TCF;fo1eeUf[wU:ZO=nn쮮8_0yw{—Qwlll`|7!__!ֲ<pX%:fQ3Q(PPP_؈mmm'jrrrrrrr'r$zBu$rr$BzBuzziu$$rrrrI'I]BE?mmm'Bi\ ,p}//qM]mmm]]mi'Im]]]I'Wn!55wk&U77ZO`C:*WTT#CНn4; .XeQZ*yGvM>Լ>>>|NDH9:떠gQ99xxܯ։nWFeЬՖ{;5n0k<7X>KLc#h)l88؍yfQ}t pak0+bXNW=;bɬw[>{4000.m$$$rrrrrr'I'r$uB$$uB"uuBV"u$$rr'm'$i"rImi,ư,iBu\ 2Q//$]mmm]ri j'm]]]?0lW0`wC剉F Q#w` lTqcWTx!FSx;Sڸ9c픓Qg D`9+G >X1e:722|0쾾Ͽ&Cn_| wyn&O8 Wϙ!6Ƴq2ѥ\3T8=93><=y<Ց!=!O75nx>퐯.4ى!`O!m$rrrrr'II'ruzzu$$BzuuuBzu$$$rrrr'$Bzm'Ûg\z$M>>ߝeXqzrIImmm'Imm'$P숮=!hZ)&!T#xQY*CA#RL.!SxLדɐ:ǕZLHדg6Kbfe>TlP4#&4_4[|+~Qc&T.NfyǕQtttQ>㎡։֍[g2y.4k*=ll4_N6E2vvE$,Q&=쿑QxʩąܤQxQlN`X#OZx|Dm$rrrrr$r''r$۞zÞBuBuu$uE"$$$$$rrrr$zr'mrB?rB,g2p'ImIBRfZ$'mmI'mu _숈=!(&*#8Z+4n*!yC`O`#5C ~aLڲĮCLpZv%9{1/ݔ9c g>>xRK1>[C:~{gĮ0Z)ٿ6x|p;YKUwCZx9+GeCgpMןa3Q6#TT#WP.ba_008ln444wDg>>zu9T#ƗTll&SZ5=5&T4SXKx6Z3|6'rrr$$r'r$$zBBuBzBrr$$u$rruBzm$gzuEt׃3xx||H'mmm'uaf皞'IruPPWN=!)OF#=llH_TN# CCCx6#+61s%>~4g׹ /7Ro;!k!cxʱSL||;UQpS{fUf5kwFZw(+xq7,$?iȳ:eƗůky`0n5Q;=WWFk0=!C;cb7gaR НН,23ҭn0*ZyٮĮlk6cwىN004(::aaڡZx>HIrrrr$$$$'rrr$uuuBBzzzzBuBB$r$uBuu$$u$ruuurmmIru,亥rEqbbx$]mIImI$E{ښ@rrjA4_PPP0W!N=ٍ#Dh 8N!&X-껓bC}㨄/QxS6Wnye{fx;,KKKG<¬9 X>~~"$I$>KӕQw+ڸ0Ͽww.W٦FP왭 bg+.¯k|Ƃg2nl0C5.W 8 =`5Ty4l 4wNN+;r''''r$$$$rrrrrr$$$BBBzzzuuuB$r'II'r$BBBBBur'$ImIrB$z$rrzq%7:KXK"'mmIm]mrLa)A*ֿؾPP0WW=!8W`)=8N!<9nCUFčϴ4*L׀%ӎ3CxbaoXsЫ)``n5x1ou\K:X7U<9Z Eͫ… u''{:o<Ly…<:C400T&!NU00l#,Mp!윙NN88=l_##5C ţIJ[x _0#ww4m''mmIr$$rrrrrrrr$$$$uBBBB$$$'ImmIr$uBBBBBuI'$Imm'B$r'mmIBst2דݓb?r'm]mHи04ęJ0ؙ_ؾPP=n)&k8PWN8[&y5`lϿ땳мUʬЫf:n00=JWnK::+1KKMtxQe1ׂQZ>> L4hV$r@ |>2>beG-㽂x|LZM!!։k FčOwC7|!ϴ4W!H ~Q,H)ψ0Tw`84ncxxbQnn|ɳ؜0Th  wNl'mm$$$rrrrrrr$$$Buu$BzzurIm'$BBB$BBI'rrrmI$$^$r'''Im$Eg>XKRՏ'm]I0_WϾPl W!Oh4؈lT`Fy#6!N>9NP *xS- b1ԸNFƃ>|5bC=P']Imm'r$$$$r$$uu$uuu$uBzB$rr]]'r$u^uB'rm]ju$^zImmm'uz\ɔYVI]mIruh!40lϾ숮l *COhOON_خ=h Z`5<|Dh#(bPl؍.N9CLLY<뢸#n;:1Z4`Z`ZE3: 7U{x^^,>HBY[¿y#&xES+yyy!`Zvg27.hSw5 TK|an9Q{wN0 `c::ФQ/EVQKec >> -4Pm]'''rrrr$$uuuu$$$$۞zBu$$uu$u$BBzz$']mI$uBBu$uB$'r$$mIjVjr'rBitӊm]]]]Iu#lؾPPP h*W0_*CUxwQbQʼnPPP4.Y !!w;U6ϴ L (w ݓ:\^xbyw B,ȃtV F4;fY؉6Xq2>Qu$Bnؙ`ͰN8=`e:;a//⃛|gƂ;44 )6ЕG{dy=km'''rruBBB$$$$uBzur$uBB^VzB$r']m'ruu$BB]r@rmm$ur'm'ru "$m]]mm]Irz )8lؾP쾾PPlA`5&*04y5bSN;6O*PP0#Qx| -ayZc~f1hA09|;wZ3 9,$$V<Uekdx\EQM"TTS胕x+ϮϿeGQBB C5WW0Zgb!00«7S=T>K٭nZ-GЬaxULMg>>2aT8wdx ymII''rrrr$$$u^$$$uzzrruuzizBrrr'ImIr$$BB''ru'm$uuuB'Immmm'u\Ȱ3q$Immޚ`8ϾPPؾ윮#&#=8WTT5`NnkZx{; 6_[LE,p [~99)kUY995FSǕKdyyx:>,HyTk;b׳+a4_Ndd6D+4nNTnWney؈( "":n5:1ߗֿ00eЬkkNN~3Qyky妸|L&mmm''''rrr$$$$u@zu$uuB$rrrrrr$uBiBr$$'m]rr$uBu$r$$rm'$B$$Vz'mmmmm'M3EurImmmmIrZ`(J _P؜l*OnW0(ڑwh*8TMůFkTٍ4S, R7 ; 99*#6+gMkncHHwn=!wUFFXy.DQ%vwXY93`kkn|\踭=9aDF<;dnlP.ںH7fl٣73a.WlF ;CF#TčFKQ6ܦw5KE\HY(N5X+EOAم!nl5#T<(4Nc >x9Tʕa7UZг`4k bg Hx>>3QC&T8lWKז8nn(x ٮW8 WlWl TŗxtS4<Sh#*(NI'''''r$uzBBurr''r$BzzBuur'III'r$uuz$rmI'r$zm]]mI^,2\rIIIxaֶJ0N#SaSy/BQa kyŤ2x\.ll0n=l|LN0؍+h+<X,\\|[2>E:ӤXx493>2g3%U>Ei$']mmmrÂ!=nT _00O[*&c;cSFW44YQS{G:Lb} r$>| F.07KZa;A.ģ)&TW9_4ܳKxKBu$uz Ya L Zbf-GZA4+a>v>QQ|QGdĮlW=nk5UeWy<Er  kNnn!kWJ8…g0شPWZ88`hhFlI]]''''''rrr$uzBu$r'IruBuB$'zBI]IIr$$rrr$uz^ImII]^$I]m'$׹vE"r]&T8n8  Pؾؾ08k666w;{~aթYwFT&ǩ#Dp:ǔK%ppxHr'rgK`N>XXٙAnny56 H6Nwq !44.[ 7>3,Buu\6h`...[Z|CFO~/ݓ>QDU:W=&7K<4;Q>B'z>+5w55hy0_4!W__65=J40lIII]I'''''I'r$uBBzzzB$rr''I'rr$uB']I^^r''I'r$j$Bz^@Imm'jrr$Bmmmmmu ggpEz$m]]' T80  PPؾT`ZLЩb*yCHLa2v q>ҼaQL"$'g7f!ؙx>ݓdl4NybbS`++zVV&.4_¦e::Kx//ݓbKX/D*lWJ4*a; 6_4L|3rBb;L`lPQb`NW0ؙ0;N0ϴϜ=mII'IIII'''r$uuBzzu$r''''rrrBBu]Ir$'r$r$^rr"z$rBEr''mmmmm'rV\EV$r'm]]Y(Įll PPPPPP ZxfUf5ycQ5C33vG:HzrۥK< O=Wؿwn왿`[LvȰ>̃p1>>g׃X~윍44lʝbKSS>L#00ؙ00yyFk=`O0nB>>k#ll_bwؙTFN_ϴkm]I]ImmI']'r$$uuuBuuBurr''''r$uu$rIur]rrrrru?$$B,z$$I''ImIz\ggȰpEurII;ţ 8숈PPPP8֘xbQUK&Ķ)ɳk=TSQ3 \|C2ד,g2xpȰ2E>X90;S0؈_n!A`;:y#>|Nny|24ؙnFnnWWn8dY$r^\+ƹv>+ٙTFn04CS;yؾ0n`Z33ϴ4nkSIIIIImI''''r$$$$$$$uu$'''''''''$$IrrrrrrrruBB$u,,VBr"rImmIm'\,ȰуggErrHS!!!=ā l P0PؾTbx:UU&ņK0yw岡L\V$uVH Œy>/BGxHky U;|דYYS|Qȥ3 >7xpi,M>iVz!*72Zy_lW=KUCT׋0Ys .4.A`OCO!W0؜ЖfH"@ruE)8Op2+ύa 55ZpH 4__N;>T.44…hZD|mmmIIIII''rr$$$$$$$rr'''''IIII'rrr$rm''rrrr$$BBê,$\$mmmmmIrV\\ȰQ}tE\S#kĮlW ll8n+x븸bZ)422 .0ϙT$u|ŦO4uʩccC6::x+Q794.+3\,3 7>>3E?jBQcCSQ&Wla3#Y{w0__.aCZH ܸmmI'I'I'rrrr$$rr''''mII'rr$r'I''''r$r''$B$$$B\,uImIVi\,țMt}7|DcyWWW nyc퐸NwUx 99;3+n44_؍ٯSV <£#4Xtu xw((KK3xSYƂ84cLHƪт>3v>$ru;Ь-5#ؙ0k űQ44¦5CC Q$r$z|Y(N4<><$ruƕ[4[Lx:aФ->,EViH |33>׳xdpȰ.I]'IIrrrrrr']'rrm]]]]II'r$$r'rrr'ji,$'r']]mmmB,iQQ7XDl=8 WW0ll! :CN٬tQchAęįKeLe3ț3в*ᱫZǻKҧ R>$u,ge;[9++SaZ5=*!88N薆1vcOOTniuzQxeeRL|+(fKGw׹7a6-Ƃ::xVVV\>f6`(+& |fy0O!4¸>׳QbDTW_49պu\2:x}b $$z><숈l0S|:e:>װ,Buu$$$$z ƂYêwmI]'rr''mm''''ImIImmr$uu$$$r$^i$rr@']mm'm$^E\Eiz,>11c WA*#Fk&OO`Fyl n#YDQӊx\\:K,LZZxQcZqg,ȰK Lof\,{.>:;g:xe6.Y~ggQfZLc<K3>3,\pz$ðgK~f,ȃymII''''rIImmIImmm'ruBBBz$$uu$rrrug"rއmmmImIruVE\\3K;wk=  *;;< c&l*&6Y{H;+|aȃ1.9x萎>߂K,g2>>KCN0x\Brp/M߰u$@Buz\CT455yC9{zV ƂLbg;C؈PmIm''''''''''ImmmI''r$BzzzBuu$uuuu$$r$B Bjj'mmmmmIBggư3Uw TC;:RՐ`ll*FZQ w9 Zw¬xЦ9of.(ɔbg3L|,M .ūQM,Qvb(4nF&6O.4cU63%UZOk6x|yA==)ԟ7SW,ÌpQ,ƔsB$$?"}+ٍ8f¿4& S&x=PP4.YFl0‘fU ڭ_؜ l_mmI]'mmmI'''''rr''ImmI'mrr$uzBBiiBurr$\VzBuz^$I'z\M;=l T8hg>>|S kNNwUg;…{ƂQQH\xfթyN&+.+pQt忣׃->H+q7T__Dx9Z6Œk4U-~wC{,Z0_O݀h(rEL99,ऱw|;0ؙ844...n(lTSmI]'Imm'''''I'r'''''mI'r$ii,,\Eiu$ri"uI]]mیM,,詣 T*8=FS肠t3Q xTT==Fhh#n٣C뼕: ;v+w x,,MpiEM>햝yy_Tw9a371HQ++x>t,g>>qg,xLk¿CFNwX.&ZLYCSU (4hxx蝗84O Qe;0w"$r$" , EHxxpp,,xU<{Ux0lW!).4ϣ)`A.6H#!#SmmmI']''''r''mImIII''rr$Bi\Ȱ,,țurr$VuuBrI]]mmmHѰHZā P썶*!Tc}x\E*[[ZZCk*&o苗f3gQx|\BV ΰ7:wyTO6~</%ZSe(9Ȃxx2gggQbU+‰#4a6#ϴ_=k[>>XX1;_*)cb>QwlW5 D0llW5f3BuV  M,ΛE,C 5NٍNZ+4N|3bn!)DL|xK鄄/mIII]]rrrmm'''''''''$B,M,ț $r$iBuuuB]]mI$SNWlWW8!#[6ܒ66[~Нp")+yaSU~ Qu,Ex XXdcš3XQ;TWW;; ZZL 72>3Q ;&*041ʣl_444~2 /7c=¯Ђo{UNWW0윙N56ZkW윙!ڤX7pBEQL,z c;d5wyk ưLc3k*6Ux7X//II'rrII'''I''''rr'II'rrr$$B ߰$$$uzBB$uB$mIm'uנQ&N0W8888.ύ.4SaZR| \..#9 H|Ơ ^^\䔳QX%//13Z!6F6 f1>Qb򅸧a+ٸ ZS`8 ݀:NW0.44.ya>נxaSh&TN0Jl _ϙ! c a. =TT&6HȪ^""BB q1XQQ/:Y9O8404!S||T;q7KCwnN+9ٍ5yn*ژܡpXXlW0Nh LHkT&Ŧ8k&`=Jy#8_4Sw`,ߔo+ wk4ؙ7K &`Z9y_¯[SY6m'''rrrrr$$$$''$$uBz׃2EB$rruuBu$r']mr>xxЫ._lP!()h:)8=4DM EiE\\$u,KbScC;Hx|Rf{!=.x(ٙTCФ>U#==k Fy7|c+ٙnDt3:++D L;=6xK3L!8`h5nn88684 WؙTTN4.Dה3wkTn_0؜=SQ|U...40_ύd mI'''rrrrrrrr$$$$u$r$uBBE߰,u$rrruBBB$$$$'m'rr$ug>37|L88=!8ll _n4wݹE`ĉ!x*WWn`p:UN44؜ؙl.<U; I'''''''rrrrrrr$uuuBzrrrrrr$BêEу>3,\VEEiBu$rr$uuuBBBuu$uuBzz,gǔ> Z`y!=!*W0l  4ύyГ M `WJ8)`&f: ΌEtt׃qݓXDᯭٍ=)ab3gMba:-X " wwZ<`FFZ37q73>UO,;9xMp>T0ύy<:CN4_#TT8윍֯w6_knnWW֡C~Uư00_4TC3MQ:f +y4_ϴύ6 mI''''rrrrrrrrr$uuuBzu$rr$Bê >73,,E"\iu$$$u$$uBz,\ ΛM\g23L&(`yNJ؍A |ٙl*O%giK7ɔ>vdh`N00w 할,:ViLacZSwTk5bQ>tQa0؍Z+66SxbxST=_4ab|c!4444+ &`0_5<aٿN!6!!L MHx.40_4yw3YY[6Zxd|숈ϴ4!uKɔQI'''''rrrrrrrruuBBB$rrruB,M߃3E$uu,EE׹,Mу ߠKqtUc` yl0loOLyP `;U t 1ǂ9{c ՝cwe{o|,΃UdQܝ\g} Wnx\|>v> < C!kܒ`0_.`6|Qw6 }Y)0l#1:e;;6L3:S|Ȱ؜_4ٍ05;d5N.w&60ش4y9E"3>mmIIrrr$uBBB,,B$'$Ȱgs3,z?ț\p Ȱ\M>3qXLLмyٍW쮙JWJ8&``8YĈ0CLM\1K(&[Y|Lb-

> w..g~kW0Oh9(b3vMc0TC*ؙٙn!44A4_…::SZ\3>-(94:GK:gggg7ӊ\,ݔ;klύhO)y(G9COT.4nNy!6!n_4 8444I$gmI'rrrrrrrr$$uBB,,^$rIuBtEVV\,,,ȰѠv>7>>>ț3>>Qb33t3QL6[y4=A=80Wc.ϙN6Q,M2K敕7x04YxpQ{U\Q31s3 :O8NxL Z;UK9qt>,,i\iΛΰ׃v22v׃2MȰ߃>KK>|F!.!`*n8WWlyD"#4000yCSțƂUb)!0)ꔠ||YCChZNl왣{axxxkؙ!gg2E^zpUc!W_lA`=JlkTO6SLp: Z`N0CfU73tM> G+.5QKUY£w&N؜43Q:eMxmmI'''r$uBzBrruȰg>>q7ѥMEEêB,Mt߃MM,߰߃Ơ>3qK7>>נ|+4£N=!#*`h`n00y[ZƛQ ‘)WWXXUy!~4J39y; &T֙TOLƃgE x5< 4l=` PPPll_0`HL 9>>,,H+¿ 6NeKU;;b>>ݻ7>> |{Yy7gs3\~֙ZYQЩaȰM͋ ZmI''I''r$uêB$rrrrrr$ƃ>> BBiiiiBBz,b߰ȰM̃2ד777Qx ­NT#ګOO*=!:Qxf(4.T8lnǓf `8؍!QZQš&S;w¦F#96Q7>߂pE7+.)N_&P윙ZȰ9(9%XȰa40ؿZ!֡1;k*׹g>sҐ7> Ha:>gbQ L*n)\3}bafKwIImm''$uuBêêBuuu$$$u\ggț\Λiê,,|ర̃ț\g7777aN5C5Ŧ&yTw:ǔ>С540NKd n0.嗤.!L\pxxLЖw.²6ZcQ 7̃ƋNW8*hZw(_N._ψP4Q|ggco% ,c(5w_#Cn왭hCU2Vi,Ƃ}}3n9MWn)|K:K>:wTTI'ruuBBzziizuuuuBêi,MM\,,M\,Λ\,,M߰v>>> ⓓKL)ᡫ 5w!T5&:K:a*Pl8O[&&T4xQ;4|6)D L:1ⓔQ||tы(_W.&N0!| 6D7vL= #hc4.0<CĮy59Nna͌HHpw4.Y(ՖfLY.*5mI'r$$$$uzziiê, ư,EE,,EȰ22>333}M,,,\3>>>>>/e6h;[*ֶn4 08F5b7q 6`n_4k*yN#O!0ϭ;>f0nFUGf `ࠠ>X݀ttȰ(‘22WW*`S)NTyhOSEx_0TUfWllnT妑.06x3߰Z <~[O)*._n4}׃ggvd9 O)*T(N)FIII'rrBBzzzziVțưƃу߃ưE\,,Ȱg37s\ưf **8 W_ JW_nyab1ea6 D#8lly&#ٍJ00)!4K ky&9Y{9aSO9b22vɠMMU55cٙę*)7>> E,K<ⓠi,MQUcSZ&`C+A!y5nll4NQ04[xgLyJ8*b3СnyC;Cl09XyyZZ 4_n`pMM Y9.4.S6We`mI'rrr$$BB,,,,,߰\,ΪiBBB\MM >׹דɂ||g733Qʘ# lP_8ى6<맩Ы&*#&&)*`4W0W _&Zx:Y`T!ڧNw改t|EVM,3 2:o~(NNZHLS9(=8#8؉SLbY`0_9~._0(Cx؍y;faCyWW =5 ;D´ϙ Y(.#`T0cZ6C#00WWln5 ʖ!mmm''rr$$$uuzBuB,\\Mggg EΪ,Mgƃ>7>>>7ɔqv3x薖UGٙ l04AA0A)Tyy5wwCC`OATn!0&00WJ`3RY`)WlPؙnwd:v|LRЗ| g2߂_.QȎ94.W=!8.9L )804SxL.Ͽ`;dd=8TGeK!y´ϴؙ ,Q:ayTkOO0ϙ000lW PkwdŭmImmmmmmmII''rr$BêEt̹װE EE\,ƃgנ7>7XvX11K3nPP W0_0088`&y…=8_n08nĭ.0ϙ96h[*O Wnĉ`77Q:G999attQ_!p+(JA==yXXX7X>77Rէ8__W PJ0ؙll`F!4._0nT!4=AOCC֭_44#AA!Tn 8#Lq븅+EO04* *8ϙ=0nw5ύF`9yTP0yk؈000؈CQؾ04:2y)Y:>7в!_W6ɓKWĉ* W___W 쮮n!((mmm''ruBBzuBBzBV ΛQQ3䃠ד>>X>XKa&!.l0n!y400PW!88PW#A= ؍6`! Wl0804ٙW8=k:߰߰KX236p6`=yLH:6048&O80&ܝիO! _AA*ى&SxwPPx>´4>>|)80<4_=_00 lؙ)mmmmmmmmmmmmmIII''''rrrrr$$$$uz"p3>vvvư333>ɳQQ =W_0WO .4PW N**!!؈ y`)W!#**l0W_89YRfǰx٭pԆZ+(#`Oh* 0#3W888``*Wy:Uƛ9W숮N5xb9.N|K>pL).CKwkٙ_Ͼؾ l0_0!Z]]]mmmm]mIIImI''r$BptуgQ>3QxQK:bbUO`nn J8*H Hcy4PJN!=W_0nyC`l44400؜lWl!!#6C99{x>77Q{[hLpn *ee6Tny…y=00!7y4_8=8*NϭWW!OZ>7Ȋ~[h#nٍnՖ hwhZC8W0ڋS`4ϾϾ_44444 mI'r$uzz"vg2׳}q7>Н{~xbUc6)F‰8n3p_0.#F_ϙ8 _0_WPPPll&5NkCh&..7R~. A)5C#0y+YwSZ66L0_Ͼ45CO8444n*#0W3ư3yNC6Z|.!O c& c4P__WnT(S_Wymm'rEMM>>3c{:Uaa6yy!yTa1p6y. 8yk`0_J 8 ؾPllW6寸7b & SaUo:sQxS cФ:|숈āW*A4J 8=88P WW_P00444caSSbQa;a6#8__*cŦnN`O)h`&HpȪ )(4__0lpLF884.񡫬ZhSФLh! =TNh_ W48.!8 PPl_ϙhZ| xSmI''mmr$Bi\E~Y~bx:>Qxxb:{f>.PWW8J =8  0_ؙ!#!!Qx7>g>ba S!.4);abC+48k` EZ4ؾ0_W8*H3C _!yn..+<4WWW!Okn00.y_000P  N M;wm]I'r$ue:ǔ77׃3Y99o.؈llW8֙8 l _ٿ444ښZZ Z:7>qQxʆ;5#A(4_){c&4l0ĭN[M\h.!\ E(؈l _*)#00++44ϴWP440aJP 숈l W___.H,,b ]]]mI'rui,,\ xҎ}|QQyME숈n=!4Wll JNn[cb|%%772227:Z6y0&ҽhPP8..+|l*ATTT5Z\ Z.؈؈ll0ؙ)O(4؜l PP&`&>g|Z!0P lAؙWnZDhU'j?͌i͌ ViiE ^^VzBr^O44P숈l8*`JJWW N(Cab7sXKK7q>737ac&wŘ64k3l88;W0 *O!#F5R64lW0____0 )C5k0__왿) pH||&P0nAJ000؍A*OύF m]]mmmm''rrrru$rrr$$rrrrr'?Zh!숈l!#JJJ8lA![ 7⹹⹹׹K2g2̹X%詸why4#>K숈Wl0*Eg2>kl ...Tn=A(0 W_0_*5 44ATٙ0 OnE2\ţP؜W٭=0_Jn0_lPح#mmmmmmImIIII'''''''''''''I''ImmmmmI'upZ.4ؾ왍800l8l*)6Ж33>v2ׂ>Qƃ׃>1:XҒ)8_.467 8Pl=)M36OAl _=4`)6WP00_4ygg3 Ȱ3QXv!))N;>1U` Pؙ0WN[[(WAW0yPֶ0l0W___wS!A`h&[wSk0_4y&Ֆb `kn4Ͼؙ!T40 __ψ00mmmImmmm'mmmmmmI]]Imm'zֿJ JJ W=!5kkb}t3>M,,S6Zȃڅ.TZ 6UaO0*#00000ϴ_خ#&hyN##P** 0l+..&c[+7C&Y!4« nPl 0.n0_=FW0.`O*n=kkhy4.Ÿd3x|Mư>>>>X7:b|Y:aC+(¿ى!nٙ4.+ !4(O6cbK:Ж>>x7733339aa8ٙn+bc_l#&LpHy0W Wؾmu.0PW#CY>>>77Xv>7ה3}Q2g22ss:Ԇ:KKK¯4.h+.+7ڧY6LLxxf:>Ke:7┳XtEKU<aFخĭ9;+(0P004&6ZyT_00P'۞O(ؙW 0(bg2>7K-KXǔ|ggt:7>핟K73\ 6Q:xQx{;attKKK::ǕKK3> izBM7xD6<5 8#5;y0lNyy!_8# lmm'@yJ OZxKK7X1xUGb w9K}|ɔQbsQM7 hhƃу>>>q71qt3>>tppz\pt-{N00n#*bQ;&y윙_yY6W llW]m]]]"xG\p,22>QS..agנ222ߠqKQQ| \,,\\g3|p",,M2 xc*nnnTyd: 5yT==TlPܝQ`8 8=8mm]]]]mͺfŲyTkx~++Z6--:;™&[ܘLp2>3>3у3-3og׃>xS_.db,3ưѥMȰ,pEizzBu$u,E \ȰM̓>:ShFN;a[Z;#=Wl9K1x֍lWč]]]]$ aʩw&[aRY+Yf;((cX؈8`6~NN+|>22vpѰgƠ>b+{1>xCyywUQQpM\, ,,BB,>q̊R2bxxnT!;a{Ֆ6O! 1Ԇ(ٍW_왜4mmm]]]mIrL:UUUU9Y w5򝝻2}ϾP hW.|gƛ,g,ȠUd-KQU:>🽎}ȪVH xQMi737qGЅ=*O5yyC7ǂxxxXeЬ븸fQ::xLHL6S6[aZ=4OZ`_ఠiziiM}MM||LK>K%XXX>ɔ>},pE|{ӻ\7>17Qc8W4.5Fŋ>K1KKf{~x>>b:K&n)y!`mmmmm'Im]m'Bip3eG;Q:||6S[hKL_ؙ(5م,izzV Q~Z6++cQQRһ%% E,K-ɃEEH, aT4Z5g >K9&OZx:!Ր:KK>x4 mm]I'I'mmmm$37U:ӼD4.(!nNwbSϭ[d9=;3͚@VEƠQQx;Z+~ ,3oՏK1QQt}tt,\qQq72g\ pHpzQ;aayc< Lg,E3ʬ5y=+4Yꎨ1K:#a]IImmmm]mVXKbx~O!405;(ŗUC)b}[Y~ד:xx|RM>>3H3ƂxQQQ>>>3>7}HH\,,,, ,g3KUū>77KQ>i2x4_4cU~Ж%mmmImm]]]'^HQ3 !n._ly<babb9[>79(+{17>qtѰ>," g>敂fo:̠у2{fa\ s+(:7׃qHz΃K0X:;;R:1''ImjVt1K1T¿.WFdxUK:҅9b>׃3q}q>vv7}Q\2ߛBB\ƤТYxț\gv%>x|QZ+.4¡1>3|>7Hbc6n04;17Sa::>/I]]mmm'rB\7X:搩Cc6&yU::71KЧY+9,Q,21柔,߰Όbſ.9q3M>b+[a5.9.y33уנQ1ZZh剭#c݀v>|3>7mmmmmIrut7UUbxD27|4.Eg22Z` \\M>XX>gtQq7>Kf{<9qX7|V\D.4.TNk4ϴ11>g3K7ɔȪ E\3>>ggt̠gggxЧYmmIII'ri t>K::37R{xx&y!"喇+4449 EE>%K7>1%%xp\Û>EVH Y(48J=*4qg>>gB̓–77QפRhw(m'u\s>Q7KKҎ:R菒xwx| ɠ/KKXr,\pKf[[O4 WWJJ4>M3qB,MqsXt>>>f+40Wb:'$pp߳3Q:Q|QQa쾴=b}s,>׌'$K[yش_ϴ4y రtѰQ|}11:17nly5xmmI'r$i\ƃQg>׹p|+yJ44) Ǖ1%%g̃>7}HzuuuB3tqqqq>3>7Ǽ5n4_4J| \> | Ӑ>cS6y40waRo{'IImmI'r$E у7>>Q>ݳ0_4:Q(NnJ!N兑~oKK  7gg,QtLb7}""uq>2>7:А` J n4n4.9 EizVHxR3ӢY{蔹UyN9f:baRm'Im]m$ztX37>ɨ!_[Ћ#yFCxbܢ9|,x2׃7Q Zhc}EzB3}| EMg2׹ЫT *k(5Y9R|p?$$۪ê\,s-:Q7:S&004U3IIm]mr$tqK-3>Kbh!44(acC;;a|׃+.4YQ77‹[yT5+<\"\||\g׃׃>´0 |HH|iuruBBΰדݓ >K&NȰ>''rb}}-ӻX1>3QQ 򸒦 F(cL7׃>>Qppv gWWyuu$Bzp߰ggEy.0>QM,B$$Ȱ,,tqXx+ܗEuB,\,]mII'r$"Q173QѠ>ד2xדvy0حuBgb}L6._0!6qtȰpEMq}s2x>79< M\^^EEƃ>mmmI'uB\|-1>s}|a;._Ͼ0.KK:bQ\, >222b3>0ϿE"zz,,t2!!0_4ح㨻נQp ߃K>ӕɓRL3bq17'r$HҟqɕX|;h)=44ؙ# :2>M, QK{9{Ҏ1s7Xb6*.4({>>xHVE 3~+ؙ=l4J᝔7/>M E\7߂GX21ԖHҎXXX]mIr" Q1X1ů`*8*SbaK-G9(9R7>3D73tzjuVRGcOؿ!!N0W*РȰgp\, ߃% 2典CY7>%-m''$BBp镖+6x¦wycc fa73>CUb>KE}ݓ}i$$\8&O[´_A[YYaxד\\ >q>qt(4¡ɟ%IImmmmIr,߂Q7⓳;:: CnTٙģTw7נ|Z hH{U|37sb,,:>v>7t|tt73t4yaUsssIImmI'r$\>3xG ))A*T(+~g7Y+f<{~|pMKfK>::bQȺ6[kT(.’Q 3>׹sq䂔`#=c>xpmBE3>xDL~oՏx>7K}}KЯ4..bK Ny;м-s3aa[c6NWT5v MQ>׹vv>>eU7>ppz$rm]]'BVEȠt}t/b襤x>ӻ6yw3>xD(™4C꼤KbŅZڡ=#h ݓ o{{Yg2ד2נ3>2Rt> B$r'm]'rr$uV 7}:37s>>fU:xE wŦkF[맬xU謸+bŅ&Fk`qS+Yv>b27sqq i$''ImmII'r$$u\\\tQKeǔ7q11uu xpN<<{g>KeGUQ;иk7%-{{w>>2Mu$'mI''rrrzVE3q17227>7B\QQ99deee>>1Xǔנ>4n!-USqɔ3"B$uBȃ:GɔQ71%騻%⹓vv74N6 x:1s}3,umI]mmmmmmI'$V>qs}ưv::>33ɨs𨻻q7v>7(4b:7>::K1sssspEz$r'I]]mmmm''uBVM3Ѡ}}}ҽKǕ>/XQ333KKɳ>ggKKq7>7<뼕K-ҽb Vummmmm'''?@uuBipY{oKK:}>3q3QK:K1s}pzu$rr''IIm]]mmmmmImmI'ruE\ppS:}s>>>33}xǔ}K73,\iB$r'Im]mmmmmmmmmI'ruz"H ׃>qqqK7Xq>tQQq7q3p͌"zBurImmmIIIIImIIIImm]mmmmmIr$BB,x ,EE\i\,\u$$r''Immmm'''mmmmmIm]]]mI'I]mmmmmmII'''r$j$rr'rrr'''''IImm]]]m'''mmmmIm]'mmmmm]mmIImmmmmmmIIII'Immmmmmmmmmmm]]mI''mmmmI'''''II'ImmmmmmmmmmmmmmmmmmmmmmmmmmmIIIm]]m''''IImmmm]mm]mmmmmmm]mmmm]mmmm]mmmmmmmmmmmm]]]]]]mmImmI']]]mmmmI'mmm]mmmmmIIIm]]lmarbles-1.0.8/src/gfx/metal/teleport0.bmp0000644000175000017500000001206607206511057015345 00000000000000BM66(   :ƥzӮN>ĞgNrnӯŚYV3дӨѰ(֮ǟβΠ^fA*۶"زt*ƚʥRN}ְҵ6|ھžnjϪ^Y}ŚֶJ:ZJˢΦҮVE. rz:Һɢˠʫ~ҲxEĚ^_̤bg̺ʦپRJոֽRҪjfB/Ζz}řΪɢ̦ZQȞQFŞG3pb^4߱nw–vuĜƚV ʣ~2 B&㸚jjśѪ–>&ܴ޺Ұ˪Ѫǜʣڰήĕ˴v|ÓjrRB;~⾠3ƪ]£ֺήѪѮ>!ÕںΧҲF0习npˢrụfhâzVOj .š"&ǚNBZZbbN:bƞbY~VJ~jnB6뾢|.ֺƦ’ӪC*#6<5+p&KK AA5^OjH#K6`~H6R#ݐ`c`zRm#&cz/ݐӈ65 Rz..AK^rZQBZH)އQ!ȼRފA"t`谵6cAp.?X2jP5^+RR7BzQ^KȆr66zAӎH5K)`H+?Z"K{EEE{"g{~{jRA? ??{+55ȈE~~j#Rrr?7??H m#߳X..u֠E 2Rz t òCWA&K6XEZWu EHKcj` "CCQP).aٴ[щّ#~C* ԶC KP WfĘ~r5KR7tC|W{K^Ф3eS@Ii3 ?#{hVVhԐHr&K&ㆺuNMy>9uUa~+^]Ӿ"~{V"%|;ᕲ!+/X@@--ۨ:33fL{H]##&thh0pAZK&j\gg3q1N'qq9w׺OA?ǫ;Yh|W~аWb@-@@ªar&+C|;4000Cz`P5HLD8@}oqoog X]t"V%;4Y;;?z??\3ࡡG}}:͏Qm߆HHtVhY44V龃PKmr?g3D--$di6]^#r*h;4llllYYǕCK޳..g3:8@-g 2QQ~ +ȸjOY hǫ_^{b @---}b33W`jPK^]XW|ΜYll T%΀zߖ~Eہ}-@Dy{"X6<՞>EAVs l4V*z?M=}G-ʁ=w.߸rzW|%Yl Y;CtQנg}-x{Z?CC|ҽl Ts?ZA<7?Ek(i}ࡡ-۱ّ)AAzVV4 lYC莵-(EX`zzCT %,z縈ZC[xࡡ-gפ`AB?_T T"?Zz.ہ@-G}x[a?z؈C|;Yl TY|z!?WEN>a[x}ࡡ-LE&`صB_4 l|AEƭ.b@---vXr/t|Y YVWj6PROEMkiš-ͭȿ!A萦Yl YÂJQQW @@-}vL\2PP!ݾ|%Yl llTY|"ݼj"{D-@"jYYT l̶z^PR`23wbGG--@ guUXmߚW;4 llYYY|Xz^KHQ2@ࡡ@:Ī.n R˫;YTl hZc^]6ad-D3gLEXK5jCllT4hǀ?)掏͓}ࡡGʔ3\X~#K߃镫;ll lT YhǢ{zӃ+XoooDL~՚#?V 0sY4YYh%{z<ra٪=@@ʡ}@vbg2P`z|%Y4YΫ~ڵjں(qq1N193g\AK"zBY%Բ"Ar#)~f3$-@@g~j+rK~Whh̫?+`~aUugg>MNĉu&AcJV|C{~")KXei@e^ӳWh%_Vh?H5\kyWWyfPKKrjR66{ҀCt7Z^K#؃Ӭ(b셪ё~P瞂CԲCV ~6HݵE ֟u{zZ6#QCC{?烞cQ< R EkgnunU6]]5&WC þ* C5#m&~EXtA5#]?C?zڲ rrQcc5+t~"1٠{2r^555^]"??* Zյ#Atں`66r#^?z؞?"ARR/2Xڳnc#Zյ7rRr#PRrﵐK``" PKAAz..zA6+ K&+/uR6xwlސ.NL+zhm/NIB^ֆ @+FZeڂ3Vbj8m|J>jZzMV}m"b_l`dw~KI6X`\jV^C7v;= b{ *?FDt4]nKOZdm}ro@qg݇PPZeJ&D,7I8Xvx^rap & mol%fHK"^i{F%zUc6XrB2e|KAdv+vWZlNP=$3atQZ:JZeR:ORqzN^~ovA%l|QVF6zy8WjwovE2lVGDJgނiu: ow "yrb|^v.~njx&jF.TYan<rHBgtJBHF}FR_)rqmRh{ Z;E:9YnHHp}}suլ˜6#mu/>R2۲yHnom6J"GNmnQwW=W2R#ۋ2tuwPH=U-JTR?{?UR~A!h޶!m/ꊇC''cJ/mRWWHyR=f{^"􈜲#Q'BhtUow൩tWRum#>㌌WW=gc֜Э ϳ5g g"\.-w'厎7jߌӎu=-Wfr g-H'AU"g6wu""[.?{`V{{``G?}=y>㘌ABʫʐ+KRPwyW.UUNk\ m-ouHWCRKՇ=6wy˶?``ek\[CuQga7v++̷6#P3kV\g5Auyu'䝝SaSmc˩%¦``ͻ¼["5iSS9Sco#y#dI``Ng#mhߔgbKSÄ焷aa=T"`__V"mwuP#̠SSä@R#Aϼ`1I dE.qoPQRՌ̢SSħpٷaɇ꺂yAW(;;zzXN###-KلZ:|@@@KRuۋV``` e1{ FE?.."-y4<Z٠"Ջg"\`zzzz_;``,fCHTmBbpȏȏȏ | UTHuyV`_(;(]O3m>yЂ=S*<ȏ:hh=@ȏȏȏpp9|RCm#2t3V(;zzzzzzz;ѥ2Q65 4pȏȏiߎc܈Wt[`;;_zzzzzzzzzz;eIG3.q垘+@ďȏȏȏYR-3dO(z_zzzzzzz;_es{GQT5a iȏȏȏȏSbBƀ;;zzzzzzzzzzF^ssGӊȏi|&YWWRC"fN`_zzzzzzzzz;(}-U5SSiȏȏȏLBWW {(;zzzzzzzzzzz(F^^hAbpȏȏȏZô+R^F _zzzzzzzzzz_ͻ[-RRՠ|:ȏȏZĮؘ怙q[`;zzzzzzzzzzGt̮ZȏȏȏM:|5^(zzzzzzzzzzz_X{R#PR=|*ZȏȏM*"Ah=t;;zzzzzzzzz;(^NrftWBMȏȏZ49S5t-oUsIs^F_zzzzzzzzzz_;CWBj|ȏȏȏȏ٢{se;;zzzzzzz_z`{3ӎBpMȏȪp ab5>T20.3GNe;zzzzzzzzzz_;`VGQc-R=8|ȏȏҹ+c2ѻ;zzzzzzz;FE}q#mc焄:ȏȏZp* 5g~C0[gEzzzzzzzzzz_;V{ qc#hP#ƣgN?»sId¼#WRY9ηLÄKbg/ӥ3,`ͯͻX¼kթ%-55S9 S"2mPuUտ¦rk3#Png᷷ΔqQ/C!^eD`XfgP˺-RWb++bagPoomr3sUU.WH֋b5CWPPGredVx{.uЈT'=KʫYY+ou-"  Wo懶=uy-t#.\"g ݳrr uuoɿ7A&ʌj22C܇2RWwct=Ɍ嚈C'P#"" {fh=wojh氖QQQ'ՇւۭH'=ޘ=WRRm~/RR?{?RCT~6y~Th!~u坊WyJ-厕U6nN}GgՀJ6ywTW=-umRn~m-J Cu#敺Tlmarbles-1.0.8/src/gfx/metal/teleport2.bmp0000644000175000017500000001206607206511101015335 00000000000000BM66(   ~9rVnk>/]&9|rHj &GmFc2PȢ(}^>OsJ["XA4޶PRf6qN+]*}f^xH$vv~j jN5 *ѪuR~b.VyZj:^.ծjBVrAQnH zL " .xNH fV"r#z^X.JDa6zVna2Z~z{R̦۲fnY&g2pFH rBn_.zJf*Nbjj>g:bvwK7@rsJsFZWn>I2fV~Zn6b*xNb;^d.LT~%~vS¢D{VRjlBzZ"0_2^vrQ"rh6>٦ e0)`s aaa)C4<ܰNo0PuuB>&x0㰳ձc0 x4e(a ;SNs<ܳ#y(' Ĥ(yCNN`s4c!JLZ y&#-c2ce"Rٺ0>CNN9a42 0oyeah '9; R"hЮeoB-Rَ9eaa<<9)&a;a cg("xC:[=6'P0app'g'|'`#&a(9eau cZ[[|#y <"-Z=g'#`xRZMMMMMMMs -;;c6__M 66J|;oB '[|XM6j[=a4>-;u'X/_ 75++kz_jG&&S[jXDXX6 cc2x;u([X _z^Q @@*tb9PS#4'MM[/XX~j:>-s(Z 5{ +UUm{{@e;;;|jDVVVfffggg:`y&Ns6]{%̞ɖ/:bБMXVV6j[s&9=rzmاUUUUwkb;sM/V1q=c`oCy)'rz+mivQ*qs0Gox(MJX/EE6[u)N'J@O]+UUUUUUUUU+m{@p||jMEEEKKKKKTVg" q F +UUUUUUUUUU+؄jZp||gMKKKKKKKKV a4":qtrU+UUUUUUU+nO@W޺`0b[qKKKKKKKf~j9pu"a<[6QnUUUUUUUUUU6'cڲqqڽVKKKKKKKKTfXLM9s+UUUUUUUUUnmH,ɾ`u-Pbq=MLVKKKKKKKKTf=ZȐZ:: k{UUUUUUUUUU++{^wɫ䟐"`u#`6XTKK1VJb;oC#sb<'@mnUUUUUUUUݏO tLN>" B[J61KKKTKTTVrbcea"`oG0sqJ$i m zzﵥCC)u![JMME//JquxÆsЮcbX~A[|4)&G'_zOؒn{7 _;"R2Չ=j6r~DDXJ!|eS;Jd_lt墻J;>4apa6t~j:['GC>BZJ_ Q,,m{]v7*䁩-)>P|ZbtMq[=j[!'<SԎ:tZΩt`#SȺ0|j='c"Cx27zttSPg!bMb|'Z!['R#SPBqӅZb! R)))b!|ߦ2BSSNN dt}qZ2Rx`` [Z|Zg'Zu)y#u!ꚴ ua94&ʈ<|-""R"sܳe>No029aCy 44䶵s`;Ȑac2"#&#9ƕ2sʀyR(u 40y 0c:Rx` a܆PxNB<4s0&>ٸuuP0#&0<)&aaa s`>lmarbles-1.0.8/src/gfx/metal/teleport3.bmp0000644000175000017500000001206607206511112015340 00000000000000BM66(   "*Rzs+BXiWxbY(>R9VvVv ]&:Ox}v;Vrl@bS~w$6F tGnCb"/b3Nfn*9UlPzr?^hp^*B^Xf5QopHnni~NvEfl)zt"2F;Zz][uc^&6Gjm{fQzfk?^~!2Bp]V{Lrs&2^a|U~lOvMrwv|m[ dT~Ins3Nj{~}#mu/FczV_8Rj.Jjp|/F^Jrs;Z~dj [$7J[ Ѧvjj#i[4K#<3<K<{op6{U#4Jv\U26ۻij_`{牊<' vЍP_DD[6d5̸6K}UUd2V"'}pDDU2QЊ-ӑ&XxT"KT d55~o>e'K }?<2j5ζj\̶[6? {\_d'TΞIII8mTjН`c_{ " D⍶jPP7ȗ[Ddd`5e_)̽}<[Vxg󇑪P܊p2Uo~ᘄwTK2Pg_eNI{#'D-_V64ԍ97ևFFX9g5wW:.Ycv'6 K 8CA&Ie?62j5URd?4T[S$M ڨEEܠ}2,YGGG#dQK1}&AN\DTT1}wGOq dxևMLakELJȖ6GOƕ]ZO]OO %h-eήV4eIǁEknmn tNg551РqZBBB] /¬)KSe#&F!!Lrrkf&+?'6 ݐɾB]]HHyyߺ;~%w"#8ttbbgx{'Ko)GG]]y]6U57Ekararrra&#Q }}o ]yHH;GeVK?Ekka!L=kk &9#p1K?_RZ ]OHHߏ澜[J+8Lrrrrrrrra!̒J QаOHH Hy;Ovp6[6޽!araraaa=FEEDѡTT'U)œZ]]HH q/٠V [5MFk0arrrrrrrrrr+x5p-h%HHyB.v#}Ԓ7X&=rrrrrrrLk̶ ԝ\YZZHHHB_S#98karrrrrrrrrr= CܵΝ^>;HO^~jD{d{I9*8rarrrrrrra=F*+ pZ] Hߏ;dDI$!arrrrrrrrrraènҟzeـ.^| HH(Z~U-Ѷ)9ҋarrrrrrrrra!k9VvSeY|H HYUD̒$arrrrrrrrrrr0@mA+ HHy;.ej5)XAk!rrrrrrrrrrrakMN6jDRZHHyBej̶MkarrrrrrrrrrrbI5HHyHG嘞jeCm@u=rrrrrrrrrrraf$XjD^ZHHHy](ݤeMk!arrrrrrrrraéjw£HHy]Z){SvzAkarrrrrrrrrra0$IeUGOHH]qϭI+f=Lrrrrrrrar8*7doO]H Z€p숿ⵚշC k=rrrrrrrrrra0 89[{j:HHHHH]BGRįSo\̒fkarrrrrrr0&7ԖϜHHHHHH]G±\Ԣ'ܤ+rrrrrrrrrrL!ʪ5SޝBHHɯ_oh-QD&EEFk=aaarara!fMg[ ԰/]Z;HHHߏ]]O)ȞiT[v!arrrrrrrr=E8+ՠJS 吜HHH/ejQKT6pvևb =a!akEEx"[GG]Hyy]׾]OGU{6\##&MMarrrraakE7xUK6 eƺyy] 6xtfbb8x:.Z]H/ɐ)pii+EkrrLfF&vS[ DYqB]]]/5555gʲ@nmn $EDzIe-KvU5o>O]׾(B/j6}EFL=kMExd42α)/׾OB;O; /?ԙ D\x+N&Cm}i\̊-~Yqq(ws6KxI+񁁥 E_?[T)Y/)̖?IN&zC87 K4?soQ[jUj?<o~5jQ??22d`U1Kp_D#ԅ 'DD_PD# 'K6޽55\ed'۔ `Ue\#KBV.6J'*:Zjjb6V:Zbf36:#*.*BBl:Jb"rr%2/BNNZRFNJBNRWJ62""FNz"2&"6C6>:BR6*02VB&j^ZF.>FfN2:Z.22:*&"*"2JB**. &"*:;76.'"*RdR]::>FN>nn**(&2,*5XNhJnbJ~bZ^b<:B3NRb:RJR>JBB:Nrf.**rVJ*.C&26FA85V^Rf~>bb*..BJZ+64%*662.BJpVNF2665:B&*$(&":>V@CK""BJ6&.2&-rjVbnfFB#"B:J722"&&&*,.<>ZZ..2JZVAJL.>>"6DLGBE&972frrYZb*>.BDZ>F>#./bjbZjVJJW(&.#"-2**>*>>C;>=SL_BJj&2B*** .6BNVBnn~RBJ226*"6FRR62=&262..6D>:JR&.&/.6*&^nnNVV0*A.::6.."/bbn2":26JV::6C&&&UJJJJLA:F>F7+*&F>:.2>/2Cbfr@CF!.&:B`VV^<>J62*JNR966&&6*:.!&&5>>2.*HB>"A:=#"";.3r&**#"&2F6BBB &*@2:FFF66?*&&/*."=>N-:6!&.&2:.MNY *#JFJ2.2#*24:;L:3AFR2>FZNNNJ>Vbv6FC222*&*!&"&XXXfL!A/sVs!AVVނVA//VV1ـ/V1t///VTyW/AVVffAWfVhbfAVVVfffVlTWfVVVffVVVVVVAfffffAAA AiKAԆ֡AVԆsAfAAtȫAAԆsAX 33KA^ t6b|t3AAT AhHA3AsAst AA$VTsb 6hAȶii0A نȶ侾h΍fy yp8^Ai $T:^As6 hٴ&68K 9^sM&96զ6 V6ViV8:)6^6vffFyΒ A^6sb$A|e6䒃`A6|6sy0VV?66A|s0tfVS{60VVTS;C"~0ysbv=ـ^fS;^I0ysbv=^<|A>Cvo>| 0,moҀ>0,m sդo9BVIC|D՛K VʘÍ՛^|C]EAbZ]E Tа|5]EbT0^AVbQA ΩhifS''' 2,,,"8,$$ 2??  G6,#7# & 'E. '3C6887K4.92   F0.2B$6949B92 2'?B,39C &?990$)$,9946J229.F6,  8 207.>.I8$$/HB9,F   22 C $$3C,.2?H>7? 2& .K@00.*&'9  222 22229>?   2 9$@?9 ?&2    B?CC9? &&?9+22 A32@@''?F&C>/%)9$ )$LA9>&? /3@  "A?4 '  @ $)") ?&?/1@&&? 2  $$33A'?'/E'&   "$A'/ &&H 6J<3&&&'B'3B(E?&H&  & @087AD/'5 IF5/?H?   A"&544F5//'? & &LL 5 >F?2 22 &@D%D?H5??&*  2@'&&DD&&'& ?? "'&??&&&&'& &   9&? &&?&? .2 2'?.G=?&@&& .$.9 2 FGGD   'F 9.  ?=99& HFF ? ? ,$. ??? ? ?? .lmarbles-1.0.8/src/gfx/metal/wall.bmp0000644000175000017500000001006607206511177014367 00000000000000BM66(`    *J6!;+."&NzR2:Z".:DKl*:B$"*&&3"..@fN"&&5KGj":6Nnr&6/B^F"&F:E2&*7.22F63.*VNfrr&.%C/>ZF4=F_bn0\<"6*r~**D4<B:6.1&* 6FE"&$.2RJE"BFf*."&"&&5::>.RJ>FRR*&&ZjV<)2-"!:62&**F2@carVJ44::>V,.2B:.BJ"&Vzz""".&)<,.222:6".&^&FBBJJ "626*.*(>L2*&2J~bN^^IMU82AfFB>>N1/.&66*.82/FNz".::4&.FEJVbRNrf*2)":B`2*B-=2<:BAF8ZNj&2.&&&"""R6"Bzb926Vdf/",2BF""&ZRF)*&"&.bfr3F>%2(*.;.2F.B2.VN:>BJnb2:*"**FRb.>:BBK&B:nn*&*&*")..,2@)&.46GJV:.*3(.B#""*66GJN8FNZ@J3*&$&"* FB>.&2.4=>G"=F0*>B96AFZ>BWSVbN226:R>B.*bjb&',6*,6A"*.?BD%*2'A:>B.64::"&&7B.22*2FR""ZZb&&*NJB&**266**:3*.&."N:2.JR=.6J6FNRZBJ>7:>,6."?FS5>.**."J62"".6*2+"&4B<*.&*&"3:.2.;.2*B2.nbR&"*:<:ZZ2>6BFFA:GBNN8>=&>J:B22"D>9&26""$*6.62Vs:s::+kO,OOHǚzOOzpHzOyz++sVsVsV:sssss|H2::::kO7ĺNzH|7OzHy3Z(sssV3ssss::ssٚs͉3s5ssssss5ٚ5s=͵RޠSIxRasssٞ22253V.2Qyi@O|ɚH1|::ƍkkkF===yR K)RĘ||Hy|H.[*.H1:Ƙ2,@iy蚈 /IH[|sRBf_ppTIoAڄV'^p|.pǚgg::ggi槧@iH(e pPHsdd8+/B TTڈŝt NVs<<޺H.2.|☱FR2Vsgki=LiO WYJH==|3sŁpz..yTTST&ůgRsVnUWf/(Ry|Hɚ|[6II*uIHsyiHHsW Hs9NpzpTTTAABB$xx HHHH|,IIkVssuHi|||||Ve S|1=H8(.zNBTگAgB.RVV<R ||pH|H7|R2s-ٟiRJNiyHxzNzpĐBAT.oނHD(|||y˧=:-aЮ||H|HV WI+R+O2V.yyT.SxTO2n$␄/zH+R==s:||||3 dH2a+.zNN.[xS35FIzxxĢ/BIu[yyl*LiHH|ɩɚO[aǰaoĩNB...dHٚD Lk@| XS|LVXii|HLH|Iyε1ٰxT.pp[[[=1n x.|Rͨ|y3AB:VHy pi|Rt=y+ĩĐT̈́o+T=sDn /I/R RgRRy͛(3ssg5sH|Ę+蚞..i䁁ǚ#x˄Ą(.yIp3Dn 1R 7ἍIyz3V3-jN555IH.i||G9Z.藛TyTy訨@+y<<͗KĢLFl9Fy]3`pHH7@|py=V9.Ą.I yOLp<<I钘7 Fg==yyVe۫[yS12dt.HpOLiT.袄p|@[Vss44͘j||Iα)[yyĐss31p|?Л=͚i.od.ɞs.|@=NH=xssr YY ]L(|.R7Vs!5T.|Lx|@+yLd~.VHpј..ss͚ss LY| .ЬkLss:#!V5TpHR/yVpdШV2N|N@=͗L˨фٚ3q4 YH|yxjcc=Ϳ s3%%{55z ޘ.g=V9Z.ɺzBZݨHHٟ44] ͨH j ܤ~d 3V&5551V::y{ŏ@ͻØHHLyĢ\Zs:44Y=Ly#~حc̈́33C 2223ٟsi%%ZpyBĄpzpyp|6.psqq Ʉ.õ[]] 2e!p1N3::5LL-+嗻x 6IͺH... ..|HH 4Gr΍`glXICC&&T&ڻ&&H||RZݤ""Wje*+LHhh <7849:234356-./01$%&'()*+, !!" # ?A;<=>7849:234356-./01$%&'()*+, !!" # ?;<=>7849:234356-./01$%&'()*+, !!" # Q|}y~^vwxyxz{^qSSS`rstu^hiSSjklmnop]^_SS`abcdefMgQQRSSSTUVWXYYZ[\DEFFGHIJKLMMMNOP?A;<=>7849:234356-./01$%&'()*+, !!" # =>849:234356-./01$%&'()*+, !!" # ?A;<=>7849:234356-./01$%&'()*+, !!" # Q|}y~^vwxyxz{^qSSS`rstu^hiSSjklmnop]^_SS`abcdefMgQQRSSSTUVWXYYZ[\DEFFGHIJKLMMMNOP?A;<=>7849:234356-./01$%&'()*+, !!" #BC ?A;<=>7849:234356-./01$%&'()*+, !!" # ?@;<=>7849:234356-./01$%&'()*+, !!" # lmarbles-1.0.8/src/gfx/metal/arrow_l.bmp0000644000175000017500000001140207206510764015071 00000000000000BM(   eÚPzidÙ?`R}fÛW?_rR|fÚPyKribaÔLs?`?acR}DhEjYLjvôríSLtPyKpMslcibӓhvóYÉUÀLuS}Y…Jo]pͫLrkãuodltaϑOxLsWÅUWƒZImFlUKpQ{g՝cؗrorv_ˏIoKrS~XZ‡XInKq_Ցbەmsvs_ΐGkFlZ[ÉYWInKq]Ռ\܍vwur_ϐLrMuZWcѕeڙvtrKpQ{JpbԔb̓jTImInaӒn_ϏIoBeBd_БWW΃<[?`@bOwS}R}TXЇAcAcGmAbAbInIoAc@bJpFkDhPzMsWLriVKqTNuMtJpPyOwJoKrKpCe?a?`|h|h|h|h|hp|hp|hp|h|hiz{thiz{thiz{thiz{t|iz{th}~ypiz{t}~ypiz{th}~ypiz{thiz{thqrsfthqrsfthqrsfthqrsft%qrsfthuvwxypqrsftiuvwxypqrsfthuvwxypqrsfthqrsftbcdefghbcdefghbcdefghbcdefgibcdefghjklmnopbcdefgijklmnopbcdefghjklmnopbcdefghbcdefgST0UVWXYST0UVWXYST0UVWXYST0UVWXZST0UVWXY[\<]^_`aST0UVWXZ[\<]^_`aST0UVWXY[\<]^_`aST0UVWXST0UVWXABCC#DEFGHBCC#DEFGIBCC#DEFGABCC#DEFJKBCC#DEFGLMNN*OPQRABCC#DEFJLMNN*OPQRBCC#DEFGLMNN*OPQRABCC#DEFABCC#DEF-./012345./012346./01234-./012378./012349:;<=>?@-./01239:;<=>?@./012349:;<=>?@-./0123-./0123 !"#$% !"#$% !"#$% !"#$& !"#$%'()*+, !"#$'()*+, !"#$%'()*+, !"#$ !"#$%                            lmarbles-1.0.8/src/gfx/metal/arrow_r.bmp0000644000175000017500000001122607206510773015103 00000000000000BM(   ?`<[S}OwBdBeIoW΃W_БImTInJp_Ϗn_ϐaӒWQ{KpKqrjb̓bԔYZMuLrtveڙcѕW[ÉZFlGkruwv\܍]ՌInXZ‡XS~UÀKrIo_ΐsvsmobە_ՑImZWƒULtWÅLsR|Ox_ˏvrocrcؗg՝JnQ|JoY…S}LuKrYÉvóhJoaϑtldbuKqu_KpPySrívôKpbӓilq¬jDheÚYLja?`LsaÔfÛR}c?_PyfÚR|iWr?`dÙR}PziJoLsJpLqNvPxQzOvFk?asssvsssvsssvsssvsssvsssv{{{{{{{{{{{{{{{{{{U{U{U{^U{U{U{^U{U{U{^xUUyz{xUUyz{xUUyz{|^^}~xUUyz{xUUyz{xUUyz{|^^}~xUUyz{xUUyz{UUyz{|^^}~rUUUUssrUUUUssrUUUUsst^^^^uvrUUUUssrUUUUswrUUUUsst^^^^uvrUUUUssrUUUUssUUUUsst^^^^uvefBUUghiefBUUghijfBUUghiklK^^mnoefBUUghiefBUUgpqefBUUghiklK^^mnoefBUUghiefBUUghifBUUghiklK^^mnoQRSTU3VWXQRSTU3VWXYRSTU3VWXZ[\]^;_`abRSTU3VWXQRSTU3VcdQRSTU3VWXZ[\]^;_`aQRSTU3VWXQRSTU3VWXRSTU3VWXZ[\]^;_`a>?@ABCCDE>?@ABCCDF>?@ABCCDFGHIJKLLMNO?@ABCCDF>?@ABCCDP?@ABCCDFGHIJKLLMN>?@ABCCD>?@ABCCDF?@ABCCDFGHIJKLLMN./012345./012345./0123456789:;<=./012345./012345/0123456789:;<=./012345./012345/0123456789:;<= #$%&' #$%&' #$%&'()*+,- #$%&' #$%&'#$%&'()*+,- #$%&' #$%&' #$%&'()*+,-    !"    !"    !"                     lmarbles-1.0.8/src/gfx/metal/arrow_u.bmp0000644000175000017500000001140207206511003015065 00000000000000BM(   OxhIoLsvóvôGkKrWÅYÉríeÚLrFlUÀSfÛKqMuZS~LtKraÔJpKpZ[ÉXULuLsfÚIoInQ{YZ‡WƒS}PydÙ<[BeTWWXZY…PyW?`BdImInImJoKpDh?`?_?`PzFl]UpͫInKqKpLrMsEj?aQ{kã@bg՝_Ցcؗ]Ռbەrucѕ\܍olbԔeڙvmcbaӒb̓vwsodc_Б_ϐjtuvrliOwWnrrsvtirS}W΃_Ϗ_ΐ_ˏaϑbӓYLjR}R|R}i?aCeKpKrLrMsFkAcAbAbAcR}TiDh@bAcT?`JpNuVWPzJpIoInGmXЇJoOwPyMtKq567#;<=>>?@+,-../01234 "#$%%&'()* !    67###+,-../01234 "#$%%&'()* !    rrr{|}~~fffZZqrstuvwxeffy`zhijklmnffop`abcdefffg`[\]W]^_`UVWXYZQRSTOP567###89:;+,-../01234 "#$%%&'()* !    rrr{|}~~fffZZqrstuvwxeffy`zhijklmnffop`abcdefffg`[\]W]^_`UVWXYZQRSTOPFG+,-../01234 "#$%%&'()* !    rrr{|}~~fffZZqrstuvwxeffy`zhijklmnffop`abcdefffg`[\]W]^_`UVWXYZQRSTOPN67###89:;<=>>?@+,-../01234 "#$%%&'()* !    LM56E;FGHIJK>>?@+,-../01234 "#$%%&'()* !    567###89:;<=>>?@+,-../01234 "#$%%&'()* !    CD567###89:;<=>>?@+,-../01234 "#$%%&'()* !    AB567###89:;<=>>?@+,-../01234 "#$%%&'()* !    lmarbles-1.0.8/src/gfx/metal/barrier_lr.bmp0000644000175000017500000000225607206511027015547 00000000000000BM(                                       lmarbles-1.0.8/src/gfx/metal/barrier_ud.bmp0000644000175000017500000000225607206511040015535 00000000000000BM(         lmarbles-1.0.8/src/gfx/stone/0000777000175000017500000000000011271400537013031 500000000000000lmarbles-1.0.8/src/gfx/stone/background.bmp0000644000175000017500000063646607206511017015610 00000000000000BM6=6(9  㻅T[:qC#b3E 4Ԝԫu.F“dwLߨ*; g=&\B8[. :464 W*Țh˔oO9.R3gTkI%}[GS0P&m5*8,.Ec:Q8N5,˜y.G轕ӬQ.iP&)3O*G!w^*ZDfRI7'$bQذ~\oPO4"4_C0•xϤzb>$"}E*&]9+nsI8F`{N8* ĕ߮K&̞Y4"Sԥ49%mGaP߶EܴhD/_.. rH\n]*l6 _:ƍڧsN0q_ҥ.,5K)"wZOЦqy]GŤ`:#aES!g=xR{TBݲI*hPlK.$eG6qJ0:#`DPY& Œ9ج|ͫ㵗p3}S;ѕnd9r_ ԥM<8_!69D˟o4 ŞpXyg& q>+Z:a4aIC! ٤z弌S;.wTR! Ė.$$̝L0T/洉䬀nHj[uUH9wqZٝxmP@L*lrD-~dr;o<\&qRT"_;g. UC]>6Fǝf>`>-ÁT**1N..`JhGhGͦb*ԤƊcd5 *c:.ƔnxTx]<ȍl;F w>浒< dH< ]. !#*iVo6ڬ>ժ˚p: do=$ ؠq~`P߭V:DDDDDDDDDDDDDDDD%D%DDDDDDDDDDDD%%D%%%D%DDDDDD%DDDDDDDDDDDDDDDD%%DDD%%DD%D%D%DDDDDDDDDDDDDDDDDDDDDDDD%D%%%%%%DDDDD%DDD%D%%DDDDDDDD%DDD%D%DDDDDDDDDDDDD%D%%%%%%%%%%%﫫Dv%%DDDD%DDDDDD%DDDDD%%D%%D%DDDD%DDDDDDDDDDDDDDDDDDDD%DDD%%%%%%%%%Dvv0v%DD%DD%DD%D%DD%DDDD%D%%%D%DDD%D%DD%DDDDDDDDDDDDDDDDDDDDDDDDDD%DDD%D%D%%%%%%%%%%%%%%vvvvDDDDD%%%%%D%D%%%%%%%%%%%DDDDDDDDDDDD%D%D%%%%%%%%%%%DDDDDDDDDD%DDDD%DDDDDDD%%%%DNN%D%%%%%%%DNLLvv0v00v%%%D%%%%%%%DD%%%%%%%%%%%%%%%%%%%D%%%%%%%%%D%%D%D%%%D%%%%%%%%DDDDDDDDDDDDDDDDDD%DD%DDD%DDDD%%%%%%%%%ޫN%%%%%%%DvN''',LN00N00v0v0v%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%DDDDDDDDDDDDDDDDDDDDDD%%DD%%D%%D%%%%D%D%D%%%%%%N%%%%%%NN,,'FL0NN0vN0NN0v%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ޫ%%%%%%%%%D%DD%DDDDDDDDDD%%%D%%DD%DDDDD%%DD%%DD%DD%DDDD%%%D%%%%%%%%%%%%%%%%%%NNLL,:,NNNvLLLLLޫf%%%%%%%%%N00%%%%%%%%%%%%%%%%%%%%%%%f%%%%%%%%%%%%%%%%D%DD%%DDDDDDDDD%DDD%%%%%D%%%DDD%%%%%%%%D%%DD%%D%%%%%%%%%%%%%%%%%%%%%%%%%%%%N,,',LLLLLLLLLL'LN0%%%%%%FNfff%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%DD%%DDDDDDDDDDDDD%DDD%D%%%D%%%DD%%D%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%v0L''L''''''''LLNfޥ%%%%%%vz0NN%%%%%%%%%%%%%%%ޫ%%%%%%ޫޫ%%%%%D%DDD%DD%%%DDDDDDDDDDDD%%D%%D%%%%%DD%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ޫN0'''''''''^''LLLv%%%%LLvF0%%%%%%%%%%%%%%%%%%%%%DD%D%%DDD%DDDD%DDDDDDDD%D%DD%DD%D%DDD%%%%%%%%%%%%%%%%%%%%%%%%%%%%%NN'''7^^7''''LLLN00ޫ%%%%'',Nv0%ޥޫ%%%%%ޫޫ%ޫޫf%%%%%%DD%%%%%D%%%DDDDDDDDDDDDDD%D%DD%D%DD%D%%%%0vޫ%%%%%%%%%%%%%%%%%%%%%%%%%%vN,'4^^^4=^^7'''''''''LN0%%v'''v0F00%f%%%ޫޫv0%%%%D%%%%%%%DDDDDDDDDDDDD%DD%D%%%%%D%D%0N0%ޫf%%%%%%%%ޫ%%%%%ޫ0v0FNFFLX^^^^^4^77$''''^4',Nޫ%''$,LLNFNf%ffޥ%%ޥޥ0000vvvޫ%%%%%%%%DDDDDDDDDDDD%D%DD%D%%N%%%DD%%%%:Fv0vf%0%%%%%%%%%0v0N:,Lvv'4^7^77$'4^'LNޫ0%v4''''vNFF%ޥfff00fvޫ000000000v0N0ޥޫ%%%%%%DD%DDDDDDDDDDDD%D%D%D%%%%%%N%%%%%%%%0N,NF0FF%0%%%%%%%%0:::L,,Fvv,''''^4^'^474ԋ,FL77'L'7Nv0ff0f0fffޥf0N0fޫf00FNf00NFN0Ff0ޫ%%%%%%%%%DDD%DDDDDDDDDDDDD%%D%%%DDDD%%%NN%%%%%%%%ޫN,0ff%%%%%%%%%%%ޫ00F,,,L0vN'L$'$747'^4'LL0vޫ%N74^'LF0ޥfffޥ0FF0ޥf0ff0000N0N0v0v0000ff0%%%%%%%%%%%%DDDDDD%%DDDDD%DD%%%%%%%D%%%%%%D0%%%%%%%%%%0NNFf%%%%%%%%f%%00N,,0vv0L,'L'''''^77'Lvf0%%L4^4vFFf00ff0fffFޫfff00000f000000FFFf0N0%%%%%%%%%%%%%%%D%DDD%DDDDDDD%%%%%%%%%%%%%%%0%%%%%%%%%%%%%%%%%FN,,0ޫFL,,''''^7^7^^LvN00%%%0744'0FFNf0fff0Nf%f0,ޥޥff000f0fFNN00ffޫޫ%%%%%%%%%%%D%DDDDDDD%%%%%%%%%%%%%%%%%%%%%%0N0%%%%%%%%%%%%%%%%vF,,,F%v0FNLL''^=^4^^ԋ000ޫ,$'LvvLL,,F0ޥv0Ff,fffffff0f0f00FFFN0ޫ%%%%%%%%%DDDDDDDDDDD%%%%%%%%%%%%%%%%%%%%%%%ޫޫ%ޫ%%%%%%%%%%%%%%%%%%%%%0FF0%FNL,C(4^^=C^'N%fN!4LL$4''''''LNv0f0F0FF0fffޥf0Fff0000FFNNN0%%%%%%%D%DDDDDDDDDD%%%%%%%%%%%%%%%%%%%%ޫ0%%f0%%%%%%%%%%%%%%ޫ0N000ޥ0,'=C^CC='N%NL''^^^^4^X',Nv0N0f0Fffff0fffff00fv00FFNFFFfvff%%%%%%%%%%%DDDDDDDD%%%%%%%%%%%%%%%%%%%%%%%ޫ00v0ޫ0N0%%%%%%ޫ0%%%%%%%%0FNFե%0F'ԇ(KCC(=^'N0N'L^CC^7'LLLvvFF00ffF,0fff0fޥf0000f0ޫffff%%%%%%%%%%%DDDDD%%%%%%%%%%%%%%%%%%%%%%%%%0NFFNFvޫ%%%N,0%%%%fff%N':F%%0,'CHCCCԋF%%ޫN=ԋ'CC$'''',Ff0F00ffFfޥfffffff00f0Ff00f000vF0ޫޫ%%%%%D%DDDDDDDDDDD%D%%%%%%%%%%%%%%%%%%%%%%%%%000NF0ޥf0ޫ%vN,,,N%ffN%00F0ff0N,C(CHLNF,^4^47'''7C^LNff0fffff0fFFNf0fffffޡf0FFffffՙFFvfޫ%%%%%%%%D%DDDDDDDDDDDDD%%%%%%%%%%%%%%%%%%%%%%00,,ե%ޫv,,,FFf %NF0000ޥvF0f0vL'^CCHHHC70ff0000,^C47$'CHCXFff0ffFFff0ffNff0ffffख़FFNF00f%%%%%%%DDDDDD%D%DDD%D%%%%%%%%%%%%%%%%%%%%ޫ00vFNF%vLL'',,Ff%%ffffFFFFfF,b0vv0000N0NN'^CHHHH.='NN00v0ՋC''C^'Nfff00ff0fff00ffffFFfFNF00ޥ0Ffޥޫޫ0ޫf%%%%DDDDD%D%D%%%%%%%%%%%%%%%%%%%%%%%%%%000fN,F'^^$L,,FF0fffff00fFFՙF0N,,Fv0F0NFFFLF:'^^^^C.HHC^':NޥfF4CCC47^CCC!8Fffff%ޥff00f0fffF00,0fF00ff0F00f0fffޥff0fN%%%%%DDDD%%D%%%%%%%%%%%%%%%%U%%%%%%%%0F0ޫ7ԋ'',00NF88fffffF,,0fޥvv,LLFNLFvNLL,ԇCC(CCC.<yA9 9`֌``rrrĚS5~`9B```ww<̩DDDDD%%%%ffff]], ]zz$тQ.,z,XX}HFFFΙR] 7zz,zz,z,CHQ:!KzX陙,X}}Z0FFCH8b ]]]],XH48]fC}dKX0,Z}HH48F0ZQHQw`K! !wr 99"Z ]]]]QBAAAy9yģ````w<AB؅By9`w<PP5ׅ䣅w<`Ȥ PIIA9PPy9iAAS S佹Ěyr5B``www̺wHD%%%%ޡ8]]z ,zzəRRzX$ OTK!Ιzz4Z47$47]]F,zXX}KX08K}ZZO"`d}H0FZZ,,ZHZbfl]  ]ZbF ,QQO!ZXщ!F4`FF,!тQrQw99Z!^8H.CC!^m]]]9įij†BB䣣```<`BPIϼ9AA†AAyyyAAyAA Sy佹yy 佽5``wHDD%%%%%ff8]1 R $$zz zZZX zzK}47Fz8RX747]]fz8 z470F8Hdԙf,r}Q%8,ZbR]f8!]]!8R] Qf881Qww`ZZщ,ޥFH""Zfb,!O`;" OH 9Z^.ͮ..ͮCb]]  r99A9""Qw"y IPPģ5B9ĘAAAiAiy܆ASyyy䤤y5򽣽````w;QQDD%%%%ffff1 $ z ΙdXFFK4, 1b7X]]]R噰7}Q48FX!ZOQQ``QQ,ъZ!!,b8R  ] ]] ]]]퐐R] fRXZr""Z!!b 0ff,dfͅr99}w9b.C.CCCC ] ]剤 9yAAAAPjy 5"`"``9y9`;B¼IIIjP†ĘSiyySyyyy9䤽yy򽚽佚```wwQDD%%%%fff0F,1 X$z Ι ΙXd7z zz44$}}4f XZZX]]]]bXdKf}X8X8ԅQ 88ZHQHH}zFC"ZHQC8XZe  ]]]] ]]]]]] Q"w``X.H80dZFf,}9P 9`щwr `ͩwC^,` `b]]O ĘiP+i>PAy`ֺw"";֣9y9B;TT֚ĆPPj//////jiS†SĆ yyyy yy5``ֺD%%%%%0fFb1RR1 11 X Ι8H7zzz47z zzX}}}7 ]R z7K}dzH݂HzRZd}bX!ZOZ^!HZC}OZX, ]  ]]   Q`QOOH"}KQZ 99B"w ĂOrrC8b88Z ]] ]!" PPjj95`Q""""`Bׅ;QQQQ`Ćj////IIjjjSS SyyBĆyyyyyĆyȽ`;̺%%%%%%f8 RR1 Ι]]] zΙRFzKd4 X$7$$47zX}K}48,]}}e}7fԂZ08}8,bQ}O<wH}щCHHޡ]   ]R]]]   Z`;!OQOZ!8}HO`""QZKXddPBBQQZ" OXZ; 9 Ęi>jj+>>yy`Q"օׅ;Q9Ĥ9ׯjjI+>SSSSAyBByyyĆy yyyyyr`;;"DD%%%%%8,RR1,Rzߨ$z RRRF}qKXz 4$zK,F,X7K}}}ZbFXXXXzXfOz] ZZf,CH""wщHCf] 1! ,Ρ "TZb8.O`֖K8!,]FXdBA9;H "dT""Q}5Pąݎ塡f`9iAjjiijA``̂"̂""֚ ĚB5Ai>jἼ¼I—IISSSyAAyyASSyS SyȽ";w%%%%f8b, R111K Rd}7 zL,4,F 74ZKKOb]]b8 zzbzf4H}O ffbw"HHHHK0R  ]!ZOe!  Q}QQ!bCZ.OHQ"rd7Xb,  HddAiTZ` r"`"9 `5IiBO]]];9A>I/jjj``""`"򅅽9B9Ęiii†¼—IIIyyĆׯ+†SAySSSy䚹`;"w`w%%%%]],!81R1!lR]1b ,7"q 7$$$z,0,XX8K}Z]!8F?Xe7zfFQmfFZQ`"HHHH7F]  ]] R!}O7e,  T}QZbb!тrXf[Ob 899+jr r֖rB9y 5~bf]!B/jj†```""B`"օBy rAiyAiyijPjj/j/IyySiiiB>ISAySyyy;w%%%%f,X,RF Ψe1Rze 1]z4QK}XΙX74zzzv8XzzX}}FCH4FF }f,XZZ,K,78Xb,F!H}] ]] !Ob ]8]] w`QXz!HZFC8";O QĘP+jT"9Hrr"B I>ABQf8BȘjj>>yȅ`օ~䤤`````y䘘AABi I/SyyyS i ܾSS熆yyyy;w`%%%ޡfff噙 , 0XzZ8]娎z z[XZZ$$zX747z4K ,8KC}HXbFf f7O.8]]C""HHCCbf] ]] !  ] 8ZefCF,Z8!ZQw0LK9Ajjj/jy`""r ""B9 ABBB}ff]IyyĽ򅽣̅5ywj//+SSSy55`%%%ࡡFFzz,F ݦ!]Ύ z$ d""}8F zXXXC}}4 7KXC}C}H, 00FCH.O11],7d""ւ""KKHKC}f]  ] ]]1  8ͦOb8,8QZFf!w`Z88F}9+jIA`rBHÖrr99 IyB䣉0Z֣BjIy5Ě55օB5yĤ`QQQw;`B9 P""ĆPi—+/IISĆ yIj†SyAyy5D%%%] F衡 7Kd81R z zRbK"׌d!, 4XX8ZZz4KK}7 ],}}Kd4X F ΡR]8'CHOb] !.,8H""w"HCCbb    8] "Q4bKX0C!X9b!R8QwOԙrPP˜PPIBjjPrTKT"By PB9fO"BIyBy~佣9B`yĤ9֖Q<̺;"9 ւ"A>I/jS S yy+J/ iSSyyyy%%%%]fFF,FRf}T} z zzFz}KZF 8b!XbX}eFfQZCHC7X F F,,F8ZzX""H}Hb`Q,FC"""CC} ,b}  ]  ! R`򖉦QB9}F4"!r ff8b`04/Ai>IIĹ`9P//P"}A䯯B9`O O`օB/䣽Ć䤚y95 `QQ""`QT;``999¼//S†yjJSS AyyyD%%%% f]]]f0zKd] [zzR }BKZZXXΙ b!bbZOe8RHCCHH}K},ffF8XXX"Q8 8F%K"rHZ,b88}O 1R ]]!dO1!"r"90}OFf,.`"X BBII r9jII 9B9dbfffօ9Iyy9ĘB9yyy5`9 y;Té;;򣚚"݉Ĥ9II//I++IIܗ/+熆SyyyDD%%]]]]]] ZO]1zz[z R1]H}8!OZ!bTQ!?F],Z͉KKKHKHd},Xq""X%}HOOX"Q"`HX!] ! }R]bZ`9ׂ""qdzf}`zfff,іHXFݣ9q#A//`B99IϜזdd5ȯ99䅉 ׯAII>99B9yyy5ģ;QQQQQQQ999Q}`r ĤI/Ij>iSSiSSyAyyyD%%f]衡 Ze]]Rz RRz7֊XeO.!,8OHK44CdZzF,f,"KC0}.FեFԉHHCH!dF ] 8] ]7XO;r99BւK7z,0F04,ffFFO}}dݖ9Bs9P/s/Pq99QO"BBPI/IAAPyyĽօ5;TQQ;`;ZOZщ"օPIiSijy99+J/I†SSyD%%]]]]]]吡]]] 7?R RR ΡR  "KKQQQQO.Od81RZ}HX77X,Xz0fFXZÌBC}KH}XXޥޙ,08Z}OQ`4C}XHF ]] ] ]w99",,FF4,z40޻8!bOօ; P#/ Q9Pjjss/9"`999ĘP;Z ZPj/IPAyyASyyyB5QQQQr;Z,,OH¼SSiSj/>A9BʵI/II†S SSD%%]]] R]zz]1?RRr;T`T̩O.OQQO ]8ZZX4Nz,,8XF87HBB"dHQKf0CCKw`Z880FFZΙf 1O8]8 zf"̂;̂QXXK,z,HZ!rB;"yPAʯP/PP/IjjI3IČdTBBAP5dΡf4"ףj/jj>P†yAB5B99`QQQQQ9r9QQZffZqPSiyAy،#AJ//ISSSSASD%%% 衡]]RRR]]R?$ə]? d`Q̈́.QOZR]b747XZ4F,,zXXCF8}rKZ,0}"4FFZdZ}CzF,, ]!!84X Z}QTQO,"}$FF,`""C PBy//I"KdqI/j///jdP f8BPI/jjj>˜ģ`;̺"""r9;QQOb衙8Z}4Q BA+>SiS+j>yB#+/I/SSSyDD%%%]]衡]]RR1]]]1zX&71111 ΡH׌;QO!ZTOO] 7ZFX$L,z4C77FXQ;ģ"֊HO0%,KH,޻O͉"zFF}C,  ]΄b!]Xλ88dO8b4֌0,K"`ѫNC"9yIBȯJ33J/BqII/Ij+jIT}ZĆ~}f C"AJ/j¼j>>B5BB5؅`````"֣ -,fX}d7H׸A+ +/jBBISSSADD%%%]]衡]]]]]1RΰedeΰΡ] T9r`~"TZ.HOZZޡޡ44X]F$KX}}80X"֣"""`},f08C4XfޡT`QC}!F,C7,] 廄]K;Hb ΙlmQ.RF8"Fff4H78H,IIĽ>jcJ3PIjIjjI/ };9APąOb,7BjJ/jjjjjjyA؅5``rrwQT;9`ez}}Ai+ ᗬIAȆ//ISDD%]]]]衡]]RR11]-R]R[X!~ׅ̺ZOO.ZZ]zz ] !444,KQTZ]0XOX}Hf!Q`H,480F  Z]!B1,R1!Z.8fOX0,8f,CC7CPIPjccc3//IA׊Ij>J/IQ9B9 jF,Bj//jjjjj95y5䅌ֹ`""`7R]dT5y++j羆I+DDDf]]]R]]1RR1X}-lR l !TģBB""QOZ}ZZOF R ]!K4z,LqX'ZQHKZOт`]],K}XCH}8]N!}щ}0, !1]޻O!]bd- fT8z8Z7fBIsI>j+jJccJ/9"jIjcJjAIĖZZr9P5d!fFBP////I/Ij+j>BB⽽`r`95m] $-AAAᾗιJJIi/II//II/DD]]]1噙 ]]11l[1RXzΙλ}r5B֌"Z.OOOщQbf XX z 744zF,F7ddFzX88!OQw.]bC0NXXHH%ޙ8ZOdFC0,0 fZ!]zd, ]FH!ff8QZF"}/> xx2JqIIj/JI†ģ}d99 P9`bFXKB///I/jjBBAyB;`򣽽`R11z7Aj/xJiAAIϓ/J/I/%f]虙R ]]1e1R7KyB5"""}ZCCH800KXz,7L,X8ffFfffQdbO}F04XHf,Q}}CF4!]8 ԦR]1   0,H FFfH7}BjIj/jij33cjʊI/JJJ"7H PPPPr;,zXuAIjj//Ijjjiȯ95yAy;̂;`551g//JJ/Ay jc22춶//IjDD%fFFRRR衡]]衡]117ΡR,,bl4zdi55wwQQZCCH7XZdd X7$}z,XXOd,Fff OZ C7X8}ffbOQHKXz!,] R fRb ]  ]7,#]][mq 4˜+ϜjPJc J3jH /sJJj9PKԉ` Pjj>78X9IϜ+IJ/IAAByS555`;;w;```R1X&q j/JJcJ//5Șy# 춷DDDD z,,,1RR]]]1RR] dXFģւ`"QO.}}}OѰ7XzFz$,,$4C!%f,ZdT``R b,Cq}CC,HHX0F廇щ}HK7,R ]RF]Rb!XΡ]]] }zdH, ]M-KTä A A3/I/3ccJ3}Z"I33J3JJ+ 9CZr PP+BTZCPjܗ//ϾIIAASyyyy5QQw`w!1mgiJJJJJs;`~>c22DDffz, ΙR??1]]1 zzzÉZzziP~;TͮdZ ?] X}QQTf0zHT` !dCCOO7XCTO8F8H͊"},Z!R] R,b 8m]] fC7q 9B זBjPj/˜jscJAdH9s33c JJJ/9+dͺ9P>i9`TdHCqss/JJ—IIȽyiSiyS 䣽OQ" j/J//VI&Qq c222붷DDf7,F ΰOmΡ 8R鎰R]ΙzX$X7}dXqAy-Q̂HQZ8,!lb]RH`XHHHd֤Ρbb}4z,4HQHOZ噻!QdX. R]?!]  fC"Q]P99ĽטjPJJIJc 3Jq}qrI33 x/ ˜ZZQPPiB;Q}Kd///J/I/IAy>SSy"O8!}F衡R>///c2/ƴ~~#Ja222涭Dfff] l47XzF XM}e 4Xΰb8RRΎl z$$4X7}¾Ϙ~;-QTOZ.OOfR!"Qщ"QQT!,,Xz0ffF8QQF0fHX0FHZZl ]]1!Zb  bOf};9 jÌ 9+j3J/P/J c/Z}HJc3xcAB>ݺr99y֖QHKPjj/JJ////+SA>—SA99bѺQbF ///Jc+nu~I 222222涶췷%fff]R44447,X7emKd b1R?elzz zz$$44XzqBPIIyQ}QOZCHzf !81]]QH}OKXq9Q R]!Q80F,7H"wHf8}`,C!bR] R] 8!R   ]] ]8Z""T`9A/Jc/>P Jc3jOCߌcacIS jBZ99̂I/J///IAyyA y`!OF /JJJ+ʧ출V22%%ff0],,Xe}Ш[[eQH 17X$[ zzz$z$$77KI ⅌TH.ZwQdZZX,]]] bXO7Xq9QR,CH}C7}OdQ`r0}!HC!8,]Rz ]b]]!"rP9""K}TrP A/cJcA JJcZ74CBJc aaI+i>~TZZÂB䚣`"T9//jJ//+SAIISyA`TOCHQHԙ IJ/jJJc S||뱱22涭%%f,84dz $ee$ $;7 ]1$m&R? Rz$$zzXTׯ򣹅QQZZZ``HCX,] ]] ]]Td9¼9FQCH""`9r"ddQdHb0FF`OOHC!R Ι R] ],]]Ow9 P9"9PœjxcAAᜑ3J}jcc  ac3sI+ JMTAB֖/jJJxjiAA/J5Td}ZщC!,fF ejJJcccV222뜷涷%%00,!}44[elXR1]?eƨ[1 $$z$7XZ-ףB;;r`Q8Od`"HH,,]]] ,}""B!F8OH"`QZ7FFޡ,bKQZ}OZ,R ]]R ] ] ZdR]r׊Ĥ9qBJc9ȯIJc PZ.qBj3J 33s//s`d9j½օjjxJ/ii//SiĽB;OZb8!00Fz/ciV汱V32%%fFb}Kd7z$z [}ƨ}-KԦ}1 ?ell e7z4X߂`55;QT`X !ZOZHZXFFf]]]]] 8d99PIjAZ 虡"BBKTTKfFff8dQQQH}CHXZ]  ]]軐d Z8Q87}K r䣨j3 J/yJ3gH/3c 3333sJxx3/dj9```B//ij/>iAydZZbZb0,XЧ////ccҬV٢VV2V2涭cD%ޡ,X4Kd z[ eÊXl!bݨ RRR?? 74z748T5;QOT,ZCZHщHF]]]] ]199-ݨX,f79A9B99QKdQH4,FFFFOCOH8fz} ] ]R8]H}"bT!" 7}B/JiiIsc >T<ϓ222cc J/IjIs3c 3I >jA5`5ףI33xJ+ASiSj9QO}T"ZHHfKTAjJJJ222ci ٱV2揳2涷%,X!KH [ [le 4l7zl?ΎXRRRR??ΰzX4X;;`;7d`dZZZQHXF,]],ZA m8]"˜AʖHKK4Ff,`r`!,7CZbzFX78b]]l8F8Kb"FZH eIJ3j ~yIcJj #qrϓ3cc׌ʣ샑5TB j`~ט33/JJJ ii+j+>iiIy9;ZO̦ZQOFf8Bij322ccc ۳VVٳoV,8}K}zRR l7[??R? }Ke Rb1R1111RRR zX}Ì555RR;T8щOC}H""}Xzb]  X9AAZ}8fF,4dj>Pj>ABBB"}88Qw!zX4X1 ]] É!0b8}Kz].``"r ;}P/s-~S/c #Qw32歶c/QeOIcc39>>y5~`B9/3J/+i+j+>I//QOQ``0f 3춶2cc >ٳoV챳2DDޡb44KH[R zzz7l1R X 1 R1R1]8XȆyyb88QzX,8ZZH}CC}Z陡X4 ]тPRX!F,qj jj>AB"qHK}4,FbZdd,z,Kddz8!]d7FXH"KC0ޡ ;Q``wQ;9P3/As3#dH32V2cJP,}Ja>`>Pjj5`ʌ>JxJ/j>>jᗾJ¯;Hw`T!FXœ/222VjpYYY222201F X}H}ݨe!ee7le?R111X?F$RR 1]11]1bݖļy֦QOQTZXX XZQOOO}77塙Ɏ]] !`r9&Xf8}Aj >>igggAyBKC7,FFF.O!bX8XzXK"dΡ] lAq}8 TQQ򂊊d33ϓ/ ZOrsccJ/qbq+coc/BʸA++j9"j/J+js/9̉```̉݅I2222춶cpp۳Y۳۳YV2V22붶Df1d}}dè74 7R 1]]11]dQd~yȹ;;`։Z} ,4HQZOHQ8f] 䅌;FF9Pji>gqqgj>j>AB׊HKKzz,ԉQOZZfFz ,X ]]]d/,'ף"9 ԰Ͼ>sAZ93cc/y F9Vo惶y+>y،#ijJxJJJI/J/I; 9""!TI/3 xccc2۳\۳ٳ2222%%fRzX7ZZ!}H}}ߨ}z7z,$K# ,$X,1z?] d5-55``TZ l7 OH}тQ4衡 R 9";dfffFdjIPqH9P ĤTC}H},LvLԮOZΙ OQ! ] QrPPC7BPräBqʊd Jc22223ZF 描5jj9׸i᜷cJJx JJ/yT ;9Te93ϯB++ xccW\۳۳VoY윬D%%ޡRΙ !Z}K4lz #;  RRzR1e~n--~5`̦K XX zOQeX]]!֣KddZX00FqBI>¼9KKB9999֊CCZ}7LLv$'}4щ! lZ RZO] 衡 ]bOQHIsj9BPP I9TdTOwȌysBP/3j;e/YooBAI//jiiAJcJJxxIT̚y qr79III#S+ aa2pYY۳ٳ222D%ޡR X!X!Z!XKXze4777RɊׅqZ4l?11?XC;Byn5`d}7 zzzXZ}"}7leR]]]]ZQ7Z fff,;/SSCH""։!b447KKK}bZHZb81} ] 1]]] ],,} qBPB֣Ĥ}B~3jȌ~Pi/3iB7],jVocIyA>/Jj>i+> x J/Iy-5 dт݅IPBqB~5揱o2J/p@@\۳٢22Df77l}XXdK 7ÊdK}KBB"HZ]]RM*XZ_I;`MK7z F XXXT}ZX]]]] ]!}KdKXF0,H#טjJiȂO}}C}KHKdr"F87CHd}4F,COZXΡ]]]]] XZ  ]]] ],77CQ;qÖ"P,ByBss…99/3 i]fИ22oi+//I+>>>i>+Jxxxcs/;5H"}9ׅׅ932j2@pWWpp|涶fzXZH4Qde7O֌qÊqe7 1 ;}b0F QuTMOdܗ罣y#X尰 Z;Zz衡]]]]40X ]XBII5QOKCKK"HH!,XX4$,0}}z]  ]]zXz]]] R]]] ՙQ;"T""Q"4 yAPI/֌-A// iy>`]]88FN92aJjIjj/>i> x惑II֧ Ĥ""T&BAy泳2|@@pWWpYٳٳ|fR zzz774ZQHdddQ`QK& RR bK" ߨ& ?XnA QZXz, 99Qd}7衡]]] ]]ݣ9Tzf7}X 7/JJ OOOHH#B}H}C}7z,7f,7,]  ]]z1R] ] }X]  ]fF4bZ"HЖ"Ê4P9T"d3j/ŒZZ^FXc2VJ/jiI/Jj ao惑aaVcsI~֣y yZZ;~I// 2@@ppp۳۳뢳DޡRRR zz7QQ;""ߨzR Zq""", [$?1?!}䬬+5 -TdO Ff,M9dH ]]] ]QP9d,0$K}z zB>/J/+#Hg y>"qz,z4 ]]] ]Ρ  4}4]] Rb8!QObrdT9"d;07BףTTQ//IČTQ8v,32Vjjj//j>///JJJ opa x aV涶/ŒByAIIPṛ5/ssoa2>#s|@@p\\W@Wppٳ۳%%fΙz4X, Ԋ"TdT"Te 1R}Q"C,zXRRRRZK/S>5~~Q}}}4F ,MBydKf衡]]]IK z4fzzB>ij/صQ̌ᗗ+9dK7XXz, zF, ]  ] ,z]] 74z]8OdCQ0 Q}dr"7ѣ9Kf833IBQ;yj3j>j֊8NFsV歑+j>JJ o oVJAyAQ7rr sS o2/qI@ppWWp@WٳDfRzz$7XZdú`;4R1R!HQ""K7 R11 q+yyBd}XzF5įdQH 1 ? 7Q9XKK陙Ș>JJ+SA  J/jP9}ZF,,,4,]   ΐ] ]]dF]] !,F!O!F QX``Z7ь9",$s2`O`I//>+jqÐfFj222oV+ jjJ Jaoo ocJ/I>7. P 9 I3A g>o涶涾ش 2@\\\\\ppppppp@۳Df? Rzzz4XzT;֖Qւ}z RRT"HRR1RRRd##+yy؅;TdZ4X,q顡,b?bOQ;d}z}X,$Bi++> 痬 JJJ9Z7bz,87z  e] d$] bFސԻZ`HZH;rTZ}I/ʌ`Q9y/J gFF,}A汭jjJJJJJJ aa//B/jԊPs׽—g i>iaMA3@\ppppp@p@pWpp@ٳ0RRzz$XXQ"QT;}7z Zd"!Xl R1RR1}#ug>5Ƚ`KKKKz7qBĘ5HH4b }T" λ!,0>j + > a a aj>BHZZCXzz    Z] ] "K8]]] FfbFFQ"Z!ZQr9qqAs2s5TQ`jJJq,lg/jJoo//AjsjzKIsP̯AB >汏 SyI|@WpppW@WWppp۳D z$7ZH`TQT";K,[lmÅ"Tl111RmQ>J+--ĽTqqKqyTdb}"9Ĥݙ]bZbF0F / > i  x aa q}4C4}C4FFX8    !X 4`!R] X,,bO""z,H`"׸32cAqBąd"ry// xJB}?xJJJc ۳p3JiiJB$9II"ݖBggioaigAy;-JWWWWWWWW@W@ٳ%fR΍ z$74Q̅`""""q X;QQ򂌣`Tmݐ11RRQ¾AT;I5MqKd9 }Q8 ,Q9rZ ] OZ FfdiJ > +j˜9B  ai447!}C,7b   Z]]d,8!F0,!Z}Cj222B9//x`l*aaxJJJc쭶ax VV J3y//-ף``̌`᷾oag~TTT3WpW@WWWWW@@WWٳDRRRR $zzXQ"";"z$z$ƌ֖;`B׊111ld33 qMI~׌q9P Td7]R1zTB;Tb]]!bsJ iB׌B>jJaa뾌44$zzXXC74  ] ] ] FdO! f,ZK"H8CHZ08.H}K+V2 5ģTQBIJaIyg JJ歭aox+ȯ/23siTT`# a混xy5Tj\phW@@WW@p۳?? z$X$X7ed;;;,ߊ ֌B!!1R8OPcg#K¾IyiBB9PI 5TQd,]XXZB} ]] 8,,HBjxJx + gB׌jxqXXCC}! ] ]]]  FXXZ8F]7HO4ffF^CC.Cт}#ciyB5T}ʽjac/a JJxa描a揱pp۳ooaxJ2IAj|2T̅5¾aooaai`;cWWWW@ppٳ۳%%f ???z z7`օ$}PP~Č}1sAI gQO}X bZOÅ,] 8dB>I/J+g9+jjxc}X0,,,b^!Od}4]] ]  ] ]8X88Q"HZZObޥZZ}щBAcJ//>;Q};j3JcccJsoaxVooooۿpp۳oooo+J-̽ i/+oa +-I|@WWhWWWhhppp\۳۳% ??? zz$}q׌-7BABȘ> ]]]z3 K4 +>>>-OOOOXR9 ]]]FF09I/ᠠPPj>> JcJiuX8!!OOZ     ffX}70FCCO]Xщ}򅣤IIsy}Z݉9IJ/cJcccVooJ coooophhWppoooA+۳s5;`w >a汳ox uBWGhWWp\pٳ۳%F?[ ? [ q֌"q$[$[$#5ȁiAdX 1RRR z߯3Q`Ax  ;OOQTP`f ]RF,//  >iiI/Ij+ii xH},FF!!!ZOO.O8]   FFf KKX,}ԉO!b8ZъH"` I yBdTֽI3/ᠠJc22c o VoVooo\pooaa 3/ٶ;` +>o x> @hhWWW@WWp۳0F??? ?z z $44$̖-è z[ze;;~BiA}}Zlbz$sтB9ܗx iOͺ"BBy¼˜4R]]f0,Cj +>/Ij>g J/P}!..OQCO. ] ]   8Ff,FF7"ZCѺ88 4HQ;`9BuBBBBTQQ//J/cccoxx 揱oppppoo/BJ۳T̚ iioooooxx i+c@hhhhhhWWWpٳ۳ٳٳDR ? ? [?z?z[[?z$$ ~Tezz z$}q>I>Bݦ ΰXXuĊe}T+ xxxiTQQ5ĆI/#8!R0f0ԂBA> ++iiĆ>/J˜9}!O.OwZO!   ]fF "CZ8ffԂ"d`"dd`B;QBssjPI32Vxxxp\ppppooBAJ;5֌B+Jpoo \@Wh)hhhhppWppٳ۳DFz??z? ? z[[? ?Ɏ[?[;5~Te[ KKTBii>}47}}QZR1 z4~/5ôyIs/yB//Jx+~TwօB9Ai!8] f7"+ iiiyAAJjPB}Z.}CX8CZ    FFFѣ }ZCfTbQHTBAAyysẢddQ;֌;55/caa+ opppppppBSIJcSy`̯ JJ\p\oax#J\hWhWGhppWpp۳۳%0 [[? ?z[[[[[??[[[RR?-֖e zzQi>K$z}48R]RR XeBs/5_IsBIj/JJ+ʊօף9j+Q] f!i+J+g iĤB#q-IBH!!щOQ8,7ddZ1  F!X F rXf0b!Z,F8wORR}Qds;QdÖ"̖;QṂ i3쭭 汳ppppppp2iyIJ3 ;MsJo\ox+g* hhGhWWWW\pWٳٳ0 [ ??z[[[[?????M55`Tez z}uݎ}iI>qHKQ7΍[RR 7IIgSܗy`֣9>/x+>AuT֌ׯAi  P"! ] 0"jJJJ >gBQdQ9P9"qdKCZQQZbFfԉԻ,] ,}4F7""Qԥ%,]%fr`OZO"TI3ŷQQ5;;æ/ oVoYppYppoAI/2 -̼3 2pp\op * hhhhhhhWWWWppDFz[[[[zz[z[[???[[[[??555ݨl? zzZA>/AH"}}"&R l?7}QP~ȗؖQ J> +qׯi>+᠑x"] ]f!JJ+iiׅ;ֺQQQ"`"KщdZZOфfbH4R  wr" ԦOZ,0Hbf]b`QOOOOd`̅QsI"Q`w̺QQ"Aj32cᠬ apV\pppAyj/揶y-5s \\hpppGh xihGGh)hhhhhhhhhpٳ۳p%F$$[? [[ɞ[?????????m-5`Tezz77zݖ>/I}BX qΰ ɨOּ_ʴ}jJjiB~ijJ >9]C>//J>ii;;wO.OH""HOOOOZbf04dZFF !b ]."dOOFXd7, F8ZOOQ̂`;QQ/I5זwQwr``wQI2xx pppYYppoJA>2ٱ~;I +i>J2hhhxhhWhWhhWhh۳۳p%0 z [[[?????lQM55;;-z liI/jÊr,[ &Ρ e݉اSၧ-T#ʯij+ 9A+jJJ } 8ZK///J/+>>>AiօQO.ZOщ""QOQb4d7fF !1 ]] ] ZOd}!!ZOZ!X4X0b.Q`d`"dTÅs;Q";w;``QMyA/II xxxop\\YpppyȽi/pۢ2;Ȝ i+Vphh \hGophhWhh)hhhp۳%0,z$$[[?[ɞ[?????΍?-M̹`֖M}Ê Ѧ/ji5։zu9lR;9SAiSyn~ij//+>䯯 Pj//ji#QO8 !ͮ4>j//jjP>++Sy`dZZ..C֌HQQ!8!OFޡ]1!.R!ZdHZ8ZC}ZCLfb!CQrQd;TAyT"QQQwcppGGhp\cGhhGGhhWhhGhhhWpppp%$[zz[[[??????[Q55;}-#uee}JIT}Z7zB$[ }`QQ5iSSB/j>g#֣ Ę//j>؀#H8!ZQAj// > j +iA.Z.ZCOQ""QwOZ}"Q!1 ]  `}8Z}}H7}7L ]F,0"`TQQQ֣B5;;;TQTH"T` B-ȆI xxaophhhWpp ABs쭱/ا5hx+YphhhhGhhh)GhhhhGGWppppppՎ7ɞ[[??--Q-5;TMMߊ}KTʯ/IS-z8ZZBz RRTZ#iAju;``օ9IjI; F0,ъQ9A/j+idOO..OOQ;򣣌QւO!OZdֹQ8fޡ] ] fZr9!Fb88,,0NKZe0XZ""`"TdщQ}TȌT֖Qd"II/5; IIᑷ xaphGhhWY B;׆IJc+_ @op\ @hWW)GhGhhG㈿GGGhGGWppp@@@7$$$ɞ[?????RΎ;-T`}l$ 4qee- IBT} };ue[RZ!4XlB/+_3j #$,zXO}e PʂR0f8ZіBijjJJ x үd}C.Q;99`QQZ74dQ!  bT8࡙bb0FC"wZF!O}HQQ}OT֌Ay5;;Q}T;33sČֆyāiappWWhhGhhhp\piS>Joy۳opoo +VW)h@G)h)hhhGhG)hGhhWWWppppppppp0,7$$[[[???[???RQQֹle}m XqBjy555dTPq&R]!}}}}/ _ +3/i#zz XzλF,ߊBP B ]]]]]fffff08Zdq"BjJ x+}C..y9ÉQOO`Q8dO ]]   ,dbf,8XX774d9"0,}}}֣}QQ 9;By// Bq#/ąM55;;BAJphhhhhhpppagBy/ASao xiV\@hh)hWGhhh)hhhGhWWppWpp@W@ppFzXɞ[[[[[[??lMTTօTmX ܼ ÊqؽyA~e[R1XZZdÖėii/if,,߂9PP "Lf] 0FZHd /x i׊}ZOZZH yւQ!Zdz`.R ] ]] ]] ] F8,!]]0FbX84X4}qrԡH""֌` 9؅A/y5ÖB TÂT;->2ٳppppp\\WhGhhWpppʵ¯uyjJi쬠ُp>  VV\Wkh)hWWhhk)hk)GhhGGWh@phW@WWWpW,[[[[??????MTdæl[m7ZBByļy;;Ae[ b4}#5J+#MXzFF,CCK<9IB},FfFF噡Ff,}CB9JJJ+B#ddZт TZX!F,ZQ]]  ]]RfXzz,f8X7z}4ԙ!H"Hd;Xq` 5;AJ ABuBBB;֌AJppWhWp\pGhGhWWhWp۶>n #JcWi >gu J\hhGhhhk)))))GGhhWWppp@@Wp@WW@pp@Dz$$ɞ[[[?[[[?l#qTTÎKT--~ySi5Te[]RR7qB>j+/ jez F^Cͮ"Bd}zF zF774XzfF,ZK7KPIj/¯QdѦ ¼SA5"f,b8bZOf]]] ]8.Qed$f -Bq;800!Q-55~~5佽J¸T`ygjVphW\pWp\WWhGWp@Yi S#ʠ汢波n⬱۱+ \\hhhhGh))k)))kkk)G)hhh@WpWWWWWWW@WpDD,$Ǟ[[?[????lƊd;;Î!md;T-le#;~ByIIبR1,XX#A>_SxJ/+KK7 Ι,^CrKZzࡡX F4C49A> jjB9Ö III9ʖZfFQZ8] R!Q`O};z]XqB/ig#זX0F,C""P ~5MĤ2Ycq#ף-uiyBAg +pGhh)W\pp@kWh@pYo > +22/ ʸ>۳Vpui\khhhhGG)hk))))kk))hGhWpWWWWWW@DDz$$ɞ[[[[????eq4d;Xle֣u7-`5ا5II#½qmX77X݌nx ++A}47, ,8=.CHHւ"Z ]]] ,F0z44C}d;;ȯP999KQyœ䌂ԙ ]ZOZ ]]]  TO-I4F}qPJ2+Kz7HQ P` 55䣣y9+c223ħ;5B~ʵ++jiVphppW\VVY\@{hpgni梢J aa>xVY \GGGGG)k)))kkkkk)kkGGhhhpppWWWDDǞǞɞ[[?4}el;;}leByII5-}77/I܁ + + A#7z87777XX,ջ'.C`IP}e,]RRFF877騊qÊ-BA999`QA/jI`Qf]88! ]]]  ! ϼH ދK/JcacjqKXT֖Q"򹤚5IPiBBI22¯䘯A +ܗ2cVpc3sJJJ3Y{{p>x Jٶ涃涬 xaVV2\Gh))k))kkkk)kkkk)GGhhhhhhhhhWDDDXǞ[[[[[??lMMMÂqmɰeQèm~BA/ʊ54R] j 47XXX8bNN'CCCHH" H! Rf]8,78,}}eߊ999`T׽A//P䣖Z ޡbZO8]퐐  !T f"|2sJV3IK}dTmZ!Z̹†PPB2s¼/yj>i痬Vccpp) >++/J//9B"3hhGG>gҷ붃 ۱ +>\WGk))kk)G)))kkkkkk)))GhGhhhhhhhhhDD7$ɞɞ[?m&&K-è??e}ߨ7dTd~_B>5M&##-䘌zFzi }7X7X778,F0vՋ,r8Fff 77Xzz X"99 B iI+ģ !b !8e  ]FIs|YJc23JJK}7XOOQw`PIs3iA+x3j>YYYp i /Ij 9qHVGGa i惃 2 i>ch))G)))G))))G)kkkkk)hGhhhhhhWDXɞ[[[??llÊl [M--Ǝ}Tl~iܸ5קƊʯjB$揶x+ #K8XX400FFvvF'C7щLL00,ezX FzX ֣9PP⁀ +B֖O] ]  ]] fd/ i>+jἼy`!F8OOOO` qiij23i #3c2VVVVV //TH9Ihax۳ggۭ淃x +Ykkk)))kk)kkhhhhhhhhGhhhhhp\hhWhD7$$ɞ[[[??ee[1T;& edeq—+SnuMB䯣į衡7qoax ~}Z87X47Xfvv''47LL'^=='''',,, 7d78,F,? 0 5B ggAO      ]]  O"9jiT Q FՋZ}OOqAJJA i+jc//jq"9jcYVV/AA½̌"QQq9hGoo揱 iV J \kG))))kkk㈈hhhGhhGhhGhhhhhhWɞ[[[llle[}5 7Z7-y羾/A#$ i5B9BΙ ߴA3oooȖdщ8X',Fv'^'$7'LvvL''''^=C^'LFzъKC7,軐ޙ"Ĥ9B~5⸸iOb]  ]] ]   !qqqeQ``Qff00bZjs3ciܗcVosPHϭ3J/i55 Q9I@hhppo i 汳c JJcc2\kk)kkkkkkkk))GhGhGhhGhGhhWhhhhhN$Ǟ[[[???}&-y~? 5ISAS$KlΙ 4ߊoop+qQ^,FXXFKf0'Ԯ'LLLLNL''CHC7XHZbFޡ廐ff8BBB5ByM}Z! ]  ]]]  ] !7X 8.!vNN'3cgʴB/32jr""33Iy~; ";2@@@\ a + +ig+c2cx朗+ /JYW))kkk)kkkkkk{kkhGhhhGhhGhhhhhhhhDNɞ[[[??11?? [[ȽulzΙ݌眾 ggش&Xz7K K o"Q.8NF8O}7ՙFC'''LNL'^^CCK}` TT9F0Z""ׅS B!R   ]   ]]]]]]] ffU]8NLCCrIsssJ3J/I />g#H...<9 -~5 "/VVa  +2a  Y)kkkkkkkkkkkkkkkkGhhWhh)hhhhhhhhhhGhhhhhDN&$Ǟɞɞ[[Ǟ??1 [7l~5ģ5Tm7[zlyI gȀe74ez 1]]1ΙX#  oo ;QO8NN!}7K,'4rC74vvL'=KHqq9Q9rFF]fXd;;5 Bdbbf     ]]]]]] fF%]f0'4C͉C Is3333I5``"KCC..(<<<<"<``BQBB/V Wpa汱/쑠梱S c3\h)Gkk)kkkkk㈈hGp)GhhhhhhhhhhhhhDL$Ǟ[ɞ[?[$&eMy y5qe&y+gnn~#XɎ7111 }#q aaoxgH^8HH9K7XPIC}CLvvL'"BB9 HH`fff b8;" ABBB;qXb,      ]] ޫf0:'^^32223sI `.O..=^Cwwwww"<"2۳pi/J>AA33Y))k))kkkkkkkkkk{{{㈈hhhWYWGhhhhhGhhhhDD[[[[[????????? #~5BMM׆/guMf] R1]]]]4so x oo #Q8`r Ps3K"II""HԮ͉ cccZZԮ^L fb88K"r"5BBqf]f]]    ] %%ޫޫ^^vvLLL^=H"̩̩8=<<<+ gظAIkkG)㪪k{Ekkh)hhWYYhhGhhhGhGGhhhhDCɞ[[[[[[??[[ɞ[[zzz$B5qT֌}}MSl z[??]}2axoaao q}æO̤s2I97zKP|sB#BH"⠭\o +O(.HCb0b,CQ`"BB#qOZ塡R]] %  DNNLH.C.((((=񐲲((ͩ̂`ģQ`QKHic2ۿpV>+Jj~~Ag+a+Pj2Wk))kkkkkkkkkkkhWpphhhWGhWZ}$Ǟ[[[[[[?[[gB#eM`//yMez#}?? F!OO¢ُoao3jdZ`P¼Q}zf9cj׸dZ"9xpoa Q(HCCLN Fb<9P+gq7Ԯ!!8b , ] %  %%D'LLN=.CwLNN((t8.(<wwQ9;OX7PJc2cV٢//By__ BPYkkk)))))k){k{kk)㈿W))GhhhhhhDDKɞ[[???[[[[z$[zЖq}}inul?RR8ʘP?Re!FтQT2ooY jA`rPr9,77z0zB/J£C"P3Vpoc/C.^0fff8OPj+4.(Cbz]    vvLLLL''L'Hw=L^=!==(((.(<<#/ٱa qI)k))kkkkkk{kkkkkk)hhkkGhhGhh$ɞ[[???[??[[[[-RÊ#&$ RXBq7ԎOO;yg>są `4,FzF,s"}}"3\GoV3PCC.Cf,f!ZPPjJ/jAqKH}CCKH!bN  L4ԋ'''CC...(C^^^^^==(=((6(=(͝.wrJ3/jKHCH"".Cbf  %LHqqq7C(=.^(==^=^=((==6=(==((...ww"9 Of1,sWphhGWJc۱++ jVۏ2+K{k)))k))kk㪪kkk)kkkkk))k)hhhhhGhDDMMe$[[[[??????[?l--l[ y>ܠBe[RRR l7&MR]  ѦQQ֣A+Jc2Vc>q#ZZъK4FFzz0 7774}O8C9YhhhGh\oP<CC.C'fFb7B>IJgqq<HH<HKե  ޫ%DDDvLK"B9j>gH((===(((=(((86((((.((=(....C" IP.8fF廻XC@GGGGp ۏ /ᠭoa#kk)k㈈k)kkkkkkkkkk)kkk)k)hhhhDOTɞ[??-ll[7M>R?llXR[X8XKTQіBg> qHz, 8XZ4zz470zzFF X}ÂKCq9\GhGGho x i^(CC'00,F,ZQA/JcJq"q>cp c @kk))))k))k))kkkkk{{kkk)))))hhhGhhhD%OM&&ɞǞ??11R΍[ƌ[[??[ R&#؁iyyue? ݎXe7ə Kd"ZQׯ>j BK4,zfޙ,,K,,ՙFfXQ݂;8dchGGhhxx j׉^(C^Lvfbf,O;"ij2>qq"BK'Lvv L'^=''L'$$qB32YYYp\cP<t((Ӈ(=(((==(=(((((((.=HQBg".]]FF 7c@hGGY􃭠+aaٳYp 2ߊ/kkkk)kk㪪Ekk)))㈈hhDDD%.QQuMǞ[[???R1M[?[?[ Ύ#؆IA*l[֖ll?7ݨXd"QZC9BK4KXzfFFf,X}qzFFfH!}}CԮ\Ghh)\oaa jC='^(C=Nޥf9 J3gBׯj'LL''vD%%%ޫNNL'^(=''''H9YVY\\YJPH(=((ttt(((=(==(.(N8O9> O]0fFf] ϒ@hG\pVc22 >x۠ i3hp2 Ќ3kkkkkkkkkk)))kk{{{kEkkkkhGhDDDDͦT-MMu$[[????R11˞? [ Ƨ+in&Ύ-~e[ ?}Kdq"dOKHq"BBBBK$77z F,X}K,Fzv0,OX87CH/cVpGhGooooVj"'tC'LNff}I #Jjjjig9qqqHqK4vN^^^^q/phh aVAEkkkkk)))hkkk{k{k{{EEk))khhhDDDͦTT-Ǟ???????[???4z&iSiu?RR&~M?[?"";"dXKz,Ι,8FF C}XCԋ,F0,CP+cWWp\c(H='',HZrϼ9jV2cccc3/jP9 jJcc2V3P.(((((twwwrϼIPjcY@@\J>c\\\Y3H(((t((=((t.(=%b}5/2>q48Z`BBBX"Icic\Vo2/g AJuM3ph۶ h)kk)k)){k㪪kEkkkhDDD%Q-T-TǞ??????$ [ lqAᬗ+ʕ[R 51R? KqBq9TH}XXHH"d7z z R噙FFFF,z0F7KXLX}4陻.A W\GGV"H<<HvՋCTO8b9I9Bj2cVc33s333333c|YP"(ttH..(((.(===.(..(^=0%;I2 i æAiP/J 7B/3נV@cA#u ا--Ȝpha۷J@kkk)㈈kk))))kkkkkkEEEkkk@hDDD.ͦQTT-#Ǟ[????[??R[$ ɨݨ4uJ+?uȧe?R?RRKH"9;֖d}T```Kΰ RFfF004'4H}7'9i c\@WG3j"HHH<=HC'NO`OZ8b8OP/jJc2c3332YVV3/sI9>#5/s#ȗi/춒Vۿ)hhhhGhh)kkkk{E{{k{h㈈T;7$ڞ[[[???[m[&&[?[Ö;;׌eR1R[[1144BPIjPgąZZdde衡]]衡F78,FFXHKqHZщqiܯBjVpxJJj4'=(='LfFFN84L''(tttttt6tt6ww<CHH'<>"̈́=(==(==((((((..(==^0% ,B2S87*g xaזQ`s|IiȵgBio汷涬pWhhGhhG)Gk)kkkk{Ek{k{{{@hhMM-`;l$ǞǞ???&Mlڎ$ [M--TTT~mz1ΰ Rz7騌I3jȖ QOO;R]]]]]]噙Kq"qqw; +Jy"qqiaoa c\VP^7(^((^%%DDDL'tt6tt6t6ӟ<<<<<<<<=(HBP"=88===((=(((((=(^N%%% fR!ݖĜM44qKJŒM}+Sφȅ-/>WWph@WhhhG))kk{kk{E{{{W@hMQ-`;TǞ[[???*le&&?[l-}BMlRR?&1 7XBIsPqQ}}`"ZR]]]]]]]]fF,,}"֖""99i>+ B; x\jgC(((='LvLL'(tttt(^<<<Cww<< BHB#uæXqXZ֯Ajg2> p\\GhWWhkkkk{{{{{{{㈿GhDDDdT`;qǞڞ[?&u*&eǰƧ-eeM}}-ee#-lR1[&$[R , ReZZ}HO}C}}]]]] f47݌B5Q oxS׸AiixopGxHCCӲ't666tt(tt66t666tt66ttt<BBϘrwH='3H(^^=^N%f] ]]]萐 OQԨjJa ZZTօT!b}7}}mee#I2 +/igpYpGWWhGGk{㪪EEE㿿GhhDDMQ-;uڞ[[?e&mM-MMƖ~lu-l11--1]5qHC!^C4847 ]]R]] ࡡeP x  AJ~ʸ/  xHKCvv''C((6tt666ӝtttttt6tttt66t<>3IwwCC('"CN'^^^=ff f ޡff,b8AJ!dzXd8zKւ!è#/i쬶ii2phhhWWhhk{{{{E{k㪈hhDDƦMT֌#ЕǞ?Ǟ[&MM~;m&ez$}RRÅ 1 eqII 88bC8zXzF]]]1] ]FX9y9TÌcax+gng>įAgxjHC''''^^ӟttt6t6tt6t66t<<<<"H<.^^ ='==衡 ]bOdT֣܌b88͖XQ,Rq}s/3-Bל٢J>+pWpppۿhhW@WGGGk{㪪{{EEEk{h)khDvKƦQT`#*[[Ǟeleƴ~5e&Mm[BRz&zR1Rm9R ֽIz8XΙR] ]]]]] f00B/cxn/++s/goYVjB4''4HHCC<tttttttt66tj ԰ FF]]]] ]FFFF,K9B9֊coV/ i++SBJ xJjj33jH<JY+i +j/cpooox aaVYY3g<Hi陙F ]]]]] ] 8X80XH 9;׌3a2Va +>ooxaoc\\@\YcJPH<PIrttttӲC<9j3\\@\> >3VW\VY@#=(^CP3..==: ]0Kf,BfFF00FF0jP#LFFX}8R9ᾶ/⧵#;s2/oop۳VYpWWp\pWWhhhhhhh@㪪{EE@\W㪔))kDZQMM~ǞǞƴM&l&*-MM--55~MM[&T&&M& 11-l1},XKKBq,zzz F FKdT}}4,ģʌa\oo i oaao\Y\hhW\Ycj9H".''^^H q''::LLNN:%] O"9dZ!b8OOFBd44}B3\pGGxzRb!M` 汏a波e7}2\cVVcJV\pWpWGhhGhhWk㪪E{{{{{{㪪k{kkQQmm&mn*Ǟ&ŕeee&*M-u-n;~~;M[&mM-lM~اmRzm?1R,,KB/Iq-}X,F,$zFFf ] f b7CdIssIׅKzH9j/JaY\pYpVi>ooo\WWh\Vcjr<<HHHHHt/Yh\aV\\V3jPBHPjc\pV/q<''C3c3P,'L,LL:%]"8],!ZHB+jjĖ\GG>#L,OwIϗc/dccV2V ٳYpW\p@WhGWWhGkk{{{kk{)TTm&&&unڞ&m&&&M-;y5~~M&MM-T-; lX&1OTR00F7j陙,FzFFf  0'7C9/37z,,FCBAAjcopppa aaoY\phh\YcjjIP"<<<<twIVYo\\WWYcjB".Hj\ppY3BHԋ^C9///+B}''',LLLNNL',%T}F8OCT; 33/ > Vhۃ#z0 T-`y᷷J>#u᭭YVcpWpW@WWhWWW@hk{k{{{{{{k{)QTm&&M**&ee&M-S 5~lllM̧-Bg~~T7Ml1QlF 7}~;4zF,zՙ,FFf]!bFfޡ044KBj>Čd$LL0XdIVVYY\ppo oooh㈈)hYcV2c3jPrBBH..^C a᠃p>'F,!!.-|cJjׯ۳۳ooWW\WWWWWW@@WWWkkk{{{㪪{{kkk{:d-m&*uuMmlln5~eee--~5S+Aȅߨ#1!l1,XT9׊zFF,,FFfXf0L474KH$L$'77,79I//cV\ppaooop\WGW\\h)hG\\\\V/jwrPI333aaooV3JjiCC=.(.""<9c@W\\3qg xx@hh $!`I@@A>/ap۳2o涑p۳@WWWWWpW@\\\Wh))k{㪪{{{{{{k{k{k)%CM&*ǞMM&&MM-~;~m&Ŏ--5SyA+i-? Rɰz XߊTeF,,F噙ff F$4X4qqq$$$z,'74KLL7qJcc\WaoaaooooY\\Whh\\V P>PjjjJJcco3jBKCф^'..q$}}ݩI2@/IVppp欠pٳWp@Wpp@p\\pWhkk{{{{k{kôMڕeƵ-MMMee̴M~Sy5&Mƞ-~--5 Sg X*11T1z4X ΙFFՙF,FFFf,8 F,X0zHzzzL$$X47$774dA\\\hhooa aYVY\YYYW)WGGhh\ax jjYo xj >YJJjqH'L'=jJsjCX',vLvL^C'^<"JVJBqHHC^^C<>"ԙv0NNNv0vvvvNv0v000000ffff8dbO0֘PqHdq32۱2cj>gAcWG #!5##>ϒ@22Gpii x cVVYp\Y\@h))kkk{{{{{{{)QMeu-Mun--5ȧM5̴un5yS-Mee$?1eQRz zFF,FF ]ff ,CHQK4,,,zX47X4"AVpGhh\GhhG  xcYYVkk)hG\YoVY\ jjjP"L,Lvv(L^Hx"HHHHH 94N0vvN0Nvvvvvv000Fff0fffffF8,//jjjAqM좭J#~Ƚ+pWpgZOw`ÊB2|Y 揷a涶泱acV۳Y\p))kE{{{{{{{%-MM˕ƴ-MM̴--~e~*-;;̴-5Ҿ+SnMl1R R  FFFFF, FFࡡFFF!CQ}陙F,!C4Crj3Yhhh@hhhaaa>> >+xoYV {㪪khYa3acY\Yo jB"qH,FLvNLԮHHH^^CH$KCCH<KXNNL0Nv0vvvvvv00f00000f,bFXCqB/2c/+guJ/+ւBj2p#TQQ`TK9;2Va2摬ٳ涶涃@ppppYYY\@hkEE{{{k{M*˞eMTTM̵-n55Me*uMT-Q~_ -[$[Ree 噙FFF,,FFf]!Z4FfX}b8,FF0FFFXCԉj2GGGG@hho xa +++xVojj\{{)h\Yoa cVY\h\a >jjqHH^NvNvv'=HHH^^CHLHC^C^47NNN00vvv00f0000F00fzXb}K/۳>ʊM#IIyBw`~c#*#HQO5ôI2|2a2a混WVWh@pY\\\\)kE{{{DNZ-M*e#**~-55MmeMQMT~5 Su[[z1eR F,,,FFFff]]]OT0!000ff0F0,8C}OZdBj/ahG)@hoaxx J+j V\@{{{kk\\o xVV\h\i jqHFvNvL'CHHqHC=CC4'K"^'C==,F0NNvv0vvvvvvvN000FFFFffF !^CCKۈGpoV2i䣽yļIIʴQ`;Jp#uQd֤!}Icaa۳Wphp\Wp@@W㿿hkE{ﻊ*--T-~-5y~MM~-ŞMæM;yM1111 $RR 7efF,FF]f !щQZFFFF,f00ffbCZZ.HQP aGGkhhY xx >>Jcx+Y\{{{{k)GVY3>jj3VVjgjj"qLNNvLCHHHCC'^'C('(='LNvvN:vNNNNv0N0F00FFF000000fF,F !CK}ic惑a//JIy;IŒOQ;ۑ#dyyqXeJVcx>i۳p)Ghp\p@@pWhkkE{{W{k'*&ڎ*uô~-M5~~M~~&l&lmM _&?[111[ R}7 z ,,ՙ,Fffff0ջX,F0NՙfF XZd>+GG)@Whhoo ++A> jY\Y@)\VVx"gj3>>>jj9KHK,0'CHHC(CCCY@h))))h\Y9 jjxJjjP9HK4'LvvL'HCCHH<HKCCCC^^LNNv﫫FNNF0N000FFN,,N0F,!Og>+yggBuu +WhGG\\\@hh㪪E{kh)0uum˞&qMQ-nM_n-5~-MƞmeMB IS#ǍR1RRRQK RF,,,'Z,FFFFF0,z,ޡF8!bbZj3ph)kW\\\\\oay`-BgqY\@kkW\Vj">j jx3>HX',,v'^HHԮHHHHHHHC'47:,^=='LvL,FLFFNFf00FFFF,z,bCr/cVaa  #Byj//iQTig᜗++ +i>xa SAixphhppp\YYY\Wh{㪪kEEEEk)hhhhh))%ZQM*--u-~;u5~̵55nQlelQ~B+ Ҁ&[l1?RΰmeXΙ ,,L7449P4塡0,FF0,777z00fz!ZOԋ!Z9JVW)p\\Go --;#qW\\W@)\Vx"g> >ׯ9"H^''Lv'CHHH<HHC'CC=^L7'L^C='ԋFNNF000FF0,XCH3 ص* igqÌAiijJ3e`5iA淃惭V++ܗppp\\ppp\Y@WWW@kkkEEEEEkhhW))DC̴*l-;~-;~~n_~̵-5~nM&eemlTȁ +n?e1RRz?7;`4$''^KKK"P3PdFFvFXF0X4XzF虙,!N,Z9V G\Gox+gTTQqqBc\\\\khh\cjj3c/ggB"4'vv'Hxaoaa22+ +++pWpp@WWWhk{kEkkhG㈿))-M&&55---~~-~n~5~~n--mMn5 SxҀu1RlƎ?1RRR11RmTQMQ9 ֌֊7,$KKKKqIAd,FN40 z4}Z7 ff],88},NQrjs2oooaaYhhooa #KQQOOOB/V\W\\k))\aY\V3jggBPq^'''CH<HHHH^7CH^'LLLvN^.CC^LFvFNFFFFF000Lz'ՙ!"9/2 > +jJjAg JQgioao+ gҗ 汏Whhhhhhh)kkkkkkk)GhWW@WWb--m-~5yy~-~~~̵~~-~5~MQ5ܷa_ƞΰ[ R1R111T-}}`Z'CKHׯqqzz,7dXffbZCH},ZPJoohWhhha +T͇.H/YWh)))))h\\Y3jggg9HH^'^CHHn_> oop)hWphhGk))))k㪪kk{)GWWWpM---5yy~~~uyn-~~Mn~~l-~y淾?[11RÌQmeTT}}}KBj˜BHKKK"4F,!HQQHH'HщT/VVah)GGhha #qHO!ZdBc\\G{GVx >gׯ"qqHHC7'^CH<"CCH<</으Ij 汏 u*#oopp\hGhGG)k)kkkkEEEkk))hpaD%O;Q-5ySS5-n~n5~n-5~-M?l;yāa *?R?R1QTQ}}eXe};HCCHB>jsc/I/Iqq;B f8ZdCHQdqAx oGhhhhVYa  gBK"O.O"3h\@\)GGGGYYxg<KC4^=ԝC<<ii>i܁M#~A/+J汳opphppp))))kkkkkk)kkkhGhhW۳DTQ-5 S~n~5nnnMu~̵-̴lmyS*R[R1-Q`Îe}q}7X}CׯB/s////j#qqB}Zd""HCK#A/Jihhhh\ + BH.HKc@\Wh㿿h\GoxggAP99 KX],!Z"Bq#74ddPJ/i JVh)hh gg j>H}HK3@\\Y)hWo  BHHC((HHCCH<9qHHH4'LLvLLLLN,,0FFFFFFFL7C}}ZZOOQKs/BB9~-ç׽J ص5+nM~y95y~~y>i>/VV@pohppppp\\p@))kkkkk{kkkkk)khhhhp揳DNQ-5ySSSSS5~_5n5S~*&&-~~5&eM5SSSa?1R[lR11mZ![ldQqKz ,Z9ȯiA׌ףPPK78H׌KMB>Y@\aa > >>>>BHKHK#j2VYh@WGGoaiHCCCCCHH<<HHqHCCC^'LLL,,L,LNFFF,F0z74444CCZQQQTPM#BBBČ-5#K+/;yI>S_Ľօ~~-;IIJVYWpGGpppGkkkkkkkkk)hhhpoDDDQ;--5yySSS~n_5n_S5M&-5~MlelM~5__?RR[R11mQeXߨ !֚9yjP9Aqd8λbHT;gA KCq`Q`ĤAJJV\\VV>> qKq/3Jo\hG\\\\\\Gooax>qHH<CCHq"gPqqqCCC7'LLLL,,FFFF,,,,z744Z<̂;jBB I ׅA¸# ~` IIAA9Q֌MM;I >YWWppoY\hhG)kkk)k))))kkkkp@hhhoaDC;~ySSAy_~5S5~m5~M̴-nnؗ涬_RR?11Q;QlXK݉TK4OQwBy3;TÖ׌Hq"dH}Xz,!Ì gjg#"dÂףBBcccca x c  x g>sJV\h\\\\\\oox   >qHHCHCCH">""qCC4'LLL'''L,LFF,,ՙ,z$7CZ.ͺO9#qq#2/2#i /ysI555;̌ףyy#VYYYWWpWppppV\pWh)kkk)h)Gkk\VY\WWo~ySySy5yS_܁~n*M~~̴-mM-_aڍ?R?R1111Tmz ÅT̺`~5yqCH"KCH"HH}X !H;׸>ig"OO/2c> ##g aa>xo x+gBP/@hW\\YGoo xx < >dZԄHݖ/@Yg#gVYo oojqP \hG)G\\GGo xxx igq!ZZCKg/Y #j a>ooo xiq#xV\GhhhGGYVoo\ooooaaoa q<BB9Hqq4$$$Lv,XCC(..ͩQׯVp #g/ْٳ gui-M;`̹wOQj@WGG\\Y汶止phh)h)kkhkkh)kk)kVٳ\ppWGGWaD^_SSyyyyySun~M~--5n~y aǞ[?1Q;##~-~5T;qHKK4KqK}}K8"B+  ix-d}ZZZg+x>Bq a > xoaoaxqHj V\)GGhh\VVooooa   qq<qqBaYo\\YVj9j/qq#$$$LLL^K8="p>Isog /XQwwZ!ZQ~>YpG)))GpoVYpoa@Wh\WhWWkkkkkk))k)kk)kkkW٢pWhD~SSyySSASS__5~5-5QM~MMxx[[[[?1RmQ;q&5`-`#9B`"9B"}HK4XX}HHK}KHZіPii +>JAMddQZ}i ao>gP3a ax jqgJVGhGGYYooo xa>qHH"Px a\o\\\a>9P|3P>+jjj33qq4X7'CKH!.8.HK3@@Asao 2Q``i 쒿W@hGYpxchhGW\WhhWWkkk))kk))pٳY\pGG۱Dv~_ySSy SSS_un55n5MM-&leM an[?ɞɍRR-~M ȆyŒM9P׊K4}HKCHdH>++ii J/#"djco+ijoooo \\Y qchYYoaa aoa gHHj >i J>ʖ"Bj xooJ/3/VoVo x ooh\VqI|hh\Yoa a oY3 g> \VVVVY\\a\ CKߋ 7|@{2-}5yj>n 2/ʌBTdHqʯjJ/c/2YWoccYhG S+V@h))h\\@W@\kkk))))kk㈿۳@phpD.BB__Sܾy_M-55m~&lڦy+n[1111m`M$ sᆽأI>9׊CN,C}CCC""Bi + j"""Td#i/x aJYoaa xao\qqq"j\E{{)W\YY\\\x aoooaaxHj3cxxaooa  Y\aaa xjx>gHHHP>> a\WpY\G\ gKH$v,,!I2|P;O5 g /B 55QQdK x 3uMBcVVoۿpox+cW))hY@@)kkkkhhhhhWp@@۳pppW@@Wpp5_~5痗羬S5y5MM~~melȬ *[?1RM-Ψ~ yjByj+A g"HCHjcc gʌB"5 >+ s/ oa aao\hV  >CHH>gg#>JcV2cYpphG)Vcg#$$陥00̅yg/¼~ʌBiaoo >4z4{@VY۳x +2\hGhaaJ)kkkk)@@p붶揳pW5؁Sҗ_yy~5~-u~&-M-ҷa u?11R-5yBzɨT#i5~5A9}CHCH""9qʸ>xVBA֣ujx > +  aaY\\h\HK>Y\\\\YVoa xxx aoooooxjcaaa  oax+>xo >i jgqq<9g#qq##B+ > a\pGG))\ *$NFFF}Q" > c /،BJ A9|VVV +2kkVcWWh))k)k@p\V a @ۢYD5__5SS+y5~~55*lM5-A쏷x*?111eT ~~B##"OC.C.CHף9Ęj3j iBB9I>>xxxxx aooo\GhVHCHBj 3J aaaa  aooa+9BjaVoao aaa jox ggBBJ3xj>gP>a))GGG)Goa g#XFFzXZsI+> >x2J>A>igBAj ooa3AK$I@{2Vx xa xcYW))WpۿkkhhpgS x W@٢cDCB5ȚS+~yMe~~~a*1111111mMMʅ~BB~ʀg H.CC.CC99 #>3J igʯ2g>x  i xx aVYGooh\ 9qHHjx a oVVax oog>cY\a x Ya gB9>jjja\Y\YVjBט>i V\kk)GGGGai7zFbZQr Iľ+ g+ j>coo/HB3{YWcJaax)GaWh)kkh)h@V җ涷 |듬sD'"~5SS痗ȵ-~ySاul-;~Ĭ _uǍ111R1[llzzlz-#B~B > ydK}C}щQB#u/ccx qjVia g aa aa\GGGG\\qHHHj x VV aooo xYYo  \>g3/JVYhGGYa3jP9qggg>3@k))G)GGo qz,FF,,QyI든+/2I ##g>VPg#H9|@Vpco混@hhkGpo@hkGh@W+ S||vȁyySܗ++欬n-uyS~nMl;_S u?11111111?MqX?quB~>J+׌H#q#>/JJJ g x a x oa3j>ooooo\YGGGGGo Hq""BjJJx> Vooooo9> o\a  Yoj>PjjIhGYYYYVY39qq#gט2|@h)GG)GGG>zF,0Xd sJ+iJj#ii>iYhcccjИ\{GWG\Vhhkhۢ汢W@WW+ii ٳۢg|@@|sySK__S+++_n~y5__uelmM *&11111R[&߰z4&z֣ז>>ȌdHHqפAqq䘘iq9jJ ii xxaoV2 ooo\h\ooG)G\oa iPj/ >xoYo\qj>ix oaoV3VVc jP//c\GG\ooo\GhGYJ+gB>J/gB3V)GG>u$LzCQAj9Agg xppWp\2V >3WG)GhVcY2@Wh)pWhV > ۳~S|@||SyIsD8555SSҗ܀n~_yyy~l&**_ܵ111111?e-qM7zX777M5g + B"qq>#-A>P#Aj3 a  oaaoYoaaohGGojqqqqg+/Jx> aao\\\oGYJP>>iao\aVoc jBB"PcVVY\ao\Yca ccj""`s|EE))GGGaH$LC}"#_yAjPj3J phWpp\WW))\p G)o2@hُWWWWۢJ pWh__|yM-5SD__ySܗ+__yySSgnnmemM*_ n~Tl11111111R1Rz z[747qB+ >99BB>¯׸>jjA"ׯi +x aaaxaG\\\\\GGo x qqHHqIcx>xxo\o h\2BKKjJ>gcoooooocYVcx"<9qaV\GG\YoYVYjq`9|{)))Yjg$44}`yἆjI>JVcVo\Y@k\kGhhhpoppᠱ)2@h\a汳۳\Yca)p涶쬁y|s~lM-~DK5ȁȁҗa_nn~~SSn-mMuanش11111uMX zmyiii+ i+j9ļ>AAA+J3cJ>gg i a + oo >q \p\GG\hhGGGGoaJjJ>>xao\\o\oa a\hqqjjg aooaaaV\VJq"HKqqjxV\\\\\\VjqqdQQQ`I@{{{hhV >#C" y;ȼIP>q oppYYG)Gk)k)hGGppVYWhhh\YV)V3 ٳ뱱 a@۳~MȾ~&*l:~SS _u*M~~5SS˞&eme*ȗaanl1RRR[lÊ}R1R [~ȸ   y/iyiyA>a >+ aoaa xoa #J@@phpphhG\hGGhhG\ >gqqq>33xj >x>aVoYxxo\V+jjgooax \)WWVJ//HHJVWhGGhhGh\VY\\\a>##u}OHI|@ha>qqKrPyw +qgVV\VY{㪪))hWYVVY@hWpYoYG2x+ppW|`--`y5e˞ڕ*Syyܾ_M-_AgƦ&e-ܬa+u?111Rul[ RRRRΎ~yx >ȯy>jii+ xaaaxx ooax a #u@\\\\G\GGhhGGGjgqqq aaxxj  xYYca WJgq#9jj xa a  Y J9qCC.H/3VW))))hW\\\Y\V#ЦHdI3|@{hg9HKP99;`yB cY@@YYk{{)hhGhWYYWhWpVhGGc/opp۳ٳi۳ےSsy--~-mlڕ*nn_ ._ySx~-~y~nm-a n11?l}ݰR[ I22a +~ׯAA9AJJ aaoa oaax>qjY\@p\G)\\\GGG\og xxx iao\ xaa ׯPjx a xVYpW>>'C"PJV\㈈))h\\\\J+g"QdHq9I2oJjIjK9B;~`օgJ2Vp\ph\\Wk{{k))hW\c\@hW\Y\hkkVj+apٳ WW۳|엁~ ܧmM;-lnxDȁySSy _yS__~--&n_*?11l[ze̴R?ɨ-Py2@VaJJ ABף֯JcoVVoa \o xoVa  V\WphGG\hhhhGGo g oo x x>g xa x x> xBjPg>3xJoK47BJ3 aaa q933j ao+uщqׯjV\h))))kEEE{))\\YYYV>BKݨK|{k)Goa jg׊}!m3s3pcph)kEh{hhhG))h2ᜱ۳ >汬 iAASSul?Ǟm~Sso0ȁySSSS ay~M~Sҁ-Mn nڍ111elmR}M/3J$$ ,qq##ddqA3 oY\h\\\Y\pGpGG\apYYY\\aaaaa aoa oooxo x \Ya>qqcVYVooVJqqHq<Ps3J/ xoVqOOZ}qjccaoY\G))))kEEE{)hGGh+#mZCP@{GGGG\c !!8ݹPVYV\Whh)kE{{{{{㈈)GYcjppa+ SSySSIM?[?&MnS|뷬axD%rȁSSSa 5-M-~ SMnSaa_RRR11111?&[ ?lMn*|Œ$ߊ"HHQ>J3xx aoo\Y\p\\\p\hpkGG\poaaooY\Wh\Y\\oooo aoox Y\Y3> caoc3JPHHq<9P33 g> Vc;TQ}KjaVYY\)kkkk{EEEEEEE㈈)k)\i KOdHs{G))G\V H!.JY\YYWWW)kE{E{{{)k)GW J@ppp g 뢬I555~Ml[[?ڦ-~y惶D,SSyyS _-~-ȗȵ~nMuxx*R?111R1?&Tl7ΎQA_#uiM$ ݂""QKjoc oYGhhG\\\hhhG)hoo\Wh\ooY\ xaoo o\V ica3xaa >KC99B c2IQ`"Va\)㪪{{{{EE㿈)hh\o +iʊTd\Eh))GppaQi>V\Y\p@@@kEEEE{kEEEEkhWpWag汱۶羗S_u[??[Ǟ&*s||%ySyySxa_M~~nҁҁ~_gR1111}e[ [ΰAn[ z, z}""QQH}B>cao\\hhhhh\Y\\\hhpYphG)))GG\WW@hhGG\ooVVoGaxxaoo YYV3>xJx oa aajqqHHC^qq 3cPOPϭVoaV)kkEEEEE{E)\ooooox i ׌;Cj@)G)GGGh\ <"֚P/@W@\\@@pWk{{{{{kEEEk)))h\xJ@hp+aٶSܾ~u&l[?*uul-s|||%ySySSaȵM~5_S+ҁy_  ??1111? eRXlmAB&R [zR z [Å9q""HJo\p\\hGh@pW\\p\pWh)GhGh\h)hh\G)\ao\\\VVaaox ah\ x\\3xca x xa3B74H>jjC<IJc >\kkk{{{{E{EEE{Eh\oo+ȸ䤅QZ8@)hh)Goq"KHJ22k{W){{㪪khEEEE{kkaxWۿ ܏ȁI_M?[?un_*u5ISܗ^ SSSSSSxҵM5yxSnnya+*?RR1?el emmm[ R IPq# Y\p\\GhGhhhW@@hhWppppWhhGGhhhhhhWY\h Y\\\YYVa ao xx aoojaooaag3JK$47CH<BC^CׯjiWE{EEEE{EE{{YYooax PXK"VEEW)khG q$KijJc@@{kkE{kkEEEkWcophpx ٳ_Sȵ&uiҵ*_اu*uy_vSSySx5My xSS_~5җxo n[111?11[l}Mee[ [1m #"׌ׯi/cph)㈿GhWWh)GGGGhG\@hkh\\\VYYW\ooa> o\aa o\Vxxo gg gVV3jqqHCCHHqHCCCCj32\V3\EEEEEEE{E{{hhooa+ȅTe8!!!CP{{@)hGh\\ KleI2YY\{{EkkkEE{)\Ycph g p۳__AgnuuSoo_uunnu*nSҀySSySSS ynyS S_~ x n[R??R111 le&}æe?R ?e[ΙX7[qB׌"B/aoWh)k)khhGGWWWhh)GhGhhG)\Yh)\\G xa ao o\x ++ xY\2jKC.CCCCCCC<cVcJ9j@EEEEEEEEEEEE{E{{k㿿h\+ #KX7bb!!8ZP|{{@@hhpY3qKߴyy*>3c|@EEEkk)EEE{{E{@aphG ۢ_ҁgnngS۳oa _g+y~b5SSyS 5nxS_~~_ x+Ǎ1111R11[lm} ?ݰ ΰTè[P A#BxJpG)kk)))W@@W@WhhhhWWWGhGh\\h)hhG\\Yh)k)hGGh\\G\ax aa x\o a\o g+VWY.C((CCC.HC< PB|EEEEEEEEEEEEEEEEEE{{㿿hha iq.|{{@\phhWW\ qB IqBP/V|{EEkkk{{{YaGGpY+ yyҁ __笃o aa+nSSS_--~~M*a nna [1΍??[111?&MQæ?RR 7 Ύ;z4ߌjׅjqIJ۳\Gk)))@pp@WW@GGGGGGhY\\G)hGhk{)Go\Yaxj axa  x \JcVj#g/@jq=..CCCC4C.Ci*ׯIjVkWpkkh\ @۳Ҿ뢳묾뱱۱pphp r_5M-y+_nySu[????R[&MeߊT}emB Mz4K"ׂ#ףBJcYY\kkk)Whh@Wk)GoopppooYY\kk)GGGGax a>VVaoooxx xYxg Wx7qHHHKHH"9/c|EEEEEEEEEEEEEEEEEE)W\\\cg##K!8bXÚϓ@hGG)V xx >auʽAȌYW)W\㪪)@c+J۱+җٱ뱱뱱汳WhhGhpa _0Qyܗ܁*&m5S_y ?R[?1??eߨ}׆1#e`$Kq`Ay B+ jJ22Vpk)))GGoooooVcY)kGhGGG i  Va axaoaaoY gѮ\oa3"qHK"9PBjJ@EEEEEEEEEEEEEEEEEEEEEEk)\c qq9זdCX8K֤|{W)h)Gh\ +2>ui،jW\k)VpW_Ҿ냷٢ٳ2Va@GGhhp_D ySS 5Mm*_S__SS+Sn[?1lMel ΎM[z7 e}æ;;֌׌Bj g c@hkk)kkkk{hG)Ga  惠a 3\hkkkGGGo >x3j>xoaxo oYa\\o gH}KV\@|>3VYV\pWWh)EEEEEEEEEEEEEEEEEEEEEEE{khhoVqHK88,`9Ih)Gk)\\\\\\x+#y/c@h\@@WW@@kh@Yx>۳ 붬汱a涃VVWWWhhpp+DDSҁҗmn___~5 ڞ????111?e-~}$R?  z$};;BA׸+YY@kkk{GGG >xx+ x/ coYWkkG)Go ixxig+ V +xopoYVYpGGGa>qV22@\V3 cYW)kk{{EEEEEEEEEEEEEEEEEEEEE\\@hGGGh\V+q$X8b,,8;`|EkE)Y2ci JVpYY@\\@كii۳a ٳ@@pWppDDbSSS;M&mu_S__n笗ҁn&l???&*~䴨[?7Ρ$;T;BABq-ׯBg>JY\kkk)kk{{{{hGGp+ g++ J YYY\h)k)GGoo  i YaxhooV\hGo"H"V\oVVVV\hG)))EEEEEEEEEEE{EEEEEEEEEEEW\\Y\GGhpL,z,,dQ|{{{{)kEEk)@\cJY\pY\\@@ ٱx볭a쭱ۿWppWpppp۳涶DD-yҗS~mluS~ +_*Ǟ˴*?1111l-Čeel z [e[?$~5`;M};ׅy5-yB׌iI3VYp))kk{GhGhp i  acY\o\hGG))GGoox>>ijxaa xaYoYYYVpGGoJBx oaiY\\h))kk))GkEEEEEEEEEE{EEEEEEEEEEEEEkW\Y\\\hGhphYx qz,z b!Q̤s{EEEEEEk)))W\Vp\YY\VYW>i欗ao2@WW@p@WW@۳ppppԅ SA_n*ny痗_*ȁSSue~??11111?My5#}}?Ι [zMIP׌Ai/33V VWkk){{{k)Ghh Ҁ_ iiii cV\\hGGoa>gJJxx aaaYY\p\\G +>u\\cY\k)kkE㪪EEEEEEEE{E{{EEEEEEEh@W\\@\VYhWV>q',FFbO5{EEEEEEEEEE))ppYpVYVV\hW@2 x xVpWp\Whh\@WpoaDv 灁MSҗy_nn Sunnڍ11111ֽȌ RR ɰ [ƌ;leMϜTs׌BIJ/J3c@)EkGkV +++x+>+jcY\\oG xx 3YY x a a\YYppY))\g#qu###qq>>3Y{EEEEE{EEEE{EE{EE{EE{EEEEE{W\@\Y\\pW\xg$z , !Q``I|{{E{{EEEEE{kk)hpYaY\V\@hh٬A+뭬x@\Y@V@@WWpp۳ԣ_n*u__~S5n5_秴&M~~˞?l-yuM-ql[? [l&mez- [7#s-Is-#BIJJ32@{k{{{{kk)Ghۑ>+ Sg Vooooxx xx aY\\\Yc aVVYpphWhh\a **#q##q#Y@{{{EEEEEEEE{EEE{EEEEEEEEE{)p@\\\\Wp\Yc g$,,z ,ù5 3{{{EEE{EEE{@\\p\WWh++뱱JVY\ppp۳YYYphWW@@@WWWpp۳Nqҁ_n**_yS~~+nm*n5˞ڞ111m#M&-M[Rzl}z[`;XqI9Tq/j/J/YEk㪪)Gp x2>i + ȯ \Y x aa JVVYY\\YVVaYY\GG))2Jigg>+>I|{E{{{EEEEEEEEEEEEE{EEEEEEEEEEk@W@YVV JYhhGag$ Ιbwr3|@{EEEEEEEE{{{pVcW\Y\WWk㿈W2i돭aJ cVYp\WhWp@p@YWpp@@WW@pW@DXi܁_n*˕_S__an**~5?lM$q}[R R $ $$ƖezK9TÖB jPjc@{kkkkGhhpY i>>>gg>A> Yoooo aa x cVY\pp\p\\YVVV\pppYpp\233c2V22c33ccV@{{EEE{EEEEEEEEEEE{{{{EEEEEEkW\@\Vxi Yp R !w|@{EEEEEEEEE{{{{h\YYYop\GhWYYY\WW@Wkhh@W@WWW@@W@W@W@@WWW@p۳iҁҗSҁ_n˞~y-*na nuMu~󍍞1MR Rzzz$X 7q}}K,z;Ê;BB׌I2|k)hGhcxi +>> >gAgaooo\\Y\aaaooV\\p\YY\\p\ppWWpp\\\\VcVhW\2V\W@W@@Y{EE{EEEEEEEEEE{{{{EEEEEkkW\\Vc > >c>##[? !ݺ|@@EEEEEE{EE{{)hpp\Vhh+ ccYW@khWWWWhhp۳KiSS_&&*5Sn*_  _ym1-~# RR zzz $$əK$$z"""QT""Bi2\)kkhhx ng> ȧggooVY\h\ooaxxoV\YYYVYpp\\\\p@pYVYGYۭaaoY\p\\@㪪E{{EEEEEEEEE{{{EEEEEkW +#ᶏooҵʵeXzzQ{{{kEEEEEEEEE{{E{{{kkpYGGcVYhh\icaco\Wkkkk@W@@hhhh@ppppDzҁҁҁn*ŵn_5*unxxҀ_S-SuRRRz zɎX}èz}QQqS3@))hpooa +uׯi++ +ᗯAi oo\hp\a>J2V\pWhp\\YYVYY\)YVVp c \\\\Wh)kE{{EEEEEEEE{{{{{{EW ngܜo gguMmz?Zs@@kEEEEEEEEE{E{{WppV\)Gp V22@hk{@@@@@@@@WWh@@@W@WW%Aҁ_n**n_5Sȴ*o_*_Sڞ???SIA*#e RR? 4}$X7}dqdHHT~y/\hp gggu# i> A>>>ao\aa\\\GGog +2Y\@YYYVVYYٳaaa x2\\\k{{EEEEEEEE{{{{{E{hWpo+ ؁2G+q4[R b832Y){EEEEEE{{{{))kkpYpk iJ>+JcY㪪k@\@@@Y@@W@@W\p@hW@W@۳޻____~u&&5_~ȾSu*n+ anҁꞞ??1nASuuظM[R ?$}TQz744ZdqHHHQъT>|aggʊu# >i5 c aoY\oGhhY\a cc2VVY\\\VVVVV\\\\\ +**#Ê3{{{{{{{EEEEEEE㔔kkhG㔪)GWpY\  3Vp2z??8!OT2 o\{EEEEEE{{{{{摜Y{i Y@@{{{k{{Wp\YpY@@YV2ۢ@@WDy_n__n_nu&*n_~M~Sy*_緶ҵ_???1M؁#ظu[ RR? [ &ÖK7zz}q9HHHѮBox+g~u AjAAsccxJph\hh@W\oYoVY\\\YYYYp\\\Y\\\@pWk)hh>#uqq |@@@{{{{EEEEGp\Y{khpYoYiGpViʊX[[!8Jj \{{{EEE{{kk)))WYVS \p{{{{EW@@@pWVٳ2@p@Db_nn*Mu~_nnnn笷___??11*#u*u??[?RR [?? $}77z 7}"PIHKOHC"`qgj2\x gg+iq gA>jI/3 GY\W\@)\GGhWhhWp@@pp@WhGGWhGhphhi 92YV2V\Wkk@@E{EE{kh)@V2@@W\Vo BWc>  88ݦyS>@{EEEkV+>V/ȗx2\{{{{E{{@@W@@hc x xJ\@@@@@p%%n****55__5&u_羗n1 zR? [R[}q4zzz zX4#I}}Z}Kd#+J i g 3IB>j>AjPjJ>>>pVhWkhG))GGhh)))k\\ph)k))GWWGhp2J>5#;BjcVYYkkhW@@@\@@@@@@۶@Y|Y@WWa S#3Vj&l}}Z ??RRMT~s|@@@{㪪EEEEEkhYc  hYJy2G{EEE{EE{{@hW@@۳춶SSi VY@D ~n&uu*5n_n*Sܾܵ?ڞ1[[[[?RR?[[?zzɎK}4X zzK}C}HKщ`Tqi+>>> ics˜/> ȯA>/ +j cc oGkGGhhhhG)Gh@\\h)G)G\\Ghpc~B5dqY\kkk))W@@@/I33//VYV22Y@WWWaا# 2Y>״ݎZ}m1R--Qs{E)EEEEW\VVaWc؁笗h))kEE{EEEE{h 2@@@du***Mŵ_Sn_n*u_SS___?m&??[??[ [[??[ eK7ǰz[ 7777KC}QHT##  VVc3/>ii g g A JpoYph@p\pp\Y\hhppp@phhGhGpVo\)hc #Q;yPB׸gg+\W@5ؽyB؀n_S/3332|phGpoo+ABʖT2@@3~èH}!??m`5{{{EE{@\2V JWkW/gg痗WkEEEEEEE{{{hhےٱ뱢볢뢱YDDD -~u&****_S_n*ŵ~S_n**mˍ[?[? [ R?[[ K7X[&ׯzzzz44щHOQBxxa ˜g>j++>i++>A jJj+ xoxxaVW@YYWWYcY\@@@p@WWhhYoaap-æTj//¸>2@\@@@\V2SB;~y-u~~_A>2YWpoaiATQ{@BdCZb[z`;Qw s|@㪪EE{EkWVV᳈W2 gA/2Wh㈈kEE{EEE{EE{{{W@o۳ٳ惷汱222D%ԽyM&**__**u_SSnn*˞?Ŏ11[[[?[z[ [?[ zKKKߨll?RB? z z,,XZ}QQT;9joi9B + JjI gg xoax c\\\@WYcJcV\\pp@@@WGoĴOQQ3ciׅJs3c223j~~5;lŴ~ȁA>>Y\hp\o g_B~;; @q#A777z [X̩-s2㪪EE{{{㈿\2jjVkiᗗ)㪪{{EEEEEEEEEEE)WWY۳ۢa梢2%~*굵*n_n*&_ҁ~*ڍ?111[[[?[[[z1RR[?? 7}}Zllm&?5$ z7!4dT2V歠gq>c+3+>++>/2a > a 2@@VcY\cJJxcVY\@@\W\G\oYpp\ca\@cA`O}B/sט9BIjAMM&~A/>jjcWkW\pi~̴QQI@@ iBK4X4z zemQwQ-I/Y{E{Ekkk@YV@Yii+c@hk){EE{{E{E{EE{EEkk\ٱ뱶XAص**___n**˞_S_n󍍍1??[[ [[ [[??[[dKellem#AM7R XXzXHTTQTIsVg### cᠠxci V+ >x xc/j///+ijcV|\\\\\oa WYJJc/9ZZÌA+j`-QT;TZqB5B;-`5555A>i3kkW\\@>;æd`@@+$47eݦTI2V2c2@{E{{{k\@V\kVjᬾ))@@{{{{{{E{E{{W۱2ٳ@٢ 좳_****nn_n**uŕ˞ڵn_~111111111??[RR?z[[ɍ??X7qKemQm&Tyy~  z,z݊TQTB3Vc#/cxJxi iigJ g + c¯BgijjJ\\\\ aYx dH}b7qצOl}O}lÖ`I//xVphkYcco TæOmO@@Yjj9B$le!Qw~~/J3|@{{Ek@Y@k+ W@@{{{{{{{{{kWpV۳惷 DDLAAصuunn*ŕ*ŕ*nS_u11111111RR[[ [[ ??[ɰ7Êqq}ݦOO;5Ǝ R zKTQTT~P+#MJJxig+++iB i>> V2i~##ʌׯ>gj3V2 >xYJ7447Fz7}HMl!mOlbelAI윸nV))WW\I3V++B---d |@J AAB$Xel55SI2{{{{Eh@kk)@jY@@22|||@{{{{{{pYoY22ٳ춬淃汳混Dҁ_*****ŵnu*Sҁu??1111???lRR?? ΍RRz7K#}æ-OMTm1R ɨqTTQyjiiÂi/3Jx gjJ +-䯅-BABAAA/3c Ycem}eXX77X4C}z lOTOXQQlQikh\WY As볳ii~-TQ;||c B}&M~55nA|@{{{{@\{\ YpW@syyI|{{{{kh@YV@涃涶۱x汱DD$AS_*******n___Sn?????11111?1?[11 ?z[[R1R $4ææm!lmmMMQMÊ}11R?? dQQ;yyBP3ccco2ii>iiJx/iBy9`׌֣׸g+scc J22b? zưzXX[zѨ mQ!!~u*/Wi“|Ȍ-QQæ֣PIPק5y5QMÖqdM~5n~SIc@{kW㪔Y/Y\G)@/S55y55|EE{Wpc2Wٶ淬Dqҁ_*u****nҗnڞ??1111?11 ɰ[RR z$7qdͦO!lmlݦM}}TX111R z[,ÊTQTօBBB`טJJ c oV ʧjjiA##AAB׌9I/JJ xxcZ8Rb ,X$$XXX77 ,zzz74Tm!l~~ܬVpVi/-QOQ`֌q-~5̦m XC}Öʸ؀y~;y“@{{)kYV٭VWhAy Sy5MQ5 @{{{kWY2 + 梳o aD,ȁ_n**˕*nҗܗܵ???1111111??11?[[[[[R1?[4d}!OmOde1RR?zzRKÖTT5~䚽̖A Yc ׀ #i>B gBB~`ׅ9ׯi>J  >i>jŒdbX7zzzzzzz$7 z$zߊZ݄b Q`5y+>cJjByy~qQOBeR4e>>ā_5n3|{EE{{{{kWYcVYE@{@yyS ~~QmmQ{{{)Goc2涷뷷ٱ惶D4PAn*n̵m&-ܵ?Ǟ11111?R1RR [?RR zz7ݦdQ-Q}4 z T֣B;"Qq9jjhY g>iظgy>/yBj/i> igA i #X7}}7z [ ?Rz zzX}}Xl8̚;-Bg i~;mmZQƖJsTX8݊M J붶SAy_uu9k{{{k\VVV\{{ٜSSy5-Melmͩ{{Ek)YcW쏢ٳ混붃SDLQB _n-M*_ n&l1111[???? [ɍ???zlZTTQOe4z z zXXQ;QddHPœYo/˜>gi>IᾜSؽBI/3c J ʌA/Ji-ߨߨ4 Ιz l? X7Xz,HqQKT"dIⵀg+##-q;T}ZZZ}֌;ʅZXlѦT 2AܗjjAyV{{{{{{cYYW{{@{@@V5~Mm&e@{{{hٳcٳٳ DS_uMM*n_+n*~unn*Ml?111?1΍?[?? ? ?[???? zX7ZMô̌QQ}XeZXXz zR zlmd;;;H}ZZZ}"9/V J3I//S >> IsiiBBijJ > ~53c + $$$zz R lz zXzz}leQdOeeg +jݨQQQQmZOT;``ׅBlOQI2볳_+is|2@E{{{Yc V{{@@Y-Mmlll!.{))hpVJ 좢۳SDD}Bg_uMM**nn*x_____&?11????????? [z[[[[[[ zɎ7TQ4Xmz [[XݦÖTT";}ZH>3+>ij+/c/gi>igʧ/ J˜קByBׯi++>/ ## Rz ZqM$elR 7ɰ};l!Z!l}}95A lz !}}ddZÌ;~#ʊ}}m}ds2i眗~u-J|||{E{{EEEWVYk{{\*leel$l`{{))@۳V22 p@۳췬Ղ_nMu~_n*n _n5n__-ˍR[[[?[&[?΍???[[[??  zXߦMṂK$7Ql z R z77ZÖdHC8!O͖9/>ggA"Pcjii#3/ //~59ʸ+c i~¸$$z [zzΙRRR l}7鰎 zRR7ݨ7}ߨZZ}e!!T;~9ii|/eX 4le"TqQ̴qB;Qs@ Jᾬ5-MB/3VE{{{22V\{hV mmm[Ǟ8wk)p٢2iܗWp\@@W@ۢS nnnMu__n*x nn____~_eR?[zǎ&eR?[???zz zzzzz$7mOQ$$4}`è[ zz R [ 7Q"H},,88֣BHqA3A#q3/j//#Byy#iJj~qzzRRRRXz X eݨ7 XKTdXB5/i277ɰeH̖-TmTTmX+++n~~5;MM~i J2{EEE{{@cYV{{W g##M&$$[eT{{kG\YٳVW+pW@۳涶_0Hnnum*5ܗ ܀_xnn_nS&[[$ǎǞ[[?????z  z$$ݦQ;9g#mQw`$z Ι z XH"qCԋ8!ǑK/3s##Bj/-yB¯`TÊə R1X z ?7l Xd8;T;yAIJŒ7ɰe7}MQQ-;æQTZely@WaJ/+_uM~M&M>@E{cV\h)\ai gnMߕ[[ls)khٳ22Wi>WWpٱ뱶SnD,9S_n-5܁ _n_nny[??Е[?[??Rz$4lݦd`/2VcuZO`4$z 1? 8zdKC4=QT;dBjJc/2jAB/קy 5iiBΙRR1RRR Z$zzə Ι477747z Ì"QQXd݊BM4lX eZÖTݨTmæ;9js@ۃJ۱u-5|@@EE{{㪿Y22VW{{c _$[[Ó{{{k@W@ ܬWY@WW\܁n%yu*-_ _S_n*Ǖ**?[?RR?? [? z$$$e!Ö2)@ciu4T$zRRRΰl԰zHKCC}ԄQ"HB2ٓ B׌ׅ;l!e7[1ΰXX R}T;ɎQQbbM;Qݰ[eZߦ--7 ݖM}?mMTļ2@WJ22~Ŧ~-;@{{EEEEE{WYYٳ\㪪{) xҧǞs@hh@WiYpWW ܾ_nDFA_nMu~_ ܀_܁n*ڞ?[ɕ[[??[[[[[[ $$$emq>|WJAK}׌ezR 7lzΨQHCCCCC((OOHQO.OQ2|cjBuЊi TB&8.T}lΡ11zXXzօ;qe 7};OZr;ߨÊ}"æ}&ðÖݨ}Xe̹įiّ٢}&`~I@{{{E{Ekk\V2@k{{W&ɞ?T{)h\ٳ뱳@xpppWW\2ܗ_n%ҁص~_ܗ nSn*˞???΍[**ڞ[??[[[[[[ zz$$$$$ɰmOOZ&/@Y3Aߊ#Me[R  z}dHCCZ==^Z..Q B/\V2QT;yR?!!ZTTTMZ1111 K}4ə F l}[eZ`Z` TTe}}}m;B5-z;ml7 mT`Ią5y222JJJ*KMlmQ-MmM/{{@W)YYYٱ2Vk{{hhhGWص&&ǎw|@Gp@p@W@@WW۱ܗ_nD.yS5nȁn*uǞ??еu?[[?Ɏ[[[[$$z z$zz$$zlZQgJV2c uqM֊ߨ&lR[R}}C74^88!...`ׯ@V|ٿ@j⯅;T֣5~# Rle7[RRR1XK7zXəRXz [mTTZäIQeƊM;Ćy-#z4e?֤s~y-#J2B#}MMe!l~ys@@\2V@Y۳o2ٿ㪪hhGn-Mml{Wٳ@W@hW2nn%%yҁ춬5~nlǞ??**[[[[ɞ[zz$zz$$$[zɎddÊB2V2 q;}mR[?zCKC7b!Z....Qw5׆+A/YVVVY|3TÊTæ-I/R?R1XK747X 4l݊}l7XݎQd`IT4æƊTA~[M z}s-5uiJAuelm;s2oۿ\VY@{E{kGhnM&ߕǞl @hhx뢢泱pWWW@惷_D^AҗܬnS~&ڞl??ɞ[[[$? $$zz$zz [ɰ8ѦQP/Vʌ;}ƨ[RR??RΙXC}C!X888!=.ͩ`5SVVcJj jJc3jBd}Xllý/111R11ΰ1R?R17KKKe7XK}`- R QQTIs&}Z7TuuBnnR[ƨzz-5-~y5-~~eݎeeTy@poo@{E{{{Gp-Mm˕˴@@hYS볳@Wp@붷S _*uDD}؁쬾ȵySy*ڎ???[[[?[??[$$$$z zz zzQjoogqq##1? R,KZC!!^=Qw5¯3>j9H} R5n1R?R1R1Kdd$Xr/} X7[X-e&Mn~~-[[ez ]R$&-B5~;Tezlem!m555 |Wo@㪪{WWp~nMm[[e;I@)ٳW@@@W۱ ܗ Ҁ***DD0qAA笶Syȧ؁y~u˞ǎl[? ?? $z$$$z$zXzXeOA ;`4e[[HZ.O..ZCC.`5/jgg>£"HH ln~eR11RR1R11XT7 $#e ]ZTQqÌɎ5S?[ee [Ρ]̽Mly5;y;7 7emmQȾ@㪪{@pn~Ǟ?ڞI|@h\iSٳ+W٢뱢묗ҵ**DLsSy5~-~؁+Ҁu&ڎl$z$$[ z$$$$z$$z7lej/x іTK4ezRR1RX RR!T....CC=ͩͩw`B9iABA"X7eel[RR1 RR1R1Re}}}d,zzKe Ιeue7ʘ4~5M[[l&l$[ mZ̊e$lK-TTz z,eeemmT`ys+SW{{@ppgnM??lI|kkh@붷@@@@@۳| _****Dy_5~n~uܗ ҧ**$$[[$zzzz$$74Xi >cgu}ZTQzRz][$ 8OQ.͝͝``wQQyAz7 ?[R]1?m1ݎ R7Muq*$ Ιɰzɨel~¼[my}mm!e1 }m!lTð4;5MQ}Mz &&eeem-~Ľ~ȁS/I볢V\W{@+uǞe/)a @@@|| ҵ*Ny_~MM-~nu*u*$?$z zzzz$Ɏeel!}ʘic#}Z}Ê[Rz? 8ZQ....̺wdZ}9B}zzz 퍎&l111Ύ-T1}lX u?R4 [K}>J[Xle?? [l&l[$uTZlRT֌Tm}7$$mmM;5yyS쳱cV@@@ i nu*˞lllBkkW +ٳY@@@| nn_nּ~_u*n~_˞u[z $$$z$lee/KK}ƨez11zRR1!OQ<<(C.Mݎ?1[ !eK >#RRR [[7l?R? [mTm?]RTXR}MIBM$ ?[?-Qd##ا_5-M--Q;~;-nS5_5~~~~y~nȁ܆SSS~~؀n*Ƶy~MɎ?uPW@W淬 泳ܬ@@@@@x_S__AvDD% _ҁyyܾs~*ڞ?ڞ[$$Шue$$$$$4#/cc*$zzrl[[$ RR[[?R1b.Q...Cԇ!8!b1T;؅u111 lleuʸg*zR?ɰ[?l&&eRR?leelbT 5Suz el``MM n~nM-TQT;_~n~ش-n5yS~~SSySy_~**uSƍ[e@p 2ٿ@җ~AqDF ___g-*?ڞ$uq$ƨeXɎe/2Y2i#z7y z 1?[[[ RR118O<ͮCCCԇԻ]11Kuuuu#[11111導ZÊ*u*[RXlMT R1΍b}lMe&leml?m̚y+>_صmeMQQQMM~5~-~5~5~55_~-uM#u*n_AM$Ihhh g混쳿@@۱ ҁܗAyXDDDZ9_ 5_ȁ5__~*??$q#q7ߨ$ z[e}ýskWc #, `-$z 11R??z1R ?R111Jp۬iu{묾@@@@@|+//%%DD89ׁnn_n_~~~#M*&ǞMƨ&l7l$ z$$$eBs ׅzz 1RR???bR!llelXb 1mݨ[ R11lyj+ #Bʀnǰ[?[l?M#??M7MƎeM~&~-OlZ-TMMu-;-----MMiۿ)\ƞ?l&u|{@@_ys|@뒒@@ +>q0DD0Cnn~555*ŕڞǕ&$Ɏmô&e$$$ߨeߨe$z$zzzXTys|| q-QT;q Ι RRRR [ ?1111111!mM?111?[&-ᗜ+guuygg*[?[?M&R1ez &-5S?R~ėϗ5~&emݦQTTQMQM;n;~̴~gVhxƎ??ڴ2{@|ȁI5ُ2|@S_>zDD%yS_nn~55yy_n*ڞڞ&eml$$$$&$$$$$zzIccjM7X zRR R1RRR?1RR?RRR1111Oæ-qe RR΍??le&mƞ[&~SIII +i #*#i2nnx_[??[[[[&M 1&e&&&?7SM&R?[lyy}mݦæMMTTTMM-~~--Bgᳳhp[?&2kk{뗁-灁_M*뾁2@@۶S Si%DDFȁ_nn~n5555~-M˞ڞ˕ߨlMKlzߨlz$$ɰ>J/AX}zF zRRRRRRR [[ RRR111111Q̦[ M-mMyIsi2x [ǎl?[ɰ?RR?ellleMXə~g[R?R?ڴSB-&mmmme}}mݦMMM--T~~T-~~A2@h z$@W*SS~*_@W ҁF%DDDֽy_~nn___n~nM*le&-&&e[lX$$X`#ijiq RRR1R ? 1RR??R111111R11!;meÌg# zMu*Mu--T-5yľ|@|Ja xxaax+?1R1lmM;5m&&[Rشel[le&mmmmlmm!læm-~،uB/2phW+n$2@p뜁~nun5***SSS/2@@SP=%NDDy_~n~__5_5-MMlڞ˕&&M&e&&&ell&$$ΰM9# H ?R1 RRR R ???111111111111QlB* R?#~؀-mM-M&&MM|@2J泳o  a uzm?111Re;5&uMem&&ƦèleelmM-Mq#BI2@@٬_zucWW+nnnu_S_n**泗g pp Sy%ޛDD0QS_nnn~_~-Qm&MMe&$&}M7$Xzzuq#q7llX RR[ ΰRRR? [b?R111R1111![uq&ڞ?؁ȴǍel?l~5Ss|@@ٱ2x  +*[?[?R1?mQ--euneelBu&ll$$eeƦMmMMM*M/@W@S#jV@W@_unyS_5*&Sn۳a ׇ%DDDͽ5܁_~nn~_55~~~Ш$7}l$4ԎX +>q*XXZKe z[R[X? R 1[ ?11R?11111111111?&&uT;;&M~ئ11mmM5  * R1le1R1lO&M-~ڍ1ΰ&Tyl[&Ũl& lƦMMMMM-+|{@g**&#c@k@Snn***~s~*󵁁쬁ҁ g%D%`ByS܁_nnn--~55~~**ڕ&&&&e$ll7$Ɏ;9i>$ݨݨ&z[[ ɨe R 1RR1R11RR11R11[?&lm~-&111ellm*unVa x + *?[1R[?R111m-&MMBn#&[ɰ1-&ɞǞ&m}&[[[ƴM*;n~y|@@Y/ul&*ŧ@W_n_n*S~**n__+ҁ g+z%DD%%N.g܆S5n-M-nMll&&&$eݨɎQAJx ccJzXeXle7$[[zRzel R z 1RRRR11R11RRR1R?11lô-;-l11&ya axu&11RR1mMMTMMu5M&&1 l&Е?l?l7&MuƴnnA2 S[/V@nnnn___ҁ_*܁__ٳ+ BЫDdS_MMM-uM$$$mƨQT~9Jc@g$ư [[ Rz4[ R Ɏ[RR1111111111R1?1??MTm?1111l1?&u_I M*lRRRR?1m--~5~yM&e?R&e[?l??el&&-BSi眢|@3n#&~@W|nn~n___n~nnܾ_ ٱA0DDDDdBBIS_-&&˕&*uu$K}}}&7M;gcW}[zz [ ? [zR11R1R111??1?l?11?lle*Ȭ@p۱nm[?[?11M~Sy5S[?l[R&&l[?ɞ&eǎlelMuuu#gSᬬ笢2ʵ&e&#jn*Mnn~_ҁ_nn**_܀_뱷܁SALDDDHySnMŕ˕$lM&&Ʀ&l}oVp>*Mlz $7$[[[? zX[ R11?111111?11?111?~|@@ppnmll7??e-M&&?&e[l&l[*mQ-M}-BA痗cc**ƕlڨ&#±@@|ܵMn~~~__n***ꕕ*Ҁa混S¯q0DD%"9ܗ_~nu**ꕕ?&&ee}$Xu# aoaa\\3q#?z z ? [$[RR1111111e1??111111&-ȬY@@@ۢMM-M*uu?1l&*?e&&[eMM-~5`~~S+붷+ ee[e*3W@nMn5_~55**˕nnҷ欬SLDDS܁ҁ5n*uu*ꕕǞeeШ&e}ШɎel!u>o a#q?zzz [ [[[ ??11111111111111?llڎ111111111MB>/V۳~*M-Muu*e1l1&Mn~[ɨ[[?[ڎ&meemM~Byi붷 *eeM@{|5u-n~5~5~**n_SA},%DDDD%FT_yܾSSnun**&&&lK}ee&$$$$zlmMq#cci +TMm[ RR R??[ R ??R1R11111!-~5~&&1?1111mu>混gellM1lm&?*u?????[&&ll-~n~iAҁ _nzzP@{{|5u-5~~M󕕕*u_SS_ܗA5%DDDD%0ý`Sx nel&&&&luuM&$$ɎlZOÊ#Jc ̴?[ zɍ΍RR΍R????΍RRR1111111m5`;~شˍ1M~A+Ae[[[[z[[1?Ş1???11?&l&Шel&MMMu;5_ySS_uMm$$@{{{@뢓--u**u_5n5S+gi4%DD%Ѥy笷__Ǟ˕le&e&##quШ$$77e}݉d3ci}!lz? ??[??΍R?[[[ɰ?R11R11111`;M&1???111m5ᬗg[R?[??R??m&?111~M[emMuM&ǎlle&&;n~__u&eǞ[$*\{{@|灵m*Muuu*******n_S LDDdSn_*˕l&M*&&ô--u[[$$llZ}A44$z? zR ??R1R??[$? R11R1111?????1111m-~_yS nn_uRR ΍1?&&11lڍ?uڍR[ƴ-ǎMM~n-Ml[[[???# cٿ{__*&MM*****굁SSܾ+>DDD%BA ҵڕŕl?ʴ&ôuMT#-$XZ}3> q$zz ?z????΍RR?z? RR11RRR11??11111111lM5__nnn*?R΍???1??l&ƦMmmm˞??1ǨM&ll#~~;~&&* @@_nꕞu*******u****n_җ>y7vDDDDKg*ulˎƴʀMMMMMףq$ee}ߴj>*z ?R ? ?RRRRRR[[R11ɕu*?111111111-y n#*l[RR??11M-M&ll&&ڍ#u[ ?MTè`B~[z$˕g@|Sn***ڕ****m*unnҗP,%DDDDDHry+صn*˕e*M،~_;TMM-5A-uul}K}q*uuz$7[ ??z[ z z ΙRRRR1l?11l&*#**11111111111111Mg*&΍?΍111?e&?11?*u$?[m&l[&-MMl[[$u @ _n***ڞ*ꕕꕕ˕&*___ܬ//%%DDDBSS܁*u*lM-A~QMM-~yȀ&&KÊM; x$z ? [ R [[ z[ R1111[ǎ?R11RQ-uꕞ?11111111111-nڍ[R11111lM-u&[[M&l?[ z[*n W@pn****ڕꕕꕕڕ&M؁ҁܗS‚f%DDD8___ҁ_nu#*MSIJ+A`̦M--BČleTqT-èl/Jɰ$ Rz[$$?RR [$$zz R11RRR??z $e?11l S5n[11SSu~[?11111111l˞[[ΞRlM;l? z[??$*uu#u*uiWS_n*ꕕ˕ڕڞmu~ܾ SB%DދB___ҁu*u#*uM*&Ĝ~QmQ~~ByyuelqKM&llmÅ/o$[l?[zzz[zz[z[z RR $$$ R111111R?mz#[1e; S51?Mܷ~MeǍ[11111111111e[??RQݎ?R$ zzu#pp۬n*u*˕ڞڕڕu-n5S뢶%DDDD%d5،___gnnuuuM*;yyJi~QTT-~~ا#*qMK&}&eeco$lelll7Ɏ$zzzz?1R?[$zR111R111Reeɕ*u[11?mM-T&11111*uڎ[?1R?11?111111eeme[?Ύlee7$z$$pan***ꕕڕڕڕڕ*;5S2JBdDDD%fK____~n~~-~yn ~;~~ʧ&eKݨmmc *&4$$z zzz z RR zz$$$R1RR1R11[[[ #?R11????1111111?MSs5Ml&l[?[1???11111?mme[R1ΰX$zzu#j@W_˕ڕڕڕ˕괧;_2223£Z%DDDD9~؁_~~yy+ gBSȌ-#M-nM-èMmZ22cguƊq$$$zzz$$$z$z Ι z z[Ɏ]1R1R11R?u111???MS5-n[ɰ[111?l?RRΰ#I@_˕ڕ˕ڕڕ˕&M~n52IZ0%DDv9_ySAا~¾IᗾJ¾ -&m،u-;Qme}~|2uX$Xz$$z RRz$1RRRR11[??eư111[11?1?MSySy___*R?u[?1R?R??R??z*#+|{@|܀*ڞڕ˕˕*n~yyܗ3cI`%DDD0;_ȁyy55;-ؗ3붑ȧ#umM~MqMTTmZ;y//j++>>iqݨe$$z$z?RRRR &l]R?ɰ[111R11R΍R??l111111mM11M~_S眾guЕڕ*ueǞ???[ R1Rzqg Jnڞڞڕ˕&ꕕMM5ySS/sDDDD%__ȁnn5᜜볱붶c #MM-MMMMMMlݦQT+4$zzzz RRRR 7lR?$lR?!l111111M&[R1[˞ln___nʵu**nM&**ףj/2nu˞˕˕*uuM******~~y S/3f%%%%%Fd5BAS؀nu-ȆI/汏涶i#u-u׌#&eemÊ~i##$7$z ΙRRRR R[ 1??11RRRRe??&ˎ&&u܁SSnu__اngg gnuףj/c2|2ȵŕ˞ڞڕꕕ*nn-M*-;S5JJ%%D%%"9~+ nMM~¾揶nu*MBMm-m$l}M-- I*uuzXX77 z RRXe7z?R $lRR1?[l11R R#M[1m*úyS痗_ n_ȁ_i>++>i> >P/s2|2|23Ayڞڞڞ*n__nnu;~SyJc/"C%DD%`9_gn~~n-n_A羾i~###--M&&M#ʸ-&M&e&Q;By~#uuX$X4}}Mz$zz z[z 虰$z[ [[R [&MmRRR1&e[R[$Mʧ[&11lmu-́S緷_~؁22s/i~˞˕ڞڕ굵ng_-MM-5`;/s9HDDԖ5B_> S__~M*~+ innul*~5~MMTlleݦ5n #4}};;$ R le[ 11?衰-??1΍e&e??uMMMl1111111111lmm&u_羾y_SS羾c3/Iקq*ˎ?ڞ˕˕󕕕u-n5__uuMu5yȅ~Is333 }D%%bȯSSAuuu_S+/اMl&Mn5#MMMM*le}-IssϜA7eel}M$ }7Ǩq#R 1 ֨?1R΍R Ɏ[[ &&uM1111emu_S痗SySsssSA#$Ǟ?ڞڞڕꕕ*u**nnMMMu;5yy5~~ʌ92332IKDDDD%KBBySS_nnn~gi i gȀ&~--M-&lɰmAs2뒢>$X777XXe$zzzX1zߨ׌R??e~ yTTè?RR1$[$[ &l?11111l&u5Syyy555~uM&[[[[[[?ڞڕ***u-M&uny5~~B933 HDD%XQBȁnnMu_ܗ_؁iS#uu--mM-Mƨelmø uXlz $$z[$$z z[ɨ#R}æmÌش*R[le&$RRR[?111111111M-nnnuM*&&llmm*mˎڎ???[[ R?[??????ڞ˕*****M**m&l&ŴIn~~_yjs3r%DvK_؁__nnn*MngAnnAS uMMu&}lɰƌu#&[ $$$$ z[ R $?11 le;׆y#-~[11[e$[11????11&ml11*m*mel?ll11???ڞڞ˕***&&ƴ;s|_~~ļs3Jj",%%D%DD%ѣB___n-nniggS ا**#nu-uMmeeelXBu>ʸij>~} z [ $ɎǨ11 lؽM#u? ? ?R[[[l[11??1e-e??111&M*&?????????ڞڞڞڕڕ&M-~s|y_5_SIJ/HvD!5_n__~_~-n_ ii+Aصu-~;-uuMMm&$eݨXA~#j/J2yyߨ$ƨezz[ Ɏ7Rlu-e?RRXl[MƖS~e$[R?[[[$eM&?R111?&&l[1???ڞ˕ڞڞ˕ڞڞڞ&-~~5 ss~y IPDD%,Q_55y_nn؀_ AᗾI~n----M&ɨB׸+3c\3iBBاɨ-#[zzz[z$$$$#l}ݎzle3su-71[[$e?RRR1??11?11ڞڕ??ڕڞ˞ڞŵ-~5yIϾSȚSy5y y0DDDFȽ~yySSgnng S+Ͼ܁nu---MMMeTׯjYWY\Y>#Aj׊u~B z[zz[?zle[7&l sAeMR$[$&[[R??11111111?1???ڕ**˞ڍڞڞڞ˕ڞ?u~_ySφ55y皤H%%DD%8~~SSSAny—IȵM----MQM&74APig>2WpW\W/#>i#-z$[ z $* 1liSB#}M]? [[[?[l[RΞl[111Mnu?ڕڞڞ˞˞~y5~SS !%%%DDDD%.`Ľ~؁gSSi⁁nAشu-MM-Ш77I3J>hpW\u⯧&}[ ?[*l $$umM--e[? [[ [$[[???1???111??1΍[˞?m***ڞڕڕڕڞuunSISyyyS Ě֮b%%%DDDD%%`B__n~MungS܁ص-n-Q#ߨ4ÌIj gui>[$ $[ [[l[zzz4[???lM-#?R?&$ǎ&*ˍ?1?Ǟ?Ǟ*?*~n_&˕ڞڕ**u_SyyyyիDDDD%Z _ _ S_#u&m*-~yȵuu--MuQB/@Vcaax>### /A#ƨe&$[ [?[΍[[z#u?[[[[meB~& [[?[u*M~&?[[[˕e??˦~~~M&ڕڞڞ**˞#_I|syyISB}FDD%%__u**M_n*Mu-Muu*ߨe}q9sُY jg##AJA$#[?[[ ?ɕ*&z1l[ll?~;*[?[??s~l--Me?[[?1111ˎ&MM&&ڞ?ڕǞǞڞ***Bij3|SySI5`5Q%%D=y5~~S_#~-MMnnu****󕕕eK9ۿ BiMШ$ ?5ȧe[?[???[zzz[R?zz[ee߅u#ƞɍ[&[R1&-em55-&e&Ǟ11ڦ*Ǟ?ڞڕڞ*Ǟuj_Sy^%%~B5ظ_ȁyy;;TMMMme˕]\pGGWWV+#،Mƨ$[?[##-#u1e??[$[zzl Rmm}Q~T----M??R[?Mle--M&&˞ڞ?11111?ŵˍ˞ڞڞ˞ڞڕڕڕڞڕꕕ*~ISySyyy.8DQAyȁS5;-Meee&dB/Y@W+#q-Tl$$$z?eMBq[ɨul&7?ô-#u*&[??[&M&eڎǞ[1ƞ????&n55nڍeڞ˞ڕڕڕڞڕ*u*ڕ*n_|S_5ĘP X%DDD%CAyyAyyyyyy~&&&lڞellŴYYcVc#ʸBB#ôTMle$[[[Mu$M##ݨ}Me-Mʴ&m?[[[lM[le1?Ǎ???eMu*&MMlڞڕڞڕڞ&*nnŴ~s|S_~yP%D%DDDDNCyyySAAAAAy5;--MƦ&ǎ&lTʽij/u~B~Tq#7[[ [[l$[eÊ~~M&[[[&uڍ?[??*????1???&-~*ڕm&ڞڞڕڕڕڕǕڕmn5yu*uܼIy_Ƚyy9"'DDDDD%,CB5ȁAAyyS ySĚ`;~;-MMuڎllmMTBi>jSMuqqM->uz$z[$l$ ɨƨ7KMdMÅ֣†;*[[Ǟ?[??Ǟ?*ˍ1Ǟl?1&*ڞڞڕڕڞڞڞu~5S___ASS5yII`D%}Q5AAAyy S y`ww----umelmôiSAā~eߨ&ƨ֘/Jq7[zz ze}Ö-TBAB~M&l˞[[[$$[1R?[[ll˞?ڞ?e&&˞????Ǟڞڞڕڕꕕڕ*un5SSAAj5yS FDDD%O`9yS yyy ```;--MM-;;_yyyB~&eeeeuB>s3+$lM}}e4O;T5~~~5BM&˕$??[??Ǟ˞?e&˞?Ǟ[??????ڕڕꕕ*5SSAA+j SSSSI ;Z%D%%D,KB9ASĚ `````;;--~uT~;;~;~-u-T/MШeߨMmæT5佣5Ay~ߕ[$[?[???Mu-u&???????Ǖ˕*u5Ac2 ܾIϼ}F%%DDD%HĤ ````;~~Ʀæô-~;~;~;-uTTT#/IiM}}ÊQQ-̌~5~BاȽ_ȵ[ڕ?R?[[???&M*e?????ڞ?ڕ˕ڕ*uܗic2sX0%DL" P ``~اm~̌~~555MT--q#B-#uuuuuMMMTmM5;M~5~5n-~* [ǕǞ???&?ڎ?ڎǕڞꕕڕ굵nn__AjJc2ۢ2222I"CvDDDD,Cr Ĥy ``BTT`55BqB~BB~#Muu*MM#TQ-ÊMMn~~y~Muyu[z˕??lMƕ&*&&u?ڞڞu****˕*un_g_gn/3ٳ|c3/9DDDDDDDb` PI ``ģB-æ`5`5Ƚȣȣ~yyB׌׸AiȧuMuMe&&&&õ-MMQTM-#MM--5 5-;y/n#uM&Mn*n--M*n_ص**&&&Munꕕ*SA ȁi|뜗s3B}vDDDDDDPPI 5r׌5yȣȯ~95~ M?[ڨ&ee*uMMôT-Ê-uuM*-55-ȼ/ʵ#nu*Mu**M*MuM&Mn*Mu*****M~___gg**g+i볳 AIS ,DDDDDDFC"BI B;ôT-~B5y9ȣB;5~-&l[[MMM*-#qq#uMuMM-MŴ5Aig i> **&*MMMMMle&M*&le&uuuun~__guu*u >Sʧ |ٳ2iyS缆;8DDDDDD7 5׌֧T-;~5ySAףĆy5j¯ʴM[&uuquMuMM&M~ I+ +#*M*&*u~5&e&&le*unn_n~_gnng_ʵ#|+g †Q%%DD ~MMQ--T`~I333I  iاuM[lǞ[[MuM*u#Ŵ&ƌ#i/ji+j+~nMmM55_-*M&&Muunnn_؀~ȁyȽҁ__SSAASSn+@٢+y9։8%%DD 5``~-QMMMQʅ9/3Ai>B#&$***uuM&˨/2붑J 3  j~Mmu~5~-̵n5n؀_ҁ_ASiJ/+SiA|2JjAi¼"X0DDDD0Qr 5~~~~;KKOqs2Y쾜g#u˕eee&&*MuAscJJ i**~n-5~~5__gi i ++i>+s|c/j/IjjIP9K,%%DDDDD%D%f! y555~~-;-qKM-TA/3J32223/Piז##u**$zڞ&uBySiA i > g#*u#Mn--~_~g +ij jJ듓sIPP9K%DDDDDDDDDD^ yy5~;;~q#dMMu-y2YY|2j###u###uǎ-M--~y_B_gBn~j>>j+ qn~#_yy___gS+jjj xJx뢱|s/PP}LDDDDDDNDNP y5֧;;;#uMMM~i/c222J/Ag#uu**ŕЕ$&*M--؁~###~>JJ3gASyAASB i砬cccJ JJ23ss9NDDD,O<`P S y5~5_5n#uMMMM-~BAJccc333J A ʧ##u*&&---MuMu~jcVc+i>i9j+ +/Jj>>/J􃑑cJJc23sssI!fD%D%b P y5~~-MMMMMMT;` PJ3c3J 32VYY2s+u*****$$M*MMMMM&uu؅icVcJJ3ccjJJJJJ/Jj>>j3s3222梱223J33I w!0DDDD'K" 55~`5`~MQ-;`5B>/JJ3c2\@ْ2/####uuuuu##q**uMMMMM#uuu~~3c3VY\Yc2ccc3JijcVV|VV2YY2췾233ss3/BKN%%D%DDDXrP ~`555~;-TM--;`5~B+/J/3cccJAq#q*######u$$*M*-Mu~~#~ʌ VVYY@@YYYYYY2cJjj3VY2|Y|2V||Y||sss쓓3sI 7LDDDDDF'Ѻ``;B;̴-QQQ-֌ JJJJJ/jyiAgqqq$Ŵ-#AgظAJ2VYYYYYYYYYYYY2ccccVVVYVY22333sss33ϼr'%DDDDD0````֌̖TMMQ--~i>Ij/Jj/22||222c3+#*&*uȯAiiAijI/xccYY\٢VY|\YYVVVVY|YVV2V22cc/III//IPrQC!%%%%DDDD0bZr``TTQQT-;-BBiiAJJ3c\YVVc i##uuu*g +/c333 2VYYV2|V||VVVV2ccJIIII/II Q%%DD%DDDD`--Q--;~5Bg j/322222222|2YVx ###g ggg i+>JJJ/I/c3///jjIjjII "LDDDDDDDZQ׌`~~~~;-;~n~n AjJ//j/Js3cVVVcxJgA i>ii>>>J/>i+jȯyi> AiAiS iiy9Z0DDDDDDDDD%%f8!"`;;~~yy5_SIscccccc2223PJcccccJxJJjxx>+>IyiAAiAA⯯yAAAʊ8F%%%DDDDDLN`;~~~~5_~~~~~y+++/222ccV|V22cc>ᾬIϾ/+i+AAyyy"H,N%DL<"""`;;;~~~55~~55~n;n~ʸi>>+JscccccVVVVV22cc////IIIIjP9rwTdNvDDD%0Odd;`;;;֌;`~`~̧Ș¼¼I/ϜJ//JJ3J3/J/i+AAĆ 9B`͇^80%%DDDDDDDD%%%%%%ff!Z}Hd""̌"``;;`PIIIIIIII PII//Ijj˜9>jPABB`;ZCb0%%%%%%%%%DDDDDDD%DD%!CщQ"`򅣚P PPIIPĤ9"HC88'%D%%%DDDDDDDDDDDDDDD%%%f00HHHQw"wrrQQQZCԋ0v0DD%D%DDDDDDDDDD%D%%D%%%ޥf0NF0NF:8^8%%%%%%%%%D%DDDDDDDDDDDDDDD%%%D%D%D%%%%%D%D%D%D%D%%%%DD%DDDDlmarbles-1.0.8/src/gfx/stone/teleport0.bmp0000644000175000017500000001206607206511057015373 00000000000000BM66(   :ƥzӮN>ĞgNrnӯŚYV3дӨѰ(֮ǟβΠ^fA*۶"زt*ƚʥRN}ְҵ6|ھžnjϪ^Y}ŚֶJ:ZJˢΦҮVE. rz:Һɢˠʫ~ҲxEĚ^_̤bg̺ʦپRJոֽRҪjfB/Ζz}řΪɢ̦ZQȞQFŞG3pb^4߱nw–vuĜƚV ʣ~2 B&㸚jjśѪ–>&ܴ޺Ұ˪Ѫǜʣڰήĕ˴v|ÓjrRB;~⾠3ƪ]£ֺήѪѮ>!ÕںΧҲF0习npˢrụfhâzVOj .š"&ǚNBZZbbN:bƞbY~VJ~jnB6뾢|.ֺƦ’ӪC*#6<5+p&KK AA5^OjH#K6`~H6R#ݐ`c`zRm#&cz/ݐӈ65 Rz..AK^rZQBZH)އQ!ȼRފA"t`谵6cAp.?X2jP5^+RR7BzQ^KȆr66zAӎH5K)`H+?Z"K{EEE{"g{~{jRA? ??{+55ȈE~~j#Rrr?7??H m#߳X..u֠E 2Rz t òCWA&K6XEZWu EHKcj` "CCQP).aٴ[щّ#~C* ԶC KP WfĘ~r5KR7tC|W{K^Ф3eS@Ii3 ?#{hVVhԐHr&K&ㆺuNMy>9uUa~+^]Ӿ"~{V"%|;ᕲ!+/X@@--ۨ:33fL{H]##&thh0pAZK&j\gg3q1N'qq9w׺OA?ǫ;Yh|W~аWb@-@@ªar&+C|;4000Cz`P5HLD8@}oqoog X]t"V%;4Y;;?z??\3ࡡG}}:͏Qm߆HHtVhY44V龃PKmr?g3D--$di6]^#r*h;4llllYYǕCK޳..g3:8@-g 2QQ~ +ȸjOY hǫ_^{b @---}b33W`jPK^]XW|ΜYll T%΀zߖ~Eہ}-@Dy{"X6<՞>EAVs l4V*z?M=}G-ʁ=w.߸rzW|%Yl Y;CtQנg}-x{Z?CC|ҽl Ts?ZA<7?Ek(i}ࡡ-۱ّ)AAzVV4 lYC莵-(EX`zzCT %,z縈ZC[xࡡ-gפ`AB?_T T"?Zz.ہ@-G}x[a?z؈C|;Yl TY|z!?WEN>a[x}ࡡ-LE&`صB_4 l|AEƭ.b@---vXr/t|Y YVWj6PROEMkiš-ͭȿ!A萦Yl YÂJQQW @@-}vL\2PP!ݾ|%Yl llTY|"ݼj"{D-@"jYYT l̶z^PR`23wbGG--@ guUXmߚW;4 llYYY|Xz^KHQ2@ࡡ@:Ī.n R˫;YTl hZc^]6ad-D3gLEXK5jCllT4hǀ?)掏͓}ࡡGʔ3\X~#K߃镫;ll lT YhǢ{zӃ+XoooDL~՚#?V 0sY4YYh%{z<ra٪=@@ʡ}@vbg2P`z|%Y4YΫ~ڵjں(qq1N193g\AK"zBY%Բ"Ar#)~f3$-@@g~j+rK~Whh̫?+`~aUugg>MNĉu&AcJV|C{~")KXei@e^ӳWh%_Vh?H5\kyWWyfPKKrjR66{ҀCt7Z^K#؃Ӭ(b셪ё~P瞂CԲCV ~6HݵE ֟u{zZ6#QCC{?烞cQ< R EkgnunU6]]5&WC þ* C5#m&~EXtA5#]?C?zڲ rrQcc5+t~"1٠{2r^555^]"??* Zյ#Atں`66r#^?z؞?"ARR/2Xڳnc#Zյ7rRr#PRrﵐK``" PKAAz..zA6+ K&+/uR6xwlސ.NL+zhm/NIB^ֆ @+FZeڂ3Vbj8m|J>jZzMV}m"b_l`dw~KI6X`\jV^C7v;= b{ *?FDt4]nKOZdm}ro@qg݇PPZeJ&D,7I8Xvx^rap & mol%fHK"^i{F%zUc6XrB2e|KAdv+vWZlNP=$3atQZ:JZeR:ORqzN^~ovA%l|QVF6zy8WjwovE2lVGDJgނiu: ow "yrb|^v.~njx&jF.TYan<rHBgtJBHF}FR_)rqmRh{ Z;E:9YnHHp}}suլ˜6#mu/>R2۲yHnom6J"GNmnQwW=W2R#ۋ2tuwPH=U-JTR?{?UR~A!h޶!m/ꊇC''cJ/mRWWHyR=f{^"􈜲#Q'BhtUow൩tWRum#>㌌WW=gc֜Э ϳ5g g"\.-w'厎7jߌӎu=-Wfr g-H'AU"g6wu""[.?{`V{{``G?}=y>㘌ABʫʐ+KRPwyW.UUNk\ m-ouHWCRKՇ=6wy˶?``ek\[CuQga7v++̷6#P3kV\g5Auyu'䝝SaSmc˩%¦``ͻ¼["5iSS9Sco#y#dI``Ng#mhߔgbKSÄ焷aa=T"`__V"mwuP#̠SSä@R#Aϼ`1I dE.qoPQRՌ̢SSħpٷaɇ꺂yAW(;;zzXN###-KلZ:|@@@KRuۋV``` e1{ FE?.."-y4<Z٠"Ջg"\`zzzz_;``,fCHTmBbpȏȏȏ | UTHuyV`_(;(]O3m>yЂ=S*<ȏ:hh=@ȏȏȏpp9|RCm#2t3V(;zzzzzzz;ѥ2Q65 4pȏȏiߎc܈Wt[`;;_zzzzzzzzzz;eIG3.q垘+@ďȏȏȏYR-3dO(z_zzzzzzz;_es{GQT5a iȏȏȏȏSbBƀ;;zzzzzzzzzzF^ssGӊȏi|&YWWRC"fN`_zzzzzzzzz;(}-U5SSiȏȏȏLBWW {(;zzzzzzzzzzz(F^^hAbpȏȏȏZô+R^F _zzzzzzzzzz_ͻ[-RRՠ|:ȏȏZĮؘ怙q[`;zzzzzzzzzzGt̮ZȏȏȏM:|5^(zzzzzzzzzzz_X{R#PR=|*ZȏȏM*"Ah=t;;zzzzzzzzz;(^NrftWBMȏȏZ49S5t-oUsIs^F_zzzzzzzzzz_;CWBj|ȏȏȏȏ٢{se;;zzzzzzz_z`{3ӎBpMȏȪp ab5>T20.3GNe;zzzzzzzzzz_;`VGQc-R=8|ȏȏҹ+c2ѻ;zzzzzzz;FE}q#mc焄:ȏȏZp* 5g~C0[gEzzzzzzzzzz_;V{ qc#hP#ƣgN?»sId¼#WRY9ηLÄKbg/ӥ3,`ͯͻX¼kթ%-55S9 S"2mPuUտ¦rk3#Png᷷ΔqQ/C!^eD`XfgP˺-RWb++bagPoomr3sUU.WH֋b5CWPPGredVx{.uЈT'=KʫYY+ou-"  Wo懶=uy-t#.\"g ݳrr uuoɿ7A&ʌj22C܇2RWwct=Ɍ嚈C'P#"" {fh=wojh氖QQQ'ՇւۭH'=ޘ=WRRm~/RR?{?RCT~6y~Th!~u坊WyJ-厕U6nN}GgՀJ6ywTW=-umRn~m-J Cu#敺Tlmarbles-1.0.8/src/gfx/stone/teleport2.bmp0000644000175000017500000001206607206511101015363 00000000000000BM66(   ~9rVnk>/]&9|rHj &GmFc2PȢ(}^>OsJ["XA4޶PRf6qN+]*}f^xH$vv~j jN5 *ѪuR~b.VyZj:^.ծjBVrAQnH zL " .xNH fV"r#z^X.JDa6zVna2Z~z{R̦۲fnY&g2pFH rBn_.zJf*Nbjj>g:bvwK7@rsJsFZWn>I2fV~Zn6b*xNb;^d.LT~%~vS¢D{VRjlBzZ"0_2^vrQ"rh6>٦ e0)`s aaa)C4<ܰNo0PuuB>&x0㰳ձc0 x4e(a ;SNs<ܳ#y(' Ĥ(yCNN`s4c!JLZ y&#-c2ce"Rٺ0>CNN9a42 0oyeah '9; R"hЮeoB-Rَ9eaa<<9)&a;a cg("xC:[=6'P0app'g'|'`#&a(9eau cZ[[|#y <"-Z=g'#`xRZMMMMMMMs -;;c6__M 66J|;oB '[|XM6j[=a4>-;u'X/_ 75++kz_jG&&S[jXDXX6 cc2x;u([X _z^Q @@*tb9PS#4'MM[/XX~j:>-s(Z 5{ +UUm{{@e;;;|jDVVVfffggg:`y&Ns6]{%̞ɖ/:bБMXVV6j[s&9=rzmاUUUUwkb;sM/V1q=c`oCy)'rz+mivQ*qs0Gox(MJX/EE6[u)N'J@O]+UUUUUUUUU+m{@p||jMEEEKKKKKTVg" q F +UUUUUUUUUU+؄jZp||gMKKKKKKKKV a4":qtrU+UUUUUUU+nO@W޺`0b[qKKKKKKKf~j9pu"a<[6QnUUUUUUUUUU6'cڲqqڽVKKKKKKKKTfXLM9s+UUUUUUUUUnmH,ɾ`u-Pbq=MLVKKKKKKKKTf=ZȐZ:: k{UUUUUUUUUU++{^wɫ䟐"`u#`6XTKK1VJb;oC#sb<'@mnUUUUUUUUݏO tLN>" B[J61KKKTKTTVrbcea"`oG0sqJ$i m zzﵥCC)u![JMME//JquxÆsЮcbX~A[|4)&G'_zOؒn{7 _;"R2Չ=j6r~DDXJ!|eS;Jd_lt墻J;>4apa6t~j:['GC>BZJ_ Q,,m{]v7*䁩-)>P|ZbtMq[=j[!'<SԎ:tZΩt`#SȺ0|j='c"Cx27zttSPg!bMb|'Z!['R#SPBqӅZb! R)))b!|ߦ2BSSNN dt}qZ2Rx`` [Z|Zg'Zu)y#u!ꚴ ua94&ʈ<|-""R"sܳe>No029aCy 44䶵s`;Ȑac2"#&#9ƕ2sʀyR(u 40y 0c:Rx` a܆PxNB<4s0&>ٸuuP0#&0<)&aaa s`>lmarbles-1.0.8/src/gfx/stone/teleport3.bmp0000644000175000017500000001206607206511112015366 00000000000000BM66(   "*Rzs+BXiWxbY(>R9VvVv ]&:Ox}v;Vrl@bS~w$6F tGnCb"/b3Nfn*9UlPzr?^hp^*B^Xf5QopHnni~NvEfl)zt"2F;Zz][uc^&6Gjm{fQzfk?^~!2Bp]V{Lrs&2^a|U~lOvMrwv|m[ dT~Ins3Nj{~}#mu/FczV_8Rj.Jjp|/F^Jrs;Z~dj [$7J[ Ѧvjj#i[4K#<3<K<{op6{U#4Jv\U26ۻij_`{牊<' vЍP_DD[6d5̸6K}UUd2V"'}pDDU2QЊ-ӑ&XxT"KT d55~o>e'K }?<2j5ζj\̶[6? {\_d'TΞIII8mTjН`c_{ " D⍶jPP7ȗ[Ddd`5e_)̽}<[Vxg󇑪P܊p2Uo~ᘄwTK2Pg_eNI{#'D-_V64ԍ97ևFFX9g5wW:.Ycv'6 K 8CA&Ie?62j5URd?4T[S$M ڨEEܠ}2,YGGG#dQK1}&AN\DTT1}wGOq dxևMLakELJȖ6GOƕ]ZO]OO %h-eήV4eIǁEknmn tNg551РqZBBB] /¬)KSe#&F!!Lrrkf&+?'6 ݐɾB]]HHyyߺ;~%w"#8ttbbgx{'Ko)GG]]y]6U57Ekararrra&#Q }}o ]yHH;GeVK?Ekka!L=kk &9#p1K?_RZ ]OHHߏ澜[J+8Lrrrrrrrra!̒J QаOHH Hy;Ovp6[6޽!araraaa=FEEDѡTT'U)œZ]]HH q/٠V [5MFk0arrrrrrrrrr+x5p-h%HHyB.v#}Ԓ7X&=rrrrrrrLk̶ ԝ\YZZHHHB_S#98karrrrrrrrrr= CܵΝ^>;HO^~jD{d{I9*8rarrrrrrra=F*+ pZ] Hߏ;dDI$!arrrrrrrrrraènҟzeـ.^| HH(Z~U-Ѷ)9ҋarrrrrrrrra!k9VvSeY|H HYUD̒$arrrrrrrrrrr0@mA+ HHy;.ej5)XAk!rrrrrrrrrrrakMN6jDRZHHyBej̶MkarrrrrrrrrrrbI5HHyHG嘞jeCm@u=rrrrrrrrrrraf$XjD^ZHHHy](ݤeMk!arrrrrrrrraéjw£HHy]Z){SvzAkarrrrrrrrrra0$IeUGOHH]qϭI+f=Lrrrrrrrar8*7doO]H Z€p숿ⵚշC k=rrrrrrrrrra0 89[{j:HHHHH]BGRįSo\̒fkarrrrrrr0&7ԖϜHHHHHH]G±\Ԣ'ܤ+rrrrrrrrrrL!ʪ5SޝBHHɯ_oh-QD&EEFk=aaarara!fMg[ ԰/]Z;HHHߏ]]O)ȞiT[v!arrrrrrrr=E8+ՠJS 吜HHH/ejQKT6pvևb =a!akEEx"[GG]Hyy]׾]OGU{6\##&MMarrrraakE7xUK6 eƺyy] 6xtfbb8x:.Z]H/ɐ)pii+EkrrLfF&vS[ DYqB]]]/5555gʲ@nmn $EDzIe-KvU5o>O]׾(B/j6}EFL=kMExd42α)/׾OB;O; /?ԙ D\x+N&Cm}i\̊-~Yqq(ws6KxI+񁁥 E_?[T)Y/)̖?IN&zC87 K4?soQ[jUj?<o~5jQ??22d`U1Kp_D#ԅ 'DD_PD# 'K6޽55\ed'۔ `Ue\#K>²^RR.&&fZZ~~>66NFFnbbzz2..~vvVNNξ~nn"rffRJJҲ&f^^JBBB::bVV:22ƺnn.**ήrrβ&""ªvffB22zffn^^RFFjVVھZJJrbb~~nZZRBBvvF66r^^zz~jjvbbƶҶrrJ>>ZNNVFF^NNvvzrrJ::>22.""bRR2**fVV6..ζ6**~~nnrrڶvv:..ƮB66ޮvvjZZN>>~ffʦ2&&ֺzzF::zzjjNBBnn*""^JJbNNֶʪrZZv^^~~¦zjjƲVJJ¢ƪnVV޾zbbfRRrrʮvvj^^~rr&fd`!!!r&\m$mf]Hmdff`!!]``&\&R$md][6Rd`m{0!]f{&\&$R$&d]!0mmmf`mmR$9 4MIdmmm{fmmmH[HV^9 4@IVfddmm`fmmmr[rHRV^I 7@mr{!!vHEVV?W@WJ HrVVVR`{6Rx<=M4L)-Li! HH VVV?Rf`{6REVEVwM@)-CVH0 TTCXR: -pQlI_IXVXx6r?bRX(-!bVUHxVVVXx\\r?b%w9(B-QK4rVx\GoW5higX6rVV?94(Qp<?<[VV< 4%C#m4w9U7WX4IR#> 4%_M4^E\VE#r=&Guw< RHrE7RPG *%[[Er`IvLM9?6EyVP) 49Xr{Ew#Er(P&AXMGG_lv7[r^V4I4#7MP9w?f\RX4.I4GG)4Mbb?rvw@xGoW(EEx7-wwMM2-WS444WCV!(4@%\\\\EX@wwM@.iMY4@@CCV!XC# !K{MIX@9B*b !BJMr\m`m??X@44(.(Y(J4P47wb\!8C<^bC{#HH$^C7 4iRC#{Pl4XxRHHrRxC77B-BBlJ7P99C#{w^RR-w,gIVU<%RUw==-w4NYFK>W9=VU4M@9w9ww ^M-_QNQv9=@9=^ R#)5D .?VC=b9M4G)5NN~>@%>>2:6.6>::6222.2:6:>:>>26626.*.6..F:>F>BB6:.**:.2:26>662*.:22B::>6:6.2B:>>6>F>>J>B:.6                                                                                                        lmarbles-1.0.8/src/gfx/stone/wall.bmp0000644000175000017500000001004607206511123014402 00000000000000BM&&(`    o^^kZZeTTp__raauddwffjYYzii||Ǹ̽;ònnbQQXIIO@@\MMbSS{jjvv|kkG::n]]gVVaPPhYYtccveeƷοTEExxppŴ±K>>,##xggZKKPAA[LLrr~mmH;;VGGWHHsbbzzyyxx://uuA441((*!!-$$4))6++;00I<<cTTqqq``%gXX_PP^OORCCƵoo"]NN+""&.%%<11ooJ==L??@33l[[D77}}' ssfUUUFF! =22rr2))>335**yhhYJJ#M@@7,,C66m\\tt$E88F99/&&B55ʻij}llPCC9..}}~~8-- ɺȹ0''SDDfWWQDDSGG[KKhWWaRR@55/''@88WIIJ>>ppmmiXXPBB#F<<:22/((8//F;;TFFXKKUGG@44E::900:..H<<OCCJ??NBB@66>22<44=33@77?77C885++]OOPDDTGG6--,$$6,,B77G;;A773)))!!NCCE996..8..hZZVHHF::( 5,,(!!:11D::I>>) $[[\nnpqWp[[]v'\p}UUyp[[\nnpqK^^쁅pYnYXAp[[]]\Z͠[U]ZYYA]WW\KgЍ}Aoӈ[[U]ZYYA]5DD@]ځpU[[U]ZYYA]^y@_Nq[w]UYnn\w^yuNvXA}D*^DMuqn\w,a7aNP5XlM^wvL,,9(MMA}*_uB%|:H/ ,MMWb@M*fwA\]D&|:Hk h?37EMWl+MfwD_,k h?3#WXMM)$ff,,J%9{4/MW]oM)5MwZUUv89>-k#?)WXMMu5Mwe_-k#?&WXof,a,,M,%#S{4hMWZw*MM5vn\U#->RBWZMM5vD_->R&WZZe@M,M-Qi i.#pZeuMm5L.S.P>.#AZB_']Af-,,fek;"2i Mpa_55D_f5AZk;"jS>.SFZZB_5qD_f5yKK*tS>.SFAZ#BDq}YUf5DKKTI i Wo9BL]f5T;I{.9k,ZX#Bw]f5DKKTI{.9k,WAX #An\@fMDELL,T2j k^Wl #-wDfMw\qU-T>>S~$,X #-LwDfMDELL,T>>S~$,WAX? Mq\yfMDLLL,J 22!.aqc? #+vDfv\y(--,J">J,)@\? #vDfMDLLL,J">J,)lo! +y]w@,ELDL,#.Nq! eMWvNL,J>S#Bw! e,ELDL,J>S#,)Coj{y^CMMm,fBLDDP i .]<P~$.6-6SI#J(X]/H~x-NJ-eLDkk&\lX. LD]vDaM-T,LB{q\VPNa%&(+99 .(5K@vwp. C(aM-T,LDJF&E\lp#LDU'fMMJJ:O-,-.4+n_U]yw]]@aO0%q]vMl#BfMMJJ:O-,L,&---bo-LDUWuBaMfPIIO-,7r/M)qDy]'yU]wDqwMMM[Z-BeBaMfPIIO-,)f&8MXZ@y]Uy_f_T"IO- &eb(y]WuW^Uwg.deLCaxeuL__f_T"IO-(##eUU,fI"B T\gmB%r,wy' . GW]ol+M(8Br^^.{2B,'X+L+r_,J> B,^@pp\mxT,".{..kqnmmx5@@.4.B,,D'wWmxT,".B,,D'qMDJ@pAAfJ-JFr>": 4 kvZJMWfJ-Jm":O-B*DyJMWfJ-JFr>":O-B*Dy-pp,6TF~TT34reZc-BLu6Tf5;4;.TT|B-fLy\o-BEu6TF~TT|B-fLy}]]NbnU5dd+f*x))(a(&74k\sNuw_(5M/~kBBB*Doaw_JJrk~kBBB*Dpo[Nev]ln]5CL55LCCeaNGT]sNeKwuMmrx*~r8BB,BZeCwuMmrBBBr8BB,Bn~WnnoY\w@^^vvLCCCm*aa,.$^s~^wwqDfve/{r~~B,xx]8wwqDfNN,rrr~~B,xxLoHTmnoolopq]W^DL5EEEfE_r^ocs;tuvwuMaxxy\vtz . <{| PF(xy}c|Nw]][]exkkkkO~Bxxwb:VWXAYZZ[\]^LL_+`"aDXbc4OadeMffefgh i3 3 R j# k]l`V,fD@yy@DB P9| | % B~xx-B-,(+)CDCE(FGHHHH6I  ? 344@AL()*+,- ./012  344,_g   !!""""#$%&'da  T&Blmarbles-1.0.8/src/gfx/stone/arrow_d.bmp0000644000175000017500000001122607206510746015113 00000000000000BM(   Pz?`?_?`DhKpJoImInInImBd?`eÚWKrPyY…ZXWWTBe<[dÙfÛPyLtS}WƒZ‡YQ{IofÚLsLuUX[ÉZKpJpaÔS~ZMuKqSUÀWÅFlLrríYÉKrGkvôvóLsIohR|OxKpJoiR}R|R}YLjbӓaϑ_ˏ_ΐ_ϐ_ϏW΃S}rbitvsrrnWOwiclrvutj_Бcdoswvb̓aӒmveڙbԔlor\܍cѕubە]Ռcؗ_Ցg՝KqJnaq¬ju_Q|LqLsJoNv?aFkOvQzPxJpQ|}y~^vwxyxz{^qSSS`rstu^hiSSjklmnop]^_SS`abcdefMgQQRSSSTUVWXYYZ[\DEFFGHIJKLMMMNOP?A;<=>7849:234356-./01$%&'()*+, !!" # ?A;<=>7849:234356-./01$%&'()*+, !!" # ?;<=>7849:234356-./01$%&'()*+, !!" # Q|}y~^vwxyxz{^qSSS`rstu^hiSSjklmnop]^_SS`abcdefMgQQRSSSTUVWXYYZ[\DEFFGHIJKLMMMNOP?A;<=>7849:234356-./01$%&'()*+, !!" # =>849:234356-./01$%&'()*+, !!" # ?A;<=>7849:234356-./01$%&'()*+, !!" # Q|}y~^vwxyxz{^qSSS`rstu^hiSSjklmnop]^_SS`abcdefMgQQRSSSTUVWXYYZ[\DEFFGHIJKLMMMNOP?A;<=>7849:234356-./01$%&'()*+, !!" #BC ?A;<=>7849:234356-./01$%&'()*+, !!" # ?@;<=>7849:234356-./01$%&'()*+, !!" # lmarbles-1.0.8/src/gfx/stone/arrow_l.bmp0000644000175000017500000001140207206510764015117 00000000000000BM(   eÚPzidÙ?`R}fÛW?_rR|fÚPyKribaÔLs?`?acR}DhEjYLjvôríSLtPyKpMslcibӓhvóYÉUÀLuS}Y…Jo]pͫLrkãuodltaϑOxLsWÅUWƒZImFlUKpQ{g՝cؗrorv_ˏIoKrS~XZ‡XInKq_Ցbەmsvs_ΐGkFlZ[ÉYWInKq]Ռ\܍vwur_ϐLrMuZWcѕeڙvtrKpQ{JpbԔb̓jTImInaӒn_ϏIoBeBd_БWW΃<[?`@bOwS}R}TXЇAcAcGmAbAbInIoAc@bJpFkDhPzMsWLriVKqTNuMtJpPyOwJoKrKpCe?a?`|h|h|h|h|hp|hp|hp|h|hiz{thiz{thiz{thiz{t|iz{th}~ypiz{t}~ypiz{th}~ypiz{thiz{thqrsfthqrsfthqrsfthqrsft%qrsfthuvwxypqrsftiuvwxypqrsfthuvwxypqrsfthqrsftbcdefghbcdefghbcdefghbcdefgibcdefghjklmnopbcdefgijklmnopbcdefghjklmnopbcdefghbcdefgST0UVWXYST0UVWXYST0UVWXYST0UVWXZST0UVWXY[\<]^_`aST0UVWXZ[\<]^_`aST0UVWXY[\<]^_`aST0UVWXST0UVWXABCC#DEFGHBCC#DEFGIBCC#DEFGABCC#DEFJKBCC#DEFGLMNN*OPQRABCC#DEFJLMNN*OPQRBCC#DEFGLMNN*OPQRABCC#DEFABCC#DEF-./012345./012346./01234-./012378./012349:;<=>?@-./01239:;<=>?@./012349:;<=>?@-./0123-./0123 !"#$% !"#$% !"#$% !"#$& !"#$%'()*+, !"#$'()*+, !"#$%'()*+, !"#$ !"#$%                            lmarbles-1.0.8/src/gfx/stone/arrow_r.bmp0000644000175000017500000001122607206510773015131 00000000000000BM(   ?`<[S}OwBdBeIoW΃W_БImTInJp_Ϗn_ϐaӒWQ{KpKqrjb̓bԔYZMuLrtveڙcѕW[ÉZFlGkruwv\܍]ՌInXZ‡XS~UÀKrIo_ΐsvsmobە_ՑImZWƒULtWÅLsR|Ox_ˏvrocrcؗg՝JnQ|JoY…S}LuKrYÉvóhJoaϑtldbuKqu_KpPySrívôKpbӓilq¬jDheÚYLja?`LsaÔfÛR}c?_PyfÚR|iWr?`dÙR}PziJoLsJpLqNvPxQzOvFk?asssvsssvsssvsssvsssvsssv{{{{{{{{{{{{{{{{{{U{U{U{^U{U{U{^U{U{U{^xUUyz{xUUyz{xUUyz{|^^}~xUUyz{xUUyz{xUUyz{|^^}~xUUyz{xUUyz{UUyz{|^^}~rUUUUssrUUUUssrUUUUsst^^^^uvrUUUUssrUUUUswrUUUUsst^^^^uvrUUUUssrUUUUssUUUUsst^^^^uvefBUUghiefBUUghijfBUUghiklK^^mnoefBUUghiefBUUgpqefBUUghiklK^^mnoefBUUghiefBUUghifBUUghiklK^^mnoQRSTU3VWXQRSTU3VWXYRSTU3VWXZ[\]^;_`abRSTU3VWXQRSTU3VcdQRSTU3VWXZ[\]^;_`aQRSTU3VWXQRSTU3VWXRSTU3VWXZ[\]^;_`a>?@ABCCDE>?@ABCCDF>?@ABCCDFGHIJKLLMNO?@ABCCDF>?@ABCCDP?@ABCCDFGHIJKLLMN>?@ABCCD>?@ABCCDF?@ABCCDFGHIJKLLMN./012345./012345./0123456789:;<=./012345./012345/0123456789:;<=./012345./012345/0123456789:;<= #$%&' #$%&' #$%&'()*+,- #$%&' #$%&'#$%&'()*+,- #$%&' #$%&' #$%&'()*+,-    !"    !"    !"                     lmarbles-1.0.8/src/gfx/stone/arrow_u.bmp0000644000175000017500000001140207206511003015113 00000000000000BM(   OxhIoLsvóvôGkKrWÅYÉríeÚLrFlUÀSfÛKqMuZS~LtKraÔJpKpZ[ÉXULuLsfÚIoInQ{YZ‡WƒS}PydÙ<[BeTWWXZY…PyW?`BdImInImJoKpDh?`?_?`PzFl]UpͫInKqKpLrMsEj?aQ{kã@bg՝_Ցcؗ]Ռbەrucѕ\܍olbԔeڙvmcbaӒb̓vwsodc_Б_ϐjtuvrliOwWnrrsvtirS}W΃_Ϗ_ΐ_ˏaϑbӓYLjR}R|R}i?aCeKpKrLrMsFkAcAbAbAcR}TiDh@bAcT?`JpNuVWPzJpIoInGmXЇJoOwPyMtKq567#;<=>>?@+,-../01234 "#$%%&'()* !    67###+,-../01234 "#$%%&'()* !    rrr{|}~~fffZZqrstuvwxeffy`zhijklmnffop`abcdefffg`[\]W]^_`UVWXYZQRSTOP567###89:;+,-../01234 "#$%%&'()* !    rrr{|}~~fffZZqrstuvwxeffy`zhijklmnffop`abcdefffg`[\]W]^_`UVWXYZQRSTOPFG+,-../01234 "#$%%&'()* !    rrr{|}~~fffZZqrstuvwxeffy`zhijklmnffop`abcdefffg`[\]W]^_`UVWXYZQRSTOPN67###89:;<=>>?@+,-../01234 "#$%%&'()* !    LM56E;FGHIJK>>?@+,-../01234 "#$%%&'()* !    567###89:;<=>>?@+,-../01234 "#$%%&'()* !    CD567###89:;<=>>?@+,-../01234 "#$%%&'()* !    AB567###89:;<=>>?@+,-../01234 "#$%%&'()* !    lmarbles-1.0.8/src/gfx/stone/barrier_lr.bmp0000644000175000017500000000225607206511027015575 00000000000000BM(                                       lmarbles-1.0.8/src/gfx/stone/barrier_ud.bmp0000644000175000017500000000225607206511040015563 00000000000000BM(         lmarbles-1.0.8/src/gfx/title.bmp0000644000175000017500000060206607171614217013456 00000000000000BM66(    + F<_M"+5#`-CI7b_9'B*BImxKMNY !]^Xlb'@mIGorwaa!('X;.>1<AA=K.-QaZU8KXylgXWw:'$+K,U? 93EB"lY#*$ $Z_%6A++ZM-*)1/97NR86G;$3A?SCU[FafG.N 8N7;REBRqSO`U{}WhiZSN[-^m|aGVedbg7NsekuUipp  C0 O4/('#G6)) WG!4*#?9#KO#M=' *31+"4+c\-%-E:-xg/:</NE2 4YV51.6BB8&%977<7Z_b`cqaFHaonbN`ev{ilZdo{~rFQr]Zsyxy}bw %   !"2 <65/T8@+>@ 3!,+.8)##A/2/=:#/!38OChO  ;.! !aG#.$#AA$$$&$$0$--$UN%77&('"'HB(.;)**2+@A,,8E..$...JM/NU/SN0#-16422&520A3[L444?J5?:5GJ5JA66)-6V_8!,8CV9(:90<99?;";US<>J=-,=0D=FB=HN=[Z>/>41>OX?<?ULA!+Bb_CZTD&2D7IDKEDKSDK\E=CF#;FSQG+;G26H.HEAHeZI>;IieJRXJ]WK6DKFIKduL&ALYbM>BO0!!!!!ORRdd11!OO!!OO!!!!!!!!OOO!!!!!!!JJ!!!!!!!RԲ!!!!!"!!J!!!!!OOOO!!OOO!!!!!R"!!!!O!!!!!!!!!OO!!!!!!!!!!S!OOO!!!!OOOOONS/JJJJJJJJJJJJJJJJJJ]OOO!!!!!!!!!!!!!!O!!!O!!!!JJJJJJJJJJJ!!!!!!!J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!R!!!!!!!!!!!OOĠQOOOO!!!""!PS wz{>l21O!!!!OO!!OOOO!!!!!!!OOO!!!!!!J!!!!!!!!!!OS!!!!OOO!!!JJJ!!!!!!!O!!!!OOOOOO!!!!OR!!!!!!!O!!!!!!N"OO!!!!!!!!!!!!O!!OR!!!!OON+Ġ!JJJJJJJJJJJJJJJJJJ'!!!!!!!!!!!!!O!!!!!JJJJJJJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!! OO!!"SRJd wEvg1!!OOO!OOOO!!!!O!!O!!!!!!!!!!!!!!!!!!!!!O!!!!!OOO!!!JJJJJ!!!!!!!!!!!!!!OOO!!!!!!!!!!!!!!!O"NMO!!!!P(NO!O!!!!!!!!O!OO!OR!!!!OOOOPOOJJJJJJJJJJJJJJJJJJJ',O!!!!!!!!!!!!!!O!!!!!!JJJJJJJJJ!JJ!!J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!RO!!!!!!!!!!!!!!!Z"!O``e AAAv`11OOO!O!OOOO!!!!!!!!!!!!!J!!!!!!!!!!!!!!!!O!!!!!!O!!!!!!!!!OOO!!!OOO!!!!!!!!OOO!!!O!!!!RO!!!!!O1!!!"Y!O!!!!!!!!!!!!OO!!O!!!!!!!OOP.!!!O!JJJJJJJJ!JJJJJJJJJJYO!!!!!!!!!!!OOO!O!!!JJJJJJJJJJJ!!!!!!!!!!!!!!!!!!!!!!!!!!ROO!!!!O!O!OZZewwv<Z1O!!OOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!POOO!!J!!O!!!!!!!!!!!!O!!!O!!!!!OOO!!!!!!"O!!!!!!!!OOOOOO!!!!!!!O!!OOJJJJJJJJJJJJJJJJJJJJJJJJ!Z"O!!!!!!!!!!!!OOO!!!!JJJJJJJJJ!J!!!!JJJ!!!!!!!!!!!!!!!!!!!"O!!!!!!O!!1ml AAAgdOOO!OOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!O!!!!!!!!!OO""OROOO!!!!!O!!!!!!!!!!!!!!!!!OOO!!!!!P!O!!!!!!!!!!OSOOOOR!!!!!!Vaۗ!OJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!O!O!!!!JJJJJJ!J!!!JJJ!!!!!!!!!!!!!!!!!!"S!!!!!!gOOO!!JZ1lwwwAAMNR!!!!!!!!!!!!!NN+1!!!!!OOOORR2O!!!""NVM]RRRROOJJJJJJJJJJJJJJJJJJOO!!!!JJJJJJ!!!!!!!!!!!!!!!!!!!!!OOOO!!O!!!!!!OOOSNNO! qwwwmm`2OOOOOOOOO!!!!!!!!!!!!JJ!!!!!!O!OOOOPPPRN!!!!!!!O!OS!OO!OORRRİ0]!N!!!!!MO!"!!/!!!!!!!!OZŘ!!!ĶRRRRROO!JJJJJJJJJJJJJJJJJJJJJJJO"!!!"JJJJJJJJJ!!!!!!!!!!!!!!!!!!!!OOO!OO!!!!!!!!OOSS!g wwwvmgg2İ!O!!!!!!!!!!!JJJJ!!!!!!!OOOOPRR iZOO"O!!!!!!!S!!!!OOOORO>4jN!O!!!!N"!!!!1"SMS!!!!ҩ!!!!!!!O!!!!!!J]ORRR!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJN!!PJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!!!!!!!OOORO!OOOO!!!!!!!!!OOOOOO!!!l wwlggЭOOOOOOOO!!!!!!!!JJJJ!!!!!O!!OOORRRRRRPO1!!!!R"!!!!OO!!]!!!!!OROO/`OOONNM""SUM""NRO!!!!!!!!!!!!OOO!!!!!!OOR!!O!JJJJJJJJJ!JJJJJJJJJJJJJJJJ!!PJJJJJJJJ!!!!!!!!!!!!!!!!!!!!!OOR!OOOOOOO!!!!!!!!!!!OOOO!!!!!!! q wwgg111OOOOO!!!!!!!JJ!!!OOORPRRRN!!!O!!!OO!OR!!!!OOOPRORmҩZNM/YS1Ǽ""!O!"OO!!!!!OOO!!!!!!!!!"O!O!!OO!JJJJJJJJJJJJJJJJJJJJJJJJ!J!JJJJJJJJJJJJJJ!"!!!!!!!!!!!!!!!!!!!!O!OOOOOOOO!!!!!!!O!!!!O!!!!O!!!!gAAAwlggmgOOOOOOOOORR!!!!!!J!!!!O!!OORRRRORNO!!!!!!!!NN!!"O!RP!!!!!!!OORR1OO!!/,MOOO!S(NN"OO!!!OOOO!O!!!!!!!!"!!!!!!!!!!JJJJJJJJJJNJJJJJJJJJJJJJ"!!JJJJJJJJJJJ!!!O!!!!!!!!!!!!!!!!!!!OOOOOOOO!!!!!!!!!!!!!!!!!!nvvvw lggggOO!OOOOOO!!!!JJJJJJJ!!!O!!!OPRROORRU!!!!!!!+OOPO!!O!!!!RROOROO!!!!!!ONM""/Ǯ(O!!OOOOO!!!!!!!!OR$P!!!!!!"!!!!!!JJJJJJJJJJJJJJ!JJJJJJJJJJJJJJJJJJJJJ!!!!OJJJJJJJJJJJJJJJJJ!!!J!J!!!!!!!!!!!!!!!!!!!!!OOOOOO!!!!!!!!OR!!!!!!!!!eĤOOO!J!!O!!!!!!!!OO!!!!!!!!OOOOOOOO!!J!!!S!!!!!!!!!!!!!!!!!!OOOORw!!JJ!R!!!!!!!!!!!!!ORRO!!OORS"!!O!!!!!O!!Rlj!M!!!!OO!N"!!"!OO!!;;nn]]R!J!O!!!O!!!!JJJJ!!!!OO!!!!!!!!OO!!OO!!!!!JJ!!!!!!OOO ]ϯOOOO!JJ!!!!!!!!!O!!!!!!!!!O!O!!!!OOOOOOO!!!!!OP!!!!!!!!!!!!!!!!OOOOORROR!!!!!ROO!!!!!!!!!ORRO!!OOO"OORRO!!OO!!NRSO!!!O!!"SP!!OO!!j;1]RRR!!!O!!!!!!!JJJ!!!!!!O!!!!!!!P"O!!!!!!!JJJ!!!!!OOŚOOOOOOO!JJJ!!!!!!!!!!!!OO!!ORN""!!N!!O!!OOOOOOOOO!!!!J!!P!!!!!!!!!!!!!!!OOOOROO!!!J!!J!OOO!!!!!!!!!OOR!O!ORONUSNO!!!!O"R`O!!!O!!!O!OO!Omy]RO!!!!O!!!!!!!!JJJJ!!!!!!!O!!O!"N"!!!!OPRRO!O!!JJ!!!!!OROOOOOOO!JJJJ!O!!!!OOO!O"PNOO!OOOOOOORSSOOOO!JJ!!!P!!!!!!!!!!!!!!!OOOOP{N!!!!JJ!!!!!JJ!OO!!!!!!!!!!OOOO!!O!OOS2``SN!!"!!!!!SUźO!!!!!!!!SNN"OOOO!;;1RRRRO!!!O!!!!OO!!!!J!OO!!!!S!!!ROOOOOO"O!!JJ!!!!OSS`OOOOONRO!!J!!OO!OOS"OOOONR!POOORRRSIJOOOOO!!!!!!!!!!!!!!!!!!OOOOOOORRR@Z!!!!!!!!!!!!!!OO!JJ!"!OO!!!!!!!!OOO!!!O!SPOO$֍!!!!!ZS!!!O!!!!!İOO1dn;;d1RRROO!J!!O!!OOM!!!!!!!!ǰ!!!!!!!!!ROO!"!!JJJ!!!!İVeaOOOOSO!!!!RO!P1ZSSOO!OSSNMMSSRPݫOOOO!!!!S!!!!!!!!!!!!!OOOOOORRSR@Z!!!!!!!!!!!!!!!JJSOOOO!!!!!!!!O+SOOO!!!SPOOSPP+Ǎ!"!R!!!!!!!!O!!!!!J!!!!!PZdn<ċ!!!!!!!!!!OOOZVSOOOOSSRROaOOOO!!J!!O!OOOOPR!!!JS2ZZZ`` N"ZR!!!!!!!OOO!O!!!JJ!!(]OŲSO!!!+`O!!!,!!!!Z^M!OOOOO!!!8!!P!!!!!!!!gl www <<𫋋!!!!!!!!!!!!ROO""S!!RRROOO!!!!!]O!!O!!O!!!!!!OOOOOJJJJ!!!]O!!!OǚOOOם!JJ!OO!!!!!!!OOOOS3ƤOOOOPSRROOOlOOOOO!!!!J!!OOOOOO!!!!!mmg^`eSe!!O!!!O!O!!!!NO!!O!!ٰR/R^кSO!!КRĺOO!!!wҍ!!!!O!e̝J!!OOOOO!!!u"!SUO!!!!!!!!P ww nЩ!!!!!!!!!!S!!!!]SROO!OOOO!!!!!!!"UP!!!!!O!!!!!!N!!O!!JJJJJJO!"PZ!!OOJ6!OOO!!!!!!OOOORZ/1ZYdOOOOSSSZS[ĺRRRROOOٲOOOOO!!!!!!!OOSSO!!!!d1`e`m۴2U!!!N!O!!!!!NO!!JJjS11O!!SO!b!mv"!!!!O!!!!!!!V12SROOO!"!Sll EEzw mgd]!!!!!!!!O"O!!!!!]RRONOOOOOO!!!!՚!!!O!O!!!!SO!!JJJJJ!!S`"!!O("!O!!!!!OOOOR2`2]!]̚OOOS+ǫROZROOOOOOO!!!OORZZZS!!!O̺e1122ZZZ`SΚ!!R!SN""Z"JJ!O!OOOR]]51RO!ROOOOOOO!!!!!OU!!!!!OO!!!!]MݰZSRO"O!RVl EEzw l1!!!!!!!!!O!!!!!ROO!OOOOOOO!!!!!!!!!O!!!!!O!!J](2S!!RZJ2UOOO!!!!!!OO1!gSOO!!ORRP`OOOOOO!!!!!!!!!!!OPieeNO!!!!12вZZ2`OZ򚋍!!PNN(N]R!!ZORSO!!ROOO!!!!!!gmN!!!!!O!!!!!!`j`ZZZSSROSn EEw llgd1!!!!!!!!R!!!!!!RROOOOO!!!!!O!!!OO!!!!!!N!!J""!N\2!]ƞ"OOO!!!!!!!OOO!!g^S!!!OO!OSRRSOOe"""OOO!!!!!"OOl eU!!!!!gZZDZZ1`R!!Қ!OSRSZO!!O!OŭOORR^OO!!!OOOO!!!!!O!djZ!!!!!RO!!!!!!!ʰ21ĺZZS2!dg EEEz gjdd1O!!!!!O"!!!!!OZRROOOROOOOOO!!!!!!!O"O!!!!!!!!!!!!!JJSNNRNMS"N+O!!Z`P!O"OOOO!!!!!!!!!O!ZZZO!!!!!!OOOОOOÚROOO!!!!!!!!`R!ml gU!!!1ĞRS1RSSO!!!V!!O!=!!!!!J"!!!!OOOOOe !OOO!!ROO!!!O!!!!!!!OOOO!!!!!1Zְ!!dEEEz lźgdR!!!!!ON!!!!!!!!!!ZRO!OOOO!!!!!!!!OOOO!!!!!!!!SO!!!!V"OR1`ĥ!!!`֫!!R"ROOO!!!!!!!!P!]1O!!!!!O!OO!OROO6!OO!!!!!!!ggO!!!1`!!RZM!!l""OOOOsO!!!!JJ"!!!!OOŚOOORRmOOO!RRRSOO!!OO!!!!!O!!!!!!O12S!n wwwwEEzz llg1ggЫ!!!!!!!!!!!!!!RROOOOO!!!!!!!O!!!!!!!!!!!OR!!XJS]ROҩ5!!!!`!!"!!OSSSOOO!!!!!!!OO!!!!!!!!OŲ!!!OOO!!!!!!!īOOR!!!mZ2!!!S]`!!!!O"ՍOOOOPZO"SO!!!JJ!!!!ORgORRR2Ş!OOO!RR1!!!OOOO!!!!!!RO!!!!!!!!O"n;yvwwwwEEzzqlld1d]O!!!!!PP!!!!!!!!!RROOOOO!!!!!!!!O!!!!!!OO!!!!!!!!!O"!OO!!F`J,!!!O!!!!OOROOS1SO!!!!!!!!!OO!OO!!!!!!!OOZ!!OO!!!OOOO!!!Oźg!!!ZPOOOO""!!"SRO!!!!J"!!!!!OgROORRd!!!!!!!RO!!!!!OOOOO!!!!!!!OO!!!!!!]Sd!!OOO!!P!!!!!!!!!!!!!OS]ROOO!!!!O!!!!!R 2!!ddl ll <`źJ!OO!!!!!!!JJJ!ROO!!!!!O!O"!ORORPROOO!!!!!!!!!!JJJJJJJJNS!!$!JJJ!!M;հSMRJ!!!!g隐!!!!!kZ!N!!OZm͝ROSRO!!!!!!!!!!!OO!!!JJ!!OOOOO!!!!!!!!!!!OS S"!!!1!!!"R!!!SP"]O!!OO!!!!!!Ov 2!!dlll {32JJ!OJ!!"JJJ!!!!NO!!!!2Zj!!"!!!O"!O!!O!!!!!!!!!!!!!+J!!ٺ`!!O+]2N!!!!OO!!!!!!ROO!!v<^1]!"NSղ"RRR`ʼnOOJJJJJJJJ!OJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!OOOOOOO!O!!!!!!!!!!!!!!!!!O!!OOPgddZdOOO!!!!!!!!!O!!P!J!!!!OOOOOOOOO!!!!!!!!O!!!!!O!!OOOOOO!!!!!!!!O!!!!!JJJJJJJJJJJJ!!!!!l1ROOO!!Ol+"P NZ`1Z!JJJJJJJJJNJJS!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!O!OOOOO!!!O!!!!!O!!!!!!!!!OOOORmdZdd!!!!!!!!!!!!!!!!"!J!!!OOOOOO!!!!!!!!!!O!!!O!OOOOOOOOOOOO!!!!!!!!!OO!!!!JJJJJJJJJJ!!!!!!!!!jRO!!!! ]!"/]Ѳ ] p!]JJJJJJJJJ!!JJJJRJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!OOOOOOOO!O!!O!!!!!!!!!!!!!!!OOOO1ggdddO!!!O!!!!!!!!!!JJJ!!!!OOOOOO!!!!!!!O!!!!!!!!!OOOOOOOOO!!!!!!!!!!!!JJ!!!!!!!!!11RO!!!!!!!Q(NS9!"O!OSNJJJJJJJJJJJJJJ!PRJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!OOOOOOO!!!!!!!!!!!!!!!!!!!!!OOPdmgdddO!!!O!!!!!!!!!!O"O!!J!!!O!!OOOOO!!!!!!!!!!!!!!O!OOOO!!!O!O!!!!!!!!O!!!!JJJJ!JJ!!!!!!!!!!OSOO!M]!!V!O!!!!2JJJJJJJJJJ!J'J!RJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!OOOOOOOOO!!NO!!!!!!!!!!!!!OOOdmgmd1d1!!!!!!!!!!O!O!!!!!!!!!OOO!!!!!!!!O!!!!!!!!!!O!OO!OOO!!O!!!O!!O!O!!!!!!!JJJJJJJJ!OOO!!!O11O!!J!!@!O!!!!!!ʗJJJJJJJ!OJJJRJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!OOOOOOOOOOOOO!O!!!!!!!!!!!!!!OOOZg1Z1O!!!!!!!!!!OOOO!!!!!!!J!!!!!!!OOOOOOOO!!!!!!!!!!!!!!!!!!!OOOOOO!!!!O!OO!!O!!!!!JJJJJJJ!OROOOOOZO!!!!O!"]^T!!RJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!OOOOOOOOOOOOO!O!!O!!!!!!!!!!!!!!!!!OO+1ggO!!!!!!!!!!OOOOOOOO!!!!!!!!J!!!!!!!OOOOOO!!!!!!!!!O!!!!!!!!!!!!!OOOOOO!!!!!!!!!!!O!!!!!!JJJJJJJJJJJJJ!ORROOOgd!!!!H"J!UNORM!]x>!!UJJ!O!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!OOOOOOOOOOO!!!!!!!!!!!!!!!!!!!OO!OZgemg1!!!!O!!!OOOOOOOOOOOOO!!!!!!!!!!!!!OOOOO!!!!!!!!!!!!!!!!!!!!!!!OO!OOO!!O!!!!!!!!!!!!!!O!!!!JJJJJJJJJJJJJJJJRRRROOO1SO!!"禞SOJMZSPN!OY OSʼnJJJJJOO!JJJJJJJ!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!OOOOOOOOOOOOOOO!!!!!!!!!!!!!!!!!!!!!!!gg1!!O!!OOOOOOOOO!!!!!!!!!!!!!!!OOOO!!!!!!!!!!!!!!!!!!!!!!!!O!O!!!!!!!!!!!!!!!!!!!!OJJJJJJJJJJJJ!R1RRROOOUO!!O+J2Y""ZR!OP!P$!JJJJJJJJJO!!JJJJJJ!J!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!O!OOOOOOOOOOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!O!Olmg1OOO!OOOO!OOO!!!!!!!!!!!!!!!OOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJJ!ROOO!OOǥ"P!PY!!ON2O""V!!!JJ!!!JJJJJ!JJOJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!OOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OOng]OO!OOOOOOOO!OOO!!!!OOO!!!!!!!!!OO!OOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJJ!!OROOOOOOOOP"NO!N!!O!O"OOP!!!PJ!!!!JJJJJJJ!JJ!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!OOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OOd1dgdROOOOOOOOOOOO!O!!!OOOOO!!!!!!!!O!OOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJ!OORRROOOOOOSO!!MM!!!!",!"O2NSN"SeJ!!JJJJJJJJJ!OJJ!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!O!OOO!OOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!dggЫ/ROOOOOOOO!OOO!O!O!!OOO!!!!!!!!OOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJ!ORRRROOOOOOO"!!M"O!!!!!!!!!SZ!!!"PN"Z"NP2JJ!!!JJJJJJJ!OJJ!"JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!OO!!!OO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OZd1ROOOOOO!!!OOOOOOOO!O!OO!!!!!!!!!!!!!OOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJORRROOOOOZZiNOOOO!PSS!O!OOOOO++OҍJJ!!JJJJ!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!ZZg1RRRROO!!!O!OOO!O!!!!!!!!!!!OOO!!!!!!!!OOOOO!OOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJORRRROOOOOO!OİlvviVOOOR!!!!OOOOO!O!JJ!JJJJJJJ!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!OO!!!!!!ZZZRROOO!!!!!O!!OO!!!!!!!!!!!!!!OOOO!!!!!OOOOOOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJORRRROOOPOOOOdjlSRSOO!!!!OOO!!!!!!!!O!JJ!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!O!!!!"OO!!!!!!!!!!!!!!!!!!!!!!!!!!!!ZZeŲROOO!!!!O!!!OO!!!!!!!!!!!!!!!OOO!!!OOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJ!ORRRRRROOOOOOOOO!O11m@@VPOO!!R!!!!OO!!!!!!!!!!!JJJJJJJJJ!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!S1ZdRO!!O!!!!!O!!!!!!!!!!!!!!!!!!!!OO!!OOOOOOOOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJ!RRROOOOO"S!!!OO!!!!!!!Z]ȶOO!!!O!R!!!!!!!!!!!!!!!JJJ!JJJJJJ!!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!OP11dd1R!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OOOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJ!!RROOOOO!!!!O!!!!!!R25ĩO!!S""SNM!!!!!!!!"!J!JJJJJJ!!!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!JJJJ!!!!!!!!!!!!!!!!!!!!!!!!O!!!11d1]R!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OOO!OO!OOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!JJJJJJJJJ!ROOOO˗!!!!O!!!!!!!ĚROOOOOO!!!!+`!!!!!O!!JJ!JJJJO!!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!!!!!!!!O]1d11]RO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OOOO!OOOOOOOOO!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OJJJJJJ!OOO!!!!!!!!!!!1RROOOO!!!!!OS!!!!!!RP!!OJ!!JJJJJJJ!!J!JJJJJJJ!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!!!1d111R!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!OO!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJ!OOO^v@!!!!!!!!!!!`O!!!!!!!O!!1!!!!!!!!"O!OOY!"!!!!JJJJJJJJJJ!O"JJ!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!!!O1Zd1O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!JJJJJJJJ!ORORVeq!!!!!!!!1!!!!!!!!!!!O!Mȯ!!!!ONO!O!!!!JJJJJJJJJRON"!!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!O!O1dg1O!!!!!!!!O!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!O!!!!O!!!!!!!JJJJJJJ!OORROORSlw "!!!!!!!O!!!l!!!!O!!!!!!!!!!2!!!"MY!!!OPJO!!!!!!!JJJJJJJJN"O!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!O21dg11RO!!!!!!!!O!!O!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!O!!!!!OOO!!!!!JJJJ!!OOZl w 1!!!!!!""!!!!!!!!!!!!!!!!!!Nȶ!!!PJOO!!!!!!!JJJJJJRЭ]1SS"""JJJJJJJJJJNJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!PS1Z2111R!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!O!!!!!O!O!O!!!OJJJJJJJ!OOOOOOOjO!O!!!!!!!쫈!J!!!!""NO!!!!!!!S!!!!!!!!!!!!JR!!!!!!!!!!JJJJJSZU11SSJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!,!!!!!!ORZd1g11R!!!O!!!!OO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!O!O!!OO!!!!!!JJJJJJJ!!!!O!OOOOOOOj2ĶO"N"!!NNO!!!!!J!!"OO!!!!!!/N!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJ11gպ]RJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!"1Zdj11RO!!!!O!OOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!O!O!OOOOOOO!!!!!!!!JJJJJJJJJ!!!!!!!!OO+RO"S!VNN"!!SZgO!J!M!ROO!!!!!!!!!!N!!!!!"""O!!O!!!OO!!!JJJJJ1īY1R!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!SdZZdjd11RO!!OOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OO!!OOOOOO!!!!!!!!!JJJJJJ!!!!!!!!!!!OOOOOOOPe2"O`2NPOZO!J!!!PO!!!!!!!!!!!S!!N!!!!!!!OO!JJJJJJ+!SROJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!JJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!PZdggddZ1RRO!!OOROO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OO!O!O!OOOO!!!!!!!!!JJJJJJ!!!!!OOOOOOOOOO!!!O2+֐1RJOOO!O!OO!O""!!!!MMNg1!!!!!!!!!!!O!!JJJ!OJJJJJRO!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!OSggg11ROOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!OOO!!!!!!!!JJJJJJ!!!!OOOOOOOO!!!!!OPOOٲZOPOOOO!O!NNNNP!S````!!!!!!!!!!Y!JJJJJJJJ!O!JJJJJJJ!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!SZg ndgZZROOOOOOOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OO!!!!!!!!!!JJJJJJ!!!!OOOOOO!!!!OS!!S!```O!!OOO!!!V!!Se!!!!!!!!!!JJJJJJJJOO!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!!vAgd11ROOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OO!OOO!!!!!!!!!!!JJJJJJJ!!!!!!OOO!!!!!S!"Ziಚ!!!OOOOO1mЗ!!JJZ"!!!!!!!!!JJJJJ!!!JJJJO!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!Ogw g̰O!!!!!O!OOOOOOO!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OO!!O!!!!!!!!!!!JJJJJJJJJ!!!!!OOOO!+1VSwS!!OO!!ORSŰ!!!Jmj.!!!!!!!!!!JJJ!OOO!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!O1XU9!5ү]R5S2O!!JJJJJJ]1O!!!J!!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!Z<m<2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!O!O!!!O!!!!!!!!!!!OO!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!JJJJJJJJJJJ!!SO!Y!!!O!!!!RNO!!!JJO!!!!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!1jnರO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OOOO!O!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJ!!!!RRO""!O!!!OOūO!!JJJJJJJJJ!O!!!!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!O11dnggī!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!O!!!!!!!!!!!OO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJ!!!!RPJTMTN!!OR2RROO!!!!!JJJJJJ!OOO!!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!J!!!!!!OddgggŰR!!!!!!!!!!!!!!!!!!!!!!!!!!!OOOOO!O!!!!!!!O!O!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!JJJJJJJJJJJJJJ!!O!OJJ>8NS!O]OO!O!!!JJJJJJJ!!OO!!!!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!dggū!!!!!!!!!!!!!!!!!!!!!!OOO!!!!!!!O!!O!!!!!!O!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJO!!!!!!!!!"J,r!Y!!1RRRO!!!!!JJJ!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!Oggge2!!!!!!!!!!!!!OOO!!!!!!!O!!O!O!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJO!!!J!!!!!!!!J5!ORZZ1RRROOO!!!JJJ!JJ!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!PSSg`gee1R!!!!!!!J!!!!!!OOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJOO!!!!!!!!!!!!"!OSֲRO!!!!JJJJ!!!!!!!J!!!!!!!!!!!!!!!!JJJJJJJOJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!SlgO!!!!!!!!!!!OO!!!O!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJ!!!!!!!!!!!!!"!!!JJ!1ZRRO!!JJJ!!!!!!!!!!JJ!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!!P`ee1Z!!!!JJ!!!!OO!!O!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!JJJJJJ!!!!!!!!!!!!!!!!!$Z!!!JZOOO!!JJJJ!!!OOO!!!!!!!J!!!!!!!!!!!!!!!!!!!!!!!JJ!!!JJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!!!OR1l հ1O!!!J!!!!!!OOOOO!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!JJJJ!!!O!O!!!!!!!!!!!!!S]!!!!!!1djRRRO!!!!JJJJJJ!!!!!!"OO!!!!!!!!!J!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJJJJJJJJ!JJJJJ!!!!!!!!!!!O!!!!1l g1]RO!J!!!!OOO!!!O!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!JJJJJJJ!!O!!!!!!!!!!!!OSNO!!!!!!!!!!1ZRRRO!!!!JJJJJJJJ!!!!!!!!!!J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJJJJ!JJJJJ!!!!!!!!!!!!!!!!!1gg1O!!!JJJJJJJJ!!!OOOO!OOOOO!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!JJJJJJ!OO!!!!!!!!!!!!!!"NZROO!!!!!!!!!!!!!!ŞZROOO!!!JJJJJJJ!$!!!!!!!!JJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!OOO!!!O1djmd]O!!JJJJJJJJJJJ!OOOO!O!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJ!!!!!!!!!!!!!!!!!OOOOOOO!O!!!!!!!!`ZZO!!!JJJJJ!!!O"!!!!O!!!!!OOOOO!O!!!!O!!!!!!!!!!!!!!!!!OOO!!!JJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!"PP!!!!!!11d]O!JJJJJJJJJJJJJJJJ!!!!!!!O!!!O!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!JJJJJJJJ!!!!!!!!!!!!!OOOOOOOO!!!!!!!!ZROOOO!!JJJJJJJJ!!!!!!!!"O!O!!!!O!OOOOOOO!!!!OO"!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJJJJJJ!!!!!PPPO!!!!!1dd11R!!JJJJJJJJJJJJJJJ!!!!!!O!!O!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJ!!!!!!!!!!!!!!O!OOOOOOOOOOOO!!!!!!!!!!!!!!mmdROO!!!!JJJJJ!!!!!!!!!!!!!!!!!OOOOOOOO!!!!O!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJJJJJJJJ!!!!PPPPO!!!!!O111R!!JJJJJJJJJJJJJJJ!!!!O!O!OO!O!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJ!!!!!!!!!!!!!!!OO!2OOOOOOOO!!!O!!!!!!!!dgSROO!!JJJ!!!!!!!!!OR!!!!!!!!!!!!OOOO!!!!!O!!!!!!OO!!!!!!JJJJJJJJJJJJJJJJJJJJJJJJJ!!!PPPO!!!!!O1dndddd1OO!JJJJJJJJJJJJJJJJJJJJ!!!OO!OOOOO!!!!OOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJ!!!!!!!!!!!!OO!!!PPOOO!O!!!!!!!!!!!11O!!JJJJJJJJ!!!!!!!!!OOOOO"!JJ!!!!!!!OOO!!!!!!!!!!OO!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!PPP!!!!!!!O;;ff]!JJJJJJJJJJJJ!!!!OO!OO!OOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJ!!!!!!!!!OO!!OO!!!NOOOOO!!!!!!!!!!!!!O!!!JJJJJJJ!!!!!!!!!!OOOROO!PO!!JJ!!!!!!!!!!!!!!!!!!!!OO!!!!J!!!!!!JJJ'JJJJJJJJJJJJ!!!!"P!!!!!!!!!!!!1d]//!JJJJJJJJJJJJJJJJJJJ!!!!!OOO!O!OOO!"!!!!!!!!!!!!!!!!!!!O!!!!!!!!!!!!!JJJ!!!!OOO!!O!!!!POOOO!OO!!!!!!!!!!!!!!!OOO!!!!!JJJJJJ!!!!!!!OOOORROOO!!JJJJ!!!!!!!!OO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJ!!!"O!!!!!!!!!!!!1n]RJJJJJJJJJJJJJJJJJ!!!!OO!OOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!JJJ!!!OOOO!!!!!!O!!SROOOOOO!OOOO!!!!!!!!!!!!!ORdROO!!!JJJJJJ!!!!!OOO!J!!!!!!OR!!!!!!!!!!!OO!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJJJJ!!OO!!!!!!!!!!!!1d]!JJJJJJJJJJJJJJJJJJJ!!!!!!O!!!OOOOOO!!!!!!!!!!!!O!!!!!!!!!!!!!!!JJ!!!!!!!!!OO!!!!OSRRRRROOOOOOO!OOO!OO!!!!!!"O1ūOOOO!!JJJJJJJ!!!!!!OOPROO!!!!!!!'!!!!!!R!!!!!!!!!!OOOO!!!!!!!!!!!!!!!!!J!JJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!!!gm𭫞O!JJJJJJJJJJJJJ!!!!!!!OOOOO!!O!!!!O!O!!!!!!!!!!!!!!!!!!!!!!!!JJJJJ!!!!!!!!!!!!!!!RRRRROOOOOO!OO!!!!!!OOR1RRO!!!!JJJJJJJJJJ!!!!!!!ORPOOOO!!!!!JJ!!!!!O!!!!!!!!!!!OO!!!!!!!!!!!!!!!!!!!!!!!!OOJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!!!!RgmjdвO!JJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!!OOOO!O!OO!OO!!!O!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJ!!!!!!!!!!!!!!!!!!!RRRRRRROOOOOO!!!!!!OORR]OOO!!!!!JJJ!!!!!OOOOOO!!!!!!!!JJJ!!!!P!!!!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!!!m1]11!JJJJJJJJJJJJ!!!!!!OO!!O!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJ!!!!!!!!!!!!!!!!!!!PRRRRRROOOOOOO!!!!OORROOO!!!!!!JJJJ!!OOOOROO!!!!!!JJ!!!!!!NOOO!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!S1]11]JJJJJJJJJJJ!!!!!!!O!!OO!!!!!!!O!!!!!!!!!!!!!!!!!!!JJJJ!!JJJJ!!!!!!!!!!!!!!!!!RRRROOOOO!!!!!OOOORSR!OO!OO!!!!!JJJ!!OOO!!!!JJJ!!!!O!O!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!!!!gZd1OOJJ!!!!!!OOOOOO!!!!!!!!O!O!!!!!!!!!!!!!!!!!!!!!!!!JJJJJ!!JJJJ!!!!!!!!!!!!!!!!RRROOOOOO!O!OOOO!OO!!!!!!J!OROOROO!!!!!!!PO"O!OOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJJJJJJJ!!!!!!!!!!!!!!!!!SZZ1d]O!!JJJJ!!!!!!!!!OOOOO!!!!!!!OO!!!!!!!!!!!!!!!!!!!!!!!!!JJ!!JJ!!!!!!!!!!!!!RRRROOOO!!!!O!OOOOOOO!!!!!!J!ORROOORRROOOO!!!!!"!JJ!!!!ROOROOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!!JJJJJJJ!!!!!!!!!!!!!!!!!PZ`ZdJ!!!!!!!OO!OOOOOOO!O!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!JJ!""JJJ!!!!!!!!SORRRRRROOOOOOOOOOOSOO!!!!!!!!!!JJ!RRORROOO!!!!!!!!!!!!OOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!O!!OO!!OO!!!!!!!!JJJJJJJJJJJJJ!!!!!!!!!!!!!!!!!PSźdd1!J!!!!!!OOOOOOOOO!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJ!JJJJ!JOOOOOOOOOOOOOOOOO!!O!!!!!!!!!OOOOOOOO!!!!!!!!!PJJJJ!!!!!!!OOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OOOOO!!!!!!!!!!!JJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!SdZZggd]O!J!!!!!!OOO!!!!O!!OO!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJJJJgOJJOOOOOOOOOOOOOOOOOOOROOOOO!!!!!!!!!OOOOOOOOOO!!!!!!O!!JJJJJ!!!!!!!OPSOOOOOOOROO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OOOOOOOOO!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!SdggжO!J!!O!!OO!O!O!!!OO!!!!!!!!!!!!!!!!!!!!!!!!O!!!!!!JJJJJ!ĚJJJJJS!!OOOOOOOOOOOOOOOOORRSOO!!!!!!!!!!!!O!OOOOOOOO!!!!!!!OO"JJJJ!!!!!!!O^OOOOORRO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OOOOO!!!!!!!!!!!!!!!JJJJJJJJJJJJJJJJJJJ!!!!!!!!!!!!!!!PggnЫ]O!!!!!"!OO!OOOO!!!!OO!!!!!O!!!!!!!!!!!!!!!!!!!!!!!!!JJJJSJJJJZ!!OOOOOOOOOOOOOOOOOORO!O!!!!!!!!!!!!!!!!!!!!!!!OOOOOORROO!!!!!!!O!J!!!!OOmOOSSROO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ORRRRRRRRRPPO!!!!!!O!!!!!!!!!!JJJJJJJJJJJJ!!!!!!!!!!!!!!!!g]O!!!!!"!OOOOOO!!!OO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!JJJJ!JJ!!JĐ!OOOOOOOOOOOOOOOOOOOOOOOO2OOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OOOOOOSOOO!!!!!!!!!!!!!!!OOORUO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!PPPO!OO!O!!!!!!!!JJJJJJJJJJJJ!!!!!!!!!!!!!!!d7"NĥRR4uWMONOJ!!!!!OS"SOOO!O!!!!!!!!!!!!!!!!NN!!!!!N!!OOOOOOORPRR!!JJJJ!!!!OR5 sBFv|rmj]""M($P!!!!!!!!!!!!!!!!OOOOOPOO!!OOOOOOOO!!!!!!!JJJJJJJJJJJJ!!PZ;;dd1ZR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!жORR]S!!!!!!!!!!OOOOOOOOOO]Z1]SĺROO!!!!!!!!!!!!!!!!!!!!!!!!!O!O!!!OOOOOORRO!!!!JJJJ!!!!ORRRRd1OOOO!!!!O!OO!!!"!!RR/+OOOROO!!!!!!JJJJJJJ!Pjd11R!!!!!!!!!!!!!!JJ!!!!!!!!!!!!!!!!!!!!!P$!OOROOOR+(M!!!!!!!OOOOROOOOOOOOOOOOOOR]1S]O!!!!!!!!!!!!!!!!!!!!!!!O!!!OO!OOOPOPO!!!JJJJJJJJ!!!!OORRRRR111POOR!O!!!!O!!!!!!!!!"ROOOOOOOPOOOO!!!O!PSRO!!!!!!!!!JJJJJJJJJJJ!!Zgdddd1īOO!!!!!!!!!!!!J!!!!!!!!!!!!!!!!!!!!!!!!!!!!PMOOROOOSUOOҺ!!!!!!!!!OOOOOOO!OOOOOOOO!!!!!!!!!!!!!!!!!!!!!O!!!OO!OOOOOORRO!!J!JJJJJ!!OO+ORRRSPOOOOOO!!!!!!!!!!!!!!!!!PSOROOOOOOOO!O!OOSSSOO!!!!!!!!!!JJJJJJJJJJJJJJ!!!2ngdZ]R!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!RRRONS11UOOOOO!!!!!!!!!OO!OOO!OOOOOOOOROOO!!!!!!!!!!!!!!!!!!!!!!!!!!O!OOOOOOORRRRRSPRRO!!JJJ!!PPRRPPOOOOO!!!!!!!!!!!!!!!!!OOOOOOOOOOO"OOO!OSZOOOOO!!!!!!!!!!!!!JJJJJJJJJ!gdRO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ʤRROONĶRN"OO!!!!!!!!!OO!!!!!O!OOOOOOOOOOOROOOO!!!!!!!!!!!!!!!!!!!!!!!OOOO!!!OOORRPRRR!!JJJJ!!!!OOORRRPOOOO!!!!!!!!!!!!!!!!!!!!!!OOOOOOOOOOOOOOOOOOOOZZ`ZSOO!!!!!!!!!!!!!JJJJJJJ!2mjf1O!!!!!!!!!!!!!!!!!!!!!!!!!!OROORROOO!1ROSOO!!!!!!!!!!!OOO!!!!!OOOOOOOOOOOORS1OOOOOO!!!!!!!!!!!!!!!!!!!!!!!!OO!!!POOOOORSRRRR!!!!JJ!!OORRRRRPPOOOOOOOOO!O!!!!!!!!!!!!!!!!!!!!!!!POOOO!OOOROOOOOOOOOUZddg̴OOOOO!!!!!!!!!!!!JJJJJJ!!gA wg111R!!O!!!!!!!!!!!!!!!!!!!!!!!!!OROO!ROOO!!!!!!!!!!!!O!!!!!O!OOOOOOOOOSOOOOO!!!!!!!!!!!!!!!!!!!!!O!!SSOORRRR!!!!JJJ!!OORRRRRPPOOOOOO!!!!!!!!!!!!!!OO!!!OOOOOOOO!OOOOOOSgng]OOOOO!!!!!!!!!!!!!!JJJJ!!SAAAAZd1R!!!!!!!!!!!!!!!!!!!!!!!!OROO!!ROO!ONNO!!!!!!!!!!OO!!O!OOOOOOO1OOOO!!!!!!!!!!!!!!!O!OOOO!!OO!!!SSROOOR`ZSRR!!!!JJJJ!!!!OORRPRRROOOOOO!!OO!!!!!!!!!!!!OO!!OOROOOOOOSPNNNOOmnаOOOOOO!!!!!!!!!!!!!!!JJJJ!PAAAvmg1R!!!!!!!!!!!!!!!!!!!!!!!!!!!OOOO!!!SO!!!OO"O""!!!!!!!OOO!!!O!O!OOOOOOO`OO!!!!!!!!!!!!!!OO!!!!!!!!!!!!ROOOOOOORROO!!!J!!!!ORRROOOOO!O!!OOO!!!!!!!!!!OOOO!SPRUaiVSP221OOOOOOOO!!!!!!!!!!!!!!JJJr1222SOOOOOOO!!!!!!!!!!!!!!!!!!!!JJJJ"eqzAv]!!!!!!!!!!!!!!!!!!!!!!!O!ZZ11OO!!!!ORZj1OOOO!!!!!!!!!!OOOOOO1OOOOO!!!!!R!!!!!!!!!!!!!!!!!!OOOOOORаS!!JJ!!!OOOOOOOOO!!OOOOO!!!!!!!!!!!!!!!!OOOOOgvAvAwEw 2`$OOOOO!!!!!!!!!!!!!!!!!!!!!!!JJSizzww 1!!!!!OO"!!!!!!!!!!!!!!!!J!!O!!R1O!!!OORZ^l11ROO!!!!O!!!!!OOOROOOOOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!OOOOOS]!!!!J!!!OORRROOOOOOOOOO!!!!!!!!!!!!!!OOOOOm 6 ' 3'&D, PPPP (@ PPPPPP!@H33 2 PP LD !P -=; @0 == 3 !0 &. PP  *J KC :::: 34D PP F8 ++ FB PP ( @0 M- 3 @ : == M# P! J #M#;JF PP 6F  N * H@( O7+C3M:*J6F 80 (,$>*::* "2 3 J @!!0 :* ' JJ BB >. *:3 /"@!PPPPPP P0H 6: : NB2 G =3 H8 N ***FH !!@(L M---=M3K$(0!P!@ 4F2 O2B B B * DD$G--M3  <,,<<< 4N BB >N$ PP L F *:'--K6<80!PPPPP PP  77' '' ?$$$44.>F6J::LL 8@008L$N>  *:::*J C+7*<@0 PP PPP PP! 8 >6J*:::O 2"B B.L, J*:*J8H +  -=- &@ PPPPP!0 M M 8 *:-= 3 .(!P!! D4& ::; K:PP . **: 8@0 ' - <@  : """ ; **J& 0@( **:K+ : BBB >.& 3 ?2 !!PP PPPLD **J&  /G - (>& : FN P L  -M( !@ $> " BB ::& NN ==M N .> FF&6 "2 :. 0!    =6 @ PP PP *: <*G -== 7::::: ::::J $B? LL ,, F6 8 !! 4 & * ** 3C /@ PPPPP PP!@H 6 N" B L>& **: $<8H * 3 == L8H@ PP !06 -- ><  - O&!! L<.F*:: =- PP <$ : < ?G - .H   DD"" G ; J& HH =M7"*JJJJ*:  N. 6J**  '0!PP PP(&J*J (L ? , : 6F B ,P  # =-  00 > ""2 "" B * F> ==- 66 : "2 / 2 6F 8@ 0@ L< 6 ==  !PPP &* . *: .$,8 (L>? ===D<( PP $N == K 6 /3EE=3PP (L<J:::* =- PP , :: F.8 O  ( !PPP08,** $   ( -=:**J**:B B 6F D>: =-M3C @PPPP 6* ( 3 .$ N :  B .P0 3 --76 @@D.  O  BB:* 6 -==- B / '' G "B $,( ! ( F&B#G L(H PP FJ & HH8L :'  OFF 66J*: : &/ @ @@ >6 H@ ,6 :4 H8 <$ & :    @PP PPP0 NF F$F2BB <4 : J ,8  8$ 7 -=  , !P  == ; PPP N>  !P0@ &J* ** @0 P0@H8L 4 C G/ * &< 2 M- @0@H :: .,O/ 3M?B 8  B J&  $ =3 2$PPPP NF* D  C =  L, $.6 : 22 P0 #CK . J: B"/G G /  : **** =  7 C C;;  G & < HHH( .F = ,L PP *  $==  KN >J:: J/G 0 !! 6 0 P0 * @ 8 4. J* "+ M3'8!PPPP! N  B .<  *J, !0 H(>? M== 6$D 0! H( C- 3C8 @!PPD4 O55 G/O*!!@ & E%  PP PPP!!@,G# K'G *JN$ 8$ M- >NH0 4> ::J&D,"2 3--. , & & 3M- C2 : : B  :J&> ,& 2$0PP PP .:*  @ +#M-= * : :* /O PP <C  D.&J: ?' KK7G 2" :: B B-= M#3 MMM 33 # + ?" .$ L (( HH  ==- D, PP ,$ :* <8 !@ 4 '== =M ;6$ NNF ** *J. (0 PP F ! PP 6 P0@H8 $ 6J :"M 2" 2* F6 :  0! ( # -- 2 N$ L8 @0 @ J/ M <8H, ** :*  GI K 0@H4. J  8PPPP !0  :*F> ,L M J6 8@ <4.**J >22 3 &$ F3M -G:::  2"B: 6 ,D. ?= 'PP PP <4::>4 H -+: & ::  PP <   $.6 B"' ; 7 " BB :*-I- M-- -  M MM 33 +7JF D ,L ( 8L< - == $ PP 8,::  !( D>===C;+7 4N&J::*J&F.8 0!P6J--?.$L(HPPPPPP0H(NF6:*J&2 2"B B"2N:::*FNDL@0P0H+M--C2*6F> @!0 .F -- H( J :: ? 3 M ,8H@ < &*  G& !!PP PP & ::6 4 3  <(( ,D :* F M > 3M B""B* & D,(88< ?'!PPP P!  : &. G + 4$ F  PP H8 & = && B'+C+' "B BBJ #  --MM - -   =- - 3 * > 48 H< 3M-= "J >N !P @H ** ** F>&@H F& , PP P!  -= @ & :: / ;  ; / D** 1 3C H@0!!PPPP. *::* 6 F> G   O*$D, L< :: L. G3=633  *JND8  .8PPP PPP LF*F 0 2' - =G .. .F B  !! @H >O =- ++ B"7+  : BK+MM#3 ### # 33 M -- == - ": 6& D @0 8  == -C F !P !0 J :* NF 0@ 33 .> . 6 @! PP PP L< -= P0 > * G ; E=M#K7OF:: A =H  J*::& * G'M- =-$ << ::: . (( O?K -=**::*$HF3+7G PPPPP0(:*6DH0'3+BF6 "" : 3#;8H@@0!P!0HB--==- ?2 ?'KK7?2:JJ** >$BGM))#KKKK+ C3--===-M :*FDL@0P@H8/3M-== 2J!P !! F& ::::N PP  . 6N 6@!PP PP 8 M-PP$J?C5 ;K7*:95L8 ***F??--F>$4N.F::::&4D,LO?G=::.4<(0!PPPP $.: .!PP===FF*>PPP4 BPP@A)(PPlmarbles-1.0.8/src/gfx/lights.bmp0000644000175000017500000000250207215204736013614 00000000000000BMB(0 @  mmm%$7!!!! x >CNM9{Oi0088QQUU--v))77FF!!** DEa+iVegML\!Zt!!````ggKKOOQQ|88zz//C^xrUR@DDll]]GG++""@@ZZ%%&&K[\VRRgg__NN))((BDt}Z33>>rrcc99NN2211?W|RPK00<<jj}}jjccQQ s &&""QkSYaO5v~ZZuunnll[[,,%%&&0pZ[@)f''NNoohh..""""""""""""""""""";"""""vwxyz{|}"~""abcMdefg"hijTklAm"nopqrstu"KLMMMNOP"QRSTUVWX"YZ[\]^_`"3456789:";<=>?@AB"CDEFGHIJ" !"#$%&'()*"+,-./012" lmarbles-1.0.8/src/gfx/tiny.sdlfnt0000644000175000017500000000156007061716432014024 00000000000000BM>(@ @ @@ #@8Ä9yD}N@NDG4D9N@ D 9TDD(D HD!AQ%DDRAQATDD QMD@TQX%2(@@@ "DB|DDYP%D@TAA(B PE D@TQe4!1@ 8B 'DAI8 U%|@XAUQyA QMd@VQe6P!Q)`BP "E@B)dE3MP%D@TAQEPQ( $@4 XXՎyQEB9UDD(AEDQ%D@RAQEQQEH@"@@ E@BC 88GyDANx}QE@0@@0 @` lmarbles-1.0.8/src/gfx/m_sframe.bmp0000644000175000017500000001641207441476413014124 00000000000000BM  (( 62*"jZ~B.j&~n? "zvF2>&JrZ:nNbnV>j^6~.>R*FVB*.VJ&RJ ~jz%6r:2f^"FF Bfva.Nrfvzֆ֪־ֶֺvBbւ֢^RjR2&>VnNXN֒zbrR "2*J6~.8 "vzFN֖֎:֊~vz֦֮֞r[6BJ>:.&ֲ֚*VfZFZN "&*&&Rf^J &j"tj"n'ѱ摾CC92tfffmfffthQܯ"==CCC>2K4eaUx~hffffffffffffiqްIdd2=@@==>2WOahffffffffffffjx򚚚y!BcEcY_*4W9DF-apϭnsʪӮfffʮ}R񷚚N9fffhfmݎTUVWN,4fffuff1ERS++fffli7Q+jthhiyy1I1O+P``fffmyy1L1MMNfffhyyyGKK9fffyy"99>JjtA9>I*`gyC@Fqq|uq"CCDEx|8[:: BCC7|y "5;/@@A""P*뚚/678%992:=KWD{D@Ꚛ5./01(234$5">9@{隚%&'()*+,-]C={^||]š!  !"#$zCC{{|:pwu-Fޡ 7zCCC{|}~rrks}0]榿 >=CCCpqrslituvdwmffffsgxyG5 W9>=Cghifffjjklkmffffffno]Ǩླྀ”ffffffffffff]ԄߒԆ]ܦcTy^lmarbles-1.0.8/src/gfx/m_frame.bmp0000644000175000017500000001573207441476337013752 00000000000000BM(( NVJ:>B""^FFnjfbZ2R rjvzffrR~Rzb26 6V&J^:v~n*v*j&.."BZ&""~>B "&""*: &&J ""*2&z6N."F 2 &*f> "rrN RZVvSr6\S_aVF,C+=A0K*+,CKtL=V#7N]]]]]]]]uXlJU]]'??/!% 2 L?7E=?&? ']UlF%V]]]]]]]]]VVWVV]]]]7%=L> 8& ) >%eS3 ?VVVUdz%? O=.nrrre]]]7""wV]]NV70/; "b4n3?? 0d/ LV7+V<- L.7sS_,sn%30=!"<%0."VX\[ AdV* /AtK op & 7@nNN+3!.8 &|_e"o/&vJO.\_K !@ln "(:*..F +wl> ) _\3L2 =4~L "-b0> tw#* 2.WM O4Q ]wZK*|4N%?; KxE70 w( RB& %Q|& !}T LF4*.*% b3!lN.-[ % 2`{ )& sH&'*uo%4< O!7Q &[? ;[y2 Az! ;>x""S[!t <0;AdV77ml Ap 9) Ix / &$vNF )&Z(=& sVl{ v*=L * )0Gw zNN]eSR /O 'QSj >Fpu"KFCM9  b_^]]]\0 bZAO/7%%l$2 2+N%A0t NNNfO * 't 73 ?=JVlB3A"VL %3 ) % o*7NVNN_pV0 \'o $>9?3 R+VNNNNVVnoLL!!9 ??>?32 7N]VV]nNN^.F2) 3 2? 0O NV]VN]^]]^ F) L/&  VNVVVm *9 =L0 7VN7kl777V4 ;" ) 8/&/o 1E77VNNhVi7j. 2&%t+'0= N]P+g,]]]6 ;7%%%O  S Wb +cde]]f_: >W + l+Z) )B4%%"""0`]]]a= 077 "';***Z[0%V\]]]^_ 2X7]_dV I )FQ"0F2OWSXNNVY+ 'WS]NN]]NNn_) 9 3l0L=(T )AUNVE<FoF\]]]r_SN]]a 27QL//.1R9 CSNS+<Sf]]]DSd6NNNf_  =vL MNO P4S67X\]]]]_cNVVVN' 2Fwg G* ;;!HI> 8J+K*8_]V7]dS]NNNyS47VN_9O!KlM o<@.A9)"BC/ DEF ;9_a]]]]S_]Nb["%NJb*K+VzS3) )8;2 ) 9<%3=>) !$<%? Sa]]]]]__V0B'>/=K`d|%VN^_M"A 2O w1) 2 34567+"*.!&8#/ 9!:#7VN]]]]_SV+0/ 9%-*2 7d7VN]]]d ! 2 0v( ) *++ ""+,-. ) /'07]]XS_*?; 9 >O;2 FV_a^]]]]]]]N]N o  O.p !"#$% &'7\SEF> )"_^]]]]]NVVt9 >  %VJC'? 2 ) ?F_an]]NNV+"03# vro& &LfmNiWlmarbles-1.0.8/src/gfx/f_yellow.bmp0000644000175000017500000003450607206511405014145 00000000000000BMF9(@8  44{|   *  !!(# & ! **" *")! ( !!#"(#,333## '#)***!  *  (33$&) "!***"**   # (*0 #! 2    (!!   #**,1""  #"!)((&*-"!" (*!(( (  +,* * ** !*! "-  # %*"#   #  "  !!**!( /*(" "* ("(! #*. *(   lmarbles-1.0.8/src/gfx/logo.bmp0000644000175000017500000054062607344165507013305 00000000000000BM6(`              %%%***+++(((!!!  &&&++++++'''!!!  ###(((******)))&&&$$$!!! """)))---,,,'''   $$$***///222333333222...***&&&    """"""!!!      000gggcccZZZRRRWWWKKK<<<... EEEjjjdddXXX[[[XXXLLL???111$$$    !!!,,,666AAAIIIOOOXXX^^^eeehhhaaa[[[>>>111000...+++'''!!! (((TTTfff^^^VVVYYYXXXKKK===...  ...===KKKbbbXXXXXXWWWVVVTTTQQQeee\\\UUULLLBBB888,,,"""  %%%,,,333999===>>>SSS\\\WWWTTTNNN444'''$$$###  '''000777>>>BBBEEEFFFFFFFFFFFFEEEDDD@@@:::222(((   ###(((...333999===BBBEEEGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHGGGGGGFFFFFFEEEDDD@@@:::333***   MMMfff888%%% !!!BBBYYYAAA,,, SSSYYYDDD,,, """DDD[[[KKK777$$$  $$$333>>>DDDGGGFFFEEEDDD>>>333$$$ !!!///???eeegggAAA111$$$444FFFTTT]]]aaa]]]eeessscccJJJ===777---""" )))xxx@@@,,,!!!BBB[[[DDD/// ;;;oooPPP,,, 000:::ZZZ[[[KKK;;;,,, MMMgggqqq''')))333777<<<@@@EEEKKK]]]___NNNHHH'''000;;;FFFPPPXXX___bbbbbbxxxiiiAAA,,,)))$$$ 111CCCTTTfffxxxrrraaaSSSGGG???999666555444444555777<<>>???666 mmmsssRRR777$$$ ,,,^^^>>>###^^^vvvLLL--- CCCXXX:::!!!dddwwwQQQ000000===  888qqqDDD000000111333444444333111000777rrrmmmlllJJJ+++MMMbbbFFF222 QQQlllHHH000   ```BBB(((SSSllldddVVVKKKDDD@@@===;;;999555000+++&&& PPPSSS===+++TTTzzzQQQ444###!!!(((111===LLL[[[eeeuuuFFF&&&))),,,YYY~~~nnnXXXpppDDD333SSShhh̷{{{\\\CCC000%%% """***555dddLLL$$$QQQ~~~VVVYYY555  &&&+++SSSZZZqqq˹zzzZZZAAA111)))%%%$$$$$$#########"""""""""!!! $$$===___RRR))) dddxxxZZZDDD111""" [[[AAA%%%"""mmmݩxxxSSS999'''"""]]];;;  ___ίUUU666""" QQQ((("""```TTTMMMMMMRRRXXX\\\^^^[[[TTT\\\111 """bbb}}}TTT000(((NNNYYY@@@))) 777aaațuuuXXXDDD111### XXX>>>$$$ ZZZ|||uuurrrrrrqqqooommmhhhaaaZZZRRRHHHAAA888444333444444777666333///(((111eeeHHH333"""  888ά]]]JJJDDDGGGNNNXXXccclllBBBGGGtttFFFMMM___<<<$$$ 555uuummmҪdddMMM>>>444@@@mmm+++ |||eeeBBBOOO333  III}}}qqqЧhhhXXXRRROOOOOONNNMMMMMMMMMLLLJJJGGGBBB:::222MMMccc000 ;;;OOOxxxȦttt\\\DDD///aaa>>> ===fffwww汱gggNNN:::&&& ```333 WWWrrreeeDDD*** ccc555 rrr|||===((( """444}}}ӱWWW111YYYMMM111 ###aaaNNNqqqԩttt^^^GGG111 mmm/// rrr¶~~~xxxrrrppppppqqqsssrrrqqqllleeeZZZMMM>>>LLLUUU777&&&  GGGzzz达~~~ssspppppprrrnnn %%%fff555%%%bbbAAA%%% """000iii\\\[[[mmmОuuuVVVppp===%%%  ppp:::OOOMMM,,, &&&222[[[\\\[[[lllӮyyypppcccQQQqqqAAA+++ ---cccAAAjjjһqqqSSS888"""bbb/// ooo```eeeyyy齽eeeKKK222 555KKK'''  CCCKKKfffԠsssKKK+++OOOBBBBBB\\\uuuνmmmAAA  (((>>>߶VVV///FFFWWW999 :::$$$222OOOuuuYYY>>>&&& +++999XXX  eeebbbûvvvaaaJJJiii555&&&  444TTTuuuЬvvv>>>   ===׵HHH^^^@@@###''';;;aaa:::555CCCYYYzzzȊkkk888$$$ vvv>>>```DDD### (((;;;aaa;;;555DDDZZZzzzƿqqqUUUQQQ,,,  !!!HHH 777aaaκ___@@@&&& <<>>RRR ***SSS맧iii777WWW;;; """III((('''BBBooo“iiiGGG000%%%KKK$$$ %%%>>>qqq777\\\묬ooo<<< ^^^CCC&&&(((VVV >>>qqqɩTTTvvv[[[OOOHHHfff]]]rrrooo...  ###VVV222[[[ѭiiiFFFAAACCCBBBAAA>>>:::555FFF\\\zzz***  """KKK888000```؈***000KKKSSSꦦ```---BBBHHH$$$  222VVVFFFDDDzzzddd???(((666www```̆FFFOOOHHH&&& :::ddd***TTT޿lllHHH---;;;PPP))) %%%RRR777lllϰcccIIIDDDYYYYYYzzz666///111aaa{{{mmmXXXPPPKKKlllYYYssssss111 444bbb ===rrr|||EEE FFFHHH  """III666 ...YYYTTT000 ddd555+++III___111WWW域___000^^^AAA$$$ &&&RRR///333bbbͳdddJJJ===222......KKKkkk{{{ttt 444TTT333cccǮhhh### &&&&&&%%%$$$$$$$$$%%%&&&%%%######HHH::: GGG@@@111hhhbbbGGG###444VVV<<<۳iii000XXX444 <<>>!!! !!!III999'''TTTμmmmfff,,, TTTvvv}}}nnn EEE999666iiiֻppp  >>>vvv444 ???WWW==={{{222999```///nnnrrr777DDDGGG (((EEEkkkUUUͩ^^^@@@))) """HHHAAA>>>TTT""" ---XXX111 :::ggg111^^^͞iii::: ccc888555VVV<<>> ___888  ???LLL EEEyyyԴ~~~kkk%%%XXX{{{yyyBBB  &&&TTT 999oooг}}}   HHHsss777aaa"""OOOmmmEEE%%% BBB```...jjjЁBBB YYY,,, 111EEEUUUͩggg>>>+++ &&&OOO<<<000tttֶccc+++QQQKKK(((***SSS<<< %%%NNNȖ```111PPPBBB:::MMM;;;pppӹ%%% [[[666!!!EEEnnnYYY}}}߼wwwzzz(((gggrrrjjj;;;```AAAyyysss>>> PPPCCC+++WWW ///^^^⡡ddd444___777+++OOONNN...\\\eee111,,,WWW222 444ccc777iiiƘvvvddd```]]]lll(((  kkkyyylll"""///bbb;;;pppέ___YYY%%% ```|||bbb 111UUU,,,___,,,'''NNNRRR777tttےTTT)))UUU999###444Ưsssddd...)))VVV,,,&&&cccxxx:::```???  AAAYYY@@@sssȗ^^^000;;;MMM### ===OOO888mmmͷ###mmm|||{{{ZZZkkkѣ~~~iiiccccccVVV+++ eeecccKKK000]]]444gggɄKKK### ---RRR''' """JJJFFF %%%PPPttt??? EEEEEE  888bbb444jjj디PPP### EEENNN+++***UUU///+++YYY\\\EEE@@@GGGEEE111 hhhhhhMMM666MMM<<>>NNN444ggg¨uuuggg 222PPP XXXǓeeeJJJCCCIIILLL]]] MMM555 %%%OOO<<<)))VVVݘ[[[,,,bbb444===UUUAAAwwwƅNNN%%%...SSS((('''KKKGGG???}}}yyy===YYYDDD$$$ GGGDDD !!!JJJQQQ222)))000888hhh RRR666;;;NNN:::nnn״ZZZ444JJJGGG!!! FFF+++###;;;kkkrrr """CCCaaa999jjj贴|||III###---NNN###  (((sss444!!!333bbbOOOhhh777 EEEMMM)))(((PPP<<<(((SSSѤlll:::^^^666>>>MMM///```Ġ}}}aaaNNNiii AAA999 ___CCCoooŏ[[[999+++111<<>>OOO666iii×fff:::bbbDDD ...jjjrrrLLL 111___AAAYYY[[[///TTT'''  """vvvddd777'''777aaaMMMɆPPP***bbbAAA  BBBNNN FFFzzzخvvvCCC QQQDDD ;;;KKK )))XXXӬ~~~VVV:::,,,uuu((( ,,,[[[ 111XXX˔^^^555 +++AAA222 666ddd;;;ppp}}}FFF ---RRR''''''PPP<<<)))UUU쪪mmm:::NNN@@@&&&KKKFFF111kkkIII!!! ,,,SSS---...ZZZ!!!///___ܘ\\\///222<<<>>>NNN111ddd׮|||JJJ$$$WWWAAA """DDDiiiwww ###BBBYYYOOOΠlll<<< YYY)))  EEEuuu___---<<>>aaa IIIyyyBBB CCCGGG### 111^^^333eeeЌRRR'''+++LLL### 444fff !!!KKKබKKK""" TTTGGG !!!FFFYYYmmmWWW***SSS###  RRRlllOOO*** """MMM///***[[[ƛlllBBB!!!bbb888 ;;;```???rrrخyyyEEE ;;;MMM###  &&&QQQ...///^^^ᲲyyyEEE ...KKK!!! ###EEEPPP///YYYі]]]000 ZZZ...000]]]444fffҏUUU***aaa::: GGGDDD ###MMMwwwBBB FFFHHH ///[[[!!!555mmm___111```444'''PPP<<<(((TTT䞞aaa111eee333///^^^@@@ttt߲{{{FFF ===RRR***  ===[[[kkkŔ\\\,,,333HHH555~~~ppp///  &&&RRR222...aaa۹^^^666 ;;;TTT...000]]]333bbbἼSSS)))[[[--- FFFDDD %%%PPP岲yyyEEE ///TTT''' 111[[[  BBBsss䩩mmm;;; SSS>>> %%%OOO<<<)))VVV祥hhh777<<>>tttɉQQQ'''UUU))) ###JJJFFF %%%TTTƀIII###DDDGGG!!!  BBBMMM EEE}}}sss>>> GGGBBB ***VVV!!!444eeeరxxxEEE 222eee???'''  ,,,kkklllǗ^^^...AAA===rrr333 )))WWW%%%333hhhѫ~~~QQQ---PPPFFF$$$ %%%OOO<<<(((SSSșbbb444```999<<>> !!!CCCYYY000\\\禦hhh666WWW<<<***UUU///...]]]娨nnn<<<$$$$$$RRR*** ???YYYCCCzzz‚KKK### ---OOO%%%  $$$KKKGGG)))XXXޜccc666TTT))) EEEPPP HHH򭭭mmm:::OOOAAA777\\\888hhhTTT---  '''777BBBpppvvvcccGGG999444...&&& %%%ssseee໻OOO(((LLL666vvv222 777aaaBBByyyѮTTT000!!!jjj;;;!!!***UUU///---[[[Ò\\\///bbb333 CCCNNNAAAtttӓXXX+++HHHIII!!! 000ZZZ  !!!GGG}}}{{{DDD :::JJJ"""  !!!HHHEEE $$$OOOMMM&&&MMM]]]888444aaa555hhhՓXXX,,,^^^000 >>>WWW !!!JJJ|||III$$$ ]]]777777fff;;;oooHHH!!! ,,,OOO%%% ,,,WWW )))UUUϘgggBBB***"""888SSSjjjuuusssjjj[[[hhhnnn___CCC:::000######ppp```خxxxEEE%%%WWW"""  lll666$$$<<>>vvvЕ^^^333EEEEEE +++WWW ---]]]ؓWWW+++^^^000 !!!HHHEEE CCCuuu䲲cccMMM???444WWW999$$$,,,AAA___mmmRRRKKKiii\\\EEE555&&&!!!___YYY~~~͠iii===%%%UUU000 RRRlllOOO***AAAQQQ !!!MMMۺ___RRR''')))===QQQRRRhhh;;;''';;;```???rrrٰ{{{GGG!!! ;;;MMM### ***SSS... ###KKKmmm888ccc333111\\\!!! %%%OOO꣣ddd333^^^666000]]]555fff䬬vvvDDD!!!>>>333 ddd/// DDDOOO !!!JJJzzzCCC :::JJJ""" ***UUU///666iii䬬uuuDDD SSS((( !!!HHHEEE ###LLL짧iii666XXX===:::]]]222^^^ϩyyyiii[[[bbbTTTcccuuuzzznnnOOO111UUUfffJJJ777%%%  OOORRRuuu༼XXX555666<<<555~~~ppp///  FFFUUU $$$SSSͥttt333IIIgggqqq^^^www555"""000]]]222aaa㽽TTT***[[[--- BBBLLL888jjj|||BBB NNN@@@ ###GGGPPP===sssvvv??? QQQDDD  %%%OOO<<<***XXXWWW... CCC>>> 777ggg<<>>...$$$>>>```<<>>\\\AAA)))  333\\\[[[ݼ```???qqq((( qqqddd666''' %%%PPP111,,,^^^غpppEEEnnnTTT|||nnn888((( AAAMMM DDDyyyԩrrr@@@ EEEFFF %%%KKKFFF===sss```...^^^111'''NNN::: """KKK坝^^^...aaa222666ddd>>>uuuܭ}}}NNN'''TTTppp HHH999  """JJJFFF &&&QQQ򰰰rrr>>> QQQCCC 888iii %%%RRRᰰzzzFFF!!! FFFEEE  %%%LLL:::&&&RRR碢ccc333aaa:::333^^^ $$$III}}}༼~~~  &&&===wwwɠqqqFFF###XXXMMM111 ///^^^LLLuuuɠsssMMMaaa,,,CCCuuu___--- (((VVV444222eeeиQQQ)))///zzzssssss444"""555ccc666ggg޷NNN%%% ...SSS((( 999[[[+++XXXuuu;;;YYY??? ===aaa===uuuooo:::MMM@@@***UUU///111fff漼```555 RRR'''===VVVBBByyyńMMM%%%---QQQ&&& 111``` !!!KKKTTT***...OOO###  ???XXX CCC{{{uuu@@@ EEEFFF $$$IIIDDD444cccବzzzssskkk[[[###***888|||dddӤqqqCCC!!! DDDUUU666 )))rrr<<<___ҭZZZmmm...vvv222 ,,,[[[777kkk###cccSSS/// ***TTT...+++XXXÒ\\\///bbb333)))PPP::: @@@zzz⏏LLL!!! ;;;OOO&&& ///[[[!!!111bbbǀHHH!!! ;;;NNN$$$  !!!HHHEEE '''WWWŞrrrFFF"""iii NNN444 222___555fffؖ[[[...___000+++YYY222GGG|||̙bbb444WWW((( 333```555fff̉NNN%%%UUU)))666aaa """IIIꥥsssVVVLLLKKKFFFfff  +++???yyyTTT}}}٢jjj;;; +++YYY888  !!!OOO<<>>___...(((QQQ---(((UUU✜___000ddd555%%%IIICCC222cccmmmBBB///+++,,,III666 ...GGGTTTGGGoooٙ___///,,,ZZZ777 888KKK111VVVooo```<<<  RRRmmmOOO***666fffAAAyyyܻuuu >>>Ĩxxx}}}555$$$999^^^===pppٰ{{{GGG!!! ;;;MMM### +++RRR;;; BBB???PPPDDD ===bbb HHHggg555WWW;;;000]]];;;tttԴmmmBBBSSSWWW111  CCCNNN GGG~~~|||EEE GGGHHH  ###LLL---AAAvvv޲{{{GGG fff333 CCCNNN FFF~~~qqq=== OOOBBB444^^^ FFF}}}CCC###```((( 444QQQPPP>>>gggыOOO%%%+++WWW444 )))iii777fffŠvvvUUU>>> 555~~~ppp000 ;;;LLL GGG֯hhhbbbhhh {{{ʾfffUUU111 ---ZZZ!!!111```㽽TTT***[[[--- <<<^^^+++]]]XXX''' WWW,,,222___===tttxxxCCC GGGIII!!!  %%%OOO<<<...cccںTTT--- %%%JJJ$$$  666eee:::nnnύTTT))) VVV))) !!!HHHTTT>>>vvv任PPP&&& JJJ777666ddd666lllƂIII""" ---QQQ&&& ###EEEYYY,,,^^^WWW))) GGG@@@!!!===jjj...888cccyyy>>>999RRR...===???>>>rrrȤ}}}ZZZYYY sss444!!!@@@QQQ !!!MMMѥtttQQQGGGMMM}}} ###ɶfff999+++ $$$KKK::: &&&QQQəccc555```999***PPP:::???}}}www:::bbb<<<(((RRR...444hhhˊQQQ''' WWW*** AAAMMM $$$SSS⿿hhh>>>XXXQQQ$$$JJJ111 ###,,,*** ***UUU///...]]]⟟ccc333fff666 DDDRRRAAAyyyÏXXX+++NNN:::***TTT///+++YYYۖYYY,,,```111///VVV---==={{{xxx;;; \\\...(((III]]]888gggccc///NNNIII&&& %%%QQQDDD|||ͩ___[[[ qqqfffBBB''' EEEUUU $$$SSS̝hhh@@@111555hhh AAAƪ{{{rrr666$$$>>>YYY DDDxxxԩrrr@@@ EEEFFF  :::ZZZ'''YYYTTT%%% :::NNN''' GGGSSS...___ۚ___111]]]555666dddCCC«{{{PPP***!!!222rrr((( aaaQQQ555...SSSDDD+++ !!!GGGDDD $$$MMMrrr>>>PPPCCC  CCCQQQEEE|||ʗ```111OOO;;; FFFPPP !!!III響jjj777ZZZ>>> <<<[[[ %%%SSS[[[***IIIEEE  444[[[***;;;qqq吐MMM!!! ^^^=== 333SSS IIIάaaa^^^   BBBxxx___--- !!!KKK/// (((XXXȖ```555"""###ddd!!!rrrjjjbbb111 222aaa666fff޷NNN%%% ...SSS((('''KKKDDD999xxxxxx:::eee777>>>XXX)))YYYꪪppp===QQQCCC ***UUU///555pppǭeee:::QQQ222@@@@@@$$$---]]]DDDAAA000 777KKK)));;;```???uuuŃKKK### ...SSS))) BBBRRR """NNNϞggg555PPP<<<888]]]<<>>111___FFFޭzzzQQQ```zzz###EEEppp...oooeeeQQQ777 BBBDDD  @@@YYY EEE}}}{{{FFF !!!aaa555 ###IIIQQQ,,,UUU֩sss???WWW111<<>> OOO"""  &&&NNN;;;'''SSS㞞```111]]]666'''EEE___+++^^^WWW333999TTT...<<>>  ppphhh:::PPPBBB  aaafffCCC'''999MMM FFF}}}թrrr===UUU&&& ```ĥuuulll)))333bbb DDDxxxԩsssAAA FFFHHH %%%EEEaaa """PPP꽽xxxDDD!!!ccc999  '''RRR333...]]]ߥhhh666aaa::: >>>SSS###KKK򵵵pppSSS444777rrriiioooȓ^^^333DDDCCC EEEPPP ###LLLLLL&&&000ddd???$$$ $$$zzzӦooo::: 444BBB @@@YYY DDD|||rrr>>> QQQDDD (((DDD___999ooo󻻻[[[777]]]EEE%%%...\\\ %%%UUUjjj666NNN888;;;JJJ<<>>KKK$$$ BBBxxx___,,,<<>>333fff999  $$$NNN888(((SSSɁGGG :::???111___***RRR̓[[[///SSSOOO''' (((vvvFFF ***TTT((( {{{111 @@@VVV ###QQQ͝eee333000KKK  (((ȴ|||'''@@@>>> ,,,XXXē]]]000ddd555 ...OOOQQQ???{{{㢢mmmCCC$$$jjjAAA  &&&OOOAAA&&&HHHppp۔UUU((( UUU))) 222UUU444UUUŗyyyttt ttt]]]BBB===QQQ{{{՗\\\///SSS''' ---ZZZ!!!111```촴OOO+++www>>> SSSɘaaa111\\\%%% )))RRR...)))VVVߘ\\\---aaa222 &&&@@@\\\;;;'''QQQ潽kkkEEEGGGLLL///???\\\444___דWWW+++///BBB&&&OOO,,, <<>> YYY)))  $$$LLL999&&&PPPНmmmDDD%%%  ***]]]nnnXXX...AAA;;; DDDOOO GGG󭭭lll:::MMM@@@"""999SSSXXX...YYYtttNNN\\\@@@'''111zzz444NNNxxxߡfff666222@@@ ===SSS(((SSSvvv;;;^^^JJJ###  000PPP(((ddd333 QQQqqqMMM%%%FFF555+++\\\ÒYYY+++SSS???www888 UUU>>>ppp۲}}}III""" ,,,OOO%%%  111PPPTTT000aaaѡtttMMM,,,___LLL,,, JJJ@@@TTT}}}uuu|||φMMM''' TTT>>> ///CCC\\\뾾ssspppEEE ***\\\:::***)))???fffّRRR%%% XXX(((  >>>WWWBBBwww鼼fffBBB(((ZZZVVV###@@@ppp޹RRR/// fff%%% 666eee:::nnnGGG!!! ;;;NNN$$$ 222GGGmmmCCC]]]äZZZ444 &&&qqqVVVsss㭭ttt@@@ 666999+++RRR+++???}}}BBBhhhRRR***'''JJJ((( RRR888)))zzz'''III999000ccc㾾TTT'''PPP::: '''ʻ555DDD555aaa俿VVV+++]]]/// ///LLLTTT***:::nnnϦ~~~VVV555sssBBB&&&ddd]]]hhhVVVjjj```UUU[[[~~~qqqDDD***<<>>WWWsss泳www|||]]]888((('''DDDssskkk666 SSS$$$ 333```555eeeװfffJJJ666+++pppUUU‘qqqlll~~~ݳ~~~OOO555UUU111***UUU///,,,\\\ؒVVV***]]]/// )));;;IIImmm\\\Ŭjjj|||$$$"""wwwxxx繹NNN***VVV--- :::XXX///hhhꛛ^^^444===]]]999 ûXXX:::+++ddd999{{{)))JJJ 666iii߹NNN$$$ XXX555 AAAɸXXX $$$fff'''"""000TTT˛eee666WWW;;; ,,,FFFjjj000DDDvvvЭeeeEEEwww555zzzpppkkkfff@@@rrrBBB777<<>>@@@ GGGDDD """LLL짧ggg555WWW<<< !!!///;;;VVVvvvñwww ***ʖbbb===***###ZZZ%%%DDDUUU $$$UUU迿[[[999}}}KKK333!!!|||Ԧ~~~bbbPPP===bbb444 aaannn444JJJ<<>>SSSOOOHHHyyyж|||ddd~~~  sssyyynnnhhh666CCC}}}&&&"""777[[[᭭sss^^^IIIQQQ!!!******"""(((222===GGGWWWppp®CCC III,,, ,,,UUU彽wwwJJJ111OOO333 CCCOOO HHH}}}׿rrr---dddmmmMMM888777EEE\\\ttt紴[[[SSS :::^^^===sssyyyCCC :::JJJ""" %%%...000```QQQ333222KKKmmm尰|||VVVAAAPPP(((***JJJLLLBBB~~~ⳳgggJJJ~~~CCC555+++%%%###!!!(((}}}Ь~~~eeesss***BBBNNNKKK!!!BBBwwwخxxxCCC \\\+++ (((͸(((???777444DDDkkk߹PPP''' UUU))) !!!444EEErrrXXXsssuuu}}}{{{|||oooUUUiii666???nnn111TTTٵlllddd  AAA@@@333 (((888UUUЧ///``` 444iii矟lllKKKlll 777fff;;;mmmµ bbbZZZCCC,,,"""$$$111AAASSScccqqq~~~}}}BBB ...ZZZ!!!///```ҍRRR''' XXX,,, """%%%"""PPP~~~hhhLLL???===GGGUUUgggttt͖nnnRRR222 +++GGGbbb"""...^^^ѵ~~~dddpppeee555///)))888HHHmmm|||qqqhhhcccfffvvv˶{{{ aaa '''III~~~թrrr===VVV'''  AAA¡iii  wwwGGG???DDDaaaŕ^^^111ddd555***888???xxxdddǾxxxqqqrrrjjjTTT]]]666...333HHH )))HHHqqqyyyddd  111DDDTTT\\\NNN;;;111 )))KKKzzzƘaaa444 <<>>TTTRRR<<>>QQQlllpppooolllPPP  ###---666@@@JJJTTT^^^```PPP===555&&&HHHrrrTTTVVV  $$$>>>VVV,,,555aaa|||000  !!!IIIFFF $$$NNNӭCCC 222```"""  ###000BBBRRRbbb===VVV BBByyyttt??? EEEEEE  LLLkkk222!!!###***888MMMfffyyyiii !!!111???QQQqqqjjjzzzttt```LLL999+++!!!***CCChhhiiiSSS222+++HHHkkk QQQŶ&&&nnn222999XXX͝eee333000KKK  }}}((( '''aaa]]]UUU\\\}}}۲}}}III""" ,,,OOO%%%  %%%)))+++QQQvvvuuuBBB===>>>RRRlll===$$$ &&&333<<>>222""" """(((///777@@@JJJRRRYYYcccttt|||wwwzzzgggGGG666 !!!777NNNWWW<<<999GGGaaaYYY <<>>CCCaaaɘ___///<<>>555((('''PPP<<<(((TTTᚚ]]]///ccc444 (((444???HHHOOOTTTWWWWWWTTTKKK>>>,,,  !!! !!!###&&&+++000666:::;;;:::777222,,,&&&!!! sssxxxLLLOOOkkkÒYYY+++SSS???bbb~~~aaaiiiWWWyyyxxxrrr|||˜eee666WWW;;;     &&&OOO<<<(((TTTﱱ}}}YYYNNNSSS___]]]MMM   BBBMMM EEE~~~ooo;;; OOOAAA  $$$&&&((((((%%%     bbb [[[^^^xxx㾾TTT'''PPP:::eeeRRR;;;111֫vvvBBB FFFHHH   AAAMMM EEE}}}UUU<<<777===CCCwww""" 555ccc666iiiŁHHH!!! ,,,OOO%%%   DDDCCC uuukkknnn߹NNN$$$ XXX555 +++xxxgggRRRjjj+++߹PPP''' UUU)))555ccc777kkkҒ[[[666%%%"""(((888<<<***SSS...***YYYڔWWW+++^^^000yyyrrr{{{ܴ~~~III ccc000ZZZyyy~~~jjjRRRGGG***ŕ^^^111ddd555***TTT...,,,ZZZ壣ggg999ddd--- EEEPPP HHH響iii666XXX=== zzz{{{aaa&&&خxxxCCC \\\+++"""~~~rrrhhhQQQBBBDDD```***RRRУmmm<<<OOOAAA FFFQQQ ###LLLvvvBBB  OOO@@@777fff;;;ppp{{{DDD :::KKK"""  XXX~~~rrr]]]TTT""":::թrrr===VVV'''  333___bbbQQQ???===[[[>>>***ڲ|||III""" ---OOO%%% 999^^^>>>tttɈPPP'''"""SSS''' +++WWW ---]]]ՎSSS(((ZZZ---///lllyyyiiiWWW...SSSѣkkk888222QQQ###  ###YYYVVVMMM<<<444===>>>⿿VVV+++^^^000---ZZZ!!!222cccۚ___000ddd555 !!!HHHEEE ###MMM飣ddd333aaa::: $$${{{kkk^^^PPPddd>>>```͝eee333000KKK +++pppFFF999---111EEE˛eee666WWW<<< $$$LLL:::'''SSSooo<<<OOOAAA;;;```???vvvuuu@@@ EEEFFF  $$$zzz[[[RRRGGGLLLdddɘ___///<<>>е㾾TTT'''PPP:::!!!;;;NNN,,,MMMŔ___222ggg777)))SSS...---\\\䤤hhh777WWW<<< ???XXX FFFppp<<<PPPCCC 444[[[000+++555UUU߹NNN$$$ XXX555 ,,,MMM'''666^^^Уnnn===RRREEE  FFFPPP &&&QQQyyyCCC :::JJJ""" 333aaa;;;rrrIII""" ---QQQ'''  111qqq$$$"""---NNN~~~ܴ~~~III ccc000 :::hhh !!!BBBlll۲~~~JJJ### VVV,,,999^^^ """KKKʼnQQQ''' XXX+++)))SSS...777jjjђXXX,,,aaa222,,,___(((JJJ|||خxxxCCC \\\+++(((KKKAAA+++NNN|||XXX,,,```;;;...ZZZ&&&'''OOOҘ```222]]]666 DDDUUU :::mmmޡggg777MMM@@@(((MMM444+++NNNթrrr===VVV'''  555]]] 333\\\̝ggg888HHHMMM'''&&&LLLIII666^^^ܧooo=== QQQCCC 999lll(((KKK{{{籱xxxEEE ;;;NNN$$$  """EEEMMM 999aaaѣkkk888222QQQ### """AAAccc ???jjj׮yyyFFF!!! eee999  !!!AAAnnn111PPP{{{㶶LLL%%%---QQQ&&& 111VVV'''CCChhh쿿SSS***\\\... >>>|||000SSS}}}Ξfff444///JJJ +++OOOFFF(((KKKyyy⿿XXX...IIIQQQ+++###<<>> %%%777HHHmmmۯwwwEEE!!! GGGIII!!!  &&&;;;kkkӢiii:::[[[<<<!!!AAA``` <<>>$$$ !!!444CCC^^^ddduuu뾾PPP)))<<>>\\\***AAAUUUcccjjjpppxxx£xxxmmm```SSSdddXXX555$$$ $$$''' !!!***222===EEEPPP^^^ttt欬___HHH333ddd444333%%%(((000999CCCMMMZZZmmmgggMMM888SSS=== 222DDDbbbPPPIII===444//////222333444666666666666777777888888:::DDDWWWyyyͪccc '''HHHKKK)))111666888;;;DDDVVVpppӿsssggg\\\TTTZZZKKK999  KKK666''' ###,,,<<>>222%%%111MMMrrr}}}fff ...LLL&&& ###111FFF```xxx{{{qqqhhh]]]OOO<<<%%%888LLLZZZ```PPP<<<111 +++KKK{{{ܺ]]]000DDDUUUbbbMMMGGG///$$$ %%%AAAoooħiiiDDD '''888JJJ[[[\\\VVVSSSSSSSSSTTTUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVXXX]]]jjjlllSSS;;;*** ---DDD>>>IIINNNQQQSSSUUUUUUUUUUUUWWWZZZ```jjjttteeeXXXMMMBBB;;;666222,,,'''"""  &&&///777@@@IIIRRR[[[dddLLLTTT000(((&&&HHHssskkk***###,,,555===GGGPPPXXXaaaWWWRRR===444 ???gggwwwQQQ  ###+++111666999;;;<<<<<<<<<<<<========================<<<888222&&&  """...666;;;=====================<<<:::777333---'''!!!  !!!'''---444<<>nn~~7!+):: */04>!808" D-D"6)88(+!!7!*)--E;67< !-&7"5> ####=-46 /9  2+)!<-!!#=7>, " (C8*!+1  -,2#" /9!!+)##F22E-!77#D 225#2-& $F1!7*("#=#8222E,:-*/C8 1)*=======77!+;<<<-)+!77!)4 EE2=2==2=>668><<-&1C0))000C148==222=8C9; #D<<:"10)/70;8$-:<.DE===#==###=##" DDD 44885 "##;;========/!!9/;8### 0!7!/"###EF225;()#/* :<<">!!7/9#<:-5+77764"##%#859)1#)/!D <10!!(C#=FFF "!+# =#22225>"- E779;6"C$:<(+9"#= 8==!9;:<)+7!F2222##"88&85 > ""FE#587!918."8!!#810):<...2#########2 ;;)) "/!====77C4>"-  $!!7!*"8F2=2;)"#0/*C-;/*!7"<<0..<:"77;05 ##<0=#109! <:5*!9)66FF,"**F#222=85"::D 7+)"+; :)(8>#=" 2=)!9<>)1FFEFF222= <:""#=22FE$E" /9!!!;0",9!7">50;04....#58$9*++>"9!#===)()85"# ,9*777!>"E==4#5)/+; &60(+82"$-.:-+;01###<()## 5/9::(+7!/)22 %::+(::<##22=2" 68#<- 1!>")+-:518#225!,-<<"!!65=2222#"<<=2$ %%%DD F2)(+7!+( "2;+* "(9**/;#D.... ""#=#"> $!!!!"*!)"==#4*/0>"# :&>(!!8   E2204#)/!/<>)(7)C8''97!"..!!*/;C4 & ,%$"0)E<C)!!*##5)>$- 2/(:2==")C:-E8 6)9 ;)C5"#EE%: 15#2F$% $22=#,:.    &&  %"0)*!!**+5 :);1!9..:8>##$!77>"!===!!/)45F -D/9771822501)7*+ :"67*+ <- /9!764 ,$77!!" 9!77!!9()& D8/<8*!4##">6)FE-<<581))>""-< E=#=#=2=2==#")))" :: E15#8C(9! <#=#$08 65"#=22 DEF==##=22%<,---&  F5;(++**18.<6))#0/7!)C4=D:&"88> >58+! !7"===!*/)C"#F:&0;/!)68#5EFE "=#1)7+1&<<E8;/!!$0/*()#2  3&!*45)/7# );"(/!!045EE-:"81 -:<2###=2EF2#">)((65 D 04##4*,&< #>"##% (0 :5"22F D F====22#<3<::<<<::--  16);+9/;01:<C/)##)9!7+(68.:  24888"##" 5)/70851;*!4===*!*;)4"<<: 5;+**+)8 "#">E EF22=2FE88>### 86;9!!*)%, << E" 1C)(9!!75 <<*+## %,-.)/*!01>" "77>"##"41-0)++)6# 2,&-:2FF2"6)+//01 :. D77(C#"5  =4 == ,*/"%:""=22 D DF2====22& B<<<:<:::<:<-41)/!*)0-<F87!* "!*&& "1)==718<!!"##$%& '  $(!)68B- 9*!7785##"  &:6));0##;5-:"--==86/)  5/9;  !ED:<>555 22&77!*< 2F  , =#=====2> ' ---<<<:F#""6)!/) &<  77#8 !--551"!7==;0<  ##A:*!C1##" D<<800###58++ &<##*9 :- !+)1#"6(*!1D -:: 2 >>"=2FF=#&- /9*!!77*)12:<<<&& E D E#=======82' && -:<<.< 2=# 6;9!!*9/$, -:<.&E777 "####8>::5"8"!7==9/<  #?@ ;/)C  :<< 11485 ####">46); ##540(+7C85#=5>7>> 4=22!!>2+(lmarbles-1.0.8/src/gfx/win_icon.bmp0000644000175000017500000000304607523032603014125 00000000000000BM&&(  ||000r  C !!>>++ # 44kkll.. D 99yy`` N (( E Y $ 5 \ 3  . A < *  ===ggg```???888mmm>??iiiqqqwwwEEF!#$hhhyyy^^^==> ">>>oookkkFFF(*+89:GGG456$&(!"# !%%=>?@<56789:;<./001234&'()*+,-% !"#$%  %%n%%{%%=>?@<vwwxyz=>?@<56789:;<opqkrstu56789:;<./001234DhFijeklmn./001234&'()*+,-%C`abcdefg%&'()*+,-% !"#$%CZM[\]S^_% !"#$%BSTUVWXQYC KLMNOPQR  EFGHIJ BC%D%%=>?@A56789:;<./001234&'()*+,-% !"#$%  lmarbles-1.0.8/src/gfx/figure.bmp0000644000175000017500000000470607441477113013615 00000000000000BM &( x )*+NNN```567 VVVsssJJJ{{{hhhCCC  # N \.QBB88<DJJ\\f ))ff#2p Na.  BB55 v>JJ]]pT ~~"4::FNN`b-.,;qq=?JLWZ\m~~!!QT 21NPba)*UVB8 qq;?JMJ\)f~"22-2DYBB88}0JJRRm))``~~"NNZ[,.  ?vv9<]5pp~"/2bfBFNQ*2(44GZBZr:Od,=PrRzNn_[Rz>Ti*6JlBVnrxKf.?PF^v ''5E ,$:."n=*08(vVAN:eNG35"it`N:.j}h"r"Z'u,TOjX4\2 \"nf;va?q?&NR~dI^:j.l6ll.36*$*)43*43*43$$423.)*lнźŽǼlͼŹ̹κ˼̽ŽlÿL==L=.~xx~}}x~s|wwwqr~s}p{|r~q{uzutq}sp{zyt|xsuz{qxstzztp}x.ouyzuu{|}~otutvwoxnopqrshYYhlbeTcbbmhTagUUaebmhYUiii_WUXbYlaV^]]]^kUXbhW]\\\[]^WacYV]`ff`[ViUjYU[\dff`]Wgehc[``dd`[_aeZ[``[[]_abZ[\]^_ZTTUVWXY=O<?@?9AB7789:;<3436)$$*)43$5((5*434#(-*-''''"-43'!&! '"5$ &,,%/#$4/0121&'(3* %++,& #-.!%&!!'() ! "#$            lmarbles-1.0.8/src/gfx/board.bmp0000644000175000017500000027440607206511324013421 00000000000000BMy(w  ttSSv??Z/.C;))=+$!). "33JYZFGekj::S22I>>Y##6++@eetqqn{{OPp~~YZ88QJKkc`QQt00Gnk[\yv^^)55500%*"""""""""!!"""!""""""$#!!!!!!!&330***0""""""!!!!""""" !!!!!!!W)9%*%MM0 """""""!!""$ !!!? 5M*%0000"""!!""!!!""""""""""$ # !!!!! !E34%M%"""!!!!"!""""""$ !"!!!!!!!#!!! &3(( ) 'EX25OJ(% %%0!!4 +%*(L ))I2IO ((%%%%%%%% %!'%*%(P'L LLHH  %%%%%%%P!%%(((J )PP (*%%%%%%%$(! (P( L) ( (( %%%%%%%%%$*!!  0BBDo???7)         0      % 5    ! BeVDo@DA&)                        !"  BVVdF7;A+           Q         0   0!!" DFBVF?775         Q              0 'Q ! 0A<<<@577     ' '    0  PJJ11JPPJLJkii9JPP JJP PPPP  Q    !4 *(((%1% %%% !4** *%%%%%%"*  **%%%%%%%% "J)***%%%%%%%%%%%%(L"%(**%%%%%%%%*%%%%"Q "***%%% %%% %%%%1%% %%  """**%% %% %%%%%%%%%%%% % !""!!%% %%%%%%%  !4%%% %%%%%% " %%%%%%%% %% """%%%%%% %%! ""%%% %%%*%%%""N*%%%%%%%%%" %(M%%%%%%%%%%%%%%%%  !%%%%%%%%%%%%%%%%%!"!%%%%%%%%%%%%%  " %%%%%%%%%%%%%%%%   "#*%%%%%%%%$:$""  R%%%  %%%%%:" R% *( %% :$"R %%%% **%$:%%%%%0 """"4: !%%%%%%%%*%'L(%%%:b%%%%% """%%%%%%0 %* 'J%%:b%%"""%%%%%%%%  * (P %%$$%% %%%%""" %%%%%%%%%% **%%%% **%%""" % %%%*N%%%*% %%%* "" %%*%%%%%1%%%%% ** "" % %%%%%%% 11%%%%% *%%%J (*%% """  ""$% %%%%%%% %%%%% %%%%% %%( %% "" % %%%%% %%% 0%%%%%%%%%  %% *""5 %"$$%%%%%%%%%%% 0%%%%%%%%%%% %%% P% ""5 "$!%%%%%%%%%%%%%%%%%% %%%% (%% """ %%%%%%%%*%%%%%$%%%%% *%0% %%"" %%%%%%%%%*%%%%%%%%%%%*%% *0 '%"%%%%%**%%%%%%%%%%%%% *% % %"%%%%%%*%%%%%%%%% %%%*%% % L%""%%%%%%%%%%%% %%%%%% %% %%%*%%%%%  *%%%%%%%%% %%% %%%%%%%%%%%%% %0%%%% *%%!" %%%%%%%%% %%%%%%%%%%%%%% %%%%%%*% **%%% "  "%%%%%%%%*%%%%%% %%%%%%%%%% %%%%%%%%**%% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%* %**%% ! " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%*%% !! ! %%% %%%%%%%% %%%%%%%%%%%%%%%* !%%%%%%%%%%%%%%%%% % %% %%%%%%%%%% %%%%"%%%%%%%%%%%%%%%%%%0 %% %%%%%%%%%%%% L ""% %%%% %%%%%%%%%%% % %%%%%%%%% %%%  !""%%%%%%%%%%%%%%%% %%%*%%%%%%%%%%%%%0 %""""1%%%%%%%% %%%% %%%%%% %%% %%%%%%%%%%%%%%"1"%%%%%%%% %%%%%% % %%% L %% %%*%%%%%*%%%%%%%""%%%%%%%%%%%%%%%%%%%%*%%%% ' %%%% %%%%%%%%%%**%%**%%% %%%% """%%%% %%%%%%%%%%%%%%%%%%%%%'L' 1*%% %0%%%%%%*%%%*%*% %%%%"""%%%%% %%%%%%*%%%%%%%%%%%%% L''***%%%%%%0%%%%%%*%%**%%%%%% &%%% "!%%% %%%%%%%%%%%%%%*%%%%% LL'1%% %%%0%%%%%%%%%%*%%% +%%%%% %%% %%%%%%%%%%%%%%% ( %%%% %%%% %%%%%%%%%%**% &%%%%%"%%%%%%%%%%%%%%%%%% %%%* *%%0 %%%%%%%% %%%%%%%%%%% +%%%  "%%%%%%%%%%%%% %%%****%%  %%%%%%% %%%%%%%%%% 3% %""%%%%%%%%%%%%%%%%%%%%%**%% %%%%%%%%%%%* **%%%*%%%% &&% %  """%%%%%% %%%%%%%%%%% %%% %%%%%*%%%%*%%%%%%%%% &%   ""%%%%%%%%%%%%%%%%%%%%%%%%*%%%%%+% %  %""""%%%%%%%%%%%%%%%%%%%%%%%%%*%%%%%%%% 3% %%   %""%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*%%%%%*%% %%% &%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1%%%%%% %%%"  &%""%%%0 % % %%%%%%*%%%%%%%%%%%I&%%%% &%%%"% %%%%0%%%0%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%4%% %%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%% % %&&%%%%%%%%  %%%%%%%%%%%%%*% %%%%%%%%%%%%%%%%%%%%%% %%4%%%%%%  % %%%%%%% % %%%0%%%**%%%% %%*%%%%*%%%*  L%4 %%%% %%%%%%%%%%%%%%%%%%%* %%%%%%% &%%%%%%%%%%%%% *%%% %*%%% %%%*%%%%%&&%%% %%%%%%%%%%%%%%%%% **%%%%%%%%%%*%%%**%%% %% &5%%%%4"""% %%%%%%%%%%%%%%%%%%**%%%%%%%%%%%%% %%%%%%%%%%%% % && %% %"""*%%%%%%%%%%% %%%%%%%%%%%%%* %%%%%%**%%%%%%%)& %"%%%%%%%%%%%%% %%%%* %%%%% %%%%%%%%**%%%% %* ) ") %%%%%%%%%%%  %%%%% %$%%%**%%%**%%%%%%%**%%  $" &%%%"%%%% %%% %%% %%%%*%% :%%%%*%**%***%%%* **%%%*%%  %%"""%%%%%%%%%%*%%%% %******%%%%%**%%%%% * **%%%%  %""%%%%%%%%%%*%%%%***%%%%% %%%%%%%%*%%%%%%%05%%$  %%%%%"%%%%%%%%%%%%%%%%%*%*%****%%%%%%%%%%%%%%  5%%$   %%%""%%*%%%%%%%%%%*%% %%%%*%%*%%%%%%%%%%%%%%*%%! %%% %%%%%%%%%*%%% %%%%**%*%%%%%%%%0%%%%%%%%% **%%  %%%"%%%%%%%%%%%%*%%   %% *%%%%%%%%%*%%%%%  ** &%% %%%%%%%%%%% %%  %%%% **%%%%%% %%%% %%%!)E%% "%%*1%%%%%%  %%%% %%% % %%%%%%%%%%%%%5 %%%)' %%%%%%%%N%%%% %%%%%% %%*%%*%%%%%%%%%%*%%%%%%"")%%%%%%%%%%%%)'%%%%%%%**%%*%%%%%**%%%%% %% %""  "%%%%%%%%%%%%%%%%%%X( %%%%%%%*%**%*%%*%%**%%%%%**  ""  "%%%% %%%%%%%%%%%i(1%% %%%*%%*%*%*%%*%%%%%%%*  "&  %%%%%%%%%%%%%%1 %%%%%%%%%%***%%%*%%**%%%%%  "&3 %"""%%%%%%%%%%%%%%%%%%%%%% %%%%*%%*%%% ",+& %""%%%%%%%%%%%%%%%%%%%%%%%%*%%%%**%*%*%% ++&&)%%%%% %%%%%%%%%%%%%%%%%%*%%%%%*%%%%*%% *"&&)% % %%%%%%%%0%%%%%%%%%%%%%%*%%%%*%%*%%%%**%%%%%  %!&&& ""% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*%*%%%%%%%%%%*%%% &  %%%%%%1%% %%%%%%%%%%%%1%*%%%%%%%%%%*%%%%%%%%%%%%%% )& %"%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% % ) & %""%1%%%%%%%%%%%%%%%%%%%%%*%%%%%%%%%%%%%%%%%%%%    &&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*%%*%%% &&++% *%%%%%% %%%%%%%%% %%%%%%%%%%%%%%%%%%%%*%%%%%%% +&+++% %%%%%%%%%%%%%%%%%%%%%*%%%%%%%%%%%%%%%%%% %*%,-+++%"%%%*%*%%%%%%%%%%%%%%%%%%%%%%*%%%%%%**%0"+++&+%%%%% %%%%%%%%%%%%%%%%%%%% %%*%%%%%%%%%%%%%%%%%*% "++-,,%% %%%*% %%%%%%%% %%*%%%%%%%%%%%%%%%%%%*%%%%%%%%%%*%%%%%%%L,+,++%%%%%%% %%%%%%%*%%%*%%%%%%%%%%%%%%%%%%%*% %%% %%%%%%% "++,++*%%%%% %%%%%%*%% %%%%%%%%%%%%%%%%%%%%%*%%%%%%%% "&,++%*%%%%%%%%%**%%%%%%%%%%%%%%%%%%%%%%%%** %"&,&5*%*%%%%%%*%% %%%%%%%%%%%%%%%%%%%**%%%%%*%  %++&&&*%%%%%%%%**%**%%%%1%%*%%%%%%%%%0%%%%%% %%%%%*%%  %""""+++,&%%%%%%%0%%%%*%%%%%%%%%%%%%%%0%%%%%%%%%***%%%%%%5 %""++++&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*%%%%%****%%% %%%%% %++++)%%%%%%% %%% %%%%%% %%%%%%%%%%%%%%%1%**%%%% % %% %"++5&%%%%%%%%%%%%%'%%%%%%%% %%%%%%%%%%%%%%%%%%*%%**%%%%%*%% % %%R&&%%%"%%%%%%%%%%%%%%%%%*%%%%%%%%% %%%%% %%%%%%%%%%%*** *%%%%*%%5  %&3%%%"%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %*%%%%%%%*%%%%%%%%%%%%%%%%**% %%%%**%%%%%%55  %&&3%%%%"""""%%%%%%%%%%%%%%%%% %%%%%%%%% %%%%*%*%%%%%%%%%%%%%%%*%%%%%%%%%%%%%%%%5 %&&%%%"""%%%%%%%%%%%%%%%%% %%%%%%%1*%%**%*%%%%%%%%%%%%%%*%%*%%%%***%%%%*  %&) %"""%%% %%%%% %%%  %%%%%*%%%%%*%%1%%%%%%%%%%1%%%%%**%%%%*%00 & % """ %%*%%%%%%%% %%%%%%*%%%%%%%%%%%%%%%1*%%%%%%%****%%%% 6  %"! " % *%%*%%% %%%%%%%%%%%%%%**%%%%%%%%%%%%%%1%*%%%%%%%*****%*%%%%  3 %!"% 1%%%%%%%%%%%% %%%%%*%** %%%% %%%*%%%%%%%%%*%%%%%*%%****%* %%%% %##&%%%%%%%%%*%%%%%%%%%%*%****%%%%%%%%%%%%%%%%*%%%%*%%**%** %% ###&3%%%%%%%*%%%%%%%%%%%%%%%%%%%*%**%%%%%%%%%%%%%%*%%%%%*%%%%%%***%*%%%%%  ::3)%%% %%%% %%%%%%% %%%%**%%* %%%%%%%%%%%%* %**%%%%%%%****%%% #:) %%% %%%% %%%%%%%%%%***%%*%%%%%%%%%%%%*%%%%%**%*%%%% :' %"%%%%%%%%%%%%%%%%%%%%%%%"% %%%%%%% %%%** %%****(*%%%% #  %""%**%%%%%%%%%%%%%%%%%%%*%%%%%%%%%%%%%%% *%%*****%%!# %%%%%"%%%%%%%%%%%%%%%%%*%%%%%% %%%%%%%%**%%%%%% %%%% %**%*%%* %*%!#  %%%%%%%%%%%%%%%%%%%%%%% %%%% %%%**%%%% %%N%**%%%%% !# %%%%%*%%% %%%%%%%%%%%%%%% %% %%*%%1%%% **%%%%%   %%%%%%%%%%*%% %%%%%%%%%%%%%%%** %%*%%%*(%% " %%%%"%%*%*%%%%% %%%%%%%%% %%% %%%%%%%% %%%%% **** ***%*  %%* %%*% %%%%"%%*%%%%%%% %%%%%%%%%%%%%%%%%%%%%%% %%%* %** *%%%*%*%** %%    %%*   %%%%%%%%%%%%%%%%%%%%%%%%%*%%%%%%%%% %% %%%** ******* %%* %   %%%%  %%%%*%%%%%%%%%%%%%%%%*%%%%%%%%%% %*****%1%** %%%    %%%% %%  % %*%%%%%%%%%%%%%%%%%%%%%%%%%%%%****  %%%** *     %**% %%  % %%%%%%%% %%% %%%%%%%%% %%% %%%% %%%**% %%*1 %   ' %%%**%%%%% %%% ""  %%*%%%%%% %%%%%% %%%%*%%%%%% % %%% %*%%%% *%% 1 %%%% %   N%%*%%%*%%  %%%  %% *%%%%%%%%%%%%%% %%%%%%%%%***%%%%%%%*%% %  %%   %%% %%%%* *%%% &  %%%%*%%*%%%%%%%%%%%%%%%%%%%%%%%%%**%%%%%%%  %% % %%  *%%%%%%% 5!) %%%%4**%*%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% % %  %*1%%%**%   *%*%%*%%*0 EE+%"! %%%**%%%%*%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%** %*%%%%*%%%%   *  %%% %%%%*%%%%%%% %%%O&I,-%0"" %%%***%%%%%%%%%%%%%%%%%%*%%%%0%%%%* %%% **%  %*%%  % %%  %%%%%*%%%%%%O)+7 %%" %%%%*%%%%%%%%%%%%%%%%%%%%%%%**%%1 %%%% %   %% %%%*%%%%  5*%%!  %%%%**%% %%%%*%%%%%%%%%%%% %%%%%%%%%%%*%%%% %%%*** %  %  %**%%%%%%%%  )5 %%%%%%%**%%%%%%%%%%%%%%% %%%%%%%%%%*%%* % 0%     $%%*%%%%%%*0 ))% 5&**%%%% %%%%%%%%%%%%%%%%%0%%%*%  % 0% %1 *%%0 * *%%%%%%%%%%*%0  O)% ")*%%% 1%%%%%%%%%%%%%%%% %%%  %%%%0 %%* %  0 %  %  %* *"%%%%%%% %%%  OE%% """"1*%%%%*%%%%*%%%%%%%%% %%%%%% %%%%% % 0 %1 *   %%%1 $%%%% %%%%%%%) O% " 1*%%%%%%%%%%%%%%* *%%%%%%%% %%%%%%%%%*%% %    11%%%% %%%% **%%%%%%% *) )% & *%*606%%%%%%%%%%*%%%*%0%%%*%%%%% %%*%%%%  0 %  1%%%%%%%%%  **%%%%%%%  " &+*%* (M%%%%%'%%%*%%***%%%%*%%%%% %%%%%**%%%%  %%  1%1**%%%%%*%%*%% I """ 5+7%%*%%%*%*N1%%* * %%*%%%%%%%%%%%%%*%% %%%%%% %% % %    %%%%***%)  %"- 1%%%%%%%%*%%%%*% %%%% %%%*% %% %1  % %% ****O))) """38 %%%%%%%% *%% %* %%%  %%%*% %%  %% %*%* I) "" k2%%%%%%%%%%** %%%*%%%%  %% %%****%%%%%%%1%   %%%% )&) " %%%%%%%%%%* *%%%*% *%%%%% %%%%%* *1%%% %%% %%%%%%* O3O  (%%%%%%%%%%%%%%* *%%* *%%%%%%%%%% 11%%%%%%**%%% %%% %%$%%% %%O) " %%**%%%%%%% %**%%%%%%%%%%%% * *%*%%*%% %%%**01 %% *$%% %  O) %% %%%**%%%%%%%*%%*%%%%%%%%%%%%%%%** *%*%% % 1 **%%*%0%%%*   % )%! %%%%%%%%%%%****%%%%*%%%%%%%%%%%%%% %%*% %%% %*%%*%%%*%  % ) ) % " %%%%%%%%****%%%*%%%%  %%%%%%%%%%*%% %%*% *%% % %%% %%(*%%%"%0%%0 )  % "" %%%%%%%%%%%***%*%1%%%%%%%%%%%%%%%%*%**%%%%* %%*1%%%%(*%%$%0%%%%&O % " %%""%%%%%*%%%%%*%*% 1%%%%%%%%%%%%%%%%*%%%*% *1 %%%* (*%% %%% O%" %%$%%%%%%%% %% *1%*%%%%%%%% %%**% %* %*%  *%% :*%%%%" %%%%%%%% (*%%%%%%% %%%% *%%* (  %%%%  * %*$:$(%%%  %%%%*%%%*%%    %%%%%%%%%%%%%% % %** *  N *  %%  % %%*%* *%))&5% %  %%!%%%%%%%%*%%%  %%%%%%%%%%%%%* % ***    *%% %%%%% %%  * *%))&+% 0% %%%%%%%%%%%*%%*%%%* *    %%%%%%%%%%%%% %%%**** * **%% ** %% %%% %% % %*** %% ))&+ 04&%%%"%%%%%%%%%%%%%%%%*  %%%% %%%%%%%%%%%%%%  %***%  % *%%%%%% * *%%)3&&&(%%%*%%%%%%%*% *N  %%% %%%%%%*%%%%%* %* %%11*     %%%%%%  0 I)3&+**4 %%%%*%%%%%%* ( %  *%%% %%% %%%*%%%%%% %%% *%%** 1      %%%%   %E))I, * %%%%%6%*%%%%%% *%*   * *%%%%%%% %%%%%%%%%%%%%  % % %*%    % %%%%* %  % )+* %%%**%%**% *%%  L %%%%%%%%%%%%%%%%% %*0  *%*%  %*    +  &%%***%% *%%%*%1%  *%*%%%% %%%%*%%* %  *** (* *%     %  % E5  '&&&****%)kk%%%% %   N**%%%%%%%%%%%%%%  ** *  % %*  %* *     %% % E* 4&3&&&**%*8'%%%% * %%%%%%%%%%%%%%%%%%  ** *(*1*%%    ( %% %  %% "&&&,+%6""6""666""6666666666664"44"%%0%"46+&&,+64""66 6664"%%%4&&&+&644666"6666Q6444"44""44"""!*%%&&+66"666664 44"""44"**44&& "!66""4"66666640 006*%%&&%%%%%*%%*  %% *%%%**%%%%%%%%%%%%*  * *   % *%'NNNN%* 111N%%%%%%%%  %%%%***1%4 3&&%%%*%%%*%*  %%%%*%%%%%%%%%%%%%%%%%* **   1* 1%*%N % %N%%%%%%%%%%%%%%**%%44 &%% * *%%**   %%%%% %%%%%%%%%%%*%%%% *  %%*%%   N% % 1   %**%%%%*%%% %%%%%%%%4  3%% *%*%** LL%*%**%%%%%%%%*%%%%%%%%  %%%%%%%%%  N1*  **%%%%%%%%%%%%%%%%%%%  %%%%%%%*%%*%*%**%%  'LkLkL' %%%%%**%%%%%%%%%%%%%* % %%%%%%kN *% *%%%%%%%%%% % %% %%%%%%%%*%**%%% -C-/@;V;;<'P (%** N kP(P**%%%%%* %*%%%%%**%%%* %%%%1%%%%%%%%%(5 $$:s $ 811J H%"%* N '( (*%%% %%% %%%%%%%%*%*%%*% %%15+ $!:: '**(JH %***% ('%%%  %%% P%%%****%%%**%*%1%%%%% 0 %57+ ### %(P(%%*%*N( %*  (*%%%%% (%*%%**%%%%*% %%%** 0 889"##  P(**%% ( (**%%%%% *%*%**%% %%%%%% 99$ %PLPO % *%% P )  '' *%% P%*%%%***%%% *%%   R (LO P P%  % 'HkP ''  **%%%%*%%%%%%1%*% !R:*'OPPL **%% %% () 'N  (***%%*%%%%%%%%% !#1PL L(*%%%% %%%'(%''N 1%%   %%%%%%% !%1( P ) P%%%***** %%% (''k  (%%*% %***%*%%%%%% ( )K)(P(%%%%**%%%* L)kk *% (%%%%***% *%%%%%%%%%%LL!*1J HKE)O P***%%%*****%1(  'N **% *%%%%%%%%%%*%%*%%%%%%*%%%%!! ( HKK) (*%*%%%****((J(1 * 1 *%% %* %%%%*%%%%%$!!% *(J)HHKK ((P%%%** *%  ((((( ( 1*%%% %*%%%%%%%*%%%%   %*1( LKXX)  (%%**1 * ((*   (1*% %%%*%%%%%*%**%%%%% %%%%%**JHYXH J*%%*(*** 1*1 ((**  *%%%%** %%%%%%%% 5%%%%%%%%1' (((1 %**( **%** (**  * %%*%%( %%*%%%%#%%%%%%%% %%( O(1(((%%%##**1( %** L (* %** * % %%  %%%%%*%%$#!L5*%%%**%% %1NPP(*%%% **1(1*%%%  ** %%%* *  %%%%%%%*%#L **%*%*%*((1%Q%Q %*%%% * * % %*%%**  %%%%%%%% L5%*%**%%%%%**%QQQQQ%*%*1***   *%%%*%%%%*%  %%*%%%   ***%%%% %**%QQQ%4%%**1*(****%%%%%%%* *% *%%%%" ! 5**%%%% % QQ%Q1"%%**(* *%%%%%* * **%  %%%%%% ! 5%%%% %***%** *%*%%%* **% %*%%%%%% 5%Q %4**%*%%** *%%%%%% **%1%%*%%%%% %    %%(%**(%1*%****%% **%%%%%%%%%%   0 %****%%*%***%%** %% % %%%%%%%%%%%  !0** %%%*%****%* %%% *%%%%*%%% !%%%%**%**%%%*% *%% %%%%%*% % !!!QQ %%%**%***%%%% 1%%%% %%%%%%  !!! !!Q%%***%*(1*%%%%%%%%%%  %%%%%*%%*% !  Q%0***%(1%%%%%%%  %%%%%%%%%%!QQ%*%*( %%%%*   %%%%%%%%%%%*%0 "!%%* %%%%*  %%%%%%%%%% **( %%%%%%* %%%%%% %"!"""%%***%* ('**%%* %%%%%%%% %%""""%****%%11LjN **%%%%1%  %%% %%""!"""%*%%**( I %% %%%% %% "" !""%%*%(L*%% %%%%% " ""% %1(( *%%%%%%%  %"" $""%%%%*(****%%%% Q %%" !""%%%%%%%*******%%%%  %%*%% %%%%%%**% %%%%  ** *% %% %%%%% % % %%%%%0%""*%   1*% %%%% %%$% %% !  %%%%% $:M%%- "! %%%% :6%8!  %% %%%!$$ $%! %%%%%%%"$: * %%%%%%%%"$(P%!  %%%%%%%%"$Q*(P*%% "" 0%%%%%%%"*(* %" %%"$*  ""  0%%""" *(   """" %"""1(%  0""""   %%"" ((%*%%) "  %%%%%%"""%%%%%%%) %"  %%%%%%""""% %%%%%%&&%%%%"""  %%"""*"(%%%%%%%%&&%%%%"""  %%""" "*(P%%%%%%&&%%%%%""  %"""J%%%%%&3%%%%"  %%%""""((%%%%%%&3%%%%""  %%"!( (%%%%%%1%%%55&%%%""" "%* (%%%%%%%%%% &%%% %%%"" %"" (%%%%%%%%2% %%%%00""  %*(%%%%%%&,&+5*%%%%%%%"" 1%% % (*%%%%%1,,+C+%*%%%%%%%"" (Q  1*%% %%%%1,,,+,%%%%%%%%%%"" " %%%%%%%%% %%1,,,,,%%%%%%%%% ""%%* *%%%%%%%% %%1+8&,+%%%%%%%%00"(QQQ%%% *%%%%% %%%&83,,%%%%0%"  %%Q%%Q** % %%%%%%%%%%%%%%%&8+881%%%%  % % %%Q0% % %%%%%%%%%%%%%%%%%%%%1&3&&&1%%%%%0 ! QQQ%***%%%%%% %%%%% %%%%%%%11&&3,+%%%%0""  !! MQQ%* ***%%%%%%%%%%%  %%*11&,3,,%%1%%"  %! %Q% %%*%%%%%%%%%%%% %%% %%%1&C&+,% %%%%""+ ! *%% %%%*%%%% %%% %%%00%%&,&&& %%% "" 8 !%% %%* %%%%%% %% %% %%%%% %&&&&&% %%%%%%%% """ %% %* %%%% %%%%% %%%%%%% %%1,&&++%%%%%%%%%%" $! %%%%** %%% %% %%%%% %%%%+&++&%%%%%%%%" ! %(%%%**%%*%%%%%%%%%%%%+&&,&%%*%%%""  %*  *%%%% %%%%%%%%&&+,,% "" !0*% %%%%%% %%%%%%%%%%%%%%%&&+,+%%%%""" :%%% %%%%%%%%%%%%%%%%&/+++ %%%%%" b!%%%"  %%%%%%%%%%%%%%%%%%%%+V++%%***%%*%%" 6%:!%%% %%%%%%%%%%%%*%%5< /5%%*%%*%" 6%!%%%   %%%%%%%%%%%% @+%**%%% !%%%   %%%%%%%%%%%% 8,%%***%%%%%%%%%  %%%%%%%%%%% +%%****%%*%% %%*( %%%%%%%%%*%**%% 5%****** *% %%%)J%%% %%%%%% %%%*%%%% %*%%* %%%% %%*)1% % %%%%%%%%%% **** % %%%%1%%%%%%%%* &%*** * %%" %*1(%% %%%%% %%%% * %%"%%%%%%% ((%%  %%%% %%%%%%%%* %% % %%%%%*((*%   %%%%%%%%* %%%%%% *((%   %%%*%% 0 (  %%%%%%! %!% )J  %%%$ ) %%  %%%%"01   %%%% * ) %* (%  $$ *(   "$$   %( %% $  !N % (* :$!!% *( *J(%% % %$: %J( %% % !:%"(( '(%%* *%# %1Pj( )%*% # %*H )E( %%%%%R ""!!"4%0 !"!!!!"""!"""""""  %""4( """!!!""""""""""""!  %*!!""0'J1""""!!!!!!""""""""""""! %! !!""6i'6""""""!!!!""""""""""!!$ ! "0iO """"""""""!"""""""""""""""!$ %('ZG23S%%%%%%%% %0  %% %0%('L2h.Y3%1%%%%%%%%%  %%%!  %*( Tff?K % %%%%% %%%%% %%  ! %* Kh.g+3%%%%%%%%%%%%% %%%%% 0%%%* KhggZK %%%%%%%% %%%%%%%%%%%%  %!!%*I..GZK %%%%%%%%%%%%%%%%%%  %%%%!!  *()2?h.KP%%%%%%%%%%%%%%%%%%%*%%%%%%%*%!  LKZGhK(%%%%%%%%%%%%%*%%%%%%%%%%% %%% *% %*(Hg.fH( %%%%%%% %%%%%%%%%%%%%%%% %%%% %% %(P)Z.fY( *%%%%%%%%%%%%%%*%%*%%%%% 0%%%%    ;>;d^]a]e-5    &3&8+3&&I&&&&3 &)&&&3&+5I)I  %%%   L    5?>FV_]ac_-&     L 8&&&33&&&&&&&& I))&&I3&5 5I  *%%%%1Q      >@V_]a]U/&    &&3)&&&&&&&&&& &))&+&3++& &&&&& %%% *  L   77U`]]]B/5   &&&&&&&,&& &)I&&&&8&& &&&*%%% *  LLLL  5/\]^_^V>  55&& 3&&&&&+&& &&I&&&&3&&&&&)+%%%!%%**([Z2++KP%% "%%*%%%%%%%%%%%%%%%%%%%%%) % *HKK++5*%%""%%%%%%%%%%%%%%%%%%%  % %( KKZ?K(%%%%%% %%%%%%%%%%%%%%%%) % %P3K5Z2(*% % *%%%%%%%%% %%%%)  !:$$"% %HY2ZHK(%%%%%%**%%%%%%%%%%%%%%% )!!$$ 1%*(LK22EK%%%%%**%%%% %%% *% %%%%% %$%**( IIK) %"%%%%%%%% % !!%%*P )KK)(%%%**%%%%%%%%% % %%! * %%*P))KK)%%*%%%*%%%%%0% %&& %!"% ('XK)L*%%  %*%*%%%%%%%0% %%&& % %%(( KK)(*%%%%%%%*%%%%%%%&& %%!!! !"%( ))(*%% %%%%*%%%%%%%%&&   !!" %%%%( )EHP% %%*%%%%*%%%% %&& %%%  !4%00%( ))LK % %%% *%****%%%%%%%%%&&%% %%% %%% %%%*(L) J%%%%% %****%*111%%%%%%1&&&%%  %%%%!"% %% (J) '( %%%* %%&&&%%%%%%%%%%6%% % %* )'L  %%%%%%* %%%&+%%%%%%%%%%""0 %%%*%%%** ) )1 %%%%%*% %%&%%%%%%%%%!! ""6% %  %%%%%%%%%*))))%%%%%***%%%%%&&% %%% %%%%!!!%""%%%  %%%%%%%*((LHLL0%%%%%%%%%%% %%%%%*%3&&%%%%%%%%%%%%!!! ""%%%%%%%%%%%%%%%%* ( H) %%%%%%* *%%%%%)&&%%%%%%%%%%%%%%%!!!! "" %%%%%*%%%%%%( H)H %%%%%%%*%%*%%%%%%%%%%!!!  """ %% %%*%%%%%%*HEK)H%%%%%*%**%%%=&*%%%%%%%%!!!! """%%%%%%%%*P)K5E)'%%%*%%%%0%**%%8&&&0*%%%%%%%%!!!! $$%%"""(%%*%%%%%%%*JH)I)%%%%%%%%%*% *%*%% %&&%%%%%%%%!  %%"""""0%%* !!!""446!!!!!"%%%%%%"!!  %%"" """0 !!!!!!"""""4"64!!""%%%%%%%%""! %" !R"""0!!!"!!""""%%%%%%"  ":""0"""!!"4%%%%%% %%%%"" """"""1""""""""""4"%%%%%%%%%%"" %%*%%%%%%%%%%%%%%%% ('E)(%%%%%%** %*%1%%%%%%% %%%%%""" %%%%%%*%*%%%%%%%%%%%% EL(% %*%%*%%%%  **%%%%0%%% %%%%%%" %%%%%%**%%%%%%%%%%%% %1(( HP %%**%%% %%%%%%%%%%%" E  0% 1%%%%%*%%%%%%%%%%%%%%%*1**H %%**%% *%%% %%*%%%%1 %%%  ) %%%%%%%%%%%%%%%%%%%%%*** %** *%%**%%%%%%%%%     O &&&& LL++++&+++++&5  &  &557A@FW.     LLL 5+C+3,++C-++&5 &55 5 &&&&&&&&UV&&&&&&&&)%%%        &&&))  5+++&+,++&5+55   +5+87@VG8     LL 5&++&++++,+5&& &55 5&3&&&&&+&)&&3&&&%%%0      &&&)  9+5+&+,++&+5     +5577@U@8  LLL++&,5&&,,++++55 &3&&&,+))&&&+&&&%%%%4         &&8 )+ 52+&++++55&    +5577@U<)     L9  +&+&5+ &,,+5++  & &&&&&)& &3&&%%4   %       &&&  & &++&&5+55)555    &+5.>FU<)      9%&&55++,-5+++5   +&&,&5&&&&)&%   "%%% %%%%***%%***%%%%%%*  ' %%* %%****%%%%%%%**%%%&%%  %%  %%%%%%%**%%%%%% % )' %%%*%* %%*****%%%%%% &&%%  "0%% 1*%*%%*%%* 'S)K' %%%%***** %**%*% *%%***%%%%%%&&%%"  $  %%%%*%*%%%*S33T %*%%%***%%**1  %%*%%%% )%   :  %% %%%%%%%*%%%%%%%* KK %%%%%%%%% **%%% %** **%%*E% %" : %%%%%%%%%%%%%%* )))%0 %%%*%%***%%% **%*%%%& E% " $! %%% %%%**%%%%%* ''L'%% %%%*%%**% **%*%0%%*%%%%%%%%"  ,!! %%%%%%%%%%%*%%%*((J(% %%*% **%%*%%%%%% %%%E &%%%  +%! % %%%%%%%%%%%%%%%%N(**( 1  * %*****%  %%%%%%%%)  %%%%%4 )  %""% %%% %%%%%% ( (% %*%  *****% 1 (*%%%*%%%%  %%% ) E%%%"""%%%%**%%%%%% %%%% ((%% % (  **(   1 %%%%%%%%% %%0")  %%"%%1 %*%%%%%0%%%%%%0* (  %   %1%1 %*%%%%%%  %Q"O I%%4 *%*%*%%%%%%%%%%1(* %*%   ***%*% %%% %%   E%%%% %%%*%*%%%%*%%%%%%%% %***%%%%(**** *%%%% )01 )""%%%%%*%%%%%%%%%%%%% % (* %%*( * ** %%* %" "  %%%%%%%%%%%%%%  **% %%*** ***%%%% "&""0% %%%%%%%%%%%%%%%%% %****% %% % ) ) %%"+&%%""""% %%%%%% %%%%%%%%%%% ****%%**%%%%%  %%"5%" %%%%%%%%%%%%%%%%* *%%%%****%%%%%*%*%%) %"%%%""0 %%%%%% %%%%% %**((( %*% %**%***%**%%%%%%%)%%"! &"% %%%%%  $! %%( (( % *%%*%%  %**%%*%% ") ) %%%%%$%((P(*%**%%*****%( *%%**%%  %! ) ) % %% %%%:(P (P****% ******%*%%***%%)  !   %% %%%%1 ( (%*%%%***%%%%*%**%%%%**%%%%%  !) " %%%%% *(( (%**%%%*******%% ****%%%%%%%   "%%(P (1 %%%%********%*%%%%%%%%    %( (Q %%%%** 1***** %*%*%%%%%   %%**(P O( %%%%*****% * **%%%   ! %%%%*%*PO L %%%%%*%% (  *%% !  3#%%%*L)OJ   %%%%%%% (*%%  !  %%%"%*PH))L(*%%%%%* ( !   %%%*( )H) (*%%***%% )  "%%*(LL)) %% **%%%%) %%%% (JLLLJ1 *%%%%& %"%% *PPJ(%%% %+5& %%%  *J%*%%"%  "+5,&&% %%%% %(( %%  +55,&%%%"%%%% J1%* :39955%%%%""%%%%%( J* %% L #555 %"J( %  5#+8 %%%%(%Q%%L55% %!% %%%0%%+5 % "%%%1%*% %%!55 %%"%%%% ( 0 %%%*%%%0 !+5%%%%%(J% %%%**%%075+  %%%   *((*% %%*%#-5, %0% %%((*%%%%*%%+5%"4*1% %%%%*% &5%*64% " %%%%% %%&%%%%1%%*% &  %%*%% %%%%%%%%% $ &  % *%%% (1*%%%%%$# &3  % *%%%%% ( (1%%%$"3 %%4%%%% (P %%$&+&2 %%*%%%*(%%% $&++-+%%"*%%%%$ **(1% $,++--!$*%"  %%%01%%% %$+++-/0!!**1%*%% % %%%%1&++,.%"! ****%*M%1O *% %%)Q&+++-"%***%**% (% O %%  L&++,"*%%%%%** *(%( O(%%L &&,""%%%%%%**% "%( O(%%   +&+ %**%%% % PPO(%*" ")&& %%*%%%%%  O(%  %""&&%(%%%%%! ( )HE *  "&%%'%%%%( O)K))*   %%%" ""%%%%()O )))  %"""   %%%%%%* KO ))E "  %%%%%%*  )))) L % %%(') E)IE %L ! !!$!!!!"1 ** %!!!# ! ! !!!!!!6%N *!  ## !!!!!!!!1% *!!##! !!!!$"!"# !!!!!!!!!! % *!!##   $$ $"  !!!"!!"0JM*M!##!$#$$#"%%%% J)K22 L % %%%%% (EIIE   %%*%%%%% 1)+H  %%*%%%%Q"  (* %%%% %% % (( %%%%%%%% %%         3DF??G??+    % %%  % &  & 5&+&          )  +ADB?ECD58      %   && & 5+++        /7@BACC55   %6     &, & &+&5&+++             5@>@?A7>??5   %% %     &L 3 +&5&++&+,       ,  257;<=>/77?8 3       +5+ &&+&&& +&+&,+++++lmarbles-1.0.8/src/gfx/marbles.bmp0000644000175000017500000024206207441476746013773 00000000000000BM2D2(@@ ...JJJRRRNNN666" >>>ZZZ222jjjbbb^^^"&*rrrzzz  %) 6zY*gI ..BBYRRfN``2ypv"!zf:oZ&bzJ *j..BBRR``62uu26jjZZ(*zzNNAHsv .BbbRd"22.22{' &6FBVn>Rf6FZ"0=:j)@*:N4]07oo^]#*BJzz jj.NNBR`22r+JzZg 3..BBRR``ww9:ooZZbbzzFJvz jj. BR`.6w.2:J_:Nb.>NJfJ^vNjNrRzV^jt 2*N#^26&*zJ6>*"nR>gVB^FrZ7BzV^ZQ*f"Jrl z).BR`Z}  # 4} ~~# ~4~ 4}4#}# 4  *~ 4 # *~ވވ눈~~~Jވ 눈ވވ누ބ~󈄄ވ눈ވ눈ބ눈}눈ވ섄ބ섄J넄섄}ބ섄ވވ섄Jބ섄J󈄄섄섄}ވ섄J섄섈섄}݈섄݆섄섄섈섈݄섄ވJA݆숈섄#섄J섄섄섈4섈섄숈4섄섈섈섄섄ވ섄섈섄섄J#섄 섈섄J섈 4섄섄섈섄섈섈섈섈섈숈섄섈J섄섄~섈섄섈 섄#섄 섈#섈#섈 섈섈섈섈݆섈섈섈섈}숈섈섈~숈섈섈섄섈섈섈섈섈섈섈}섈섈숈섈섈섄섄|섄섈섄~숈}숈섈|||||ۈ|||섄݆|섈|숈||섈ۄ섈||v||숈4||섈||숈#||| ||섈|||섈#|||섈 섈 |||||섈||||섈||#|섈||v섈|v|숈||섄||||숈|||섈|||섄|섈|숈||섈x|섈||섄|섈섈섈|섈}#숈A섈섈숈섈섈섄섈섈섈섈섈섄숈섈섈섈섄섈섈섄섄#########ۈ݄4*+<<+**+<<+**4<+4**+<<4*#*+<++*#4+<****<<++44+<<+*#*+<$$<+$<<<+$<<+*<<<<<<<#<<<<<**<<+<+4<<<$$<<<***+#<<<+<<<<<<<+<<<<$<<<<<<<#<<+$*<<<<<*<4<$$<<<**<<<<#$$$<$$$$<$+<<*<+4$$.$$<<<<<<<*<<+<$$..$$$<<*<<<<+$$<$$$$$$<<<<+<<$$$$$$$$$<<<<+*+$<$$$$$$$*<<<<<+$$$$$$$$$$<*++<+4$$$$$$<<<<<<<<+*+.))...$....$<<<<<<**$.))).$$$$<<<<<<<**<$$..)))..$<<*<<<+**$).$......<$****+4+$.$.).$$$./+<<<*+*+.....$.).$$<<$<+<<*+.)..)..$$$$$$**<<+**.))).)...<<<<<<+*<4.)))))..$8.$<<<**..)))..$.<<<+<<*$))).$$<<<<*<*!$..)))..$<<+<<*!$)))))......<+<<*4!.)))).$$$+<<<+*$))))..)).$<+*<<+$))))...<$$<+<+*)))%))..$$<<<<+.))../<<<<<+$%..$<<<+<+.))).$$<*<<+)))..../<<<<+.).$<4+<<<+.%)).$<++*<+))%..../<<*<4...$<<<+*%).$<<<<<4$%..$<*<<*!+%)).<<<++*.%%%...$<<<+*$).$<<<<$4$%))./<*+<*)..$<<<***%)).$$<<<<4%).<<<+<#../+<*<4%..$<<<<4%))..$<<<<4.$<<<+<%).$<<*<4%%)...<<<+)).$<<++..<<<++%..<<<++).$++<+))..$<+<+..<*<++).$<*+<..$<<<+*%)./+<<#*%..<<<<4)8$<<<*)./+<<*%)..$<<<#*%..<<<<4%)..$<<**)..<<<<.$<<++)..<<+<).$<+<<)$<<+<)..<<++.$<++<..<<<+).$<<<<).$<<+%).$<<+%).$<+<).$<<<)).4+<<%).<<<<).<<*<%$$*<++).<+<4*)..$<<#*).<+<#*%).<<++..$<<#*).<<<<4).$<+<4).<++.%.<<<*.).$<<*.).<<+*.).$<<*.)..<<<*...<*+#.).<+**.).$$+*:).<++:::..<<+::)).<++::.).<<*).<<**::).$<+*)$<<*:).$<+::%).$<+:8.<<<:::.<<<:::::)..$<<::%).$<+<:%)$<+*:::::%))<++:::8.$<??C.$<4:::C???C:)$<*:CCC:..$<*C?=::).<*#::?CCC.$+4CCCCCC:).<4:??C::).<*CCC..$*+?>>>?C8$<#+C>?CC:8.<*:??C)$$+#*:C=??.$<+:CC?C:)$<#+:C?>?CC)$<4+C>>?::).<+:::::CC8.$<:::?>>>?C)$+:CCCCC=C:)))$$:C?>?:::).<+::C>?CC.$<=CC=>C::).$>>>CC:).$:?>>C::)).$:CCCC::.$+::CC>?C:)$<:=?CC.$.<:???C:.$*:CCCC,.+C??CCCC:::8$<C>>?C8.<::::C>C%).$<:=C?C.$++:::CCCC:).4+:C=C:::::.$$4::C=C.$*:::CC:).$C=C::).4+:C>?C:).+C::CCC:).$+::CC?C::).:::::))..::C:).+:::8$::::)..CC::)$:C=:..$::::.<::CCCC:.$*:::)).*:).4:::::::)4:::::)):::).*:::::..*:C:::).4::CC).::)*:::::*:)*::*:::).<:::::)*::)*::::)*:).).:$.$:$:$::)....$....$$.)<<$<$)<*4*###*#*4*#*#*#+***4***+*+#****#<*+.*+..*+.*#.*+*+.$*+.* ~~A A~ ~A  AA#A@AAAAAAA}AAAAAAAA~@~AAAAAA#AA@AAAAA@AAAAAAAAAAAAAAAAAAA ~A~AAAAA AAAAAAAA }}}A}}}@AAA~}}AAAAAAAA~ A}}xx}}AAAAAA~}@}A}}}}AAAA@}}}}AA}AAA~}A}}}A}}AAAAA}}}}}}}AAAA}}}}}}AAAAAAAAAxgx}xxxx}AAAAAxx}}}@AAAAA}}}xxxx}AAAAA}x}xxxxxAAA}x}xx}}xJAAAxxxx}x}}AAAAxxxx}}}}AAAxxxxAAAA~}xx}xAAA}xxx}x}@AAAA}x}}~@AAAxxxx}AAAA݃xxxxxx~A}ރx}}AAAA}axxx}AAA}xxxA}}AAxчaxx}}AAAAxчjxx}AAA}x}AAAAxчx}~AAAxччxxxxAAAxчx}AJAAAgчx~~AxxxxxJAA}ччxxAAA@ччχjx}AAAAA ςччxx}@A~чςу@AA}jςxx}AAAAччiчx}AAAAAтςjxOAAA@jjxx}AA тчтςчхx}}AAAAчςjςxAAAAAςijxxAAA ттiЁjxx}AAAAтjςуxAAAA ςςςχx}A@AAAЂЂ}AAA#тςςjxxxAAAЁЂчx}AA~~тЁЂчxx@AтЁӀςχxxAA~~jЁЁЇx}~AjςρЂxxAA~тЀЂχxxA~ςЁςx}Ajςρςxx}AAςӀЁЂx AςӀπЂчxxAAA тӀςχx}AAтχx~AAςЁӀЂxx}AA ЁЂxxAAAA ρҀӀЂxx}AтӁςxAAAAтӀxAAтЀӀӀςxxA~AтЀӀӀςx}~A~ςӀӀ}A~AЁӀӀЂxxAA~тӀӀӀςxAA~AӀxxAAӀӀӀςчx}AAӀЇx}AA~ςӀӀςx}AA~ЀӀςx}AЀӀχx}A~ςӀЂxJ~AЁӀчxAAAӀӁxAAЀӀӀς}}A~ӀЂxAA ӀЂxx}AӀӁςxAӀχxAAAЁӁχx}AЀԀςxAAAA πӀx}AρӁxA~ӀχAAӀςx}AAԀӀςAA~gЀӀχ}AAӀчxxAAgԀЂxxA~ӀχxA~ЁӀЂA}сӀЂxA~~сԀЁςxxAӀӀЇчxA~рӀЂxAAӀЂxAAсӁx}тԀςу}ӁчxAЀӀx}AЀԀςуxAA~ЀӀЂx@~ЀӁςxxAӀx}A~ЀӀχ}~~ҀA~~Ӏx}AAӀҀx~ۀӀЂxAҀx}A~Ҁx}AA~ӀуAЀԀxA~πҀ}AہӀAAAӀxxAӁςуx}AԀxxAԀ}}ӀЇx}ҀЂуAЀЂ}~AӀӁ}AӀςxAAԀЂ}~ԀЂxx}Ӏx Ђуx}ӀЂуxӁςxԀЇxxAA|Ҁςу}~#|ӁxAӁA}уx}A AӀAAԀЁ}~чxAԀx}A||ςч}~ԀЂ}|ӀxԀЂx}AӀӀЂx}||Ӂχx|ӁЇxӀуx}~Ӏ}~Ӏx}x~ӀЂуx}ЀӀуӀЂ}~||ӀЇ~|Ӏx}~ԀчxAӀуx Ӏς}}ӀЂx}ӀxԀςx ӁxҁxAӀxӁxӁЇxӁAӀςxӁ}Ԁуxx}ӀxAӀЂ}ҀxӀЂуxӀЂӁςу~ӂxӀуxӀЂxӀЇxӀχӀχԀЂӀςҀx~ӀЂԀЂчԀӀуxҀЇxӁЂχ}ӀЇxҀЇ}Ԁч}ӀӀЂ}ӀЂxӀӀxԀЂуxӀxӀу}ӀуxӀχxԀxχчxӀЁчAԀЂчAӀч~ӀЂ~Ӏч}Ӏ~ԀςAӀЇ~ӀЂχ ӁӀӀЂԀӀςӀЂ ԀЂт#ӀӀςӀчӀЂ πӀЂԀЀЂAԀӀԀӀӁԀςρЂρπρ Ѐ ρ"    " ""  "T T TTT"T " "   UT TT "TT  UOT "OT "D̴T D̼T ̴O ̴D̴T Dδ̴O ̴̴O D̴̴  μDT̴̼TTDTTOJ̴̼ T JD T ̴TO T"T ĵĺTĵ ĺ T"   ĺ̴ ĵĵĺ ĺT ĺ ĺ ľĺ T ĵļ TTĵĵ  "κĺTTκĵĺ T "κĹ TTĵľTT "ľ ľöĺ T"øľ""ľ " øø øĺ ľø ĺT øĺT øø ĵ ĺ"ĺ Ŷĺ ø"T"øĵ öĺ Ĺöĵ ø ĺ ŷ Ŷ ý Ĺ ĵ ýĹ ööĺT½Ĺ Ĺ " ýĹøŶĵ  ĺ θýŶ "½ö ö öĺöĹ T½žø "ýĹ TŸĹ Tĺ ø ½ĺŶĹOŽö  J½öĹ øθ½ ζöö öŶĹ ζĺ ŽöT ŶĹ ½ ½ζö Ŷ ö ö ý ½ö ½Ŷ Ľ½øĵTT"Ž ½TĽöž̽" öĺTŶ̴  ½öĹ ö" ö Ĺ Ĺ½öøö ½ĵ̼Tö ½ö ½" ̴T ýŻ ¿Ĺ" Żĺ ÷ ½ û½ø Ŷƽøöö½ƽĹ ½ŸĹTŸĺ ö½ŸĹ½½ö½Tø½ŸöĹĹ½Ĺ½ŸĺŶĴ½Ĺ½Ĺļøļļĺļ½øļøļŶļŸŶĹŸööĴŸĺ "ö½Ŷø Ŷ"ø T"øøT T  T ŸT !  Ÿ Ķ  ö" û" ÷!BBBB!!!B!B!B!!!!!!B!!B!!B!BBBB!!B!!B!BBBBBBB!BBBBBB!B!BBB!B!BBB!BBB!BB!BBB!!!!!B!!B!BB!BB!B!!!B!!BB!!BB!!!BBBB!BB!BBBBBB!!!B!!!!BB!!BB!B!BB!B!BB!BB!!!!BBB!BBBBB!BB!B!BBB!B!!B!!B!!!!4/////44//4/#///#////44!4/#//#//#//4//4//B/!/!4!!/!/!!/!////////////4///!////////4B/B/!/!/B/4B/!/B/!B///4!/!4//!+/B/!///!///#!/#4!/#!!!!!!/!/!/B#/#/B/#/#//!!!!!!B//4/B/!/!#/!4!///////4//////////////4//4////#/##4#/4//4//#///////////4/###/#4/#/#/#//4///#/////#/44/@gyyg@ @gyyg@ @yg@gyy gyyg~ gygggyg gyyg@ @g{aa{y{{{yy aa{g@y{{{yyy {aaa{@@yy{{yaaaaaa{{@@g#a{{yy{y{{{yg {{{{y{yyyyyg aaga@{{yyyy {{aa{y@yyyy aaa{aaa{{yyyyxaajaa{aa{yyyy{x aaajjaaa{yyyyxaaaaaayyyy{{y#aaaaayaaaa{{yyg#aaaaaaaa{@y{{{yx#aaaaaaaa{@ggyx aaaaaa{{{{yyg@jfjjajjja{{yyy@@ajfffaaa{{{y{gAajfffjjaa@yyyy@}affjjjjjjaa@O@y}ajjffaajJaa{yg@}jjjjajfaaa{yyg{y}jfjjfjjaaayy{@}jffffjjjaa{{a{xyuuuuffffjjjj{{{y@}jffubbuuffjjaja{{{yyAubufffububfjaa{a{y@y}jfbbuufjffffjjayyxyy}fffffbbbbjjjjjj{gyyfufuffuufjaya{{gyxAfffuuufffjjffjayg{{gfffbuuufffjjjaaa{yyg@iffuhhhhbbuuufjja{{yygibuffubhhhhbuujUa{{y{gaubbbbbufuhbbbujaaa{gygiuufbhhhbbufuufj{{yygifubbubhhhhbufjjjUa{{ygibbbhhbbbubhbbfaaJ{y{{gjuubhbbhhbbufuufj{gxT{gifuubbhhhhbbuujjjJa{yjbbbbhheeeehhhhbfjjja{yyx@bhhhhhbhhehhhbbufjaa{y{yaubhheeehhhhhhhbuujjay{yuhbbhheeehhbbbmuffj{yygxbbhhhhhhheehhbujfjja{yyx@uhhhhhhehbhhhhbbfjayy{yyubbheheehhhhbbbbffjJy@yybbhhhbhhehhhhhuufjia{y{Ahhehhhheeceeehhhhffja{{yybhhecceeheeeeehhbuufja{yyy#bbhheeccdehhhhhhbbujjJayyhhheheeecqqcehbbhbujjyyyy bheheeeeeeeeeehhuffjaayyy bbhheeeeeeeeehehhbuj{yyyy#bhhhhhceceeeehhbbbufaay@ybhhheeeeeeceehhhbufjjjayygbhhccqceccqqqccehhhbffja{ygghhheccqooceeccceehhbujj{{yxx#bheeeccqodooceehehhbujja{yxghhheecccqqqqqqchhbbbufjaxgyxbheeeceqoqqcccceehbffjjayxyxhhheeccodqddceeehehbujj{yxxbheeeecqqoqccceeehhbufjayxyhheeeccqccdqqceehhhbujjay{yxxheeeoooocqdodoqccehbbufjUxyy~heeecqodkkddcocccehhbujjayyyheecqqqqoookdqceeehhbufjayy{~heeedoodododoooqehhbbufjUxyy }heecqdoookoddqccccehufjja{yy~eeecqodddodooqceehhbhujj{yyyeeedoqookdkdodqcehhbbfjja{y@ ~heedqododkdodoqeeehbufjay{y hheecodkkkkkknkkooeeebbbja{yxxmeecooodkkpkkdoodoeeebbfjj{yxymeeecdodkkdkkkkoccecebbfjayxyyheeqdodoknkodkoooqeehbbufa{yxymecqddkkkdkkkodqcceehbufjj{{gxheecodkkkknkkdkooceehhbuja{gxyeeeqodokknkkkkdqdqeehbufjj{yyxheddodkkkkkknkokoceehhbfja{yyycqodddknknkkkkpkdoochhhbfja{ygeeqkkkkkkkkknkkokooeeehuuja{yxecodokppnnnknkkkocceeebbfja{xycoqoknkknpppnkkdodceehbbfja{yx#eedkkkknpnknnpnkdqceehbffjUg{{ecqodknpnnnnnkknkdqehhbuujy{yyeqookkkknppnnnnkdodqehbufj{{yheqokknnpnnnppkdkkdeehhbfaayxgqdkkknnnknnnkkknnkoocehbbfjyx{}qqqkpppppppnnkkdoooocehbfjjaya }ecdnkkppsppppnkdkqcccehbbuj{ga }qdodknppnsssppnkkocchbbbufj{y{gcccknnnppsppprpnkkoqehbuujja{y}codkkkpsppnrsnnnnnooeebufj{{y{edodnpppnprrnnppkoooqehbfjayg{ ~eeqdnnnpsppnprpnkkkqeeehbfjygxfeonnpppspppnpnknknkddehhbuj{y{@ioodknprsspsspnnkkdooqeehbfja{{@iooonnnpsssspsspnokceeeehbfj{yg@iconnknsppppsspppnkoccehbuuja{y~fqokkpspppsppprsrpkkddhhbfjj{y{@iqlknnnppssssppnknnndqcehujj{gieqknnpppssssrpnpnkooocehbfj{xTAieccokppspspsprrpnkkoceehbfjaaghcokpspstssspspnnnknkocehbufjygghqdkknps|stttspnnnoolqqcebujjy{gmkkdnppppptttssppnkoochhhhffjyxghdonppnppssspttspppkocehbujfj{y}edkkkppsspssssnrspnnkocehbfj{{Ahqknppppssttprssnnnkkkqeebfjayg@hecokpspspsssssppnnololcehufaygxheodkknpssstsssrspkkoqehhhbfjaygqookpssstvvtssppnkkkkkdeebbujayxcoknpnpsttvtvvsspnnoqcceehuuj{y{connnnpssstvvvttsrnkocehbbbuj{{{cokknssssttpsttttsrpkqeehbujja{{qlnnpppsvtsstssprrrpnkdehbfjaygyeclnppsssstvtsssrnnnnkoqehbuayxeqookpsstttst|vsspnnlqqqehbuf{xxclokknnpstvvtsspsrpnkdqehhbuja{yqknkpssvvvvwvtssnnkokkoqehbfjaxxdkknppsptwwvwvvtrpnklceeehbujyx{eknprpstttsvwvtttspnoocehbubja{gdkknpsssstvvtstttsrnnkoehbfjayy{cknpppssvvvtvttrsrspnkoqehufjy@}ecdnpsssttvvvtssspnkknoqehbfj{xgcodoknptvvvvttttspppklccchbffa{gdkkknppppsvvvttsrsspkoochbbufa{yeknknptvwvwwwvtssrnkoooqehbujj{gckknpssptvwwwvvvtspnkqeeehhujayAednnspstvvtvvwwvtsspnlqehbbfjj{geknppsttttvwttsttpssnndqehufaaxghlnpssstttwvvvvtpprppnkochbbja}eqqknrttvvvvwwtstspnkkkocehufaggeoknnnprvvvwvvtttnpppkqeeehufa{gqnppppspsstvvwttsrppkokqehuufa{gbkpprssvvzwzwzvvsrpkoqqccehuja{@fknnstttttwwwzwvttrpnlcehbbufa{ikkprstvvwvvvvvtvtsppnlcebujjayukpsspsvvvvzwvsstssppnkoehbfjyfqkppstvtvzvvvwtsppppnkocehujax@ulkkkpsvwvwvwvtstsspkoolcehbfj{~uknpppnsttzwwvtttsnpnkqeehhbfj{@unppspsstssvwwwvsrsnnolqchubjja@aknrsrpstwzzzwwvttsnooeeeehbfaygknnppvvvvvwzwwvvtppnkqehmufujyAnnprsptvwwwvvvtvvsrpnkqehufaaxgkprpsstvvwzwwvtsssspnkkchhbjayaqokrtvtvwwwwvvvtspknnkoqehbfay gkknnprtvzzwwwvsssppndqqqehbfaygnpppsspsvvzzwtttspnnnkchhbbfjy ynrrsttvttttttvvvsppnooqehbfjay onppttttvwzzzwwvvrpnkeehhhbfaxknppstvwvvwvwwwvtsrpnocebfffaanpprsttvwzzwtttvtsppnkochbfjygqnstttvvvvzwwwtsnpnpnnlcehbjaylkonstwwvwzvttttsrnkkoocehbfjannnpppsvzzzwvttsrrppkqeehhbfjanprtpststtwzzwttsnpnkkqchuffjanpsttvwvvwvttvwvsppnkoqeehujagkknrsttttvwzwwtvtsppklehbbbfayknnprsttwwwtvtvvtsppnklehbjajykprprsttvwwwwtsrssrpnklcehbjaeopsvtttvwvwvvvsrnnnnkoqehbfjxkkkkpswwwwwvwtttsppkooqqehbfaykpprpppsvzzwwttsrrnnkochhbufjykprstttvtstwwwvsrpnkkloehmfjaykprsttvwwwwvsrttvrpnooeehmbjaxannprtvtttvvwvwvprrpkochuubfjykkprsttwwvtttttssrpnklceujaaprrspttvtwwvvspprppnklcehuja gqkptttttwvtvtttsnnkkooqhhbfj jnpknpvwwwvvvttsrrpnlceehhbfjyprssrsntwzwvtssrpnnnkqhbbbfj gpppsvvvvtptwwvtrpnnkqqeebfja gnspttvvwwwtspsttspkklcehbbfj knnrsttvtsttvttsrpnnkqhbffjjknrrptttvwvtrrsrrrpkkqchhfjxnrrprtttvvtvvtppnnnnkqeebufalknstttttvvtttssrkooqccehfjjpppnnsvwvvtttpssppnkqehhhufanprstsrsvvwvtssrpnnooqehujjaprrsttvttssttttpppkoleehhujynnsttttwvwwtrpssrrkoocehbfjagnppsstvvtssstssrpnkllebffj Anrrrssttvttspppppnkocehhfjnrrrtttttttttspkkoloqcemffkprsttsvttttsrrnnkqceehhffyppppsttvttvtsrnpnnkoehbuuj Akrsttrptvttsrtrpnkolqehbjj@prsstvwvtstttspppkoqqemmfjAkprttvvvwvvrrrrrpkllchhufjhnpprstttsnpprrrpklddehff@bprrrsstttttrpknnnkocehbufpnpsssrstsssrrnllqqcehbf@bnrssrstttssrrpppkleehbbu@hppprtttssvssrpnnlkqchbfjgmnrstsrttttrrrrkkklceehbf@hrrssstttrttsspnnnlcehhbf@bnpstptttvtsprppnlqoqebuf@lnppsstssrpnknpnkocchbfiqnrrrrsssssrpkklollchbficnnnstsssrsppppkqcehehbalprrpprstsrpppnkkochbuuiopprsssrprrspnkkklcchufalppssrstsspppppnoqeehbuadrrrrstssssrpkklklcehbfaenprtttrssspppnkoccehbfiopppprssrpnkklnklchhbiqnpprrrprprpnodcccehbicknnnsrrrpppnnkoeehbbilppnppprrpppnkkolchbuaonppsrppnpppnnkocchhbiopnppprsrpkkkkklqcehbiorrrrrrppnppnldqccebbieknrsssrrpppnnkqehhhbimpnpppppnnkoqddcchhabnppppppppnnoqehhhhainknpppppnnkkolchbfgbnnpnknnpknkkodcehbgmnnpppnnkkkkkoqeehhabnpnnpppnnkoqoqqehbgbprpppppppnnooeeehbauknprpppnnkkkodchbuggpnnnnpnnkoceeehhAknnnpnnkkkkqehbbkokknnnkkklodehb@nnnnlkknnkoqcehhgnnnnpnkoooooqehb@npnppnnnkoqeeheb@nppnnknkkoooebbbAlkpnppnnkloqceebjkkkkkkklchhm@@knnkkoooocemdcoknkolqcemgnnlqcqooocemakkkpnoeeeeee@gkkkkoknoehmbgknnnkokqloemglonknnolqcem abcdcefg gfcddhi@gihqcei@yueemhi@ @ucolmigybellej yicodmjgueddef@"OJU^JOOUU^UO O"^U"" OU^^"T TO^UJTTO^TO" TUU^J" J^^UT TU^^^^^^^^^^ ]^^UO^^^^^^^ ^^^^^TO^^^^U^^^^^^^^TOTU ^^^^^^^^^^UU ^^^^^^^^^U^^ ^^U^O^^^^^T^ ^^^^^^TT^^^U ]D]^^]]]^^^^^T^U ]]N]]^^^^^^^T^^U^]]NN]]^^^T^^^^U ]^^D^]]]]^^^^^^^ ^]]]]^^^]^^^^^TU ]^]D]^]]^T^^^^^U]DD^]]]]^^^OUU^U ]]]]]]^^^^^^^^^O^NIINNN]NNNN]^^^^^^OODNIKIIN]]]]^^^^^^^TTD]]NNIIINN]^^T^^^^OO]IKN^NNNNNN^^TTOT^"ODN]NIKND]]NJ^^^^TUOONNNNN]NKN]]^^^^U^^TJNINNINN]]]]]^OO^^^OONIIININNN^^^^^^JT^"DIKKWKKIIIINN]NN^^^^TODNIIKEWWKKINNDN]^^^^^ODKEKIIIKWWKIN]]^^^^T^JDNIWEKWINIIIINN]^^U^^ODIIIIIEEWKNNNNNN^U^^T"DIKKKKIIIKKKN]^D^^U^UODIIKKKKIKINNKIN]^UT^^UDIIIWWWKKIINNN^]]^^^^ONIIWMMMMWEWWWIINND]^^^^UNEKKIWWMMMMEKKINNU]^^^UJDKWWWWEWKKMEEWKNN]^^^U^UNKKKWMMMEWWIKKIIN]^^T^^UNKWEEWEMMMMWKINNNNJ^^^^JNEEEMMEEWWEMEWIN]^J^^^^JNKWWMEWMMWEKIKKIN]^UUT^UNKWKWEMMMMEEWKNNNNJ^^T^"DEEEEMMHHHHMMMMEKNNN]^^^UODEMMMMMEMMHMMMEWKIN]^U^^^"^KWMMHHHMMMMMMMEKWNN]^T^^T^WMEEMMHHHMMWEWEKIIN^^^UUTDEEMMMMMMMHHMMWWNINN]^^^UODWMMMMMMHMEMMMMEWIN]^^^^^"UWEEMHMHHMMMMWWWWKINJ^T^^T]EEMMMEMMHMMMMMWIINN]^^^TOOMMHMMMMHHFHHHMMMMKIND]^^^^ "EMMHFFHHMHHHHHMMEKKIN^^^^^ EEMMHHFFGHMMMMMMEWKNNJ^^T^"MMMHMHHHFFGFHMEWMWWNN]^^^^TEMHMHHHHHHHHHHMMWIINN^^^^^"WWMMHHHHHHHHHMHMMEKN]^^^^^ EMMMMMFHFHHHHMMWEWKIN]^^T^"EMMMHHHHHHFHHMMMEKINNN^^^J EMMFFGFHFFGGGFFHMMMWIIN]^^UUMMMHFFLRRFHHFFFHHMMEKNN^^^UUEMHHHFFGRQRRFHHMHMMWWNN]^^UUMMMHHFFFGGGGGGFMMWEWKIN]UJ^UWMHHHFHGRGGFFFFHHMWKINN]^J^UMMMHHFFRGGLRFHHHMHMWKNN^T^UUEMHHHHFGFRGFFFHHFMMWWIN]^TU^MMHHHFFGFFGGGFHHMMMWKNN]U^^UJMHHHRRRRFGRRRQFFFHMWWKINJU^^OMHHHFGRRPPRLFRFFFHMMWKNN^^^^"MHHFGGGGRRRPRLFHHHMMWKIN]^^^ OMHHHLRRRRRRFRRRGHMMWWWINJU^^ JMHHFGRRRRPRRLGFFFFHMWINN]^^^THHHFGRRRRRRRRGFHHMMEMKNN^^^^"HHHGRGRRPRPRRGGFHMMWWINN]^^T TMHHGFRRRRPRRRRGHHHMEWINN^^^^MMHHFRRPSPPPPSPPRRHHHEEKN]^^UUMHHFRRRRPPSPPRRQRRHHHEEINN^^J^MHHHFRRRPPRPPPPRFFHFHEWIN]^U^^MHHLRRRRPSPRRPQRRGHHMEWKI]^^U^MHFGRRPPPRPPPRRGFFHHMWKINN^^UUMHHFRRPPPPSPPRPRRFHHMMWKN^^UU^HHHLRRRPQSPPPPRGGGHHMEKINN^^^UMHGRRRPPPPPPSPRPRFHFMMWKN]^^^^FGRRRRPSPSPSSPSPRRRFMMMEIN]^^JHHGPPPPPPPPSSPPRPRRHHHMKIN]^^UHFRRRPVVSSSPSPPPRFFHHHEWIN]^U^FRLRPSPPSSVVSPPRRRFHHMWWIN]^^UHHGPPPPSVSPSVVSPRGFHHMWIINUU^^HFGRRPSVSSSVSPPSPRLHMMEKIN^^^^HGRRPPPPVVVSSSSPRRRGHMWKKN^^O^MFFRPPSSVSSSVVPRPPRHHMMWI]]O^UULRPPPSSSPSSSPPSSSSRRFHMEWIN^J^"JGGGPVVVVVVVSSPPRRRRRFHMWKNN]^^ JHFRSPPSVXXSVVSPRPGFFFHMWEIN^U^JLRRRPSVVSXXYVVSPPRFFMEWWKIN^^^ UFFGPSSSVSXVSVVVSPPRGHMEKINN^^^"JFRRPPPVXVVSXXSSSSSRRHHEKKN^^^^"HRRRSVVVSVXXVSVVPRRRFHMEIN]^U^ OHHFRSSSVXVVSVXVSSPPGHHHMWKN^UUIHRSSVVVXXVVSSSPSPSPRGHMMWKN^^^ONRRRPSSXXXXXXVSSPPRRRGHHMWIND^^ONRRRSSSVXYYYXXXVSRPLHHHHMWIN^^UONFRSSPSXXVVXYYVVVSPRFFHMEKKN]^^OKGRPPVXVVVYXVVXXXVPPRGMMEKNN^^^ONLRPSSSVXYXXXXVSSSSSRGFHMKNN^OU"NHGPSSSVVXXYYVVSVSPRQRFHMEIN^UOONHFFRPVXXXXXXXXXVSPPRFHHMEIN^]UTHFRPSXXXZYYXVXVSSSSSPRFHMWWIN^U^MGRPPSVYZYYZZYXVSSRRRGGFHEKNNU^JMPPRSSVVVXZZZYYXXSPRRFMMMMIIN^UUMRRSVSVSXXXXVZZYXSVPRFHMEKNIN^^JHRPPPVXXXXXYYXVXYXSSSRFHMWIN^^OOMFPSVVVVXYZZXXYVSSSSPPGHHWIN]^UJMHFRPSXXYVXYYYYVSVSRRRRFHMKI]^UJMHRRPPSVXYXZYXVXYVPPRLHMMMWIN]^UFRRPVYYYZ[[ZYXXVSPPPPPRHHWWIN]^UFRPSVSVYZ[[Z[[YXVSSRGFFHHMKIN^^^FRSSSVXXXYZ[[[ZZYXSPRFHMEWWKN^^^FRPPVXYXYZZXYZZZYXXVPLHHMWINN]^^FRSSVVVY[ZYYZYXVXXXVSPRHMWIN]^U^HFRSVVXYYYZ[ZXXYXSSSSPRGHMEI]^UTHFRRPVXYZZZYYZ[YXVSSRFGGHMWII^UUFRRPPSSVYZ[ZZYYXXXVSPRFHMMWIN]^^RPSPVXY[[Z\\[ZYYVSPRSPRGHMEIN]UJLPPSVSXXZ\\[\[[ZXVSSRFHHHMWWN^U^FPSVXVXZZXY[\[[ZZYSSRRFHMWKWN]^ULPPSSYYYYZZ[ZYZ[ZYXVSPRHMWIN]^^^FPSSVXXY[[[Z[[ZXXXXVSPRFHMWIN^TJHFRSSYYYZZ[\[[YYYXSSPSRGHMEIN^UJFRRRQSXZ[[[[ZZ[ZYVVVPRFFFMEII]^URPPPSVVVVYZ\[[ZYXYXVPRRFMEWKK]^^HPSSSVZ[\\\\\\ZYXXSPRRRGHMWKNN^UFPPSXYYXZ[\_\\\ZZXVSPFHHHMMKN]^JHRSVXXYZ[[Z[\\\ZZYYVSRGHMWKINN^JFPSSXXZ[ZZ\\[ZYZZYYXSSRGHMWI]]UJMRSVXYXZ[[\Z[[[YXVXXVSPRFMWKN]OJHFGPVXZ[Z[[[\\ZYZYVSPPPRFHMKI]UUFLPSSSVV[[\\\[Z[ZVVVVPGHHHMWI]^UFSVVVVXXXYZ[\\[ZYXXVPRPGHMWKI]^UWPSVXXX[\\_`__\[YXVPRFGFFHMKN]^OISSSXYZZZZ\___\[[ZXSSRFHMWEKI]^TNPPVXXYZ\\[[[[\[[ZYXVSRFHEKNN]^OWPSXXVY[[[\_\[YYZZYXVSPRHMEIN^T"KFPVXYZ[Z[_\[\\[YVVVVSPRFHMKN]UOKRPPPVY[\\\\\\[YZYXVPRRRFHMKIN^TWPSVVVVXZ[__\[[ZZXVVSPGHHMMWIN^OWSVXXXXYYYY[\\\[YXXVSRRGFMKKNN]O]PSXXXXY[_``__\[[XXSRQHHHHMWI]^"JPSSVX[[[[[\__\\[ZYVSPGHMWKIIN^OSSVVYVZ[__\[[[[[[YXVSPFHMWI]DUJPVXXYY[[[\___[YXYYXVSPPFMMKN]^ ]GRPXZ[[[\\_\Z[[ZYVPSSPRGHMEI]^JPPSSVXZ\_`\\\[YYYXVSRGGGHMEI]^"OSVVVXXXX[\___[ZZYVSSSPFMMWKIN^USXXYZZ[ZZYZ[[\\ZYVVSRRGHMWIN]^ RSVXZZYZZ_`_`\\[[XVSPHHMMMWI]UPSVVYZ[\\Z\\\\\[ZYXVSRFHEIIID]SVVXYYZ[\_`_[ZZ[ZYXVSPRFMWIN^UFSXZZY[[Z\_\\\ZYVVVVSSRFHMWN]^ RPRSX[\\\\_\[[[ZZXSPPRRFHMWIN]SSVVVVX[_``\\[ZYXXVVPGHHMMWIN]SVXXYYZYXZ_``\ZZYVVSPPGFMKIIN]SVXYZ[\[\\\ZZ[\[YVVSPRGHHMKN]UQSSXYZ[ZZ\\__\[[ZYXVPRHMWWWI]^PSSVXYZ[\_\[[[\[[YVVSPRHMENDN^PVXVXYZ[[\__[ZYXYYXVSPRFHMKN]TFRVY[ZZZ[\\\\[[YXSSSSPRGHMKINUQPSPVY\__\\\\ZZZYXVPRRGGHMWI]^SVVVXSVY\``_\ZZYXXVSPRFMMWKIN^SVXYZZY[ZYZ\_\[YXVSPPRRHMWKN]^SVXYZ[[\\_\[YX[[[XVSRRHHMMWN]U]SSVXZ[[ZZ[\\\\[ZXXVPRFMKKWIN"^PSVXYZ[[_\[ZZZZZYXVSPRFHKN]]TVXXXYZZ[[\\\[YVVXVVSPRFHMKN] OGPVZ[ZZ[\\[[[[ZYSSPPRRFMMWKN DSVPSV[\\\[[[ZZYXXVSRFHHMMWIN"UVVYYXXVZ\_\\ZYYXVSSSPFMWWKKN ^SVXY[[\[ZYZ\\\ZXVSSPGGHHWIN] JSXXZZZ\\_\[XVYZZYVPPRFHMWKIN PSVVYZ[[ZYZZ[[ZYXVSSPFMWIKNNPSXXXZZ[[\ZZXXYXXXVPPFFMMINUSXXXXZZ[[[[[[ZXVSSSSPGHHWKK]RPSYZ[ZZ[[[Z[ZYYXPRRGFFHMINNVVVSVY[\\[Z[ZYYXVVSPGHMMMKK^SVXYZYVY[\_[ZYYXVSSRRGHMKNN]VXXYZ[[[ZYYZ[[ZVSVPRRHHMMWN^SVYZ[Z[\\\\ZXVYYXXPRRFHMWKN]USVVYYZ[[ZYYYZYYXVSPRRHWIIN OSXXXYYZ[[[[YVVVVVSPRFHMMIN"SXXXZZZZ[ZZ[ZYVPPRRRFFHWIKTPVXYZZY[[ZZZYXXVSPFFHHMMIK^VVVSYZ[[[Z[ZYXVVSSPRHMWKIN OSXYZZXYZ[[[ZXZXVSPRRGHMKNNOVXYYZ[\[ZYZZZYVVVPRFFHMWINOPSXZZ[[[\\[XXXXXVPRRFMMKINMSVVXYZ[ZYSVVXXXVPRFGHMKIOEVXXXYYZZZZZXVPSSSPRFHMEKTIVSVYYYYYZYYYXXSRRGGFHMEIOWSXYYXY[ZZYYXXVVVPRHHMWEKOMXVVXZZZYY[YYXVSSRPFFMWKN^ESXYZYXZZZZXXXXSPPRFHHMEIOMXXYYY[[YXZZYYVSSSRFHMMEIOWSVYZZZZ[[[YVXVVSRFRGHWWIORSVXYYZYYXVSSSVSPRFFMWKNFVXXXXYYYYYXVPPRRRRFMWKNFSSVYZYYYXYVVVVPGFHMHMEDLVXXVVXYZYXVVVSPPRFMWKWNRVVXYYYXVXXYVSPPPRFFMKKDLVVYYXYZYYVVVVVSRFHHMWWDRXXXXYZYYYYXVPPRPRFHMWKDHSVXZZZXYYYVVVVPRFFHMWKNLVVVVXYYXVSPPRSPRFMMWNFSSVXXXVXVXVSRGFFFHMWNFPSSSYXXXVVVSSPRHHMWWNLVVVVVVXXSVVSPPRRFMWKDLSVVYXVVSVVVSSPRFFMMWNLVVVVVXYXSPPPPPRGFHMWNLXXXXXXSVVVVSRGGFFHWWNFQSXYYYXXVVVSSPFHMMMWNMVSVVSVSVSPRFGGFFMMDWSVVVVVVVVSSRFHMMMMDNSPSVVSVVSSPPRRFMWI^ESSVSPSSVSSPPRFFHMW^MSSVVVVSPPPPPRLHHMMDESVSVVVVSSPRFRFGHMW^EVXSVVVVVVSSRRHHHMWDKPSVXXVVVSPPPRFFMWK^UVSSSSVSSPRFHHHMM"OPSVSVSSPPPPGHMWWPRPPSSVPPPRRFHMWOSSVSRPPSSPRGFHMMUSSSSVSPRRRRRFHMW"OSVSVVSSSSRFHHMHWOSVVVSPSPPRRRHWWWORPVSVSSSPRRGFHHWDPPPQPPPRFMMMOJQSSQPRRQRFHMT"GFRSSPQRGFHMTJSSRFFFRRRFHMTDPPPSSRHHHHHHOUQPPQRPSLHMMWOSSSSPRPGRRHMTJLRSQSSRRFFHMT DEFGFHIJJKFGLMNOJNMFFMNOUWHHMMNO OKFRLMNJUEFFLHN"UNFQGMD"JKFGLHIO4*+<<+**+<<+***<+44#*+<+*4#4+<<+4#*++**4*+<<+44+<++*4*+<$$<<<<<<+#$<<+*<<<<<<<#<$<<<**<<<<+#<<<$$<<<****#<<<<<<<<<<<+<<<<<<<<<<<+#<<<<*<<<<<*<4<$$<<<**<<<<4$$$<$$$$<<<<<*<+4$$.$$<<<$<<<*<<+<$$..$$<<<*<<<<+#$$<$$$$$$<<<<<<<$$$$$$<$$<<<<<*+$<$$$<$$<*<<<<<+$$$$$$$$<<<*++<+4$$$$$$<<<<<<<<+*<.88...$....$<<<<<<**$.8888.$$$$$$<<<<<4*$$$..888..$<<*<<<<**$88.$......<<****<4*$.$.88.$$$.+$<<<*+**.....$.8.$$<<<<+<<*+.8..8..$$$$$$**<<<**.888.8...<<<<<<+*<4.88,,,8,888..$..$<<<**$.88,,,,,,8..$.$<<<<<*$,,,888,,,,8.$$<<<<*<*$.8,,,,8.8888..$<<+<<*.8,888,%,,......<++<*4.8,,8,88,,,8.$<$<<<<+*$8,8,,,8,8..88.$<+*+<+.888,,,,888...<$$<<<+*888,%%%%,,,,,8,..$$$<<<+8,,88,%%%%%,,,8..+$<<<<+$,,,,%,,8,%,%,,..$$<<+<+8,,8%%%%,,,8,,88.$<<*<<+88,,,,,%%%%,,8....<<<<<+8,,,%%,%,,,%,%8.$<+<<<<+.,,,%,,%%,,,8,,8.$<+<*<+.8,,,%%%%%,%,,..8.+<<*<4.,,,,%%&&&&%%%%,8...$<<<+*$,%%%%%,%%&%%%,,,8.$<<+<<4<,,%%&&&%%%%%%%,,8..$$4<<*<,%,,%%&&&%%,,%,,88.$<<++*.,,%%%%%%%&&%%,,.8..$<<<+*$,%%%%%%&%,%%%%,,8.$<<<<<4<,%,%&%&&%%%%,%,,88.+$4<<*$%,%%%,%%&%%%%%,88..$<+<***%%&%%%%&&(&&&%%%%,8.$$<<<<4,%%&((&&%&&&&&%%,,,8.$<<<<#,,%%&&(('&%%%%%%,%,..+<<*<4%%%&%&&&(''(&%,,%%,..$<<<<*,%&%&&&&&&&&&&%%,88..$<<<<4,,%%&&&&&&&&&%&%%%,.$<<<<<,%%%%%(&(&&&&%%,,%,8.$<<*+4,%%%&&&&&&(&&%%%,,8...<<<+,%%(('(&(('''((&%%%,88.$<<++%%%&(('--(&&(((&&%%,,..<<<++,%&&&(('----(&&%&%%,,..$<<++%%%&&(((''''''(%%,,,,8.$++<+,%&&&(&'-''((&(&&%%88..$<+<+%%%&&((-'''-(&&&%&%,,..<4<++,%&&&&(''-'(((&&&%%,,8.<<*+<%%&&&(('(('''(&&%%%,8..$<<<+*%&&&--22''2-2-'((&%,%,8.++<<#*%&&&('-2112'(-'((&%%,,..<<<<4%&&(''''---12'(&&&%%,,8.$<<<*%&&&'------'--2'&%%%,,8.++<<*%&&('-2--12-''((((&%,8..$<<<#*&&&('-2-2----''&&%%,%,..<<<<4&&&'-'-21-1--''(&%%%,8.8<<<**%&&''-2-21----'&&&%%,,..<<<<%%&&(-1101111011--&&&,,,.$<<++%&&'-22111011-----&&&,,8..<<+<%&&&(--21121111-((&(&,,,.$<+<<%&&'2-22101--1---'&&%,,,8$<<+<%&''-111121112-'((&&%,,8..<<++%&&(-2111101121--(&&%%,,.$<++<&&&'2-21101111-'''&&%,,8..<<<+%&'--21111110121-'&&%%,8.$<<<<('-22210101101012--(%%%,8.$<<+&&'111111110011-1--&&&%,8.$<<+&(--213300010111-((&&&%,8.$<+<(-'-10110330011---(&&%,,8.$<<+&&'11110301033012'(&&%,,8.++<<&('-21030003011012'&%%,,8.<<<<&'--111133300001---'&%,,8.<<*<%&'-11013000331-11-&&%%,,$$*<++'21110001000110001-'(&%%,8.<+<#+'''1333333300112----(&%%8..$<<*&(2011335533301-1'(('&%,,8.<+<+'---1033055633011-((%,%,,8.<<<<(''100033333353011-'&%,,8..<<<#+(-2111353305500000--&&,,8.<<<<4&-2-0333035530331---'&%,8.$<+<*&&'-000353303530111'&&&%,8.<++8&-003335333030101012'&%%,,.<<<*.---10356553530011---'&&%,8.$<<*8---0003566635530-1'&&&&%%8.<<+*.(-0010553356633301-((&%,,8.$<<*8'-11353336533555311-'%%,,..<<<*.'-100035635353000102'(&%,..<*<#.&'1003335366530301---(&%,8.<<**.&((-135555355553011-(&&%%8.$$+*%(2135557665533000001-(&%,,8.<++%'-110367667765300---'''&,,..<<+%112033333777663501--(%%%%88.<++%--03333535557765331-'&%,,.8.<<*&-1113556556653563001-'&%,8.<<**%'10333336775565100011'&&%8.$<+*%&(-135565566660330---'(&%,8$<+*%&-21103566765556311-'&%%%,8.$<+'--1366679976553011111-&&%,8.$<<'-10303679999963300-'((&&%,8.<<<&2010356567999776501-(&%,,,,.<<<(-1135636773677765531'&&%%8..$<<'-00333697667653555301-&%,8.$<+<&('0355666797656500001-'&%,8$<+*&'--1356777677965300-'''&%%88<+<'--110036797766355301-'&%%,8.$<<'101336997;;9766301-11-'&%,8.$++-110335379;999975301-(&&&%,,.<+<(10353577669;9977630--(&%,,,.$<+'110366667997679765301-&%,8.$<<<(103355699979973535301-'&%,8.<*+&(-03666779;9966650110-'&%,8.<++(---10379999779763331-(('%,88$<+'11113335699997656531--(%,,,8$<<&1000379;;;;;;765501---'&%,,..<+&110566579==;;;973301'&&&%%,.$<*&-0353679979;;;976600-'&%,,8..<+(133357977;;9767766500-'&%,8$$+<%-03366799;999975355301-(%,,.$**&('135799999;;767630111-(&%,8$++&-10003597;;;779733331'&&&%,8$<<'03333553679;;9765331-1'&%,,8$<+,1335559;==>==;96331-''('&%,.$<*8000567777;===;997530-(&%,,,8<<*.1135567;;999999976530-(&,,..$<*,133536999;=;9667763301-&%,8.<*48'13567979=99;996333301-(&%,.$+*,-111369;9;;;;9676531---(&%,8.<*,103333579==;997753301'&&%%,8.<*,03555666669;;;965530--'(%,,..$*$10555369=>>>=;99650--&&&&%,8$<4+1003699999;>=;;976301'&%,,8,.<*00356579==;99999965301'&%,8$$+#*135566999;===9656653011(%%,.$<<'-157999;;=;9997631001-'&%%8$<#+1100357;=>;;;9666530-'''&%,,<<4+033355359;?>=977630001(%%,,8.<+05367797777999;96330-2'&%,8.$<-03377679=>>?=;995301&&%%%,8$+1033679;;9;9;=;976530-(&,,88$$03356679;=>=9779765301-(%,8.<+'03776999;?=;;96333300-(&%,.$<-1'059;;;;>;999775011--'&%,8.$00333339>>>;;97653331'&&%%,8.$0356667667=>>;77633011'(%,88.$035679;9;;;779;963301-'&&%,.$+1005679779;>=;9976531-&%,,%8$<10035679;=;99999963301-&%,.$.<135356799===9765665301-(&%,.$*(-3697799;;;9996500001-'&%,8.+110136;==;;;97776531--''&%,8$<13355336;>>=;976553012(%%%,8.<03367779767;?;9633011--&%%8.$<0356799;;=;965999530--&&%%,.$+$0035799779;9;;973531-(%,,,8.4<1035677;=997777765301-(&,.$$*355367797;=;963353301-(&%,.$*'1579779;99999760011--'%%%8.$031039C;99997765530-(&&%%,8.4+35665537;?=;766330001'%,,,8.+33569999767;;;753001''&&,8.$+053779;;=;9636776311-(&%,,8.103567:97677997653001'%,,8..10553779:;97556553311'(%%8.+0555577:99:9973300001'&&%,8$-10679779997976651--'((&%8..3330369;;97976633301'&%%%,8$0356765699=97665300--'&%,..$3556799976679973331--&&%%,.<03679799;;;75366351--(&%,,.$+0306679976667665301--&,88.40355667999963333301-(&%%8.#35357777977976311---'(&,88*135677699777635301'(&&%%88<3333679997976533001-&%,,8.*056773679997375301--'&%,..*356679;97677763331-''&%,,.*13577999;;95355531--(%%,8.%03356797633335531-''&%88*%355566777773310001-(&%,,*8303666667666550--''(&%,8*,05663697766553331-&&%,,,*%5335777669665300-1'(%,8.<%05676577775555011-(&&%,8*%55666996577663000-(&%%,8*,0367777999635330-'-'&,,8*-0356676653000301-((%%8.(35535666665311----(%%8.'003676665633331'(&%&%%$'3553356765333011-(%,,,.23356663355630111-((%,,$'336656766333330-'&&%,,$'55556766665311-1-(&%,,$&033777566633331'((&%,8.'333356653011-01-(%%,.'033555353530-'(((&%,.&10036555333001-&&%,,.-33333353333011--(%,,$'03365330333001-((%%,.-33333565311111-'(&%,.-553555333330-''((&,,.&10566653333001'&%%%,.%3033333301-'''((%%$,03333333300-'&%%%%$8010333330011-'(%,8<,003010030011''(&%,<%003333011111-'&&%%$,0303333001-'-''&%,<,35333333300--&&&%,$,103553330111''(%,,<+300003001-(&&&%%4*10333001111'&%,,##1-11003111--'&%,#*0030-11001-'(&%%#+0000301-----'&%,4*030330000-(&&%&,#*033301011---&,,,#*-13033001--'(&&,#$0111121'(%%%**10011-'--(&%*4'(-101--'(&%**30-'&''--(&%*$01130-&&&&&&*+1111-10-&%%,#*00001-1'2-&%*+'-0100--'(&%*#$%&'(&)*+,&--&./+.&((&.*+,&&%%.**)&2'%.++,&''&.#<8&-'%$4+8&''&)*" ! !  ! ! !!!" ! !  !"! !  B !" !!      @ ! !"!"! "!!!!                !          !    !    !         !    "!          "           A     "                            !                                               !                                                                                                              !                                                                                                                                                                     @                                                                                                          @   @                                                                                                                                                                                                                                                                                                                                                lmarbles-1.0.8/src/cfg.c0000644000175000017500000001206610061601555011740 00000000000000/*************************************************************************** cfg.c - description ------------------- begin : Sat Aug 5 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "cfg.h" #include "sdl.h" #include #include #include #include "file.h" #include #include #include #ifdef _WIN32 #define MKDIR(d, p) mkdir(d) #else #define MKDIR mkdir #endif char c_pth[512]; Cfg cfg; /* get the full path of the cfg file */ void C_StPth() { DIR *dir; #ifdef _WIN32 snprintf( c_pth, sizeof(c_pth)-1, "%s/lgames", (getenv( "HOME" )?getenv( "HOME" ):".") ); #else snprintf( c_pth, sizeof(c_pth)-1, "%s/.lgames", getenv( "HOME" ) ); #endif /* create .lgames directory if not found */ if ( (dir = opendir( c_pth )) == 0 ) { fprintf( stderr, "Config directory ~/.lgames not found. Creating it.\n" ); MKDIR( c_pth, S_IRWXU ); } else { closedir(dir); } /* get full path of config file */ strcat( c_pth, "/lmarbles.conf" ); } /* load it */ void C_Ld() { char str[256]; FILE *f; struct stat dir_stat; printf("loading configuration...\n"); // load init // if ((f = fopen(c_pth, "r")) == 0) { printf("cfg file '%s' not found; using defaults\n", c_pth); C_Def(); } else { stat( c_pth, &dir_stat ); if ( dir_stat.st_size != sizeof( Cfg ) ) { fprintf( stderr, "config file '%s' corrupted... using defaults\n", c_pth ); C_Def(); } else { #ifdef ASCII F_GetE(f, str, F_VAL); if (strncmp(str,"ascii",5)) { printf("cfg file '%s' not in ascii; using defaults\n", c_pth); C_Def(); } else { F_GetE(f, cfg.prf_nm, F_VAL); cfg.prf_nm[strlen(cfg.prf_nm) - 1] = 0; F_GetE(f, str, F_VAL); F_ValToInt(str, &cfg.prf); F_GetE(f, str, F_VAL); F_ValToInt(str, &cfg.s_vol); F_GetE(f, str, F_VAL); F_ValToInt(str, &cfg.s_on); F_GetE(f, str, F_VAL); F_ValToInt(str, &cfg.ani); F_GetE(f, str, F_VAL); F_ValToInt(str, &cfg.trp); F_GetE(f, str, F_VAL); F_ValToInt(str, &cfg.fscr); F_GetE(f, str, F_VAL); F_ValToInt(str, &cfg.dim); F_GetE(f, str, F_VAL); F_ValToInt(str, &cfg.diff); F_GetE(f, str, F_VAL); F_ValToInt(str, &cfg.k_up); F_GetE(f, str, F_VAL); F_ValToInt(str, &cfg.k_down); F_GetE(f, str, F_VAL); F_ValToInt(str, &cfg.k_left); F_GetE(f, str, F_VAL); F_ValToInt(str, &cfg.k_right); F_GetE(f, str, F_VAL); F_ValToInt(str, &cfg.k_undo); } #else fread(str, 5, 1, f); if (!strncmp(str,"ascii",5)) { printf("cfg file '%s' in ascii but raw binary data expected; using defaults\n", c_pth); C_Def(); } else { fseek(f,SEEK_SET,0); fread(&cfg, sizeof(Cfg), 1, f); } #endif } fclose(f); } } /* save it */ void C_Sv() { //save init // FILE *f = fopen(c_pth, "w"); #ifdef ASCII char str[256]; F_WrtE(f, "ascii"); F_WrtE(f, cfg.prf_nm); F_IntToStr(str, cfg.prf); F_WrtE(f, str); F_IntToStr(str, cfg.s_vol); F_WrtE(f, str); F_IntToStr(str, cfg.s_on); F_WrtE(f, str); F_IntToStr(str, cfg.ani); F_WrtE(f, str); F_IntToStr(str, cfg.trp); F_WrtE(f, str); F_IntToStr(str, cfg.fscr); F_WrtE(f, str); F_IntToStr(str, cfg.dim); F_WrtE(f, str); F_IntToStr(str, cfg.diff); F_WrtE(f, str); F_IntToStr(str, cfg.k_up); F_WrtE(f, str); F_IntToStr(str, cfg.k_down); F_WrtE(f, str); F_IntToStr(str, cfg.k_left); F_WrtE(f, str); F_IntToStr(str, cfg.k_right); F_WrtE(f, str); F_IntToStr(str, cfg.k_undo); F_WrtE(f, str); #else fwrite(&cfg, sizeof(Cfg), 1, f); #endif fclose(f); } /* default values */ void C_Def() { strcpy(cfg.prf_nm, "Michael"); cfg.prf = 0; // sound // cfg.s_vol = 6; cfg.s_on = 1; // gfx // cfg.ani = 1; cfg.trp = 1; cfg.fscr = 0; cfg.dim = 1; cfg.diff = DIFF_NORMAL; // controls cfg.k_up = SDLK_UP; cfg.k_down = SDLK_DOWN; cfg.k_left = SDLK_LEFT; cfg.k_right = SDLK_RIGHT; cfg.k_undo = SDLK_SPACE; } lmarbles-1.0.8/src/cfg.h0000644000175000017500000000304107427015733011747 00000000000000/*************************************************************************** cfg.h - description ------------------- begin : Sat Aug 5 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef CFG_H #define CFG_H enum { DIFF_EASY = 0, DIFF_NORMAL, DIFF_HARD, DIFF_BRAINSTORM }; // config file // typedef struct { // profile char prf_nm[12]; int prf; // level set // int ls; // sound int s_on; int s_vol; // gfx // int ani; int trp; int fscr; // fullscreen int dim; // dim effect on? int diff; // difficulty int k_up; // controls int k_down; int k_left; int k_right; int k_undo; } Cfg; void C_StPth(); void C_Ld(); void C_Sv(); void C_Def(); #endif lmarbles-1.0.8/src/sdl.c0000644000175000017500000003347307524354576012012 00000000000000/*************************************************************************** sdl.c - description ------------------- begin : Thu Apr 20 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "sdl.h" #include #include extern int trm_gm; Sdl sdl; // sdl surface // /* load a surface from file putting it in soft or hardware mem */ SDL_Surface* SS_Ld(char *fname, int f) { SDL_Surface *buf; SDL_Surface *new_sur; char path[strlen(SRC_DIR)+ strlen(fname) + 2]; sprintf(path, "%s/%s", SRC_DIR, fname); buf = SDL_LoadBMP(path); if (buf == 0) { fprintf(stderr, "ERR: ssur_load: file '%s' not found or not enough memory\n", path); if (f & SDL_NONFATAL) return 0; else exit(1); } new_sur = SS_Crt(buf->w, buf->h, f); SDL_BlitSurface(buf, 0, new_sur, 0); SDL_FreeSurface(buf); return new_sur; } /* create an surface MUST NOT BE USED IF NO SDLSCREEN IS SET */ SDL_Surface* SS_Crt(int w, int h, int f) { SDL_Surface *sur; SDL_PixelFormat *spf = SDL_GetVideoSurface()->format; if ((sur = SDL_CreateRGBSurface(f, w, h, spf->BitsPerPixel, spf->Rmask, spf->Gmask, spf->Bmask, spf->Amask)) == 0) { fprintf(stderr, "ERR: ssur_create: not enough memory to create surface...\n"); exit(1); } SDL_SetColorKey(sur, SDL_SRCCOLORKEY, SDL_MapRGB(sur->format,0,0,0)); SDL_SetAlpha(sur, 0, 0); // no alpha // return sur; } /* return display format */ int SS_DpyFmt(SDL_Surface *sur) { if ((sur = SDL_DisplayFormat(sur)) == 0) { fprintf(stderr, "ERR: ssur_displayformat: convertion failed\n"); return 1; } return 0; } /* lock surface */ void SS_Bgn(SDL_Surface *sur) { if (SDL_MUSTLOCK(sur)) SDL_LockSurface(sur); } /* unlock surface */ void SS_End(SDL_Surface *sur) { if (SDL_MUSTLOCK(sur)) SDL_UnlockSurface(sur); } /* blit surface with destination D_DST and source D_SRC using it's actual alpha and color key settings */ void SS_Blt(void) { #ifdef SDL_1_1_5 if (sdl.s.s->flags & SDL_SRCALPHA) SDL_SetAlpha(sdl.s.s, SDL_SRCALPHA, 255 - sdl.s.s->format->alpha); #endif SDL_BlitSurface(sdl.s.s, &sdl.s.r, sdl.d.s, &sdl.d.r); #ifdef SDL_1_1_5 if (sdl.s.s->flags & SDL_SRCALPHA) SDL_SetAlpha(sdl.s.s, SDL_SRCALPHA, 255 - sdl.s.s->format->alpha); #endif } /* do an alpha blit */ void SS_ABlt(int alpha) { #ifdef SDL_1_1_5 SDL_SetAlpha(sdl.s.s, SDL_SRCALPHA, 255 - alpha); #else SDL_SetAlpha(sdl.s.s, SDL_SRCALPHA, alpha); #endif SDL_BlitSurface(sdl.s.s, &sdl.s.r, sdl.d.s, &sdl.d.r); SDL_SetAlpha(sdl.s.s, 0, 0); } /* fill surface with color c */ void SS_Fill(int c) { SDL_FillRect(sdl.d.s, &sdl.d.r, SDL_MapRGB(sdl.d.s->format, c >> 16, (c >> 8) & 0xFF, c & 0xFF)); } /* get pixel */ Uint32 get_pixel( SDL_Surface *surf, int x, int y ) { int pos = 0; Uint32 pixel = 0; pos = y * surf->pitch + x * surf->format->BytesPerPixel; memcpy( &pixel, surf->pixels + pos, surf->format->BytesPerPixel ); return pixel; } // sdl font // /* load a font using the width values in the file */ SFnt* SF_Ld(char *fname) { SFnt *fnt = 0; FILE *file = 0; char path[strlen(SRC_DIR)+ strlen(fname) + 2]; int i; sprintf(path, "%s/%s", SRC_DIR, fname); fnt = malloc(sizeof(SFnt)); if (fnt == 0) { fprintf(stderr, "ERR: sfnt_load: not enough memory\n"); exit(1); } if ((fnt->ss = SS_Ld(fname, SDL_SWSURFACE)) == 0) exit(1); fnt->algn = TA_X_L | TA_Y_T; fnt->clr = 0x00FFFFFF; fnt->h = fnt->ss->h; //table file = fopen(path, "r"); fseek(file, -1, SEEK_END); fread(&fnt->off, 1, 1, file); #ifdef DEBUG printf("offset: %i\n", fnt->off); #endif fseek(file, -2, SEEK_END); fread(&fnt->len, 1, 1, file); #ifdef DEBUG printf("number: %i\n", fnt->len); #endif fseek(file, -2 - fnt->len, SEEK_END); fread(fnt->lw, 1, fnt->len, file); #ifdef DEBUG printf("letter width: %i\n", fnt->len); for (i = 0; i < fnt->len; i++) printf("%i ", fnt->lw[i]); printf("\n"); #endif fclose(file); //letter offsets fnt->loff[0] = 0; for (i = 1; i < fnt->len; i++) fnt->loff[i] = fnt->loff[i - 1] + fnt->lw[i - 1]; //allowed keys memset(fnt->keys, 0, 256); for (i = 0; i < fnt->len; i++) { fnt->keys[i + fnt->off] = 1; } fnt->lX = fnt->lY = fnt->lW = fnt->lH = 0; return fnt; } /* load a font with fixed size */ SFnt* SF_LdFxd(char *f, int off, int len, int w) { int i; SFnt *fnt; char path[strlen(SRC_DIR)+ strlen(f) + 2]; sprintf(path, "%s/%s", SRC_DIR, f); fnt = malloc(sizeof(SFnt)); if (fnt == 0) { fprintf(stderr, "ERR: sfnt_load: not enough memory\n"); exit(1); } if ((fnt->ss = SS_Ld(f, SDL_SWSURFACE)) == 0) exit(1); fnt->algn = TA_X_L | TA_Y_T; fnt->clr = 0x00FFFFFF; fnt->h = fnt->ss->h; fnt->off = off; fnt->len = len; for (i = 0; i < len; i++) fnt->lw[i] = w; //letter offsets fnt->loff[0] = 0; for (i = 1; i < fnt->len; i++) fnt->loff[i] = fnt->loff[i - 1] + w; //allowed keys memset(fnt->keys, 0, 256); for (i = 0; i < fnt->len; i++) { fnt->keys[i + fnt->off] = 1; } fnt->lX = fnt->lY = fnt->lW = fnt->lH = 0; return fnt; } /* free memory */ void SF_Fr(SFnt *fnt) { if (fnt->ss) SDL_FreeSurface(fnt->ss); free(fnt); } /* write something with transparency */ int SF_Wrt(SFnt *fnt, SDL_Surface *dest, int x, int y, char *str, int alpha) { int c_abs; int len = strlen(str); int pix_len = 0; int px = x, py = y; int i; SDL_Surface *spf = SDL_GetVideoSurface(); pix_len = SF_TxtW(fnt, str); for (i = 0; i < len; i++) if (!fnt->keys[(int)str[i]]) str[i] = ' '; //alignment if (fnt->algn & TA_X_C) px -= pix_len >> 1; else if (fnt->algn & TA_X_R) px -= pix_len; if (fnt->algn & TA_Y_C) py -= fnt->h >> 1; else if (fnt->algn & TA_Y_B) py -= fnt->h; fnt->lX = px; if (fnt->lX < 0) fnt->lX = 0; fnt->lY = py; if (fnt->lY < 0) fnt->lY = 0; fnt->lW = pix_len; if (fnt->lX + fnt->lW >= spf->w) fnt->lW = spf->w - fnt->lX; fnt->lH = fnt->h; if (fnt->lY + fnt->lH >= spf->h) fnt->lH = spf->h - fnt->lY; if (alpha != 0) SDL_SetAlpha(fnt->ss, SDL_SRCALPHA, alpha); else SDL_SetAlpha(fnt->ss, 0, 0); for (i = 0; i < len; i++) { c_abs = str[i] - fnt->off; D_DST(dest, px, py, fnt->lw[c_abs], fnt->h); D_SRC(fnt->ss, fnt->loff[c_abs], 0); SS_Blt(); px += fnt->lw[c_abs]; } return 0; } /* lock font surface */ void SF_Bgn(SFnt *fnt) { SS_Bgn(fnt->ss); } /* unlock font surface */ void SF_End(SFnt *fnt) { SS_End(fnt->ss); } /* return last update region */ SDL_Rect SF_LstR(SFnt *fnt) { SDL_Rect rect={fnt->lX, fnt->lY, fnt->lW, fnt->lH}; return rect; } /* return the text width in pixels */ int SF_TxtW(SFnt *fnt, char *str) { unsigned int i; int pix_len = 0; for (i = 0; i < strlen(str); i++) pix_len += fnt->lw[str[i] - fnt->off]; return pix_len; } // sdl // /* initialize sdl */ void Sdl_Ini(int f) { sdl.scr = 0; if (SDL_Init(f) < 0) { fprintf(stderr, "ERR: sdl_init: %s", SDL_GetError()); exit(1); } SDL_EnableUNICODE(1); atexit(SDL_Quit); } /* free screen */ void Sdl_Qut() { if (sdl.scr) SDL_FreeSurface(sdl.scr); } /* set video mode and give information about hardware capabilities */ int Sdl_StVdMd(int w, int h, int d, int f) { int depth; #ifdef DEBUG SDL_PixelFormat *fmt; #endif if (sdl.scr) { SDL_FreeSurface(sdl.scr); } else { /* load window icon on first time setup */ SDL_Surface *icon; if ((icon = SDL_LoadBMP(SRC_DIR "/gfx/win_icon.bmp")) != NULL) { SDL_SetColorKey(icon, SDL_SRCCOLORKEY, SDL_MapRGB(icon->format,255,255,255)); SDL_WM_SetIcon(icon, NULL); } } // is this mode is supported depth = SDL_VideoModeOK(w, h, d, f); if ( depth == 0 ) { fprintf(stderr, "ERR: SDL_VideoModeOK says mode %ix%ix%i is invalid...\ntrying to emulate with 16 bits depth\n", w, h, d); depth = 16; } // set video mode if ((sdl.scr = SDL_SetVideoMode(w, h, depth, f)) == 0) { fprintf(stderr, "ERR: sdl_setvideomode: %s", SDL_GetError()); return 1; } #ifdef DEBUG if (f & SDL_HWSURFACE && !(sdl.scr->flags & SDL_HWSURFACE)) fprintf(stderr, "unable to create screen in hardware memory...\n"); if (f & SDL_DOUBLEBUF && !(sdl.scr->flags & SDL_DOUBLEBUF)) fprintf(stderr, "unable to create double buffered screen...\n"); if (f & SDL_FULLSCREEN && !(sdl.scr->flags & SDL_FULLSCREEN)) fprintf(stderr, "unable to switch to fullscreen...\n"); fmt = sdl.scr->format; printf("video mode format:\n"); printf("Masks: R=%i, G=%i, B=%i\n", fmt->Rmask, fmt->Gmask, fmt->Bmask); printf("LShft: R=%i, G=%i, B=%i\n", fmt->Rshift, fmt->Gshift, fmt->Bshift); printf("RShft: R=%i, G=%i, B=%i\n", fmt->Rloss, fmt->Gloss, fmt->Bloss); printf("BBP: %i\n", fmt->BitsPerPixel); printf("-----\n"); #endif return 0; } /* show hardware capabilities */ void Sdl_HwCps() { const SDL_VideoInfo *vi = SDL_GetVideoInfo(); char *ny[2] = {"No", "Yes"}; printf("video hardware capabilities:\n"); printf("Hardware Surfaces: %s\n", ny[vi->hw_available]); printf("HW_Blit (CC, A): %s (%s, %s)\n", ny[vi->blit_hw], ny[vi->blit_hw_CC], ny[vi->blit_hw_A]); printf("SW_Blit (CC, A): %s (%s, %s)\n", ny[vi->blit_sw], ny[vi->blit_sw_CC], ny[vi->blit_sw_A]); printf("HW_Fill: %s\n", ny[vi->blit_fill]); printf("Video Memory: %i\n", vi->video_mem); printf("------\n"); } /* update just one rect */ void Sdl_Upd(int x, int y, int w, int h) { SDL_UpdateRect(sdl.scr, x, y, w, h); } /* do a full update */ void Sdl_FUpd() { SDL_UpdateRect(sdl.scr, 0, 0, 0 ,0); } /* draw all update regions */ void Sdl_UpdR() { if (sdl.rnum == SDL_MAX_RGNS) SDL_UpdateRect(sdl.scr, 0, 0, sdl.scr->w, sdl.scr->h); else SDL_UpdateRects(sdl.scr, sdl.rnum, sdl.rgns); sdl.rnum = 0; } /* add update region */ void Sdl_AddR(int x, int y, int w, int h) { if (sdl.rnum == SDL_MAX_RGNS) return; if (x < 0) { w += x; x = 0; } if (y < 0) { h += y; y = 0; } if (x + w > sdl.scr->w) w = sdl.scr->w - x; if (y + h > sdl.scr->h) h = sdl.scr->h - y; if (w <= 0 || h <= 0) return; sdl.rgns[sdl.rnum].x = x; sdl.rgns[sdl.rnum].y = y; sdl.rgns[sdl.rnum].w = w; sdl.rgns[sdl.rnum].h = h; sdl.rnum++; } /* fade screen to black */ void Sdl_Dim(int steps, int delay, int trp) { #ifndef NODIM SDL_Surface *buffer; int per_step = trp / steps; int i; if (trm_gm) return; buffer = SS_Crt(sdl.scr->w, sdl.scr->h, SDL_SWSURFACE); SDL_SetColorKey(buffer, 0, 0); D_FDST(buffer); D_FSRC(sdl.scr); SS_Blt(); for (i = 0; i <= trp; i += per_step) { D_FDST(sdl.scr); SS_Fill(0x0); D_FSRC(buffer); SS_ABlt(i); Sdl_FUpd(); SDL_Delay(delay); } if (trp == 255) { D_FDST(sdl.scr); SS_Fill(0x0); Sdl_FUpd(); } SDL_FreeSurface(buffer); #else Sdl_FUpd(); #endif } /* undim screen */ void Sdl_UnDim(int steps, int delay, int trp) { #ifndef NODIM SDL_Surface *buffer; int per_step = trp / steps; int i; if (trm_gm) return; buffer = SS_Crt(sdl.scr->w, sdl.scr->h, SDL_SWSURFACE); SDL_SetColorKey(buffer, 0, 0); D_FDST(buffer); D_FSRC(sdl.scr); SS_Blt(); for (i = trp; i >= 0; i -= per_step) { D_FDST(sdl.scr); SS_Fill(0x0); D_FSRC(buffer); SS_ABlt(i); Sdl_FUpd(); SDL_Delay(delay); } D_FDST(sdl.scr); D_FSRC(buffer); SS_Blt(); Sdl_FUpd(); SDL_FreeSurface(buffer); #else Sdl_FUpd(); #endif } /* wait for a key */ int Sdl_WtFrKy() { //wait for key SDL_Event event; while (1) { SDL_WaitEvent(&event); if (event.type == SDL_QUIT) { trm_gm = 1; return 0; } if (event.type == SDL_KEYUP) return event.key.keysym.sym; } } /* wait for a key or mouse click */ void Sdl_WtFrClk() { //wait for key or button SDL_Event event; while (1) { SDL_WaitEvent(&event); if (event.type == SDL_QUIT) { trm_gm = 1; return; } if (event.type == SDL_KEYUP || event.type == SDL_MOUSEBUTTONUP) return; } } /* lock surface */ void Sdl_Bgn() { if (SDL_MUSTLOCK(sdl.scr)) SDL_LockSurface(sdl.scr); } /* unlock surface */ void Sdl_End() { if (SDL_MUSTLOCK(sdl.scr)) SDL_UnlockSurface(sdl.scr); } /* flip hardware screens (double buffer) */ void Sdl_Flp() { SDL_Flip(sdl.scr); } lmarbles-1.0.8/src/sdl.h0000644000175000017500000000676507524047645012017 00000000000000/*************************************************************************** sdl.h - description ------------------- begin : Thu Apr 20 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef SDL_H #define SDL_H #include #include #ifdef __cplusplus extern "C" { #endif // draw region // #define D_SRC(p, i, j) {sdl.s.s = p; sdl.s.r.x = i; sdl.s.r.y = j; sdl.s.r.w = sdl.d.r.w; sdl.s.r.h = sdl.d.r.h;} #define D_DST(p, i, j, k, l) {sdl.d.s = p; sdl.d.r.x = i; sdl.d.r.y = j; sdl.d.r.w = k; sdl.d.r.h = l;} #define D_FSRC(p) {sdl.s.s = p; sdl.s.r.x = 0; sdl.s.r.y = 0; sdl.s.r.w = sdl.d.r.w; sdl.s.r.h = sdl.d.r.h;} #define D_FDST(p) {sdl.d.s = p; sdl.d.r.x = 0; sdl.d.r.y = 0; sdl.d.r.w = (p)->w; sdl.d.r.h = (p)->h;} typedef struct { SDL_Surface *s; SDL_Rect r; } DrawRgn; // Sdl Surface // #define SDL_NONFATAL 0x10000000 SDL_Surface* SS_Ld(char *fname, int f); SDL_Surface* SS_Crt(int w, int h, int f); int SS_DpyFmt(SDL_Surface *sur); void SS_Bgn(SDL_Surface *sur); void SS_End(SDL_Surface *sur); void SS_Blt(void); void SS_ABlt(int alpha); void SS_Fill(int c); Uint32 get_pixel( SDL_Surface *surf, int x, int y ); // Sdl Font // #define TA_X_L (1L<<1) #define TA_X_C (1L<<2) #define TA_X_R (1L<<3) #define TA_Y_T (1L<<4) #define TA_Y_C (1L<<5) #define TA_Y_B (1L<<6) typedef struct { SDL_Surface *ss; int algn; int clr; int h; char lw[256]; int loff[256]; char keys[256]; char off; char len; //last written rect int lX; int lY; int lW; int lH; } SFnt; SFnt* SF_Ld(char *fname); SFnt* SF_LdFxd(char *fname, int off, int len, int w); void SF_Fr(SFnt *sfnt); int SF_Wrt(SFnt *sfnt, SDL_Surface *dest, int x, int y, char *str, int alpha); void SF_Bgn(SFnt *sfnt); void SF_End(SFnt *sfnt); SDL_Rect SF_LstR(SFnt *fnt); int SF_TxtW(SFnt *fnt, char *str); // Sdl // #define SDL_MAX_RGNS 200 #define SDL_DIM_STEPS 8 #define SDL_DIM_DELAY 20 #define SDL_DIM() Sdl_Dim(SDL_DIM_STEPS, SDL_DIM_DELAY, 255) #define SDL_UNDIM() Sdl_UnDim(SDL_DIM_STEPS, SDL_DIM_DELAY, 255) typedef struct { SDL_Surface *scr; DrawRgn d, s; int rnum; SDL_Rect rgns[SDL_MAX_RGNS]; } Sdl; void Sdl_Ini(int f); void Sdl_Qut(); int Sdl_StVdMd(int w, int h, int d, int f); void Sdl_HwCps(); void Sdl_Upd(int x, int y, int w, int h); void Sdl_FUpd(); void Sdl_UpdR(); void Sdl_AddR(int x, int y, int w, int h); void Sdl_Dim(int steps, int delay, int trp); void Sdl_UnDim(int steps, int delay, int trp); int Sdl_WtFrKy(); void Sdl_WtFrClk(); // hardware funcs // void Sdl_Bgn(); void Sdl_End(); void Sdl_Flp(); #ifdef __cplusplus }; #endif #endif lmarbles-1.0.8/src/empty.prfs0000644000175000017500000000004007426033210013052 00000000000000Michaellmarbles-1.0.8/src/win32.ico0000644000175000017500000003014607523001044012466 00000000000000(h  00hV00!( pL@|pD @Gwp|p|Gxp|@pwpDDH@???##???( )1! !)()),)R Zc s R<9Z<9k<9s<9{<9ZYZZ]Zsik  <9<9<9    01414189ABEBikikYZ]Z #- *' ,+ 21 " /+  *-&/4/,(- 3/2*  &-$*???##???(0 LD @ x@G@0@D@w@D@DwwdnjwȌLD LT|@W`@LD @ @LtÇÇ(0@)19  !! !!$)9<9BB JJ R s BABJQRRQRRURZYZZ]Zsqssus{}{      89ABQRus   !"'&# $*+%!()' $       !   !"'&# -,"'&# $*+%!12- $*+%!()' /0.()' $  $    !"'&# $*+%!()' $ ÇÇ( @`LĽP̈dp |@|HtGwx p@DDpqDD@pDpwvDDDwww@Lxwnj@Epw̌Hdww\ FHppl`pDD@LDpLPL`LtPH???80 0 8???( @!)) 11 99 ! !!$!)()),)1419<9BB JJ R ZZ c k ss {{ B<9J<9R<9c<9BABJIJRURZYZZ]Zceckikkmk{iksqssus{y{        <9       ! !$!(),)014189ikikABEBIJMJUR]Zmkus}{nn( & :E? nGSVNK= .gjg3."QVSLH:N`f_NF% 1ksqi/:VceYH?oB_dbVE%1+mpsm1]U`d_N=nDTYRN?33mjg/1@XXRH<'AK<o5+3,3oIH"iiii1 1n6" n>FF?6i>QSQKE iiHVc_NH8iAVeeXK:P_[SK%DBNF:)oo???80 0 8???(0`D@DDd@lD LT||@dALȌ|@ |B |DD@D44$DFDd@aaCdED@@lD ww4dLTqwww$0lE||@wxwwR\|ddAwwqax||@LȌ|Bwaȇl@ |@r@|A xq|Dwww w`lD@@@FtFL\D\AȌ|@\w@ |@ ||lF l????????(0` ! 1  !)()141J c BEBRQRRURcacsqs      ()89EBQR]Zqs         &                   !!   !#$#"!    !%((%"    &  #$'*)%!  &   "%%''%"  #%%"#!  """              &     ????????lmarbles-1.0.8/src/lmarbles.60000644000175000017500000000235210061600713012715 00000000000000.\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .TH MARBLES 6 "February 14, 2001" .SH NAME marbles \- build figures out of colored marbles .SH SYNOPSIS .B marbles .SH DESCRIPTION This manual page was written for the Debian GNU/Linux distribution because the original program does not have a manual page. .PP You goal in the puzzle game .B marbles is to create a more or less complex figure out of single marbles within a time limit to reach the next level. Sounds easy? Well, there is a problem: If a marble starts to move, it will not stop until it hits a wall or another marble. .SH OPTIONS None. .SH FILES .TP .IP "~/.marbles.cfg" Automatically generated configfile. This is not meant for human editing. .TP .IP "/var/lib/games/lmarbles.prfs" Global preferences and score file. Not for human editing. .SH BUGS Please report any bugs you find to Michael Speck .SH LICENCE .B marbles is covered by the GNU General Public License(GPL). .SH SEE ALSO .BR lbreakout (1) .PP /usr/share/doc/marbles/* .SH AUTHOR Michael Speck .PP This manual page was written by Uwe Hermann , for the Debian GNU/Linux system (but may be used by others). lmarbles-1.0.8/src/timer.c0000644000175000017500000000255007736356341012335 00000000000000/*************************************************************************** timer.c - description ------------------- begin : Mon Aug 14 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include #include #include "timer.h" #include "sdl.h" int t_c, t_lc; /* get milliseconds since last call */ int T_Gt() { int ms; t_c = SDL_GetTicks(); ms = t_c - t_lc; t_lc = t_c; if (ms == 0) { ms = 1; SDL_Delay(1); } return ms; } /* reset timer */ void T_Rst() { t_lc = SDL_GetTicks(); } lmarbles-1.0.8/src/timer.h0000644000175000017500000000207007206540570012326 00000000000000/*************************************************************************** timer.h - description ------------------- begin : Mon Aug 14 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef TIMER_H #define TIMER_H int T_Gt(); void T_Rst(); #endif lmarbles-1.0.8/src/file.c0000644000175000017500000000763107250440452012125 00000000000000/*************************************************************************** file.c - description ------------------- begin : Tue Sep 26 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "file.h" #include #include int f_ln = 0; /* read an entry and return if the correct flag is set else read next entry */ void F_GetE(FILE *f, char *str, int flgs) { int i = 0; char c; str[0] = 0; while (!feof(f)) { fread(&c, 1/*sizeof(char)*/, 1, f); /* MUST BE exactly on byte */ if (c == 10) { f_ln++; // increase line counter // continue; // ignore returns // } str[i++] = c; str[i] = 0; if ( (c == ';' && flgs & F_VAL) || (c == '>' && flgs & F_SUB) || (c == ')' && flgs & F_COM) ) break; if (c == ';' || c == '>' || c == ')') i = 0; } if (i == 1) str[0] = 0; } /* returns the first character bigger than 32 */ char F_FstC(char *str, char **n) { int i = 0; while (str[i] <= 32) { i++; if (i >= strlen(str)) return 0; } *n = str + i; return str[i]; } /* returns the last character bigger than 32 */ char F_LstC(char *str) { int i = strlen(str) - 1; while (str[i] <= 32) { i--; if (i <= 0) return 0; } return str[i]; } /* read value to v */ int F_GetV(char *str, char *v) { int i; char *n; for (i = 0; i < strlen(str); i++) if (str[i] == '=') { F_FstC(str + i + 1, &n); strcpy(v, n); v[strlen(v) - 1] = 0; // mask semicolon return 1; } return 0; } /* check entry for type and target name and assign p the value */ int F_CkE(char *str, int t, char *nm, char *v) { char *n; if (strlen(str) == 0) return 0; if (t & F_VAL) { F_FstC(str, &n); if (strncmp(nm, n, strlen(nm))) return 0; if (v != 0 ) return F_GetV(str, v); else return 0; } else if (t & F_SUB) { F_FstC(str, &n); if (!strncmp(nm, n, strlen(nm))) return 1; } else if (t & F_COM && F_FstC(str, 0) == '(' && F_LstC(str) == ')') return 1; return 0; } /* write an entry with a semicolon at its end */ void F_WrtE(FILE *f, char *str) { char f_str[strlen(str) + 2]; sprintf(f_str, "%s;", str); fwrite(f_str, strlen(f_str), 1, f); } /* convert an integer to string */ void F_IntToStr(char *str, int i) { sprintf(str,"%i", i); } /* convert an float to string */ void F_FloatToStr(char *str, float f) { sprintf(str,"%2.2f",f); } /* convert a value only containing one integer */ void F_ValToInt(char *str, int *i) { str[strlen(str) - 1] = 0; *i = atoi(str); } /* convert a value only containing one float */ void F_ValToFloat(char *str, float *f) { str[strlen(str) - 1] = 0; *f = (float)strtod(str, 0); } /* convert a value only containing one character */ void F_ValToChar(char *str, char *c) { str[strlen(str) - 1] = 0; *c = (char)atoi(str); } lmarbles-1.0.8/src/file.h0000644000175000017500000000265707214524370012137 00000000000000/*************************************************************************** file.h - description ------------------- begin : Tue Sep 26 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef FILE_H #define FILE_H #include #define F_SUB 0x0001 #define F_COM 0x0002 #define F_VAL 0x0004 void F_GetE(FILE *f, char *str, int flgs); int F_CkE(char *str, int t, char *nm, char *v); void F_WrtE(FILE *f, char *str); void F_IntToStr(char *str, int i); void F_FloatToStr(char *str, float f); void F_ValToInt(char *str, int *i); void F_ValToFloat(char *str, float *f); void F_ValToChar(char *str, char *c); #endif lmarbles-1.0.8/src/game.c0000644000175000017500000022263110312052262012105 00000000000000/*************************************************************************** game.c - description ------------------- begin : Mon Aug 14 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "game.h" #include #include #include #include "file.h" #include "cfg.h" #include "menu.h" #include "timer.h" Game gm; /* levelset names & levelsets -- levels.h */ extern char **ls_lst; extern int ls_n; extern DLst l_sts; /* line counter -- file.c */ extern int f_ln; /* config -- cfg.c */ extern Cfg cfg; /* Sdl -- sdl.c */ extern Sdl sdl; /* profiles -- profile.c */ extern DLst prfs; /* terminate game -- sdl.c */ extern int trm_gm; void modify_score( int *b_lvl, int *b_tm ); /* initialize game */ void G_Ini() { FILE *f; int i; char str[256]; int ok = 0; // cursors // char data[32], mask[32]; char csr[6][256] = { { 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 0, 0, 0, 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 0, 0, 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 0, 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 0, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, }, { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 0, 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 0, 0, 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 0, 0, 0, 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, }, { 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 2, 2, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 0, 0, 0, 0, 0, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 0, 0, 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 0, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 0, 0, 0, 2, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 0, 0, 0, 0, 0, 2, 1, 2, 2, 2, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1, 2, 2, 2, 1, 2, 0, 0, 0, 0, 0, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 0, 0, 0, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 0, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 0, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 2, 0, 0, 0, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1, 2, 2, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, }, { 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 0, 0, 0, 0, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 0, 0, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 0, 0, 2, 1, 1, 1, 1, 2, 0, 0, 2, 1, 1, 1, 1, 2, 0, 0, 2, 1, 1, 1, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 1, 1, 1, 2, 0, 0, 2, 1, 1, 1, 2, 0, 0, 0, 2, 1, 1, 1, 1, 2, 0, 0, 2, 1, 1, 1, 1, 2, 0, 2, 1, 1, 1, 1, 1, 2, 0, 0, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 0, 0, 0, 0, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 2, 1, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, }, { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 2, 0, 0, 2, 1, 1, 2, 2, 2, 0, 0, 2, 2, 1, 1, 1, 2, 0, 0, 0, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 0, 0, 0, 2, 1, 2, 0, 2, 1, 1, 1, 1, 2, 0, 2, 1, 2, 0, 0, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 0, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, } }; // initialize dyn list l_sts DL_Ini(&l_sts); l_sts.flgs = DL_AUTODEL; l_sts.cb = L_DelSt; // load level sets printf("loading levelsets...\n"); for (i = 0; i < ls_n; i++) { printf("%s... ", ls_lst[i]); sprintf(str, "%s/levels/%s", SRC_DIR, ls_lst[i]); f = fopen(str, "r"); if (f != 0) { f_ln = 1; if (L_LdSt(f)) { ok = 1; strcpy(((LSet*)l_sts.tl.p->d)->nm, ls_lst[i]); } else L_AddInvSt(ls_lst[i]); fclose(f); } else { L_AddInvSt(ls_lst[i]); printf("WARNING: levelset not found...\n"); } } // found something ? // if (!ok) { printf("ERROR: no valid level set found; need at least one level set...\n"); exit(1); } /* clear gm struct */ //memset( &gm, 0, sizeof( gm ) ); // initialize gfx set DL_Ini(&gm.g_sts); gm.g_sts.flgs = DL_AUTODEL; gm.g_sts.cb = G_DelGSt; // load gfx sets G_LdGSts(); // load board gm.s_brd = SS_Ld("gfx/board.bmp", SDL_SWSURFACE); SDL_SetColorKey(gm.s_brd, 0, 0); // load lights gm.s_lghts = SS_Ld("gfx/lights.bmp", SDL_SWSURFACE); // load marbles gm.s_mrb = SS_Ld("gfx/marbles.bmp", SDL_SWSURFACE); // load figure gm.s_fig = SS_Ld("gfx/figure.bmp", SDL_SWSURFACE); // load marble frame gm.s_mf = SS_Ld("gfx/m_frame.bmp", SDL_SWSURFACE); // load marble select frame gm.s_msf = SS_Ld("gfx/m_sframe.bmp", SDL_SWSURFACE); // background // gm.s_bkgd = 0; // load fonts gm.f_sml = SF_LdFxd("gfx/f_small.bmp", 32, 96, 8); gm.f_wht = SF_LdFxd("gfx/f_white.bmp", 32, 96, 10); gm.f_rd = SF_LdFxd("gfx/f_red.bmp", 32, 96, 10); // level gm.c_lvl = 0; // marble gm.m_v = 0.15; gm.m_a.p = 0; gm.m_a.f = 4; gm.m_a.c = 0.016 + 0.008; gm.m_a.w = gm.m_a.h = 32; gm.m_act = M_EMPTY; gm.m_o_x = gm.m_o_y = -1; gm.m_warp = 0; // marble select frame gm.msf_a.f = 4; gm.msf_a.w = gm.msf_a.h = 40; gm.msf_a.c = 0.02; gm.msf_a.p = 0; // marble frame gm.mf_a.f = 4; gm.mf_a.w = gm.mf_a.h = 40; gm.mf_a.c = 0.02; gm.mf_a.p = 0; // layout gm.b_x = 640 - 200; gm.f_x = 35; gm.f_y = 145; gm.i_x = 20; gm.i_y = 25; gm.t_x = 40; gm.t_y = 105; gm.s_x = 15; gm.s_y = 290; // geometry gm.t_w = gm.t_h = 32; gm.f_w = gm.f_h = 12; gm.f_fw = gm.f_fh = 130; gm.scr_w = 640; gm.scr_h = 480; gm.brd_w = 200; gm.s_w = 170; gm.s_h = 175; gm.c_off = 12; // cursors memset(data, 0, sizeof(data)); gm.c_u = gm.c_d = gm.c_l = gm.c_r = gm.c_s = gm.c_w = 0; gm.c_n = SDL_GetCursor(); Cr_Ld(csr[0], data, mask); gm.c_u = SDL_CreateCursor(data, mask, 16, 16, 8, 8); Cr_Ld(csr[1], data, mask); gm.c_d = SDL_CreateCursor(data, mask, 16, 16, 8, 8); Cr_Ld(csr[2], data, mask); gm.c_r = SDL_CreateCursor(data, mask, 16, 16, 8, 8); Cr_Ld(csr[3], data, mask); gm.c_l = SDL_CreateCursor(data, mask, 16, 16, 8, 8); Cr_Ld(csr[4], data, mask); gm.c_s = SDL_CreateCursor(data, mask, 16, 16, 8, 8); Cr_Ld(csr[5], data, mask); gm.c_w = SDL_CreateCursor(data, mask, 16, 16, 8, 8); // map animations gm.m_ani = 0; // oneway animation info gm.ma_ow_a.f = 4; gm.ma_ow_a.c = 0.008; gm.ma_ow_a.p = 0; gm.ma_ow_a.w = gm.t_w; gm.ma_ow_a.h = gm.t_h; // teleport information gm.ma_tlp_a.f = 4; gm.ma_tlp_a.c = 0.008; gm.ma_tlp_a.p = 0; gm.ma_tlp_a.w = gm.t_w; gm.ma_tlp_a.h = gm.t_h; gm.tlp_a = 32; // sounds #ifdef SOUND gm.wv_tlp = sound_chunk_load("teleport.wav"); gm.wv_sel = sound_chunk_load("select.wav"); gm.wv_stp = sound_chunk_load("stop.wav"); gm.wv_clk = sound_chunk_load("click.wav"); gm.wv_exp = sound_chunk_load("explode.wav"); gm.wv_alm = sound_chunk_load("alarm.wav"); gm.wv_arw = sound_chunk_load("arrow.wav"); gm.wv_scr = sound_chunk_load("score.wav"); #endif // shrapnells DL_Ini(&gm.shr); gm.shr.flgs = DL_AUTODEL; gm.shr.cb = Shr_Del; gm.shr_a_c = 0.1; // credits gm.cr_a_c = 0.1; gm.cr_tm = 3000; gm.cr_y = 10; // shnapshot gm.snap = 0; } /* terminate game */ void G_Trm() { // release gfx if (gm.s_brd) SDL_FreeSurface(gm.s_brd); if (gm.s_lghts) SDL_FreeSurface(gm.s_lghts); if (gm.s_mrb) SDL_FreeSurface(gm.s_mrb); if (gm.s_fig) SDL_FreeSurface(gm.s_fig); if (gm.s_mf) SDL_FreeSurface(gm.s_mf); if (gm.s_msf) SDL_FreeSurface(gm.s_msf); // release fonts if (gm.f_sml) SF_Fr(gm.f_sml); if (gm.f_wht) SF_Fr(gm.f_wht); if (gm.f_rd) SF_Fr(gm.f_rd); // release dynlists DL_Clr(&gm.g_sts); DL_Clr(&l_sts); DL_Clr(&gm.shr); // cursors // if (gm.c_u) SDL_FreeCursor(gm.c_u); if (gm.c_d) SDL_FreeCursor(gm.c_d); if (gm.c_l) SDL_FreeCursor(gm.c_l); if (gm.c_r) SDL_FreeCursor(gm.c_r); if (gm.c_s) SDL_FreeCursor(gm.c_s); if (gm.c_w) SDL_FreeCursor(gm.c_w); // free map animations // if (gm.m_ani) free(gm.m_ani); // sounds #ifdef SOUND if (gm.wv_tlp) sound_chunk_free(&gm.wv_tlp); if (gm.wv_sel) sound_chunk_free(&gm.wv_sel); if (gm.wv_stp) sound_chunk_free(&gm.wv_stp); if (gm.wv_clk) sound_chunk_free(&gm.wv_clk); if (gm.wv_exp) sound_chunk_free(&gm.wv_exp); if (gm.wv_alm) sound_chunk_free(&gm.wv_alm); if (gm.wv_arw) sound_chunk_free(&gm.wv_arw); if (gm.wv_scr) sound_chunk_free(&gm.wv_scr); #endif } /* open a new game */ int G_Opn() { Prf *p; DL_E *e; int flgs = SDL_SWSURFACE; // get current level set gm.c_l_st = (LSet*)DL_Get(&l_sts, cfg.ls); // check if current level set is valid if (!G_CkLSt()) { // restore menu MM_Shw(MM_RSZ); return 0; } // current profile gm.c_prf = (Prf*)DL_Get(&prfs, cfg.prf); // current set info gm.c_s_inf = Prf_RegLS(gm.c_prf, gm.c_l_st); // dim & resize if (cfg.dim) SDL_DIM(); if (cfg.fscr) flgs = flgs | SDL_FULLSCREEN; Sdl_StVdMd(gm.scr_w, gm.scr_h, 16, flgs); // create background gm.s_bkgd = SS_Crt(gm.scr_w, gm.scr_h, SDL_SWSURFACE); SDL_SetColorKey(gm.s_bkgd, 0, 0); // get highest score gm.hi_scr = 0; e = prfs.hd.n; while (e != &prfs.tl) { p = (Prf*)e->d; if (p->scr > gm.hi_scr) gm.hi_scr = p->scr; e = e->n; } // clear old chapter gm.o_ch = -1; // init first level L_Ini(0, 0); return 1; } /* close game */ void G_Cls() { // dim if (!trm_gm && cfg.dim) SDL_DIM(); // free background if (gm.s_bkgd) SDL_FreeSurface(gm.s_bkgd); // free level free(gm.c_lvl); gm.c_lvl = 0; // restore cursor SDL_SetCursor(gm.c_n); // show menu MM_Shw(MM_RSZ); } /* game's main loop */ void G_Run() { int leave = 0; int restart = 0; int ms; SDL_Event ev; SDL_Surface *buf; int flgs; int restore_pos; int tm_rel = 0; int ign_c_stat = 0; int bonus_level, bonus_moves; /* bonus for level completion and remaining moves */ while (!trm_gm) { // clear input while (SDL_PollEvent(&ev)); // main loop while (!leave && !trm_gm && !gm.l_done && !restart) { // don't consume all cpu time SDL_Delay( 5 ); restore_pos = 0; // do not restore old position ign_c_stat = 0; // do not ignore cursor state // get input if (SDL_PollEvent(&ev)) { switch (ev.type) { case SDL_QUIT: trm_gm = 1; break; case SDL_KEYUP: switch (ev.key.keysym.sym) { case SDLK_TAB: SnapShot(); break; case SDLK_ESCAPE: if (G_CfmQut()) leave = 1; break; case SDLK_p: G_Ps(); break; case SDLK_r: if (G_CfmRst()) restart = 1; break; case SDLK_f: buf = SS_Crt(gm.scr_w, gm.scr_h, SDL_SWSURFACE); D_FDST(buf); D_FSRC(sdl.scr); SS_Blt(); cfg.fscr = !cfg.fscr; flgs = SDL_SWSURFACE; if (cfg.fscr) flgs = flgs | SDL_FULLSCREEN; Sdl_StVdMd(gm.scr_w, gm.scr_h, 16, flgs); D_FDST(sdl.scr); D_FSRC(buf); SS_Blt(); Sdl_FUpd(); break; default: /* if no marble is selected we don't have to check anything */ if ( !gm.m_sel ) break; /* warp? */ if (gm.m_mv && (ev.key.keysym.sym == cfg.k_right || ev.key.keysym.sym == cfg.k_left || ev.key.keysym.sym == cfg.k_up || ev.key.keysym.sym == cfg.k_down)) { gm.m_warp = 1; break; } // undo key if (ev.key.keysym.sym == cfg.k_undo) { restore_pos = 1; #ifdef SOUND sound_play(gm.wv_clk); #endif } // up key if (ev.key.keysym.sym == cfg.k_up && (gm.m_vd & MD_U) && !gm.m_mv) { ign_c_stat = 1; gm.c_stat = C_U; Mr_IniMv(); #ifdef SOUND sound_play(gm.wv_clk); #endif } // down key if (ev.key.keysym.sym == cfg.k_down && (gm.m_vd & MD_D) && !gm.m_mv) { ign_c_stat = 1; gm.c_stat = C_D; Mr_IniMv(); #ifdef SOUND sound_play(gm.wv_clk); #endif } // left key if (ev.key.keysym.sym == cfg.k_left && (gm.m_vd & MD_L) && !gm.m_mv) { ign_c_stat = 1; gm.c_stat = C_L; Mr_IniMv(); #ifdef SOUND sound_play(gm.wv_clk); #endif } // right key if (ev.key.keysym.sym == cfg.k_right && (gm.m_vd & MD_R) && !gm.m_mv) { ign_c_stat = 1; gm.c_stat = C_R; Mr_IniMv(); #ifdef SOUND sound_play(gm.wv_clk); #endif } break; } break; case SDL_MOUSEBUTTONDOWN: break; case SDL_MOUSEBUTTONUP: if ( ev.button.button == 1 && gm.m_mv && ( gm.c_l_st->limit_type == MOVES ) ) { gm.m_warp = 1; break; } gm.bttn[ev.button.button] = 1; if (ev.button.button == 1) { if (gm.c_stat == C_SEL) Mr_Sel(ev.button.x, ev.button.y); else if (gm.m_sel && !gm.m_mv) { // start movement of selected marble Mr_IniMv(); } } else if (gm.m_sel && !gm.m_mv) Mr_Rel(ev.button.x, ev.button.y); break; case SDL_MOUSEMOTION: if ( !ign_c_stat ) Cr_Cng(ev.motion.x, ev.motion.y); gm.o_mx = ev.motion.x; gm.o_my = ev.motion.y; break; default: break; } } // hide if (!leave && !restart) { Mr_Hd(); MF_Hd(); Tm_Hd(); Inf_Hd(); Shr_Hd(); Cr_Hd(); } // update ms = T_Gt(); MA_Upd(ms); if (restore_pos) Mr_ResPos(); if ( !Mr_Upd(ms) ) restart = 1; MF_Upd(ms); Shr_Upd(ms); Cr_Upd(ms); if (!Tm_Upd(ms)) restart = 1; if (Inf_Upd() && G_CfmWrp()) { gm.c_ch = gm.w_c; gm.c_l_id = gm.w_l; restart = 1; } // show if (!leave && !restart) MA_Shw(); if (!leave && !restart) { Mr_Shw(); } if (!leave && !restart && !gm.l_done) { MF_Shw(); Tm_Shw(); Inf_Shw(); Shr_Shw(); Cr_Shw(); // refresh Sdl_UpdR(); } else sdl.rnum = 0; // reset redraw regions // reset buttonstate memset(gm.bttn, 0, sizeof(gm.bttn)); } // leave ? if (leave) break; // init next level if (gm.l_done || restart) { if (gm.l_done) { // figure animation FA_Run(); // bonus summary if ( !gm.c_s_inf->cmp[gm.c_ch * gm.c_s_inf->l_num + gm.c_l_id] ) { /* level wasn't completed until now so gain score for it */ bonus_level = LB_COMPLETED; bonus_moves = gm.c_lvl->tm * LB_PER_MOVE; modify_score( &bonus_level, &bonus_moves ); BS_Run( bonus_level, bonus_moves ); tm_rel = ( 1000 * gm.c_lvl->tm ) / gm.c_l_st->ch[gm.c_ch].lvls[gm.c_l_id].tm; Prf_Upd(gm.c_prf, gm.c_s_inf, gm.c_ch * gm.c_l_st->l_num + gm.c_l_id, tm_rel, bonus_level + bonus_moves ); } } if (cfg.dim) SDL_DIM(); if (!restart) if (!L_FndNxt()) // game finished ? break; L_Ini(gm.c_ch, gm.c_l_id); restart = 0; } } // save profiles Prf_Sv(); } /* load all gfx sets */ void G_LdGSts() { char d_nm[256]; char path[256+64]; DIR *dir = 0; struct dirent *e; struct stat s; GSet *g_st; printf("loading graphics sets...\n"); // create directory string // sprintf(d_nm, "%s/gfx", SRC_DIR); // find and open directory // if ((dir = opendir(d_nm)) == 0) { fprintf(stderr, "ERROR: can't find directory '%s'\n", d_nm); exit(1); } // well, let's check for directories // while ((e = readdir(dir)) != 0) { sprintf(path, "%s/%s", d_nm, e->d_name); stat(path, &s); if (S_ISDIR(s.st_mode) && e->d_name[0] != '.') { printf("'%s'... \n", e->d_name); // load gfx // g_st = (GSet*)malloc(sizeof(GSet)); memset(g_st, 0, sizeof(GSet)); strcpy(g_st->nm, e->d_name); g_st->ok = 1; sprintf(path, "gfx/%s/%s", e->d_name, "background.bmp"); g_st->s_bkgd = SS_Ld(path, SDL_SWSURFACE | SDL_NONFATAL); SDL_SetColorKey(g_st->s_bkgd, 0, 0); sprintf(path, "gfx/%s/%s", e->d_name, "wall.bmp"); if ((g_st->s_wl = SS_Ld(path, SDL_SWSURFACE | SDL_NONFATAL)) == 0) g_st->ok = 0; sprintf(path, "gfx/%s/%s", e->d_name, "floor.bmp"); if ((g_st->s_flr = SS_Ld(path, SDL_SWSURFACE | SDL_NONFATAL)) == 0) g_st->ok = 0; sprintf(path, "gfx/%s/%s", e->d_name, "arrow_r.bmp"); if ((g_st->s_r_arw = SS_Ld(path, SDL_SWSURFACE | SDL_NONFATAL)) == 0) g_st->ok = 0; sprintf(path, "gfx/%s/%s", e->d_name, "arrow_l.bmp"); if ((g_st->s_l_arw = SS_Ld(path, SDL_SWSURFACE | SDL_NONFATAL)) == 0) g_st->ok = 0; sprintf(path, "gfx/%s/%s", e->d_name, "arrow_u.bmp"); if ((g_st->s_u_arw = SS_Ld(path, SDL_SWSURFACE | SDL_NONFATAL)) == 0) g_st->ok = 0; sprintf(path, "gfx/%s/%s", e->d_name, "arrow_d.bmp"); if ((g_st->s_d_arw = SS_Ld(path, SDL_SWSURFACE | SDL_NONFATAL)) == 0) g_st->ok = 0; sprintf(path, "gfx/%s/%s", e->d_name, "barrier_lr.bmp"); if ((g_st->s_lr_bar = SS_Ld(path, SDL_SWSURFACE | SDL_NONFATAL)) == 0) g_st->ok = 0; sprintf(path, "gfx/%s/%s", e->d_name, "barrier_ud.bmp"); if ((g_st->s_ud_bar = SS_Ld(path, SDL_SWSURFACE | SDL_NONFATAL)) == 0) g_st->ok = 0; sprintf(path, "gfx/%s/%s", e->d_name, "teleport0.bmp"); if ((g_st->s_tlp_0 = SS_Ld(path, SDL_SWSURFACE | SDL_NONFATAL)) == 0) g_st->ok = 0; sprintf(path, "gfx/%s/%s", e->d_name, "teleport1.bmp"); if ((g_st->s_tlp_1 = SS_Ld(path, SDL_SWSURFACE | SDL_NONFATAL)) == 0) g_st->ok = 0; sprintf(path, "gfx/%s/%s", e->d_name, "teleport2.bmp"); if ((g_st->s_tlp_2 = SS_Ld(path, SDL_SWSURFACE | SDL_NONFATAL)) == 0) g_st->ok = 0; sprintf(path, "gfx/%s/%s", e->d_name, "teleport3.bmp"); if ((g_st->s_tlp_3 = SS_Ld(path, SDL_SWSURFACE | SDL_NONFATAL)) == 0) g_st->ok = 0; sprintf(path, "gfx/%s/%s", e->d_name, "wall_crumble.bmp"); if ((g_st->s_crmbl = SS_Ld(path, SDL_SWSURFACE | SDL_NONFATAL)) == 0) g_st->ok = 0; if (g_st->ok) { printf("ok\n"); // opaque SDL_SetColorKey(g_st->s_flr, 0, 0); SDL_SetColorKey(g_st->s_wl, 0, 0); } DL_Add(&gm.g_sts, g_st); } } closedir(dir); } /* delete a gset */ void G_DelGSt(void *p) { GSet *st = (GSet*)p; if (st->s_bkgd) SDL_FreeSurface(st->s_bkgd); if (st->s_wl) SDL_FreeSurface(st->s_wl); if (st->s_flr) SDL_FreeSurface(st->s_flr); if (st->s_u_arw) SDL_FreeSurface(st->s_u_arw); if (st->s_d_arw) SDL_FreeSurface(st->s_d_arw); if (st->s_r_arw) SDL_FreeSurface(st->s_r_arw); if (st->s_l_arw) SDL_FreeSurface(st->s_l_arw); if (st->s_lr_bar) SDL_FreeSurface(st->s_lr_bar); if (st->s_ud_bar) SDL_FreeSurface(st->s_ud_bar); if (st->s_tlp_0) SDL_FreeSurface(st->s_tlp_0); if (st->s_tlp_1) SDL_FreeSurface(st->s_tlp_1); if (st->s_tlp_2) SDL_FreeSurface(st->s_tlp_2); if (st->s_tlp_3) SDL_FreeSurface(st->s_tlp_3); if (st->s_crmbl) SDL_FreeSurface(st->s_crmbl); free(st); } /* pause game */ void G_Ps() { SFnt *ft = gm.f_sml; SDL_Surface *buf; char str[256]; SDL_Event e; int leave = 0; int flgs; int mx = gm.o_mx, my = gm.o_my; // save screen // buf = SS_Crt(gm.scr_w, gm.scr_h, SDL_SWSURFACE); SDL_SetColorKey(buf, 0, 0); D_FDST(buf); D_FSRC(sdl.scr); SS_Blt(); // cursor SDL_SetCursor(gm.c_n); // fill with black D_FDST(sdl.scr); SS_Fill(0x0); // write info ft->algn = TA_X_C | TA_Y_C; sprintf(str, "Game paused"); SF_Wrt(ft, sdl.scr, gm.scr_w / 2, gm.scr_h / 2, str, 0); Sdl_FUpd(); // wait for 'p' while (!leave) { SDL_WaitEvent(&e); switch (e.type) { case SDL_QUIT: trm_gm = 1; leave = 1; break; case SDL_KEYUP: if (e.key.keysym.sym == SDLK_p) leave = 1; if (e.key.keysym.sym == SDLK_f) { cfg.fscr = !cfg.fscr; flgs = SDL_SWSURFACE; if (cfg.fscr) flgs = flgs | SDL_FULLSCREEN; Sdl_StVdMd(gm.scr_w, gm.scr_h, 16, flgs); D_FDST(sdl.scr); SS_Fill(0x0); SF_Wrt(ft, sdl.scr, gm.scr_w / 2, gm.scr_h / 2, str, 0); Sdl_FUpd(); } break; case SDL_MOUSEMOTION: mx = e.motion.x; my = e.motion.y; break; } } // restore screen D_FDST(sdl.scr); D_FSRC(buf); SS_Blt(); Sdl_FUpd(); SDL_FreeSurface(buf); // cursor Cr_Cng(mx, my); //reset time // T_Rst(); } /* check if the figure has been completed */ void G_CkFgr() { int i, j, k, l; Lvl *lvl = gm.c_lvl; for (i = 0; i < lvl->m_w - lvl->f_w; i++) for (j = 0; j < lvl->m_h - lvl->f_h; j++) { gm.l_done = 1; for (k = 0; k < lvl->f_w; k++) { for (l = 0; l < lvl->f_h; l++) { if (lvl->fgr[k][l] != -1) if (lvl->map[i + k][j + l].m != lvl->fgr[k][l]) { gm.l_done = 0; break; } } if (!gm.l_done) break; } if (gm.l_done) return; } } /* confirm warp */ int G_CfmWrp() { SFnt *ft = gm.f_sml; SDL_Surface *buf; SDL_Event e; char str[256]; int leave = 0, ret = 0; int mx = gm.o_mx, my = gm.o_my; // save screen // buf = SS_Crt(gm.scr_w, gm.scr_h, SDL_SWSURFACE); SDL_SetColorKey(buf, 0, 0); D_FDST(buf); D_FSRC(sdl.scr); SS_Blt(); // cursor SDL_SetCursor(gm.c_n); // fill with black D_FDST(sdl.scr); SS_Fill(0x0); // write info ft->algn = TA_X_C | TA_Y_T; sprintf(str, "Your current position is level %i of chapter %i.", gm.c_l_id + 1, gm.c_ch + 1); SF_Wrt(ft, sdl.scr, gm.scr_w / 2, 200, str, 0); sprintf(str, "Do you really want to enter level %i of chapter %i?", gm.w_l + 1, gm.w_c + 1); SF_Wrt(ft, sdl.scr, gm.scr_w / 2, 200 + 15, str, 0); sprintf(str, "(All changes in the current level will be lost!)"); SF_Wrt(ft, sdl.scr, gm.scr_w / 2, 200 + 30, str, 0); sprintf(str, "(press y/n)"); SF_Wrt(ft, sdl.scr, gm.scr_w / 2, 200 + 50, str, 0); Sdl_FUpd(); #ifdef SOUND sound_play(gm.wv_clk); #endif while (!leave) { SDL_WaitEvent(&e); switch (e.type) { case SDL_QUIT: trm_gm = leave = 1; break; case SDL_KEYUP: switch (e.key.keysym.sym) { case SDLK_y: ret = 1; leave = 1; break; case SDLK_n: ret = 0; leave = 1; break; default: break; } break; case SDL_MOUSEBUTTONUP: switch (e.button.button) { case 1: ret = 1; leave = 1; break; default: ret = 0; leave = 1; break; } break; case SDL_MOUSEMOTION: mx = e.motion.x; my = e.motion.y; break; } } #ifdef SOUND sound_play(gm.wv_clk); #endif // restore screen if (cfg.dim) SDL_DIM(); if (!ret) { D_FDST(sdl.scr); D_FSRC(buf); SS_Blt(); if (cfg.dim) SDL_UNDIM(); else Sdl_FUpd(); // cursor Cr_Cng(mx, my); } SDL_FreeSurface(buf); // reset time // T_Rst(); return ret; } /* confirm quit */ int G_CfmQut() { SFnt *ft = gm.f_sml; SDL_Surface *buf; SDL_Event e; char str[256]; int leave = 0, ret = 0; int mx = gm.o_mx, my = gm.o_my; // save screen // buf = SS_Crt(gm.scr_w, gm.scr_h, SDL_SWSURFACE); SDL_SetColorKey(buf, 0, 0); D_FDST(buf); D_FSRC(sdl.scr); SS_Blt(); // cursor SDL_SetCursor(gm.c_n); // fill with black D_FDST(sdl.scr); SS_Fill(0x0); // write info ft->algn = TA_X_C | TA_Y_C; sprintf(str, "Do you really want to quit? (y/n)"); SF_Wrt(ft, sdl.scr, gm.scr_w / 2, gm.scr_h / 2, str, 0); Sdl_FUpd(); #ifdef SOUND sound_play(gm.wv_clk); #endif while (!leave) { SDL_WaitEvent(&e); switch (e.type) { case SDL_QUIT: trm_gm = leave = 1; break; case SDL_KEYUP: switch (e.key.keysym.sym) { case SDLK_ESCAPE: case SDLK_y: ret = 1; leave = 1; break; case SDLK_n: ret = 0; leave = 1; break; default: break; } break; case SDL_MOUSEBUTTONUP: switch (e.button.button) { case 1: ret = 1; leave = 1; break; default: ret = 0; leave = 1; break; } break; } } #ifdef SOUND sound_play(gm.wv_clk); #endif // restore screen if (!ret) { if (cfg.dim) SDL_DIM(); D_FDST(sdl.scr); D_FSRC(buf); SS_Blt(); if (cfg.dim) SDL_UNDIM(); else Sdl_FUpd(); // cursor Cr_Cng(mx, my); } SDL_FreeSurface(buf); // reset time // T_Rst(); return ret; } /* confirm quit */ int G_CfmRst() { SFnt *ft = gm.f_sml; SDL_Surface *buf; SDL_Event e; char str[256]; int leave = 0, ret = 0; int mx = gm.o_mx, my = gm.o_my; // save screen // buf = SS_Crt(gm.scr_w, gm.scr_h, SDL_SWSURFACE); SDL_SetColorKey(buf, 0, 0); D_FDST(buf); D_FSRC(sdl.scr); SS_Blt(); // cursor SDL_SetCursor(gm.c_n); // fill with black D_FDST(sdl.scr); SS_Fill(0x0); // write info ft->algn = TA_X_C | TA_Y_C; sprintf(str, "Do you really want to restart? (y/n)"); SF_Wrt(ft, sdl.scr, gm.scr_w / 2, gm.scr_h / 2, str, 0); Sdl_FUpd(); #ifdef SOUND sound_play(gm.wv_clk); #endif while (!leave) { SDL_WaitEvent(&e); switch (e.type) { case SDL_QUIT: trm_gm = leave = 1; break; case SDL_KEYUP: switch (e.key.keysym.sym) { case SDLK_r: case SDLK_y: ret = 1; leave = 1; break; case SDLK_n: ret = 0; leave = 1; break; default: break; } break; case SDL_MOUSEBUTTONUP: switch (e.button.button) { case 1: ret = 1; leave = 1; break; default: ret = 0; leave = 1; break; } break; } } #ifdef SOUND sound_play(gm.wv_clk); #endif // restore screen if (cfg.dim) SDL_DIM(); if (!ret) { D_FDST(sdl.scr); D_FSRC(buf); SS_Blt(); if (cfg.dim) SDL_UNDIM(); else Sdl_FUpd(); // cursor Cr_Cng(mx, my); } SDL_FreeSurface(buf); // reset time // T_Rst(); return ret; } /* check if level set can be played and ask for confirmation if it got errors */ int G_CkLSt() { char str[256]; SFnt *ft = gm.f_sml; SDL_Event e; if (gm.c_l_st->ch == 0) { D_FDST(sdl.scr); SS_Fill(0x0); sprintf(str, "This level set cannot be played.\n"); ft->algn = TA_X_C | TA_Y_C; SF_Wrt(ft, sdl.scr, sdl.scr->w / 2, sdl.scr->h / 2, str, 0); Sdl_FUpd(); Sdl_WtFrClk(); return 0; } if (!gm.c_l_st->ok) { D_FDST(sdl.scr); SS_Fill(0x0); sprintf(str, "This level set has errors. Play anyway? (y/n)\n"); ft->algn = TA_X_C | TA_Y_C; SF_Wrt(ft, sdl.scr, sdl.scr->w / 2, sdl.scr->h / 2, str, 0); Sdl_FUpd(); while (1) { if (SDL_WaitEvent(&e)) switch (e.type) { case SDL_KEYUP: switch (e.key.keysym.sym) { case SDLK_ESCAPE: case SDLK_n: return 0; case SDLK_y: return 1; default: break; } case SDL_MOUSEBUTTONUP: switch (e.button.button) { case 1: return 1; default: return 0; break; } break; } } } return 1; } // marble // /* hide current marble */ void Mr_Hd() { if (!gm.m_sel) return; D_DST(sdl.scr, (int)gm.m_x, (int)gm.m_y, gm.t_w, gm.t_h); D_SRC(gm.s_bkgd, (int)gm.m_x, (int)gm.m_y); SS_Blt(); Sdl_AddR((int)gm.m_x, (int)gm.m_y, gm.t_w, gm.t_h); } /* show current marble */ void Mr_Shw() { if (!gm.m_sel) return; D_DST(sdl.scr, (int)gm.m_x, (int)gm.m_y, gm.t_w, gm.t_h); D_SRC(gm.s_mrb, (int)gm.m_a.p * gm.m_a.w, gm.m_id * gm.t_h); SS_Blt(); Sdl_AddR((int)gm.m_x, (int)gm.m_y, gm.t_w, gm.t_h); } /* update current marble return 0 if times out( moves ) */ int Mr_Upd(int ms) { float c; // change int stp = 0; // marble stopped ? if (!gm.m_sel || !gm.m_mv) return 1; // marble animation (frame) switch (gm.m_d) { case 1: case 2: gm.m_a.p += gm.m_a.c * ms; if (gm.m_a.p >= gm.m_a.f) gm.m_a.p = 0; break; case 0: case 3: gm.m_a.p -= gm.m_a.c * ms; if (gm.m_a.p <= 0) gm.m_a.p = gm.m_a.f; break; } c = ms * gm.m_v; switch (gm.m_d) { case 0: gm.m_y -= c; if (gm.m_y <= gm.m_ty) { Mr_Stp(); stp = 1; } break; case 1: gm.m_x += c; if (gm.m_x >= gm.m_tx) { Mr_Stp(); stp = 1; } break; case 2: gm.m_y += c; if (gm.m_y >= gm.m_ty) { Mr_Stp(); stp = 1; } break; case 3: gm.m_x -= c; if (gm.m_x <= gm.m_tx) { Mr_Stp(); stp = 1; } break; } // warp??? if ( gm.m_warp ) { gm.m_x = gm.m_tx; gm.m_y = gm.m_ty; Mr_Stp(); stp = 1; gm.m_warp = 0; } // check time if move limit // if ( stp && gm.c_l_st->limit_type == MOVES && gm.m_act != M_TLP_0 && gm.m_act != M_TLP_1 && gm.m_act != M_TLP_2 && gm.m_act != M_TLP_3) { gm.c_lvl->tm--; if ( gm.c_lvl->tm <= 0 && !gm.l_done /* completion with last move is okay */ ) return 0; } // stopped and awaiting action ? if (stp && gm.m_act != M_EMPTY) Mr_Act(); else if (stp) { #ifdef SOUND sound_play(gm.wv_stp); #endif } return 1; } /* select a marble */ void Mr_Sel(int x, int y) { int mx, my; mx = (x - gm.l_x) / gm.t_w; my = (y - gm.l_y) / gm.t_h; if (gm.m_sel) { gm.mf_a.p = gm.msf_a.p = 0; Mr_Ins(); } // set selected gm.m_sel = 1; // get map position gm.m_mx = mx; gm.m_my = my; // check valid moving directions Mr_CkVDir(mx, my); // delete marble from background L_DrwMpTl(mx, my); // get position in screen gm.m_x = mx * gm.t_w + gm.l_x; gm.m_y = my * gm.t_h + gm.l_y; // get id // gm.m_id = gm.c_lvl->map[mx][my].m; // delete marble from map gm.c_lvl->map[mx][my].m = -1; // save old position gm.m_o_x = (int)gm.m_x; gm.m_o_y = (int)gm.m_y; gm.m_o_move_count = gm.c_lvl->tm; #ifdef SOUND sound_play(gm.wv_sel); #endif } /* release a marble */ void Mr_Rel(int x, int y) { Mr_Ins(); gm.m_sel = 0; SDL_SetCursor(gm.c_n); gm.m_o_x = gm.m_o_y = -1; } /* initialize movement */ void Mr_IniMv() { int x_a = 0, y_a = 0, tx, ty; int t_fnd = 0; // direction gm.m_d = gm.c_stat -2; if (gm.m_d < 0 || gm.m_d > 4) return; // direction verified; activate movement gm.m_mv = 1; // store position if no action if ( gm.m_act == M_EMPTY ) { gm.m_o_x = (int)gm.m_x; gm.m_o_y = (int)gm.m_y; gm.m_o_move_count = gm.c_lvl->tm; } // clear previous action gm.m_act = M_EMPTY; // compute target position switch (gm.m_d) { case 0: y_a = -1; break; case 1: x_a = 1; break; case 2: y_a = 1; break; case 3: x_a = -1; break; } tx = gm.m_mx + x_a; ty = gm.m_my + y_a; while ( // target already found !t_fnd && // wall gm.c_lvl->map[tx][ty].t != M_WALL && // crumbling wall gm.c_lvl->map[tx][ty].t != M_CRUMBLE && // marble gm.c_lvl->map[tx][ty].m == -1 && // up !((gm.c_lvl->map[tx][ty].t == M_OW_D || gm.c_lvl->map[tx][ty].t == M_OW_D_C || gm.c_lvl->map[tx][ty].t == M_OW_L_C || gm.c_lvl->map[tx][ty].t == M_OW_R_C) && y_a == -1) && // down !((gm.c_lvl->map[tx][ty].t == M_OW_U || gm.c_lvl->map[tx][ty].t == M_OW_U_C || gm.c_lvl->map[tx][ty].t == M_OW_L_C || gm.c_lvl->map[tx][ty].t == M_OW_R_C) && y_a == 1) && // right !((gm.c_lvl->map[tx][ty].t == M_OW_L || gm.c_lvl->map[tx][ty].t == M_OW_L_C || gm.c_lvl->map[tx][ty].t == M_OW_U_C || gm.c_lvl->map[tx][ty].t == M_OW_D_C) && x_a == 1) && // left !((gm.c_lvl->map[tx][ty].t == M_OW_R || gm.c_lvl->map[tx][ty].t == M_OW_R_C || gm.c_lvl->map[tx][ty].t == M_OW_U_C || gm.c_lvl->map[tx][ty].t == M_OW_D_C) && x_a == -1) ) { // check action switch (gm.c_lvl->map[tx][ty].t) { case M_TLP_0: case M_TLP_1: case M_TLP_2: case M_TLP_3: t_fnd = 1; gm.m_act = gm.c_lvl->map[tx][ty].t; break; case M_OW_U: if (y_a != -1) { gm.m_act = M_OW_U; t_fnd = 1; } break; case M_OW_D: if (y_a != 1) { gm.m_act = M_OW_D; t_fnd = 1; } break; case M_OW_L: if (x_a != -1) { gm.m_act = M_OW_L; t_fnd = 1; } break; case M_OW_R: if (x_a != 1) { gm.m_act = M_OW_R; t_fnd = 1; } break; } tx += x_a; ty += y_a; } // crumbling wall if (gm.c_lvl->map[tx][ty].t == M_CRUMBLE) gm.m_act = M_CRUMBLE; tx -= x_a; ty -= y_a; gm.m_tx = tx * gm.t_w + gm.l_x; gm.m_ty = ty * gm.t_h + gm.l_y; // wait cursor SDL_SetCursor(gm.c_w); } /* stop a marble */ void Mr_Stp() { int mx, my; // position in screen gm.m_x = gm.m_tx; gm.m_y = gm.m_ty; mx = (gm.m_x - gm.l_x) / gm.t_w; my = (gm.m_y - gm.l_y) / gm.t_h; // position in map gm.m_mx = mx; gm.m_my = my; // check valid moving directions Mr_CkVDir(mx, my); gm.m_mv = 0; gm.m_a.p = 0; // check cursor // Cr_Cng(gm.o_mx, gm.o_my); // if no action check if the figure is completed if (gm.m_act == M_EMPTY || gm.m_act == M_CRUMBLE) { gm.c_lvl->map[mx][my].m = gm.m_id; G_CkFgr(); gm.c_lvl->map[mx][my].m = -1; } } /* insert a marble into map */ void Mr_Ins() { int mx, my, x, y; mx = (gm.m_x - gm.l_x) / gm.t_w; my = (gm.m_y - gm.l_y) / gm.t_h; x = mx * gm.t_w + gm.l_x; y = my * gm.t_h + gm.l_y; //hide frame MF_Hd(); // draw to background D_DST(gm.s_bkgd, x, y, gm.t_w, gm.t_h); D_SRC(gm.s_mrb, 0, gm.m_id * gm.t_h); SS_Blt(); // to screen D_DST(sdl.scr, x, y, gm.t_w, gm.t_h); D_SRC(gm.s_mrb, 0, gm.m_id * gm.t_h); SS_Blt(); // and to map gm.c_lvl->map[mx][my].m = gm.m_id; } /* check valid directions */ void Mr_CkVDir(int mx, int my) { gm.m_vd = 0; if ( gm.c_lvl->map[mx][my].t != M_OW_D_C && gm.c_lvl->map[mx][my].t != M_OW_U_C && gm.c_lvl->map[mx - 1][my].t != M_WALL && gm.c_lvl->map[mx - 1][my].t != M_CRUMBLE && gm.c_lvl->map[mx - 1][my].m == -1 && gm.c_lvl->map[mx - 1][my].t != M_OW_R && gm.c_lvl->map[mx - 1][my].t != M_OW_R_C && gm.c_lvl->map[mx - 1][my].t != M_OW_U_C && gm.c_lvl->map[mx - 1][my].t != M_OW_D_C) gm.m_vd = gm.m_vd | MD_L; if ( gm.c_lvl->map[mx][my].t != M_OW_D_C && gm.c_lvl->map[mx][my].t != M_OW_U_C && gm.c_lvl->map[mx + 1][my].t != M_WALL && gm.c_lvl->map[mx + 1][my].t != M_CRUMBLE && gm.c_lvl->map[mx + 1][my].m == -1 && gm.c_lvl->map[mx + 1][my].t != M_OW_L && gm.c_lvl->map[mx + 1][my].t != M_OW_L_C && gm.c_lvl->map[mx + 1][my].t != M_OW_U_C && gm.c_lvl->map[mx + 1][my].t != M_OW_D_C) gm.m_vd = gm.m_vd | MD_R; if ( gm.c_lvl->map[mx][my].t != M_OW_L_C && gm.c_lvl->map[mx][my].t != M_OW_R_C && gm.c_lvl->map[mx][my - 1].t != M_WALL && gm.c_lvl->map[mx][my - 1].t != M_CRUMBLE && gm.c_lvl->map[mx][my - 1].m == -1 && gm.c_lvl->map[mx][my - 1].t != M_OW_D && gm.c_lvl->map[mx][my - 1].t != M_OW_D_C && gm.c_lvl->map[mx][my - 1].t != M_OW_L_C && gm.c_lvl->map[mx][my - 1].t != M_OW_R_C) gm.m_vd = gm.m_vd | MD_U; if ( gm.c_lvl->map[mx][my].t != M_OW_L_C && gm.c_lvl->map[mx][my].t != M_OW_R_C && gm.c_lvl->map[mx][my + 1].t != M_WALL && gm.c_lvl->map[mx][my + 1].t != M_CRUMBLE && gm.c_lvl->map[mx][my + 1].m == -1 && gm.c_lvl->map[mx][my + 1].t != M_OW_U && gm.c_lvl->map[mx][my + 1].t != M_OW_U_C && gm.c_lvl->map[mx][my + 1].t != M_OW_L_C && gm.c_lvl->map[mx][my + 1].t != M_OW_R_C) gm.m_vd = gm.m_vd | MD_D; } /* handle actions! */ void Mr_Act() { int x_a = 0, y_a = 0, ow = 0, mx = gm.m_mx, my = gm.m_my, tx, ty; int i, j; // crumbling wall ? if (gm.m_act == M_CRUMBLE) { tx = mx + (gm.m_d == 1 ? 1 : gm.m_d == 3 ? -1 : 0); ty = my + (gm.m_d == 0 ? -1 : gm.m_d == 2 ? 1 : 0); if (gm.c_lvl->map[tx][ty].t == M_CRUMBLE) { #ifdef SOUND sound_play(gm.wv_stp); #endif if (gm.c_lvl->map[tx][ty].id > 0) gm.c_lvl->map[tx][ty].id--; else { Wl_Exp(gm.l_x + tx * gm.t_w, gm.l_y + ty * gm.t_h, gm.m_d); gm.c_lvl->map[tx][ty].t = M_FLOOR; // check moving direction Mr_CkVDir(gm.m_mx, gm.m_my); Cr_Cng(gm.o_mx, gm.o_my); // reset restore position gm.m_o_x = gm.m_tx; gm.m_o_y = gm.m_ty; gm.m_o_move_count = gm.c_lvl->tm; #ifdef SOUND sound_play(gm.wv_exp); #endif } // draw to background L_DrwMpTl(tx, ty); // draw to screen D_DST(sdl.scr, gm.l_x + tx * gm.t_w, gm.l_y + ty * gm.t_h, gm.t_w, gm.t_h); D_SRC(gm.s_bkgd, gm.l_x + tx * gm.t_w, gm.l_y + ty * gm.t_h); SS_Blt(); // add refresh rect Sdl_AddR(gm.l_x + tx * gm.t_w, gm.l_y + ty * gm.t_h, gm.t_w, gm.t_h); } // no action // gm.m_act = M_EMPTY; return; } // oneway ? switch (gm.m_act) { case M_OW_U: y_a = -1; ow = 1; gm.c_stat = C_U; break; case M_OW_D: y_a = 1; ow = 1; gm.c_stat = C_D; break; case M_OW_R: x_a = 1; ow = 1; gm.c_stat = C_R; break; case M_OW_L: x_a = -1; ow = 1; gm.c_stat = C_L; break; } if (ow) { /* mx += x_a; my += y_a; while (gm.c_lvl->map[mx][my].m != -1) { mx += x_a; my += y_a; } mx -= x_a; my -= y_a; if (mx != gm.m_mx || my != gm.m_my) { Mr_Ins(); Mr_Sel(gm.l_x + mx * gm.t_w, gm.l_y + my * gm.t_h); }*/ #ifdef SOUND sound_play(gm.wv_arw); #endif Mr_IniMv(); return; } // teleport ? if (gm.m_act >= M_TLP_0 && gm.m_act <= M_TLP_3) { for (i = 0; i < gm.c_lvl->m_w; i++) { for (j = 0; j < gm.c_lvl->m_h; j++) if (gm.c_lvl->map[i][j].t == gm.m_act && (i != gm.m_mx || j != gm.m_my)) { // only warp if destination is empty // if (gm.c_lvl->map[i][j].m == -1) { gm.m_mx = i; gm.m_my = j; gm.m_x = gm.m_mx * gm.t_w + gm.l_x; gm.m_y = gm.m_my * gm.t_h + gm.l_y; #ifdef SOUND sound_play(gm.wv_tlp); #endif } gm.c_stat = gm.m_d + 2; // restore c_stat for movement initialization // initate movement Mr_IniMv(); /* // check if the figure is completed gm.c_lvl->map[gm.m_mx][gm.m_my].m = gm.m_id; G_CkFgr(); gm.c_lvl->map[gm.m_mx][gm.m_my].m = -1;*/ return; } } } // gm.m_act = M_EMPTY; } /* restore old position */ void Mr_ResPos() { if ( !gm.m_sel || gm.m_o_x == -1 ) return; gm.m_act = M_EMPTY; gm.m_tx = gm.m_o_x; gm.m_ty = gm.m_o_y; if ( gm.c_l_st->limit_type == MOVES ) gm.c_lvl->tm = gm.m_o_move_count; Mr_Stp(); } // timer // /* hide time */ void Tm_Hd() { int w = gm.brd_w - gm.t_x * 2; int h = gm.f_wht->h; D_DST(sdl.scr, gm.t_x + gm.b_x, gm.t_y, w, h); D_SRC(gm.s_bkgd, gm.t_x + gm.b_x, gm.t_y); SS_Blt(); Sdl_AddR(gm.t_x + gm.b_x, gm.t_y, w, h); } /* show time */ void Tm_Shw() { SFnt *ft; char str_tm[16]; char str_sec[4]; int tm; // adjust time // if ( gm.c_l_st->limit_type == TIME ) tm = gm.c_lvl->tm / 1000; else tm = gm.c_lvl->tm; // select font ft = gm.f_wht; if ( gm.c_l_st->limit_type == TIME && tm <= 30 ) ft = gm.f_rd; else if ( gm.c_l_st->limit_type == MOVES && tm <= 10 ) ft = gm.f_rd; // draw "time" ft->algn = TA_X_L | TA_Y_T; if ( gm.c_l_st->limit_type == TIME ) SF_Wrt(ft, sdl.scr, gm.t_x + gm.b_x, gm.t_y, "Time:", 0); else SF_Wrt(ft, sdl.scr, gm.t_x + gm.b_x, gm.t_y, "Moves:", 0); // compute and draw time str if ( gm.c_l_st->limit_type == TIME ) { sprintf(str_tm, "%i:", tm / 60); sprintf(str_sec, "%i", tm % 60); if (strlen(str_sec) < 2) strcat(str_tm, "0"); strcat(str_tm, str_sec); } else sprintf( str_tm, "%i", tm ); ft->algn = TA_X_R | TA_Y_T; SF_Wrt(ft, sdl.scr, gm.scr_w - gm.t_x, gm.t_y, str_tm, 0); Sdl_AddR(gm.t_x + gm.b_x, gm.t_y, gm.b_x - gm.t_x*2, ft->h); } /* update time return 0 if time out */ int Tm_Upd(int ms) { #ifdef SOUND int old_sec = gm.c_lvl->tm / 1000; #endif gm.blink_time += ms; // if limit_type is MOVES, time is ignored // if ( gm.c_l_st->limit_type == MOVES ) return 1; gm.c_lvl->tm -= ms; // new second ? #ifdef SOUND if ( old_sec != gm.c_lvl->tm / 1000 && old_sec <= 30 ) sound_play(gm.wv_alm); #endif if (gm.c_lvl->tm < 0) { gm.c_lvl->tm = 0; return 0; } return 1; } // level info // /* hide level info */ void Inf_Hd() { D_DST(sdl.scr, gm.b_x + gm.s_x, gm.s_y + gm.s_h - 20, gm.s_w, 20); D_SRC(gm.s_bkgd, gm.b_x + gm.s_x, gm.s_y + gm.s_h - 20); SS_Blt(); Sdl_AddR(gm.b_x + gm.s_x, gm.s_y + gm.s_h - 20, gm.s_w, 20); } /* update level info */ int Inf_Upd() { int x, y; x = (gm.o_mx - gm.c_x - gm.b_x) / L_SIZE; y = (gm.o_my - gm.c_y) / L_SIZE; if (gm.o_mx < gm.c_x + gm.b_x || gm.o_my < gm.c_y || x >= gm.c_l_st->l_num || y >= gm.c_l_st->c_num) { sprintf(gm.inf_str, "Tier %i, Puzzle %i", gm.c_ch + 1, gm.c_l_id + 1); return 0; } if (!gm.c_s_inf->cmp[y * gm.c_s_inf->l_num + x] && !gm.c_s_inf->c_opn[y]) { sprintf(gm.inf_str, "Access Denied"); return 0; } sprintf(gm.inf_str, "Tier %i, Puzzle %i", y + 1, x + 1); if (gm.bttn[1]) { gm.w_c = y; gm.w_l = x; return 1; } return 0; } /* show level info */ void Inf_Shw() { gm.f_sml->algn = TA_X_C | TA_Y_B; SF_Wrt(gm.f_sml, sdl.scr, gm.b_x + gm.brd_w / 2, gm.s_y + gm.s_h - 5, gm.inf_str, 0); } // cursor /* load cursor */ void Cr_Ld(char *src, char *d, char*m) { int w=16, h = 16; int i, j, k; char b_d, b_m; int p; k = 0; for (j = 0; j < w * h; j += 8, k++) { p = 1; b_d = b_m = 0; // create byte for (i = 7; i >= 0; i--) { switch (src[j + i]) { case 2: b_d += p; case 1: b_m += p; break; } p *= 2; } // add to mask d[k] = b_d; m[k] = b_m; } } /* change cursors appearing */ void Cr_Cng(int x, int y) { int mx, my, cx, cy; if (gm.m_mv) { if (x > gm.scr_w - gm.brd_w) SDL_SetCursor(gm.c_n); else SDL_SetCursor(gm.c_w); return; } mx = (x - gm.l_x) / gm.t_w; my = (y - gm.l_y) / gm.t_h; if ( mx >= 0 && my >= 0 && mx < gm.c_lvl->m_w && my < gm.c_lvl->m_h && (gm.c_lvl->map[mx][my].m != - 1 || (gm.m_mx == mx && gm.m_my == my))) { // on marble SDL_SetCursor(gm.c_s); gm.c_stat = C_SEL; } else if (!gm.m_sel || x > gm.scr_w - gm.brd_w) { // nothing selected SDL_SetCursor(gm.c_n); gm.c_stat = C_NONE; } else { // up, left, right, down cx = x - (gm.m_mx * gm.t_w + gm.l_x + gm.t_w / 2); cy = y - (gm.m_my * gm.t_h + gm.l_y + gm.t_h / 2); if (abs(cx) > abs(cy)) { if (cx > 0) { if (gm.m_vd & MD_R) { SDL_SetCursor(gm.c_r); gm.c_stat = C_R; } else { SDL_SetCursor(gm.c_n); gm.c_stat = C_NONE; } } else { if (gm.m_vd & MD_L) { SDL_SetCursor(gm.c_l); gm.c_stat = C_L; } else { SDL_SetCursor(gm.c_n); gm.c_stat = C_NONE; } } } else { if (cy > 0) { if (gm.m_vd & MD_D) { SDL_SetCursor(gm.c_d); gm.c_stat = C_D; } else { SDL_SetCursor(gm.c_n); gm.c_stat = C_NONE; } } else { if (gm.m_vd & MD_U) { SDL_SetCursor(gm.c_u); gm.c_stat = C_U; } else { SDL_SetCursor(gm.c_n); gm.c_stat = C_NONE; } } } } } // frame // /* hide marble frame */ void MF_Hd() { int x, y, w, h; if (!gm.m_sel) return; // get size if (gm.msf_a.p == gm.msf_a.f) { w = gm.mf_a.w; h = gm.mf_a.h; } else { w = gm.msf_a.w; h = gm.msf_a.h; } // get position x = gm.m_x + (gm.t_w - w) / 2; y = gm.m_y + (gm.t_h - h) / 2; // hide D_DST(sdl.scr, x, y, w, h); D_SRC(gm.s_bkgd, x, y); SS_Blt(); Sdl_AddR(x - 1, y - 1, w + 1, h + 1); } /* update marble frame */ void MF_Upd(int ms) { if (!gm.m_sel) { gm.mf_a.p = gm.msf_a.p = 0; return; } if (gm.msf_a.p != gm.msf_a.f) { // still select animation gm.msf_a.p += gm.msf_a.c * ms; if (gm.msf_a.p >= gm.msf_a.f) gm.msf_a.p = gm.msf_a.f; } else { gm.mf_a.p += gm.mf_a.c * ms; if (gm.mf_a.p >= gm.mf_a.f) gm.mf_a.p = 0; } } /* show marble frame */ void MF_Shw() { int x, y; AInf *a; SDL_Surface *s; if (!gm.m_sel) return; // get animation info if (gm.msf_a.p == gm.msf_a.f) { a = &gm.mf_a; s = gm.s_mf; } else { a = &gm.msf_a; s = gm.s_msf; } // get position x = gm.m_x + (gm.t_w - a->w) / 2; y = gm.m_y + (gm.t_h - a->h) / 2; // show D_DST(sdl.scr, x, y, a->w, a->h); D_SRC(s, (int)a->p * a->w, 0); SS_Blt(); Sdl_AddR(x, y, a->w, a->h); } // map animations // /* get position and type of all animations */ void MA_Ini() { int i, j; // free and reallocate m_ani if (gm.m_ani) free(gm.m_ani); gm.m_ani = (MAni*)malloc(sizeof(MAni) * gm.c_lvl->m_w * gm.c_lvl->m_h); gm.ma_num = 0; // parse level map for (i = 0; i < gm.c_lvl->m_w; i++) for (j = 0; j < gm.c_lvl->m_h; j++) switch (gm.c_lvl->map[i][j].t) { case M_OW_U: case M_OW_D: case M_OW_L: case M_OW_R: case M_OW_U_C: case M_OW_D_C: case M_OW_L_C: case M_OW_R_C: gm.m_ani[gm.ma_num].x = i; gm.m_ani[gm.ma_num].y = j; gm.m_ani[gm.ma_num].t = gm.c_lvl->map[i][j].t; gm.m_ani[gm.ma_num].a = &gm.ma_ow_a; gm.ma_num++; break; case M_TLP_0: case M_TLP_1: case M_TLP_2: case M_TLP_3: gm.m_ani[gm.ma_num].x = i; gm.m_ani[gm.ma_num].y = j; gm.m_ani[gm.ma_num].t = gm.c_lvl->map[i][j].t; gm.m_ani[gm.ma_num].a = &gm.ma_tlp_a; gm.ma_num++; break; default: break; } } void MA_Upd(int ms) { if (!cfg.ani) return; gm.ma_ow_a.p += (float)ms * gm.ma_ow_a.c; if (gm.ma_ow_a.p >= gm.ma_ow_a.f) gm.ma_ow_a.p = 0; gm.ma_tlp_a.p += (float)ms * gm.ma_tlp_a.c; if (gm.ma_tlp_a.p >= gm.ma_tlp_a.f) gm.ma_tlp_a.p = 0; } /* show map animations */ void MA_Shw() { int i; int x, y; if (!cfg.ani) return; for (i = 0; i < gm.ma_num; i++) { // get position in screen x = gm.l_x + gm.m_ani[i].x * gm.t_w; y = gm.l_y + gm.m_ani[i].y * gm.t_h; // draw empty floor D_DST(sdl.scr, x, y, gm.t_w, gm.t_h); D_SRC(gm.c_g_st->s_flr, 0, 0); SS_Blt(); // oneway D_DST(sdl.scr, x, y, gm.t_w, gm.t_h); switch (gm.m_ani[i].t) { case M_OW_R: case M_OW_R_C: D_SRC(gm.c_g_st->s_r_arw, (int)gm.m_ani[i].a->p * gm.t_w, 0); SS_Blt(); break; case M_OW_L: case M_OW_L_C: D_SRC(gm.c_g_st->s_l_arw, (int)gm.m_ani[i].a->p * gm.t_w, 0); SS_Blt(); break; case M_OW_U: case M_OW_U_C: D_SRC(gm.c_g_st->s_u_arw, 0, (int)gm.m_ani[i].a->p * gm.t_h); SS_Blt(); break; case M_OW_D: case M_OW_D_C: D_SRC(gm.c_g_st->s_d_arw, 0, (int)gm.m_ani[i].a->p * gm.t_h); SS_Blt(); break; } D_DST(sdl.scr, x, y, gm.t_w, gm.t_h); switch (gm.m_ani[i].t) { case M_OW_U_C: case M_OW_D_C: D_SRC(gm.c_g_st->s_lr_bar, 0, 0); SS_Blt(); break; case M_OW_L_C: case M_OW_R_C: D_SRC(gm.c_g_st->s_ud_bar, 0, 0); SS_Blt(); break; } // teleport D_DST(sdl.scr, x, y, gm.t_w, gm.t_h); switch (gm.m_ani[i].t) { case M_TLP_0: D_SRC(gm.c_g_st->s_tlp_0, (int)gm.m_ani[i].a->p * gm.t_w, 0); SS_ABlt(gm.tlp_a); break; case M_TLP_1: D_SRC(gm.c_g_st->s_tlp_1, (int)gm.m_ani[i].a->p * gm.t_w, 0); SS_ABlt(gm.tlp_a); break; case M_TLP_2: D_SRC(gm.c_g_st->s_tlp_2, (int)gm.m_ani[i].a->p * gm.t_w, 0); SS_ABlt(gm.tlp_a); break; case M_TLP_3: D_SRC(gm.c_g_st->s_tlp_3, (int)gm.m_ani[i].a->p * gm.t_w, 0); SS_ABlt(gm.tlp_a); break; } // marble on animation if (gm.c_lvl->map[gm.m_ani[i].x][gm.m_ani[i].y].m != -1 && ( ((gm.blink_time / 250) & 1) || gm.l_done ) ) { D_DST(sdl.scr, x, y, gm.t_w, gm.t_h); D_SRC(gm.s_mrb, 0, gm.c_lvl->map[gm.m_ani[i].x][gm.m_ani[i].y].m * gm.t_w); SS_Blt(); } // refresh rect Sdl_AddR(x, y, gm.t_w, gm.t_h); } } // shrapnells // /* add new shrapnell */ void Shr_Add(int x, int y, int w, int h, Vec d, SDL_Surface *s_shr) { Shr *s; s = (Shr*)malloc(sizeof(Shr)); s->d = d; s->x = x; s->y = y; s->w = w; s->h = h; s->a = 0; if ( s_shr ) s->s_shr = s_shr; else { s->s_shr = SS_Crt(w, h, SDL_SWSURFACE); D_DST(s->s_shr, 0, 0, w, h); D_SRC(sdl.scr, x, y); SS_Blt(); } DL_Add(&gm.shr, s); } /* delete shrapnell */ void Shr_Del(void *p) { Shr *s = (Shr*)p; if ( s->s_shr ) SDL_FreeSurface(s->s_shr); free(p); } /* hide shrapnell */ void Shr_Hd() { DL_E *e = gm.shr.hd.n; Shr *s; while ( e != &gm.shr.tl ) { s = (Shr*)e->d; D_DST(sdl.scr, (int)s->x, (int)s->y, s->w, s->h); D_SRC(gm.s_bkgd, (int)s->x, (int)s->y); SS_Blt(); Sdl_AddR((int)s->x, (int)s->y, s->w, s->h); e = e->n; } } /* update shrapnell */ void Shr_Upd(int ms) { DL_E *n, *e = gm.shr.hd.n; Shr *s; while ( e != &gm.shr.tl ) { n = e->n; s = (Shr*)e->d; s->x += s->d.x * (float)ms; s->y += s->d.y * (float)ms; s->a += gm.shr_a_c * (float)ms; if (s->a >= 255) DL_DelE(&gm.shr, e); e = n; } } /* show shrapnell */ void Shr_Shw() { DL_E *e = gm.shr.hd.n; Shr *s; while ( e != &gm.shr.tl ) { s = (Shr*)e->d; D_DST(sdl.scr, (int)s->x, (int)s->y, s->w, s->h); D_SRC(s->s_shr, 0, 0); SS_ABlt(s->a); Sdl_AddR((int)s->x, (int)s->y, s->w, s->h); e = e->n; } } // wall // /* explode crumble wall into lot of pieces */ void Wl_Exp(int x, int y, int d) { int i, j; int sz = 4; Vec v; int x_r, x_off, y_r, y_off; // direction values SDL_Surface *s_shr; if ( !cfg.ani ) return; x_r = y_r = 200; x_off = y_off = 100; // adjust direction values switch (d) { case 0: y_r = y_off = 100; break; case 1: x_r = 100; x_off = 0; break; case 2: y_r = 100; y_off = 0; break; case 3: x_r = x_off = 100; break; } for ( i = 0; i < gm.t_w; i += sz ) for ( j = 0; j < gm.t_h; j += sz ) { v.x = (float)((rand() % x_r ) - x_off) / 1000; v.y = (float)((rand() % y_r ) - y_off) / 1000; s_shr = SS_Crt(sz, sz, SDL_SWSURFACE); D_DST(s_shr, 0, 0, sz, sz); D_SRC(gm.c_g_st->s_crmbl, i, j); SS_Blt(); Shr_Add(x + i, y + j, sz, sz, v, s_shr); } } // figure animation // /* main animation function; select and explode marbles one by one */ void FA_Run() { int i, j, k; int m_cnt = 0; // marble count int m_pos[gm.c_lvl->f_w * gm.c_lvl->f_h][2], b; int ms; SDL_Event e; int leave = 0; int tm, c_tm; // time in ms if (!cfg.ani) return; if (gm.m_sel) Mr_Ins(); // count marbles and get position for ( i = 0; i < gm.c_lvl->m_w; i++ ) for (j = 0; j < gm.c_lvl->m_h; j++ ) if ( gm.c_lvl->map[i][j].m != - 1 ) { m_pos[m_cnt][0] = i; m_pos[m_cnt][1] = j; m_cnt++; } // unsort positions for ( k = 0; k < m_cnt * 5; k++) { i = rand() % m_cnt; j = rand() % m_cnt; b = m_pos[i][0]; m_pos[i][0] = m_pos[j][0]; m_pos[j][0] = b; b = m_pos[i][1]; m_pos[i][1] = m_pos[j][1]; m_pos[j][1] = b; } // explosions MF_Hd(); T_Rst(); tm = 250; c_tm = 0; m_cnt--; SDL_SetCursor(gm.c_w); while ( (m_cnt >= 0 || gm.shr.cntr > 0) && !trm_gm && !leave ) { // termination ? if (SDL_PollEvent(&e)) { switch (e.type) { case SDL_QUIT: trm_gm = 1; break; case SDL_MOUSEBUTTONUP: case SDL_KEYUP: if (e.key.keysym.sym == SDLK_TAB) SnapShot(); else leave = 1; break; } } // show shrapnells Shr_Hd(); ms = T_Gt(); c_tm -= ms; MA_Upd(ms); Shr_Upd(ms); MA_Shw(); Shr_Shw(); Tm_Shw(); Inf_Shw(); Sdl_UpdR(); //add new shrapnells if (m_cnt >= 0 && c_tm <= 0) { FA_Add(m_pos[m_cnt][0], m_pos[m_cnt][1], gm.c_lvl->map[m_pos[m_cnt][0]][m_pos[m_cnt][1]].m); c_tm = tm; m_cnt--; #ifdef SOUND sound_play(gm.wv_exp); #endif } } } /* add shrapnells at x,y with marble-id m */ void FA_Add(int mx, int my, int m) { int x, y; int i, j; int sz = 4; // size SDL_Surface *s_shr; Vec v; x = gm.l_x + mx * gm.t_w; y = gm.l_y + my * gm.t_h; // delete from screne gm.c_lvl->map[mx][my].m = -1; L_DrwMpTl(mx, my); Sdl_AddR(x, y, gm.t_w, gm.t_h); // create shrapnells for ( i = 0; i < gm.t_w; i += sz ) for ( j = 0; j < gm.t_h; j += sz ) { v.x = (float)((rand() % 200 ) - 100) / 1000; v.y = (float)((rand() % 200 ) - 100) / 1000; s_shr = SS_Crt(sz, sz, SDL_SWSURFACE); D_DST(s_shr, 0, 0, sz, sz); D_SRC(gm.s_mrb, i, gm.t_h * m + j); SS_Blt(); Shr_Add(x + i, y + j, sz, sz, v, s_shr); } } // credits // /* initiate credits */ void Cr_Ini() { gm.cr_st = 0; gm.cr_a = 255; gm.cr_c_tm = gm.cr_tm; sprintf(gm.cr_str, "'%s' (Author: %s)", gm.c_l_st->ch[gm.c_ch].nm, gm.c_l_st->ch[gm.c_ch].authr); gm.cr_w = SF_TxtW(gm.f_sml, gm.cr_str); gm.cr_h = gm.f_sml->h; gm.cr_x = (gm.scr_w - gm.brd_w - gm.cr_w) / 2; } /* hide credits */ void Cr_Hd() { if ( gm.cr_st == 3 ) return; D_DST(sdl.scr, gm.cr_x, gm.cr_y, gm.cr_w, gm.cr_h); D_SRC(gm.s_bkgd, gm.cr_x, gm.cr_y); SS_Blt(); } /* update credits */ void Cr_Upd(int ms) { if ( gm.cr_st == 3 ) return; switch ( gm.cr_st ) { case 0: // undim gm.cr_a -= gm.cr_a_c * (float)ms; if ( gm.cr_a <= 0 ) { gm.cr_a = 0; gm.cr_st = 1; } break; case 1: // just show till timeout gm.cr_c_tm -= ms; if ( gm.cr_c_tm <= 0 ) gm.cr_st = 2; break; case 2: // undim gm.cr_a += gm.cr_a_c * (float)ms; if ( gm.cr_a >= 255 ) { gm.cr_a = 255; gm.cr_st = 3; } break; } } /* show credits */ void Cr_Shw() { if ( gm.cr_st == 3) return; gm.f_sml->algn = TA_X_L | TA_Y_T; SF_Wrt(gm.f_sml, sdl.scr, gm.cr_x, gm.cr_y, gm.cr_str, (int)gm.cr_a); Sdl_AddR(gm.cr_x, gm.cr_y, gm.cr_w, gm.cr_h); } // modify score // void modify_score( int *b_lvl, int *b_tm ) { /* modify score according to difficulty level */ switch (cfg.diff) { case DIFF_EASY: *b_lvl /= 2; *b_tm /= 2; break; case DIFF_NORMAL: break; case DIFF_HARD: *b_lvl *= 2; *b_tm *= 2; break; case DIFF_BRAINSTORM: *b_tm *= 5; *b_lvl *= 5; break; } } // bonus summary // /* give a bonus summary */ void BS_Run(float b_lvl, float b_tm) { SDL_Surface *buf; SDL_Event e; int leave = 0; int coff, cy; // level completed int toff, ty; // time bonus int soff, sy; // score int ms; int sw = 80, sh = gm.f_sml->h; // string width, height float b_c = 1.0; // bonus change float scr = gm.c_prf->scr; int end_scr; int old_scr; end_scr = gm.c_prf->scr + (int)b_lvl + (int)b_tm; // normal cursor SDL_SetCursor(gm.c_n); // darken screen buf = SS_Crt(gm.scr_w, gm.scr_h, SDL_SWSURFACE); SDL_SetColorKey(buf, 0, 0); D_FDST(buf); SS_Fill(0x0); D_FDST(sdl.scr); D_FSRC(buf); SS_ABlt(128); SDL_FreeSurface(buf); D_FDST(gm.s_bkgd); D_FSRC(sdl.scr); SS_Blt(); // positions cy = 200; coff = 200; ty = 220; toff = 200; sy = 250; soff = 200; // info gm.f_sml->algn = TA_X_L | TA_Y_T; SF_Wrt(gm.f_sml, sdl.scr, coff, cy, "Level Bonus:", 0); SF_Wrt(gm.f_sml, sdl.scr, toff, ty, "Move Bonus:", 0); SF_Wrt(gm.f_sml, sdl.scr, soff, sy, "Total Score:", 0); Sdl_FUpd(); // show bonus first time gm.f_sml->algn = TA_X_R | TA_Y_T; BS_Shw(gm.scr_w - soff, sy, (int)scr); Sdl_UpdR(); SDL_Delay(500); BS_Shw(gm.scr_w - coff, cy, (int)b_lvl); Sdl_UpdR(); #ifdef SOUND sound_play(gm.wv_exp); #endif SDL_Delay(500); BS_Shw(gm.scr_w - toff, ty, (int)b_tm); Sdl_UpdR(); #ifdef SOUND sound_play(gm.wv_exp); #endif SDL_Delay(500); T_Rst(); while ( !leave ) { // break? if ( SDL_PollEvent(&e) ) switch ( e.type ) { case SDL_QUIT: trm_gm = 1; break; case SDL_MOUSEBUTTONUP: case SDL_KEYUP: leave = 1; break; } // time ms = T_Gt(); // hide BS_Hd(gm.scr_w - coff - sw, cy, sw, sh); BS_Hd(gm.scr_w - toff - sw, ty, sw, sh); BS_Hd(gm.scr_w - soff - sw, sy, sw, sh); // update old_scr = (int)scr; if ( b_lvl > 0 ) { b_lvl -= b_c * (float)ms; scr += b_c * (float)ms; if ( b_lvl < 0 ) b_lvl = 0; } if ( b_tm > 0 ) { b_tm -= b_c * (float)ms; scr += b_c * (float)ms; if ( b_tm < 0 ) b_tm = 0; } if ( (int)scr >= end_scr) scr = end_scr; if (b_lvl == 0 && b_tm == 0) scr = end_scr; #ifdef SOUND if ( (old_scr / 50) != (int)scr / 50 ) sound_play(gm.wv_scr); #endif // show BS_Shw(gm.scr_w - coff, cy, (int)b_lvl); BS_Shw(gm.scr_w - toff, ty, (int)b_tm); BS_Shw(gm.scr_w - soff, sy, (int)scr); Sdl_UpdR(); } } /* hide number */ void BS_Hd(int x, int y, int w, int h) { D_DST(sdl.scr, x, y, w, h); D_SRC(gm.s_bkgd, x, y); SS_Blt(); Sdl_AddR(x, y, w, h); } /* show number */ void BS_Shw(int x, int y, int v) { char str[10]; sprintf(str, "%i", v); SF_Wrt(gm.f_sml, sdl.scr, x, y, str, 0); Sdl_AddR(x - SF_TxtW(gm.f_sml, str), y, SF_TxtW(gm.f_sml, str), gm.f_sml->h); } // snap shot // /* take a screenshot */ void SnapShot() { char filename[32]; #ifdef SOUND sound_play(gm.wv_clk); #endif sprintf(filename, "snapshot_%i.bmp", gm.snap++); SDL_SaveBMP(sdl.scr, filename); } lmarbles-1.0.8/src/game.h0000644000175000017500000001716507524046657012144 00000000000000/*************************************************************************** game.h - description ------------------- begin : Mon Aug 14 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef GAME_H #define GAME_H #include #include #include "levels.h" #include "dynlist.h" #include "profile.h" #include "sdl.h" #include "audio.h" // gfx set // typedef struct { char nm[16]; // name int ok; // can be used SDL_Surface *s_bkgd, // background *s_wl, // walls *s_flr, // floor *s_r_arw, *s_l_arw, *s_u_arw, *s_d_arw, // arrows *s_ud_bar, *s_lr_bar, // barriers *s_tlp_0, *s_tlp_1, *s_tlp_2, *s_tlp_3, // teleporters *s_crmbl; // crumbling wall } GSet; // animation information // typedef struct { int f; // frame limit // float c; // change per millisecond // float p; // current position // int w, h; // size of one sprite // } AInf; // map animation // typedef struct { int x, y; // position in map int t; // type AInf *a; // animation info } MAni; // position typedef struct { int x, y; } Pos; // vector typedef struct { float x,y; } Vec; // shrapnell typedef struct { SDL_Surface *s_shr; // picture; Vec d; //direction float x,y; //position int w, h; // size float a; // alpha } Shr; // cursor states // #define C_NONE 0 #define C_SEL 1 #define C_U 2 #define C_R 3 #define C_D 4 #define C_L 5 // valid marble directions // #define MD_L (1<<0) #define MD_R (1<<1) #define MD_U (1<<2) #define MD_D (1<<3) #define L_GREEN 0 #define L_ORANGE 1 #define L_RED 2 #define L_WHITE 3 #define L_SIZE 12 typedef struct { // gfx sets // DLst g_sts; // gfx sets // // mouse button state // int bttn[4]; // graphics // SDL_Surface *s_lghts; // lamps displaying level progress // SDL_Surface *s_brd; // side board // SDL_Surface *s_mrb; // marbles // SDL_Surface *s_fig; // figure // SDL_Surface *s_bkgd; // background // SDL_Surface *s_mf; // marble frame // SDL_Surface *s_msf; // marble select frame // // fonts // SFnt *f_sml; // info // SFnt *f_wht; // time // SFnt *f_rd; // time2 - not much time left // // references // Prf *c_prf; // current profile // SInf *c_s_inf; // current profile level set info // LSet *c_l_st; // current level set // GSet *c_g_st; // current gfx set // Lvl *c_lvl; // current level // // player // int hi_scr; // last hiscore // int c_l_id; // current level // int c_ch; // current chapter // int o_ch; // old chapter // int l_done; // level finished // // marble // float m_v; // marble velocity per millisecond // int m_sel; // selected a marble ? // int m_mx, m_my; // position in map // int m_o_x, m_o_y; // old position // int m_o_move_count; // old move count // float m_x, m_y; // position in screen // int m_mv; // moving ? // int m_d; // direction of moving // int m_vd; // valid directions // int m_tx, m_ty; // target position in screen // int m_id; // current type of marble // AInf m_a; // animation information // int m_act; // action type // int m_warp; // warp marble to destination // // marble frame and marble select frame AInf mf_a; // animation info AInf msf_a; // animation info // layout // int l_x, l_y; // offset of level relative to 0,0 -- in L_Ini() int f_x, f_y; // figure offset relative to b_x, 0 int b_x; // board x int i_x, i_y; // info position relative to b_x,0 int t_x, t_y; // timer position relative to b_x,0 int s_x, s_y; // set info position relative to b_x,0 int c_x, c_y; // position of first chapter info relative to b_x,0 -- in L_Ini() // geometry // int t_w, t_h; // tile size // int f_w, f_h; // figure marble size // int f_fw, f_fh; // figure frame size // int scr_w, scr_h; // screen size // int brd_w; // board width int s_w, s_h; // size of set info int c_off; // offset between chapter infos // // cursors // int c_stat; // cursor state // SDL_Cursor *c_u, *c_d, *c_l, *c_r, *c_s, *c_n, *c_w; // cursors // old mouse pos // int o_mx, o_my; // level warp // char inf_str[64]; // warp info string int w_c, w_l; // warp level and chapter // map animations // MAni *m_ani; // animations int ma_num; // animation number AInf ma_ow_a; // oneway info AInf ma_tlp_a; // teleport info int tlp_a; // telporter alpha // sounds #ifdef SOUND Sound_Chunk *wv_tlp; // teleport Sound_Chunk *wv_sel; // select Sound_Chunk *wv_stp; // stop Sound_Chunk *wv_clk; // click Sound_Chunk *wv_exp; // explode Sound_Chunk *wv_alm; // alarm Sound_Chunk *wv_arw; // arrow Sound_Chunk *wv_scr; // score #endif DLst shr; // shrapnells float shr_a_c; // alpha change per second // credits float cr_a_c; // alpha change per msecond float cr_a; // current alpha int cr_tm; // shown how long ? int cr_c_tm; // current time char cr_str[256]; // what is shown... int cr_x, cr_y, cr_w, cr_h; // shown where ? int cr_st; // state: 0 undim, 1 shown, 2 dim // snapshot int snap; // blink time // int blink_time; } Game; void G_Ini(); void G_Trm(); int G_Opn(); void G_Cls(); void G_Run(); void G_LdGSts(); void G_DelGSt(void *p); void G_Ps(); void G_CkFgr(); int G_CfmWrp(); int G_CfmQut(); int G_CfmRst(); int G_CkLSt(); // marble // void Mr_Hd(); void Mr_Shw(); int Mr_Upd(int ms); void Mr_Sel(int x, int y); void Mr_Rel(int x, int y); void Mr_IniMv(); void Mr_Stp(); void Mr_Ins(); void Mr_CkVDir(int mx, int my); void Mr_Act(); void Mr_ResPos(); // timer // void Tm_Hd(); void Tm_Shw(); int Tm_Upd(int ms); // level info // void Inf_Hd(); int Inf_Upd(); void Inf_Shw(); // cursor // void Cr_Ld(char *src, char *d, char*m); void Cr_Cng(int x, int y); // frame // void MF_Hd(); void MF_Upd(int ms); void MF_Shw(); // map animations // void MA_Ini(); void MA_Upd(int ms); void MA_Shw(); // shrapnells // void Shr_Add(int x, int y, int w, int h, Vec d, SDL_Surface *s_shr); void Shr_Del(void *p); void Shr_Hd(); void Shr_Upd(int ms); void Shr_Shw(); // wall // void Wl_Exp(int x, int y, int v); // figure animation // void FA_Run(); void FA_Add(int mx, int my, int m); // credits // void Cr_Ini(); void Cr_Hd(); void Cr_Upd(int ms); void Cr_Shw(); // bonus summary // void BS_Run(float b_lvl, float b_tm); void BS_Hd(int x, int y, int w, int h); void BS_Shw(int x, int y, int v); // shnapshot // void SnapShot(); #endif lmarbles-1.0.8/src/levels.c0000644000175000017500000006547607524361451012520 00000000000000/*************************************************************************** levels.c - description ------------------- begin : Mon Aug 14 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include #include #include #include #include #include #include #include "levels.h" #include "dynlist.h" #include "game.h" #include "file.h" #include "sdl.h" #include "timer.h" #include "cfg.h" /* game struct -- game.c */ extern Game gm; /* line counter -- file.c */ extern int f_ln; /* Sdl -- sdl.c */ extern Sdl sdl; /* profiles -- profile.c */ extern DLst prfs; /* config -- cfg.c */ extern Cfg cfg; char **ls_lst = 0; int ls_n = 0; DLst l_sts; /* count and create a list with all loadable filenames found in SRC_DIR/levels */ void L_CrtLst() { int i; char d_nm[256]; char path[256+64]; DIR *dir = 0; struct dirent *e; struct stat s; ls_n = 0; // create directory string // sprintf(d_nm, "%s/levels", SRC_DIR); // find and open directory // if ((dir = opendir(d_nm)) == 0) { fprintf(stderr, "ERROR: can't find directory '%s'\n", d_nm); exit(1); } printf("searching for level sets...\n"); // well, let's check the count the entries // while ((e = readdir(dir)) != 0) { sprintf(path, "%s/%s", d_nm, e->d_name); stat(path, &s); if (S_ISREG(s.st_mode)) { (ls_n)++; printf("'%s'\n", e->d_name); } } if (ls_n == 0) { fprintf(stderr, "ERROR: '%s' seems to be empty\n", d_nm); closedir(dir); exit(1); } else printf("...total of %i\n", ls_n); // now we'll create the list // rewinddir(dir); ls_lst = malloc(sizeof(char*) * (ls_n)); for (i = 0; i < ls_n; i++) { do { e = readdir(dir); if (e == 0) continue; sprintf(path, "%s/%s", d_nm, e->d_name); stat(path, &s); } while (!S_ISREG(s.st_mode)); ls_lst[i] = malloc(strlen(e->d_name) + 1); strcpy(ls_lst[i], e->d_name); } // close dir // closedir(dir); } /* free list memory */ void L_DelLst() { int i; if (!ls_lst) return; for (i = 0; i < ls_n; i++) free(ls_lst[i]); free(ls_lst); } /* callback for dynlist l_sts to delete a level set */ void L_DelSt(void *p) { int i; LSet *st = (LSet*)p; if (st->ch) { for (i = 0; i < st->c_num; i++) free(st->ch[i].lvls); free(st->ch); } free(p); } /* add an empty and invalid entry */ void L_AddInvSt(char *nm) { LSet *st = malloc(sizeof(LSet)); st->c_num = 0; st->ch = 0; st->ok = 0; strcpy(st->nm, nm); DL_Add(&l_sts, st); } /* set marble, type and id of a map tile */ void L_StMpT(MapT *tl, int m, int t, int id) { tl->m = m; tl->t = t; tl->id = id; } /* parse and add a new lset from file f */ int L_LdSt(FILE *f) { int i, j, k, l; char val[64]; char str[512]; LSet *st = malloc(sizeof(LSet)); // info section // F_GetE(f, str, F_SUB | F_VAL); if (!F_CkE(str, F_SUB, "", 0)) { printf("ERROR: line %i: '' expected\n", f_ln); free(st); return 0; } // levels per chapter // F_GetE(f, str, F_VAL); if (!F_CkE(str, F_VAL, "levels", val)) { printf("ERROR: line %i: 'levels' expected\n", f_ln); free(st); return 0; } st->l_num = atoi(val); // chapters // F_GetE(f, str, F_VAL); if (!F_CkE(str, F_VAL, "chapters", val)) { printf("ERROR: line %i: 'chapters' expected\n", f_ln); free(st); return 0; } st->c_num = atoi(val); // limit type // F_GetE(f, str, F_VAL); if (!F_CkE(str, F_VAL, "limit", val)) { printf("ERROR: line %i: 'limit' expected\n", f_ln); free(st); return 0; } if ( !strncmp( "time", val, 4 ) ) st->limit_type = TIME; else st->limit_type = MOVES; // info section // F_GetE(f, str, F_SUB | F_VAL); if (!F_CkE(str, F_SUB, "", 0)) { printf("ERROR: line %i: '' expected\n", f_ln); free(st); return 0; } // get memory st->ch = malloc( sizeof(Chptr) * st->c_num ); for (i = 0; i < st->c_num; i++) st->ch[i].lvls = malloc( sizeof(Lvl) * st->l_num ); // chapters for (i = 0; i < st->c_num; i++) { // chapter start // F_GetE(f, str, F_SUB | F_VAL); if (!F_CkE(str, F_SUB, "", 0)) { printf("ERROR: line %i: '' expected\n", f_ln); goto failure; } // name // F_GetE(f, str, F_VAL); if (!F_CkE(str, F_VAL, "name", st->ch[i].nm)) { printf("ERROR: line %i: 'name' expected\n", f_ln); goto failure; } // author // F_GetE(f, str, F_VAL); if (!F_CkE(str, F_VAL, "author", st->ch[i].authr)) { printf("ERROR: line %i: 'author' expected\n", f_ln); goto failure; } // gset // F_GetE(f, str, F_VAL); if (!F_CkE(str, F_VAL, "gfx_set", st->ch[i].g_st)) { printf("ERROR: line %i: 'gfx_set' expected\n", f_ln); goto failure; } // open for play ? // F_GetE(f, str, F_VAL); if (!F_CkE(str, F_VAL, "open", val)) { printf("ERROR: line %i: 'open' expected\n", f_ln); goto failure; } st->ch[i].opn = atoi(val); // levels // for (j = 0; j < st->l_num; j++) { // level start // F_GetE(f, str, F_SUB | F_VAL); if (!F_CkE(str, F_SUB, "", 0)) { printf("ERROR: line %i: '' expected\n", f_ln); goto failure; } // time // F_GetE(f, str, F_VAL); if (!F_CkE(str, F_VAL, "limit", val)) { printf("ERROR: line %i: 'limit' expected\n", f_ln); goto failure; } st->ch[i].lvls[j].tm = atoi(val); // map width // F_GetE(f, str, F_VAL); if (!F_CkE(str, F_VAL, "map_w", val)) { printf("ERROR: line %i: 'map_w' expected\n", f_ln); goto failure; } if ((st->ch[i].lvls[j].m_w = atoi(val)) > L_MAX_W || atoi(val) < L_MIN_W) { printf("ERROR: line %i: 'map_w' out of range (%i-%i): %i\n", f_ln, L_MIN_W, L_MAX_W, atoi(val)); goto failure; } // map height // F_GetE(f, str, F_VAL); if (!F_CkE(str, F_VAL, "map_h", val)) { printf("ERROR: line %i: 'map_h' expected\n", f_ln); goto failure; } if ((st->ch[i].lvls[j].m_h = atoi(val)) > L_MAX_H || atoi(val) < L_MIN_H) { printf("ERROR: line %i: 'map_w' out of range (%i-%i): %i\n", f_ln, L_MIN_H, L_MAX_H, atoi(val)); goto failure; } // figure width // F_GetE(f, str, F_VAL); if (!F_CkE(str, F_VAL, "fig_w", val)) { printf("ERROR: line %i: 'fig_w' expected\n", f_ln); goto failure; } st->ch[i].lvls[j].f_w = atoi(val); if ((st->ch[i].lvls[j].f_w = atoi(val)) > F_MAX_W || atoi(val) < F_MIN_W) { printf("ERROR: line %i: 'fig_w' out of range (%i-%i): %i\n", f_ln, F_MIN_W, F_MAX_W, atoi(val)); goto failure; } // figure height // F_GetE(f, str, F_VAL); if (!F_CkE(str, F_VAL, "fig_h", val)) { printf("ERROR: line %i: 'fig_h' expected\n", f_ln); goto failure; } if ((st->ch[i].lvls[j].f_h = atoi(val)) > F_MAX_H || atoi(val) < F_MIN_H) { printf("ERROR: line %i: 'fig_h' out of range (%i-%i): %i\n", f_ln, F_MIN_H, F_MAX_H, atoi(val)); goto failure; } // figure start // F_GetE(f, str, F_SUB | F_VAL); if (!F_CkE(str, F_SUB, "

", 0)) { printf("ERROR: line %i: '
' expected\n", f_ln); goto failure; } // figure // for (k = 0; k < st->ch[i].lvls[j].f_h; k++) { F_GetE(f, str, F_VAL); for (l = 0; l < st->ch[i].lvls[j].f_w; l++) { if (str[l] >= '0' && str[l] <= '9') st->ch[i].lvls[j].fgr[l][k] = str[l] - 48; else if (str[l] != 32) printf("WARNING: line %i: bad figure marble '%c'\n", f_ln, str[l]); else st->ch[i].lvls[j].fgr[l][k] = -1; } } // figure end // F_GetE(f, str, F_SUB | F_VAL); if (!F_CkE(str, F_SUB, "
", 0)) { printf("ERROR: line %i: '
' expected\n", f_ln); goto failure; } // map start // F_GetE(f, str, F_SUB | F_VAL); if (!F_CkE(str, F_SUB, "", 0)) { printf("ERROR: line %i: '' expected\n", f_ln); goto failure; } // map for (k = 0; k < st->ch[i].lvls[j].m_h; k++) { memset(str, 0, 256); F_GetE(f, str, F_VAL); for (l = 0; l < st->ch[i].lvls[j].m_w; l++) { if (str[l] >= '0' && str[l] <= '9') L_StMpT(&st->ch[i].lvls[j].map[l][k], str[l] - 48, M_FLOOR, 0); else switch (str[l]) { case 'a': case 'b': case 'c': L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_WALL, str[l] - 97); break; case ' ': L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_FLOOR, 0); break; case 'u': L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_OW_U, 0); break; case 'd': L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_OW_D, 0); break; case 'r': L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_OW_R, 0); break; case 'l': L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_OW_L, 0); break; case 'U': L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_OW_U_C, 0); break; case 'D': L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_OW_D_C, 0); break; case 'R': L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_OW_R_C, 0); break; case 'L': L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_OW_L_C, 0); break; case 'w': L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_TLP_0, 0); break; case 'x': L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_TLP_1, 0); break; case 'y': L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_TLP_2, 0); break; case 'z': L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_TLP_3, 0); break; case 'A': case 'B': case 'C': L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_CRUMBLE, str[l] - 65); break; default: L_StMpT(&st->ch[i].lvls[j].map[l][k], -1, M_EMPTY, 0); break; } } } // map end // F_GetE(f, str, F_SUB | F_VAL); if (!F_CkE(str, F_SUB, "", 0)) { printf("ERROR: line %i: '' expected\n", f_ln); goto failure; } // level end // F_GetE(f, str, F_SUB | F_VAL); if (!F_CkE(str, F_SUB, "", 0)) { printf("ERROR: line %i: '' expected\n", f_ln); goto failure; } } // chapter end // F_GetE(f, str, F_SUB); if (!F_CkE(str, F_SUB, "", 0)) { printf("ERROR: line %i: '' expected\n", f_ln); goto failure; } } // return 1 in any case cuz 0 assumes that an empty set must be added printf("ok\n"); DL_Add(&l_sts, st); st->ok = 1; return 1; failure: DL_Add(&l_sts, st); // L_DelSt(st); st->ok = 0; return 1; } /* initialize level l */ void L_Ini(int c, int l) { char *nm; DL_E *e; int gst_ok = 0; int px, py, i, j, k; Lvl *lp; char str[64]; int off; char *str_num[] = {"1.", "2.", "3.", "4.", "5.", "6.", "7.", "8.", "9.", "10."}; float mv_mod; // show credit when new chapter if ( gm.o_ch == -1 || gm.o_ch != c ) Cr_Ini(); // set level & chapter index gm.o_ch = c; gm.c_ch = c; gm.c_l_id = l; gm.l_done = 0; // set open flag gm.c_s_inf->c_opn[gm.c_ch] = 1; // copy current level if (gm.c_lvl) free(gm.c_lvl); gm.c_lvl = malloc(sizeof(Lvl)); memcpy(gm.c_lvl, &gm.c_l_st->ch[gm.c_ch].lvls[gm.c_l_id], sizeof(Lvl)); // load gfx set nm = gm.c_l_st->ch[gm.c_ch].g_st; e = gm.g_sts.hd.n; while (e != &gm.g_sts.tl) { if (!strncmp(nm, ((GSet*)e->d)->nm, strlen(nm)) && ((GSet*)e->d)->ok) { gm.c_g_st = (GSet*)e->d; gst_ok = 1; break; } e = e->n; } if (!gst_ok) { printf("WARNING: unknown or unuseable gfx set '%s';\nsearching for a good one...\n", nm); // find first useable set e = gm.g_sts.hd.n; while (e != &gm.g_sts.tl) { if (((GSet*)e->d)->ok) { gm.c_g_st = (GSet*)e->d; printf("'%s' used instead\n", gm.c_g_st->nm); gst_ok = 1; break; } e = e->n; } if (!gst_ok) { printf("ERROR: no good gfx set found...\n"); exit(1); } } // set bkgd picture if (gm.c_g_st->s_bkgd) { for (j = 0; j < gm.scr_w - gm.brd_w; j += gm.c_g_st->s_bkgd->w) for (k = 0; k < gm.scr_h; k += gm.c_g_st->s_bkgd->h) { D_DST(gm.s_bkgd, j, k, gm.c_g_st->s_bkgd->w, gm.c_g_st->s_bkgd->h); D_SRC(gm.c_g_st->s_bkgd, 0, 0); SS_Blt(); } } else { D_DST(gm.s_bkgd, 0, 0, gm.scr_w - gm.brd_w, gm.scr_h); SS_Fill(0x0); } // add board D_DST(gm.s_bkgd, gm.s_bkgd->w - gm.s_brd->w, 0, gm.s_brd->w, gm.s_brd->h); D_SRC(gm.s_brd, 0, 0); SS_Blt(); // add static level gfx lp = &gm.c_l_st->ch[gm.c_ch].lvls[gm.c_l_id]; gm.l_x = (gm.scr_w - gm.brd_w - lp->m_w * gm.t_w) / 2; gm.l_y = (gm.scr_h - lp->m_h * gm.t_h) / 2; for (i = 0; i < lp->m_w; i++) for (j = 0; j < lp->m_h; j++) L_DrwMpTl(i, j); // add marbles for (i = 0; i < lp->m_w; i++) for (j = 0; j < lp->m_h; j++) if (lp->map[i][j].m != - 1) { D_DST(gm.s_bkgd, gm.l_x + i * gm.t_w, gm.l_y + j * gm.t_h, gm.t_w, gm.t_h); D_SRC(gm.s_mrb, 0, lp->map[i][j].m * gm.t_h); SS_Blt(); } // add figure px = gm.b_x + gm.f_x + (gm.f_fw - lp->f_w * gm.f_h) / 2; py = gm.f_y + (gm.f_fh - lp->f_h * gm.f_h)/ 2; for (i = 0; i < lp->f_w; i++) for (j = 0; j < lp->f_h; j++) if (lp->fgr[i][j] != -1) { D_DST(gm.s_bkgd, px + i * gm.f_w, py + j * gm.f_h, gm.f_w, gm.f_h); D_SRC(gm.s_fig, 0, lp->fgr[i][j] * gm.f_h); SS_Blt(); } // add player info off = gm.f_sml->h + 2; gm.f_sml->algn = TA_X_L | TA_Y_T; SF_Wrt(gm.f_sml, gm.s_bkgd, gm.i_x + gm.b_x, gm.i_y, "Player:", 0); gm.f_sml->algn = TA_X_R | TA_Y_T; SF_Wrt(gm.f_sml, gm.s_bkgd, gm.scr_w - gm.i_x, gm.i_y, gm.c_prf->nm, 0); gm.f_sml->algn = TA_X_L | TA_Y_T; SF_Wrt(gm.f_sml, gm.s_bkgd, gm.i_x + gm.b_x, gm.i_y + off, "Score:", 0); gm.f_sml->algn = TA_X_R | TA_Y_T; sprintf(str, "%i", gm.c_prf->scr); SF_Wrt(gm.f_sml, gm.s_bkgd, gm.scr_w - gm.i_x, gm.i_y + off, str, 0); gm.f_sml->algn = TA_X_L | TA_Y_T; SF_Wrt(gm.f_sml, gm.s_bkgd, gm.i_x + gm.b_x, gm.i_y + off*2 + 5, "HighScore:", 0); gm.f_sml->algn = TA_X_R | TA_Y_T; sprintf(str, "%i", gm.hi_scr); SF_Wrt(gm.f_sml, gm.s_bkgd, gm.scr_w - gm.i_x, gm.i_y + off*2 + 5, str, 0); // add name of levelset above set info gm.f_sml->algn = TA_X_C | TA_Y_T; SF_Wrt(gm.f_sml, gm.s_bkgd, gm.b_x + gm.brd_w / 2, gm.s_y + 5, gm.c_l_st->nm, 0); // compute position of first chapter gm.c_x = 50; // changed gm.c_y = gm.s_y + (gm.s_h - gm.c_l_st->c_num * L_SIZE) / 2; // add chapter numbers gm.f_sml->algn = TA_X_L | TA_Y_T; for (i = 0; i < gm.c_l_st->c_num; i++) { SF_Wrt(gm.f_sml, gm.s_bkgd, gm.b_x + gm.c_x - 30, gm.c_y + i * L_SIZE, str_num[i], 0); } // draw chapter lights for (j = 0; j < gm.c_l_st->c_num; j++) for (i = 0; i < gm.c_l_st->l_num; i++) { D_DST(gm.s_bkgd, gm.b_x + gm.c_x + i * L_SIZE, gm.c_y + j * L_SIZE, L_SIZE, L_SIZE); if (!gm.c_s_inf->c_opn[j]) { D_SRC(gm.s_lghts, L_RED * L_SIZE, 0); } else if ( gm.c_s_inf->cmp[j * gm.c_l_st->l_num + i] ) { D_SRC(gm.s_lghts, L_GREEN * L_SIZE, 0); } else { D_SRC(gm.s_lghts, L_ORANGE * L_SIZE, 0); } SS_Blt(); } // current level is white D_DST(gm.s_bkgd, gm.b_x + gm.c_x + l * L_SIZE, gm.c_y + c * L_SIZE, L_SIZE, L_SIZE); D_SRC(gm.s_lghts, L_WHITE * L_SIZE, 0); SS_Blt(); // initiate animations MA_Ini(); // undim D_FDST(sdl.scr); D_FSRC(gm.s_bkgd); SS_Blt(); if (cfg.dim) SDL_UNDIM(); else Sdl_FUpd(); // reset timer T_Rst(); // reset marble and frame gm.m_mv = 0; gm.m_sel = 0; gm.mf_a.p = 0; gm.msf_a.p = 0; gm.m_act = M_EMPTY; gm.m_mx = gm.m_my = -1; if ( gm.c_l_st->limit_type == TIME ) { /* set time from seconds to milliseconds if time used */ gm.c_lvl->tm *= 1000; gm.c_lvl->tm+=1000; } else { /* gm.c_lvl->tm containts the move limit. this is modified according to the difficulty levels */ switch ( cfg.diff ) { case DIFF_EASY: mv_mod = (int)ceil((float)gm.c_lvl->tm * 0.2 * ( 5 - gm.c_ch ) ); gm.c_lvl->tm += mv_mod; if ( gm.c_lvl->tm % 2 ) gm.c_lvl->tm++; break; case DIFF_NORMAL: mv_mod = (int)ceil((float)gm.c_lvl->tm * 0.1 * ( 5 - gm.c_ch ) ); gm.c_lvl->tm += mv_mod; if ( gm.c_lvl->tm % 2 ) gm.c_lvl->tm++; break; case DIFF_HARD: mv_mod = (int)ceil((float)gm.c_lvl->tm * 0.05 * ( 5 - gm.c_ch ) ); gm.c_lvl->tm += mv_mod; if ( gm.c_lvl->tm % 2 ) gm.c_lvl->tm++; break; case DIFF_BRAINSTORM: break; } } // init blink time // gm.blink_time = 0; // cursor state gm.c_stat = C_NONE; SDL_SetCursor(gm.c_n); // reset shrapnells DL_Clr(&gm.shr); } /* draw a map tile to gm.s_bkgd with x,y position in the map using current map */ void L_DrwMpTl(int i, int j) { switch (gm.c_lvl->map[i][j].t) { case M_WALL: // add wall shadow on right side ? // if ( i + 1 >= gm.c_lvl->m_w || gm.c_lvl->map[i + 1][j].t == M_EMPTY ) { D_DST(gm.s_bkgd, gm.l_x + (i + 1) * gm.t_w, gm.l_y + j * gm.t_h, 1, gm.t_h + 1); SS_Fill(0x0); } // add wall shadow on bottom ? // if ( j + 1 >= gm.c_lvl->m_h || gm.c_lvl->map[i][j + 1].t == M_EMPTY ) { D_DST(gm.s_bkgd, gm.l_x + i * gm.t_w, gm.l_y + (j + 1) * gm.t_h, gm.t_w + 1, 1); SS_Fill(0x0); } // add wall shadow on left side ? // if ( (i == 0) || ((i - 1 >= gm.c_lvl->m_w) || gm.c_lvl->map[i - 1][j].t == M_EMPTY )) { D_DST(gm.s_bkgd, gm.l_x + i * gm.t_w - 1, gm.l_y + j * gm.t_h, 1, gm.t_h + 1); SS_Fill(0x0); } // add wall shadow on top ? // if ( (j == 0) || ((j - 1 >= gm.c_lvl->m_h) || gm.c_lvl->map[i][j - 1].t == M_EMPTY )) { D_DST(gm.s_bkgd, gm.l_x + i * gm.t_w, gm.l_y + j * gm.t_h - 1, gm.t_w + 1, 1); SS_Fill(0x0); } D_DST(gm.s_bkgd, gm.l_x + i * gm.t_w, gm.l_y + j * gm.t_h, gm.t_w, gm.t_h); D_SRC(gm.c_g_st->s_wl, gm.c_lvl->map[i][j].id * gm.t_w, 0); SS_Blt(); break; case M_CRUMBLE: D_DST(gm.s_bkgd, gm.l_x + i * gm.t_w, gm.l_y + j * gm.t_h, gm.t_w, gm.t_h); D_SRC(gm.c_g_st->s_flr, 0, 0); SS_Blt(); D_DST(gm.s_bkgd, gm.l_x + i * gm.t_w, gm.l_y + j * gm.t_h, gm.t_w, gm.t_h); D_SRC(gm.c_g_st->s_crmbl, gm.c_lvl->map[i][j].id * gm.t_w, 0); SS_Blt(); gm.f_sml->algn = TA_X_R | TA_Y_B; switch (gm.c_lvl->map[i][j].id) { case 0: SF_Wrt(gm.f_sml, gm.s_bkgd, gm.l_x + (i + 1) * gm.t_w - 1, gm.l_y + (j + 1) * gm.t_h - 1, "1", 0); break; case 1: SF_Wrt(gm.f_sml, gm.s_bkgd, gm.l_x + (i + 1) * gm.t_w - 1, gm.l_y + (j + 1) * gm.t_h - 1, "2", 0); break; case 2: SF_Wrt(gm.f_sml, gm.s_bkgd, gm.l_x + (i + 1) * gm.t_w - 1, gm.l_y + (j + 1) * gm.t_h - 1, "3", 0); break; } break; case M_EMPTY: break; default: D_DST(gm.s_bkgd, gm.l_x + i * gm.t_w, gm.l_y + j * gm.t_h, gm.t_w, gm.t_h); D_SRC(gm.c_g_st->s_flr, 0, 0); SS_Blt(); break; } // static animations ? // if (!cfg.ani) { D_DST(gm.s_bkgd, gm.l_x + i * gm.t_w, gm.l_y + j * gm.t_h, gm.t_w, gm.t_h); switch (gm.c_lvl->map[i][j].t) { case M_OW_U: case M_OW_U_C: D_SRC(gm.c_g_st->s_u_arw, 0, 0); SS_Blt(); break; case M_OW_D: case M_OW_D_C: D_SRC(gm.c_g_st->s_d_arw, 0, 0); SS_Blt(); break; case M_OW_L: case M_OW_L_C: D_SRC(gm.c_g_st->s_l_arw, 0, 0); SS_Blt(); break; case M_OW_R: case M_OW_R_C: D_SRC(gm.c_g_st->s_r_arw, 0, 0); SS_Blt(); break; } D_DST(gm.s_bkgd, gm.l_x + i * gm.t_w, gm.l_y + j * gm.t_h, gm.t_w, gm.t_h); switch (gm.c_lvl->map[i][j].t) { case M_OW_U_C: case M_OW_D_C: D_SRC(gm.c_g_st->s_lr_bar, 0, 0); SS_Blt(); break; case M_OW_L_C: case M_OW_R_C: D_SRC(gm.c_g_st->s_ud_bar, 0, 0); SS_Blt(); break; } D_DST(gm.s_bkgd, gm.l_x + i * gm.t_w, gm.l_y + j * gm.t_h, gm.t_w, gm.t_h); switch (gm.c_lvl->map[i][j].t) { case M_TLP_0: D_SRC(gm.c_g_st->s_tlp_0, 0, 0); SS_ABlt(gm.tlp_a); break; case M_TLP_1: D_SRC(gm.c_g_st->s_tlp_1, 0, 0); SS_ABlt(gm.tlp_a); break; case M_TLP_2: D_SRC(gm.c_g_st->s_tlp_2, 0, 0); SS_ABlt(gm.tlp_a); break; case M_TLP_3: D_SRC(gm.c_g_st->s_tlp_3, 0, 0); SS_ABlt(gm.tlp_a); break; } } } /* proceed to next valid level */ int L_FndNxt() { int i, j; // proceed to next level gm.c_l_id++; if (gm.c_l_id >= gm.c_l_st->l_num) { gm.c_l_id = 0; gm.c_ch++; // check if this chapter can be entered or if this was the last chapter if not take first unsolved level found if (gm.c_ch >= gm.c_l_st->c_num || !gm.c_l_st->ch[gm.c_ch].opn) { for (i = 0; i < gm.c_ch; i++) for (j = 0; j < gm.c_l_st->l_num; j++) if (!gm.c_s_inf->cmp[i * gm.c_l_st->l_num + j]) { // not all levels completed jump back to first unsolved level gm.c_ch = i; gm.c_l_id = j; return 1; } if (gm.c_ch >= gm.c_l_st->c_num) return 0; else return 1; } } else { // check if all levels of this chapter has been solved for (i = 0; i <= gm.c_ch; i++) for (j = 0; j < gm.c_l_st->l_num; j++) if (!gm.c_s_inf->cmp[i * gm.c_l_st->l_num + j]) { return 1; } // yes! open next chapter if ( gm.c_ch < gm.c_l_st->c_num - 1 ) gm.c_s_inf->c_opn[gm.c_ch + 1] = 1; } return 1; } lmarbles-1.0.8/src/levels.h0000644000175000017500000000544207426022332012501 00000000000000/*************************************************************************** levels.h - description ------------------- begin : Mon Aug 14 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef LEVELS_H #define LEVELS_H #include #define MAX_LVLS 10 #define MAX_CHPTRS 10 #define L_MAX_W 13 #define L_MIN_W 4 #define L_MAX_H 14 #define L_MIN_H 4 #define F_MAX_W 10 #define F_MIN_W 2 #define F_MAX_H 10 #define F_MIN_H 1 // level bonuses // #define LB_COMPLETED 1000 #define LB_PER_MOVE 50 // limit type // #define TIME 0 #define MOVES 1 // tile types // enum { M_EMPTY = 0, // background // M_FLOOR, // simple floor // M_OW_U_C, // oneway directed to north (up) closed to the left and right side // M_OW_D_C, // analog // M_OW_L_C, // analog // M_OW_R_C, // analog // M_OW_U, // oneway to north not closed at the sides // M_OW_D, // analog // M_OW_L, // analog // M_OW_R, // analog // M_WALL, // impassible wall // M_TLP_0, // teleporter // M_TLP_1, // analog // M_TLP_2, // analog // M_TLP_3, // analog // M_CRUMBLE, // crumbling wall // M_NUM }; typedef struct { int m; // marble // int t; // type // int id; } MapT; typedef struct { int tm; // time // int m_w, m_h; // map size // int f_w, f_h; // figure size // int fgr[F_MAX_W][F_MAX_H]; // figure // MapT map[L_MAX_W][L_MAX_H]; // map // } Lvl; typedef struct { char nm[64]; char authr[32]; char g_st[32]; int bkgd; int opn; // levels from this chapter can be played Lvl *lvls; } Chptr; typedef struct { char nm[64]; int c_num; int l_num; Chptr *ch; int ok; int limit_type; /* which type of limit? */ } LSet; void L_CrtLst(); void L_DelLst(); void L_DelSt(void *p); void L_AddInvSt(char *nm); int L_LdSt(FILE *f); void L_Ini(int c, int l); void L_DrwMpTl(int x, int y); int L_FndNxt(); #endif lmarbles-1.0.8/src/Makefile.am0000644000175000017500000001126310061601046013062 00000000000000DEFS = @DEFS@ @arch_flag@ @inst_flag@ @prf_flag@ @sound_flag@ @ascii_flag@ marblesres.o: win32.ico @echo "1 VERSIONINFO" > $(PACKAGE).rc @echo "FILEVERSION `echo $(VERSION) | $(AWK) '{ gsub(/\./,","); print }'`,0" >> $(PACKAGE).rc @echo "PRODUCTVERSION `echo $(VERSION) | $(AWK) '{ gsub(/\./,","); print }'`,0" >> $(PACKAGE).rc @echo "FILEFLAGSMASK 0" >> $(PACKAGE).rc @echo "FILEOS 0x40000" >> $(PACKAGE).rc @echo "FILETYPE 1" >> $(PACKAGE).rc @echo "{" >> $(PACKAGE).rc @echo " BLOCK \"StringFileInfo\"" >> $(PACKAGE).rc @echo " {" >> $(PACKAGE).rc @echo " BLOCK \"040904E4\"" >> $(PACKAGE).rc @echo " {" >> $(PACKAGE).rc @echo " VALUE \"CompanyName\", \"LGames - Michael Speck\"" >> $(PACKAGE).rc @echo " VALUE \"FileDescription\", \"@appname@\"" >> $(PACKAGE).rc @echo " VALUE \"FileVersion\", \"$(VERSION)\"" >> $(PACKAGE).rc @echo " VALUE \"InternalName\", \"$(PACKAGE)\"" >> $(PACKAGE).rc @echo " VALUE \"LegalCopyright\", \"GNU Public License\"" >> $(PACKAGE).rc @echo " VALUE \"OriginalFilename\", \"$(PACKAGE)$(EXEEXT)\"" >> $(PACKAGE).rc @echo " VALUE \"ProductName\", \"@appname@\"" >> $(PACKAGE).rc @echo " VALUE \"ProductVersion\", \"$(VERSION)\"" >> $(PACKAGE).rc @echo " }" >> $(PACKAGE).rc @echo " }" >> $(PACKAGE).rc @echo "}" >> $(PACKAGE).rc @echo "0 ICON win32.ico" >> $(PACKAGE).rc @windres -o $@ -i $(PACKAGE).rc bin_PROGRAMS = lmarbles lmarbles_SOURCES = audio.c cfg.c dynlist.c file.c game.c levels.c main.c menu.c \ profile.c sdl.c timer.c audio.h cfg.h dynlist.h file.h game.h levels.h \ menu.h profile.h sdl.h timer.h win32.ico lmarbles.6 lmarbles_DEPENDENCIES = @win32_deps@ lmarbles_LDADD = @win32_deps@ @mixer_flag@ man_MANS = lmarbles.6 DATA_FILES = \ gfx/board.bmp gfx/f_red.bmp gfx/f_small.bmp gfx/f_white.bmp \ gfx/f_yellow.bmp gfx/figure.bmp gfx/lights.bmp gfx/logo.bmp \ gfx/m_frame.bmp gfx/m_sframe.bmp gfx/marbles.bmp gfx/tiny.sdlfnt \ gfx/title.bmp gfx/win_icon.bmp \ \ sounds/alarm.wav sounds/arrow.wav sounds/click.wav sounds/explode.wav \ sounds/select.wav sounds/stop.wav sounds/teleport.wav sounds/score.wav \ \ levels/Original \ \ gfx/stone/arrow_d.bmp gfx/stone/arrow_l.bmp gfx/stone/arrow_r.bmp \ gfx/stone/arrow_u.bmp gfx/stone/background.bmp gfx/stone/barrier_lr.bmp \ gfx/stone/barrier_ud.bmp gfx/stone/floor.bmp gfx/stone/teleport0.bmp \ gfx/stone/teleport1.bmp gfx/stone/teleport2.bmp \ gfx/stone/teleport3.bmp gfx/stone/wall.bmp \ gfx/stone/wall_crumble.bmp \ \ gfx/metal/arrow_d.bmp gfx/metal/arrow_l.bmp gfx/metal/arrow_r.bmp \ gfx/metal/arrow_u.bmp gfx/metal/background.bmp gfx/metal/barrier_lr.bmp \ gfx/metal/barrier_ud.bmp gfx/metal/floor.bmp gfx/metal/teleport0.bmp \ gfx/metal/teleport1.bmp gfx/metal/teleport2.bmp \ gfx/metal/teleport3.bmp gfx/metal/wall.bmp \ gfx/metal/wall_crumble.bmp \ \ gfx/wood/arrow_d.bmp gfx/wood/arrow_l.bmp gfx/wood/arrow_r.bmp \ gfx/wood/arrow_u.bmp gfx/wood/background.bmp gfx/wood/barrier_lr.bmp \ gfx/wood/barrier_ud.bmp gfx/wood/floor.bmp gfx/wood/teleport0.bmp \ gfx/wood/teleport1.bmp gfx/wood/teleport2.bmp \ gfx/wood/teleport3.bmp gfx/wood/wall.bmp \ gfx/wood/wall_crumble.bmp DOC_FILES = manual/manual.html manual/arrow.jpg manual/arrow2.jpg \ manual/crumble.jpg manual/teleport.jpg manual/marbles.jpg EXTRA_DIST= empty.prfs $(DATA_FILES) $(DOC_FILES) install-data-local: #directories $(mkinstalldirs) $(DESTDIR)$(inst_dir) $(mkinstalldirs) $(DESTDIR)$(inst_dir)/gfx $(mkinstalldirs) $(DESTDIR)$(inst_dir)/gfx/stone $(mkinstalldirs) $(DESTDIR)$(inst_dir)/gfx/metal $(mkinstalldirs) $(DESTDIR)$(inst_dir)/gfx/wood $(mkinstalldirs) $(DESTDIR)$(inst_dir)/sounds $(mkinstalldirs) $(DESTDIR)$(inst_dir)/levels #data files for file in $(DATA_FILES); do\ $(INSTALL_DATA) $$file $(DESTDIR)$(inst_dir)/$$file;\ done #profiles $(mkinstalldirs) $(DESTDIR)$(prf_dir) if ! test -f $(DESTDIR)$(prf_dir)/lmarbles.prfs; then \ $(INSTALL_DATA) -m 666 empty.prfs $(DESTDIR)$(prf_dir)/lmarbles.prfs; \ fi; uninstall-local: rm -rf $(DESTDIR)$(inst_dir) rm -f $(DESTDIR)$(prf_dir)/lmarbles.prfs win32rootdir=`pwd -W | awk '{ gsub("/","\\\\"); print}'` win32-install-script: @$(STRIP) $(PACKAGE)$(EXEEXT) @echo "Source: \"$(win32rootdir)\\$(PACKAGE)$(EXEEXT)\"; DestDir: \"{app}\"; CopyMode: alwaysoverwrite" >> @win32_inst_script@ @for file in $(DATA_FILES) $(DOC_FILES); do \ win32src=$(win32rootdir)\\`echo $$file | awk '{ gsub("/","\\\\"); print }'`; \ win32dest=`dirname $$file | awk '{ gsub("/","\\\\"); print }'`; \ echo "Source: \"$$win32src\"; DestDir: \"{app}\\$$win32dest\"; CopyMode: alwaysoverwrite" >> @win32_inst_script@; \ done @list='$(SUBDIRS)'; for subdir in $$list; do \ (cd $$subdir \ && $(MAKE) $(AM_MAKEFLAGS) win32-install-script); \ done lmarbles-1.0.8/src/Makefile.in0000644000175000017500000005007711271377334013117 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = lmarbles$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man6dir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_lmarbles_OBJECTS = audio.$(OBJEXT) cfg.$(OBJEXT) dynlist.$(OBJEXT) \ file.$(OBJEXT) game.$(OBJEXT) levels.$(OBJEXT) main.$(OBJEXT) \ menu.$(OBJEXT) profile.$(OBJEXT) sdl.$(OBJEXT) timer.$(OBJEXT) lmarbles_OBJECTS = $(am_lmarbles_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(lmarbles_SOURCES) DIST_SOURCES = $(lmarbles_SOURCES) man6dir = $(mandir)/man6 NROFF = nroff MANS = $(man_MANS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ @arch_flag@ @inst_flag@ @prf_flag@ @sound_flag@ @ascii_flag@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ appname = @appname@ arch_flag = @arch_flag@ ascii_flag = @ascii_flag@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ prf_dir = @prf_dir@ prf_flag = @prf_flag@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ win32_deps = @win32_deps@ win32_inst_script = @win32_inst_script@ lmarbles_SOURCES = audio.c cfg.c dynlist.c file.c game.c levels.c main.c menu.c \ profile.c sdl.c timer.c audio.h cfg.h dynlist.h file.h game.h levels.h \ menu.h profile.h sdl.h timer.h win32.ico lmarbles.6 lmarbles_DEPENDENCIES = @win32_deps@ lmarbles_LDADD = @win32_deps@ @mixer_flag@ man_MANS = lmarbles.6 DATA_FILES = \ gfx/board.bmp gfx/f_red.bmp gfx/f_small.bmp gfx/f_white.bmp \ gfx/f_yellow.bmp gfx/figure.bmp gfx/lights.bmp gfx/logo.bmp \ gfx/m_frame.bmp gfx/m_sframe.bmp gfx/marbles.bmp gfx/tiny.sdlfnt \ gfx/title.bmp gfx/win_icon.bmp \ \ sounds/alarm.wav sounds/arrow.wav sounds/click.wav sounds/explode.wav \ sounds/select.wav sounds/stop.wav sounds/teleport.wav sounds/score.wav \ \ levels/Original \ \ gfx/stone/arrow_d.bmp gfx/stone/arrow_l.bmp gfx/stone/arrow_r.bmp \ gfx/stone/arrow_u.bmp gfx/stone/background.bmp gfx/stone/barrier_lr.bmp \ gfx/stone/barrier_ud.bmp gfx/stone/floor.bmp gfx/stone/teleport0.bmp \ gfx/stone/teleport1.bmp gfx/stone/teleport2.bmp \ gfx/stone/teleport3.bmp gfx/stone/wall.bmp \ gfx/stone/wall_crumble.bmp \ \ gfx/metal/arrow_d.bmp gfx/metal/arrow_l.bmp gfx/metal/arrow_r.bmp \ gfx/metal/arrow_u.bmp gfx/metal/background.bmp gfx/metal/barrier_lr.bmp \ gfx/metal/barrier_ud.bmp gfx/metal/floor.bmp gfx/metal/teleport0.bmp \ gfx/metal/teleport1.bmp gfx/metal/teleport2.bmp \ gfx/metal/teleport3.bmp gfx/metal/wall.bmp \ gfx/metal/wall_crumble.bmp \ \ gfx/wood/arrow_d.bmp gfx/wood/arrow_l.bmp gfx/wood/arrow_r.bmp \ gfx/wood/arrow_u.bmp gfx/wood/background.bmp gfx/wood/barrier_lr.bmp \ gfx/wood/barrier_ud.bmp gfx/wood/floor.bmp gfx/wood/teleport0.bmp \ gfx/wood/teleport1.bmp gfx/wood/teleport2.bmp \ gfx/wood/teleport3.bmp gfx/wood/wall.bmp \ gfx/wood/wall_crumble.bmp DOC_FILES = manual/manual.html manual/arrow.jpg manual/arrow2.jpg \ manual/crumble.jpg manual/teleport.jpg manual/marbles.jpg EXTRA_DIST = empty.prfs $(DATA_FILES) $(DOC_FILES) win32rootdir = `pwd -W | awk '{ gsub("/","\\\\"); print}'` all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) lmarbles$(EXEEXT): $(lmarbles_OBJECTS) $(lmarbles_DEPENDENCIES) @rm -f lmarbles$(EXEEXT) $(LINK) $(lmarbles_LDFLAGS) $(lmarbles_OBJECTS) $(lmarbles_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audio.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dynlist.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/game.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/levels.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/profile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sdl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timer.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` uninstall-info-am: install-man6: $(man6_MANS) $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man6dir)" || $(mkdir_p) "$(DESTDIR)$(man6dir)" @list='$(man6_MANS) $(dist_man6_MANS) $(nodist_man6_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.6*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 6*) ;; \ *) ext='6' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man6dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man6dir)/$$inst"; \ done uninstall-man6: @$(NORMAL_UNINSTALL) @list='$(man6_MANS) $(dist_man6_MANS) $(nodist_man6_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.6*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 6*) ;; \ *) ext='6' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " rm -f '$(DESTDIR)$(man6dir)/$$inst'"; \ rm -f "$(DESTDIR)$(man6dir)/$$inst"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(mkdir_p) $(distdir)/gfx $(distdir)/gfx/metal $(distdir)/gfx/stone $(distdir)/gfx/wood $(distdir)/levels $(distdir)/manual $(distdir)/sounds @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(MANS) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man6dir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-data-local install-man install-exec-am: install-binPROGRAMS install-info: install-info-am install-man: install-man6 installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-local \ uninstall-man uninstall-man: uninstall-man6 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-data-local install-exec \ install-exec-am install-info install-info-am install-man \ install-man6 install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-local uninstall-man uninstall-man6 marblesres.o: win32.ico @echo "1 VERSIONINFO" > $(PACKAGE).rc @echo "FILEVERSION `echo $(VERSION) | $(AWK) '{ gsub(/\./,","); print }'`,0" >> $(PACKAGE).rc @echo "PRODUCTVERSION `echo $(VERSION) | $(AWK) '{ gsub(/\./,","); print }'`,0" >> $(PACKAGE).rc @echo "FILEFLAGSMASK 0" >> $(PACKAGE).rc @echo "FILEOS 0x40000" >> $(PACKAGE).rc @echo "FILETYPE 1" >> $(PACKAGE).rc @echo "{" >> $(PACKAGE).rc @echo " BLOCK \"StringFileInfo\"" >> $(PACKAGE).rc @echo " {" >> $(PACKAGE).rc @echo " BLOCK \"040904E4\"" >> $(PACKAGE).rc @echo " {" >> $(PACKAGE).rc @echo " VALUE \"CompanyName\", \"LGames - Michael Speck\"" >> $(PACKAGE).rc @echo " VALUE \"FileDescription\", \"@appname@\"" >> $(PACKAGE).rc @echo " VALUE \"FileVersion\", \"$(VERSION)\"" >> $(PACKAGE).rc @echo " VALUE \"InternalName\", \"$(PACKAGE)\"" >> $(PACKAGE).rc @echo " VALUE \"LegalCopyright\", \"GNU Public License\"" >> $(PACKAGE).rc @echo " VALUE \"OriginalFilename\", \"$(PACKAGE)$(EXEEXT)\"" >> $(PACKAGE).rc @echo " VALUE \"ProductName\", \"@appname@\"" >> $(PACKAGE).rc @echo " VALUE \"ProductVersion\", \"$(VERSION)\"" >> $(PACKAGE).rc @echo " }" >> $(PACKAGE).rc @echo " }" >> $(PACKAGE).rc @echo "}" >> $(PACKAGE).rc @echo "0 ICON win32.ico" >> $(PACKAGE).rc @windres -o $@ -i $(PACKAGE).rc install-data-local: #directories $(mkinstalldirs) $(DESTDIR)$(inst_dir) $(mkinstalldirs) $(DESTDIR)$(inst_dir)/gfx $(mkinstalldirs) $(DESTDIR)$(inst_dir)/gfx/stone $(mkinstalldirs) $(DESTDIR)$(inst_dir)/gfx/metal $(mkinstalldirs) $(DESTDIR)$(inst_dir)/gfx/wood $(mkinstalldirs) $(DESTDIR)$(inst_dir)/sounds $(mkinstalldirs) $(DESTDIR)$(inst_dir)/levels #data files for file in $(DATA_FILES); do\ $(INSTALL_DATA) $$file $(DESTDIR)$(inst_dir)/$$file;\ done #profiles $(mkinstalldirs) $(DESTDIR)$(prf_dir) if ! test -f $(DESTDIR)$(prf_dir)/lmarbles.prfs; then \ $(INSTALL_DATA) -m 666 empty.prfs $(DESTDIR)$(prf_dir)/lmarbles.prfs; \ fi; uninstall-local: rm -rf $(DESTDIR)$(inst_dir) rm -f $(DESTDIR)$(prf_dir)/lmarbles.prfs win32-install-script: @$(STRIP) $(PACKAGE)$(EXEEXT) @echo "Source: \"$(win32rootdir)\\$(PACKAGE)$(EXEEXT)\"; DestDir: \"{app}\"; CopyMode: alwaysoverwrite" >> @win32_inst_script@ @for file in $(DATA_FILES) $(DOC_FILES); do \ win32src=$(win32rootdir)\\`echo $$file | awk '{ gsub("/","\\\\"); print }'`; \ win32dest=`dirname $$file | awk '{ gsub("/","\\\\"); print }'`; \ echo "Source: \"$$win32src\"; DestDir: \"{app}\\$$win32dest\"; CopyMode: alwaysoverwrite" >> @win32_inst_script@; \ done @list='$(SUBDIRS)'; for subdir in $$list; do \ (cd $$subdir \ && $(MAKE) $(AM_MAKEFLAGS) win32-install-script); \ done # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lmarbles-1.0.8/src/levels/0000777000175000017500000000000011271400537012407 500000000000000lmarbles-1.0.8/src/levels/Original0000644000175000017500000002045710305526453014025 00000000000000 levels = 8; (per chapter) chapters = 4; limit = moves; (either moves or limit) name = Tutorial; author = Michael Speck; gfx_set = stone; open = 1; limit = 11; map_w = 8; map_h = 8; fig_w = 2; fig_h = 2;
56; 65;
cccccccc; c 5 b c; cbb c; c 6 b6c; cccc b c; ...c b c; ...c 5 c; ...ccccc;
limit = 18; map_w = 10; map_h = 9; fig_w = 4; fig_h = 2;
1 ; 1898;
aaaaaaaaaa; a 1 8 a; a bb bb a; a b b a; a 8 a; a aaaa a; a a..a a; a9 a..a 1a; aaaa..aaaa;
limit = 22; map_w = 11; map_h = 9; fig_w = 3; fig_h = 3;
4 ; 6 6; 4 ;
.aaaaaaaaa.; .a 4a.; .a cc caa; .a 4c a; aac cc c a; a c a; a6 cc a; aaaaaaaa6 a; .......aaaa;
limit = 22; map_w = 10; map_h = 10; fig_w = 3; fig_h = 1;
313;
bbbbbbbbbb; b 1b; b aab; ba a aa3b; b a a b; b 3a b; b a b; b a aa b; b a a b; bbbbbbbbbb;
limit = 25; map_w = 9; map_h = 9; fig_w = 3; fig_h = 3;
2 ; 787; 2 ;
aaaaaaaaa; a2c c7 a; a cc a; acc c ca; a a; a8c c cca; acc c2a; a7 a; aaaaaaaaa;
limit = 21; map_w = 10; map_h = 12; fig_w = 3; fig_h = 3;
7 9; 8 ; 9 7;
bbbbb; b 8 b; b b b; b b b; b b b; b bbbbbb; bbb b; b9 bbbb7b; bbb b; b bbb; b7b 9b; bbbbbbbbbb;
limit = 31; (seconds or moves) map_w = 10; map_h = 10; fig_w = 4; fig_h = 3;
5 ; 2343; 5 ;
aaaaaaaaaa; a5 2a; abb b4b a; a3b b b a; a a; a b b b a; a b5 b a; a bbb b a; a 3 a; aaaaaaaaaa;
limit = 63; map_w = 13; map_h = 12; fig_w = 5; fig_h = 3;
55 5; 5000 ; 5 5;
...ccccccccc.; ...c a 5c.; ...c0a c.; ...ca aac.; cccc aa 5c.; c0a 5 ccc.; c c..; c a5a aaaaccc; c a 5 c; c5 aa 0aadc; cc l c; .cccccccccccc;
name = A few problems; author = Michael Speck; gfx_set = wood; open = 0; limit = 16; map_w = 8; map_h = 7; fig_w = 3; fig_h = 3;
1 1; 232; 1 1;
bbbbbbbb; b1 c 2b; b R cb; bc2 1 3b; b L cb; b1 c 1b; bbbbbbbb;
limit = 35; map_w = 12; map_h = 9; fig_w = 5; fig_h = 3;
55 ; 50015; 5 ;
bbbbbbbbbbbb; b 5 c 5b; b y ccc b; b5 0l y b; ccc cc c b; .c 5 c b; .c 0cc c1l b; .c 5 cbbbb; .ccccccc....;
limit = 19; map_w = 8; map_h = 8; fig_w = 3; fig_h = 3;
1; 2 ; 1 ;
cccccccc; c 1 c; c ccc cc; c 2 c; c ccc cc; c 1 c; c c c; cccccccc;
limit = 22; map_w = 11; map_h = 10; fig_w = 3; fig_h = 4;
9 ; 8 ; 8 ; 393;
....bbb....; ....b3b....; ....b b....; bbbbb bbbbb; b b; b8bbbbbbb8b; b b.....b b; b9bbbbbbb9b; b 3 b; bbbbbbbbbbb;
limit = 54; map_w = 12; map_h = 7; fig_w = 4; fig_h = 3;
8 ; 7997; 1 ;
bbbbbbbbbbbb; b7 c 9b; b c c1 c cb; b c b; b c c cb; b9 7c 8b; bbbbbbbbbbbb;
limit = 30; (!) map_w = 13; map_h = 13; fig_w = 6; fig_h = 3;
99 ; 77 77; 88 ;
....ccccccccc; ....c 9 c; ....c bbbbb7c; ....c c; ccc.c b b c; c7ccc 7b b c; c b b c; c 8c; c bbbb8cccccc; c b..b c.....; c7bbbb c.....; c 9 c.....; cccccccc.....;
limit = 64; map_w = 13; map_h = 13; fig_w = 5; fig_h = 5;
5 5 ; 5 1 5; 1 1 ; 5 1 5; 5 5 ;
bbbbbb.......; b5 b.......; b aa5b.......; b 1a bbbbbbbb; b a a 1b; b 5 a5 ab; b aa a b; b 1a a b; b 5a5 a5b; bbbbbbbb 1a b; .......b aa b; .......b 5 b; .......bbbbbb;
limit = 16; map_w = 11; map_h = 9; fig_w = 5; fig_h = 3;
4 ; 8 8 ; 1 1 1;
bbbbbbbbbbb; b8b b b b8b; b AAA b; bbA 1 1 Abb; b b; bb 4 bb; b AA AA b; b b b1b b b; bbbbbbbbbbb;
name = Sometimes Tricky; author = Michael Speck; gfx_set = metal; open = 0; limit = 24; map_w = 13; map_h = 12; fig_w = 4; fig_h = 3;
5 5; 77 ; 5 5;
..aaaaaaaaaaa; ..a7 5a; aaa b bb b a; a b a; a b a; a bb5b bb a; a b b a; a b 5b aa; aa bb bb a.; .a b a.; .aaa5 7a.; ...aaaaaaaaa.;
limit = 42; map_w = 12; map_h = 8; fig_w = 4; fig_h = 4;
2 ; 21 ; 89; 9 ;
aaaaa.......; a a aaaaaaa.; a 9a x a.; a 98aa aaa; aaa aa12 a; .a x a2 a; .aaaaaaa a a; .......aaaaa;
limit = 98; map_w = 11; map_h = 11; fig_w = 5; fig_h = 4;
555 ; 10701; 232 ; 9 ;
cccccccccc.; c0 5c2 cc; c c0 c; c ccucccc c; c 3c 9c c; c l l lc1c; c 5cu c c; c ccc c; c2 c cc 5c; cc 1c 7 cc; .ccccccccc.;
limit = 28; map_w = 11; map_h = 10; fig_w = 3; fig_h = 4;
1 ; 32 ; 23; 1 ;
bbbbbbbbbbb; bx 1c c 3b; b c c b; bccc c c b; b xc2 b; b 2cy b; b c c cccb; b c c b; b3 c c1 yb; bbbbbbbbbbb;
limit = 38; map_w = 9; map_h = 11; fig_w = 3; fig_h = 3;
7; 98 ; 7;
ccccccc..; cz 7 c..; cb bb ccc; c9 c; c b bbbuc; c b z c; c dc; c bbbbb c; c b 8c; c7 ccccc; ccccc....;
limit = 20; (!) map_w = 12; map_h = 9; fig_w = 3; fig_h = 2;
5 ; 4 4;
......aaaaaa; ......a A 4a; aaaaaaa a; a a a; ay wauwdaa; a 5a a.; aaaaaaadyuaa; .....a4 a; .....aaaaaaa;
limit = 42; map_w = 12; map_h = 9; fig_w = 4; fig_h = 3;
99 ; 7887; 9 ;
bbbbb..bbbb; b 9 bbbb xb; b a 9 d b; b wa a7 b; b a w a8b; b7l a8x b; bbb a bb; ..bbbb r9b.; .....bbbbb.;
limit = 22; map_w = 9; map_h = 7; fig_w = 4; fig_h = 2;
1289; 3 ;
...aaa...; .aaa3aaa.; aa a a aa; a9 2 1a; aa a a aa; .a a8a a.; .aaaaaaa.;
name = Hardcore; author = Michael Speck; gfx_set = metal; open = 0; limit = 44; map_w = 12; map_h = 12; fig_w = 5; fig_h = 3;
8 ; 97 79; 8 ;
.....aaaaaaa; .aaaaa a; .a 9aaa a; .a aaa a a; .a a u a a; aa a 8R 9 a; a 7 L8 a aa; a a d a a.; a a aaa a.; a aaa7 a.; a aaaaa.; aaaaaaa.....;
limit = 37; map_w = 11; map_h = 11; fig_w = 3; fig_h = 5;
7 ; 7 ; 3 ; 9 9; 3 ;
aaaaaaaaaa.; a7 a 9a.; a a aa; a aaa ya 3a; a az aaa a; a3 xa a; aa zax a; .a aaa 7aa; .a ya aaa.; .a9 a...; .aaaaaaa...;
limit = 14; map_w = 8; map_h = 8; fig_w = 3; fig_h = 2;
131; 2 ;
cccccccc; c1 w 1c; c c; cx y xc; cccc 3c; ...cy wc; ...c2 c; ...ccccc;
limit = 44; map_w = 13; map_h = 9; fig_w = 3; fig_h = 3;
232; 7 7; 232;
..aaaaaaaaa..; ..a2aa7aa2a..; cca a y a acc; c2 y z 2c; ccc z ccc; ..cc3 a 3cc..; ...ccU7Dcc...; ....c c....; ....ccccc....;
limit = 35; map_w = 10; map_h = 12; fig_w = 3; fig_h = 4;
6 ; 656; 6 ; 4 ;
......aaaa; ......a 4a; ....aaa a; ....a6 uwa; ..aaa l a; ..a6 ryaaa; aaawl 6a..; a r aaa..; ayd 6a....; a aaa....; a5 a......; aaaa......;
limit = 47; map_w = 9; map_h = 9; fig_w = 3; fig_h = 4;
4 4; 5 ; 6 ; 5 ;
ccccccccc; c4 d r 5c; c a a a c; cr r d lc; c a6a a c; cu d l dc; c a a a c; c5 l u 4c; ccccccccc;
limit = 43; map_w = 11; map_h = 11; fig_w = 5; fig_h = 3;
1 1 ; 59395; 191 ;
....bbb....; .bbbbybbbb.; .b 5 5 b.; .b1aa3aa1b.; bb ax za bb; bz wb; bb w y bb; .b1 a9a 1b.; .b 9 9 b.; .bbbbxbbbb.; ....bbb....;
limit = 23; map_w = 10; map_h = 9; fig_w = 3; fig_h = 3;
2 ; 1 1; 2 ;
..aaaaaaaa; ..ax A a; aaa aaa; a2a a1a; ar xw la; a1a a2a; aaa aaa; a A wa..; aaaaaaaa..;
lmarbles-1.0.8/src/main.c0000644000175000017500000003241210063260401012113 00000000000000/*************************************************************************** main.c - description ------------------- begin : Sam Aug 5 12:36:32 MEST 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #ifdef _WIN32 #include #endif #include #include #include #include #include "menu.h" #include "cfg.h" #include "levels.h" #include "timer.h" #include "sdl.h" #include "audio.h" #include "profile.h" #include "game.h" // timer -- timer.c // extern struct timeb t_c, t_lc; // quit game quickly ? // int trm_gm = 0; // menu config -- cfg.c // extern Cfg cfg; // menu manager -- menu.c // extern MMng mm; // sdl struct // extern Sdl sdl; // levelset list and number of entries -- levels.c // extern char **ls_lst; extern int ls_n; // profiles // extern DLst prfs; // string list for the menu -- profile.c // extern char **prf_lst; extern int prf_n; // menu entry containing the profile list // MEnt *me_prf, *me_del, *me_clr; // menu actions MUST BE GREATER THAN 0 // #define MA_NONE 0 #define MA_QUT 1 #define MA_PLY 2 #define MA_HSC 3 /* ==================================================================== Clear the SDL event key (keydown events) ==================================================================== */ int all_filter( const SDL_Event *event ) { return 0; } void event_clear_sdl_queue() { SDL_Event event; SDL_SetEventFilter( all_filter ); while ( SDL_PollEvent( &event ) ); SDL_SetEventFilter( 0 ); } /* previously defined hiscore.h but this file no longer needed */ typedef struct { char nm[12]; int lvl; int lvs; int scr; int pct; } H_E; /* show hiscore and highlight rank r */ void H_Shw() { int i, j; SDL_Surface *buf = 0; SFnt *ft; Prf *p; int e_h = mm.ft_nml->h + 2; int off = 50; int a_y = 100; char str[12]; int e_num = prfs.cntr > 10 ? 10 : prfs.cntr; H_E hscr[e_num]; DL_E *e; // save screen // buf = SS_Crt(sdl.scr->w, sdl.scr->h, SDL_SWSURFACE); D_FDST(buf); D_FSRC(sdl.scr); SS_Blt(); // darken screen // if (cfg.dim) SDL_DIM(); // draw background // D_FDST(sdl.scr); D_FSRC(mm.ss_bkgd); SS_Blt(); // brighten screen // if (cfg.dim) SDL_UNDIM(); else Sdl_FUpd(); // create highscore list // memset(hscr, 0, sizeof(hscr)); e = prfs.hd.n; while (e != &prfs.tl) { p = (Prf*)e->d; for (i = 0; i < e_num; i++) if (p->scr >= hscr[i].scr) { for (j = e_num - 1; j > i; j--) hscr[j] = hscr[j - 1]; hscr[i].scr = p->scr; hscr[i].pct = p->pct; hscr[i].lvl = p->lvls; strcpy(hscr[i].nm, p->nm); break; } e = e->n; } // write hiscores // SF_Wrt(mm.ft_nml, sdl.scr, sdl.scr->w / 2, 50, "Best Profiles", 0); mm.ft_nml->algn = mm.ft_sel->algn = TA_X_L | TA_Y_T; for (i = 0; i < e_num; i++) { if (0) // changed later ft = mm.ft_sel; else ft = mm.ft_nml; ft->algn = TA_X_L | TA_Y_T; SF_Wrt(ft, sdl.scr, off, a_y + i * e_h, hscr[i].nm, 0); ft->algn = TA_X_C | TA_Y_T; sprintf(str, "%i", hscr[i].lvl); SF_Wrt(ft, sdl.scr, sdl.scr->w / 2, a_y + i * e_h, str, 0); sprintf(str, "%i", hscr[i].scr); // sprintf(str, "%i (%i.%i%%)", hscr[i].scr, hscr[i].pct / 10, hscr[i].pct % 10); ft->algn = TA_X_R | TA_Y_T; SF_Wrt(ft, sdl.scr, sdl.scr->w - off, a_y + i * e_h, str, 0); } mm.ft_nml->algn = mm.ft_sel->algn = TA_X_C | TA_Y_C; Sdl_FUpd(); // wait for a click // Sdl_WtFrClk(); //darken screen // if (cfg.dim) SDL_DIM(); // restore screen // D_FDST(sdl.scr); D_FSRC(buf); SS_Blt(); // brighten screen // if (cfg.dim) SDL_UNDIM(); else Sdl_FUpd(); // reset timer // T_Rst(); } // menu callbacks // /* activate / deactivate sound */ void CB_Snd() { #ifdef SOUND sound_enable(cfg.s_on); #endif } /* set sound volume */ void CB_StV() { #ifdef SOUND sound_volume(cfg.s_vol * 16); #endif } /* create a profile */ void CB_CrtP() { Prf_Crt(cfg.prf_nm); Prf_CrtLst(); // update menu entries // ME_CngSwX(me_prf, &cfg.prf, prf_lst, prf_n); ME_CngSwX(me_del, &cfg.prf, prf_lst, prf_n); ME_CngSwX(me_clr, &cfg.prf, prf_lst, prf_n); } /* clear a profile */ void CB_ClrP() { Prf *p = DL_Get(&prfs, cfg.prf); DL_Clr(&p->sts); p->lvls = 0; p->scr = 0; p->pct = 0; } /* delete a profile */ void CB_DelP() { if (prfs.cntr < 2) { printf("WARNING: last profile cannot be deleted\n"); return; } // delete from list // DL_Del(&prfs, cfg.prf); Prf_CrtLst(); // update menu entries // ME_CngSwX(me_prf, &cfg.prf, prf_lst, prf_n); ME_CngSwX(me_del, &cfg.prf, prf_lst, prf_n); ME_CngSwX(me_clr, &cfg.prf, prf_lst, prf_n); } void CB_SrtP() { // Prf_Srt(); } /* init menu add all entries check them */ void MM_CrtE() { SDL_Surface *ss_bk, *ss_lg; SFnt *ft_y, *ft_w, *ft_t; Menu *_main, *opts, *snd, *new, *edit, *del, *clr, *crt, *c_del, *c_clr, *c_crt, *gfx, *ctrl; MEnt *e; char *str_diff[] = {"Easy", "Normal", "Hard", "Brainstorm"}; // load and assign gfx // ss_bk = SS_Ld("gfx/title.bmp", SDL_SWSURFACE); ss_lg = SS_Ld("gfx/logo.bmp", SDL_SWSURFACE); ft_y = SF_LdFxd("gfx/f_yellow.bmp", 32, 96, 10); ft_w = SF_LdFxd("gfx/f_white.bmp", 32, 96, 10); MM_Ini(ss_bk->w / 2, ss_bk->h - 100, 50, ss_bk, ss_lg, ft_y, ft_w); // add copyright // ft_t = SF_Ld("gfx/tiny.sdlfnt"); ft_t->algn = TA_X_R | TA_Y_B; SF_Wrt(ft_t, ss_bk, ss_bk->w-3, ss_bk->h-1, "(C) 2000 Michael Speck", 0); ft_t->algn = TA_X_L | TA_Y_B; SF_Wrt(ft_t, ss_bk, 0, ss_bk->h-1, "http://lgames.sourceforge.net", 0); SF_Fr(ft_t); // create and add entrys // _main = M_Crt(); MM_Add(_main); opts = M_Crt(); MM_Add(opts); snd = M_Crt(); MM_Add(snd); new = M_Crt(); MM_Add(new); edit = M_Crt(); MM_Add(edit); del = M_Crt(); MM_Add(del); clr = M_Crt(); MM_Add(clr); crt = M_Crt(); MM_Add(crt); c_del = M_Crt(); MM_Add(c_del); c_clr = M_Crt(); MM_Add(c_clr); c_crt = M_Crt(); MM_Add(c_crt); gfx = M_Crt(); MM_Add(gfx); ctrl = M_Crt(); MM_Add(ctrl); // main // M_Add(_main, ME_CrtSub("New Game", new)); M_Add(_main, ME_CrtAct("Best Profiles", MA_HSC)); M_Add(_main, ME_CrtSub("Options", opts)); M_Add(_main, ME_CrtAct("Quit", MA_QUT)); // options // M_Add(opts, ME_CrtSub("Controls", ctrl)); M_Add(opts, ME_CrtSub("Graphics", gfx)); #ifdef SOUND M_Add(opts, ME_CrtSub("Audio", snd)); #else M_Add(opts, ME_CrtSep("Audio")); #endif M_Add(opts, ME_CrtSep("")); M_Add(opts, ME_CrtSub("Back", _main)); // sound // e = ME_CrtSw2("Sound: ", &cfg.s_on, "Off", "On"); e->cb = CB_Snd; M_Add(snd, e); e = ME_CrtRng("Volume: ", &cfg.s_vol, 1, 8, 1); e->cb = CB_StV; M_Add(snd, e); M_Add(snd, ME_CrtSep("")); M_Add(snd, ME_CrtSub("Back", opts)); // new game // M_Add(new, ME_CrtAct("Start", MA_PLY)); M_Add(new, ME_CrtSep("")); M_Add(new, ME_CrtSwX("Difficulty:", &cfg.diff, str_diff, 4)); if (cfg.ls >= ls_n) cfg.ls = 0; // maybe someone deleted some level sets // M_Add(new, ME_CrtSwX("Levelset:", &cfg.ls, ls_lst, ls_n)); me_prf = ME_CrtSwX("Profile:", &cfg.prf, prf_lst, prf_n); M_Add(new, me_prf); M_Add(new, ME_CrtSep("")); M_Add(new, ME_CrtSub("Edit Profiles", edit)); M_Add(new, ME_CrtSep("")); M_Add(new, ME_CrtSub("Back", _main)); // edit // M_Add(edit, ME_CrtSub("Create Profile", crt)); M_Add(edit, ME_CrtSub("Clear Profile", clr)); M_Add(edit, ME_CrtSub("Delete Profile", del)); M_Add(edit, ME_CrtSep("")); e = ME_CrtSub("Back", new); e->cb = CB_SrtP; M_Add(edit, e); // create // M_Add(crt, ME_CrtStr("Profile Name", cfg.prf_nm, 11)); M_Add(crt, ME_CrtSub("Create Profile", c_crt)); M_Add(crt, ME_CrtSep("")); M_Add(crt, ME_CrtSub("Back", edit)); // confirm create // e = ME_CrtSub("Yes", crt); e->cb = CB_CrtP; M_Add(c_crt, e); M_Add(c_crt, ME_CrtSub("No", crt)); // clear // me_clr = ME_CrtSwX("Profile:", &cfg.prf, prf_lst, prf_n); M_Add(clr, me_clr); M_Add(clr, ME_CrtSub("Clear Profile", c_clr)); M_Add(clr, ME_CrtSep("")); M_Add(clr, ME_CrtSub("Back", edit)); // confirm clear // e = ME_CrtSub("Yes", clr); e->cb = CB_ClrP; M_Add(c_clr, e); M_Add(c_clr, ME_CrtSub("No", clr)); // delete // me_del = ME_CrtSwX("Profile:", &cfg.prf, prf_lst, prf_n); M_Add(del, me_del); M_Add(del, ME_CrtSub("Delete Profile", c_del)); M_Add(del, ME_CrtSep("")); M_Add(del, ME_CrtSub("Back", edit)); // confirm clear // e = ME_CrtSub("Yes", del); e->cb = CB_DelP; M_Add(c_del, e); M_Add(c_del, ME_CrtSub("No", del)); // graphics // M_Add(gfx, ME_CrtSw2("Animations:", &cfg.ani, "Off", "On")); // M_Add(gfx, ME_CrtSw2("Transparency:", &cfg.trp, "Off", "On")); M_Add(gfx, ME_CrtSw2("Fullscreen:", &cfg.fscr, "Off", "On")); M_Add(gfx, ME_CrtSw2("Dim Effect:", &cfg.dim, "Off", "On")); M_Add(gfx, ME_CrtSep("")); M_Add(gfx, ME_CrtSub("Back", opts)); // controls M_Add(ctrl, ME_CrtKey("Up", &cfg.k_up)); M_Add(ctrl, ME_CrtKey("Down", &cfg.k_down)); M_Add(ctrl, ME_CrtKey("Left", &cfg.k_left)); M_Add(ctrl, ME_CrtKey("Right", &cfg.k_right)); M_Add(ctrl, ME_CrtKey("Undo", &cfg.k_undo)); M_Add(ctrl, ME_CrtSep("")); M_Add(ctrl, ME_CrtSub("Back", opts)); // default valid keys MM_DfVKys(); // adjust position of all entries in all menus // MM_AdjP(); // call all callbacks // MM_CB(); // check for errors MM_Ck(); } /* init sound, menu, profiles, game main loop for the menu */ int main(int argc, char *argv[]) { SDL_Event e; int go_on = 1; int ms; char aux[64]; #ifdef _WIN32 /* Get Windows to open files in binary mode instead of default text mode */ _fmode = _O_BINARY; #endif // just query version? // if ( argc > 1 && !strncmp( "--version", argv[1], 9 ) ) { printf( "%s\n", VERSION ); return 0; } // random init srand(time(NULL)); // sdl init // #ifdef SOUND Sdl_Ini(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER); #else Sdl_Ini(SDL_INIT_VIDEO | SDL_INIT_TIMER); #endif sprintf( aux, "LMarbles %s", VERSION ); SDL_WM_SetCaption(aux, 0); // show logo // Sdl_StVdMd(512, 384, 16, SDL_SWSURFACE); // show hardware capabilities // Sdl_HwCps(); // load config // C_StPth(); C_Ld(); // load profiles // Prf_Ini(); if (!Prf_Ld()) cfg.prf = 0; // create levelset list and reset config's levelset index if nescessary // L_CrtLst(); if (cfg.ls >= ls_n) cfg.ls = 0; #ifdef SOUND audio_open(); sound_enable( cfg.s_on ); sound_volume( cfg.s_vol * 16 ); #endif // game init // G_Ini(); // init and show menu// MM_CrtE(); MM_Shw(MM_RSZ); event_clear_sdl_queue(); //menu loop T_Rst(); // reset time // while (go_on && !trm_gm) { M_Hd(mm.c_mn); if (SDL_PollEvent(&e)) { if (e.type == SDL_QUIT) trm_gm = 1; if (e.type == SDL_KEYUP && e.key.keysym.sym == SDLK_ESCAPE) go_on = 0; switch (MM_Evt(&e)) { case MA_QUT: go_on = 0; break; case MA_PLY: if (G_Opn()) { G_Run(); G_Cls(); } break; case MA_HSC: M_Shw(mm.c_mn); Sdl_UpdR(); H_Shw(); // defined in main.c // break; } } ms = T_Gt(); M_CmA(mm.c_mn, ms); M_Shw(mm.c_mn); Sdl_UpdR(); SDL_Delay( 5 ); } // terminate menu // MM_Trm(); // terminate game // G_Trm(); // close soundserver // #ifdef SOUND audio_close(); #endif // save config // C_Sv(); // free levelset list // L_DelLst(); // save profiles // Prf_Sv(); Prf_Trm(); // free screen // Sdl_Qut(); printf("Bye, bye!\n"); return 0; } lmarbles-1.0.8/src/manual/0000777000175000017500000000000011271400537012372 500000000000000lmarbles-1.0.8/src/manual/manual.html0000644000175000017500000003240407570177201014462 00000000000000 LMarbles Manual Page

LMarbles

Copyright 2000 Michael Speck
Released under GPL


  1. Menu
  2. How To Play
  3. Controls
  4. Creating Your Own Levels

Menu

  • [New Game] (submenu)
    • [Start]
      Starts a game.
    • [Difficulty]
      • Brainstorm:You play against my solution made after some time passed. I had to play the levels for real so this is a fair move limit.
      • Easy: You play against my solution +100% (-20% per chapter).
      • Normal: You play against my solution +50%moves (-10%per chapter).
      • Hard:You play against my solution +25% moves (-5% per chapter).
      Hard gives you twice the score and Brainstorm five times the score of a Normal game. Easy cuts your score in half.
    • [Levelset]
      Set of levels you want to play (e.g. 'Original').
    • [Profile]
      Profile you want to play with (e.g. 'Michael'). Any progress and score will be written to this profile.
    • [Edit Profiles] (submenu)
      • [Create Profile] (submenu)
        Enter a profile name (eg your own name) and simply create it. Now choose this new profile at [New Game]/[Profile] and start the game.
      • [Clear Profile] (submenu)
        This will clear score and any level progress of the choosen profile.
      • [Delete Profile] (submenu)
        This will remove a profile. Of course, a new one using the same name can be recreated (which would be same like simply clear it).
  • [Best Profiles]
    A list of the ten best players with the following information: name (left side), number of levels finished (middle), score (right side), average time needed in percent (in brackets; 100%-not even one second needed(impossible); 0%-every single second has been used).
  • [Options] (submenu)
    • [Graphics] (submenu)
      • [Animations]
        Enables/Disables animations.
      • [Fullscreen]
        Switches between windowed and fullscreen mode.
      • [Dim Effect]
        Enables/Disables dim effect. ('Disabled' is recommended when using SDL older than version 1.1.4.)
    • [Audio] (submenu)
      • [Sound]
        Enables/Disables sound.
      • [Volume]
        Sets volume of sound.
  • [Quit]
    Quits the game!

ToC


How To Play

Marbles is very similiar to Atomix and was heavily inspired by it. Goal is to create a more or less complex figure out of single marbles within a time limit to reach the next level.
Sounds easy? Well, there is a problem: If a marble starts to move it will not stop until it hits a wall or marble.

There are also some obstacles:
arrow
If a marble moves on such an arrow it will change its direction to the direction the arrow points at. If a marble comes from the direction the arrow points at it will stop before the arrow.
arrow2
These yellow and black stripes mean this tile can neither be accessed from these sides nor from the side the arrow points at. So there is only one way to get past this obstacle.
teleport
If a marble encounters such a teleport it will teleport to the second one of the same color and keep on moving in the same direction.
crumble
Such a crumbling wall takes one, two or three hits before it vanishes completely. The number of hits left is displayed by a small digit in the lower right corner of the crumbling wall.

You play against a move limit and you'll gain the following score when you finished a level:
DifficultyLevel BonusBonus per remaining move
Easy50025
Normal100050
Hard2000100
Brainstorm5000250
You will not gain points twice for the same level!

If you run Marbles the very first time only one profile (named 'Michael') exists. You probably want to play with a profile named like you. How to create and use a new profile is described in Menu.
Levels are grouped in chapters and chapters are grouped in levelsets. Right now, Marbles comes with just one levelset called 'Original' containing three chapters with ten levels each. Of course, you can create your own levelsets.
You have unlimited tries to solve a level! The order in which you solve levels of one chapter does not matter! There are small lights in the right lower corner of the screen of one of the following colors: red(cannot be accessed), orange(can be accessed, not solved yet) and green (already solved, you will not gain any score for solving it again). Just click on a light and confirm to change the level. To enter a new chapter ALL previous levels have to be solved.

Although the interface is quite intuitive you should take a look at the controls.

ToC


Controls

Use your mouse to:
Select a marble: Left-click on it. (You can simply change selection by clicking on another marble)
Release a marble: Right-click anywhere.
Move a marble: When you selected a marble move the mouse pointer into the wanted direction. If movement is possible the mouse pointer will change into a big arrow pointing into the direction. Then simply left-click.
Change the level: As written in 'How To Play' these lights in the right lower corner represent the levels. Simply left-click on a green or orange one and confirm the change. (If you choose the current level (white frame) this will be the same as restarting this level.)
Confirm: When you quit, restart or change the level you will be asked to confirm first by pressing 'y' or 'n'. You can do this with left-click(yes) or right-click(no) as well.

Important keys:
[Escape]: Quits the game after confirmation.
[r]: Restarts level after confirmation.
[p]: Pauses game.
[Space]: If you think your last movement was wrong you can restore the old position by pressing Space as long as the marble did not hit a crumbling wall (can be redefined in options/controls).

You can use the cursor keys to move a marble (can also be redefined)!

If your difficulty is 'Training' press a movement key or left mouse button while a marble is moving to 'warp' it to its destination!

ToC


Creating Your Own Levels

As described in 'How To Play' levels are grouped in chapters and chapters are grouped in levelsets. A levelset is a file in Marbles' subdirectory 'levels' without any extension. When finished with the creation you must become root and copy it to the install directory usually /usr/local/share/games/marbles/levels (if you installed marbles). That's it. Of course, you must test and change a lot while developing so you should extract Marbles' source somewhere temporary, run configure with the option --disable-install which allows you to work in Marbles' temporary 'levels' directory where you can simply edit and test your levelset. (the 'levels' directory should already contain a file called 'Original').

Once again step by step:

  • temporarily extract the source somewhere (e.g. /tmp)
  • change to this source directory
  • run './configure --disable-install'; 'make' (do not type 'make install'!!!)
  • change to ./marbles/levels
  • create an empty file without any extension (e.g. 'Brainstorm')
  • edit this file properly (as described below)
  • test it by running Marbles (binary can be found in the parent directory of 'levels')
  • when everything works fine, become root and install it to Marbles' install directory (usually /usr/local/share/games/marbles/levels - of course, you must have installed Marbles before doing this)

When testing your levelsets you should use a separate profile (e.g. called 'Testing').
If you start creating a new levelset with, say, ten levels per chapter but you have made only one level so far Marbles will stop parsing the file and ask for confirmation if you try to start this levelset (press 'y' or left-click). All levels before the error can be played without problems but because Marbles stopped parsing further levels does not exist. Changing to such a non-existing level might result in an infinite loop. But when you are finished with creating your levelset no errors or warnings should occur! (If you run Marbles in an xterm errors and warnings will be displayed.)

If you have problems writing the file, take a look at 'Original'.

How to write the file:

Syntax:
<subsection>
starts a subsection (e.g. <level>)
</subsection>
ends a subsection (e.g. </level>)
(comment)
such a comment must not contain any '<' or '>' or ';'
normal entry;
(e.g. in subsection map of a level: ...a 1 aa...;)
variable = value;
(e.g. author = Michael Speck;)

Normal entries and initializations have to end with a semicolon! Subsections and comments must not end with a semicolon!

Each levelset starts with a subsection called 'info' containing information about the number of levels per chapter and the number of chapters.
<info>
levels = levels_per_chapter;
(maximum is 10)
chapters = chapter_number;
(maximum is 10)
</info>

It follows the definition of each chapter containing information about name, author, used graphics set, whether this chapter is open from the very beginning and definition of each level (number of levels as you defined in <info>). Usually only the first chapter is open for playing from the very beginning.
<chapter>
name = Name Of The Chapter;
author = Your Name;
gfx_set = GfxSet;
(either 'stone' or 'metal' or 'wood'; e.g. gfx_set = stone)
open = Open?;
(1 = open; 0 = all previous levels have to be completed first)

...levels

</chapter>

A level is defined as follows. It contains information about the time (in seconds), size of the map, size of the figure and two subsections with the figure and the map.
<level>
time = time_in_seconds;
(e.g. time = 90;)
map_w = map_width;
(ranges between 4 and 13)
map_h = map_height;
(ranges between 4 and 14)
fig_w = figure_width;
(ranges between 2 and 10)
fig_h = figure_height;
(ranges between 1 and 10)
<figure>
...
</figure>
<map>
...
</map>
</level>

A figure tile is either a marble ID from 0 to 9 or [Space] for no marble.
marbles

Example:
<figure>
 1 2 ;
23454;
 1 2 ;
</figure>

Valid map tiles are:
'a', 'b', 'c' - different walls
'A', 'B', 'C' - crumbling walls ('C' three, 'B' two, 'A' one hit)
[Space] - floor
'.' - background
'u','d','r','l' - arrows without barriers (up, down, right, left)
'U','D','R','L' - arrows with barriers (up, down, right, left)
'w','x','y','z' - teleports of different colors
'0'..'9' - marbles

Example:
<map>
....aaaa;
..aaa 2a;
.aa1  xa;
aa  u aa;
a 2  xa.;
aaaaaaa.;
</map>

So this is the structure of a levelset:
<info>
...
</info>

<chapter>
...

<level>
...
<figure>
...
</figure>
<map>
...
</map>
</level>

...(more levels)

</chapter>

...(more chapters)

Once again: Taking a look at 'Original' might help you a lot...

ToC



Contact

Last Update: December 9th 2000

lmarbles-1.0.8/src/manual/arrow2.jpg0000644000175000017500000000161407207042551014230 00000000000000JFIFHHCreated with The GIMPC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222 "0!12AQRa"Bbq3%!a"13qA ?ׅKsSRD..U$EzyI#  (m0|i ]qBMMI_Ehv#vBdE<֖opot{qAS}j\NBlBS%rU1 CBvSEimMG"f5Im.HGV  xc0~ْo.UQnJ4/=* PҺҩovƻu^W݂]KD5H<#ךk-vs/.x=˺ձMzc 8ֿj;)enS3Zrߪ$z=^U%NSHMs,qdOx^JԨzu3)_{/W=CV}qU9o9<>tn5 E8uHڦ 3gΡt7J 4msqrO0lmarbles-1.0.8/src/manual/marbles.jpg0000644000175000017500000000523007207475346014453 00000000000000JFIFHHCreated with The GIMPC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222 @"3!1AQa"2qB#R$!"1A2aQ ?c%fCchpQ7iKV6 $c?FՄ(H=@I)8HRh=Źhȝ3U#%h )7!n I U* m DYXW>Up@ڇTIׅ±"޵#"kA/,t(榣[$;[ KVA $I") E BBLOs8M)59 I<*}H IW6ŕH?e1A">ǭ#dt-H#crҽwSK_f] t$rS{}(- v-Ya*!?W}'+IL+{>!hK[P A)V,2Q>s#D~*Wqm(P"WE5WǮnń&R bJ`ѥaV@ں 9` >):h[|3#S)ZQI90Tg mWwn[Z1^K$( r/ S:Βu)1D`JT ֓;[ }L!'LZDLA#st-l h $Os„{ mC+'+{( Ċ]6%?Dda҆ ^!6"j*qDxGqn_(lލ L0;3ᰉn٦$ +n|uX"Lƅ>Բ]c7RBh5ŹhKc>P#餼 R1L{,Y.!ҙJvXNA۟4`ᴠǃȤMѸƋ=~̣~=ִ~)!I'+]e$lv*V!܉+I|`OO$!<Oц P9=JS0;_sp hʑ^ٕ#ROh ͱeDU(l~*qH)5v΢&6*0 @v=CLCVmʊ_SCe rzz -Ggk:A}"!JR iIJT#Ly,,SIRO"o]!&I- ~aޚmeeL,}5"fľ9-M;/Ym+wݨeJf:[s5߱ .j Ɣ/ȡ !$K7_/吁ӣSq7UtOnUǥXm+Z "n *i|OjtV'h$P|#ju%V_0G ќuEqq]ף!C*kRP7imR^y($}#MCxi^/AcQ̋nȱY_|fVeF3(V{WzGktuRB~yG7;m>&:LcP(4nv?lv\PGjjm;Ɲ4+\EmR>ܚuxHhۤ<֬*dX/*8YPe2Rǟޙ6M)ELcz+U*`۔??J|p;WW!Z7ail~0T@'lJA_;iLq'zM_Vlordk00P.$(G'qMkjiK*pLX1}iOaFalַ~ǻBƹ|RPB4ki덾u}փk;qUtOnWou~c+Nm%@v=DZLjCvѪZW7:mS+2@yGoԸ쵦;^:BaN6d7{u\ڻҥ}H68<8fzե"w>Jy!R;O*HĪꙑ`}*,uʠ @v=zhZoAVW說=+..49v2@z:)f n|+qz֢iUioHGc59ͩ)Jde%N۽ e2FC@E(*IYa H@JS.q?Q0iP*aFHSs PY} Nwqȧ~$U`9`HBR(C.}.2=Ӛۨ&cEUߥmn  kDZETh'SKOΜ|Sk2BylG֘\vZ*)W>Y1ZS(0i\&ColAw>1eNEh.ȋkqlmarbles-1.0.8/src/menu.c0000644000175000017500000003634607524345552012170 00000000000000/*************************************************************************** menu.c - description ------------------- begin : Sat Aug 5 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "menu.h" #include #include #include "cfg.h" extern Sdl sdl; MMng mm; extern Cfg cfg; // menu entry // /* free entry */ void ME_Fr(void *e) { DL_Clr(&((MEnt*)e)->sw); free(e); } /* all entries have these init steps in common */ void ME_Ini(MEnt *e, int t, char *n) { DL_Ini(&e->sw); e->sw.flgs = DL_NOCB | DL_AUTODEL; e->a = 255; strcpy(e->nm, n); e->t = t; e->dx = e->dy = e->dw = e->dh = 0; e->x = e->y = 0; e->cb = 0; } /* set range */ void ME_StRng(MEnt* e, int *p, int min, int max, int stp) { e->p = p; e->min = min; e->max = max; e->stp = stp; } /* create an empty entry */ MEnt* ME_Crt() { MEnt *e; e = malloc(sizeof(MEnt)); if (e == 0) { printf("ME_Crt: Ups... not enough memory to create menu entry...\n"); exit(1); } return e; } /* create separator */ MEnt* ME_CrtSep(char *s) { MEnt *e = ME_Crt(); ME_Ini(e, ME_SEP, s); return e; } /* create two switches group */ MEnt* ME_CrtSw2(char *n, int *p, char *cap1, char *cap2) { char *sw; MEnt *e = ME_Crt(); ME_Ini(e, ME_SWT, n); ME_StRng(e, p, 0, 1, 1); sw = malloc(32); strcpy(sw, cap1); DL_Add(&e->sw, sw); sw = malloc(32); strcpy(sw, cap2); DL_Add(&e->sw, sw); return e; } /* create multi switches group */ MEnt* ME_CrtSwX(char *n, int *p, char **caps, int num) { int i; char *sw; MEnt *e = ME_Crt(); ME_Ini(e, ME_SWT, n); ME_StRng(e, p, 0, num - 1, 1); for (i = 0; i < num; i++) { sw = malloc(32); strcpy(sw, caps[i]); DL_Add(&e->sw, sw); } return e; } /* create range */ MEnt* ME_CrtRng(char *n, int *p, int min, int max, int stp) { MEnt *e = ME_Crt(); ME_Ini(e, ME_RNG, n); ME_StRng(e, p, min, max, stp); return e; } /* create action */ MEnt* ME_CrtAct(char *n, int a_id) { MEnt *e = ME_Crt(); ME_Ini(e, ME_ACT, n); e->act = a_id; return e; } /* create an edit min is the current length max the max length and p the char pointer */ MEnt* ME_CrtStr(char *n, char *p, int m) { MEnt *e = ME_Crt(); ME_Ini(e, ME_STR, n); e->max = m; e->min = strlen(p); e->p = (int*)p; return e; } /* create a submenu */ MEnt* ME_CrtSub(char *n, void *m) { MEnt *e = ME_Crt(); ME_Ini(e, ME_SUB, n); e->smn = m; return e; } /* create a key */ MEnt* ME_CrtKey(char *n, int *p) { MEnt *e = ME_Crt(); ME_Ini(e, ME_KEY, n); e->p = p; return e; } /* update the string and compute size */ void ME_SUpd(MEnt* e) { char c; switch (e->t) { case ME_STR: sprintf(e->str, "%s: %s", e->nm, (char*)e->p); break; case ME_SWT: sprintf(e->str, "%s %s", e->nm, (char*)DL_Get(&e->sw, *e->p)); break; case ME_RNG: sprintf(e->str, "%s %i", e->nm, *e->p); break; case ME_KEY: c = *((char*)e->p); if (c > 32 && c < 127) sprintf(e->str, "%s: '%c'", e->nm, c); else if (*e->p == 0) sprintf(e->str, "%s: ???", e->nm); else switch (*e->p){ case SDLK_UP: sprintf(e->str, "%s: Up", e->nm); break; case SDLK_DOWN: sprintf(e->str, "%s: Down", e->nm); break; case SDLK_LEFT: sprintf(e->str, "%s: Left", e->nm); break; case SDLK_RIGHT: sprintf(e->str, "%s: Right", e->nm); break; case SDLK_SPACE: sprintf(e->str, "%s: Space", e->nm); break; default: sprintf(e->str, "%s: %i", e->nm, c); } break; default: strcpy(e->str, e->nm); break; } e->dw = SF_TxtW(mm.ft_nml, e->str); e->dh = mm.ft_nml->h; e->dx = e->x - (e->dw >> 1); e->dy = e->y - (e->dh >> 1); } /* edit string */ void ME_Edt(MEnt *e, int c, int u) { if (e->t != ME_STR) return; if (c == SDLK_BACKSPACE && e->min > 0) { //clear last char ((char*)e->p)[--e->min] = 0; } else if (c >= 32 && c < 128 && e->min < e->max) { //letter ((char*)e->p)[e->min++] = u; } } /* change multi switches group */ void ME_CngSwX(MEnt *e, int *p, char **caps, int num) { int i; char *sw; DL_Clr(&e->sw); ME_StRng(e, p, 0, num - 1, 1); for (i = 0; i < num; i++) { sw = malloc(32); strcpy(sw, caps[i]); DL_Add(&e->sw, sw); } *e->p = 0; } // menu // /* create an empty menu */ Menu* M_Crt() { Menu *m; m = malloc(sizeof(Menu)); if (m == 0) { printf("M_Crt(): Ups... not enough memory to create a menu\n"); exit(1); } m->c_e = 0; DL_Ini(&m->ent); m->ent.flgs = DL_AUTODEL; m->ent.cb = ME_Fr; return m; } /* clear a menu */ void M_Fr(void *m) { DL_Clr(&((Menu*)m)->ent); free(m); } /* add an entry and select first entry as current */ void M_Add(Menu *m, MEnt *e) { DL_Add(&m->ent, e); if (m->c_e == 0 && e->t != ME_SEP) { m->c_e = e; m->c_e->a = 0; } } /* hide a menu */ void M_Hd(Menu *m) { DL_E *e = m->ent.hd.n; MEnt *me; while (e != &m->ent.tl) { me = (MEnt*)e->d; D_DST(sdl.scr, me->dx, me->dy, me->dw, me->dh); D_SRC(mm.ss_bkgd, me->dx, me->dy); SS_Blt(); Sdl_AddR(me->dx, me->dy, me->dw, me->dh); e = e->n; } } /* show a menu by drawing each entry */ void M_Shw(Menu *m) { DL_E *e = m->ent.hd.n; MEnt *me; M_SUpd(m); while (e != &m->ent.tl) { me = (MEnt*)e->d; if (me == m->c_e) { if (me->a > 0) { SF_Wrt(mm.ft_nml, sdl.scr, me->x, me->y, me->str, 0); SF_Wrt(mm.ft_sel, sdl.scr, me->x, me->y, me->str, (int)me->a); } else SF_Wrt(mm.ft_sel, sdl.scr, me->x, me->y, me->str, 0); } else { SF_Wrt(mm.ft_nml, sdl.scr, me->x, me->y, me->str, 0); if (me->a < 255) SF_Wrt(mm.ft_sel, sdl.scr, me->x, me->y, me->str, (int)me->a); } Sdl_AddR(me->dx, me->dy, me->dw, me->dh); e = e->n; } } /* do an ME_SUpd() for all entries */ void M_SUpd(Menu *m) { DL_E *e = m->ent.hd.n; while (e != &m->ent.tl) { ME_SUpd((MEnt*)e->d); e = e->n; } } /* compute new alpha value for all entries */ void M_CmA(Menu *m, int ms) { DL_E *e = m->ent.hd.n; MEnt *me; while (e != &m->ent.tl) { me = (MEnt*)e->d; if (me->a < 255 && me != m->c_e) { me->a += mm.a_c * ms; if (me->a > 255) me->a = 255; } e = e->n; } } // menu manager // /* initialize graphics, menu and positions of menu and logo */ void MM_Ini(int x, int y, int ly, SDL_Surface *ss_bk, SDL_Surface *ss_lg, SFnt *fn, SFnt *fs) { mm.ss_bkgd = ss_bk; mm.ss_logo = ss_lg; mm.ft_nml = fn; mm.ft_sel = fs; mm.ft_nml->algn = mm.ft_sel->algn = TA_X_C | TA_Y_C; mm.x = x; mm.y = y; mm.ly = ly; mm.lx = (ss_bk->w - ss_lg->w) / 2; DL_Ini(&mm.mn); mm.mn.flgs = DL_AUTODEL; mm.mn.cb = M_Fr; mm.c_mn = 0; mm.a_c = 0.28; #ifdef SOUND mm.s_clk = sound_chunk_load("click.wav"); #endif } /* show the menu sets a new video mode if wanted */ void MM_Shw(int rsz) { if (rsz) Sdl_StVdMd(mm.ss_bkgd->w, mm.ss_bkgd->h, 16, SDL_SWSURFACE); D_FDST(sdl.scr); D_FSRC(mm.ss_bkgd); SS_Blt(); D_DST(sdl.scr, mm.lx, mm.ly, mm.ss_logo->w, mm.ss_logo->h); D_SRC(mm.ss_logo, 0, 0); SS_Blt(); if (cfg.dim) SDL_UNDIM(); else Sdl_FUpd(); if (mm.c_mn == 0 || mm.c_mn->ent.cntr == 0) { fprintf(stderr, "MM_Shw(): Ups... no current or empty menu defined!\n"); exit(1); } mm.c_mn->c_e->a = 0; M_Shw(mm.c_mn); Sdl_UpdR(); } /* free memory used */ void MM_Trm() { if (mm.ss_bkgd) SDL_FreeSurface(mm.ss_bkgd); if (mm.ss_logo) SDL_FreeSurface(mm.ss_logo); if (mm.ft_nml) SF_Fr(mm.ft_nml); if (mm.ft_sel) SF_Fr(mm.ft_sel); DL_Clr(&mm.mn); #ifdef SOUND if (mm.s_clk) sound_chunk_free(&mm.s_clk); #endif } /* add a menu */ void MM_Add(Menu *m) { DL_Add(&mm.mn, m); if (mm.mn.cntr == 1) mm.c_mn = m; } /* adjust position of all entries in all menus relative to mm.x | mm.y as centre */ void MM_AdjP() { DL_E *m = mm.mn.hd.n; DL_E *e; MEnt *me; int i; while (m != &mm.mn.tl) { e = ((Menu*)m->d)->ent.hd.n; i = 0; while (e != &((Menu*)m->d)->ent.tl) { me = (MEnt*)e->d; me->x = mm.x; me->y = (mm.y - (((Menu*)m->d)->ent.cntr * mm.ft_nml->h) / 2) + i * mm.ft_nml->h + mm.ft_nml->h / 2; i++; e = e->n; } m = m->n; } } /* allow default keys: alphanumerical and arrows */ void MM_DfVKys() { int i; memset(mm.vkys, 0, sizeof(mm.vkys)); for (i = 32; i < 128; i++) mm.vkys[i] = 1; mm.vkys[SDLK_UP] = 1; mm.vkys[SDLK_DOWN] = 1; mm.vkys[SDLK_RIGHT] = 1; mm.vkys[SDLK_LEFT] = 1; mm.vkys[SDLK_p] = 0; mm.vkys[SDLK_f] = 0; mm.vkys[SDLK_r] = 0; } /* checks if all menus contain at least one entry and if every menu has an current entry selected stuff like submenu in an entry is not checked */ void MM_Ck() { #ifdef DEBUG DL_E *e = mm.mn.hd.n; Menu *m; printf("checking menu... "); // no menu at all? // if (mm.mn.cntr == 0) { printf("NOT ONE MENU FOUND!\n"); exit(1); } if (mm.c_mn == 0) { printf("NO CURRENT MENU SELECTED!\n"); exit(1); } while (e != &mm.mn.tl) { m = (Menu*)e->d; if (m->ent.cntr == 0) { printf("YOU'VE ADDED AN EMPTY MENU!\n"); exit(1); } if (m->c_e == 0) { printf("NO CURRENT ENTRY SELECTED!\n"); exit(1); } e = e->n; } printf("OK\n"); #endif } /* process incoming events */ int MM_Evt(SDL_Event *e) { DL_E *m, *le; MEnt *me; int ex = 0; // waiting for a key ? // if (mm.c_mn->c_e->t == ME_KEY && *mm.c_mn->c_e->p == 0) { if (e->type == SDL_KEYUP && mm.vkys[e->key.keysym.sym]) { // check other key entries for their value // m = mm.mn.hd.n; while (!ex && m != &mm.mn.tl) { le = ((Menu*)m->d)->ent.hd.n; while (!ex && le != &((Menu*)m->d)->ent.tl) { me = (MEnt*)le->d; if (me->t == ME_KEY && *me->p == e->key.keysym.sym) ex = 1; le = le->n; } m = m->n; } // set key if (!ex) { *mm.c_mn->c_e->p = e->key.keysym.sym; if (mm.c_mn->c_e->cb != 0) mm.c_mn->c_e->cb(); } } return MM_NONE; } // normal event switch (e->type) { case SDL_MOUSEMOTION: return MM_SelE(e->motion.x, e->motion.y); case SDL_MOUSEBUTTONUP: if (e->button.button == 1) return MM_UseE(MM_INC); else return MM_UseE(MM_DEC); case SDL_KEYDOWN: switch (e->key.keysym.sym) { case SDLK_RETURN: return MM_UseE(MM_NONE); case SDLK_UP: return MM_PrvE(); case SDLK_DOWN: return MM_NxtE(); case SDLK_LEFT: return MM_UseE(MM_DEC); case SDLK_RIGHT: return MM_UseE(MM_INC); default: if (mm.c_mn->c_e->t == ME_STR) ME_Edt(mm.c_mn->c_e, e->key.keysym.sym, e->key.keysym.unicode); return MM_NONE; } return MM_NONE; } return MM_NONE; } /* use an entry submenu: set submenu action: return action range: change pos due to c (inc or dec) str: add or delete char */ int MM_UseE(int c) { MEnt *me = mm.c_mn->c_e; switch (me->t) { case ME_SUB: #ifdef SOUND sound_play(mm.s_clk); #endif if (mm.c_mn->c_e->cb != 0) mm.c_mn->c_e->cb(); mm.c_mn = (Menu*)me->smn; break; case ME_ACT: #ifdef SOUND sound_play(mm.s_clk); #endif if (mm.c_mn->c_e->cb != 0) mm.c_mn->c_e->cb(); return me->act; case ME_SWT: case ME_RNG: #ifdef SOUND sound_play(mm.s_clk); #endif if (c == MM_DEC) { *me->p -= me->stp; if (*me->p < me->min) *me->p = me->max - ((me->max - me->min) % me->stp); } else if (c == MM_INC) { *me->p += me->stp; if (*me->p > me->max) *me->p = me->min; } if (mm.c_mn->c_e->cb != 0) mm.c_mn->c_e->cb(); break; case ME_KEY: *me->p = 0; if (mm.c_mn->c_e->cb != 0) mm.c_mn->c_e->cb(); break; } return MM_NONE; } /* select prev entry */ int MM_PrvE() { DL_E *e = DL_GetE(&mm.c_mn->ent, mm.c_mn->c_e)->p; while (e != &mm.c_mn->ent.hd && ((MEnt*)e->d)->t == ME_SEP) e = e->p; if (e != &mm.c_mn->ent.hd) { mm.c_mn->c_e = (MEnt*)e->d; mm.c_mn->c_e->a = 0; } #ifdef SOUND sound_play(mm.s_clk); #endif return MM_NONE; } /* select next entry */ int MM_NxtE() { DL_E *e = DL_GetE(&mm.c_mn->ent, mm.c_mn->c_e)->n; while (e != &mm.c_mn->ent.tl && ((MEnt*)e->d)->t == ME_SEP) e = e->n; if (e != &mm.c_mn->ent.tl) { mm.c_mn->c_e = (MEnt*)e->d; mm.c_mn->c_e->a = 0; } #ifdef SOUND sound_play(mm.s_clk); #endif return MM_NONE; } /* select an entry at pos x,y if valid */ int MM_SelE(int x, int y) { DL_E *e = mm.c_mn->ent.hd.n; MEnt *me, *old = mm.c_mn->c_e; while (e != &mm.c_mn->ent.tl) { me = (MEnt*)e->d; if (me->t != ME_SEP && x >= me->dx && x < me->dx + me->dw && y >= me->dy && y < me->dy + me->dh) { mm.c_mn->c_e = me; mm.c_mn->c_e->a = 0; #ifdef SOUND if (mm.c_mn->c_e != old) sound_play(mm.s_clk); #endif return MM_NONE; } e = e->n; } return MM_NONE; } void MM_CB() { DL_E *e = mm.c_mn->ent.hd.n; MEnt *me; while (e != &mm.c_mn->ent.tl) { me = (MEnt*)e->d; if (me->cb != 0) me->cb(); e = e->n; } } lmarbles-1.0.8/src/menu.h0000644000175000017500000000647607524047710012171 00000000000000/*************************************************************************** menu.h - description ------------------- begin : Sat Aug 5 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef MENU_H #define MENU_H #include "sdl.h" #include "dynlist.h" #include "audio.h" // menu entry // // entry types // #define ME_SEP 0 #define ME_SUB 1 #define ME_SWT 2 #define ME_RNG 3 #define ME_ACT 4 #define ME_KEY 5 #define ME_STR 6 typedef struct { char nm[32]; char str[64]; DLst sw; int t; int *p; int min; int max; int stp; int act; void *smn; int x, y; int dx; int dy; int dw; int dh; float a; void (*cb)(void); } MEnt; void ME_Fr(void *e); void ME_Ini(MEnt *e, int t, char *n); MEnt* ME_CrtSep(char *s); MEnt* ME_CrtSw2(char *n, int *p, char *cap1, char *cap2); MEnt* ME_CrtSwX(char *n, int *p, char **caps, int num); MEnt* ME_CrtRng(char *n, int *p, int min, int max, int stp); MEnt* ME_CrtAct(char *n, int a_id); MEnt* ME_CrtStr(char *n, char *p, int m); MEnt* ME_CrtSub(char *n, void *m); MEnt* ME_CrtKey(char *n, int *p); void ME_SUpd(MEnt *e); void ME_Edt(MEnt *e, int c, int u); void ME_CngSwX(MEnt *e, int *p, char **caps, int num); // menu // typedef struct { DLst ent; MEnt *c_e; } Menu; Menu* M_Crt(); void M_Fr(void *m); void M_Add(Menu *m, MEnt *e); void M_Hd(Menu *m); void M_Shw(Menu *m); void M_SUpd(Menu *m); void M_CmA(Menu *m, int ms); // menu manager // // resize or keep resolution ? // #define MM_KP 0 #define MM_RSZ 1 // return values for MM_Evt(..) // #define MM_TRMGM -1 #define MM_NONE 0 // increase or decrease a value when use entry ? // #define MM_INC 0 #define MM_DEC 1 typedef struct { SDL_Surface *ss_bkgd; SDL_Surface *ss_logo; SFnt *ft_nml; SFnt *ft_sel; int x, y; // centre of menu in ss_bkgnd // int lx, ly; // position of logo // float a_c; // alpha change per ms used for enlightning // int d; // delay per loop // DLst mn; Menu *c_mn; char vkys[SDLK_LAST]; #ifdef SOUND Sound_Chunk *s_clk; #endif } MMng; void MM_Ini(int x, int y, int ly, SDL_Surface *ss_bk, SDL_Surface *ss_lg, SFnt *fn, SFnt *fs); void MM_Shw(int rsz); void MM_Trm(); void MM_Add(Menu *m); void MM_AdjP(); void MM_DfVKys(); void MM_Ck(); int MM_Evt(SDL_Event *e); int MM_UseE(int c); int MM_PrvE(); int MM_NxtE(); int MM_SelE(int x, int y); void MM_CB(); #endif lmarbles-1.0.8/src/sounds/0000777000175000017500000000000011271400537012430 500000000000000lmarbles-1.0.8/src/sounds/explode.wav0000444000175000017500000005575406363113210014534 00000000000000RIFF[WAVEfmt "V"Vdata[}~}}~}~}~}~~~~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}~}}~~~~~~~~~~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}xlrRdudguk]AP]xPTp7DFtkg}]=A6>;@?@CAFD^N=OHOM\bGVUUZW]Z_]aacddggjillnnpqqssuuwwxyz{|}~wĤnO=@BDGN[rrZW`p|zf_gj~~~}}{zxtiYA/(!! "#&'*,.02468:<>@BDGIKR^SPZbzueb`cedeegmkgkkrupssuuuvvxxyy{}{Ƕzumq~}~{sYTko^YaXA4/ "H;J8)6 ,:JRNI;2*,/0235699<=?ABDFHIKLOPRSUWXZ[]^`abdefhijlmnopqrstuvwxyz{|}~~~|vlbSUYGB6JQN6-0 !#"&$('++.0149FZln~~}|{zuvxvvuutrm_RC6DB'#$'"',).00./135:KUZadXUYHJS]jnlWP`lkcb``bhc]``aaccefghijkmmopqrstuvwyy{|}~ɻurfWSUTMPSSLLMORSW^d`hhelsq`Zb_TPBB=:BHK[nfrshqwv}stu}|{xxxxxpnvolj^SLJQNIJDHIOC9A=A>BBCFFHEIHKKMNOQQTTVVXY[\]`enmkllutp~pw~uvw}vxyuvwwyy}~Ų~}t|v{{tvzuxy{¿}sphS^jhna]cddZ]g]eocj\RWE?ISLGFHE=9/58?J=125/37/.-3/%'(%()')*+../124578:;=>@BDFGIKMOPPQSTUVXY[\]^_abceffhijmmlnorx|ð}}}wqptoozsqocbggd^Z\Y[[\]]__abjomkfhiijkmooquvywuvy~~|{{{|~uwugimvzqvwvy}~}}||zywwxsmovriijiafrea`cdYWKQXJEIQ^abVOVNTFAJKMS^[_jqlsww}z~{}}}~}~|~|}|||{{{{zzyyxxxwwuutrnlhdmrljhgfa]\ZW`db\SN@C<:FNQWPKU[[[cea`a^_fopms|{t|x{~zwsxvr}zt}yuyucbhpzzpmoirwkf`cmuwv{ymgebbefpusvw~{}~~}}}|||{{{zzyyyxuuwwututtn`ODELQZjqrhVG<810-+'$($'&2IU_^XL@4./0235679:<=?ACDFHJKMOQSTVXZ\]`cddegiloqrtuwxy}¹~~}||{zzyyxwwvvutssrqqqppoonnmmllkkjjiihhgggffeddcccaab^]ZUOLJNSL@8?;6DFDA>94/'-7>:9@FOOJKOTUTSNIFKV[[ZXPT_^]Z^`owrlb`\ZVZ\XYQUQEFHJI?>ACDCGFGKILORTRQMGHLMNPV_hknqnjjnswzyy{}{}~wyzvtpqquvruplkhhkssuwolmifeippooonqspporrnkjjginnlhdbaZXWUSOTPQRNJJMINRPNPTRQUXUPLJNPOONQSUZXY\\[[]]_ab``c`afldbmljebedfghiijkllnoprrstvxxxxyzxy|~|}}{yzyz|{z{}~utqptplljilqupqtyvn{~rmiflojdYX`fjnfgvvxzywulbfmqpovwqxnijhsnoh`mpeb^_gfgadd\_acc_\]]]\bd^fihntrpqvywy|~}~~~{~}}{tpturpme```dcb`bb^[TKFDFDENROOJD?;@BADMPOQPQORTUXXVY^acbdehpwwnje][[\glhgegd`\VURTSUZXVWXZ]`^aggjkwymr{rtvjgq~j\VTV`hghd^bfiebejljfaabgnpllnlnpoqtv}|{zz|wstxxwxxxxslgdeipljmokquoururuwu{|~~}zvtwuxwutpmjjmnolggfjfdefgdcbddeefgikjkmoprqrrrssvvxyyyyzz{{{||}|w{xuvvtnnlkje`\\bcbb_^^_acaadhkkmmmmmoqpqqrpnoqtrqrstx}z~|}|zzzyyyvsqoljjklllkgc`_ba\^[UUSX[YVPPRQTUSUXWXWX[RRXSPPRRWWUWUVTSRSTQNNOPRMDENNOPOKLPE@BLPKF=EIBADJPMGGKKGHFGHIJJLLPQPSUVXZZ\^^``aceehjijiklmmoppqrtstuvwy|||}}~Ŀ~}}}{xqkmloprsnptwxyxxzyz{zx||{|}~}vppoorrvz{xuusw{|zyz{{}xutz}{nhebdjjgfhjlkjnkhgeegjhjorurnprrxwrqnrvsruxyzxx|~|~~~}{zzz{|}{ww{z{xwsstwyuxz{||||}}~|}zz|{|wupmmhkmlkhggggb`__\\]^a_][WWX\a`\YQPUY[UPMOVWTMLRSTWXXXZYYXW^d[V_][VTXVbfdcbgegdddfpiopijeg`\blrnnnunm{qksyz~~zzzwusxxqqsqtspnjmlkmkjheecaehhgffea__cefd`chmjdhkkquusportuuroqvxzz{~yw{}}~~~~{zy~}}}|~}{zwrqsppniie][VTVUTQQOOOMJINPPPPOPRQPNOPRWUSQOQSTSWUJDACDHIDGJMOF@?CEGIGIJLLOVWUUV[`dghehnpw}{~xy~zyzxxxwsppnnoojglovvnkluslmifkpssjluz|}{wz|~}|zyz{zxtqkhklpokjjjjhdddbb_`bbbb^[`eijhfacbbbcfdba`a_]\ZZ]]ZY[__ZZZZYY\\[[]^__`bdedeghhjjmqssttuvuuvwxxyz|~}~~|{zy}{}|y{}~|ywwywxypjjpuqmjikjljijjihc]Y\db]\__`ZNQVWYVWZQMRUXYVUWSQONMKKIKRURSSV[Z[YY[]`dfgggdaabbb`]_^\\ZYZ\\^_bc]`][][`akrqjfgfjknnrssursrpmmswxzy|{~~|{~{y|}{zw}{urwxxxvvvuruspqrv}}{{~~~|||xwyvwwsyrjnnwrsporqywys|}ww}|vzy{w~{wvy}~}}~~}zz{~|w{|~~~}~|yz|{xv~vty~~~~~yvx}~~{zzwsvz{xtrooomnqrpnrwvtqqqrutuuxvutsvvurquxzurpnoqrrttux{|x{{}}wroppooppomnsojlmpoqogihhkiigiiikmlhikmnkkkmrsonmlnqronmotxz|~{~}zwspoqsrv{{|{|~{vvxvtrrv{}{|{vsrrstuuy~zyzyz}}~zttvwxyxuttomopz|utptspuvtsuuurrpmpnplc_`b^XXafb]\[WUVYXSRTWZXWY]___^abfjkqssoptw||z|{yzz|{wstuvwtrqpw~zusspqty|zxtuwtnkntyyvstw||}}}~{ofekpttmd^^`fjiid\VSV\bfhgc]XTUY_fhgb[Y\ciiigdbabdghjkihijjlmlkhiklnmppqstvvwwxz}|zxyzz|zwvvttuutqmoonolkkiigddegfbbbda[YXXYYZ^`^\\[\]^``abcdeceedbacfjkjijlpqqpqtttuuvvvusuwtsqollmnokhfedfhhjjjihhhhgkmjgecdhgijghfghlmkkloomhfippopqqqtqoopmkkeilhgkrtnfaejs}rlijmmostqsttx~~{z||{~|xwvwy{}}|{||~~}~~yuuvpmqw}|tpmgdccbbccaa_[\\[\a`bb__Z[\`ceedjloqmijpuxxxvx|~|{z{|{z|{zz{~~||~}|z{~|~~{~ywtutuvrrrsutrnkkkmkkjjiggghgijnoljkkjmnswwwvvvyz{|{{|}|zyyz}|{ywxxxuuwxwwxvvtsssrqrqporqrsqrrqqssprvwwxutstxxxwutsvwqosspjfgiqrpnmnrwvrntz|tjopspkmhowtsqpporroqqxyw{yww|}wz|||yvtz}}xttsz{uxxyv|}~~}}}|}~~{|~~{{yutwyz|{zxwvuttsvxxxvuqonlllllllkklllmoprstutuxxuttv|~}ywx||yvrruplnoqqqoomjifeeecb`^_dhedcbcfjijjjjjknpprqpnlnrrstsssstutroopoqpqsvvrrpppqrrsuwyxuvwxvz{{~~}{}~|}~~~~~~}zz|{|~~|xuuwvrqpprstusqrqnmnpppoolnpmkehmspiihtvmqqjjjkqnfgeadfmqpikniiefgioqqjgjmrsusqtz~xxusvvz~}yy||~}~}|z{}}|}~|z}|z{~}xw||z}}|y|{~y~~|ywzx}{~}{|zz{}|||}~zwtuwwwuvwyvuvutrsswxwwwvrrv{}|}~}~}|{|~~}||zwy{{zyvwxtssrsuuurtvwxtrrtrqrrtutrqtuwvonoqpprrtuuuuuvvwxwuttuxxxurpqwxyuoqt{}|ys{}}}{~|~|}~|ywxz{zyyxusssxxvvvvvuqsvwvuw|}{zwy{}~{w|~yy}{xusy~}zzy}|xxzz|{zwy{yz|{}~~~{yxxx{}~zxusttvxyzzwwtssrrqstuwywwxwwxxw}|yy}~}~|~||{|{}}z|{z}~zz|{~}}|z{zyy{}}|z|}|}z}}~||{}}yuuvwwz{zxtsuxxwwxwxyvrpssttqoqrsvvtstwyy||{|{yvwxwussstutrqrstx{yurpprtvtnmnpoqpkedsyytmdampuy|snmopv|vrv}xlfglsuuwuv{{vtrv~~z~||w|~}~}|z~{wz|{~zw}~yxwwwwx{|}|zxxyzz{}{yz}}}|{{|||~{yyzwwtqssurpnlkmmkkmlkigggdabegigbdeeffgksqmhkooqstsqmry{xqpu{{ywtvz}}zxzztlnqqrrsuspmlknlimpwwqqtsqsyyttwuwvu~}{}yvx{}~}}}xxxzz|zwxvywvxvx}{xwz|{y}}~zwxxxxz{{zvtppvwrjdjx}xngiptsoijqquxwwvy}zz{z}|z~|}~}yxwwyx|~~|yxuvurw|}{y|||}}~}{{xwvuttusrropuurommnnnklpsvwwusrruy|||~{zyzz{zywvwvwwuwuttvurtsrtuqppppommopsuwvwxtpmoqssuwxwwuvvttuvuttrrtvwvuttpmoppqrssswy||yyxz|z}~~}{~}}~}}xvxxwwxxxxwvvusrqqrrrtttttsuuuvxz{||}~}|}}}~~}}}}}zz|~|~~~}|{}}|~xz~vxs~vtxsxt{v~|ytrstpqqz}}z}~}~z{}ttx~||z|yvzxtvwz{yuyw}||}tz~y{~|}v}u{msxytlktwzcutu{||ioqlrp~|i~y}mtrvxi~|ws}z{rrfefmo~rnzqrz{}~}}yy}}~wv|}~}xw||}|zyyy|wtwupqtr|vqsy{urtwxwstrsw||xyzxy~{w|~}|{zz~}~}ytvyz}~|}~~}~~{{{{zzywvvusuvy{zwtrrtttsrpqsqommmmooprpppqppooppnmoqrrpquuuutttutwzxvuv{|{~~}|{yyxyyy{|}}|y}~||{yz}zyzxxwwz}~|~|~}z{}}~{{~~{{zzyz{zxtrqrstsqponmnnppqsspnnoopopqmkijlmligedceiiffdaeec__ekpj^^emssommiiqwwux|~}yx{~}}~}}~~~}~~}||}}~~}}~~}}}|{zyxxz{|{xxwxxwwwvutvvustuvwuttuvutuwvvvvuuttssrrqrssuuurqrtuuuuvxxwxyzzxyz{}~~}|{||}~|{|}~~}~~|}~~}{yyyxywvuuwwvuttutuutstuvwtrrtvwxwxyyy{|~zwxwz|||~}|}zyy{{|{|zz}|}}~}|z{}~|}~~~}}~~}~~}}~}~~~~~~|~~~}~~|}~~~}|}{zwxzz||yw{|xz}~~~~ywx~~x{{y{}}{~~}x}~{{|{{|}}{{~~~|}~}||{|~}||||{{{zwxyxyz}{||zz{|}}~}~~~~}}}|z{||}|zyyyywwvvvwwvtuuvxxyyyxwwxxxwwwwxyz{{z{}}}||{{zyyy{zzzzzyzzzzz{{zz{xyy{|{{z{y{{|~~wxy{}~w|t}yvz|{}x{{y|~{|z||x}{~yx{~||}{{}~}}|{}xz{}}z{zyxzyzz{||~~}}~~~}~~~||{|}~~~}}}{zzyzz||zyywxwvvvwyyxwwy{yvwyz{zyzzz{}~~}}~~~}|}||~~}{{zz|{}|{{{||}~~}{||||zzzzzyxxyyzyyxwxvwwuxxxzxwwwxvwwxywwxz{zyyzzxxyz{zz{||{z|||{{|{|{|~|zxz|{{{{{|||{||}~~~~~~~}}}~~~~}}}}||||||{{||||}}~~~~~~~~~~~~~~~~~}||||}|||{{{{{|||}~~~~~~~~~|}}||{{{|{|zzzyyyyz{zyy{}~||}~}}|}}~}|||}}||~~~}|{}~~|wx}xvx|~}z}}||~~||}~~~}}~~}~~}}~}}}}}~~}}|||}}}~~|{zyyyzzzyyyz||||zzz{{|||||}}||||}~~~~~~~~~~~~~~}}}~~}}}~~~~~~~~~~~~~}}||||||||||||}}{|{|{{||||{{{||||{|}||{{}~}{{{{}~~~}~}}zz{zzzyyyxyzyyzyyyyz{{{{|{{{z{|}|||}~~~~~~}}}}}}}|||{{{{|}|yyxxxxxwwwwxxxxz{{{zyyzz{{|}}|{{|}}||}~~~~}|||}}}}}}}}|{{{}~~}||}}||{{{{{|{{|||{|}}|{||}}~}}}}}~~~~}}}~~~~~~~}}}}}||||||||{{{{{{{{zzzzzzz{{{|||||{{{{||}}}}}}}}}}}}}|}}~~~~~~~~~~~~~~~}}}~~~~}~}}}}}}}}}}}}}}}~~~~~~}~~~}}~}}||}}}}}}}}}~~}}}}}~}}}||}~~~~~}|}}~~~~~~~~~~~~~}}~}}}}}}|{|}}||{|~}~~~~}~~~~~~~~}~~~}}~~~~~~~~~~~~~~~~}}}~~~}|||||||}}~~~~~~|}}}}}|}}}}~~}}}~~~~~~~~~~}}}}}}}}}~}}}}}}}||||||||}}}}}|}}}~~~~~~~~~~~~~~~}}}~~}}}}}||}}}||}~}}~~~~~~~~~~~~}}~~~~~~~~~~~~~~}|||}}~~~~~~~~~~~~~~~~~}}}}}|}}}||||||}||||||}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~}}~~~~~~~~~~~~~~}}}}~}}}}~~~~~~~~~~~~~~~~~~}}}}}}}~~~~}}~~~~~~~~~~~~~~~~}}~}~~~}}|}}}}}}}}}}}|||||||}}}}}}|||}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~}}}}~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}||}}||}}}}}~~~~}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}~}~~~~}}}}}}}~~~~~~~~~~~~~~~~~~~~~}}~}}}~~}}}}~~~~~~~~~~~~~~~~~~~~~}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~lmarbles-1.0.8/src/sounds/select.wav0000444000175000017500000000254406030574246014353 00000000000000RIFF\WAVEfmt VVdata7~{xvtpmigecb_^]^cgfglmmprqrstsrrstttvwwustvuuvvvwxxvuspnnjffhiilnopty¾~}|{{yyxtrnkhgfbaabbab`_`behiloqtxz{~zuoje\TLGC@;::;=>?AEGKPRPOONLMRVX[blwľ~wtnhd`^YWWVVUXZ\^djpx~þ~ulcWF90$   (1:BJTbku~yslhaXRPNKHFGHHKPT[dksɾ{oaVNFB?:742/-,026>GQYbnwüwk`SI@4(  !0CTcqƾveTB2#!)4BRbrǶtZ>(  *5AO]l{˿mWB2%  '7EYm̿tbRF?82,'%$$$)/8FSbtͼr\L@5-&!"(4BTevǯjXH9+ ):K[m|xh]ULC<9555;DP`p̿xmcXLC:3.,/5BRewи|jZJ8( /AScvҽ}sfVD4'!(8HZn}ǵyiXKB6-#$,;L^oưlU=*!0AUgwкo^L=.#,>Qdu͸t[C*.@Sdwνr_N?426@P^ly¯jR?."".>RexʭpT=*&2?L^pq\LB<:;BLXfsĻwcP@4-+,2>JZl{xld^ZX[bgp|¼pf^XWVY`hs~zsnjghilr|xrlf`\ZXZ^dlr{xpjd_ZZ]_dkr{ukd]VPNNNS[bkv~}~}yuojhggikpz|qe\URQU\blv}lmarbles-1.0.8/src/sounds/score.wav0000644000175000017500000000115407207216414014202 00000000000000RIFFlWAVEfmt "V"Vdata@|zz~z~~xtjnlzxzxv~zlv|tb~^d~Zlbf`ȘxFzDʊ.*vbtjJzhp|jZz`NSȳ<.Hdټg&=P˴B+H^ݽo(;NzεH'GXྯy*8OqѱS %HV8 3Odֵk(!#AS}ɰL#!,J[ڽ6""8Pmдb)"'DVįG$"1Maֹx4#%=Rt̲[)$+GZC%%5OfҶq1%(AUzȯU(&/K]ս=&'9Rkϳj.'+EXĭN((2O`Ӹ8()=Un˰b,)-JYF))5RaѴw2*)CVsǬY++/NZպ@**;Ueΰo2,,HX{«S-+4Q^Ѷ>-,@UmȮg3-0KZҽN/-9Sc̳z=./DWtì`3.5N^ϹJ0/=Uiɱt;02HZz[308P`̷F01@WlƮn814J\ξU21:Sc˴A11CYpŬf514N]κM1135J[y˽_75;RaɵM55BYjĭv?67K]wɽ`86;T`ȴK66CZgŪx=86M]uɼ`88I]k¼yI>@Q`xgB?DXeW@@J^k{I@AQavhBADYdUA@J_h}HAARbthCADZdWBAK^j{LBBRawiEBFYeYBBK^l|MBCRbvkEBEYeYBBJ_i~KCBRbskDCDZdXBBK_i}LCCSbukFCFYe[DCL^k}OCDRbvlGCGYe\DDK_kNDDRbsmFDFZdZDCK`hMDCScrmGDF[e\EDM_k~PEETcunJEIZf_GFN`lRFGTduoJGI[f^GGNajQHGUdrpIII]f_HHObkTIIVetpNIL]haKJQbmVJKWeuqOKM]hcLKQclVLLXfsrOMM_hbLMQdkVMMYgsrPMO_idONTdmZNNYgusSNP_ifONTdmZOOYgtuROP_i~eOOSdlXONYgruQOP`i~fPOTel[OOZgtuTOQ_igQOUdn\PPZgtvUPQ_j~hQPTdm[PPZhrvSQP`i}gPPTel[PPZhsvUQQ`j~hRPUdm^QQZgtwVQR`j~jRQVdn^QQZhsxVQR`j}hQQUem[QQ[itsTRRbjdRRWgnYRR^jwoTSUelbSS[iqzYTTak|lVTXfn`UT]iuvYUVcliVUZhp_VV`kxsYVXengWV]is}^WXbl{pYWZgodWX_kuz\XYdm}mYX\ipbXXalvv[YYfniYY]kp_YXcmwrZYZhnfYY_lr|^YYem{o[Y\iodZYalux^Z[fnl[Y^jqcZZclxu]Z\goj[Z_ks~aZ[dm{r\Z]hpgZZalu{_Z[en}o[Z^jqd[[bmvx][\gok[[_kqa[[dnxt\[\iog[[`mr}`[[fnzp\[^jpf\[bmuy_[[gnj[Z_kr|`[[fn|m\[_kqa\[enzp]\_kqe\]dnxt^]_jqh]]dnwxa]_iqk^^cmvzc^_ipn_^cmu}e_`hp~pa_cmtg``hp{sb`cmsha`gpyvcablqja`fpvycaalqlaaeov{daakqoaaeou~fabiq}rbadnuhabiq{tcbdmtjbbhpzwdadlslbbgpxyebclrncbgov{fbckqpcbfou~gcbkq|rcbeoshcbiqztccdnsjcchqywdcdmsmcchpxzfcdlsoccgpw|hcdlrqdcgov~icdkr}secfoujddjq{uecenticbjqzsccfouicdkr~rdcgow|iddlrpechpv{gddmsnddiqyygdfntneejqzwhegotlfekr{ufegpukefls}tgfipw~kfgmsrgfjqw|jggospgfjrx{ighoupgglrzyjgipuohgms{wigiqumhhmt|uihjrwmhint~tihlrx}miiptrjhlsx|kijpvqiimtzzlikqvqjint{xkikrvojint{wjikrwnijou~vkjlsx~njjputkjmsx}mjjqurjjmtz{ljkqvrkjnt{zmjlrvqkjot{xkjlswojkou}wkjmsy~okkqvtlknty|mkkrvrkkou{zmkmsxrllpu}wmlntxollqv~ullouz}olmrwtmlpu{{omntwrmmqv|ynmotyrmnrwwnmpuz~qnnswunnpv{|pnotxtnnrv}zpnpuysonsw}xoopvzrootxwoorv{}ropuxuposw|{popvytopsx~yqoqvzspptxwqorwz~qppuyvppsw||rpqvyupptw}zqpqvyspptxxqprw{~spquywqpsw||rqqvyuqqtx}{rqrvzuqquxyrqswztqqvxwqqsx|}sqrvzwrrtx|}trswzwrrux|}trswzwsruy||srswzwssuy}}tstw{wssvy}|tstx{wssvy}|tstxzwtsvz}|tttx{wttvz~|utux{xttwz~|utuy{wttwz~|utuy{wutwz~|uuvy|xuuw{|vuvy|xuuxz{vuvy|xuux{{vuvz|wuux{{vuvz|xuvx{{vuwz|xvvy{{vvwz|wvvy{{vvwz|wvvy{{vvwz}xvvy{{vvwz}xvvy{{wvx{}xvvy{zvvx{}wvwy|{wvx{}xvwz|{wwx{~~xwwz|{xwx{}ywxz|}xwx{}zxxy|~yxx{||xxy|}zxxz|}yxy{}{xxz|~yxy{}|yxy|~zyy{|~yyy|}{yyz|~zyy{}|yyz|~{yy{}~zyz|}|yy{}~zyz|}}zyz|~{zz{}~zzz|~|zz{}{zz|}}zz{}~{zz{}~zzz|~|zz{}{zz|}}zz{}~|zz|}~{z{|~|zz{}{z{|~}{z{}~|z{|}~{{{}~}{{|}{{{|~~{{{}~|{{|~{{{}~}{{|}|{{}~~{{|}~|{{|~{{{}~}{{|~|{{}~~|{|~~}|||~|||}~~|||~~}||}~|||}~~|||~}||}~}||~~||}~}||}~}|}~~}}}~}}}~}}}~~}}}}}}~}}}~~}}}~}}~}}}~~}}~~}}~}}}~~}}~~}}~}}~~}}~~}}~~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~lmarbles-1.0.8/src/sounds/teleport.wav0000644000175000017500000004245407207000272014726 00000000000000RIFF,EWAVEfmt "V"VdataE~{uia]VKEEA74;=6:LTOZrsht~n{zl|vk|rl||gdpcJLTA+27"# */0;JOR]ecciib`fe][aaYV_`QMZZ@5FE#0- % *$'<87KVU_ljhrrfgneX_f[R[aWRZ]VRSQNI@DVYKLZYKLWULMUUOOTVRNQWQHINF7361"#"" $-8AEJXa[V_eYOW\RJQXRLQYVOQ[ZPOXXLHNLA=AA;;AEFKSYbkpy{}ksugp}ukr}xot}yqtztntvmlw{svιų¼Ƽĸ³ķĬúɻ|w}vnmh[ONQF7ATKM@1?I8/@D1.AB47FH?>IND>GL>6@C3/<=02CD8?PMCMXQKTYQPZZSX`[Xbf^`mqjkt{vnt}uhoxk^hpbYhpc`ryjk~psrxyɴոߺḶڷѸκض̫ǩŬڽͻþźtw}rfnqa[geUYf\R`fXXgdX`kbYch]X`aVT[YPQXXQSYXQRVRLLLFCEB;=B<6=C96BB69E=1:B4+:<(&84 $71 *<5(4C:/;F;3?E84CD69HE:BMF@JLBBKG9=G<-6@1#1<, 2?/(>I85KRA@WYGK`^OYjc[iskkwvpw{qoyvijtl_dlbZbg_\ehdfmqopuxxx|̾ŷļ˽vwzpiki_]b]TW^XQYaZWaf`^ehc`df`[^`ZUY\USXXPPURKKPKDFGB>??<:;<98;=;;?@>;>B<5:?3*47&!22#72 +=1#4@/)<@.0C@/7H@4BMB2:?.$24 30(=1#8F2.IN7>[T@Qi[Ndte`rzqox}{uu|zljso__haTZb[U_d]_igckqkmy{u}ýѿǷμó̼Ǿxs}wdfreS^jUEZdHA`fGJmjMZylRd|gQgw[KfoQIgiIIe]?:;AFD@FNJ?EPF6=H9(2<+-4%!26)+;;06C?8CNIHV\UYgg`iupjwwpvo|}lepn\YdaSUa]T\g`[gneesunužÿĻþ~jnzjWbkUHZ]DBYV>GaWCUm]OhwaZsw^]toV[ocN[kXGXaG;QR42KB%-D3,=).<)!7@.-AC5:G?5>B51<7*/9/%19,%27'#13%%21&)32*-6824>A;=EGBCFEDC=<@:.1:/"/9*"6=*+@=-7H?8HOFJWVR]c_epnlv{uu}|uwytpqkfgc\\^YW\]Z^cabjjgovtvϺŵ¼ĿɿmmujWZcUFOWHAOSDFVUISb\Venebprdesm]dqbR`iQE[]?;TK*0F4'9!)424 <6"/F<->M?4DK94DD02D<'0@0/;'05-,.)'5-'6=55@C=?GHDEHGCA?=<96785345335669;:=B??GLIKV\Y\hnijvypr}}rt{mmwq_ameU[i^Q_i\VhobdvxouȸӸ˳ŶĿ˵ѺȯïѾɾ|o{kYjnRI_]AD\R;I]L>VbLLiiS_yjXoeZw|ZXvmIRmV6K^;&CH91 3#4 )8:>$,KD,=VC0IW;2NO.1L> /D*.8,* * -!#5'2>0.@F;>?HNIL\^U]oj_l|rhytn~pmzxigpmaaie\`ga]glcgwvmz~ųĹɯҷ˭ɮͷȴ϶Ƭʿ½vsrjec`[XWSPPNLMOLLRTQT\]Z_fgdglmjjklicbd\RSRE<@=/*1,(!%''0)(4<66BG?ALLCGOH?EH=6<9,).%" ! * #4%5@00GJ;@SOCKWNELQHBEF@;:<82263.2756=?>EKHKTURYbaainlnvvtw{wvywssrnmnheih`cjeajqlmz}̻ºƺؿ̬Żɺʿ°vy}pfmoa\ecSS^WJPZRHS\SO\cZZgi`dokckpe`idUV]O@HI5.:4 $2%$,&(**"43)1B>5ANE=LSC?QN9:C@55:4,./(%(% !"#!!(..07<<>CGFFHIGFEEEB@BB==A@:8>D<8AD;9CD;>IIDJTTRZ`_`hjgjpmhorhgsqemzpgyppp{sy~ȰɳƸҼǵ¿ƴ˾ι̶ƵɽǼǼĶö}yzzx|zvzypnsneglf`ehb`fgcdgebcb^[ZVQQPJFHG>>E@68:;5022-)+,'$))##)%!%'!!&! #$#%.)'4914A?8=E@9>B<8LQBBQM?ISF@ON?DPE=IJ;=H>264;93782251+.0)',+&',+(*/0.17859@?;@GDAHMHFNSLJSVNNYYOR]XNV]SOZ\RUa\Uah^_nmcmypk{ruu~{ƽȺɺʾо̾Ƚʼystr|ls~shtykgspcemd[acXU]YORXPJSSILUNGPSHHRMDKPGDLJBEICADB>@@;:;7233,)-+$$*&%*#*-"$2/",8-%5:+-=8,7@40=<16?50:9-/7/&-1&".."%2-",9.'8?01DB3=LB;JQEFURJS[SS][T[aYW`_UZaZU^aZZdd\bjfajpjistmrzvs{z{žʽ˾Ǹ͹¬|rrocrn^v{aawn[gtbYkkWZj_O]fSNb_JRdVGY`KH]WBLZJ?PQ>@OE9EI;;F?5?B54?9+3:-&33$&3,",3)&22(,5/*25-/73.5812;829>65><37>6/78.-40(-1+(/0*-3/.4514:76>?;AGCBMOGNYSO\`UWe`U^h[UcdUXf^R^gYUfgW^mcXhp``spam|pj~sz{ƿǿ½·}|ypsunimohejkdcihabie_dga^dc]`d^]b`[]_YWZWRRROKJIGDACC</6B7-;?/.;7*/8/'05+'24)+62*181/9;59A?=EJGKRRRX[Z\`__bb`ab__a_]^_\\^][]^\\__]`cbbhjhmsrt{~¿̾}ruucrze^rp[ashYgra[nn]cri]krb`oj]dl`YdcUW^TKRSFDLF<@D<8>>88<;78:987897589549923:5/480-64*.6.(24)*61(29/-::/4@80?+6K>4JSAE]WHYhWSjiV_qbUhnWXndN]mVKdeJQiZG^kRPlhScxh`znvz̾ǿο;zuyvllojdhiddggeghhiijllmnnmoomlmjghgaab\XYVPOOJGHEAAA=<>:9=;7;?98>>8;@<9=?::=;7995464024/,11)+3.'05+*75*1=3,;?03A;/9A30=:.3;1+55(+5-$/5((74(3?50BG9@RLBR]OObaS]k`Yhj[_kaWcfWWd\OY`RO^\NWcZUdi^drojwx{½~|mwldus^cuiYkva^ut^i}oau~hg|ubmyf]mlW[h[MY\JGUM=EN>6EE46F=06398/072*06-)34),61)29.-:9.5@81>C55D?19D7.=>,.=3$2:(%95#/?0(>C/6LC5IVCC[YGUfWPehU[mbTdjWVg^O[bPN_YIUaPLaaP[mbZnvfk|o~ŽĿų¶vvm~|fkznaovfduremypiuznmxukovlgnmbch`Y^]TTXQKOOFEIE>BC>=@@=?@@@A@CDABGD>CF>:BA67@9/7=1,87*.:1(38++83)3:/.<:.8B62A@19E8/?A-0A5%6>('<6#0@.'=?+4H<1EM;=SM?O\LJ_]NYgYRddRYhZN_bMPbVFYaLMd\J\lXUonZh}me~oxx½ȺƸɿŻ¿ÿʿ˺½ӽоιӾưƶ~{|sx{qpyumtxooyvnu{rpxvmpumhnnddje]acYV\XORVMHOLBEKC>GG=@IC=EI@@HG?BHC=AE=9@@67?:28>30:8,2:1+67+/92+6:/0=:08A72?@36C;/:A1.>:)2?1*;=,2B8-=C35GA5BM?>PNAKYNIY\NR`XN[aRQ`ZNW^RO\YOX_VUb_W`h^_ljblumly{ry{ǽž~zvzzs}tuzqx~sqzxmpwohopgeli`ch`[a`VW\UNTTKJQMEJOGDLLEFLJDGKGCEHD?BE?;AB99B=5;@74=;15;3.77.192-79/1=7.9@20@<,5C3)=?).C6&9C,,D<)9H3-EC-9L:0HK5=TF8OXAC]S?RbID_[BPdNC^`EOgVGahNUoaOhsXZwmWmfb~evxmt}v~{˿տɼӿɹѿɷ̽İĸ~|zy|{v{{srwrlpqiinichjbafb[_aXV\WPTVNMSPJNRKJPNGLOHFKICEHC?BC>=BA;=B=9>@98?;59<439605922:717<43;:26<618:2196/4;41:<36?:4=A88B?7>D;:DC;BJB@KLCGPKENQIIRPINTNLTUOS[WT\_Y\d`^egbdjhflmjmsqpvxvy|{|~¿ſμº͹öιij̸­Ƶõ{yw{wqttmmqlglmefke^eg\\d]T[_SQ[WLRYPKUVLMTPHLPIEKJBBHC=BE=9/7?3/=>/4B8,:B/-A;(4C1(=?)1E8*?G13I@/?K74IE2?M<6KJ7ARC:OR=CWJ;NVABXO>O\IF]ZHUfUOefS]n`Xkm[ctg_ruck|pgz~mryo~tvu|}ĿпĻκķκų͹įʷĭȹĬ÷}wst|tlsujjrlellcdjc^ddZ\b[V]\TW\UQYXOSXQMTSJLRJELLBDJD>EH>>HC:BG=:EB6;,5?2,;;-2?6.;@35C>4>F:7EC7>H>9FH;@KC;EC8=E<5AC58E=2>D53C>.8D5-?>+2B4);?,0C8*;D01F?.=J73IE2>N=5JL7?RC6KP:>SG6JS<D95B?29C60>>/4@5-;>.3A8.G87HD7BM?;LK;ERD=NN=DRD@?<=>;9;;78:758945:638;55=:4:@97BA9?HA=HI@DMGAKMCEMGAIKACLF?HLBCNIAKQGHURJT[RR_^U_h__kkcjrkisslqwqnuuorwrpwwquzvu|}x|~¼Ž¼ƾüɾʿ·¹¸¾~y{zuruqklnhehgabeb_bb__a`^__^]\\[ZYYXVUUSQQPNLMLIIIFDFFAAEA=BC<=E@:CF<=HA9DG9;H?3@E44D;-:A//@8)7A.,@;)7E2.EA-:7::5596258337736:76;<9=CEADIFDIKFGKHDHJDDIFADGA@FD?CGCBIHDINJKRSPU[XY`a_chfflmjlqomqrnospnqsopsqpstrswwwy||}ûĺĿĸƿǻļʾϽµǴƻðĻųƾȷȶƽzzyvssqomllihhgfeeeccddbacb_`a_\^^ZY[YTUVRPRPLLNKHIIFEGGCDGEBEGBBHE@EHAAIEOB9MOQC5HM7;OD5IQ=@UL?Q[ILaZN^hY[lg\iqdesneouiiupgpujjupiqvmnxuow|vx|ûŻ÷ɽǻ̼ѽų˵ȿDZƾȲ̶İ̶Ů~x{xqyymovnhooghlieghedeedbbca_`a][^\WXYUSUSOOPMLMLJIJIGIIFGIGDHICEJEAGH@BHB=DE;7>@66=917;32:817=65>=7=C<DIBBJHBGKDCJHBFJCAHF?CF@?ED?CGBCIHFLNKNTRRXYW\`^_ddbfhfhkjillklnllnmkmomlqqnqurryyv{|}Ÿ³ɺƶо˺ϼ̸ջƱϴ˯ͽʮͽ̱п̱νƬŴ}}|ywxvrrtpmppkjnkfikedhgacga^cb[\`ZV[ZSTXRNSRLNQLJOMHLMHIMIFJJEGIFDGFCDEBACA?@?===:;<98:958:66;:6;>99A?:@D>>FD>DHAAIF@GIABJE?GH?AHB=EF>AIC?HJCFNJHPRMQWUSZ\X[`^^ccadgeeiigikiilljlmlmnnoqqrttuxyy|~ƾƽʿʾпƹ˺´ɶȿȵɿȵɷɿŴù~{z{xvwvssspppmlmkijiffhdcec_`a][^\WXZVTVVQRUQNQRMMRNJOPIJPJELLDFLFAHH?BIA;DD:7DF9>J@:GH;@KB;HI?C?;@?:<@;:?=9=@;;B?:@C<=D@B?;@A:9BC:>F?;EE:@H>;GD9AI<:HC8BI;;IB7CI:;IB7DI:=LC;IM?DRIBQSFLXNIWWKR\RN[ZPW_VT_^U\c[Zdb[aga`igbimhjqomrurtxwvz{z|~}~ŷʹö̹ʶ;ɳμɲлȱкDZиİ͵ʾŮö~|~}yy{xtvwrptqkopihmicgh``e`[`aZ[`\W\]WW\XTXYSSWSNRSLMQMHMNGGLGCHHBCGB?DC>@C?>BB?BCABDBADDACDBBDB@BC?@B@>AA>?B?>AA>@B@?CC@BFCCHHEIMJJOOLOSOOTSPTVRSWVSWYUW\YW\^Y[a^[ad^aheailfiqnjsvpr{ws{}wy}z}¼ŶȾǶʽųʹðʷ±̷²Ͷ˵ξdzʹñ}}|xz{wuxvqsupmqoikmgejgadf__c_[``Y\`YX]ZTY[SSZTNUULNTMHPOFJPGDLJAFKB@IE=DI>?ICAKC=II=BLA;HD8AH<:GB8BH;@KF?INDGQLFPTJMWQLUWOQYTOWYRT[WSZ\UW_[W^aZ]d`]eg`dlhenpinvqnwyrv~yv~y|{~ĹŸľĶŽŵȽƶ˾Ƿ̽Ŷʻ³ƶülmarbles-1.0.8/src/sounds/click.wav0000644000175000017500000000114207145777404014165 00000000000000RIFFbWAVEfmt "V"Vdata6~}~{f{v|v{|}|}~{|z}z}|~yv}z{~|||{~}besxppy}pm~sv}t}{qgnzu|q{v{vyt|xyhxhkxoptq{wsuyttyzq~w|jW_xYisu||zryxz{nhvobxSgnwxkQ3S[y|~ox]ad_M}|IOxpvwWUbOGOpOY{nI;csQUO;?[7r;GOuEo]{uw{vzrSmpyyigcfygzlg}Ypdnz_wlww~{t]GuiczSBI_gnSWECULJ+MaWb}kevWedkEC]kbkntduqxeupjqhjkx}~n{w}|}|~|~~zyv~y}~}lmarbles-1.0.8/src/sounds/arrow.wav0000644000175000017500000000451407206775671014242 00000000000000RIFFL WAVEfmt "V"Vdata zwwzw}r7SJ^݃)<P^}VSEBVVoXBo:z:&^fl^4<ftf,Brt^tr:Sl,S}^XzwfaJolrw^Mtw?:6779;>BDFGGGLb˽¿kZG=,)*/7:HQXVY\P3(/*& ,36DNYUWVYZ^cglsz~ȼ}wrngYXXTG7&*2*)5' -:O]l{zúĻʽuwt]``HP[I=JJ5*#),=Uecfsngb_QKFLOMGILKQXXbmsy~Ƽ}nnsuib[]c_LNROOTUMW^XFEQKNHB>83("&,5;FIFMW`ls{ƽ˶ƶxovrekdX^Y__UPVRRYTMNK8),$#, #include #include #include "cfg.h" #include "file.h" // profiles // DLst prfs; // string list for the menu // char **prf_lst = 0; int prf_n = 0; // profile source path // char prf_pth[256]; // configuration // extern Cfg cfg; /* initialize dyn list and source path */ void Prf_Ini() { DL_Ini(&prfs); prfs.flgs = DL_AUTODEL; prfs.cb = Prf_Del; sprintf(prf_pth, "%s/lmarbles.prfs", PRF_DIR); } /* terminate profiles; must be saved first */ void Prf_Trm() { Prf_DelLst(); DL_Clr(&prfs); } /* load profiles */ int Prf_Ld() { Prf *p; SInf *st; int s_num = 0, p_num = 0; FILE *f = 0; int not_f = 0; char str[256]; #ifdef ASCII int i; #endif printf("loading profiles... "); // read access ? // if ((f = fopen(prf_pth, "r")) == 0) { printf("\nWARNING: file %s does not exist; cannot read profiles\n", prf_pth); Prf_Crt("Michael"); not_f = 1; } else { /* load ascii identification */ #ifdef ASCII F_GetE(f, str, F_VAL); str[strlen(str) - 1] = 0; if (strncmp(str,"ascii",5)) { printf("\nWARNING: trying to load raw binary data in ascii; cannot read profiles\n", prf_pth); Prf_Crt("Michael"); not_f = 1; } else { #else fread(str, 5, 1, f); if (!strncmp(str,"ascii",5)) { printf("\nWARNING: trying to load in ascii instead of raw binary format; cannot read profiles\n"); Prf_Crt("Michael"); not_f = 1; } else { fseek(f, SEEK_SET, 0); #endif /* load numbers of profiles */ #ifdef ASCII F_GetE(f, str, F_VAL); F_ValToInt(str, &p_num); #else fread((void*)&p_num, sizeof(int), 1, f); #endif if (p_num <= 0) { printf("WARNING: bad profile counter: %i\n", p_num); Prf_Crt("Michael"); not_f = 1; } else { while (p_num--) { p = malloc(sizeof(Prf)); #ifdef ASCII /* name */ F_GetE(f, p->nm, F_VAL); p->nm[strlen(p->nm) - 1] = 0; /* levels played */ F_GetE(f, str, F_VAL); F_ValToInt(str, &p->lvls); /* score */ F_GetE(f, str, F_VAL); F_ValToInt(str, &p->scr); /* percentage */ F_GetE(f, str, F_VAL); F_ValToFloat(str, &p->pct); /* number of levelsets */ F_GetE(f, str, F_VAL); F_ValToInt(str, &s_num); #else /* name */ fread(p->nm, sizeof(p->nm), 1, f); /* levels played */ fread(&p->lvls, sizeof(p->lvls), 1, f); /* score */ fread(&p->scr, sizeof(p->scr), 1, f); /* percentage */ fread(&p->pct, sizeof(p->pct), 1, f); /* number of levelsets */ fread(&s_num, sizeof(int), 1, f); #endif DL_Ini(&p->sts); p->sts.flgs = DL_AUTODEL | DL_NOCB; if (s_num >= 0) while (s_num--) { /* level sets */ st = malloc(sizeof(SInf)); #ifdef ASCII F_GetE(f, st->nm, F_VAL); st->nm[strlen(st->nm) - 1] = 0; F_GetE(f, str, F_VAL); F_ValToInt(str, &st->num); F_GetE(f, str, F_VAL); F_ValToInt(str, &st->l_num); F_GetE(f, str, F_VAL); F_ValToInt(str, &st->c_num); for ( i = 0; i < st->c_num; i++) { F_GetE(f, str, F_VAL); F_ValToChar(str, &st->c_opn[i]); } for ( i = 0; i < st->num; i++) { F_GetE(f, str, F_VAL); F_ValToChar(str, &st->cmp[i]); } #else fread(st->nm, sizeof(st->nm), 1, f); fread(&st->num, sizeof(int), 1, f); fread(&st->l_num, sizeof(int), 1, f); fread(&st->c_num, sizeof(int), 1, f); fread(st->c_opn, sizeof(char), st->c_num, f); fread(st->cmp, sizeof(char), st->num, f); #endif DL_Add(&p->sts, st); } DL_Add(&prfs, p); } } printf("ok\n"); #ifdef ASCII } #else } #endif fclose(f); } Prf_CrtLst(); return !not_f; } /* save profiles */ void Prf_Sv() { DL_E *e = prfs.hd.n, *le = 0; Prf *p; SInf *st; FILE *f; #ifdef ASCII int i; char str[256]; #endif printf("saving profiles... "); if ((f = fopen(prf_pth, "w")) == 0) { printf("WARNING: no write access to %s\n", prf_pth); } else { /* save ascii identification */ #ifdef ASCII F_WrtE(f, "ascii"); #endif /* save numbers of profiles */ #ifdef ASCII F_IntToStr(str, prfs.cntr); F_WrtE(f, str); #else fwrite((void*)&prfs.cntr, sizeof(int), 1, f); #endif while (e != &prfs.tl) { p = (Prf*)e->d; #ifdef ASCII /* save name -- 12 chars */ F_WrtE(f, p->nm); /* levels played */ F_IntToStr(str, p->lvls); F_WrtE(f, str); /* score */ F_IntToStr(str, p->scr); F_WrtE(f, str); /* percentage */ F_FloatToStr(str, p->pct); F_WrtE(f, str); /* save number of levelsets */ F_IntToStr(str, p->sts.cntr); F_WrtE(f, str); #else /* save name -- 12 chars */ fwrite(p->nm, sizeof(p->nm), 1, f); /* levels played */ fwrite(&p->lvls, sizeof(p->lvls), 1, f); /* score */ fwrite(&p->scr, sizeof(p->scr), 1, f); /* percentage */ fwrite(&p->pct, sizeof(p->pct), 1, f); /* save number of levelsets */ fwrite(&p->sts.cntr, sizeof(int), 1, f); #endif /* save all levelsets */ le = p->sts.hd.n; while (le != &p->sts.tl) { st = (SInf*)le->d; #ifdef ASCII /* save name -- 32 chars */ F_WrtE(f, st->nm); /* save number of flags */ F_IntToStr(str, st->num); F_WrtE(f, str); /* save level peer chapter number */ F_IntToStr(str, st->l_num); F_WrtE(f, str); /* save chapter number */ F_IntToStr(str, st->c_num); F_WrtE(f, str); /* save chapter open flags */ for ( i = 0; i < st->c_num; i++ ) { F_IntToStr(str, st->c_opn[i]); F_WrtE(f, str); } /* save flags */ for ( i = 0; i < st->num; i++ ) { F_IntToStr(str, st->cmp[i]); F_WrtE(f, str); } #else /* save name -- 32 chars */ fwrite(st->nm, sizeof(st->nm), 1, f); /* save number of flags */ fwrite(&st->num, sizeof(int), 1, f); /* save level peer chapter number */ fwrite(&st->l_num, sizeof(int), 1, f); /* save chapter number */ fwrite(&st->c_num, sizeof(int), 1, f); /* save chapter open flags */ fwrite(st->c_opn, sizeof(char), st->c_num, f); /* save flags */ fwrite(st->cmp, sizeof(char), st->num, f); #endif le = le->n; } e = e->n; } printf("ok\n"); fclose(f); } } /* create a new profile */ void Prf_Crt(char *nm) { Prf *p; DL_E *e = prfs.hd.n; // if the name already exists the profile is not created // while (e != &prfs.tl) { if (!strcmp(((Prf*)e->d)->nm, nm)) { printf("WARNING: profile '%s' already exists\n", nm); return; } e = e->n; } p = malloc(sizeof(Prf)); strcpy(p->nm, nm); p->scr = 0; p->pct = 0; p->lvls = 0; DL_Ini(&p->sts); p->sts.flgs = DL_AUTODEL | DL_NOCB; DL_Add(&prfs, p); } /* delete an existing profile by pointer */ void Prf_Del(void *p) { DL_Clr(&((Prf*)p)->sts); free(p); } /* register or find a levelset with name nm */ SInf* Prf_RegLS(Prf *p, LSet *l_st) { int i; DL_E *e = p->sts.hd.n; SInf *s; /* maybe it already exists */ while (e != &p->sts.tl) { s = (SInf*)e->d; if (!strcmp(s->nm, l_st->nm)) { if (l_st->c_num != s->c_num || l_st->l_num != s->l_num) { // seems to be changed; clear it // s->num = l_st->c_num * l_st->l_num; s->l_num = l_st->l_num; s->c_num = l_st->c_num; for (i = 0; i < s->c_num; i++) s->c_opn[i] = l_st->ch[i].opn; memset(s->cmp, 0, sizeof(s->cmp)); printf("WARNING: profile '%s': set info '%s' seems to be out of date\n", p->nm, l_st->nm); } return s; } e = e->n; } /* must be registered */ s = malloc(sizeof(SInf)); strcpy(s->nm, l_st->nm); s->num = l_st->c_num * l_st->l_num; s->l_num = l_st->l_num; s->c_num = l_st->c_num; for (i = 0; i < s->c_num; i++) s->c_opn[i] = l_st->ch[i].opn; memset(s->cmp, 0, sizeof(s->cmp)); DL_Add(&p->sts, s); return s; } /* create profile name list */ void Prf_CrtLst() { int i = 0; DL_E *e = prfs.hd.n; Prf *p; Prf_DelLst(); prf_lst = malloc(sizeof(char*) * prfs.cntr); while (e != &prfs.tl) { p = (Prf*)e->d; prf_lst[i] = malloc(sizeof(p->nm) + 1); strcpy(prf_lst[i], p->nm); i++; e = e->n; } prf_n = i; } /* delete profile name list */ void Prf_DelLst() { int i; if (prf_lst == 0) return; for (i = 0; i < prf_n; i++) free(prf_lst[i]); free(prf_lst); } /* sort all profiles best profile comes first */ void Prf_Srt() { void *p; DL_E *e = prfs.hd.n, *e2; if (prfs.cntr == 0) return; while (e != prfs.tl.p) { e2 = e->n; while (e2 != &prfs.tl) { if (((Prf*)e2->d)->scr > ((Prf*)e->d)->scr) { p = e2->d; e2->d = e->d; e->d = p; } e2 = e2->n; } e = e->n; } } /* update Profile p's score and info s is rem_time / max_time of that level */ void Prf_Upd(Prf *p, SInf *inf, int l_id, float pct, int scr) { float new_p; #ifdef DEBUG float old_p = p->pct; printf("level %i...", l_id); #endif if (!inf->cmp[l_id]) { /* mark as completed */ inf->cmp[l_id] = 1; /* update percentage */ if (p->lvls == 0) p->pct = pct; else { new_p = (p->pct * p->lvls + pct) / (p->lvls + 1); p->pct = new_p; } p->lvls++; p->scr += scr; #ifdef DEBUG printf("marked as completed\n"); printf("added %4.2f: percentage changed from %4.2f to %4.2f\n", pct, old_p, p->pct); printf("score added: %i\n", scr); #endif } #ifdef DEBUG else printf("already finished\n"); #endif } lmarbles-1.0.8/src/profile.h0000644000175000017500000000332207207202501012635 00000000000000/*************************************************************************** profile.h - description ------------------- begin : Sun Sep 17 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef PROFILE_H #define PROFILE_H #include "levels.h" #include "dynlist.h" typedef struct { char nm[32]; int num; int l_num; // levels per chapter // int c_num; char c_opn[MAX_CHPTRS]; char cmp[MAX_LVLS * MAX_CHPTRS]; } SInf; typedef struct { char nm[12]; int lvls; int scr; // total score gained float pct; // percentage of time needed to complete a level DLst sts; } Prf; void Prf_Ini(); void Prf_Trm(); int Prf_Ld(); void Prf_Sv(); void Prf_Crt(char *nm); void Prf_Del(void *p); SInf* Prf_RegLS(Prf *p, LSet *l_st); void Prf_CrtLst(); void Prf_DelLst(); void Prf_Srt(); void Prf_Upd(Prf *p, SInf *inf, int l_id, float pct, int scr); #endif lmarbles-1.0.8/src/audio.c0000644000175000017500000001103207524101047012273 00000000000000/*************************************************************************** sound.c - description ------------------- begin : Sun Jul 29 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifdef SOUND #include #include "audio.h" /* ==================================================================== If audio device was properly initiated this flag is set. If this flag is not set; no action will be taken for audio. ==================================================================== */ int audio_ok = 0; /* ==================================================================== If this flag is not set no sound is played. ==================================================================== */ int sound_enabled = 1; /* ==================================================================== Initiate/close audio ==================================================================== */ int audio_open() { if ( Mix_OpenAudio( MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 256 ) < 0 ) { fprintf( stderr, "audio_open: can't open audio device: %s\n", SDL_GetError() ); audio_ok = 0; return 0; } audio_ok = 1; return 1; } void audio_close() { if ( !audio_ok ) return; Mix_CloseAudio(); } /* ==================================================================== Sound chunk ==================================================================== */ Sound_Chunk* sound_chunk_load( char *file_name ) { char path[512]; Mix_Chunk *chunk = 0; if ( !audio_ok ) { fprintf( stderr, "sound_chunk_load: cannot load WAV '%s' as audio device isn't initated properly\n", file_name ); return 0; } /* use SRCDIR/sounds as source directory */ sprintf( path, "%s/sounds/%s", SRC_DIR, file_name ); chunk = Mix_LoadWAV( path ); if ( chunk == 0 ) { fprintf( stderr, "chunk_load: couldn't load WAV '%s': %s\n", path, SDL_GetError() ); } return (Sound_Chunk*)chunk; } void sound_chunk_free( Sound_Chunk **chunk ) { if ( !audio_ok ) return; Mix_FreeChunk( (Mix_Chunk*)(*chunk) ); *chunk = 0; } /* ==================================================================== Sound stuff ==================================================================== */ /* ==================================================================== Enable/disable sound ==================================================================== */ void sound_enable( int enable ) { if ( !audio_ok ) return; sound_enabled = enable; if ( !enable ) Mix_Pause( -1 ); /* stop all sound channels */ } /* ==================================================================== Set general volume of sounds. 0 - 127 ==================================================================== */ void sound_volume( int level ) { if ( !audio_ok ) return; if ( level < 0 ) level = 0; if ( level > 127 ) level = 127; Mix_Volume( -1, level ); /* all sound channels */ } /* ==================================================================== Play a chunk. ==================================================================== */ void sound_play( Sound_Chunk *chunk ) { if ( !audio_ok ) return; if ( !sound_enabled ) return; /* use first free sound channel and play sound one time */ Mix_PlayChannel( -1, (Mix_Chunk*)chunk, 0 ); } /* ==================================================================== Music stuff ==================================================================== */ /* ==================================================================== Set general volume of sounds. 0 - 127 ==================================================================== */ void music_volume( int level ) { /* not implemented */ } #endif lmarbles-1.0.8/src/audio.h0000644000175000017500000000424307523732270012315 00000000000000/*************************************************************************** sound.h - description ------------------- begin : Sun Jul 29 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef __AUDIO_H #define __AUDIO_H #ifdef SOUND /* ==================================================================== Wrapper for the SDL_mixer functions. ==================================================================== */ /* ==================================================================== Initiate/close audio ==================================================================== */ int audio_open(); void audio_close(); /* ==================================================================== Sound chunk ==================================================================== */ typedef Mix_Chunk Sound_Chunk; Sound_Chunk* sound_chunk_load( char *file_name ); void sound_chunk_free( Sound_Chunk **chunk ); /* ==================================================================== Sound stuff ==================================================================== */ void sound_enable( int enable ); void sound_volume( int level /*0 - 127*/ ); void sound_play( Sound_Chunk *chunk ); /* ==================================================================== Music stuff ==================================================================== */ void music_volume( int level ); #endif #endif lmarbles-1.0.8/src/dynlist.c0000644000175000017500000001411007206540570012665 00000000000000/*************************************************************************** dynlist.c - description ------------------- begin : Sat Apr 8 2000 copyright : (C) 2000 by email : ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "dynlist.h" #include #include #include /* initialize list */ void DL_Ini(DLst *dlst) { dlst->cntr = 0; dlst->hd.p = dlst->tl.n = 0; dlst->hd.n = &dlst->tl; dlst->tl.p = &dlst->hd; dlst->hd.d = dlst->tl.d = 0; dlst->flgs = DL_NONE; dlst->cb = 0; } /* insert an item at index */ int DL_Ins(DLst *dlst, unsigned int index, void *item) { int i; DL_E *cur = &dlst->hd; DL_E *new_entry; if (index > dlst->cntr) { fprintf(stderr, "ERR: dl_insert: index %i out of range...\n", index); return 1; } if (item == 0) { fprintf(stderr, "ERR: dl_insert: item is NULL...\n"); return 1; } for (i = 0; i < index; i++) cur = cur->n; new_entry = (DL_E*)malloc(sizeof(DL_E)); new_entry->d = item; new_entry->n = cur->n; new_entry->p = cur; cur->n->p = new_entry; cur->n = new_entry; dlst->cntr++; return 0; } /* insert at the end of the list */ int DL_Add(DLst *dlst, void *item) { return DL_Ins(dlst, dlst->cntr, item); } /* delete an entry */ int DL_DelE(DLst *dlst, DL_E *e) { if (e == 0) { fprintf(stderr, "ERR: dl_delete: entry is NULL...\n"); return 1; } if (dlst->cntr == 0) { fprintf(stderr, "ERR: dl_delete: list is empty...\n"); return 1; } if (e == &dlst->hd || e == &dlst->tl) { fprintf(stderr, "ERR: dl_delete: trying to delete hd or tl..\n"); return 1; } e->p->n = e->n; e->n->p = e->p; dlst->cntr--; if (dlst->flgs & DL_AUTODEL) { if (dlst->flgs & DL_NOCB) free(e->d); else { if (dlst->cb == 0) { fprintf(stderr, "ERR: dl_delete: no destroy callback installed...\n"); free(e); return 1; } (dlst->cb)(e->d); } } free(e); return 0; } /* delete entry containing this item */ int DL_DelP(DLst *dlst, void *item) { int i; DL_E *cur = &dlst->hd; if (item == 0) { fprintf(stderr, "ERR: dl_delete: item is NULL...\n"); return 1; } if (dlst->cntr == 0) { fprintf(stderr, "ERR: dl_delete: list is empty...\n"); return 1; } for (i = 0; i <= dlst->cntr; i++) if (cur->n != &dlst->tl) { cur = cur->n; if (cur->d == item) break; } else { fprintf(stderr, "ERR: dl_delete: list does not contain item 0x%x...\n", (int)item); return 1; } cur->n->p = cur->p; cur->p->n = cur->n; dlst->cntr--; cur->n = cur->p = 0; if (dlst->flgs & DL_AUTODEL) { if (dlst->flgs & DL_NOCB) free(cur->d); else { if (dlst->cb == 0) { fprintf(stderr, "ERR: dl_delete: no destroy callback installed...\n"); free(cur); return 1; } (dlst->cb)(cur->d); } } free(cur); return 0; } /* delete item at index */ int DL_Del(DLst *dlst, unsigned int index) { int i; DL_E *cur = &dlst->hd; if (index >= dlst->cntr) { fprintf(stderr, "ERR: dl_delete: index %i out of range...\n", index); return 1; } if (dlst->cntr == 0) { fprintf(stderr, "ERR: dl_delete: list is empty...\n"); return 1; } for (i = 0; i <= index; i++) cur = cur->n; cur->n->p = cur->p; cur->p->n = cur->n; dlst->cntr--; cur->n = cur->p = 0; if (dlst->flgs & DL_AUTODEL) { if (dlst->flgs & DL_NOCB) free(cur->d); else { if (dlst->cb == 0) { fprintf(stderr, "ERR: dl_delete: no destroy callback installed...\n"); free(cur); return 1; } (dlst->cb)(cur->d); } } free(cur); return 0; } /* get the item with index 'index' */ void* DL_Get(DLst *dlst, int index) { unsigned int i; DL_E *cur = &dlst->hd; if (index >= dlst->cntr) { fprintf(stderr, "ERR: dl_get: index %i out of range...\n", index); return 0; } for (i = 0; i <= (unsigned)index; i++) cur = cur->n; return cur->d; } /* get the current entry from a pointer */ DL_E *DL_GetE(DLst *dlst, void *item) { int i; DL_E *cur = &dlst->hd; if (item == 0) { fprintf(stderr, "ERR: DL_GetE: item is NULL...\n"); return 0; } if (dlst->cntr == 0) { fprintf(stderr, "ERR: DL_GetE: list is empty...\n"); return 0; } for (i = 0; i <= dlst->cntr; i++) if (cur->n != &dlst->tl) { cur = cur->n; if (cur->d == item) break; } else { fprintf(stderr, "ERR: DL_GetE: list does not contain item 0x%x...\n", (int)item); return 0; } return cur; } /* clear all entries of list */ void DL_Clr(DLst *dlst) { DL_E *cur = dlst->hd.n; DL_E *n; while (cur != &dlst->tl) { n = cur->n; DL_DelE(dlst, cur); cur = n; } } lmarbles-1.0.8/src/dynlist.h0000644000175000017500000000350707206540570012702 00000000000000/*************************************************************************** dynlist.h - description ------------------- begin : Sat Apr 8 2000 copyright : (C) 2000 by email : ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef DYNLIST_H #define DYNLIST_H #ifdef __cplusplus extern "C" { #endif //dl flags #define DL_NONE (0) #define DL_AUTODEL (1L<<0) #define DL_NOCB (1L<<1) typedef struct _DL_E { struct _DL_E *n; struct _DL_E *p; void *d; } DL_E; typedef struct { unsigned int flgs; unsigned int cntr; //don't edit DL_E hd; //don't edit DL_E tl; //don't edit void (*cb)(void*); } DLst; void DL_Ini(DLst *dlst); int DL_Ins(DLst *dlst, unsigned int i, void *item); //insert item int DL_Add(DLst *dlst, void *item); //insert at the end int DL_DelE(DLst *dlst, DL_E *e); int DL_DelP(DLst *dlst, void *item); int DL_Del(DLst *dlst, unsigned int i); void* DL_Get(DLst *dlst, int i); DL_E *DL_GetE(DLst *dlst, void *item); void DL_Clr(DLst *dlst); //clear full list #ifdef __cplusplus }; #endif #endif lmarbles-1.0.8/NEWS0000644000175000017500000000000007426016447010741 00000000000000lmarbles-1.0.8/TODO0000644000175000017500000000002710061602205010721 00000000000000mr.bones's suggestions lmarbles-1.0.8/LMarbles.prj0000644000175000017500000000445307570172321012472 00000000000000# Anjuta Version 0.1.8 Compatibility Level: 1 An Atomix-like puzzle game. props.file.type=project anjuta.version=0.1.8 anjuta.compatibility.level=1 project.name=LMarbles project.type=GENERIC project.target.type=EXECUTABLE project.version=1.0 project.author=Michael Speck project.source.target=lmarbles project.has.gettext=0 project.programming.language=C project.menu.entry=Marbles Version 0.1 project.menu.group=Applications project.menu.comment=Marbles Version 0.1 project.menu.icon=marbles_icon.(null) project.menu.need.terminal=0 project.configure.options= anjuta.program.arguments= project.config.disable.overwriting=0 0 0 0 0 0 0 0 0 project.config.extra.modules.before= project.config.extra.modules.after= module.incude.name=include module.incude.type= module.incude.expanded=0 module.incude.files= module.source.name=src module.source.type= module.source.expanded=0 module.source.files=\ dynlist.c dynlist.h sndsrv.c sndsrv.h menu.h menu.c sdl.c \ sdl.h cfg.h cfg.c levels.h levels.c game.h game.c timer.h timer.c \ profile.h profile.c file.h file.c \ main.c module.pixmap.name=pixmaps module.pixmap.type= module.pixmap.expanded=0 module.pixmap.files= module.data.name=data module.data.type= module.data.expanded=0 module.data.files= module.help.name=help module.help.type= module.help.expanded=0 module.help.files= module.doc.name=doc module.doc.type= module.doc.expanded=0 module.doc.files= module.po.expanded=0 module.po.files= compiler.options.supports= compiler.options.include.paths= compiler.options.library.paths= compiler.options.libraries= compiler.options.libraries.selected= compiler.options.defines= compiler.options.warning.buttons=0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 compiler.options.optimize.buttons=0 1 0 0 compiler.options.other.buttons=1 0 compiler.options.other.c.flags= compiler.options.other.l.flags= compiler.options.other.l.libs= project.source.paths= lmarbles-1.0.8/depcomp0000744000175000017500000003554510241641266011633 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2004-05-31.23 # Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit 0 ;; -v | --v*) echo "depcomp $scriptversion" exit 0 ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # Dependencies are output in .lo.d with libtool 1.4. # With libtool 1.5 they are output both in $dir.libs/$base.o.d # and in $dir.libs/$base.o.d and $dir$base.o.d. We process the # latter, because the former will be cleaned when $dir.libs is # erased. tmpdepfile1="$dir.libs/$base.lo.d" tmpdepfile2="$dir$base.o.d" tmpdepfile3="$dir.libs/$base.d" "$@" -Wc,-MD else tmpdepfile1="$dir$base.o.d" tmpdepfile2="$dir$base.d" tmpdepfile3="$dir$base.d" "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" elif test -f "$tmpdepfile2"; then tmpdepfile="$tmpdepfile2" else tmpdepfile="$tmpdepfile3" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: lmarbles-1.0.8/aclocal.m40000644000175000017500000007551511271377332012125 00000000000000# generated automatically by aclocal 1.9.6 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. # Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.9.6])]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 7 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE]) AC_SUBST([$1_FALSE]) if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH]) ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 3 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 12 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.58])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl ]) ]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $1 | $1:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"$am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. # # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories # created by `make install' are always world readable, even if the # installer happens to have an overly restrictive umask (e.g. 077). # This was a mistake. There are at least two reasons why we must not # use `-m 0755': # - it causes special bits like SGID to be ignored, # - it may be too restrictive (some setups expect 775 directories). # # Do not use -m 0755 and let people choose whatever they expect by # setting umask. # # We cannot accept any implementation of `mkdir' that recognizes `-p'. # Some implementations (such as Solaris 8's) are not thread-safe: if a # parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' # concurrently, both version can detect that a/ is missing, but only # one can create it and the other will error out. Consequently we # restrict ourselves to GNU make (using the --version option ensures # this.) AC_DEFUN([AM_PROG_MKDIR_P], [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi AC_SUBST([mkdir_p])]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([acinclude.m4]) lmarbles-1.0.8/README0000644000175000017500000000523410063254275011132 00000000000000 LMarbles an Atomix-like game by Michael Speck ******************** I. Requirements II. Installation III. Manual IV. Feedback ******************** ******************** I. Requirements ******************** LMarbles runs in X and requires SDL and SDL_mixer. (both any version) ******************** II. Installation ******************** Enter your favorite shell and type in the following stuff (in the directory you extracted the LBreakout source) > ./configure [--disable-sound] [--disable-install] [--enable-ascii] [--localstatedir=HIDIR] --disable-sound: no sound --disable-install: no installation; play from source directory --enable-asci: for big-endian machines --localstatedir: install global highscores to this directory REPLACES --with-profile-path TO COMPLY WITH AUTOCONF; THE DEFAULT LOCATION NOW DEPENDS ON YOUR DISTRIBUTION: PREVIOUSLY IT WAS /var/lib/games. USE --localstatedir=/var/lib/games FOR EXISTING HIGHSCORES. > make > su (become root) > make install (if install wasn't disabled) > exit (become user again) > lmarbles Building on Win32: 1) Install the following win32 tools: MinGW MSYS Inno Setup 2 2) Install the following win32 libaries: SDL (you might need to edit sdl-config) SDL_mixer 3) From the build root, create win32dll directory and copy the following win32 dlls to it: SDL.dll SDL_mixer.dll msvcrt.dll (freely available from Microsoft) 4) configure will need to find SDL.dll. You can either register SDL.dll or simply copy it to the root build directory. 5) Setup environment. To get things to compile, I setup the following environment variables: SDL_CONFIG - fully qualified path to sdl-config CFLAGS - tell build process where to find include files LDFLAGS - tell build process where to find libraries PATH - ensure that Inno Setup 2 iscc is in the PATH 6) Do a full build by issueing the following commands: configure --disable-install make 7) Create a win32 installer by issueing the following command: make win32_installer You'll find lmarbles--win32.exe in the build directory. It is a standalone installer for marbles. ******************** III. Manual ******************** For more information about the game see src/manual/manual.html. ******************** IV. Feedback ******************** Please visit http://lgames.sf.net if you have any suggestions or problems. lmarbles-1.0.8/configure0000755000175000017500000062652711271377335012204 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="Makefile.am" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP GREP EGREP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB SDL_CONFIG SDL_CFLAGS SDL_LIBS sound_flag mixer_flag ascii_flag inst_flag prf_flag inst_dir prf_dir win32_deps arch_flag win32_inst_script appname LIBOBJS LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-sdltest Do not try to compile and run a test SDL program --disable-sound Disables sound --enable-ascii Enables 'save as ascii' option (for big-endian) --disable-install No installation. Played from the source directory. Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-sdl-prefix=PFX Prefix where SDL is installed (optional) --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional) Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6; } if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6; } if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { echo "$as_me:$LINENO: checking target system type" >&5 echo $ECHO_N "checking target system type... $ECHO_C" >&6; } if test "${ac_cv_target+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_target" >&5 echo "${ECHO_T}$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 echo "$as_me: error: invalid value of canonical target" >&2;} { (exit 1); exit 1; }; };; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' set x $ac_cv_target shift target_cpu=$1 target_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: target_os=$* IFS=$ac_save_IFS case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- cat >>confdefs.h <<\_ACEOF #define _GNU_SOURCE 1 _ACEOF ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } if test -z "$ac_file"; then echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { echo "$as_me:$LINENO: checking for AIX" >&5 echo $ECHO_N "checking for AIX... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef _AIX yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define _ALL_SOURCE 1 _ACEOF else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi rm -f conftest* { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "${ac_cv_header_minix_config_h+set}" = set; then { echo "$as_me:$LINENO: checking for minix/config.h" >&5 echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6; } if test "${ac_cv_header_minix_config_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking minix/config.h usability" >&5 echo $ECHO_N "checking minix/config.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking minix/config.h presence" >&5 echo $ECHO_N "checking minix/config.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for minix/config.h" >&5 echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6; } if test "${ac_cv_header_minix_config_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_minix_config_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6; } fi if test $ac_cv_header_minix_config_h = yes; then MINIX=yes else MINIX= fi if test "$MINIX" = yes; then cat >>confdefs.h <<\_ACEOF #define _POSIX_SOURCE 1 _ACEOF cat >>confdefs.h <<\_ACEOF #define _POSIX_1_SOURCE 2 _ACEOF cat >>confdefs.h <<\_ACEOF #define _MINIX 1 _ACEOF fi { echo "$as_me:$LINENO: checking whether it is safe to define __EXTENSIONS__" >&5 echo $ECHO_N "checking whether it is safe to define __EXTENSIONS__... $ECHO_C" >&6; } if test "${ac_cv_safe_to_define___extensions__+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_safe_to_define___extensions__=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_safe_to_define___extensions__" >&5 echo "${ECHO_T}$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && cat >>confdefs.h <<\_ACEOF #define __EXTENSIONS__ 1 _ACEOF cat >>confdefs.h <<\_ACEOF #define _POSIX_PTHREAD_SEMANTICS 1 _ACEOF cat >>confdefs.h <<\_ACEOF #define _TANDEM_SOURCE 1 _ACEOF ac_config_headers="$ac_config_headers config.h" am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm -f conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi { echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=lmarbles VERSION=1.0.8 cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' depcc="$CC" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi { echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6; } if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { echo "$as_me:$LINENO: checking for main in -lm" >&5 echo $ECHO_N "checking for main in -lm... $ECHO_C" >&6; } if test "${ac_cv_lib_m_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_m_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_main=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5 echo "${ECHO_T}$ac_cv_lib_m_main" >&6; } if test $ac_cv_lib_m_main = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBM 1 _ACEOF LIBS="-lm $LIBS" else { { echo "$as_me:$LINENO: error: lib math is needed" >&5 echo "$as_me: error: lib math is needed" >&2;} { (exit 1); exit 1; }; } fi # Check whether --with-sdl-prefix was given. if test "${with_sdl_prefix+set}" = set; then withval=$with_sdl_prefix; sdl_prefix="$withval" else sdl_prefix="" fi # Check whether --with-sdl-exec-prefix was given. if test "${with_sdl_exec_prefix+set}" = set; then withval=$with_sdl_exec_prefix; sdl_exec_prefix="$withval" else sdl_exec_prefix="" fi # Check whether --enable-sdltest was given. if test "${enable_sdltest+set}" = set; then enableval=$enable_sdltest; else enable_sdltest=yes fi if test x$sdl_exec_prefix != x ; then sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix" if test x${SDL_CONFIG+set} != xset ; then SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config fi fi if test x$sdl_prefix != x ; then sdl_args="$sdl_args --prefix=$sdl_prefix" if test x${SDL_CONFIG+set} != xset ; then SDL_CONFIG=$sdl_prefix/bin/sdl-config fi fi PATH="$prefix/bin:$prefix/usr/bin:$PATH" # Extract the first word of "sdl-config", so it can be a program name with args. set dummy sdl-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_SDL_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $SDL_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_SDL_CONFIG="$SDL_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_SDL_CONFIG="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_SDL_CONFIG" && ac_cv_path_SDL_CONFIG="no" ;; esac fi SDL_CONFIG=$ac_cv_path_SDL_CONFIG if test -n "$SDL_CONFIG"; then { echo "$as_me:$LINENO: result: $SDL_CONFIG" >&5 echo "${ECHO_T}$SDL_CONFIG" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi min_sdl_version=1.0.0 { echo "$as_me:$LINENO: checking for SDL - version >= $min_sdl_version" >&5 echo $ECHO_N "checking for SDL - version >= $min_sdl_version... $ECHO_C" >&6; } no_sdl="" if test "$SDL_CONFIG" = "no" ; then no_sdl=yes else SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags` SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs` sdl_major_version=`$SDL_CONFIG $sdl_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_sdltest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" rm -f conf.sdltest if test "$cross_compiling" = yes; then echo $ac_n "cross compiling; assumed OK... $ac_c" else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include "SDL.h" char* my_strdup (char *str) { char *new_str; if (str) { new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); strcpy (new_str, str); } else new_str = NULL; return new_str; } int main (int argc, char *argv[]) { int major, minor, micro; char *tmp_version; /* This hangs on some systems (?) system ("touch conf.sdltest"); */ { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = my_strdup("$min_sdl_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_sdl_version"); exit(1); } if (($sdl_major_version > major) || (($sdl_major_version == major) && ($sdl_minor_version > minor)) || (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) { return 0; } else { printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); printf("*** best to upgrade to the required version.\n"); printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); printf("*** to point to the correct copy of sdl-config, and remove the file\n"); printf("*** config.cache before re-running configure\n"); return 1; } } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) no_sdl=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_sdl" = x ; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } : else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } if test "$SDL_CONFIG" = "no" ; then echo "*** The sdl-config script installed by SDL could not be found" echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the SDL_CONFIG environment variable to the" echo "*** full path to sdl-config." else if test -f conf.sdltest ; then : else echo "*** Could not run SDL test program, checking why..." CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include "SDL.h" int main(int argc, char *argv[]) { return 0; } #undef main #define main K_and_R_C_main int main () { return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding SDL or finding the wrong" echo "*** version of SDL. If it is not finding SDL, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means SDL was incorrectly installed" echo "*** or that you have moved SDL since it was installed. In the latter case, you" echo "*** may want to edit the sdl-config script: $SDL_CONFIG" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi SDL_CFLAGS="" SDL_LIBS="" { { echo "$as_me:$LINENO: error: lib SDL is needed" >&5 echo "$as_me: error: lib SDL is needed" >&2;} { (exit 1); exit 1; }; } fi rm -f conf.sdltest CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" # Check whether --with-sdl-prefix was given. if test "${with_sdl_prefix+set}" = set; then withval=$with_sdl_prefix; sdl_prefix="$withval" else sdl_prefix="" fi # Check whether --with-sdl-exec-prefix was given. if test "${with_sdl_exec_prefix+set}" = set; then withval=$with_sdl_exec_prefix; sdl_exec_prefix="$withval" else sdl_exec_prefix="" fi # Check whether --enable-sdltest was given. if test "${enable_sdltest+set}" = set; then enableval=$enable_sdltest; else enable_sdltest=yes fi if test x$sdl_exec_prefix != x ; then sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix" if test x${SDL_CONFIG+set} != xset ; then SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config fi fi if test x$sdl_prefix != x ; then sdl_args="$sdl_args --prefix=$sdl_prefix" if test x${SDL_CONFIG+set} != xset ; then SDL_CONFIG=$sdl_prefix/bin/sdl-config fi fi PATH="$prefix/bin:$prefix/usr/bin:$PATH" # Extract the first word of "sdl-config", so it can be a program name with args. set dummy sdl-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_SDL_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $SDL_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_SDL_CONFIG="$SDL_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_SDL_CONFIG="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_SDL_CONFIG" && ac_cv_path_SDL_CONFIG="no" ;; esac fi SDL_CONFIG=$ac_cv_path_SDL_CONFIG if test -n "$SDL_CONFIG"; then { echo "$as_me:$LINENO: result: $SDL_CONFIG" >&5 echo "${ECHO_T}$SDL_CONFIG" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi min_sdl_version=1.1.5 { echo "$as_me:$LINENO: checking for SDL - version >= $min_sdl_version" >&5 echo $ECHO_N "checking for SDL - version >= $min_sdl_version... $ECHO_C" >&6; } no_sdl="" if test "$SDL_CONFIG" = "no" ; then no_sdl=yes else SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags` SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs` sdl_major_version=`$SDL_CONFIG $sdl_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_sdltest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" rm -f conf.sdltest if test "$cross_compiling" = yes; then echo $ac_n "cross compiling; assumed OK... $ac_c" else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include "SDL.h" char* my_strdup (char *str) { char *new_str; if (str) { new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); strcpy (new_str, str); } else new_str = NULL; return new_str; } int main (int argc, char *argv[]) { int major, minor, micro; char *tmp_version; /* This hangs on some systems (?) system ("touch conf.sdltest"); */ { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = my_strdup("$min_sdl_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_sdl_version"); exit(1); } if (($sdl_major_version > major) || (($sdl_major_version == major) && ($sdl_minor_version > minor)) || (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) { return 0; } else { printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); printf("*** best to upgrade to the required version.\n"); printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); printf("*** to point to the correct copy of sdl-config, and remove the file\n"); printf("*** config.cache before re-running configure\n"); return 1; } } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) no_sdl=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_sdl" = x ; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } CFLAGS="$CFLAGS -DSDL_1_1_5" else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } if test "$SDL_CONFIG" = "no" ; then echo "*** The sdl-config script installed by SDL could not be found" echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the SDL_CONFIG environment variable to the" echo "*** full path to sdl-config." else if test -f conf.sdltest ; then : else echo "*** Could not run SDL test program, checking why..." CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include "SDL.h" int main(int argc, char *argv[]) { return 0; } #undef main #define main K_and_R_C_main int main () { return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding SDL or finding the wrong" echo "*** version of SDL. If it is not finding SDL, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means SDL was incorrectly installed" echo "*** or that you have moved SDL since it was installed. In the latter case, you" echo "*** may want to edit the sdl-config script: $SDL_CONFIG" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi SDL_CFLAGS="" SDL_LIBS="" : fi rm -f conf.sdltest sound_flag="-DSOUND" mixer_flag="-lSDL_mixer" # Check whether --enable-sound was given. if test "${enable_sound+set}" = set; then enableval=$enable_sound; sound_flag=""; mixer_flag="" fi { echo "$as_me:$LINENO: checking for main in -lSDL_mixer" >&5 echo $ECHO_N "checking for main in -lSDL_mixer... $ECHO_C" >&6; } if test "${ac_cv_lib_SDL_mixer_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lSDL_mixer $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_SDL_mixer_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_SDL_mixer_main=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_SDL_mixer_main" >&5 echo "${ECHO_T}$ac_cv_lib_SDL_mixer_main" >&6; } if test $ac_cv_lib_SDL_mixer_main = yes; then { echo "$as_me:$LINENO: result: \"SDL_Mixer found\"" >&5 echo "${ECHO_T}\"SDL_Mixer found\"" >&6; } else { echo "$as_me:$LINENO: result: \"SDL_Mixer NOT found: Audio disabled\"" >&5 echo "${ECHO_T}\"SDL_Mixer NOT found: Audio disabled\"" >&6; }; sound_flag=""; mixer_flag="" fi ascii_flag="" # Check whether --enable-ascii was given. if test "${enable_ascii+set}" = set; then enableval=$enable_ascii; ascii_flag="-DASCII" fi inst_dir="$datadir/lmarbles" prf_dir=$localstatedir # Check whether --enable-install was given. if test "${enable_install+set}" = set; then enableval=$enable_install; inst_dir="." prf_dir="." fi inst_flag="-DSRC_DIR=\\\"$inst_dir\\\"" prf_flag="-DPRF_DIR=\\\"$prf_dir\\\"" case "$host" in *-mingw32) win32="yes" win32_inst_script="`pwd -W`/installer.iss" arch_flag="-march=i586" win32_deps="lmarblesres.o" ;; *) win32="no" win32_inst_script="" arch_flag="" win32_deps="" ;; esac if test "x$win32" = xyes; then for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done fi appname="LMarbles" ac_config_files="$ac_config_files Makefile src/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim build!$build$ac_delim build_cpu!$build_cpu$ac_delim build_vendor!$build_vendor$ac_delim build_os!$build_os$ac_delim host!$host$ac_delim host_cpu!$host_cpu$ac_delim host_vendor!$host_vendor$ac_delim host_os!$host_os$ac_delim target!$target$ac_delim target_cpu!$target_cpu$ac_delim target_vendor!$target_vendor$ac_delim target_os!$target_os$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim CPP!$CPP$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim CYGPATH_W!$CYGPATH_W$ac_delim PACKAGE!$PACKAGE$ac_delim VERSION!$VERSION$ac_delim ACLOCAL!$ACLOCAL$ac_delim AUTOCONF!$AUTOCONF$ac_delim AUTOMAKE!$AUTOMAKE$ac_delim AUTOHEADER!$AUTOHEADER$ac_delim MAKEINFO!$MAKEINFO$ac_delim install_sh!$install_sh$ac_delim STRIP!$STRIP$ac_delim INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim mkdir_p!$mkdir_p$ac_delim AWK!$AWK$ac_delim SET_MAKE!$SET_MAKE$ac_delim am__leading_dot!$am__leading_dot$ac_delim AMTAR!$AMTAR$ac_delim am__tar!$am__tar$ac_delim am__untar!$am__untar$ac_delim DEPDIR!$DEPDIR$ac_delim am__include!$am__include$ac_delim am__quote!$am__quote$ac_delim AMDEP_TRUE!$AMDEP_TRUE$ac_delim AMDEP_FALSE!$AMDEP_FALSE$ac_delim AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim CCDEPMODE!$CCDEPMODE$ac_delim am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim RANLIB!$RANLIB$ac_delim SDL_CONFIG!$SDL_CONFIG$ac_delim SDL_CFLAGS!$SDL_CFLAGS$ac_delim SDL_LIBS!$SDL_LIBS$ac_delim sound_flag!$sound_flag$ac_delim mixer_flag!$mixer_flag$ac_delim ascii_flag!$ascii_flag$ac_delim inst_flag!$inst_flag$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF CEOF$ac_eof _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF prf_flag!$prf_flag$ac_delim inst_dir!$inst_dir$ac_delim prf_dir!$prf_dir$ac_delim win32_deps!$win32_deps$ac_delim arch_flag!$arch_flag$ac_delim win32_inst_script!$win32_inst_script$ac_delim appname!$appname$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 9; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$ac_file_inputs $ac_f" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input="Generated from "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :H) # # CONFIG_HEADER # _ACEOF # Transform confdefs.h into a sed script `conftest.defines', that # substitutes the proper values into config.h.in to produce config.h. rm -f conftest.defines conftest.tail # First, append a space to every undef/define line, to ease matching. echo 's/$/ /' >conftest.defines # Then, protect against being on the right side of a sed subst, or in # an unquoted here document, in config.status. If some macros were # called several times there might be several #defines for the same # symbol, which is useless. But do not sort them, since the last # AC_DEFINE must be honored. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* # These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where # NAME is the cpp macro being defined, VALUE is the value it is being given. # PARAMS is the parameter list in the macro definition--in most cases, it's # just an empty string. ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' ac_dB='\\)[ (].*,\\1define\\2' ac_dC=' ' ac_dD=' ,' uniq confdefs.h | sed -n ' t rset :rset s/^[ ]*#[ ]*define[ ][ ]*// t ok d :ok s/[\\&,]/\\&/g s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p ' >>conftest.defines # Remove the space that was appended to ease matching. # Then replace #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. # (The regexp can be short, since the line contains either #define or #undef.) echo 's/ $// s,^[ #]*u.*,/* & */,' >>conftest.defines # Break up conftest.defines: ac_max_sed_lines=50 # First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" # Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" # Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" # et cetera. ac_in='$ac_file_inputs' ac_out='"$tmp/out1"' ac_nxt='"$tmp/out2"' while : do # Write a here document: cat >>$CONFIG_STATUS <<_ACEOF # First, check the format of the line: cat >"\$tmp/defines.sed" <<\\CEOF /^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def /^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def b :def _ACEOF sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail grep . conftest.tail >/dev/null || break rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines conftest.tail echo "ac_result=$ac_in" >>$CONFIG_STATUS cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then echo "/* $configure_input */" >"$tmp/config.h" cat "$ac_result" >>"$tmp/config.h" if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else rm -f $ac_file mv "$tmp/config.h" $ac_file fi else echo "/* $configure_input */" cat "$ac_result" fi rm -f "$tmp/out12" # Compute $ac_file's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $ac_file | $ac_file:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $ac_file" >`$as_dirname -- $ac_file || $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X$ac_file : 'X\(//\)[^/]' \| \ X$ac_file : 'X\(//\)$' \| \ X$ac_file : 'X\(/\)' \| . 2>/dev/null || echo X$ac_file | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi lmarbles-1.0.8/lmarbles.desktop.in0000644000175000017500000000017611271400130014034 00000000000000[Desktop Entry] Name=LMarbles Comment=Atomix-like enhanced puzzle game. Exec=lmarbles Icon= Type=Application Categories=Game; lmarbles-1.0.8/configure.in0000644000175000017500000000412311271377326012564 00000000000000dnl Process this file with autoconf to produce a configure script. AC_INIT(Makefile.am) AC_CANONICAL_TARGET AC_USE_SYSTEM_EXTENSIONS AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE(lmarbles,1.0.8) dnl Checks for programs. AC_PROG_CC AC_PROG_RANLIB AC_EXEEXT AC_CANONICAL_HOST dnl check for libraries AC_CHECK_LIB(m, main,, AC_MSG_ERROR(lib math is needed)) dnl check SDL version AM_PATH_SDL(1.0.0,, AC_MSG_ERROR(lib SDL is needed)) CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" AM_PATH_SDL(1.1.5, CFLAGS="$CFLAGS -DSDL_1_1_5",) dnl check sound sound_flag="-DSOUND" mixer_flag="-lSDL_mixer" AC_ARG_ENABLE( sound, [ --disable-sound Disables sound], sound_flag=""; mixer_flag="") dnl check if SDL_mixer's installed dnl if not: clear sound_flag and mixer_flag AC_CHECK_LIB(SDL_mixer, main, AC_MSG_RESULT("SDL_Mixer found"), AC_MSG_RESULT("SDL_Mixer NOT found: Audio disabled"); sound_flag=""; mixer_flag="") AC_SUBST(sound_flag) AC_SUBST(mixer_flag) dnl check ascii-flag ascii_flag="" AC_ARG_ENABLE( ascii, [ --enable-ascii Enables 'save as ascii' option (for big-endian)], ascii_flag="-DASCII") AC_SUBST(ascii_flag) dnl installation & prefix path inst_dir="$datadir/lmarbles" prf_dir=$localstatedir dnl check if installation was disabled AC_ARG_ENABLE( install, [ --disable-install No installation. Played from the source directory.], inst_dir="." prf_dir=".") inst_flag="-DSRC_DIR=\\\"$inst_dir\\\"" prf_flag="-DPRF_DIR=\\\"$prf_dir\\\"" AC_SUBST(inst_flag) AC_SUBST(prf_flag) AC_SUBST(inst_dir) AC_SUBST(prf_dir) case "$host" in *-mingw32) win32="yes" win32_inst_script="`pwd -W`/installer.iss" arch_flag="-march=i586" win32_deps="lmarblesres.o" ;; *) win32="no" win32_inst_script="" arch_flag="" win32_deps="" ;; esac AC_SUBST(win32_deps) AC_SUBST(arch_flag) if test "x$win32" = xyes; then AC_PROG_AWK dnl AC_PROG_STRIP dnl AC_PROG_ISCC AC_SUBST(win32_inst_script) fi appname="LMarbles" AC_SUBST(appname) AC_OUTPUT(Makefile src/Makefile) lmarbles-1.0.8/config.guess0000744000175000017500000011315007523016263012565 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. timestamp='2001-09-04' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Written by Per Bothner . # Please send patches to . # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi dummy=dummy-$$ trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int dummy(){}" > $dummy.c ; for c in cc gcc c89 ; do ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; if test $? = 0 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; rm -f $dummy.c $dummy.o $dummy.rel ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # Netbsd (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # Determine the machine/vendor (is the vendor relevant). case "${UNAME_MACHINE}" in amiga) machine=m68k-unknown ;; arm32) machine=arm-unknown ;; atari*) machine=m68k-atari ;; sun3*) machine=m68k-sun ;; mac68k) machine=m68k-apple ;; macppc) machine=powerpc-apple ;; hp3[0-9][05]) machine=m68k-hp ;; ibmrt|romp-ibm) machine=romp-ibm ;; *) machine=${UNAME_MACHINE}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE}" in i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit 0 ;; alpha:OSF1:*:*) if test $UNAME_RELEASE = "V4.0"; then UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` fi # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. cat <$dummy.s .data \$Lformat: .byte 37,100,45,37,120,10,0 # "%d-%x\n" .text .globl main .align 4 .ent main main: .frame \$30,16,\$26,0 ldgp \$29,0(\$27) .prologue 1 .long 0x47e03d80 # implver \$0 lda \$2,-1 .long 0x47e20c21 # amask \$2,\$1 lda \$16,\$Lformat mov \$0,\$17 not \$1,\$18 jsr \$26,printf ldgp \$29,0(\$26) mov 0,\$16 jsr \$26,exit .end main EOF eval $set_cc_for_build $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null if test "$?" = 0 ; then case `./$dummy` in 0-0) UNAME_MACHINE="alpha" ;; 1-0) UNAME_MACHINE="alphaev5" ;; 1-1) UNAME_MACHINE="alphaev56" ;; 1-101) UNAME_MACHINE="alphapca56" ;; 2-303) UNAME_MACHINE="alphaev6" ;; 2-307) UNAME_MACHINE="alphaev67" ;; 2-1307) UNAME_MACHINE="alphaev68" ;; esac fi rm -f $dummy.s $dummy echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit 0 ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit 0;; amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit 0 ;; arc64:OpenBSD:*:*) echo mips64el-unknown-openbsd${UNAME_RELEASE} exit 0 ;; arc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; hkmips:OpenBSD:*:*) echo mips-unknown-openbsd${UNAME_RELEASE} exit 0 ;; pmax:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sgi:OpenBSD:*:*) echo mips-unknown-openbsd${UNAME_RELEASE} exit 0 ;; wgrisc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:OS/390:*:*) echo i370-ibm-openedition exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit 0 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit 0 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit 0 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit 0 ;; sparc*:NetBSD:*) echo `uname -p`-unknown-netbsd${UNAME_RELEASE} exit 0 ;; atari*:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit 0 ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit 0 ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; sun3*:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mac68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme88k:OpenBSD:*:*) echo m88k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit 0 ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit 0 ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD $dummy.c -o $dummy \ && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ && rm -f $dummy.c $dummy && exit 0 rm -f $dummy.c $dummy echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit 0 ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit 0 ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit 0 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit 0 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit 0 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit 0 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit 0 ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit 0 ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit 0 ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 rm -f $dummy.c $dummy echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit 0 ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:*:*) echo rs6000-ibm-aix exit 0 ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit 0 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit 0 ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit 0 ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit 0 ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit 0 ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit 0 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) case "${HPUX_REV}" in 11.[0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; esac ;; esac fi ;; esac if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi rm -f $dummy.c $dummy fi ;; esac echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit 0 ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 rm -f $dummy.c $dummy echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit 0 ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit 0 ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit 0 ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit 0 ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit 0 ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit 0 ;; hppa*:OpenBSD:*:*) echo hppa-unknown-openbsd exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit 0 ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit 0 ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit 0 ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit 0 ;; CRAY*X-MP:*:*:*) echo xmp-cray-unicos exit 0 ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3D:*:*:*) echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY-2:*:*:*) echo cray2-cray-unicos exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit 0 ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit 0 ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i386-pc-interix exit 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit 0 ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; mips:Linux:*:*) case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in big) echo mips-unknown-linux-gnu && exit 0 ;; little) echo mipsel-unknown-linux-gnu && exit 0 ;; esac ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit 0 ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit 0 ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit 0 ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit 0 ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit 0 ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit 0 ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit 0 ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. ld_supported_targets=`cd /; ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit 0 ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit 0 ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit 0 ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build cat >$dummy.c < #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 printf ("%s-pc-linux-gnu\n", argv[1]); # else printf ("%s-pc-linux-gnulibc1\n", argv[1]); # endif # else printf ("%s-pc-linux-gnulibc1\n", argv[1]); # endif #else printf ("%s-pc-linux-gnuaout\n", argv[1]); #endif return 0; } EOF $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 rm -f $dummy.c $dummy test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit 0 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit 0 ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit 0 ;; i*86:*:5:[78]*) case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit 0 ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit 0 ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit 0 ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit 0 ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit 0 ;; paragon:*:*:*) echo i860-intel-osf1 exit 0 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit 0 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit 0 ;; M68*:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4.3${OS_REL} && exit 0 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4 && exit 0 ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit 0 ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit 0 ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit 0 ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit 0 ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit 0 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit 0 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit 0 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit 0 ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit 0 ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit 0 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit 0 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit 0 ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit 0 ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit 0 ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit 0 ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) echo `uname -p`-apple-darwin${UNAME_RELEASE} exit 0 ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) if test "${UNAME_MACHINE}" = "x86pc"; then UNAME_MACHINE=pc fi echo `uname -p`-${UNAME_MACHINE}-nto-qnx exit 0 ;; *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; NSR-[KW]:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit 0 ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit 0 ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit 0 ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit 0 ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit 0 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit 0 ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit 0 ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit 0 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit 0 ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit 0 ;; *:ITS:*:*) echo pdp10-unknown-its exit 0 ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit 0 ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0 rm -f $dummy.c $dummy # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit 0 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; c34*) echo c34-convex-bsd exit 0 ;; c38*) echo c38-convex-bsd exit 0 ;; c4*) echo c4-convex-bsd exit 0 ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: lmarbles-1.0.8/install-sh0000744000175000017500000001272007142767061012260 00000000000000#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 lmarbles-1.0.8/lmarbles32.gif0000644000175000017500000000140207522517175012707 00000000000000GIF89a 000 r C!!>>++ #44kkll.. D99yy`` N (( E Y $ 5 \ 3  . A < * ===ggg```???888mmm??>iiiҫqqqwwwȓFEE$#!hhhyyy^^^>==" >>>oookkkFFF+*(:98GGG654(&$#"!! ! ,    !"#$%&'()*+,-.//0123Ʌ456789:;Ն<=>?@߆$$ԽAB$CDEAdФJ2)(AJ0i (EJЩTZ "e *V@"*Vͪu+.!YhEJ/$f¥ ٯ`ÊL1cȔ1C0bƐ-k,ڴ!gICF6m:&ݵl`ۺ r8rV7oő_;vx\عԆKn_B5:eȘY4դYS6q02N;lmarbles-1.0.8/lmarbles48.gif0000644000175000017500000000135207522517214012714 00000000000000GIF89a00 gEE99 0PP\\ ((ss " HVVVsss765bbbPPP*)(FFF̲# ! ?,00pH,Ȥrl:h@HE@@0VP0]!,v 0P8 kzLo ujyF} ] xI   uGH]  ɮ T{UUYۡ[]_TY^`{egiCyd̠۽pб . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit 0;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | c4x | clipper \ | d10v | d30v | dsp16xx \ | fr30 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | m32r | m68000 | m68k | m88k | mcore \ | mips16 | mips64 | mips64el | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el | mips64vr4300 \ | mips64vr4300el | mips64vr5000 | mips64vr5000el \ | mipsbe | mipseb | mipsel | mipsle | mipstx39 | mipstx39el \ | mipsisa32 \ | mn10200 | mn10300 \ | ns16k | ns32k \ | openrisc \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | s390 | s390x \ | sh | sh[34] | sh[34]eb | shbe | shle \ | sparc | sparc64 | sparclet | sparclite | sparcv9 | sparcv9b \ | stormy16 | strongarm \ | tahoe | thumb | tic80 | tron \ | v850 \ | we32k \ | x86 | xscale \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alphapca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armv*-* \ | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c54x-* \ | clipper-* | cray2-* | cydra-* \ | d10v-* | d30v-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | m32r-* \ | m68000-* | m680[01234]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | mcore-* \ | mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \ | mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* | mipsbe-* | mipseb-* \ | mipsle-* | mipsel-* | mipstx39-* | mipstx39el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | s390-* | s390x-* \ | sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* \ | sparc-* | sparc64-* | sparc86x-* | sparclite-* \ | sparcv9-* | sparcv9b-* | stormy16-* | strongarm-* | sv1-* \ | t3e-* | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \ | v850-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xmp-* | xps100-* | xscale-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | ymp) basic_machine=ymp-cray os=-unicos ;; cray2) basic_machine=cray2-cray os=-unicos ;; [cjt]90) basic_machine=${basic_machine}-cray os=-unicos ;; crds | unos) basic_machine=m68k-crds ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mipsel*-linux*) basic_machine=mipsel-unknown os=-linux-gnu ;; mips*-linux*) basic_machine=mips-unknown os=-linux-gnu ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; mmix*) basic_machine=mmix-knuth os=-mmixware ;; monitor) basic_machine=m68k-rom68k os=-coff ;; msdos) basic_machine=i386-pc os=-msdos ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pentium | p5 | k5 | k6 | nexgen) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon) basic_machine=i686-pc ;; pentiumii | pentium2) basic_machine=i686-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sparclite-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=t3e-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; tower | tower-32) basic_machine=m68k-ncr ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; windows32) basic_machine=i386-pc os=-windows32-msvcrt ;; xmp) basic_machine=xmp-cray os=-unicos ;; xps | xps100) basic_machine=xps100-honeywell ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; mips) if [ x$os = x-linux-gnu ]; then basic_machine=mips-unknown else basic_machine=mips-mips fi ;; romp) basic_machine=romp-ibm ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh3 | sh4 | sh3eb | sh4eb) basic_machine=sh-unknown ;; sparc | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; c4x*) basic_machine=c4x-none os=-coff ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto*) os=-nto-qnx ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-ibm) os=-aix ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -ptx*) vendor=sequent ;; -vxsim* | -vxworks*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: lmarbles-1.0.8/missing0000744000175000017500000001420207142767061011650 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997 Free Software Foundation, Inc. # Franc,ois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing - GNU libit 0.0" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER([^):]*:\([^)]*\)).*/\1/p' configure.in` if test -z "$files"; then files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^):]*\)).*/\1/p' configure.in` test -z "$files" || files="$files.in" else files=`echo "$files" | sed -e 's/:/ /g'` fi test -z "$files" && files="config.h.in" touch $files ;; automake) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print \ | sed 's/^\(.*\).am$/touch \1.in/' \ | sh ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 lmarbles-1.0.8/mkinstalldirs0000744000175000017500000000133607142767061013063 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.1.1.1 2000/08/05 10:36:33 michael Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" 1>&2 mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here lmarbles-1.0.8/Makefile.am0000644000175000017500000000612511271400004012267 00000000000000SUBDIRS = src EXTRA_DIST = lmarbles.spec AUTHORS COPYING ChangeLog INSTALL README \ README-SDL.txt TODO LMarbles.prj lmarbles32.gif lmarbles48.gif \ lmarbles.desktop.in desktopdir = $(datadir)/applications desktop_DATA = lmarbles.desktop icondir = $(datadir)/icons icon_DATA = lmarbles48.gif AUTOMAKE_OPTIONS = foreign WIN32_TEXT = AUTHORS COPYING ChangeLog INSTALL README README-SDL.txt TODO marbles.spec WIN32_LOCAL_DLL = SDL.dll SDL_mixer.dll WIN32_SYS_DLL = msvcrt.dll lmarbles.desktop: @sed -e "s+Icon=+Icon=$(datadir)/icons/lmarbles48.gif+" \ < lmarbles.desktop.in > lmarbles.desktop win32text: $(WIN32_TEXT) @echo Converting text files for win32 installer @-rm -rf ./win32text @mkdir ./win32text @for textfile in $(WIN32_TEXT); do \ $(AWK) '{printf "%s\r\n",$$0}' $$textfile > ./win32text/$$textfile ; \ done win32-installer-script: @win32_inst_script@ @win32_inst_script@: win32text @echo Generating win32 installer script @echo "[Setup]" > $@ @echo "AppName=@appname@" >> $@ @echo "AppVerName=@appname@ $(VERSION)" >> $@ @echo "AppPublisher=Michael Speck" >> $@ @echo "AppPublisherURL=http://lgames.sourceforge.net/index.php?project=@appname@" >> $@ @echo "AppSupportURL=http://lgames.sourceforge.net/index.php?project=@appname@" >> $@ @echo "AppUpdatesURL=http://lgames.sourceforge.net/index.php?project=@appname@" >> $@ @echo "DefaultDirName={pf}\\$(PACKAGE)" >> $@ @echo "DefaultGroupName=@appname@" >> $@ @echo "OutputDir=." >> $@ @echo "Uninstallable=yes" >> $@ @echo "AlwaysCreateUninstallIcon=yes" >> $@ @echo "AdminPrivilegesRequired=1" >> $@ @echo "[Tasks]" >> $@ @echo "Name: \"desktopicon\"; Description: \"Create a &desktop icon\"; GroupDescription: \"Additional icons:\"" >> $@ @echo "[Files]" >> $@ @(cd win32dlls; for file in $(WIN32_LOCAL_DLL); do \ echo "Source: \"`pwd -W`\\$$file\"; DestDir: \"{app}\"; CopyMode: alwaysoverwrite" >> $@; \ done) @(cd win32dlls; for file in $(WIN32_SYS_DLL); do \ echo "Source: \"`pwd -W`\\$$file\"; DestDir: \"{sys}\"; CopyMode: alwaysskipifsameorolder; Flags: restartreplace uninsneveruninstall" >> $@; \ done) @echo "Source: \"win32text\\*.*\"; DestDir: \"{app}\"; CopyMode: alwaysoverwrite" >> $@; @list='$(SUBDIRS)'; for subdir in $$list; do \ (cd $$subdir \ && $(MAKE) $(AM_MAKEFLAGS) win32-install-script); \ done @echo "[Icons]" >> $@ @echo "Name: \"{group}\\@appname@\"; Filename: \"{app}\\$(PACKAGE)$(EXEEXT)\"; WorkingDir: \"{app}\"" >> $@ @echo "Name: \"{group}\\@appname@ Manual\"; Filename: \"{app}\\manual\\manual.html\"" >> $@ @echo "Name: \"{userdesktop}\\@appname@\"; Filename: \"{app}\\$(PACKAGE)$(EXEEXT)\"; WorkingDir: \"{app}\"; Tasks: \"desktopicon\"" >> $@ @echo "[Run]" >> $@ @echo "Filename: \"{app}\\$(PACKAGE)$(EXEEXT)\"; Description: \"Launch @appname@\"; Flags: nowait postinstall skipifsilent" >> $@ @$(AWK) '{printf "%s\r\n",$$0}' $@ > marbles.iss.w32 @mv marbles.iss.w32 $@ win32-installer: win32-installer-script $(ISCC) installer.iss @-rm -rf win32text @mv setup.exe $(PACKAGE)-$(VERSION)-win32.exe @echo Self installer created: $(PACKAGE)-$(VERSION)-win32.exe lmarbles-1.0.8/Makefile.in0000644000175000017500000005673511271400133012317 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ TODO acconfig.h config.guess config.sub depcomp install-sh \ missing mkinstalldirs subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(icondir)" desktopDATA_INSTALL = $(INSTALL_DATA) iconDATA_INSTALL = $(INSTALL_DATA) DATA = $(desktop_DATA) $(icon_DATA) ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ appname = @appname@ arch_flag = @arch_flag@ ascii_flag = @ascii_flag@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ prf_dir = @prf_dir@ prf_flag = @prf_flag@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ win32_deps = @win32_deps@ win32_inst_script = @win32_inst_script@ SUBDIRS = src EXTRA_DIST = lmarbles.spec AUTHORS COPYING ChangeLog INSTALL README \ README-SDL.txt TODO LMarbles.prj lmarbles32.gif lmarbles48.gif \ lmarbles.desktop.in desktopdir = $(datadir)/applications desktop_DATA = lmarbles.desktop icondir = $(datadir)/icons icon_DATA = lmarbles48.gif AUTOMAKE_OPTIONS = foreign WIN32_TEXT = AUTHORS COPYING ChangeLog INSTALL README README-SDL.txt TODO marbles.spec WIN32_LOCAL_DLL = SDL.dll SDL_mixer.dll WIN32_SYS_DLL = msvcrt.dll all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) $(top_srcdir)/acconfig.h cd $(top_srcdir) && $(AUTOHEADER) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 uninstall-info-am: install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) test -z "$(desktopdir)" || $(mkdir_p) "$(DESTDIR)$(desktopdir)" @list='$(desktop_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(desktopDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(desktopdir)/$$f'"; \ $(desktopDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(desktopdir)/$$f"; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(desktopdir)/$$f'"; \ rm -f "$(DESTDIR)$(desktopdir)/$$f"; \ done install-iconDATA: $(icon_DATA) @$(NORMAL_INSTALL) test -z "$(icondir)" || $(mkdir_p) "$(DESTDIR)$(icondir)" @list='$(icon_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(iconDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(icondir)/$$f'"; \ $(iconDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(icondir)/$$f"; \ done uninstall-iconDATA: @$(NORMAL_UNINSTALL) @list='$(icon_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(icondir)/$$f'"; \ rm -f "$(DESTDIR)$(icondir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(icondir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-desktopDATA install-iconDATA install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-desktopDATA uninstall-iconDATA \ uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ check-am clean clean-generic clean-recursive ctags \ ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \ dist-tarZ dist-zip distcheck distclean distclean-generic \ distclean-hdr distclean-recursive distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-desktopDATA install-exec \ install-exec-am install-iconDATA install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-generic mostlyclean-recursive pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-desktopDATA uninstall-iconDATA uninstall-info-am lmarbles.desktop: @sed -e "s+Icon=+Icon=$(datadir)/icons/lmarbles48.gif+" \ < lmarbles.desktop.in > lmarbles.desktop win32text: $(WIN32_TEXT) @echo Converting text files for win32 installer @-rm -rf ./win32text @mkdir ./win32text @for textfile in $(WIN32_TEXT); do \ $(AWK) '{printf "%s\r\n",$$0}' $$textfile > ./win32text/$$textfile ; \ done win32-installer-script: @win32_inst_script@ @win32_inst_script@: win32text @echo Generating win32 installer script @echo "[Setup]" > $@ @echo "AppName=@appname@" >> $@ @echo "AppVerName=@appname@ $(VERSION)" >> $@ @echo "AppPublisher=Michael Speck" >> $@ @echo "AppPublisherURL=http://lgames.sourceforge.net/index.php?project=@appname@" >> $@ @echo "AppSupportURL=http://lgames.sourceforge.net/index.php?project=@appname@" >> $@ @echo "AppUpdatesURL=http://lgames.sourceforge.net/index.php?project=@appname@" >> $@ @echo "DefaultDirName={pf}\\$(PACKAGE)" >> $@ @echo "DefaultGroupName=@appname@" >> $@ @echo "OutputDir=." >> $@ @echo "Uninstallable=yes" >> $@ @echo "AlwaysCreateUninstallIcon=yes" >> $@ @echo "AdminPrivilegesRequired=1" >> $@ @echo "[Tasks]" >> $@ @echo "Name: \"desktopicon\"; Description: \"Create a &desktop icon\"; GroupDescription: \"Additional icons:\"" >> $@ @echo "[Files]" >> $@ @(cd win32dlls; for file in $(WIN32_LOCAL_DLL); do \ echo "Source: \"`pwd -W`\\$$file\"; DestDir: \"{app}\"; CopyMode: alwaysoverwrite" >> $@; \ done) @(cd win32dlls; for file in $(WIN32_SYS_DLL); do \ echo "Source: \"`pwd -W`\\$$file\"; DestDir: \"{sys}\"; CopyMode: alwaysskipifsameorolder; Flags: restartreplace uninsneveruninstall" >> $@; \ done) @echo "Source: \"win32text\\*.*\"; DestDir: \"{app}\"; CopyMode: alwaysoverwrite" >> $@; @list='$(SUBDIRS)'; for subdir in $$list; do \ (cd $$subdir \ && $(MAKE) $(AM_MAKEFLAGS) win32-install-script); \ done @echo "[Icons]" >> $@ @echo "Name: \"{group}\\@appname@\"; Filename: \"{app}\\$(PACKAGE)$(EXEEXT)\"; WorkingDir: \"{app}\"" >> $@ @echo "Name: \"{group}\\@appname@ Manual\"; Filename: \"{app}\\manual\\manual.html\"" >> $@ @echo "Name: \"{userdesktop}\\@appname@\"; Filename: \"{app}\\$(PACKAGE)$(EXEEXT)\"; WorkingDir: \"{app}\"; Tasks: \"desktopicon\"" >> $@ @echo "[Run]" >> $@ @echo "Filename: \"{app}\\$(PACKAGE)$(EXEEXT)\"; Description: \"Launch @appname@\"; Flags: nowait postinstall skipifsilent" >> $@ @$(AWK) '{printf "%s\r\n",$$0}' $@ > marbles.iss.w32 @mv marbles.iss.w32 $@ win32-installer: win32-installer-script $(ISCC) installer.iss @-rm -rf win32text @mv setup.exe $(PACKAGE)-$(VERSION)-win32.exe @echo Self installer created: $(PACKAGE)-$(VERSION)-win32.exe # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lmarbles-1.0.8/README-SDL.txt0000644000175000017500000000065107144450761012372 00000000000000 Please distribute this file with the SDL runtime environment: The Simple DirectMedia Layer (SDL for short) is a cross-platfrom library designed to make it easy to write multi-media software, such as games and emulators. The Simple DirectMedia Layer library source code is available from: http://www.libsdl.org/ This library is distributed under the terms of the GNU LGPL license: http://www.gnu.org/copyleft/lesser.html lmarbles-1.0.8/config.h.in0000644000175000017500000000470011271377342012275 00000000000000/* config.h.in. Generated from configure.in by autoheader. */ #undef ENABLE_NLS #undef HAVE_CATGETS #undef HAVE_GETTEXT #undef HAVE_LC_MESSAGES #undef HAVE_STPCPY #undef HAVE_LIBSM #undef PACKAGE_LOCALE_DIR #undef PACKAGE_DOC_DIR #undef PACKAGE_DATA_DIR #undef PACKAGE_PIXMAPS_DIR #undef PACKAGE_HELP_DIR #undef PACKAGE_MENU_DIR #undef PACKAGE_SOURCE_DIR /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `m' library (-lm). */ #undef HAVE_LIBM /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION /* Define to 1 if on AIX 3. System headers sometimes define this. We just want to avoid a redefinition error message. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE /* Enable extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif lmarbles-1.0.8/lmarbles.spec0000644000175000017500000000456407570172526012743 00000000000000Name: lmarbles Version: 1.0.6 Release: 1cl Summary: Atomix-like game of moving marbles in puzzles Summary(pt_BR): Jogo tipo Atomix, de mover bolas de gude em labirintos Summary(es): Atomix-like game of moving marbles in puzzles Group: Games Group(pt_BR): Jogos Group(es): Juegos License: GPL URL: http://lgames.sourceforge.net/%{name}/%{name}.html Source: http://ftp1.sourceforge.net/lgames/%{name}-%{version}.tar.gz Patch: %{name}-prefsdir.patch BuildRoot: %{_tmppath}/%{name}-%{version}-root %description Marbles is very similiar to Atomix and was heavily inspired by it. Goal is to create a more or less complex figure out of single marbles within a time limit to reach the next level. Sounds easy? Well, there is a problem: If a marble starts to move it will not stop until it hits a wall or marble. And to make it even more interesting there are obstacles like arrows, crumbling walls and teleports! %description -l pt_BR O Marbles muito parecido com o jogo Atomix, pois foi inspirado nele. O objetivo criar uma figura de bolas de gude mais ou menos complexa dentro de um limite de tempo. Parece fcil? Bem, h um problema: quando uma bolinha de gude comea a se mover, s pra quando bate em uma parede ou outra bolinha. E para ficar mais interessante, h alguns obstculos como caminhos de mo nica, paredes que desmoronam e teletransporte! %description -l es Marbles is very similiar to Atomix and was heavily inspired by it. Goal is to create a more or less complex figure out of single marbles within a time limit to reach the next level. Sounds easy? Well, there is a problem: If a marble starts to move it will not stop until it hits a wall or marble. And to make it even more interesting there are obstacles like arrows, crumbling walls and teleports! %prep %setup -q %patch %build %configure --datadir=%{_datadir} make %install mkdir -p %{buildroot}/%{_localstatedir}/games %makeinstall DESTDIR=%{buildroot} bindir=%{_prefix}/games %clean rm -rf %{buildroot} %files %defattr(0644,root,root,0755) %doc AUTHORS COPYING README ChangeLog %{name}/manual %attr(2755,root,games) %{_prefix}/games/%{name} %{_datadir}/games/%{name} %attr(0664,root,games) %config %{_localstatedir}/games/%{name}.prfs %changelog * Thu Nov 30 2000 aurlio marinho jargas + marbles-001126-1cl - changed prefs dir - adopted lmarbles-1.0.8/acinclude.m40000644000175000017500000001410710014717374012442 00000000000000# Configure paths for SDL # Sam Lantinga 9/21/99 # stolen from Manish Singh # stolen back from Frank Belew # stolen from Manish Singh # Shamelessly stolen from Owen Taylor dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS dnl AC_DEFUN([AM_PATH_SDL], [dnl dnl Get the cflags and libraries from the sdl-config script dnl AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)], sdl_prefix="$withval", sdl_prefix="") AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)], sdl_exec_prefix="$withval", sdl_exec_prefix="") AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program], , enable_sdltest=yes) if test x$sdl_exec_prefix != x ; then sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix" if test x${SDL_CONFIG+set} != xset ; then SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config fi fi if test x$sdl_prefix != x ; then sdl_args="$sdl_args --prefix=$sdl_prefix" if test x${SDL_CONFIG+set} != xset ; then SDL_CONFIG=$sdl_prefix/bin/sdl-config fi fi AC_REQUIRE([AC_CANONICAL_TARGET]) PATH="$prefix/bin:$prefix/usr/bin:$PATH" AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH]) min_sdl_version=ifelse([$1], ,0.11.0,$1) AC_MSG_CHECKING(for SDL - version >= $min_sdl_version) no_sdl="" if test "$SDL_CONFIG" = "no" ; then no_sdl=yes else SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags` SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs` sdl_major_version=`$SDL_CONFIG $sdl_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_sdltest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" dnl dnl Now check if the installed SDL is sufficiently new. (Also sanity dnl checks the results of sdl-config to some extent dnl rm -f conf.sdltest AC_TRY_RUN([ #include #include #include #include "SDL.h" char* my_strdup (char *str) { char *new_str; if (str) { new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); strcpy (new_str, str); } else new_str = NULL; return new_str; } int main (int argc, char *argv[]) { int major, minor, micro; char *tmp_version; /* This hangs on some systems (?) system ("touch conf.sdltest"); */ { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = my_strdup("$min_sdl_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_sdl_version"); exit(1); } if (($sdl_major_version > major) || (($sdl_major_version == major) && ($sdl_minor_version > minor)) || (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) { return 0; } else { printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); printf("*** best to upgrade to the required version.\n"); printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); printf("*** to point to the correct copy of sdl-config, and remove the file\n"); printf("*** config.cache before re-running configure\n"); return 1; } } ],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_sdl" = x ; then AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$SDL_CONFIG" = "no" ; then echo "*** The sdl-config script installed by SDL could not be found" echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the SDL_CONFIG environment variable to the" echo "*** full path to sdl-config." else if test -f conf.sdltest ; then : else echo "*** Could not run SDL test program, checking why..." CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" AC_TRY_LINK([ #include #include "SDL.h" int main(int argc, char *argv[]) { return 0; } #undef main #define main K_and_R_C_main ], [ return 0; ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding SDL or finding the wrong" echo "*** version of SDL. If it is not finding SDL, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means SDL was incorrectly installed" echo "*** or that you have moved SDL since it was installed. In the latter case, you" echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi SDL_CFLAGS="" SDL_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(SDL_CFLAGS) AC_SUBST(SDL_LIBS) rm -f conf.sdltest ]) lmarbles-1.0.8/AUTHORS0000644000175000017500000000022607525140320011310 00000000000000Michael Speck **** Contributions **** Fix for input bug in Win32, a better installation system and memory leak fixes. - Lee Read lmarbles-1.0.8/INSTALL0000644000175000017500000001547207142767061011316 00000000000000Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Type `make install' to install the programs and any data files and documentation. 4. You can remove the program binaries and object files from the source code directory by typing `make clean'. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. lmarbles-1.0.8/ChangeLog0000644000175000017500000000576511271400522012023 000000000000001.0.8: - added XDG desktop support (09/10/26 MS) - fixed configuration process (09/10/26 MS) - removed -Wall from CC arguments for better portability (06/04/01 PM) 1.0.7: - configure option --with-profile-path has been replaced with autoconf option --localstatedir (04/06/14 M.S.) - data files will be installed to $datadir/lmarbles instead of $datadir/games/lmarbles (04/06/14 M.S.) - replaced strlen with sizeof when building config path (04/06/09 M.S.) - renamed marbles.prfs to lmarbles.prfs in the Makefile (04/06/09 M.S.) - included header for NetBSD (03/09/30 H.F.) 1.0.6: - renamed project to LMarbles (02/11/24 M.S.) - fixed security holes created by improper use of sprintf (02/11/24 M.S.) 1.0.5: - switched to SDL_mixer (02/08/10 L.R.) - bunch of memory leaks fixed (02/08/10 L.R.) - for Win32: (02/08/10 L.R.) - edit bug fixed - installation details added to README - much improved installation system - files are always opened in binary mode - transparency bug fix 1.0.4: - fixed a bug in the sound server that caused Marbles to crash when exiting too fast (01/07/02 M.S.) - fixed a bug that caused Marbles to forget the last used profile (01/07/02 M.S.) - fixed a bug in autoswitch which restarted the level when the figure was completed with the last move (01/07/02 M.S.) - fixed a bug in restart routine that allowed selection of a ghost marble (01/07/02 M.S.) 1.0.3: - score is now properly modified (02/06/24 M.S.) - fixed a bug that caused an infinite loop when left-clicking an empty tile directly after deselecting a marble (02/06/22 M.S.) - added a missing include at top of timer.c 1.0.2 -compileable for Win32 with MinGW -fixed more color keys -using gettimeofday() instead of ftime() for compatibility with FreeBSD 1.0.1: -no crash when pressing move key when no marble is selected -configure option 'with-profile-path' named correctly -color key of marbles set correctly 1.0: -moved config file to ~/.lgames/marbles.conf -rearranged the levelsets into one set with 32 levels where each level has now a move limit instead of a time limit (now you'll have time to think) -fixed some warnings -profile path is no longer hard-coded -profile directory is created if not existing -not 100% cputime consumed -ASCII option ( big-endian ) works again -man page properly installed 010307: -minor bug fixes -added an 'experimental' levelset with a move limit instead of a time limit (tell me what you think of this!) -on a graphic a marble blinks -added manual page (thanks to Uwe Hermann) -fixed all '-Wall' warnings (thanks again) -script 'missing' is now executable (and again :) 001211: -various difficulty levels (e.g. 'Training' with no time limit) -marbles move faster; in 'training mode' they can even be 'warped' -you can use your keyboard to move a marble -'save as ascii' configure option (for big-endian) -works with any bit depth (16 bits no longer hard-coded) 001126: -various bug fixes (most important: chapters are opened properly, profile file included) 001124: -initial public release lmarbles-1.0.8/acconfig.h0000644000175000017500000000044507426016447012201 00000000000000#undef ENABLE_NLS #undef HAVE_CATGETS #undef HAVE_GETTEXT #undef HAVE_LC_MESSAGES #undef HAVE_STPCPY #undef HAVE_LIBSM #undef PACKAGE_LOCALE_DIR #undef PACKAGE_DOC_DIR #undef PACKAGE_DATA_DIR #undef PACKAGE_PIXMAPS_DIR #undef PACKAGE_HELP_DIR #undef PACKAGE_MENU_DIR #undef PACKAGE_SOURCE_DIR lmarbles-1.0.8/COPYING0000644000175000017500000003543307142767061011317 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS

Table of Contents