sniper/ 777 0 0 0 11324702341 5326 5sniper/awp_1.gif 777 0 0 10540 11324701256 7133 0GIF89aWԎkH%ܒzbsJP2DZksHW%UI=1s%PkkHH%%sPkHs%WUI=1s%PkH%zbsJP2kH%ܹssPPԎkH%zbJs2PDZksHW%UI=1%sPkkHH%%sPkHs%WUI=1%sPkH%zbJs2PkH%ssPPkH%ܒzbsJP2ǎkHs%WUI=1s%PԱkkHH%%sPksHW%UI=1%sPkH%zbJs2PkH%ssPP¶zzznnnbbbVVVJJJ>>>222&&&𠠤!,W H*\ȰÇ#JHŋ3jȱǏ CIBq&S(J([Wr(_(3řȕ+wΝő3g]tص{ǎҫi,zęDӭ[Ǯ,v Q渠DZxS˶oBqͅooDq4םcvp[sO1~Go]禮+gœ/\'Cm;fݹ|O:)Wf٩~n-p޹7q<.%_\@X}9o]Au}w# b3tU>!sπ #qmw->@n"b՟;s=P cDe!sZk!OiYY17"=:s@9dfQ3}'RtYx]s^)琄Ǒp9MghS{cf KIUΞerh6Ua#Osp'CYgaM[eF֏9_oy#=\yXTP8U\:F`(s\kC)mr:_2!bKZz}C%:s葸dPMEhXg&mRI܈<Úvqңz {@ g>Ű(+sھf;)Sȣϧ<;唍RA-ůKnH땆 i⤃PȤnZ .Ùk'<1lnr eeP/8#{!aq,d >CikжB8]|.4r: Vp!;㎤`a؃tv}'Zۦc5챿O<FoJC.SڢX$Lgd,g4&7Di}j .L}+:RũlH4"$y0: zY;h,q_+h;q %jAqeD#)7ۜD8hM[f&DJ\˸9>'1IB-08@2YTvZ4(Mh2_+|yqO9t8Pll; xI4:(;̱ 0ˡ|B2мeCf|F9ܴ>gǿ6Q?Y;L)۱&7ԙz×TqaәS0x cS"*'i) &zLYfu.#g)<;r2:($5`{} W1~NxGVJ0' c#&K@O!rEg2NDlEK%U!<ڡI#b$7駴+quə-PtqSCl+6X9ɥNq)otuIRmN/LXl?d(6k,ZHI#dmO:w3bSǭO3v#2ciRnP#J"͓)+9ꨉ]G\Vo Ucwl @.;Dh G$67pD@ȁn9=wn$;"tOJu_4XwL)*cԞ gj}3LLQVs9h&W{3/?~dXr#}D9A@劅4d#VPLpTǣc9A%MM^{ν's"(r87겆K٠?cHg96j`kzGu"{ gAu2fQ{ ^WWk5=SZW$NE|V%%2Wq&du+T0|73,KВ!;zp@#W';pzXwRZDqlЧRZ%jz~0BP#nb-;lbRfu !2Ax*Q5AuRlF ~7XcքY*gBvNq6A84_:!& [Qd:Cq>T8$ SM6Xqa B}a!r.-~6f |`&!#0ADDhe=@ 2gX&a5RS5aa{ w pA:T0Zu*x1tQ[r+Ay򉨸9TҸ{C1PXbe X&^$Y\pGbّDAf\HumYGAhR@G/U\TqaJv1I($!CC5ЦNY@8&Fzcx<8YX^0QG砓~ QzI.;r&$+":KwOLzɄC=v12r2ȘC$L`&F.;sP2[qm膲*0&90@C8fBxQi:c AQ1၍Cym&O4QMi Qr*"CC#2zv^a%pXQO{1;U4$&3ˡUOe+x9p%#:w wQ~ i[HHfJ&2\C`Uv!1(^+LS 𒅴%KQI-*\#th8fA)lEw3qǡ+R*עI|pUXXp uP|59p{"# sd(~J@t)pr&Y_@@+b#QP%ya^0UIP%^&6XS~IpmJwF%хRzZgePנ0,ע؊)ZPT̑1P1CTQ`b(Qu G?XQrʰ ӓ3 G R^b88:K=65@.cÇ'CRxA#逳D3ӴR o3V{XZ\+;sniper/awp_2.gif 777 0 0 33360 11324701273 7140 0GIF89aԎkH%ܒzbsJP2DZksHW%UI=1s%PkkHH%%sPkHs%WUI=1s%PkH%zbsJP2kH%ܹssPPԎkH%zbJs2PDZksHW%UI=1%sPkkHH%%sPkHs%WUI=1%sPkH%zbJs2PkH%ssPPkH%ܒzbsJP2ǎkHs%WUI=1s%PԱkkHH%%sPksHW%UI=1%sPkH%zbJs2PkH%ssPP¶zzznnnbbbVVVJJJ>>>222&&&𠠤!,ϡ]s)!5‹J,XP"ѥ[nvRCَv0۱c.]{7=J4dz7ϑW\s-Ts)È.açPNd9r?Յ6o& tpיTGwx|YRLvtFh1ٲP3fQ ‚2srŃ%r0jUt_Ǒ3Si:Jg&~EOyI o/N匑}d zuMx:d2[ZWBjab]BOz)aSfWJ>>=[i#wc䝇c82ӄ稓D'b~|6Wڶ傑lj^ BT6 "{x]@VhcFH Fbғ c$sqV9RȽ[Yо[5մ3Dn}ƊXn%`G)I5I:X6؍vDgxSR:՚v97K&;עJ5z-P W*8G u2q$%|0B##S`Eِ0ZV9:ޔdZRٵ׈)deܾՓ[ֵ0NP?~~H0tx")Ux Hqڙ5ˤ}>۪J&sliI]2 e2(eut7n^:Yx./w:K̫3kI3ekꠖ#~qoVIԢՕ<~#9],=cz$ L.Wb\"(f!8iEnjс2G@R,Π4 j q30fDMٜ6ssK!V$2>'=%xHXфoλ\(1r'ϲL$ZH1d*0 P@)ىN&=#gS:a9dh/a8T/q0s(q(e&[qδ[i͠@ty^0c3t8K&F`d׮tXlSsI{~E A&0ž# U4'POǩ=+؇~kQ( ٮzKb|0iΪC:iȖO&MASxdµ\!sVIel++u"큩jOV8dv G&|0 CQ$=y?e±8X!g͙9iZܢdƥefKLlKfm2%2u2vZ2˳<<;V2mN%;ZryuǴ ܅ݏwj({R'Ɇ;;$VS/ q v2! EY &BT&| vn KQXΕht} wȒR=VlP&ZzI]p%[ 0LNR}o-o]3=y SS-ΧHzq4W%U9()RZ4إmNt`;ں91E[+~mORaېRG(||ۼ{d:M{f&" .D2%^WS#LMTH/hEebVCD4[~yv}c^w1"H=|rKyv3Di8egy0ʡX~Wpi\X9'q L8k5˨9 d@#Z1"wOdjlwbr`5tD}дDEtYwPSōLu̡Rt9e*}9rQ?4C9:x*fHw0%1E+WXt3RiFQS "^'tc?dv\CMI"m9V//+&7K*e)%r ٴ*+S)HGqj1abq{&hUg>ɰEq8J1}ezzof7hN>^a*NWK(:iG u>2Za?pV\۸m!.(?c..ۉ+ڱ1dEtϴ0Dѵ0Բh܃ⱷҰï⠕\<`UwړY,R@@qO : 3.: ç!u^x{=~K-JN.soFKq*Sυk!3IH40(cA+t@x v S4 *ƬZC8erE*;Ʋӵ:P lB)$&B8FNUDׄ(|H6&Y;pS.E㴨!(?05Y/[]#<3_L چtm2Cӹ7\l3hDRs9O$ {iԳB *vANw%<,*D^jjK CSw/5I Ơ+s8.䘋6)+?~3 rӕb-J&tZ *ZFy2BkսYeuѪktऔyocom7t.ۆ-Wukz(Ji'b)g q;9K<^`Hl4[/_i T2l.?EL+k[vl'}utސUܔ%xW9\ms=ϲX 1w+N R7w B_Ԉ pRqlZ5(iv":ӻS10y3䎀<\R{\vdƱzЪf9hm Ču1jS),'"xG!)m!?Y(:oYL#k ʇ)  q9}_-'hhKT% ZC "G)J[ )~#Bd&f!Z'+,cU"1R'=c=f{Y=Ln 2N@,ht*|l+CQ䎷2N&\ ~M`J69I *"Ig;"wZ[T8uC%9g;>u7,E>@߀N&9[?Y7`vJ2^NP)I,>ΡaHw5(av7 !FJOtf̥OI~VB1$ %we\j#sE9X䔆ӟt27-;-ptV*Ee; П(U̦T)]cJe bYRf_G{^o #xo3Xz]bFp>XV0vxzkR˦5gUSڸ,P/g&iJirP 8r_ rZI'+8]H!IBFOB޵=HI-|x+ ]bGP K<$;z#Ĝc V}T%'h );V z#TԲ(_Hc75{[wD~>| ƑHܡrpD0$/9Bǂ r)$K%vڊmHw\Ŧ,uAFϫ ,0H*CT/>iL~gb1#>y+QLֳfxʫ rZDRdOj8Dh V:2P kCճ*<( 8 vذ:؊}AyB+Pe9A"DH P.4#9#ػ6XdQ [N EIu1d10AB밠 (ar!zk%bIx@i"'kV{H0lsЌ=Z3?E2)q3hu !rD.ZO9y#]5b(AJ &SENȱS6r墿(Ȱ58 )uHȉ8s),T R21-)f:(D<16]/7' :s(l451s,WpG4I"ms83Y*;@\<;8,Მ؛6 T8: :wKsѻ[r@QXK\ D02Ư,5 \ä  4; `OaQFjCL<Ȭptt :s`;łKDT[2B|+EKY20)l:"NAr”r;0a:D8s@͒[.s`r[IY q DH =$W33|2zIZA3 AOl8 ,b,Mc)2,M 1BsMsA(S$OɃq$3$cL$LI1 Y"[J DS\⧰h1*0 A)ADʼ#SxEYs`hTH%ndP-KI)R6y7 l? 4<X:rT:Ϡ*}JH ERLNHmT Sك#T1e%>|^!.<#At :4|L0IsJCR%B4i(" ,:H-Ǽe )QQ OU ս#Xђ )8IUAû8DsQWԻ]E6`s:C3RK >2.`De4VӊQ!I-XNb 8 = uKI⺆:-+$@BlZº ۮF 0/Y8Ȋ,K+RD.eӼJ-94GW%%؉gӢX%xLaTኒ\Vc& ŠA_\E(ɓLKG33{q?s*%\{"$դ sDi(ё +[.5vވ R[^j tVp2 .qq#h Zg5猪qs҅;i ͘E3 " -u9- &)/`AZ {Q 9q] = 60U@N -`dN"Ħ@ɟ?#"T=&XP|,Jح 7 ,r;2)W=~-UwR Q)6Jaš&XSKFȕV\2YMI[n$ԑ1+,<\J#Ɗu 3#->CK ւ75^j+ca΅(3b(grq'W1fAHNf]"{?*Xrq0%ȃ{8{2KT@)!j# ]z76#4t֣B"ztA6;G Ne"^g!sP(h/(6 8> .s2.6Vˎ%#PR: }B~<П> gx , Tc2>#Ĵڰ(rs-&̴ոڳ&fɥٳۦ?iǥbǹ^<бfQ60=Nrqr  !;6V&v)@,l^Vt8 0B 37d=6m=^u3mrjΠ."!$<55&+86e43?p!ZMI%Z‡ KE+!޲L KLSD&cvKiK:Ҏ^\M l_x&VnTz Z+8!rtSP1 T%7 Fh#0Y;$4.W2E7YUyu@9gqB,7]s |@\͕D ِ w~eR sƸoD77AOD|\7: cOs]v5\nCv $IⱼeFgN\M)ML:<s{<:ӮHv1IѐW3I"Ù ՝C9ƦDtC&YfNv{&Zrk1FxPxCCnT(]v7!>ÃLz6FŊ7ݶ:²'ϟӱѲ9#K{GN3*~-2Fda]`m4&R;7ZI t18V:wIN[SP߂uWV!cZ\U×G)dՕ{s$gAiib\~EXQaN3`Lm5'!_٥YG^}E̅Ά}+)BWUR'J'YRۃD9.}phI kAVViRpڡdqz.iTGf)C{gwS(>A6[{zК_jYEpIYh:B"R-=ӖΦ9fݲJF==c!, V3m4y$FizUu?Yt|eF + @bUhtZ-3Z[oT{17mAbguogPْͶ|\QO%(/AƍO#*;9aM9r9A4˵pO N'@瘓o+:4\E]gTٶF-˝I26p Le-a@ǎňM-=XSJ!8fKK@Ƹ\1QIGZN"&* Jt*+QǴ(AKv*,Pc{#&mi_ZDY,j`:R_%]HqCTAf0QT28Uh +R|U0G{i䘇@5qGkRKvj@*VUX;g;#%f,I*[,Ww0]B~Ga/"(QC>Ŏb*!L8+;,xZfӫ #g$#("v+ *SrLTZ.bxcs ݙJ*sI4FRj+ݝfZB-+ER-eZW* Z<>[{#ʰ:BOͳقR4<^PԣH\-IS^L)DUI/ #"8!g݅@ |URu1?9ܽp519 &M"R7>>222&&&𠠤!, H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pݻu [w߾ +Nᾅ"^|1cʼn}/kyd̍)n8rQS:װc˞5ڷs]9s~Nx^Μ٩>͠=kW:/;N{^>$cilޓd:OPiVyd" yS v@:P!;ޞxe0j쭨9f[zC;(#:LZlEAsΑ^NC墨 ݫ='#+B&>1'<3Vk2ʨ9Jʘb!3rӎOC)H>A΋P,= :E(4yB9{Gh\_cgqv{Cn_| !ӾSamW8)1䄒ORYΣf8;)'K鮶%ѨTbmԁɏ9"ş擜46ԣɣڲթ*^%),9,ܘ:+հ<"ĜG d]$5xVu-M$I&z >r9䷼PQdƵ.s|Dud6?@-k3JP6[u#9^{hOnKC|UX ߪ@{U0s#96K M%scW;`V39>GmTY"ֈf`E+.HAP f08 u} Iָ#S.Eylz-5u$N~V7C9Ha&_Ȟu]{6jCJmY4r,qJN֔6H;;v27j ۜdW4HDB ؓG+dQgoOf|c;V~]heءU'y XnQZ9JXn Emo4nqW˨jw"-Zzk, . Q*tKe$wXd5E}ZkrO;s'BJ8R:m5Ch7Dcy;43(+XIn|L$f? UUsMWeVQɴ14qtW<[a6 f1Qc@c+;de!76BާughivMELÀMo HE}i %wQ"(b5ܢFh@S tqKT:5XMw!*7\u'}׆NFKZMVOrP}k'CBE 30X0$FYBBVs9j20&#+/DQuR%7v*cqvJs7LS*IX,5'2b.t%F$,Q˂(9=jND<ޥ./s|HfnNB6$Qg 5{fcB .]D'9Q"TsT_tVYPi]I] xV* D_n7=VBMxć`zKJ;Du)9e{%A3f`Q7ɑfg!}$b8Oo]IJ`:!FQ&C3wK#P~9PB>lɨ&ɖ՘ذڨ0ɳ8᰿9ľ426+*;;,$ ?'2\( ).'Lq#4 57yQ(Ă3D\F|HJNPR.G.51Z\^`bi@|7فlRyJR* k9ij<}6oi䃻z aF}&XT"$s6vU|vl@X,3!Zg r /f"]T(18 $S7cs&& "!):"0P ,T[!()ndEQe֓%]|[X!Β.2~!XXcv]wb1BlC0rz^+Twbg=Rdrn.B?W|``^R{Q0.Jg$:H.j]n09H}zݼKO¨q Lm&p梷|ܾk5M\4AWgDy C!e$cg3!$C5pF4*]\,qҐު;$|OLARq} o:>R0b@yA ofcBS?"5*W[}PȠ=P%k%PE*QƳ5- TV(iC|m^7(}K`G4P7ZFϷj="gFBn vep}ZCSnEezPX|ȼ:}jk#[5%8JQE M y̿ 4qh7RaB/w߹kn='/ĉѣ'!s0;w΍!x̑COL5mI,lw,1-"|TCrމP2Y0,У 5<.NK'DtI'{)q^D'V'A+бJAirA"q$˒ J(2$'L1mG.#CWY;./"[, :G,qrg V"K.)!:։JwAl ;lH";'|M(Kgbuʝ{LI7"JL1ؙSOdM\?0=. .9#`t 鋭!lre2G:#oP!%%p 錾T]u0NSk2C:.)1ch9ܫeg^j .n#:H0AYL?:r7 %W5q}RtJKka'g 3ϗaΟ=t 울CnՃMiˑw45Q2<*'n&l: vIPw9 vs9'ƶ{|u_?W(qXXv_-V'sٍĮ< ;UI䚉:R4,q KAu`? Pja`e)jv*, 9xwn! HtuqKo'ou^S\1&6щOb4P`/!̖Wcc+2ANxSG7JJ6$wc4dkBv改d9+Qho#Qd&Ș$ RC1cDSе  #yҎede.a8aGJl ֏lKGB1t&(N&IfIq W{lOO%*΁2(Oy'9Ozd%̅rb:q0Yy>Րxவdؽd 8m4@ZVf޲dCm[A!̄+Og]",Xߊv̥m6Wms`tUjz nx{^ڮsrk\jp;p- o1L WM(bp4&Gƃoݏ# xoPǿ59Dħc `j8m9`b cŽZu0+""u^.8S9|^|0Ky`raAt1@pX,hvt5#t}͚.YH_$:uM8Χ2f,lf L6+=@ wmnxmlˣ_wowz%VwmBŷwM&d8!cG8jU,e#<,\`7x5qwyE>r'GyUr/ye>s7yus?zЅ^;sniper/M200_2.gif 777 0 0 14376 11324701472 6776 0GIF89aDԎkH%ܒzbsJP2DZksHW%UI=1s%PkkHH%%sPkHs%WUI=1s%PkH%zbsJP2kH%ܹssPPԎkH%zbJs2PDZksHW%UI=1%sPkkHH%%sPkHs%WUI=1%sPkH%zbJs2PkH%ssPPkH%ܒzbsJP2ǎkHs%WUI=1s%PԱkkHH%%sPksHW%UI=1%sPkH%zbJs2PkH%ssPP¶zzznnnbbbVVVJJJ>>>222&&&𠠤!,D Tf{y"c҄dʕ LjrȒ"?܈.ŋ#j}X{ 5(p]uԡ]>&ىX5(#Ԧ%tˡ\̸cA"L%ল3ݫQ/Z%:aݲeժջ:ܰƲŽϰˁ+L',:Ѥ;4};Wʢ,&{<s&AfVmiՕv՝w&X`%`hY[g{'Xb%w_9"*hߋ2c~܍uf#Mw^XhXe%W9ԤDqf {$qocb"92~ _ife9#}XYJM SiYFdwAօPw'gYUHG)P)Ӛb)餔Vjii+/tz٩Vi7 :1@dWWFN5-a;9OS<$?$~#O^Ng7 5Ŕy{1^䴳]Գd8v-=;/#0Z"/蒚9խ.h3Ͱ-&5)$cғݐC#z:բ24=œ<Eb^ODhAHhEL3@IBx3-8P"͎Cp 83Wru [f#y{=sE/n@-VTxP 'KŵE5)юtToL+Z.pU ë_Xgr5s@؁NLa8 t̵h:0b ;22+V@;& ť0K_Ci&IIvqeOn5.r3rWpwx#AK:Ԕe`|E.\8w .UZ)*`l3kt赱ͮwM:vvz* |M:vTk@xҖoh gM=Np܎45g>QҴ#-ֱmxߵĀjW-ԲjU(feoG,#:*;L`+cٌ$ʹɶij޾ȶ^*:0<Á8|-P<ÅXl\X,J+̘ݡe)8F뗝Q+e Zv N5eg̚vP;&V^Ohv&Kն!:Xըy,S=kvݎS@xZ43hTo of<~5 V߰q)mkxL-,VRܷ>J:=tB0hvD ʂ9x߅CY-h ?w]t*p4D?vKtH׍nmCqV F:ٸݺ10>$y&b ] ;7Sm!̓Gre=C專,,gT%aXOts_zև)nB?F7v7Z_ߵ6ǣnoM]w=D7 ;<hG.[m?QY<=}~-.}|E3\܎G|1S<7e{ #]fi V^`fe{wofxZ[w{s(@}f8+gb=lac=SE!@9'[g8hCm@a:#f}$&w&vn n6tts-({0XZ{ww@w{0t|nTD{Q?3;t߷,P4#@}W#ֈacf_\bbPN#4r[x[h` >R߄Ϯ񊗈4ε7ݴı3첹4<|bHyfhs[ZT\pZ(XZY((Ȏ oFuX(xL,H45s3c'`VAr~ WesdNC'%S@%99#0 eP?7`fFDɞ/ pPɛ搙05 qSɣiA x9 *EVLnFi:"CbU)Ktsl9]jUs#&~֞XhJw7) )znTwh3*SC X)vgA 1P;!G3á`zL4rIX8@p[,y;(2`re}F`ʣGDҤLzgiN&HN='<8@BgඥJ4t0@cSeF%zÚ`FzP-J-ϙ9$DvġKtٳ$rQ0n9#g#gs03'BRA܁#O䘌v }P^Q~nR H2+kA8LҲ"Ox^pδL:&4}AHnn-.^H $M0e%}5t+#r2q?e~IY8[xGZPѥׅGdٔ⭿ g(Rg6VHeM"*;#PZ޿b湞=~=nD7PA*Mص}HF"3-w 0{۵ ^@~>A><)Nd˼0߉K͑NqS%Qhjn4_hE*MmL\qۗShU9UD폪9TsF106ޓݎ\NVJBAqRџ+ne~[Z_OhM=a>Iߨ {g$0?[ߎTL!>oe:/M?'尪QP&/_Hx:㰴dz#!ө8<8?{ c0AaDPF0$EIxJ-]È/3w\9r6YfPEm:ҥM HBcFU~YR%JأLa%vҟm)Ћ^;2kH_EUXpLgV;tlMƊ?# ;sniper/M24_1.gif 777 0 0 31357 11324701327 6716 0GIF89aԎkH%ܒzbsJP2DZksHW%UI=1s%PkkHH%%sPkHs%WUI=1s%PkH%zbsJP2kH%ܹssPPԎkH%zbJs2PDZksHW%UI=1%sPkkHH%%sPkHs%WUI=1%sPkH%zbJs2PkH%ssPPkH%ܒzbsJP2ǎkHs%WUI=1s%PԱkkHH%%sPksHW%UI=1%sPkH%zbJs2PkH%ssPP¶zzznnnbbbVVVJJJ>>>222&&&𠠤!, 8;wkǰB !6l!;v2[Cn\1#Ƌ(Kn#H.A )r͛6K93̟/WshˡCuDɔ]Ë-luaŋj5P!EV|t'ї5GT#Ώ+Zۛ,IW]:`ڥ9SQ8UĨ*ըTFR֮^!Z3YaL)VG `Ѯe6oGҭ޺λ7ٴ4<2mTq#n)N)ܼeUl){ȓKq1h yѥm^nw E}} y&C(U%_hD!v^ i[xw\!Xc'F"JsA']f!Eij]Nvf_|^>* lhyRxE"T]"i`W'm`aBO~4)lBi4*V cPNS:֠0F7xSv\q&m&lk6ߓJUrgca&![urjkaUh)=ba"jiRΟR٪`} gT|F'fk즓2|ۧ)u_tA~`f#2,i|:ۼ1oi:[RAJoTH6[z .o/G:2;1 v4׌ah/\$M%%S1ӂ680{+86&_#dxji}d+fWߩ*"vi|dh"),`C"Rڳm+N׌90'~goWiӄS[XY*b E:jj#SyބV?ҵi{?(K"#H]BNi :*ɞab);af3pZsW.?Fژi}71+Phdw8ơEr\kŠ,-Nn1KHٕ:?RuUdbq~ř,e[B]{V'TTo Vbof?5ߝA3NL:͂ l7T&n]9J`'Wl ߾ywV*@k\HS9͈K fpR۞LUxr~[w_,+ʛu]j-rD+uYYĘ:i؈;wpź>ri*#s]٩f0.g4~#YU}|kFB$wcdruu.la%0%(!&dn9]3c|#fqPAd6mWcL]|1"@00B8N JdV'D6T{AdPtR/P {3o҆^V&SDž$B; (;ȃЃ00C5MH]Wq3Y4'~A^|)qPeFvUWW.5L0T#D\І@H0rW&laB4Mth3w,l6pFJ}/bdhpDL ^x(cq4{^5v18hrx  񀄗xM9Wf 36&INe`vՎYY`b8SS.NH|zr/:8H(X.vעr#w[306V%t)TMr>Y{uik\!YH퀁a5Dsxek$IY.aPi%AH6@t'F8ED&p$@X9F(hu|oxVGb(.`_qO5A{k2jUb(FWw/hH"5b7#Xx|V ;XPI)ƈuh<^m8tiBF؆`y2lف!;hGdrk<vY`Wۇ 9(iؒ\ p&rW|39G;ٙgAPɖȔ#ўɛI٘ L(js8MjIGٙfw` :R:Ue]mYvR6E;p*,١!JT&HF!XwhXtGCaFF.ÞYɡtrX"ڧ!!!2ROIד{yfYJbS;X\%W0(Bٞi,kb)n f<bEm$(x7Gsy5FƘ[8ʃ~YfpO(VfV*ӫ :0mrFI?؛ 6uܚ@zQ9I`utx>qj+B] 3)Y *ȪOj:!eyfs}{w>pjسWᲵ]Ԛ9<ɢ.Ӫ>ڳ҆>70F밎*0ɴڕѪ@a9ʸ鰳*밪ܳ?zڴy;bE˜ȩ ܣ}61r,p||CY  UvW m̴y"̆Fhx7>CkQjj&3*!al+7N(>w(Pk0}аۣR:>UG-x٪/5x3|*;2= I(}>lq፥ĀB6:*0SX>ղϋد<eM͒ܳhٗ 9s֏NdDH?1U3ec[$ eJU:T;Q 8#׬=*vJ*\ylHoɜ 2W\t,1rVHkC:ˑ 6!2]݃bfej{dxP]~;\Y3ű#6M-9ECȃ=)]] %UՙKYI\VʝsFyoɩOGA Gv,{pqmmʻy\ٗm%њZMu .4.֎Evꊽ;Zƞ닞1ֽܘ*KHr(  ]^^"Ѳh]vdV8H.z0u:^ۭb޻~LOd.]NcٺZ?J̤Eey~=É9m^/xoj7/f+)݃@hTn1m?X-pX{.>[IwzgN!ɂ 6;1[fi=8)BˣYL?_(>*n~ƯoÌHɶQ]7\ߋ.ڜ~Auœ7OB >p<I8O@iLqz١;2%ʕн|=5iάNg: TϟA3ҤKN];U۱Ú>]Z=uFHRc=%Khwz۰aˆ}!Nl1Hw~ܸq`:2i3Hu:4hT͙v,UժZr,DwCK.sm;7m¸A> X_)Nk8n1VY3LʑWnj9Ьr 5iXƪzkӭw÷q{Ԑ*wJ3ʹ#*EюZG-.*x@Bk(Ɫ$@8:p–`(cr 1j[KlmI t$ SpǬq sC; P(=SQ1K+S3D1MI7㼍zivBRH=䳿h#I")!2%H%d*S4 T׆PZ-RM靎~VyV0"P? O"I:p9\$y睓`%ƞuHCKˢH8ͨ-\9(|$y1%Wx] W6گM*Xxa瞆~V%/r&9lnOQ)%3Y9vk^^Ͽߞݺdn:]"D $K2=Z>T6o3`J xi!E Â;#ZyMKgn;9t-6Ye‡O2--Ҩ5<9H.OlÒꊝBgd˷ ֕ .xPgF5XbHp|gޱ)%GIOdYXȭY W)yFu.e){LY+IGSz&8X'b˂%Mˠ#@oJC f*C4 1DTρ BpGbivk#ҜDx '2GQ#oMdc,gpƓgVɇ:9^("-,?TA+%^:S3*/Kn3yt?IIx1ra_=ⱎsL-rKF'Fib:&fG\yJLV3@Y9.2:/o=?!Z ]%樨;' Ur3%@ZwU|ࡎU1T#&)dt=0O'v*$u!QH^,Ç:P0x2.h9 0wEHº%?ֵbS|LIg)=W)eYA<{T]mn* X6x{V!YupL:]| GF9<I+ij8Y&2qH[!Q(ʌ+(.X$nq7yZQl=G9:6 + g'^񒗀;/k{SX$HGFHBXKGGdrXrC#l=Ėx(M%K.@;wh*ߜrO<=AMZ`.!fg5XRi ȦA`G8w%׃ 4 ۑi1B+nTj<6cD/:W"t{gtw`䨸Z[vEA鍚e=\5A;ayua$!uCa&Վ6<6iTYi:E桸64/HLȿ]EǕg\Ϛ9J=rIGMa,t1FyY5.L,]@@֓z~ԩjSl{Q눢D.Ai srysTPd< }#sDʪ!jrRv]iexVp\OȐYBCiU.^Z֑59$;#avwCDGXys6mq#n[~zWt3()A`)w)n#tDV9qvw}%)o#C:ZaMC-/}tx ʢ |e" bjfۓY7/ )`1G;,ґޣ쥯>_)Rǃ$?bҔ]_cBšz%ԢFa bZ䓸1#FQ$889y9#[3@ +?@+tpvyӺch&c k#1 fɘ[}*j>I>曫`3,ޡ 32+4/L=k70 s8)Ժh;슦+H <8x.&2#j>J0@|(bB`Zrv 0P,CCm25|w 5XHA=W<{+ f =c ː?:K/|@tpua$ 㭵v4#?nCxF0 )iSn; dT*R @0I}N:Q<뫻:]BC-\U| :V=%˒Ō._-L4Sj,aLHA)Ye[9y[ɾ /9Z9%T<%UYzC+-Ub tyT_/[\Ju(7=k" "v ՝b>]x皏yP%˂?zb$b "f{[-c~]r <9 bS `0cDdLHy&v)e ۧdA!Fmeތ`{\{`%u:Iu_Ld &_tzdZ=HA.fdef/Lncc.[T6.>lx_ZScAR~:';؉񁓿l&j&w xxPr(& >o$[uo N3DGZj Q WNK.: DZEdt,@p?y f=?qr(QT릝Ԕ!K8k-"Hx( 8pCcLg^ BdeQ k{fz: NpmV"H9!庇 47}#\] a_y-+".c 2L7rnq02v )و_xs4N,Oum&^e_CFpr2q=̛Ϋ𛳰2ZB3AoMٙ65?Cnzd=7'o*Hao7k>_rJbA=@-"E=K)81yn$ƶIQ3f=qnuMJ^[¿6/('F*e߮Lʗhdd7yr Җ~N/=} Ua%ç]z.eWi^IL|>OkzgP„ /?{.8En܈#ǐˑ$g$r(MD9ΤArgʌ s&Κ*6l}*$p\Щ'O޻uQXT]Zo<-U^yazܹtvh.޼xAvTG-aYxɗ4q2nº esMѺc75jw'eΓYzaef*=yw(ljvW6v9t$K.NB+;4Twi$WIq׹{zkOgjYPաK'Wt$]qv_-Dt݀: Ne]BGN~ͣw:TpepD6gc FD9NM陣;9%mh'w^7IWK7ڪG4jdK;"DN:fVk3X39`bZ6dtJ2{{)sBX-R+yby:Sf;c,ϖSMJ(k( rK-$plgFtj,f'<\z 쭃jhGN+O߾1V|ΩЅ,(gBOc oa8qK溴F\ZXf@+[,dC*$[㬲9( yX'\iMN)w7(«w) 5{v_{ggkx>栯ҍ#' o<+i9GMuI74F tO:v 6 ]SpC{9 u`'/+ g-/=piI!w+J }<' +ZڎOF hm^ܨ#$p+`)u$["C.0Q= a2PRE|3 =-r9LH:yMK1*b&8VT0IB$aĮ=X$^Q7@#);g8Z}h7v6ɟw2"t1"E+ 4dP:U0aoUGpnR"O4Zl&Y d[x=xIJ)pn1=C"M.i=il>>222&&&𠠤ĶĶ!,۵'ప[ߺ![EØǎ8Gݰڹ2K&=S2ʔș9=*@)ӧ᥁/Էɳٵ;ۉ;.L/9۫Tիش29nّ(5y!?׳(ƹ>q}^i)qOߤ珲y6#ʱѴ؄˝tNi#م<2d>9vDo:=fNia@]7E,NjM`2_bUȒnFE`{*ʚ^QKuajxpzk!sҾÎ; N;nsKlFX[t|!|WS_0nuu*gNlCߒŽwǎ9|3@%n^Xz $U/C#s(8d#AG)NWĠ"w^s1oA&LjP]av#C01q#cz FRZ1C#yЃG7n\XQ;(""CWY V(@ :$ hn aycht'tLΔ~\:nⱈ'- 3Mh ;pG"S*أ+ˊ"C8wu+rvER3Kw@ح3tζO݂84]eOԚYU 2ݨ$fF*VkvcGo;3IT+ _5yFiWMB3 ȖO4e( S0'ow+"p˩qF=*$$] Îyծoj7b9Opk zJ)QҺN g-2W2[A$xXC&B!Q>N/%NG.RYgUD/~*LdvaΊN0d\, ʟVMyC2vmd7$h<ڡXvN,M\ s -: '{V6 x`;j\5{dUizSǃQyIjeNy(ZXKEmϷ-ɩMD;69yA3Σ+e]pfz+Ǎ$ƌӵO/N ih|% Knb?plG'IrlrMmu3I7'X\DNHLOB Fqc~r/ΝKCtu3Af6BݹJA85PiF^G,`TwBA;ƒ`H {gǸp'ӌu w[\ˑMVH=}J%1_xSˢvrȪ^{^kÃe7hez82W?q:Y+{WlVno!svpIo*bZ|{JτUR8)hvZMp5̅d5S1X8@HX~utVtvJO{4`3R0$M5A-8W5MDX4(}5q#hrY9: krQCw^㗄p`8&wQ-S8.DPPShU`]|NY%}]Q8VN^Tf=5Y RCE͒T.6S~}XPSGm20G(xds/Xv&IXEXv^ UT|9LOUFXh$tbXQ'<61CiLFP{WP[R/wG%5MZDX8X#(Pf/XcF"H\eI(B#W=}li)w`(Ip+IdUIT(TuG$`Č6X+5/xje%GȃhaK(tEb:x#+svM@@ȅqApG(3O. M? YvgPhKmqHewT*(đYG҄YَZHCS{dTsMi7RuTx.Ɉe0hjEUmOuV-kUwSUOG6{ؕg@[HGIyo)qs@Ɉ9)XUuWcG6TQT.9!ӎ$Fbt;HrpGS:OpM5I ʅ8yX)R a5# :E/*B#j%p(9`qRI` *{ٚҩչRRH/]hvOas&GEBF?o1I \IRÕ'QXP Xt]$`yɘFXԸ.(ujav3qmN9EF2H+<ZZ7go`ꘞ(9/z$ @ 邢Dc }:y2}7cx]SZWYU FDX&zj@J&rqӢgX}F}NKγA@1-m$| I_\l ?^]Lń'n1F|yס?*H|L`y-zb6 juュ6 1- y~ce?qP>P*UuFOMykkL .QCFuMWg'NN~ 7ym]IQ6NgA{#ܚǫC\;VYRr\Z$溂s`j`\PD¨STvޓVQEiܼ:&1\=QpOʯ0hx|c7 ?5o g `\;}_< ̛Y݌ !vWBJenݣ/Xfmoy`M@蠫9(1O^ ty'vinjG0$H1%{0ҫ,4`LRl8lTv8 +VпyP@ܶrx?ņ\)8td‰&uo9z9yJ|xa ώlj| ϳȳ%G2o?)[ʢMvF(zv .)M<єiG uz=J᪹agTu)FA1BA:[)GmIIW3Es[SSܖ2UJPFN^;j[b/ה|@ԫܬ+xQ9.¾Ɗ>()3GzGUJ2]RJWͪ@zVڪTsX;o5Zճ yǝڹLUkŪ:wÕ%iUf1ݛwSA|kO2ci 2G)7CxI.ֶ;j?Nے[Ld+H"[:unw93fC9)-穗TzrZn\4Z+sUtx-=G{vogD](`C3gBUBĎ{DG&3hXPܱr@̣YI :n'HBr|u$~f&vˇ2B U&T9y#v9Y3AϠ_>JV5 ]wI=]/1$Ƴ,mk{O ;6iHOFvyJRU8488qdzc|Ewet2"?DXXW&$QϦҭm(#G;z;o_! tf^[ 8pG6[ԙu )NZ$ͩ. ݙ P[!f!d*H#x]0 rwN( !Lװ LU"j,`G;ؑqRڢ) 1&:xF;LǠƒHPOQ\yQyCwC X(EtR%gEx&6tk3R??cqK>X:W yXW.'TMvJZlbZv̊VK ^8rXqA׹VFAzW 7~*qvzE5}iH цWu 5h4} :lcTNnV_pÝC6ϕ,NT[(v6%S&)yF bSNdnD,4rO䒛9̑1\ WF'Fi3;Ԫ䏤2 t9@NpMsڦ~1C} ` jLk}]g" fǪB] FÝLjy{3j'Oclyej#0N?\diKQ(A9M<(t[aIY)I\9tD;aFIᓝY)qhטZ.GCtG9~'OAѻ7ſ, "VLԍ4fig>/(B us9+u|ΊZI!gOuf98s$D,ΖE# "w xHk be2"I@=S? {P GLA`Хt-K>ÊU 1x3!vSF #sv@H >9ҦU;-<A$v`-s6,CHE~==WULA)4 k ,XEH )< |F†[iDG4)Jܡ*%K;I7V$C9DN5Y+bj V\2t)3娍A9 x鸪;%:=bµJFUjAgT3s ÆqhHV934 5,YǍ$OHud-t709H{{Ǟ( (2}t[ dԦHe$H*K tIhrHq0JFOƉ3 (0Ejţ14r:6Ei= Œ GB<:;)؜c17II|=Q0Lu{4ʣHHHIYnaX1,L,Cvx8RELWG7tP3DbrQyHFg"MkdI]K*̦l pŋbӿ8J9Ԫ)hyMHٙБ Y{غ`@ [O#\VdA^R < !1XMN9$ dM#Z2! 8rٚ[Mc{-t&c(Þ}Hsf,tܷΪZaê%خeQ-T '?uݿ|$R.YYD9 ]쉵L̸Y-\ĐҦTi=S16QATe U|ȹu[%.8/#+Ҙ@ ̸=_ ru]{M-u^l]޵lZK!rK rXY5_Չәih; >tX_[uqh l)-`؎W3-*׋ ̀Z˾ۛ]ݟm]qėx~i+K3`GqP]ωmOl0OYݴBP.\[$ez;Ģ/{C$z[bO .d$^k6R-e{&ȦBjx@H9׮T@FЖyeYuٿlֲֵd(4SM kkߴnj=tfa6Ӧ!{{rq'ΥV&Ҥ9a[SdmfG[f'8:u+Ki&qkgm״ΦnhυB$$(S&= ŽxkZL5=VHffɌĦ=f8ѝVOcI y!:Yˮ>թF)k$mF-h gN$Pj>δJ2TYSh"c@pF)!N KPKȎ OJNO:'k5c(z”J- W`[DW ȌYM6i}NzJH.DЃLuR͈sДZlMtp̶;@,tN"XUG)~L-50S 0B_$QL>u|Ah>\\x6lrci8FQv$s g}N2'u L$Mn31Gd Qnhwz϶8^Q8Pv"/G1Pqvkl'\T7Gr?,:ӽbTNlug]"EoFZf? QA"wmmQ;\N\pG~^NJ^s9ƣ!3lʜ2U,:Pk_nvG{lGk.H.vPV 숻iJ9l-!Db yyQ{J{4CHIOIaLs荬{s_mcp'%d b7duKq}{gAgxL'TwҦ jhBjs' ByѫWÆޥC.C7F'/wڵcWr:uXҭsWP^F͋7_s^+G(q)e)r"JjѫEkҰG~]Xjݻ 2;x%n:sdgy >X/wJ oFŊI sZl0V5׮DJuئOF,Բm+W^HuŜ>tᄊ7Ph ܛ%ٙt7bN2XÃz4vV[ƚk9o W V1 WU{2'eÎt v鈖BWbG}ܣ;Ƀ:-f~=I koNw xeUTHwW^ycCSPhRE$B`+6|wNK- 4=53-Xf;%mmYEUl0I:i&%QVY$XIl0%_eW]cGO<1a:*w V/hYN6DQYivlXi;ܤ^^Fv,v^ry!^Rg"^;D :8w<jf۞]2W>qTu򖷄t*dso`!M cZr"Y"Hy-\h,eJp=)|V9̴(Q:yΑӝ%%J1t0/8i pzy^!);ds886H JB*Rs%>_AJltidO,9hJF'8Mt$,Pn*MJ)p//lSt,e&Q+L'Q r ha cݰ6'-LV+a+R(v}q#15HInL]u<<킻30M>ܻ%39/5Vĕc(*j$]8Ԫ#sc%T|K}3M=/xLEܙ?fqS j!6$PUIĹV\znyl 9IEǡ̤֍_|R\'jNegL_{cG}>S{X|{8j+y9jn.tm,(*qڭ,w睌rf2^,]{]Ŵh :~.jOc #Ret}׳X'Wˎ kͿsS߮P_vjd2i9tHܤYJ Z,$މēC!l,Iu-򽟪a]\V0S KvT!1WDTUܱQSqnM -Z׉uUY_Ր؊|cu I[aYhm]YZ9D!WL=IO@;sniper/M82A1_1.gif 777 0 0 25644 11324701367 7112 0GIF89aԎkH%ܒzbsJP2DZksHW%UI=1s%PkkHH%%sPkHs%WUI=1s%PkH%zbsJP2kH%ܹssPPԎkH%zbJs2PDZksHW%UI=1%sPkkHH%%sPkHs%WUI=1%sPkH%zbJs2PkH%ssPPkH%ܒzbsJP2ǎkHs%WUI=1s%PԱkkHH%%sPksHW%UI=1%sPkH%zbJs2PkH%ssPP¶zzznnnbbbVVVJJJ>>>222&&&𠠤!, /@3P@ Ft"ŋ RPbƋ'&xcĄCfYC(]ܘaBYb3@_ʜHb$ǦG&}:өŌ" dХ)liUɰHyړmNjFʶlGZz^^yrUS.L?"]LYEW2p+d p]—+k⼘S_-4p֫LS2sZN^9^EG. w.s83SqWDղ]|?G:u밷7;C wStONN5\y=w^WUlqXK3:>طΌƣus_;ؗ:,â}AN:2vLE`K@=_rakg1)]:͸;ꔳӥ:#:N:h9ΛoF'Vd.vkmf[zDWnw^rEUD,#~mÎ3y_Fʙ`:#eNt'Vę^Mۭ$E[b-]P~Ԏ4;s x^'-mt%l6%iHdԛUw޺no{d⥱9)COt}4_EZ|w{uky<:1*N ;ٲӽJ<&Uᆙ]NlUl)ΫZ~#rg֪ K<=KZ:.{ OUo46hy}ϛ" )qQ]-91EkRmdmLB|"9z*('ٱ1~Sf8 ^F%{ ߾.6{J;x^U>St(`H4f*vmv5sO r#|Hb:m}Q:|-MrJ;ǽ*#Kn"D-k\ܧXe@S>e,Ė8ɱ\;<܊g9Ѓ;9:+;S63INQl1Y`M}>5#)N2RĉU0A"E8MFՏuxҐP"U.aDO;P6AJnṳŸ%DB$~d'Y⪜qiY ZzìI.s\9 Ú N*zӌ5MU$W͜9QI1B|P;7ع54̱`hGBJ٬v3Q'xHјsU=>,n<5:A(/ øfʭv9C=c6R~4+$jx^sHB)oAj+s.Tk XX@unnEy'>i=Bse ~vg^oOr^7Xd/{aڇQwww ~GǼF9Mp#Nq;-.V9/xH3n+ X #7:o[>^\X:5]Txxm,'7xipLoܛ"4ӡ^*_YYQm (G9A -Wwܤ.A FeZ;edO{:+"E{p v}˳__l' sR/SXc.ݟű<>?C? WjVVhzcdE8o yjyBy'BPG# \w1}]w7~g~"pp~_7w`6C`5 23rGQhLFmgxtrLi:>4F1"}u;HXhtwwRx3 .,0@nE_'v'd8p'[+392#ng-y݉԰秘ɳٱ\hղiҸ+ؙY^ȖRjuYv, 1Tٗ~W9{k{ʱ꓃ٙJX9篾uj>쓢@'d:;t&t"qNXj7d~d3@Cȓ!{_iYd6_{})ʯj2'/Smk4|PKM47A=I7e}jK_yFZȕ#tJ(+HJI^"H3Vm+$˺ 8{RzUQrHw゙Ӳ^9)Xy?ˊ2S ƩkD£>{ $V SZ/2kWM&xHU;-Ћsv{ԛjN>9+>;ݷk?&y(;3渋8˧řG6C8%ܰ챷Ѩ0ư8x<\{rgt䐥kb0;˳ܳV-Ŏ <|fɳ;> -]iS&yy`ж ж06 Jvz8ph+ʝM+k#r̵U4ڹt+Cy2zۼ͞Λ=K*i>0@M'%К$5̋UJG+}mcĎմ/io=b=Mwm׵, }$)K֣ͧ$˽@UՔmٗa<ɴllV֦ϲtբYjTH>Q )}92:R; ϝ]،z%(zٰ\MlELwBh',u*Mr*ArB'uQ0/g4lî,+Ķ%p`  >~~N>QK2ަ_:P/^IcymRڹř#:}–8R8Ke I8'F~䊣Ɲ=QLq.ڂښ*2͜2E)9 h"'9n "@>I%# !-b< /.lE_zssF,Ɋ &lC+М\"P?6~rg)Bۣ܅'p&@o  JݳЌ>bmikɘ.ݥeu'=>\L,e |k 2qISxM:J^eKN-,sm?U㨙!N)_n&FV3qAWK I]@>/ni'd#o>+L ~䆹I>^0R@.,ˎpc>rx!c-?(êٴ9T# v +8?֢FK>#,C;6-2 Bmr Hb#}Н,+K<R-9 Dx=vܹ'y֝3xFɋ;|2]ʕ)a@3C y!w&TP3T)tҍUTtœ7/;|sI+c7Ut"U;nQ(QuŊWegf:Db|;ݺ$<kv#mWtiCwC<'QA"=iSk}[W%k w;s;ѹ dVYz?N] |Zy0zǹk{UW**dڙ)( ͺچ2ܖjޚ{dzP'4x::JZ:Kv; ;z.$h9L6#ѳnʊ+'#!3p/guJX'y`%AZ, i¥Cjnj iK>BQg.aU\ TVDA>A6#v{* P[G'g[(DS (vHvkVV1?WK FDI jGu$ 5jLx)X:U6*>l6>YǨZQn7RG܊Hܒ *&ʈӡq!=I2 و-/IU 9h183I{z BG!qN;1CX]+$ji??atxt͐Λ+|`n@x~fҸȲb.^ ks|wp/J3NW)!7MX?5"p *bWȶ7wMu`iS& :@UhҔ^dLɦF/%A,g:Xϼ2"ssjE Z./ k(z@uʃ)HFSAM1TQ-TXe@,0AXL~B{hG'G9ӶNMkZT&=Ǵ'SxX6:400 ʈ B 9OĢF0N,(38e* E.KWoٜʑ\\FAT.f*{,ȹE$0h(Rj$YbrI@_qz/L@;``X%#YT *2 j$LVVŚ,s`s}HFuff7J 'e S)' k rlR-S=Hz3FFxKJ+XL殑UXNsbӂ F20 yD%=ɟ.SV݊GmC(ʙZ,&l'H̍ҁc9sFmLӧ1bZu.!W{Nz, `Y]ࠚػ^9KSvBɖ8 r~b@0!wy6͊b ׽o4%|sޱλ?Tx 9'|+9>&'&̾ԾڝO*$}/ޮhǴ9s<FLlk=j~񶇞H]([G}8fHsX~Υ_FZ &B YIض,YbUSe(ߤ܍X 3ikB YGqYR׹G@ޡ.=!rB"x;^E*ϟnM^~ QePoe߈Y7J~ޘB:~s9t(8MY2${T 5K̩L*'7 bӈ'7b.ȣ9?9+Ĺ (y{`8@ '< 33 B 7*9|@˹7 ܿ8OcAh<AB@; U9@ۭ.2>k;(LCD+ Kb C A/À8t$t(;ĝ;OLCçN+\ )D KGzEL e F<ʯt4+h 8.K.ȗGzL_ǯtKSLltk[L"Lx˽Ǥp LL\B/4J$ܳ$M&\gTŠ=#̽ܫKC4JdyMM=ͣ|ˎ h[E#+T* J$aACKƔ4<,6;uU(wG4zOlX M" *ͼ7363t}uÎ)!wXҔ)QJK8d!\,)Q3+Om3*M-kј%&5DM+Ez" -8'-)<-RP5R6SRV}Q,ʀF]&/He_eK\`*Ek %*aVvva&τ0ΰ  ؐKbS PDB "TL\EQ*vbvq {yb5~6f7v89k$.2]DAa+6CFd,_1ۏ$X"948K6&+NNOdE(I[Јj9Pd*dNZfWr`Ȁ $b6ceA0bdhEWk|P SNd%aip6fr6gce(kړ݀gvQ sz{Ng"RWA|&6}i@zbK-F4vh Z]sH9 sQE89蘖i{ha&]SpeE\sd,V⚦]v% Ƈv(Nn )q ?pb3ehF蛖1ֵTj)n椎eg~4NvߩnkD:HSQdZDk&lelaBĮ-嬒D̦DZ6kNk&H9LƖhK"Djخ>NkjN=`#yh𴱅P?1Ac66f֜֜6ˆY"PQ48es9QV>kܖVЮX41!ul DnvN^sŴ 򬺞+6q oOpyVQ x#Li I!pmrWkŽqFڸ!P[G X403^W!'"C~6l0KQr5IJ‘d0~n3ДlحdȎ2sV?7r%mꖛt(Nϋp$sJGiFeWX0asS^u};sniper/M82A1_2.gif 777 0 0 36513 11324701415 7102 0GIF89aԎkH%ܒzbsJP2DZksHW%UI=1s%PkkHH%%sPkHs%WUI=1s%PkH%zbsJP2kH%ܹssPPԎkH%zbJs2PDZksHW%UI=1%sPkkHH%%sPkHs%WUI=1%sPkH%zbJs2PkH%ssPPkH%ܒzbsJP2ǎkHs%WUI=1s%PԱkkHH%%sPksHW%UI=1%sPkH%zbJs2PkH%ssPP¶zzznnnbbbVVVJJJ>>>222&&&𠠤!,.{НKp#;'=ϭs >ҜJ&(౷95,˙+3I6꼹ưϛɱ<$=@DgΥKjE*&9,gL7*! fJA9rpᾕ{uqs퐳3n޽4RuKN1B ><ڴ)fFJQf>QDITYsZ/Y{VT,h(C(čLy,L.L'uܫݛ=uի̩n:ƍ+NhPdiU;0criFH\NBQoK]TeeBo FsU4sEwy9i,reGwVU,vAATߑ5A)f$~Nc=IozNTV'3LmJ3"Ve?J 飞4 `1_j֏rxPAIvi:X&Ib)8TF۫ep3:dѦ&n-mmKevk]Au:9K:4WM 0$6]L5zլgYتf=I(X_ +g ttH5V>u$ʉZWS14}m>,,Lv6xb\ֱn9ل!VlFװRI5Lw$sDc)kTnekGtHNVg[9׉(ԪW4gG[MdN~EtٽJ/nfHD9yQH UI#<:CYC\]%硇,i՝w]E(=^͝7ؕE{ e:Ho|byZ`FZm3O=O{2k3gJKIi L7yd^0E T2#LF CEYL5fS(Da|X2InbIbh R^##{;qT'dicczU~]Gv`j缨TJy';9_ɕq2)%^3/$ك2+0=7(ZBE_;J56A.KFPN2T1'MqWWC V܂K\q4/qFK@z΄;1(ǯt<=xÆiNWh0-Ve%c'?,o!ްȝuF ѣ2bKea2DLXxHSLfбvA>*0%sNo4,ebjD D0k(.Π)Nd*dG9i>S$.m@f4/Mw$ 1Hxr1=hHGM$trHhO61I|ܤ$D\=)cQYVkQ E5d1O%eAբQԐPJXrFZ%,Egl@kBΊ<8Gbbpc89ю>j1CT;O[SB,O.:5i@PD%G7Eys]OUJ,c^8 a݃EciaC}uXG9Jw#0zc 9z7gkIɿSzcyqK!;GdIWf_Lˣe2nIlyrkf.%G@'HSGQ$c>\BmC E0.:yLnjbF}<]˘{Qn1l+&wh(/^oSi`zG`L6E )SgM"5dTeU%%s Z׺xuG]=̓ hD?$IjNE-_NۗV0-3qjHQ{W٫K9eWԨ脟Y: <ޑbȭpzwG Me/9Ktv9C'f\jkXV3F+I :mکl>@|DZA(!.YкR#`#s^j(󟇰}=kAф>_y(dWVc_7S qUfQ|C R\7;2R3HTLVVClZ]ZWz ]yE:bPpu{'Yp " XrPi@Aq!24 bQo $UUqGbZ>7aj ?9HWHRQ(\)VAoKb%{pVx6re5Bj b}I'r׀w#s#X 8r1BTCYCgmt%9ǘl3e?!6y2VoEb5nImda4YVoOuXvI$]M1kL#:xbr$eZqZoFMHD:jGU/E,mWPc-p7D:la!l:4S)+Qbo[t%k;u#{]uk/8H[':<#(67G+␊V(]RX\7RZlC57`bq:h{6cF?yK]:ib6 k;)pOIc9XDXkFo]37#F7A@F\dh}IkjSi3U&}b}p'LyBb 0HW0MPRg]BY:R\t%Dkyk@uuއ6q"2r7s&oلqFXjB)$=JGjL,[!{}>(&&MGuFi:,L]B RbRXO8/]Pxb?{"eilcK2+*&{kA@uV3@#!#j3jr@J)Q9 5#DXTvJ7:0됛PpgjF9D3Xa5V:].mQ XNAY6M))28V}AFd1qx!ɱ)WQb XD0MbpbvuFIX`R% 0@:Gri7&긠azH9h7e22YGA:_s9I$Z֔gzvMfjRXe(aFƟ(h\Ġh O5b3s,t3BKR/3;oHa0˩MmusvgyjtNHWzrb5u]ј#zVCKٯ4J<ٓX#8mg"wC3ánn k A+ps:g8;tdZOX/˩;s>X`Y2$v Z@dHg\yqT 97Fu-$3Aj &&!"+Qg(*Y]dCu)C๤Ӻꀺ鐼CQ"vzrk'rS+feq8˨eA4D&DS h &p7L W8̔/% B"%ȔZtM9'HAv_N1dKNC}S8ڑBCdc+q VЄf[~xWZRR)C+J}nWa\Wxw #%5Y)t8AL%|xn3wH@D)p !kĿu_ÅZ ]~YxjS¼+WaqT-vXF"4A]ttstcUs7x1L6 / j6 ?]ljt$Q˴+ _Nly< ᭺:7@5͖6P@q"Q7TI}<ӑÇ"!3$ d c0zfjr,~b58kpzԓ*B}DI:03W^@gAwXw43Ԫ@R+!-!f]Yv/Sl8<K2XB6E)RQ e1m"ЗH>!5Pc@ŋ6bH:8I7Ѥ4*+:8Dopt/8:]my'U Pђ\7 5̂ijYv|$|F(5 gxmQ%l 7&wQ=gD'Jli.?NxZqqMTvTY'CY"R514N7j4f5uwV*f$'xC$ഏ[js p0%T#:ٲ6$6< DQTg 7JI"Q9J1cӓ\b1u3!HfTRQKdH ~#"88coqkTk&Ӄ؈ZL; jQ) AJpB+5Ft\-t)(?MI+/r?͒S3E{ͤ5@XOV}Ӓ٠*t)5s4s.KFK/ b`FS7:|֩Ktֱ{7y{;ڙlx޹KiɓD+WNrweG9 z+7()9戒UjX#u9;˚VjV9V 9EcuST;nL޵sgM|ET^[͕3g̛7w>w9skD9xSÈ$ V\yɫO(UGi 04tF#v'yqnK6tH8؉w,:.F+9v,2;GPs“Pۊ8u1/ڋqkJ܃k2Lr s\"@_:tAm$CNt3HCƇiOwr3u&btSIǜ/Ƌ,y΁kKoվRj=s*=2ߪ2++ʱR%6/YLGwL!1wP<?(6C!RJEqÔua^{ {SIMUR*3;q鬳2 ̹6kRbkWVueeklf$F+bz)P'縆5C3uȢ-y Үx! SuBIV3(u.&Y'8-蒝2˧4<$n*%FWU׼Ŕ2'5,@yt/hFMt\:z6u :jY>,rv̹瀧{K[nKqjMRn{lK#jaWvjhj'a߰6ihugec"1\%iBpB995-= fsp:Ǔ_Q KRҕA+/K= }0E$/2sAetlU835K Dt@Q_ <ҕ(УGkH»ֈ$?;"tPG:7>!-Ɔijl+ {ep4!8| kj"'"TUb". Y1z5DK]ɀ`G6B"w`j]B`%9Lq)ۘ^G>-8<˘qt世jz$6GKQs_c$rhbT\r$aL NCrI*0`k<>2(qCm-ojQň2Ml(:sA>g)vӒHf1e4X9oDYDJRRjT%CL3p8δ ;.Bj0\@ᢓ$0H3Ex0C̨vR$̃"u"C"3  ~`9˝WJ\ OYSڗhiQR2:R5VF0-y(锬s]TPWJojxֈ냁9s5 7LepQik!Mf9 _q}{ ]|!-MOH͎騱i'N+f5"PiC$c!J԰=^#]#;x GD8|NRNi),f&!$!hxS Sz̑>x P v4sZhA2|ԑij\¨9:2=vp:ʸav"m&)*4A;΢ t w)I!;)?AQx #-ʩZ;u@P+|#ت{d0 +=a:69Kr8@>:6Kbq {±ƚv s@2a'\7ْqO4P%9 )҈0/9L 92E#F0uu-&0k)5i6. xh,9 yM ͈!:;CœX #0F#i; x`+}!BJ&Q * C23 eFC$ʒ]9/3/Pz+*uCH: , CFx (9W353xȁكĨGO .,Ș{Y3;d;A؊񽍙422H>"75Nk" ¿$QsHc>B FQ%!T2ni=ȳN7 ҘV ?#㦹Ю 4A+0 $ks4w#3̋"᪭ ,KQKˌөָr>w6 IA0: ja+ u@ªv@xUq  \7:\Csی0 9t2t@6|K>"Qi Ш0#y\w(t9` 1AƜB2ẅЈw|DAџ[$2HrH|@QV>p7~șhpȫ;+x88wl6H|"Pjy ?sD ۼ NGlːJdѽӎAʉ)(P,1 [ Kߛԋh 2zqF)#p Ԣ8b!͈z@df-qKr iKpOI*0 n1&ňMIM!'T14R0Ƹ ٙ@ ,Җ XOYݰ"hV/܍ /E>3@xjs1(1Աd7f!7ESeѱX;$"䈑!u@20mБbɀ wX!I3‡Ҏ{h:!X(QHB䣕z16+1H+A ڮE߀+cY'ZO` &]5k j? Y' Pk<Aw* ݑ< ӴaR"IĨ1 EcU'jg-ԘQi40ِ SX s8Cnz;ZHJ!"ނhUWuR:XIr<1;6%4Q-_ I]]e@C<pО"2C9*+3LcB.5[QRD}P@ P +bʴQ| @p#+CXe؁tx)!`œydƐYE&w x 4'&J<*YrSy jѷ 9ȭZlZ'a v[Ó)wqضqczZ >b !qF^<ּ+liDZQE _\r~rW/i9a+x$X`);8V* l&  ܆4umrP1 QS!Q|H^hwr"HyP x^+a&`:7j-aRCTtq8=˳;;8b ћ{_$;vc=NAݬX)17 ZI V9qEdbr0?xoz3du(iМ zgV}Dr&Q!{RHk{ c:zPdKbۿ؎;13;PSgx8  'T>Lϳ:+vN}5ZN-pDٶ5!N1$܁ʡٳ؝+.ճҏ+){رdٮ;Ѭ-г<)QTt_95WBݎ%spPBdf ay`aRHiiY`s}ԟ z)'A49q9= P!fB"TmxEFt^缃ICq|?O9ƚeGO;0sA9IDVxxF:E9&\j#O=cCXؘ$&bm9j{'%jq) ymAcsA"GHcjYg; O=/ b]JH1>d62uGvS"'f9Z_y[랞ApOrҗd;ұׁ~ ZvX" "lOS@(n <>A)尭֮P\Ő)ٳ<=>M6ϩ G:6eR7[gI1>( g8Ď =l܇ܑ /*K!УCC DbTWL|tB ́ nvcK X -[,`eH;՞cH9\X"m&C$j$.EVԆ2W9H87ʑu]ҋW]O=(]ėǚ,啉#rcXbj]IL7x̤塌b[ͭAZ-qN׿uSKhX?KhUH d 5MUf9l4ӄWA=zY4 r,3HQcl98K+3:`@[!>Y;֣%-)ղ<أE@,Ň.Q-|9EY5sأgyV::#>A^pJRkK]d R>AX fa}+*6G`5׸ȨLʼnx\G*׶~QLRhg.Dtc-QfI^rtTEzI[Ҽ5==AMbDsI.@". :BY4D#:ʓQR )` (V0\RȲ('ѣ5S!h(b./ƋDv-+|D#Aj>(V9ad+;q!)#pb+kXlXXO`4הUL\ud1~vAX}sҪ_ˡu-Ʀ3Tauח: NW="`.:糹 ԦVAӧt^п  m ڵgd w!2_XK^dVfa=QFzA/ l7L Rt??t8LiVVleppp|(|CgG^]WHmS`ia=L_8nH^ pRB''1Wȶ a8JD0JPv7rXH' _E>>222&&&𠠤!,b0G\9 &\hPar#Ȑŋ3j8qŎ=6,ȊMTiNJ))L-m꼩@ (ѣGzN^M  9CjV E" [dBs\mAIi\6 ԧ_K[[jHT~DJXêgULHϠʭ;3'iut` ?cNrm0ri-cneΡӫw^JTح>,wwGn,L=};ZgI~54phggm6{$Ariw`L ֠vF$hwH܊Iͭ}wDwYGQ֛c'FND'YzjgcdU`aםH!C~եx_V-٤U]5דQCbiYFaZU~8&pM5K%:ISQʕ#gD~vi9^)"8ĵؤq)Vmj_QЦFRnC:*DڧĂ aDf"$UHӆy9և +nʊ[Y%)oūV/h#jqil04& d7arR8Z!W:0zګ)p&|.C"9Sj2<Ω&[.jω4SĉUw:.+WWp6:N;+'XoI:h,:餣:NŃX.XoˉN;=̣N|5j`H?+mC9t6;a#;Ab`Zg[x;s:M+y00j~`<>2iRZ㿮崧Ob_;;> ,1+<[]:`:{m^Ѯq.t ΠE>fU0ǁXTLWʭ} xc9ju'ьfT^<䡎{pHvkf6x zbos:p|v _8zlAwl*kv#H!7("tǎxLtǞTۈiI;b(/%vG"x(H?£Dufp`>Aћ޲ѕ%<# ѣz1s`mlDiI(;uÀh;n]fa7QYU͕(eiH̵̻9  { \?#guÙ[>a wЅk;>࠳<ȸt vt Yk.MQlk,C:cc7G/9dvHU `:6<DqZJh݇TbխLz)FC<$; 7+Y2TksJ|Hnl݋9aXUҵַ&7&P 9Cml(4L[$= zGHn{j][2R9L)4U[G$oŧهjG/e<\X\;Ȧ dRW Jg w昤MqyD]VddsTɣǦ3&2+i&lψݪsJ!mj0" Kc,es22Z()cQ㮐(,qSi:bK0_tmm {4d-lum"ِǔ\*KH&#ؕ:V]报߾k8Z,tL vu2u-,+K㖰3lCTEU7 aAA8"6-K3"L-:["ufWedߔ>w}ڗ} s)QUu%wK.CۅP'Dm6KHZ)75?XLb1itWjdf69ǵ>cFL> Ʊ琄F9$ف'հ°`<AY,dftKLHDtj%`sss׀3z;6gEui@9ٔ_wf&6;_%N#zqGH\@_Cb;zez6Hp3a5_C$9Ie!J M:X KxX,~,9%cGrjB<_7O;rk,tMQD!^0C@TuT?EsH1&كJ\5O 7a=&SBzP(VueNhC(~ЈGtHgEvb ;rSMN̳qUQH`Id˜wF_vK37TkF3OLsG,AqaNńHPcW8>F4^AzhV%VEuUCHKCJx?sUFH5$5AG26_VFtFSpTN.z5wjgf&EuVgE0;y9Օ=4_y0v,"d7~zBg#1[\[fgrfffxF-;@i%U|XDPzYWtVUVFuj[be/TIn6=(WvL#YiSuYX9'D $Pi. T?MwA6^NeMГD?W@)DxZU8iRP~8GH I'GqmIt;:i1Vp}EaUԄc7_ᩙkDMDu?!G9 E lS{iÞt0:$9#Zn tF=fo7}cw)(~i0#f/Y-JIy6C0\_ڨ2Ti8jCp*jE}4kq#74sZRXDŽMiCskPt # )#3騾:fuk79pVfv'9̄WՐ7fHfKsHr%~EU*GY;_F$8,[#8@49:svHfJhQV k$ufت} YrGfouiVIU 3 cU%BVb\sjs9\d,n%IzE\-uz{zafvgE^\٥$&TjϤ;Hu9Bz/^ڶ2yBT6_njEQ'SAoִګCbx9jj ǫ##[\Q+wBgwdb@a$HMC.C6߄  ŒKP}Jn  (˵Ck[s\_9/Qfkwȶ%a ,`nduKLjj;e+)mLG3웳OJFc ';fʋ^;  <2x91O56h8Q1X0D=JD0`37 K+4S&D˼˼|'2ԗd;%boFMFr0XQEZEU{6RR ӓkþ *&4r4I4[J=K q | LG0Hگi4o6Dik@0BN4YM0bƒĸB0Z788|r<ǨLYZ 4ZGtS Zpڒ)6l<D3؛*sbX"FJ:&k uƨ||ջ2H vx8YAQ+Pl\x?zX쿟 æʨl \a||Af,>i{%Ud.@KvD`m{.GVQ"u5iFFzpU][* ;$ dnpɫԒKwl//-HZǝwW4FP~9Y@C n&*z刌t+]ǐ5 Hy\}ب,؍nu uA+YI+PeE(*BHRV=J$Գ lZ-Њ}؎Ǿ`pܾaP;? VOLIS5xڗF{}|ǧsá|0mNgXԱzݿm]Ў ]m:)kiԱ wkeVBdeܽz\McFUHpmT^#xm-=MpTwinet h@VZϢ YмU5Y nGn/W}*X^ Z=7N5;nm|B~4m&)J spV0) ۆm@R|ZnЍ\ʅp?/>} Lة㬮]qQvfx~*b=aY l-V>$\{<ܳk r8~9FMb }hºΧdO4}99?ވ﮽դ Wn]ܱ`n~N6NsN9..: HZKZ(?byNn;dST?o2⧵ r _R֓-i)?OLG>®;Lv|_L) ߫^V^!8x{mG*]& 9S\MjO)\xesޝN ~8-?V 5zmuN~0GŪU=;pe@׼5>d]o܂;>_ dzO`.ٲMct%'iC;Z`5hzg6t8|⃟S4s?,E7&gr ..teRW~hK+>s)B'[|a xcoS$m0H!!O~V  jGBe3T_rroYjau<8CK,=Om5$`i;?}݄{Z;q\)YAH%Ac"ttLd/!' -!r655añZUb)WbVeb8[Ď(4K<Ĩ8iäHCP>8и,4갔lTi3Y4S *zj 1).3>)|siFd.oT DQrXJq&f:pg"GԀup{ Oi1]Q,~Q3J!^rYT[B'Dp<XÅb3T(FupM$8B0QyzT@TdB'5|lZl$4Il6Ԕ e#Ca m0 E*LA J;rOI9@q>>222&&&𠠤!,ԫGoA7^A 5qBz$>$8OǍŋ'oxɃ(ҝwv|Ń.Μ"9bG3x4%O, ÌvԉDCn-U\YnmXلpnY-Zh,߰IN )gG_&N_&L\5bӬNxjBX4ӑRC7OD]?CEӬX\vjHU6^;Vc[ ~XxqOnI4w7mgS*~o_{R~9}DkyUve ]V`vUVUzO"v%Z~FIWT֍HOQ.b\aAGO zƙS~Ym<9梀=Qk\uؐfjՇV–HIĒgRyf2j3[aC~Ӂ1ڦ_cJ͉Rđ GYEޘ JxAosZ QTJ#9y:SN)U " 6vww.}}ڛ{gẞj2_;md1zH!ƖUn_[jK`v4۴]Q7&w%5wOQZvgH)I<ݴS1I|w'N3HIՇpj)೐ k@>fnav$R'BEE2U*bcA ګzHٯ{#g,Ͱ*gʶٕ<2;4Jwgd4\(rI֦9)w )q,tBZH/g_$u|1_^N%?iDI㨬6jF#zo:2Zf죒E5""s/{,Xɮo5;϶r%f/A^V#$hk3=mR8ɡ2hܘ$IQ;:ɒdn6 @ Y"%I8%{-O T]>xP\w)݄S쩪W܋^6Rrqr%/Y}ҍ-Z,u6GeB\1^&k~U)E'Mr&HeG˘2rٵ}AcWcN.!^ "$>Mh|IY}[B }i ש&mAD7 9jH&q\X}5+Ҩ5)zRx[Cu@e+h3;jW?;uvDTa]A- V *qU:RM*^"J1=knrS|mY _խO5?5ު"(f7sYJDHFJ5g 9Y[q akcFY DqYO}^H& KTf0|C oW)r EajLcJ=9I)Ҵ jAz$iDrWY:vԄ1_ߴ5I1SfŒJjbc)_T3|(]ΣuaE^QFv(zHv:Ա|4 Ru1P& NelizR|9 U H`7Pka!M2b 8KځE+Xvfa<5M+ JIhd'<nOEG(UiƋEPn),K=oEYCen<`d3۟v'F GSIQrn+(2isW̦40YDFJq%apFn u QSv i#Gz';zg$7T^f"d-39 6{+^McNhҚ^Y+,i]~UĤcVM:1d\SVl->6uG>vG$V W(%S&x'E$g@ݵ6kx{{6pt (qBf#RCEyD<8@l#]ݡ GdsS)eQ4h|l cͲR!цpVGCc(GR`aBiCBp+7RBrTTa(KW)IpŶ":e_X!Ta[PlOa$:4 c"HdIDG"g8#Tf1Vfw9†ey8U> 7,a$6慝ҳ3L3!;w@ً=%S<3j-|j:\aRXhTt:K1nc,!pVph^B@=916C$XL$3HZ7Q. b+?D}?v}XtiE!E[R&)  s+tX&vrc843xЦ9VNnrycjijbц0(M3f]< hzHy(@%q[`e4NnS ?^e nXӕ^l.Ko3Bukx]šp918@9,UP~<V?P>ɔMUZ7~L?k.0sZL D*1Qf@;ƖWpOqu\AN"YTVS)ˉ@fV[ӈ{,l~b $N VU|Trr(sb>08n41q4'}EA)YUC&簜YQB5eBS Ih,Z.J։ DDE((Aph% і|a+8R-,uRy'YHvcpE-(HՂyZ5u,2 $t]ڙ*TNWY/UOrtHj6)`n RKܱA3Mt5Q"X:{Vbbx[ڕl̶9X 8=v*iV䞳'Kؓ򀌳+q^舸JQElfkgB29Ezɂq2:,TÅJ,XsG$!z!Xv>~'.nR})X} v!0 \`%|rmYLgʰT7[ {N@24:{RY+"!t!!/szwuks CqS\`l55`cH%{w5 {獔юI7pl@{~Ϩix!`Q{P/bq#xtc>n+.t&nV`r; 6~Umu-M8f)ͫVx6ih:V]ۏ{v@BnxQ q|碫ϑcٶ1DF^c;0,ݕēռt:뉲AR@CANىqkc[)s]g7%ug"|Ȕ>]…5pmv4! b$` klf#8s %]Xi|o:!⬖9{-YҠ[YO'c nc{0d:y֌7M[G:-*'룗3kǁqSb61R,PϟH|S՘:z}ޔە`VOl+0IW.q?!ܳj Uogh {8~eqp*q:1G-+gͩZV(."vUWW*yMnUVw[+9C}1*vGL~6mͰ!j(}O%>>3TIO.1V:.i^OZǸyW-x!O^= 0x5|CyĘ = ^<RΝvޥlʕ,߁ IR'G)0N9{HL>%pCI+)Ċ$zHbϧ덼X0-*(Î1ҋ.h҆4RE9+6+ɫ:<˳ޥO={&uB/Is0y}NHme'H%)υ5u]]ubޔ&u'vLP+Ƶ!kX[~=w"L4V˦WDD_\+ l7Vb':<""􈯏2;LhÉjBbH2*J#j!κ˻w[@;w!Fۈ(Gۑ#Bt92ʐ$*0iCp!KEҊ%|CI 4ǝ"Υ̂ m胲%3lPK &̍02ԅ{:L/";;7:0/YgJPOIgO|a' ,(% mL+|Ϊȯ,4Bt꒴ZTgEJժ" wЈM08b*UuY:#j'kVtAGG%T8z)Jd^ $$ 0Ϲ|Vm>)Kh(< Rڱ's}&?=+Qe:B4H yO*#lD7bRrZبb׬FYuB e=21%]i`<*o42i^Д*ҙ0y)3K;<9mN7|DQiՉ[Qm~!_ɽ]_<(#pmY4{ůNjٷ"^eBFɼJ+K#)D:@`cTMVapIXTN,' H xDLdiɿ-1[R: #ˊpJ ;G0Fp Q- V;iZFN$c@2E'|gJD,xd !nNE,-b_V!{ѝ0 Ѡ&}VWԊVkU2jpWpa ᫐Vb97dy (fQ(| `4/"n (jKYDQD!w0ΏJy_G@~ed+06I-}k#)s3yZ$b؄L:tcIiQƜ0w4e(IBj{9Y;5mœW E8;U WQ|IAŋJMU!fJ*Kq=tlKuAy϶"t‹i𵘮o#`oS/k0@㏪Ʊ ͹'!G*vw5j˃LGw bKyB[שNZs;sxr ,r[ظB2>ɡ\bZ)3~ .s ( zZ >ca~ (AYü, r 2,{ 8&w{< @ʃ<0h#ɢiwҎjSw Er`֣qZ#h&IwC >4t8 u8 BUCV p2|K拼/S$BǼ/<*H;~ŧDC@X$Τr#0y@ HȧJ{(:瀪H%OtX ٺM >@;s  I|LTEPtu <]]pЄELX>:|H El\LT2PsHy +H1 ޼1Y-"<`ľ>,NQL{N ,QʠT@t@ EtE^BeO,HEChO%T!ą|y̙ccEceULJ2TVהViXtkTI%RV\Oxsh2p DZө{H#s/&xՀvv` /b SK꜂UZ]\JY{13J& 8 sup-x- C*ibƢ;(,~<Ge?T|J0]U1aӥԱLT2_5<"y+dpUaIx%u(utßC[x y3OXEO#MT=]Gя8VRBdRh7eȆKtZ*ذXu着"s³ ݞpdQNpuྟTcda}aa_;س{Os[cs}f1gхJ]Cvy  o@#Y @9x9 1ЋR,f3SsXJ/$T7Z;F]g|JMRr8@Pu3K[U OM.]ܥYu6M : 0n< /"e0MBX\OC-]<,홲׹0tTLA<Ӊ ~f~gn >_կcAuؑ+KâC;+\iAuvia8XXֲ_{ּXT tLm#ueͤE^Iݫmgm(]oގa]ҜϽF+>vs[dEKMHL~l Dc@ɾn"!CfI)2kCfuc\/q7 זEZIcy~koٝT8..P9MLdpu門 Udɕ0Ŝ3/ݧg6O%CX֥ena&QpMfNRma$]  DK#nI~曝&hmvP n !5ڌ4A1Ҏdgsg@O]T[_RL-$!:_$a[.=R J]Xvh)Ihu SR/o%%\wo]eefuwJC%*|@rTb7aES9r]vvY9rs1R+{`E{wVe}Ek]x%g^y_OqsNRy&}]r`LlK\>2-(P=#` Kwt`gZiwmnu{VgqG[cXlMtpM6wm7 4|Vo XqS8~iWösf}[_MW6JeoW}~Cc9۪XޗtGg !5Svhp {1P &h`Ċ:,(D =F*-nLiR8\Ȝ :q%^Bĸ'L2E1Dt!%H@sYV;&$)^d 7 K0)Ɨ0kP1›tS h4I] jD=7d]wH}Ƒ&cb"^!>5Ei8TT#Ђ*Rơb݁3'R$NGFX,m,cO@Ɉ;BBr )!%uMeKkQf'>t45!57$&t̨6ՑqayTFVeih( ҭXM̔HLvUmpB㒼K.LIF]6r'1:>ֳ0R%O/ hwț&2M)8(xa&X֊'"5BbF%/e>ifFDέƸ)Uֻ̔3q{PN0gÁ;,|_n%"F mF y-$@gc4qfV01UMm`ZqiNV%G*{((2'Y\'Yr [E'L[3ʁ4ձ`8=7uZGþhvz_(oSX]ILwOj7O-h".Mc )vMisX}5N%das iZf `k{n/5ki}D3"T %LNCD*y]Ӫb Kl}%OȈ$ d<&~7=!dXNژ^a8v+$ʇ0y bg}z]Y4w tŠ Z>]Zf% D0`CⰝa׍Y\9HAZ&aEuf]! pb]|]Eae@.]gTR:ׁt\L^\`Dա" h&DIfAJlebW'vdX^A INE'vJULUP}#8یcG0qzGhE`0ImMRUFjEue˕%XM\<ډt4ąe:.Ԥ(J@*̟]N]b 'c~Yb[ŀ)ե\Q&MEaF0/UMf d~]AfVq&GM:B"O%kOi]߉_~F_^-HN8)|^)naZU(b&0A![☍&R66aB!2͜H8d(fŗhzmCIх]ycbZ"V)dU u+֩_iQgdIb}%"LdNfF\shp`oID*e8ާNA%߂lkv- m]s1 vP Shh=e.Y^HVYV"&Yp|Hgg1v%^,& i/M,LiB_JD7eVW>JpH!Yݎtad\E=N6ܼٛ!ٔi֛ƌm6?@dk*T}XFiKS~fFqщg%ha'E*ާ]fe )L]\Q(,2/kb> mSR&.zҰnFEQ]U9VD*kvҮ]SzZ \RlJGSvvh7_W-VOayN_+dP!9Y| GgV&ȟݖS=/`XF6FΉ$hhqd OPe)ǢrD`)8$AnXc2 g=vNXn*VIq' te+Xnqm\V`].j=|~Bfo1llo$& ^$+q',>Dw4F7AFG&s9|~si=>4?y.n?d>e =`rn1*E+"7sʄrw-,bzm1nkKéyibR4Ưt^`Z'iq׍M9QF \bQ#g }ne-mӮr/SsT~AVuEڞet@;sniper/Run.e 777 0 0 232 11323412471 6301 0%eden include("sniper.scout"); include("sniper_input_functions.eden"); include("constants.eden"); include("sniper.eden"); include("sniper.donald");sniper/shooter.gif 777 0 0 2306 11324117341 7564 0GIF89a PԎkH%ܒzbsJP2DZksHW%UI=1s%PkkHH%%sPkHs%WUI=1s%PkH%zbsJP2kH%ܹssPPԎkH%zbJs2PDZksHW%UI=1%sPkkHH%%sPkHs%WUI=1%sPkH%zbJs2PkH%ssPPkH%ܒzbsJP2ǎkHs%WUI=1s%PԱkkHH%%sPksHW%UI=1%sPkH%zbJs2PkH%ssPP¶zzznnnbbbVVVJJJ>>>222&&&𠠤, P ];v W; pq;zU8OF?(rdȏ$EDyrJ-+L5ԙ3N=AtQcE|\ S!D{_ݱ^aԼfQk ;sniper/sniper.donald 777 0 0 16706 11325211670 10127 0/* sniper.donald --- donald file of this empirical model, * simulating a sniper shooting. * * Author: Yi Yao, 2010 */ %donald # Slider of horizontal wind speed---------------------------------------------------------------------------- # _||_ # \ / # V viewport WINDSPEED_H line windSpeed_line real windSpeed_pos windSpeed_line = [{windSpeed_pos * 150,0}, {windSpeed_pos * 150,20}] # Slider of vertical wind speed---------------------------------------------------------------------------- # _||_ # \ / # V viewport WINDSPEED_V line windSpeed_V_line real windSpeed_V_pos windSpeed_V_line = [{windSpeed_V_pos * 150,0}, {windSpeed_V_pos * 150,20}] # Wind direction section-------------------------------------------------------------------------- # _||_ # \ / # V viewport CLOCKPANEL circle clockPanel clockPanel = circle({75, 75}, 75) line windDirec real windDirec_X real windDirec_Y windDirec = [ { 75, 75} , { windDirec_X , windDirec_Y } ] # Scope section-------------------------------------------------------------------------- # _||_ # \ / # V viewport SCOPE # targer ----------------------------------------------------------------------# point targetCentre targetCentre = { 100, 100} circle targetC_1, targetC_2, targetC_3, targetC_4, targetC_5 targetC_1 = circle(targetCentre, 5) targetC_2 = circle(targetCentre, 10) targetC_3 = circle(targetCentre, 15) targetC_4 = circle(targetCentre, 20) targetC_5 = circle(targetCentre, 2) line targetHoriLine line targetVertLine targetHoriLine = [ {80, 100} , {120,100} ] targetVertLine = [ {100 , 80} , { 100, 120} ] arc targetArc_1, targetArc_2, targetArc_3 targetArc_1 = [{ 85 , 125}, { 115, 125 }, 230 ] targetArc_2 = [{ 75, 110}, { 85 , 125}, 50 ] targetArc_3 = [{ 115, 125}, { 125, 110 }, 50 ] line targetBody_1, targetBody_2, targetBody_3, targetBody_4, targetBody_5 line targetBody_6, targetBody_7, targetBody_8 targetBody_1 = [ {75, 110} , { 75,50} ] targetBody_2 = [ {125, 110} , {125,50} ] targetBody_3 = [ { 75,50} , {125,50} ] targetBody_4 = [ { 85,50} , {85,30} ] targetBody_5 = [ { 90,50} , {90,30} ] targetBody_6 = [ { 110,50} , {110,30} ] targetBody_7 = [ { 115,50} , {115,30} ] targetBody_8 = [ { 0,30} , {200,30} ] # The zoom parameters ----------------------------------------------------# # The scale of zooming, could be 0, 1 ,2, 3 ,4 or 5. int zoom_factor zoom_factor = 5 # The zooming is based on this number. int zoom_base zoom_base = 14 # result of zooming modification int zoom_modif zoom_modif = zoom_base # The coordinate of the scope view lines int scope_view_H_Xmin, scope_view_H_Ymin, scope_view_H_Xmax, scope_view_H_Ymax scope_view_H_Xmin = 15 scope_view_H_Ymin = 100 scope_view_H_Xmax = 185 scope_view_H_Ymax = 100 int scope_view_V_Xmin, scope_view_V_Ymin, scope_view_V_Xmax, scope_view_V_Ymax scope_view_V_Xmin = 100 scope_view_V_Ymin = 15 scope_view_V_Xmax = 100 scope_view_V_Ymax = 185 # scope view frame coornidates -------------------------------------------# # The coordinate of the scope view circle real scope_view_circle_centreX, scope_view_circle_centreY, scope_view_circle_r scope_view_circle_centreX = (scope_view_H_Xmin + scope_view_H_Xmax) * 0.5 scope_view_circle_centreY = (scope_view_V_Ymin + scope_view_V_Ymax) * 0.5 scope_view_circle_r = (scope_view_H_Xmax - scope_view_H_Xmin) * 0.5 circle scopeCircle scopeCircle = circle( {scope_view_circle_centreX , scope_view_circle_centreY} , scope_view_circle_r) line ScopeHoriLine line ScopeVertLine ScopeHoriLine = [ {scope_view_H_Xmin , scope_view_H_Ymin} , {scope_view_H_Xmax ,scope_view_H_Ymax} ] ScopeVertLine = [ {scope_view_V_Xmin , scope_view_V_Ymin} , {scope_view_V_Xmax ,scope_view_V_Ymax} ] # Result section-------------------------------------------------------------------------- # _||_ # \ / # V # The rifle and ammo parameter of the deflection formula real rifle_MV real rifle_BC # The range according to the zoom factor shooter selected earlier real rifle_range # The deflection from the impact point, calculated by the fomular real fomular_deflection_X real fomular_deflection_Y # The deflection real deflection real deflection_X real deflection_Y # The coordinate of the impact point real impact_spot_X real impact_spot_Y viewport RESULT_DONALD # targer ----------------------------------------------------------------------# point R_targetCentre R_targetCentre = { 100, 100} circle R_targetC_1, R_targetC_2, R_targetC_3, R_targetC_4, R_targetC_5 R_targetC_1 = circle(R_targetCentre, 5) R_targetC_2 = circle(R_targetCentre, 10) R_targetC_3 = circle(R_targetCentre, 15) R_targetC_4 = circle(R_targetCentre, 20) R_targetC_5 = circle(R_targetCentre, 2) line R_targetHoriLine line R_targetVertLine R_targetHoriLine = [ {80, 100} , {120,100} ] R_targetVertLine = [ {100 , 80} , { 100, 120} ] arc R_targetArc_1, R_targetArc_2, R_targetArc_3 R_targetArc_1 = [{ 85 , 125}, { 115, 125 }, 230 ] R_targetArc_2 = [{ 75, 110}, { 85 , 125}, 50 ] R_targetArc_3 = [{ 115, 125}, { 125, 110 }, 50 ] line R_targetBody_1, R_targetBody_2, R_targetBody_3, R_targetBody_4, R_targetBody_5 line R_targetBody_6, R_targetBody_7, R_targetBody_8 R_targetBody_1 = [ {75, 110} , { 75,50} ] R_targetBody_2 = [ {125, 110} , {125,50} ] R_targetBody_3 = [ { 75,50} , {125,50} ] R_targetBody_4 = [ { 85,50} , {85,30} ] R_targetBody_5 = [ { 90,50} , {90,30} ] R_targetBody_6 = [ { 110,50} , {110,30} ] R_targetBody_7 = [ { 115,50} , {115,30} ] R_targetBody_8 = [ { 0,30} , {200,30} ] # impact point ----------------------------------------------------------------------# circle impact_point_circle impact_point_circle = circle({impact_spot_X, impact_spot_Y}, 2) sniper/sniper.eden 777 0 0 11454 11325214506 7575 0/* sniper.eden --- This eden file contains all the basic calculation functions and the * initialisation function. * * Author: Yi Yao , 2010 */ %eden ## generate the output string of horizontal wind speed --------------------------------------------- ## _||_ ## \ / ## V ## initialisation of windSpeed_pos _windSpeed_pos = 0.0; ## converting user input which is a percentage number to real speed value. temp_windSpeed is _windSpeed_pos * (max_windSpeed - min_windSpeed) + min_windSpeed; ## Ensuring the value of temp_windSpeed is within the range of the possible input. input_windSpeed_temp is (temp_windSpeed > min_windSpeed) ? (temp_windSpeed < max_windSpeed) ? _windSpeed_pos * 5: 5 : 0; input_windSpeed is input_windSpeed_temp * 2.237; ## Typecasting strings input_windSpeed_str is str(input_windSpeed_temp); ## generate the output string of vertical wind speed -------------------------------------------------- ## _||_ ## \ / ## V ## initialisation of windSpeed_pos _windSpeed_V_pos = 0.5; ## converting user input which is a percentage number to real speed value. temp_windSpeed_V is _windSpeed_V_pos * (max_windSpeed_V - min_windSpeed_V) + min_windSpeed_V; ## Ensuring the value of temp_windSpeed is within the range of the possible input. input_windSpeed_V_temp_1 is (_windSpeed_V_pos - 0.5); ##input_windSpeed_V_temp_2 is ( input_windSpeed_V_temp_1< 0) ? ## input_windSpeed_V_temp_1 - 1 : input_windSpeed_V_temp_1; input_windSpeed_V_temp is (temp_windSpeed_V > min_windSpeed_V) ? (temp_windSpeed_V < max_windSpeed_V) ? input_windSpeed_V_temp_1 * 10: 5 : -5; input_windSpeed_V is input_windSpeed_V_temp * 2.237; ## Typecasting strings input_windSpeed_V_str is str(input_windSpeed_V_temp); ## generate the output string of wind direction ----------------------------------------------- ## _||_ ## \ / ## V ##initialisation of wind direction _windDirec_X = 100; _windDirec_Y = 100; ## converting user input coordinate to real screen coordinate. temp_windDirec_X is _windDirec_X + 400; temp_windDirec_Y is _windDirec_Y + 200; ## Ensuring the value of temp_windDirec is within the range of the possible input. output_windDirec_X is (temp_windDirec_X > 400) ? (temp_windDirec_X < 550) ? _windDirec_X - 75 : 550 : 400; output_windDirec_Y is (temp_windDirec_Y > 200) ? (temp_windDirec_Y < 350) ? _windDirec_Y -75 : 350 : 200; ## calculation the wind direction components. hypotenuse = sqrt( pow(output_windDirec_X , 2.0) + pow(output_windDirec_Y , 2.0) ); output_windDirec_X_str_temp is input_windSpeed * (output_windDirec_X / hypotenuse); output_windDirec_Y_str_temp is input_windSpeed * (output_windDirec_Y / hypotenuse); ## Typecasting the output strings output_windDirec_X_str is str(output_windDirec_X_str_temp); output_windDirec_Y_str is str(output_windDirec_Y_str_temp); ## generate the result of shooting, display the deflection ----------------------------------------- ## _||_ ## \ / ## V _rifle_MV = 2850.0; _rifle_BC = 0.768; _rifle_range = 1100.0; _scope_view_circle_centreX = 100; _scope_view_circle_centreY = 100; _scope_view_circle_centreX = (_scope_view_H_Xmin + _scope_view_H_Xmax) * 0.5; _scope_view_circle_centreY = (_scope_view_V_Ymin + _scope_view_V_Ymax) * 0.5; _scope_view_circle_r = (_scope_view_H_Xmax - _scope_view_H_Xmin) * 0.5; sniper/sniper.scout 777 0 0 44371 11325216207 10023 0/* sniper.scout --- This scout file contains all the window layout configuration. * * Author: Yi Yao, 2010 */ %scout # Horizontal wind speed slider section -------------------------------------------------------------------------------------------- # _||_ # \ / # V point windSpeed_slider_origin = {400,70}; integer windSpeed_slider_length = 20; integer windSpeed_slider_width = 150; string max_windSpeed_str; string min_windSpeed_str; string input_windSpeed_str; window windSpeed_bar = { type: DONALD box: [windSpeed_slider_origin, windSpeed_slider_origin + {windSpeed_slider_width,windSpeed_slider_length}] pict: "WINDSPEED_H" border: 1 xmin: 0 ymin: 0 xmax: 150 ymax: 20 fgcolour: "gold" bdcolour: "SlateBlue" sensitive: ON }; window windSpeed_slider_title = { type: TEXT string: "Horizontal Wind" frame: ([windSpeed_bar.box.nw + {0, -18}, 1, 15]) fgcolour: "red4" alignment: CENTRE }; window windSpeed_slider_max = { type: TEXT string: max_windSpeed_str frame: ([windSpeed_bar.box.se + {-30, 5}, 1, 5]) fgcolour: "red4" alignment: LEFT }; window windSpeed_slider_min = { type: TEXT string: min_windSpeed_str frame: ([windSpeed_bar.box.sw + {-5, 5}, 1, 5]) fgcolour: "red4" alignment: LEFT }; window windSpeed_slider_input = { type: TEXT string: input_windSpeed_str frame: ([windSpeed_bar.box.s + {-20, 5}, 1, 5]) fgcolour: "gold" alignment: LEFT }; display windSpeed_slider = ; # Vertical wind speed slider section -------------------------------------------------------------------------------------------- # _||_ # \ / # V point windSpeed_slider_V_origin = {400,140}; integer windSpeed_slider_V_length = 20; integer windSpeed_slider_V_width = 150; string max_windSpeed_V_str; string min_windSpeed_V_str; string input_windSpeed_V_str; window windSpeed_V_bar = { type: DONALD box: [windSpeed_slider_V_origin, windSpeed_slider_V_origin + {windSpeed_slider_V_width,windSpeed_slider_V_length}] pict: "WINDSPEED_V" border: 1 xmin: 0 ymin: 0 xmax: 150 ymax: 20 fgcolour: "gold" bdcolour: "SlateBlue" sensitive: ON }; window windSpeed_slider_V_title = { type: TEXT string: "Vertical Wind" frame: ([windSpeed_V_bar.box.nw + {0, -20}, 1, 13]) fgcolour: "red4" alignment: CENTRE }; window windSpeed_slider_V_max = { type: TEXT string: max_windSpeed_V_str frame: ([windSpeed_V_bar.box.se + {-30, 5}, 1, 5]) fgcolour: "red4" alignment: LEFT }; window windSpeed_slider_V_min = { type: TEXT string: min_windSpeed_V_str frame: ([windSpeed_V_bar.box.sw + {-5, 5}, 1, 6]) fgcolour: "red4" alignment: LEFT }; window windSpeed_slider_V_input = { type: TEXT string: input_windSpeed_V_str frame: ([windSpeed_V_bar.box.s + {-20, 5}, 1, 5]) fgcolour: "gold" alignment: LEFT }; window windSpeed_slider_frame_1 = { type: TEXT string: "" frame: ([{390, 50}, {565, 185}]) border : 1 bdcolour: "red4" }; window windSpeed_slider_frame_2 = { type: TEXT string: "" frame: ([{390, 50}, {565, 115}]) border : 1 bdcolour: "red4" }; display windSpeed_V_slider = ; # Wind direction section----------------------------------------------------------------------------- # _||_ # \ / # V point circleCentre = {475,275}; integer radius = 75; box upNumBox = [{475-6,200+1},1,2]; box downNumBox = [{475-6,350-12},1,2]; box leftNumBox = [{400-6,275-5},1,2]; box rightNumBox = [{550-9,275-5},1,2]; box xCompoLabelBox = [{400,370}, 1, 15]; box xCompoBox = [{400, 370+20}, 1, 11]; box yCompoLabelBox = [{400,370+40}, 1, 19]; box yCompoBox = [{400, 370+60}, 1, 11]; box windDirec_frame_Box = [{390 , 195} , {565 , 450}]; string output_windDirec_X_str; string output_windDirec_Y_str; image shooter = ImageFile("gif", "shooter.gif"); window shooterImage = { type: IMAGE box: [{467,235}, {485,315}] pict: "shooter" border: 0 }; window clock_panel = { type: DONALD box: [{400,200}, {550,350}] pict: "CLOCKPANEL" border: 1 xmin: 0 ymin: -5 xmax: 152 ymax: 152 bdcolor: "SlateBlue" fgcolour: "SlateBlue" sensitive: ON }; window upNum = { type: TEXT frame: (upNumBox) string: "12" fgcolor: "gold" alignment: CENTRE }; window downNum = { type: TEXT frame: (downNumBox) string: "6" fgcolor: "gold" alignment: CENTRE }; window leftNum = { type: TEXT frame: (leftNumBox) string: "9" fgcolor: "gold" alignment: CENTRE }; window rightNum = { type: TEXT frame: (rightNumBox) string: "3" fgcolor: "gold" alignment: CENTRE }; # display the components of the wind direction---------------------# window x_compo = { type: TEXT frame: (xCompoBox) string: output_windDirec_X_str fgcolor: "gold" alignment: CENTRE }; window x_compo_label = { type: TEXT frame: (xCompoLabelBox) string: "Crosswind : m/s" fgcolor: "red4" alignment: CENTRE }; window y_compo = { type: TEXT frame: (yCompoBox) string: output_windDirec_Y_str fgcolor: "gold" alignment: CENTRE }; window y_compo_label = { type: TEXT frame: (yCompoLabelBox) string: "Head/Tail wind: m/s" fgcolor: "red4" alignment: CENTRE }; window windDirec_frame = { type: TEXT frame: (windDirec_frame_Box) string: "" border: 1 bdcolor: "red4" }; display windDirection = ; # Scope section----------------------------------------------------------------------------- # _||_ # \ / # V point aiming_startpoint = { 100, 315 }; box button_up_Box = [aiming_startpoint+{70,20},aiming_startpoint+{110,40}]; box button_down_Box = [aiming_startpoint+{70,50},aiming_startpoint+{110,70}]; box button_left_Box = [aiming_startpoint+{20,50},aiming_startpoint+{60,70}]; box button_right_Box = [aiming_startpoint+{120,50},aiming_startpoint+{160,70}]; box button_fire_Box = [aiming_startpoint+{20,85},aiming_startpoint+{160,105}]; box button_zoomin_Box = [aiming_startpoint+{190,25},aiming_startpoint+{240,55}]; box button_zoomout_Box = [aiming_startpoint+{190,80},aiming_startpoint+{240,110}]; box aim_movement_frame_Box = [{100,315}, {280,450}]; box aim_zoom_frame_Box = [{280,315}, {350,450}]; integer scope_frame_Xmin = 15; integer scope_frame_Ymin = 15; integer scope_frame_Xmax = 185; integer scope_frame_Ymax = 185; window scope_frame_window = { type: DONALD box: [{100,50}, {350,300}] pict: "SCOPE" xmin: scope_frame_Xmin ymin: scope_frame_Ymin xmax: scope_frame_Xmax ymax: scope_frame_Ymax border: 1 bdcolor: "red4" fgcolour: "SlateBlue" }; string button_up_relief = "raised"; string button_down_relief = "raised"; string button_left_relief = "raised"; string button_right_relief = "raised"; string button_fire_relief = "raised"; string button_zoomin_relief = "raised"; string button_zoomout_relief = "raised"; string button_up_bgcolor = "SlateBlue"; string button_down_bgcolor = "SlateBlue"; string button_left_bgcolor = "SlateBlue"; string button_right_bgcolor = "SlateBlue"; string button_fire_bgcolor = "purple"; string button_zoomin_bgcolor = "SlateBlue"; string button_zoomout_bgcolor = "SlateBlue"; # the text window for displaying the range ----------# string display_range_str_1 = "1100"; string display_range_str = "Range: " // display_range_str_1 // " yards"; window display_range = { type: TEXT frame: ([{105,55}, {165 ,115}]) string: display_range_str fgcolor: "gold" alignment: LEFT }; #aiming buttons -------------------------------------# window button_up = { type: TEXT frame: (button_up_Box) string: "UP" fgcolor: "gold" bgcolor: button_up_bgcolor alignment: CENTRE relief: button_up_relief sensitive: ON }; window button_down = { type: TEXT frame: (button_down_Box) string: "DOWN" fgcolor: "gold" bgcolor: button_down_bgcolor alignment: CENTRE relief: button_down_relief sensitive: ON }; window button_left = { type: TEXT frame: (button_left_Box) string: "LEFT" fgcolor: "gold" bgcolor: button_left_bgcolor alignment: CENTRE relief: button_left_relief sensitive: ON }; window button_right = { type: TEXT frame: (button_right_Box) string: "RIGHT" fgcolor: "gold" bgcolor: button_right_bgcolor alignment: CENTRE relief: button_right_relief sensitive: ON }; window button_fire = { type: TEXT frame: (button_fire_Box) string: "FIRE" fgcolor: "gold" bgcolor: button_fire_bgcolor alignment: CENTRE relief: button_fire_relief sensitive: ON }; window button_zoomin = { type: TEXT frame: (button_zoomin_Box) string: "ZOOM IN" fgcolor: "gold" bgcolor: button_zoomin_bgcolor alignment: CENTRE relief: button_zoomin_relief sensitive: ON }; window button_zoomout = { type: TEXT frame: (button_zoomout_Box) string: "ZOOM OUT" fgcolor: "gold" bgcolor: button_zoomout_bgcolor alignment: CENTRE relief: button_zoomout_relief sensitive: ON }; # The frames --------------------------------------------# window aim_movement_frame = { type: TEXT frame: (aim_movement_frame_Box) string: "" border: 1 bdcolor: "red4" }; window aim_zoom_frame = { type: TEXT frame: (aim_zoom_frame_Box) string: "" border: 1 bdcolor: "red4" }; display scope = < display_range / scope_frame_window / button_up / button_down / button_left / button_right / button_fire/ button_zoomin / button_zoomout/ aim_movement_frame / aim_zoom_frame >; # Rifle Type section----------------------------------------------------------------------------- # _||_ # \ / # V point rifle_startpoint = { 10, 480 }; point rifle_des_startpoint = { 80, 480 }; box button_rifle_up_Box = [rifle_startpoint+{10,15},rifle_startpoint+{60,45}]; box button_rifle_down_Box = [rifle_startpoint+{10,55},rifle_startpoint+{60,85}]; box rifle_frame_1_Box = [rifle_startpoint , rifle_startpoint+{70 , 135}]; box rifle_frame_2_Box = [rifle_startpoint+{70,0},rifle_startpoint+{340,135}]; box rifle_frame_3_Box = [rifle_startpoint+{340,0},rifle_startpoint+{840,135}]; box rifle_type_Box = [rifle_des_startpoint+{3,10}, rifle_des_startpoint+{267, 25}]; box rifle_caliber_Box = [rifle_des_startpoint+{3,35} , rifle_des_startpoint+{267 , 50}]; box rifle_ammo_Box = [rifle_des_startpoint+{3,60} , rifle_des_startpoint+{267 , 75}]; box rifle_MV_Box = [rifle_des_startpoint+{3,85} , rifle_des_startpoint+{267 , 100}]; box rifle_BC_Box = [rifle_des_startpoint+{3,110} , rifle_des_startpoint+{267 , 125}]; string button_rifle_up_bgcolor = "SlateBlue"; string button_rifle_down_bgcolor = "SlateBlue"; string rifle_type_str = "Accuracy International AWP"; string rifle_caliber_str = "Caliber: 7.62mm"; string rifle_ammo_str = "Ammo: .338 Lapua Magnum/8.6x70mm"; string rifle_MV_str = "Muzzle Velocity: 2850 fps"; string rifle_BC_str = "Ballistic Coefficient: 0.768"; integer rifle_type = 1; window button_rifle_up = { type: TEXT frame: (button_rifle_up_Box) string: "BACK" fgcolor: "gold" bgcolor: button_rifle_up_bgcolor alignment: CENTRE sensitive: ON }; window button_rifle_down = { type: TEXT frame: (button_rifle_down_Box) string: "NEXT" fgcolor: "gold" bgcolor: button_rifle_down_bgcolor alignment: CENTRE sensitive: ON }; # The description --------------------------------------------# window rifle_type_win = { type: TEXT frame: (rifle_type_Box) string: rifle_type_str fgcolor: "gold" alignment: LEFT }; window rifle_caliber_win = { type: TEXT frame: (rifle_caliber_Box) string: rifle_caliber_str fgcolor: "gold" alignment: LEFT }; window rifle_ammo_win = { type: TEXT frame: (rifle_ammo_Box) string: rifle_ammo_str fgcolor: "gold" alignment: LEFT }; window rifle_MV_win = { type: TEXT frame: (rifle_MV_Box) string: rifle_MV_str fgcolor: "gold" alignment: LEFT }; window rifle_BC_win = { type: TEXT frame: (rifle_BC_Box) string: rifle_BC_str fgcolor: "gold" alignment: LEFT }; # Two pics------------------------------------------------# string rifle_picName_1 = "awp_1.gif"; image rifle_1 = ImageFile("gif", rifle_picName_1); window rifle_pic_1 = { type: IMAGE box: [{357,490}, {597,590}] pict: "rifle_1" border: 0 }; string rifle_picName_2 = "awp_2.gif"; image rifle_2 = ImageFile("gif", rifle_picName_2); window rifle_pic_2 = { type: IMAGE box: [{603,490}, {843,590}] pict: "rifle_2" border: 0 }; # The frames --------------------------------------------# window rifle_frame_1 = { type: TEXT frame: (rifle_frame_1_Box) string: "" border: 1 bdcolor: "red4" }; window rifle_frame_2 = { type: TEXT frame: (rifle_frame_2_Box) string: "" border: 1 bdcolor: "red4" }; window rifle_frame_3 = { type: TEXT frame: (rifle_frame_3_Box) string: "" border: 1 bdcolor: "red4" }; display rifle = ; # Result section----------------------------------------------------------------------------- # _||_ # \ / # V point result_startpoint = { 600, 50 }; point result_data_startpoint = {600 , 300 }; box result_frame_1_Box = [result_startpoint , result_startpoint+{250,250}]; box result_frame_2_Box = [result_data_startpoint , result_data_startpoint+{250,150}]; box deflection_frame_Box = [result_data_startpoint +{5,10}, result_data_startpoint+{245,50}]; box deflection_X_frame_Box = [result_data_startpoint +{5, 55}, result_data_startpoint+{245,95}]; box deflection_Y_frame_Box = [result_data_startpoint +{5,100}, result_data_startpoint+{245, 140}]; string deflection_X_str = " Horizontal Bullet Deflection: 0.0 inches"; string deflection_Y_str = " Vertical Bullet Deflection: 0.0 inches"; string deflection_str = " Total Bullet Deflection: 0.0 inches"; window result_pic_window = { type: DONALD box: [result_startpoint+{1,1} , result_startpoint+{249,249}] pict: "RESULT_DONALD" xmin: 15 ymin: 15 xmax: 185 ymax: 185 border: 1 bgcolor: "SlateBlue4" fgcolour: "gold" }; # displaying the deflection details --------------------------# window deflection_win = { type: TEXT frame: (deflection_frame_Box) string: deflection_str fgcolor: "gold" border: 1 bdcolor: "SlateBlue4" alignment: LEFT }; window deflection_X_win = { type: TEXT frame: (deflection_X_frame_Box) string: deflection_X_str fgcolor: "gold" border: 1 bdcolor: "SlateBlue4" alignment: LEFT }; window deflection_Y_win = { type: TEXT frame: (deflection_Y_frame_Box) string: deflection_Y_str fgcolor: "gold" border: 1 bdcolor: "SlateBlue4" alignment: LEFT }; # The frames --------------------------------------------# window result_frame_1 = { type: TEXT frame: (result_frame_1_Box) string: "" border: 1 bdcolor: "red4" }; window result_frame_2 = { type: TEXT frame: (result_frame_2_Box) string: "" border: 1 bdcolor: "red4" }; display result = ; display screen = windSpeed_slider & windSpeed_V_slider & windDirection & scope & rifle & result; sniper/sniper_input_functions.eden 777 0 0 31657 11325215533 13114 0/* sniper.eden --- this file hold all the functions relating to the display * * * Author: Yao Yi , 2010 */ %eden /* Getting the user input horizontal wind speed value. */ ## Changing H wind speed -------------------------------------------------------------------------- ## _||_ ## \ / ## V proc changing_H_windSpeed : windSpeed_bar_mouse { if (windSpeed_bar_mouse[2] == 4) { _windSpeed_pos = windSpeed_bar_mouse[4] / 150; } } /* Getting the user input vertical wind speed value. */ ## Changing V wind speed -------------------------------------------------------------------------- ## _||_ ## \ / ## V proc changing_V_windSpeed : windSpeed_V_bar_mouse { if (windSpeed_V_bar_mouse[2] == 4) { _windSpeed_V_pos = windSpeed_V_bar_mouse[4] / 150; } } /* Getting the user input horizontal wind direction angle. */ ## Changing the horizontal wind direction ------------------------------------------------------ ## _||_ ## \ / ## V proc changing_hwindDirec : clock_panel_mouse { if (clock_panel_mouse[2] == 4) { _windDirec_X = clock_panel_mouse[4]; _windDirec_Y = clock_panel_mouse[5]; } } /* Getting the user input of aiming. */ ## Moving the scope view as user inputted ------------------------------------------------------ ## _||_ ## \ / ## V proc press_button_up : button_up_mouse_1 { if ( button_up_mouse_1[2] == 4) { button_up_relief is button_up_mouse_1[2] == 4 ? "sunken" : "raised"; button_up_bgcolor is button_up_mouse_1[2] == 4 ? "NavyBlue" : "SlateBlue"; _scope_view_H_Ymin = _scope_view_H_Ymin + 5; _scope_view_H_Ymax = _scope_view_H_Ymax + 5; _scope_view_V_Ymin = _scope_view_V_Ymin + 5; _scope_view_V_Ymax = _scope_view_V_Ymax + 5; scope_frame_Ymin = scope_frame_Ymin +5; scope_frame_Ymax = scope_frame_Ymax +5; } } proc press_button_down : button_down_mouse_1 { if ( button_down_mouse_1[2] == 4) { button_down_relief is button_down_mouse_1[2] == 4 ? "sunken" : "raised"; button_down_bgcolor is button_down_mouse_1[2] == 4 ? "NavyBlue" : "SlateBlue"; _scope_view_H_Ymin = _scope_view_H_Ymin - 5; _scope_view_H_Ymax = _scope_view_H_Ymax - 5; _scope_view_V_Ymin = _scope_view_V_Ymin - 5; _scope_view_V_Ymax = _scope_view_V_Ymax - 5; scope_frame_Ymin = scope_frame_Ymin - 5; scope_frame_Ymax = scope_frame_Ymax - 5; } } proc press_button_left : button_left_mouse_1 { if ( button_left_mouse_1[2] == 4) { button_left_relief is button_left_mouse_1[2] == 4 ? "sunken" : "raised"; button_left_bgcolor is button_left_mouse_1[2] == 4 ? "NavyBlue" : "SlateBlue"; _scope_view_H_Xmin = _scope_view_H_Xmin - 5; _scope_view_H_Xmax = _scope_view_H_Xmax - 5; _scope_view_V_Xmin = _scope_view_V_Xmin - 5; _scope_view_V_Xmax = _scope_view_V_Xmax - 5; scope_frame_Xmin = scope_frame_Xmin - 5 ; scope_frame_Xmax = scope_frame_Xmax - 5; } } proc press_button_right : button_right_mouse_1 { if ( button_right_mouse_1[2] == 4) { button_right_relief is button_right_mouse_1[2] == 4 ? "sunken" : "raised"; button_right_bgcolor is button_right_mouse_1[2] == 4 ? "NavyBlue" : "SlateBlue"; _scope_view_H_Xmin = _scope_view_H_Xmin + 5; _scope_view_H_Xmax = _scope_view_H_Xmax + 5; _scope_view_V_Xmin = _scope_view_V_Xmin + 5; _scope_view_V_Xmax = _scope_view_V_Xmax + 5; scope_frame_Xmin = scope_frame_Xmin + 5 ; scope_frame_Xmax = scope_frame_Xmax + 5; } } proc press_button_fire : button_fire_mouse_1 { if ( button_fire_mouse_1[2] == 4) { button_fire_relief is button_fire_mouse_1[2] == 4 ? "sunken" : "raised"; button_fire_bgcolor is button_fire_mouse_1[2] == 4 ? "firebrick1" : "purple"; temp_result_Fo = 166 * 1.08 * _rifle_BC * sqrt( _rifle_MV ); temp_result_numerator_H = 79.2 * _rifle_range * output_windDirec_X_str_temp; temp_result_numerator_V = 79.2 * _rifle_range * input_windSpeed_V; temp_result_denominator = _rifle_MV * ( (temp_result_Fo / _rifle_range) - 1.5 ); _fomular_deflection_X= temp_result_numerator_H / temp_result_denominator; _fomular_deflection_Y= temp_result_numerator_V / temp_result_denominator; _impact_spot_X = _scope_view_circle_centreX + _fomular_deflection_X; _impact_spot_Y = _scope_view_circle_centreY + _fomular_deflection_Y; _deflection_X = _impact_spot_X - 100; _deflection_Y = _impact_spot_Y - 100; _deflection = sqrt( pow(_deflection_X , 2.0) + pow(_deflection_Y , 2.0) ); deflection_X_str is "Horizontal Bullet Deflection: " // str(_deflection_X) // " inches"; deflection_Y_str is "Vertical Bullet Deflection: " // str(_deflection_Y) // " inches"; deflection_str is "Total Bullet Deflection: " // str(_deflection) // " inches"; } } proc press_button_zoomin : button_zoomin_mouse_1 { if ( button_zoomin_mouse_1[2] == 4) { button_zoomin_relief is button_zoomin_mouse_1[2] == 4 ? "sunken" : "raised"; button_zoomin_bgcolor is button_zoomin_mouse_1[2] == 4 ? "NavyBlue" : "SlateBlue"; if( _zoom_factor >0) { _zoom_factor = _zoom_factor - 1; scope_frame_Xmin = scope_frame_Xmin + _zoom_modif ; scope_frame_Ymin = scope_frame_Ymin + _zoom_modif; scope_frame_Xmax = scope_frame_Xmax - _zoom_modif; scope_frame_Ymax = scope_frame_Ymax - _zoom_modif; _scope_view_H_Xmin = _scope_view_H_Xmin + _zoom_modif ; _scope_view_H_Xmax = _scope_view_H_Xmax - _zoom_modif ; _scope_view_V_Ymin = _scope_view_V_Ymin + _zoom_modif ; _scope_view_V_Ymax = _scope_view_V_Ymax - _zoom_modif; _rifle_range = 100 * ( (2 * _zoom_factor) + 1 ); display_range_str_1 is str(_rifle_range) ; } } } proc press_button_zoomout : button_zoomout_mouse_1 { if ( button_zoomout_mouse_1[2] == 4) { button_zoomout_relief is button_zoomout_mouse_1[2] == 4 ? "sunken" : "raised"; button_zoomout_bgcolor is button_zoomout_mouse_1[2] == 4 ? "NavyBlue" : "SlateBlue"; if( _zoom_factor <=4 ) { _zoom_factor = _zoom_factor + 1; scope_frame_Xmin = scope_frame_Xmin - _zoom_modif ; scope_frame_Ymin = scope_frame_Ymin - _zoom_modif; scope_frame_Xmax = scope_frame_Xmax + _zoom_modif; scope_frame_Ymax = scope_frame_Ymax + _zoom_modif; _scope_view_H_Xmin = _scope_view_H_Xmin - _zoom_modif ; _scope_view_H_Xmax = _scope_view_H_Xmax + _zoom_modif ; _scope_view_V_Ymin = _scope_view_V_Ymin - _zoom_modif ; _scope_view_V_Ymax = _scope_view_V_Ymax + _zoom_modif ; _rifle_range = 100 * ( (2 * _zoom_factor) + 1 ); display_range_str_1 is str(_rifle_range) ; } } } /* Getting the user input of rifle type. */ ## Moving the rifle display as user inputted ------------------------------------------------------ ## _||_ ## \ / ## V proc press_button_rifle_up : button_rifle_up_mouse_1 { if ( button_rifle_up_mouse_1[2] == 4) { button_rifle_up_bgcolor is button_rifle_up_mouse_1[2] == 4 ? "NavyBlue" : "SlateBlue"; if(rifle_type >1) { rifle_type = rifle_type - 1; if(rifle_type == 1) {rifle_picName_1 = "awp_1.gif"; rifle_picName_2 = "awp_2.gif"; rifle_type_str = "Accuracy International AWP"; rifle_caliber_str = "Caliber: 7.62mm"; rifle_ammo_str = "Ammo: .338 Lapua Magnum/8.6x70mm"; rifle_MV_str = "Muzzle Velocity: 2850 fps"; rifle_BC_str = "Ballistic Coefficient: 0.768"; _rifle_MV = 2850.0; _rifle_BC = 0.768; } if(rifle_type == 2) {rifle_picName_1 = "M24_1.gif"; rifle_picName_2 = "M24_2.gif"; rifle_type_str = "Remington M24 SWS"; rifle_caliber_str = "Caliber: 7.62mm"; rifle_ammo_str = "Ammo: .300 Win Mag/7.62x66mm"; rifle_MV_str = "Muzzle Velocity: 2900 fps"; rifle_BC_str = "Ballistic Coefficient: 0.533"; _rifle_MV = 2900.0; _rifle_BC = 0.533; } if(rifle_type == 3) {rifle_picName_1 = "M82A1_1.gif"; rifle_picName_2 = "M82A1_2.gif"; rifle_type_str = "BARRETT M82A1"; rifle_caliber_str = "Caliber: .50 inch "; rifle_ammo_str = "Ammo: 12.7 x 99mm (.50 BMG) M33 45.8gram"; rifle_MV_str = "Muzzle Velocity: 2800 fps"; rifle_BC_str = "Ballistic Coefficient: 0.670"; _rifle_MV = 2800.0; _rifle_BC = 0.67; } if(rifle_type == 4) {rifle_picName_1 = "M200_1.gif"; rifle_picName_2 = "M200_2.gif"; rifle_type_str = "Cheyenne Tactical M200"; rifle_caliber_str = "Caliber: .408inch "; rifle_ammo_str = "Ammo: Lost River,10.36x78mm, 27.2 gram"; rifle_MV_str = "Muzzle Velocity: 2900 fps"; rifle_BC_str = "Ballistic Coefficient: 0.934"; _rifle_MV = 2900.0; _rifle_BC = 0.934; } if(rifle_type == 5) {rifle_picName_1 = "PSG-1_1.gif"; rifle_picName_2 = "PSG-1_2.gif"; rifle_type_str = "Heckler & Koch PSG-1"; rifle_caliber_str = "Caliber: 7.62mm"; rifle_ammo_str = "Ammo: .308 Winchester/7.62x51mm"; rifle_MV_str = "Muzzle Velocity: 2500 fps"; rifle_BC_str = "Ballistic Coefficient: 0.462"; _rifle_MV = 2500.0; _rifle_BC = 0.462; } } } } proc press_button_rifle_down : button_rifle_down_mouse_1 { if ( button_rifle_down_mouse_1[2] == 4) { button_rifle_down_bgcolor is button_rifle_down_mouse_1[2] == 4 ? "NavyBlue" : "SlateBlue"; if(rifle_type <5) { rifle_type = rifle_type + 1; if(rifle_type == 1) {rifle_picName_1 = "awp_1.gif"; rifle_picName_2 = "awp_2.gif"; rifle_type_str = "Accuracy International AWP"; rifle_caliber_str = "Caliber: 7.62mm"; rifle_ammo_str = "Ammo: .338 Lapua Magnum/8.6x70mm"; rifle_MV_str = "Muzzle Velocity: 2850 fps"; rifle_BC_str = "Ballistic Coefficient: 0.768"; _rifle_MV = 2850.0; _rifle_BC = 0.768; } if(rifle_type == 2) {rifle_picName_1 = "M24_1.gif"; rifle_picName_2 = "M24_2.gif"; rifle_type_str = "Remington M24 SWS"; rifle_caliber_str = "Caliber: 7.62mm"; rifle_ammo_str = "Ammo: .300 Win Mag/7.62x66mm"; rifle_MV_str = "Muzzle Velocity: 2900 fps"; rifle_BC_str = "Ballistic Coefficient: 0.533"; _rifle_MV = 2900.0; _rifle_BC = 0.533; } if(rifle_type == 3) {rifle_picName_1 = "M82A1_1.gif"; rifle_picName_2 = "M82A1_2.gif"; rifle_type_str = "BARRETT M82A1"; rifle_caliber_str = "Caliber: .50 inch "; rifle_ammo_str = "Ammo: 12.7 x 99mm (.50 BMG) M33 45.8gram"; rifle_MV_str = "Muzzle Velocity: 2800 fps"; rifle_BC_str = "Ballistic Coefficient: 0.670"; _rifle_MV = 2800.0; _rifle_BC = 0.67; } if(rifle_type == 4) {rifle_picName_1 = "M200_1.gif"; rifle_picName_2 = "M200_2.gif"; rifle_type_str = "Cheyenne Tactical M200"; rifle_caliber_str = "Caliber: .408inch "; rifle_ammo_str = "Ammo: Lost River,10.36x78mm, 27.2 gram"; rifle_MV_str = "Muzzle Velocity: 2900 fps"; rifle_BC_str = "Ballistic Coefficient: 0.934"; _rifle_MV = 2900.0; _rifle_BC = 0.934; } if(rifle_type == 5) {rifle_picName_1 = "PSG-1_1.gif"; rifle_picName_2 = "PSG-1_2.gif"; rifle_type_str = "Heckler & Koch PSG-1"; rifle_caliber_str = "Caliber: 7.62mm"; rifle_ammo_str = "Ammo: .308 Winchester/7.62x51mm"; rifle_MV_str = "Muzzle Velocity: 2500 fps"; rifle_BC_str = "Ballistic Coefficient: 0.462"; _rifle_MV = 2500.0; _rifle_BC = 0.462; } } } }