0•e0ê �ÿÖu§ðp8·d%qyH6o;]ÉA¦ö�Þÿôôô”°ÂVl†3ÿó33ïþïþïþ?ÿÿó?ÿÿó?ÿÿó?ÿÿó?ÿÿ??ÿÿ3?ÿ3ó?ÿÓýßýßýßýßýîîîÿîîîÿîîîÿîîîÿîîîÿîîîÿîîîÿîîîÿÿîîîÿîîîÿîîîÿîîîÿîîîÿîîîÿîîîÿîîîwwwwðÿÿðÿÿðÿÿðÿÿÌÌÌÌÌÌÌÌîîîîþÿÿïþÿÿïþÿÿïþÿÿïþÿÿïîîîîîîîîîîîîÿÿÿïÿÿÿïÿÿÿïÿÿÿïÿÿÿïîîîîîîîîÝÝÝÝ ÐÝÝÝÝ ÐÝÝÝÝ ÐÝÝÝÝ ÐAÝÝÐÝÝ ÝÝ33333333333333333333333333333333@@33ïþïþ33ïþïþïþ33PUUPPPPPßý33ßýßýßýßý33ßýîîîÿîîîÿîîîÿîîîÿîîîÿîîîÿîîîÿîîîÿÿîîîÿîîîÿîîîÿîîîÿîîîÿîîîÿîîîÿîîî33343311131343313113C13DDDîîîîîîîîîîÿïîîîïîîîîîîîîîîîîîîîîîîîîîîîîÿïîîïîîîîîîîîîîîîîîîîîîî ÐÝÝÞ033A@@DDˆˆ€€€ˆˆ@DDÌÌÌÌüÿÏÂÌÌÌÌ<ÃÿÏÌÌÿÏ,,ÌüÌÌÌÌÌÌÌÌÐ ÐîÞîÞÝÝÝÝîíîíîíîíÝÝÝÝíîíîíîíîÝÝÝÝÐÐ ÝÝÝÝÐÐ ÝÝÝÝÐÐ ÝÝÝÝÐÐ ÝÝÝÝÀÌÌÌÀÌÌÌÀÌÌÌÌ ÌÌÌ `P`PpwwÄÝ M PUf`ÝÍ îÜÍÝíÜ ÍÝÀÝÝÝÝíÞÝîÝÝÝÝíÞîÞÝÝÝÝÝÞÝÝÝÝíîÝîÝÝÿÿÿÿÿÿÿÿññʬÌʩʪ¬š©š™¬™™¬ªªªª©™ªš¯šŸùðùðÌ À̪¬ªªŸ©¯™ðŸŸÿ`‡©P @ïÍ0 V4p0P` P�@¸0 Ð^2È««««ºººº««««ºººº««««ºººº««««ººººDDADDDADDADDADDDADDA”™””DI”D”™”””™””DI”D”™”””™””DI”Dž àžîΜ �îîîž �ºîÎî  àîîîîÐÝ Ð Ð ÐÝ """""""""""""""""""""""""""""""""""""""""""""""""""""-""ÒÝÝ-ÝÝÝÝ"""Ò"""Ý""ÒÝ""ÝÝ"ÒÝÝ"ÝmÝÒÝÝÝÝÝÝÝÝÝÝíÝÝÝîÝÝÝîÝÝîîÝí~îÝîîîíî~çîçîîÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÞÝÝîîÞîîîîÞÝÝÝîÝÝÝîÞÝÝ~îÝÝîîÞÝîîÞÝîwîÝçîîîîîîîïïïïþþþþïïïïÿÿÿþïÿÿÿÿÿïÿÿÿÿÿî~îîî~çîïïï~îïç÷~ç÷îÿþÿþ÷÷ÿïÿïÿÀÌÀÌÀÌÌÌÜÝÌÌÝÍÌÀÌ ÌÌ ÌÌ ÍÌ ÝÝ ÝÌ"""r""r÷""÷ÿ""rw"r÷÷"÷w""w÷ò÷÷÷/"""'""ÿÿ""w'""÷'"ww"ÿw/"÷ÿ÷/UeUUfeWvffVffwfffvvugWuggwgwwwww÷wwww÷wð÷ðÿÿðpp�ˆ‰ �ˆˆˆ‰ˆ�‰ˆˆ˜ˆ™ˆ™™ ˜™™ˆˆ �ˆˆ˜ ˆ˜ˆˆ™™ˆˆ˜™™ @@@D@DDDDDDDD@DDDDDDDDD@D@DDDDDDD@DDDDDÝÝÝÝÝmÝÝÝÝÝÝÝÝÝÝÝmÝÖÝÝÝÝmÝÝÝÝÝÝÝîîîîîîî~îîîîîç~îîîîîîîîîîîîçîçîîÝÝÝÝÝÝÝÝÝMÔÝÝDDÝMDDÔÍÎìÜÍÌÌÜÝÝÝÝîíîÝÞíåíÝVåîfUîÝfå^fÖîUÖÝ^åÝîîîm-"""Ý"""Ý-""ÝÝ""mÝ""ÝÝÝ"mÝÝ&ÝÝÖÝÿÿÿÿÿÿÿÿÿÿÿðÿððððÐÝÝÀÜÍÀÌÜÌÌÌÜÍÜÌÌÝÐÍÌÌÐÝÜÝÐÝ ÍÌÌÌÌÜ ÌÌÜ ÌÌÌ ÍÌÜ ÝÌÝ ÝÝ ÿwwwÿÿ÷ÿÿwÿÿwww÷÷ÿ÷wÿÿÿÿÿÿwUw_UU÷UefÿÿefwWefWUffwUUeUUffUwwUuwÿfWuwfVwÿVuW÷fVuwVUu÷ffUUeUUUeffVUeVUefVVUeVUUffUffffffVe@DDD@@DDDDDD@DD@@@DDDDDDDDDDD@DDDDDD@@ 0"0"0ÂîÄàîDàDDªú""""HŒHDDDíî Oªªà0"0"0âîDàîDàDôªª""""NîDDMD ïîDðªª0"0"0‚î„àîDàDDªú""""LÈLDDDíî Oªªà0"0Ì0ŒîÌàîDàDDªú"",Ì LŒ LÌ DDíî Oªªà  0000 030  0000""" "2"30  BC2"2$2"#"2""" "2"30«ª°ªªDªªD ªð­ßß! ý ""ºª ºŠ ºŠJªŠDªúßßý- 3"DªªªDªªª ªýÝÒßßÿòýýýÒß?ß 03ºªªDºªªJºª¯Šýýßý"°ªª°¡ DDªÐߪ ýý ß""«ª«¨«¨¡HðÐß0#"«ª©šDªDߪ ""ó3ª ¡  ª¢þ î 3ºªšªª©ªšßªðþí0ï03#ªªIMÔ Þîí""�©ª�©ª�©ª@™ªß©ðýý0ß03"ªª™ª ª©Dª Dª ý Òß ""™ª©ª©šªªßª 3íÞ"ªªªªD™DªªíÞ "©ª©ªšªªDßDðþí ï ""ª ª ¡ Ú>3###àNîN""""ŒÄŒDDD»#""#""»»» ªªº­ªªî¯ªªêýªªªÒªJ¤"ýM¤33#"3#""N"BNDDNÔîÞJôDñª¯ª ªNªªJªªª@Dªª@DšÒß¡™òýýÑßßÔîÞôDú¯ªªªªª ™™© ™™©ª™ýýD3ÒßD°ª»«î ªªêýªªªß¯ªªýýªªÒß?J"ý=C#ŒÄNŒDNDDNÔîÞJôDúªªªª¤ªªDA ÐD@@HHDDDDDôôDD@@DDDDDDDDDDDDDD D@@HHDDDDDôôDD@DDDDDDDDDDDDDD@Ð D@@HHDDDDDôôDD@DDDDDDDDDDDDDD@DDDDD¤@DDD@@DDDD¤DDDDDDDDDD¤@DDD@@DDDD¤DDDDDDDDDD¤@DDD@@DDDD¤DDDDD@@D@@DDDDDD@@DDDD@@D@@DDDDDD@@DDD@@DD@D@DD@DDD@@DDDDê~„„„„„„¥¥¥ee=„„„„„„„„¥aa�‘’eee�‘’============================„„„„„„„„„„¥QQ ¡¢ eeeee�� ¡¢==?33??3333?======¥Ÿ ¥==33 33333==¥¯¥===33333333333333333 33?==¥ƒƒƒƒƒgg¥„„====333 33 33333? 3?3333===¥Dggš„„„„===================33333333333333? 3======?33 3==¥Š‹ggª„„„„„„=?>?33?3>33=== 3===========3333?=lllllllij=33>> 333333>3? 3?=...=?3=....===333==†††…††††‡‡%&'¬h�‘’&&&&=33>3333333? 3=============...==..(..==?3333==œœœœœœœœœœœgg756¬h ¡¢ Q&%&&&&&'==3>33 ========.................==33 3?3==!!!!!!!!!!!!gg�‘’5¬gb&&&Q%5'== >====>3>>=?(..(..==33 3====!|‚|!!!!!!gg  ¡¢5¬g6b&&'%&&'5=?3>===>3>==:::.....==?3333 3?3==! !!!!gg!!!¦¦¦hg@`b%%&&&'%&'A&&&& &&Q&& 5========?=====:..(..==333 3==! i!!!†***†hgb%&'8'C%D&&&&&&&'% &5Q=>>>>>>3 (.......11....===?33333===!,h!!!†)))†hg b88%'&&&'%&&&5=>><>>>3<EF========..................((..====333===!q!!!!!!!!!†††††hg07568%&'%5%5&&&5%&&&=>>>>>>3UV?==!!!........===33333?==!!!!!!hg 85%&'58�%&'5QQ5%5'Q5&&&'=========>=========!!!$!!!...:....===?33=hg6ee5 5 8B5%'8&' 55Q555===<==!!!##!!..(..=== 33 ?=ƒƒƒƒƒƒƒƒƒƒƒƒƒgAee555&&Q85555Q 5Q==< =!!!#""!!..,..===3333=lllgcee55  =========!!!$,--!!../........==333=lllg3ggj!!###--!!../........=33=lllg}e�‘’3ggh!!-$!!../.. .(.....==333=aaag}e ¡¢3ggh!!-#!...3///(..=3 ===g}„„„„„„„„3·ggh!!$;$"-$!...33(//.==?333>>==�‘’�‘’g}g„„„™„„„EF~~lggh!!!!!!!!!!!;!...........1.1..(:.==3>>>>>==�‘’ ¢ ¢g}g»»„„„„™�‘’„UV·~~~~zDDDDDDDDggh!!!!!!!!!!!!$!!!!!#-!!!!!!!!!..........==>>>33?= ¡¢QQ ¡¢QQQ ¡¢gQQg¹„„„„„ ™ ¢„„lllD~lllzDDDDDDDDggh!!!$!!!!!!!!!!!!!####!!!$;"$""$-!!!!!$$((.//(.=3333==  ¦¦wwgºƒƒ„„„„„„„™ ¡¢„„„~~~~~zƒƒƒƒƒƒƒƒƒƒ!!!$+$####;-!!--!!!$!!.//.=3>>>==¾¾¼¼¼Ægƒƒƒƒƒƒƒ„„„„„„„„™„„„„„„„„~~~~~~~z!!!!!"""""""""""!****************!!!;/././/.=3>> ==67¥6¼¼¼¼¼¾Æg¥™¥~D~~~~Dz!!!!!";""$!!!!!!!!!))))))))))))))))!!!!!!! /.///.:/.=>33>==¥7¥7¥6Æg¥‰™¥~~~~~~~z!;!!!!!****!!!!!$##!!!!!!!!!!!!!))))))))))))))))!-----!$!!!!!!.....:.//.==>>?3=ººº¥ººº¥ºº¥ºººÆg¥Š‹™º¥~~~~~~~z!C`$##!!!!!######$!!!!!!!!!!!!!!!))))!-----;!KKKK..K.(/./.==3 >==Æg¥™¥~~~D~~~!!!!!$;####!!!!!!!!!!)!-----!K!!...K./(//.=?33>=ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆgÆ¥™aaaaaaaaaaaaaa¥~~~~~~~¥ƒƒƒƒg!!!!++!!!####+$!!!!!!!!!!!!!!!!K!!L..K..:.==>>3=ÆbÇgÆ¥™¥~~~~~D~¥g!!!!!!!!!!;!!!!!!!!!$"""######!!KK!!K!KS..KK..=3333ÉÆbÇÇgÆ¥™¥~D~~~~~¥g!!!!!!!""""!!!!!!!!!!!!"+!!KK!!!!!G!!SKGKS.........=>3>==ÉÆbÇÇ ÇgÆ¥™„ÁÂÃ¥~~~D~~~¥ƒƒDƒƒƒgg!!!!! ####!!!!;;!$!!KKKKKKKKKSSKKKSSK33=3333=É "ÅÅÅÅÆgbbbbÆÆÆÆÇgÆ¥™„„¥~~D~~~~gg!!!!!!!!! !!!;;#!!#!!!!!$!KMMMMMSSS33=====> >?=bbbbÅÅÀÅÅÀÅÅÆgbÇgÆ¥³³³³³³„~~D~~D~Degeeg 7$#$$!!KMMMMMS33====?>3>==ÅÅÅÅÄÄÄÅÅÄÄÄÅÅÄÄÄÅÅÄÄÄÆgbcÇ gÆ¥³³³³³³º³³³³³³g~~~~~~~egeegC87  $!KMMMMMOGS33GGK3==ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ™™ÆgÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ¥³³³³³³³³³³³³³³g~~~D~~~Deeegeeeeeg8 7!!!!!!""""!KMMMMMKKKKSG33 ==KKÄÄÄÄ™™ÆgÆŽŽŽŽŽŽŽ³³³³³³³³³³³³³³³³³gD~~~~~~e!!e e87 !!!"!!!!!!KMMMMMKKKKKKKKKKKK3===?==KKTKÅÅÅÅÄÄÄÄÄÄÄ™™ÆgÆŽ�‘’“”´ g~~~~~eeeD8 7!!!!!!!KMMMMMKKKKKKKKKKKK333===HH==KKTKKKKKKKKKÅÅÅÅÅÅÅÅÄÄÄG™™ÆgÆŽ ¡¢£¤ c´0µ¶g~~D~~D Dee  7 !!!!!!!!!!!!!!!!!KMMMMMKKKKKKKKKKTKKKKKKKKKKKTKKKKKKKKMMMMMMKKKÅÅÅÅÄÄÄÄÄÄÄÄÄÄÄÉ™™Æg,,ÆŽŽŽŽŽŽŽ³³³³³³³³-™-³³³³³³¥~D~~e B @KMMMMMKKKKKKKKKKSWKTSNSKKMMMMMMMMMMKKÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÆgÆŽŽŽŽŽŽŽŽŽŽŽŽŽŽ³ ™b´aaa¥ KMMMMMKKKKKKKKKKOK,TNKKMMMMGMMKKMMKKÆgÆŽ‚ŽŽŽŽŽŽ¥0™b´¥@KMMMMMSNNNMMKKKKNNK`GSKMMMMMKXXNMMMMMKKMMMMKÆgÆÆÆÆÆÆÆÆÆÆŽ™‚ŽŽŽŽŽŽ¥³³³³-™b´00¥@KMMMMMNNNMMKKKKNNKKKKKMMKKKKKYYNOMMMMMKKMMMGKÆgŽ™S²�‘’Ž¥ ´™b ³³³³¥ @KMMMMMONNNGMMKKKKMMKKKK11111KKKKMMMMMMMMMMMMKKKgŽg±±° ¡¢��Ž¥ ´ ³³³³³³³³¥@ KKKKKKKKKKKKKKKKKKKKKKMMKKK22K222KKKKMMMMMMGMMMKKgŽgŽŽŽŽŽŽŽŽŽ¥³³³³³³³³ŽŽŽŽŽŽŽŽ¥ KMMKKK22222KKMMMMMMMMMMMKgŽg©©Ž¥ŽŽŽŽŽŽŽŽ®¥@KXXXKGMMKKKK22KKMMMMMMKKMMMMKgŽŽŽŽ—˜“”�‘’���­¥KKKKKKKKKKKKKKKKKMMMMGMMKKMMMKKgޕЋ®§¨±°²£¤ ¡¢–––––––¥KKKKKMMMMMMMKKMMKKgŽŽŽŽŽŽŽŽŽŽŽŽ¥ŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽ¥@@@KKKKKKMMMMMMMKKKgŽ››Ž¥›ŽŽŽŽŽŽŽŽŽŽŽ¥@KKKKKKMTMMMMKKKgŽšš—˜š�‘’“”—˜¥@KKKKKKMSMMMKKgŽ�ªª§¨ª ¡¢£¤§¨¥@@ KKKKKKMMMMKg�‘’ŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽ™™¥` 8KKKKKKMOMMKg ¢¥ŽŽŽŽŽŽŽŽŽŽŽŽŽŽ™™¥@875ZZKKKg ¡¢¥�‘’e“”bb™™¥@85Z ZMKg¥  ¡¢e£¤c bb™™¥`RG5RRKKKKKKKMKg¥ŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽ¥GGRR8RR***R****KKKKNSZZKg¥ŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽ¥-!IIRRIIII** R))*))))KKKKNKZZKg¥ŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽ¥!!!f[!--!HHHHHHHH3))))))))KKKKKMKg‡¥ŽŽŽ�‘’“”�•—˜!!!!!!!!!!!!!!ffffRR--!!!![[[!HHHHRRHH33!!!!!KKg……†¥ŽŽŽ ¡¢£¤–––§¨‚‚!!!!!!fffffffff!fffffR^]!!!!!!!!!!HHHHHHHH33!!!gŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽpŒpŒpp ‚‚!!!!!!!!h$hffffffg!-\]bTe\^]RR!!!![![![![![!!!!!!!!!!!!!g…††††††††††‡…†‡††……†††††ˆ‡‡!!�n‚�‚‚!!!!!!!!!!!eehhi$jg!!!^-bSe!!!![\[[\[!!!!!!!!!!!!!!!,,g††††…†‡‡‡††…ˆ†††††††ˆ†‡††…†††††……………………ˆ!!mmƒgƒƒ‚!!!!!eeh«hhhg!!!![-be !!!!!!!!!,g¿!!!qq!g‚‚!!!!ee!!!hhhg!!!!-bce!!g¿!!!!�g‚�‚ `ee !!!!hhg!!!!!!!!!!g¿!!gƒƒƒƒƒg!!!!!!!lll!!!!kkkhg!gr¿!gg!gg!!!l!!!!!!!!!!!g¿!g _!gg!!!!!!!!!!!gg¿!!!!!mmmmmm!!gg !g�‘’�‘’�‘’g ©©©©©©©©¿!!��!gg!g ¡¢ ¡¢ ¡¢gqqqee eeee ee!!!!!�gg!g{}wwwwweeeeeeeee!***!!!!`ggo!g{}¿!)))!!!!!!!!!!!!!!!g¿!!!!!g¿g¿g�‘’¿g ¡¢�‘’¿È ¡¢¿È¿¿¿¿¿È¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿È¿¿¿¿È¿È¿È¿È¿È¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ÐÐÐÑÑÑÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐàðððôÐÐÐÐÐÐÐÐÐÐÐÑÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐèéÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐðòòððÐÐÐÐÐÐÐÐàðððôÐÐÐÐÐÐÐÐÐÐÐÐèéÐÐèéèéÐèéÐÐÐèéÐÐÐÐÐÐÐÐÐÐÐÐÐàðððððôÐÐÐÐÐÐàðððððôÑÐÐÐÐÐÐÐÑÐÐèéèéèéèéÐèéÐÐÐèéÐÐÐÐÐÐÐÐÐÐÐÐððððððððÐÐÐÑÐàððððâðððôÐÐÐÐÐàðÐÐèéèøøøøéèøøéÐÐèéÐÐÐÐÐÐÐÐÐÐÐÐððâðððððôÐàðððòòáñññãððôÐÐÐàððÐèøøøøùúøøøøøøéèøøéÐÐÐÐÐÐèéÐÐÐðáñññññãðððððòáññññññãððððòðâðèøøøøøùúøøùúøùúøøøéèéÐÐèéèøéÐÐáññññññññãðððáññññóñññãðòððáñãùúøøøùûûúøùûúùûúøøøøéÐÐèùúøøéèññññååññññññññññóñóññóññññññññùûúøøùûêûùêûûùêûúøùúøéèøùûúøøøÝåååååñååñååååååñååååååóñåååååñûêúúùêêëûûëûûûëûúúùûúøøøùêûúøùääääääääääääääääåäääääääääääääêëêêêëëêëëêêêêêùêûúëùêëêúùêõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõëëëëëëëëëëëëëëëëëëëëë � ,;HG8%  â Ñ¡ � ‚  � ° à @Z@K@;B«CšE˜@¦H‚@¦I C¦Lµ@ÅMÄHôOòMOOKLðMMNOOOMNO1V¤z¶ÈiÈTË^»M­F}B^Ü.Õ>ë>à?ê?ð????#???ó>À>°>>>>??3 02R0C0D0%01#11122÷33à3Ù3 5Ë7 8Î:¿;=µ>·>¸?©?«>­>¾>°?À#* !*")9)Y (e (w(w%$w#!y g' 'W)@+& $" +ø Ê ¸*�*‰* *Û(Ì'Ì&¼$±$²$¸# $¼$»% %¹%°&°&Ç&'(�)Š** ++++++,-/€ðaQB‘4²ò Ã:ÿ5ýFëZåװЙzÕjÚ[Þ[ßlÐ�î�&½A�=ð- -@-P-p--.a%9jppxy`P@Ók^PM:4 ð,ýþþÐÀÇÇÀÀ ðn]‚J0#(#3ðàÒ%ÀаÀ À ���€€€     `Pp `Pa QP¤— ™P[P]OPPP€PCUV W X Y[\]^^___$\  $ $$ (( „$C €„€€€„   C€C C €€€€€€€€€€€€€€€À?fUUUeUfUUUeUfUeefeUVefUeefeUVePPUfeUeuVfVPUffUeuVfVVwP`efwVwWUuwVU`efwfwgUuwVUP`uP`egfUeuWewfV`egfUefwewfVwfpgwfwfffvwgvpgwfwgffvwgvvwUe`gvwvwUefVUu`gvwfwWUfVUu`wf`vggfwfUfVww`vggfvgVfVwwUUWWeUUUUUWWeffgfUUUeUUUeUUUeUfUuvfwgefeuvfwgfvgfUeefeeefeeefeUVePUfeVfffUeufvffvwwfPUffUeufUeufUeuVfV`efwVwWvgwgUewgvgfff`efwfwgUewgUewgUuwVUeegfWguVVefwwwwfffvw0`egfUefwUefwUefwewfVvgwfwvffvgfffvffvfww pgwfwgffvgffvgffvwgvfgvwvwUefwWUffwwvwgv@`gvwfwWUfwWUfwWUfVUufvggfwfugvgVvwwww#Ä$`vggfvgVfvgVfvgVfVwwVuggUUWWeffg0@0fUUUeUUUeUUUeU`ffVvvfwgfvg@ @fUeefeeefeeefeUVepffVfvffvwwf10$@1PUffUeufUeufUeuVfVpwfffwgvgfff$@`efwfwgUewgUewgUuwVUfwggwwwfffvw@$@@`egfUefwUefwUefwewfVpvggvffvfww@DD$@pgwfwgffvgffvgffvwgvpwvgfwwvwgv$@B`gvwfwWUfwWUfwWUfVUu`wwwww41$@@41`vggfvgVfvgVfvgVfVww0@DDD0fU&$0fffgPuggfU 0@fUUVe@fUefvg@`ffVVVe@03131PUfVfV1PUfvwwfD$pffVUfV#Ä$#0`efwvwVU`efwffffBpwffvwVUD4BL2@@`egfewfV@`egfefvw@D$`wggfwfV$$@@pgwfwwgv@pgwfwfww@"$pvgwwgv4D$`gvwfVUu`gvwvwgv@$pwvgVUu"$4141`vggfVww41`vggv $`gVww$00@DDDDDDDDDDD0PuggfUUUeU5BL2UUeffg@10AAA@`ffVfefeeefedefeefvg10313ñ3ñ1ó3ñ1ó11pffVeUeueUeubUeuvwwf0ÿóóÿóópwfffwgUVwWUcwgUefff@0@ga@`wggVefwUeuWUefwefvw@@```@pvgwgffwfffvgffvfwwe`UpwvgwWUvwUefwWUvwgv411141`41`gvgVfwfUfvgVv11A11fUUUeU@DDDDDDDDDDDPuggUUWWeffgfUUUeU01C131fUeefeUVe0AAA`ffVvvfwgfvgfUeefeUVe3313PUfeUeuVfV0313ñ3ñ1ó3ñ1ó1pffVfvffvwwfPUfeUeuVfVA11`efwVwWUuwVU0ÿóóÿóópwfffwgvgfff`efwVwWUuwVUA13`egfUeuWewfV@ga`wggwwwfffvw`egfUeuWewfVC33pgwfwfffvwgv@```pvggvffvfwwpgwfwfffvwgv3`gvwvwUefVUue`Upwvgfwwvwgv`gvwvwUefVUu1D1`vggfwfUfVww41``wwwww`vggfwfUfVww0A1PuggUUWWeffg0A1@DDDfUPuggUUWWeffgC1`ffVvvfwgfvgC10fUUVe`ffVvvfwgfvgpffVfvffvwwf0313PUfVfVpffVfvffvwwf@1pwfffwgvgfff@10`efwvwVUpwfffwgvgfffA1`wggwwwfffvwA1@`egfewfVewggwwwfffvw@33pvggvffvfww@33@pgwfwwgvpvggvffvfww3pwvgfwwvwgv3`gvwfVUupwvgfwwvwgv0D1`wwwww0D141`vggfVww`wwwwwPDDDD4A1PDDDDD@DD4A1#""0Puggfffg@DDDAC11AC1#""@``ffVffvg0P1ó3ñ1P13313ð3ñ1#ŒÄ1fPuVfVuwwf0313óÿóóO1ó0ÿóóO1àNŒD`VwPVwVfffff0fA1f@A1îNDD@`fP`uPPguWffvw@`v@33`v@@33NÔîÞ@`fwfwvffwfww@pa3pa3@ôDðfvwUevwUewwgv`v0D1`v410D1 ª¯ª 41`wf`wfew410A1CDDDD00A1°ªª«ª0UUWWUUWWeU0C1AA@C1«ªª«¨@fUuvfwwvfwWVe@ó3ñ1ó11@¤ªª«¨PPPP1PPUffvfffvffVfV1@1ÿóó@1@ªªªHPPPPP`efwfwgvgwgvwwVUA1ga@A1ߪªPPPP@PeegfwwwfwwwffwfV@@33```@@33ðýýý PPPPPPPPPPPPPPPP@PPPPpgwfgvfffvffvwgv@3e`U3ÒßÐßRV`PVV`PVV`PVV`PPV`PfgvwffwwffwwfVUu0D1`410D1 ""0#beUfeeUfeeUfeeUf41`eUfevggvwwwwwwwgVww410A1PUUU0@PUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU0@C1`fff@D`fffffffffffffffffffffffffffffffffffffffffffffffffffffff@DPPPP`wvv1 `wvvgwvvgwvvgwvvgwvvgwvvgwvvgwvvgwvvgwvvgwvvgwvvgwvvgwvv1- PP@1PPpÌLDpwwwwwwwwwwwww-ÌLDPPA1PP@L@-"LPPPPPPPP@33SPPPPPPP0@03333333333333@-VV`PVV`P3SV`PVV`P610111111111111111111111111111-eeUfeeUf5D1ceUfeeUf5131410131313131313131313131313131313131313131313131313131313141 UUUUUUUUUUUUUUUUUUUUDADADADADADAÐÝÝÝDADADADADADAffffffffffffffffffff6A1A1A1A1A1AÐÜîÜ0A1A1A1A1A1Agwvvgwvvgwvvgwvvgwvv333333333333Ðýîý333333333333wwwwwG13CA13CA13CA13CA13CA13CÐîîî@13CA13CA13CA13CA13CA13CÐîîî33333313131313131ÐÜîÜ0131313131311111111111ñó3ÿó3ÿó3ÿó3ÿó3ÿó3Ðýîýðó3ÿó3ÿó3ÿó3ÿó3ÿó331313131313131313131?ÿ?ÿ?ÿ?ÿ?ÿ?ÿÿÿÿ?ÿ?ÿ?ÿ?ÿ?ÿ?ÿÐÝÝÝ0ÿÿ?ÿóÿ?ÿóÿÿÓÝÝÝÐÜþíðóÿ?ÿóÿ?ÿóÿ?ÓÜîÜÐýîßð>ÿ?ÿóÿ?ÿó?3ßýîýÐîÿíðîó?ÿóÿ?ÿó?ÝßîîîÐþÝî03ðÝßîîîÐßîÜðîðÝßÜîÜÐþíýðîðÝßýîýðÿÿÿðîðÝÿÿÿÐÝÝÝ03ðÝßÝÝÝÐÜþíðî03ÓÜîÜÐýîßðîðÝßýîýÐîÿí03ðÝßîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïþîîîîî"î"î.â.âî"î"îîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîNâîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîïþîîîî.$>$ãBâC2..>îãîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîD$îîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîïþîîîî."C"ã"2$2.îãîãîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîBâîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîïþîîîî.2""ã"#"2.îîîãîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîNDîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîïþîîîî.""2î"""ã.îî>îîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîN"$îîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîïþîîîîî""ãî."2îîâîãîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîNâ$îîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîïþîîîîî.2ãîî"3îî.>ãîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîNâ$îîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîïþîîîîîîãîîî>îîîîãîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîî.îâîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîïþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîî+-- title: Vuk Karadzic -- author: Bananaft -- desc: historical platformer -- site: website link -- license: copiright -- version: 0.1 -- script: lua t=0 x=3*8 y=4*8 vx=0 vy=0 acc=0.1 maxspd = 1/3*2 face = 0 respX = 0 respY = 0 w=0 s=0 st=0 floored = false headstuck = false fall = 3 duck = 0 camX = -x+170 camY = y-700 health = 5 maxHealth = 6 hurt = 0 buttonTimer =0 inv={} maxInv = 8 fxn=1 fx = {} for i=1,64 do fx[i] = { x=0, y=0, vx=0, vy=0, lifetime=60 } end for i=1,maxInv do inv[i] = { x=0, y=0, sprite = 0, } end function BOOT() respX = x respY = y end function spawnParticle(x,y) fx[fxn].lifetime = 20 fx[fxn].x=x fx[fxn].y=y fx[fxn].vx = math.random()*2-1 fx[fxn].vy = math.random()*2-1 fxn = fxn + 1 if (fxn>64)then fxn =1 end end dpal = 0x01a1c2c956530ea1c0c810804ffd675a7f07038b76425717948366f3b5dc941a6f673eff7f4f4f494b0c2566c86333c57 dpal2 = 0x1a1c2c7d6561e6593cff7544ffeacaceffb691f2a56d9daea171916981d659beeebeeef7ffffffbed2e27189a1505581 palette = {} for i=0,47 do palette[i] = peek(0x3FC0+i) end function defaultPal() for i=0, 47 do poke(0x3FC0+i,palette[i]) end end function bgPal(btightness,fade) for i=0, 47 do poke(0x3FC0+i,math.min(palette[i]*btightness*fade,255)) end end function fadePal(fade) for i=0, 47 do poke(0x3FC0+i,math.min(math.max(palette[i]*fade,0),255)) end end function drawBG() vbank(0) if(camY<200)then bgPal(1.4,math.min(math.max(250-fall,0)/200,1)) cls(11) for i=0,20 do spr(230,((i*8)-t*0.1+(i*11.189)%32)%256-16,20+10*math.sin(i*9.2145),0,1,0,0,2,2) end map(00,124,30,12,(camX*0.2)%240-240,30-camY*0.2,2,1,nil) map(00,124,30,12,(camX*0.2)%240,30-camY*0.2,2,1,nil) rect(0,30+12*8-camY*0.2,240,120,0) elseif(camY<400)then bgPal(0.4,math.min(math.max(250-fall,0)/200,1)) cls(8) circ(60,30,12,12) circ(68,33,12,8) for i=0,20 do spr(236,((i*8)-t*0.1+(i*11.189)%32)%256-16,20+10*math.sin(i*9.2145),0,1,0,0,2,1) end map(30,124,30,12,(camX*0.2)%240-240,70-camY*0.2,2,1,nil) map(30,124,30,12,(camX*0.2)%240,70-camY*0.2,2,1,nil) rect(0,70+12*8-camY*0.2,240,120,0) else bgPal(0.4,math.min(math.max(250-fall,0)/200,1)) cls(0) map(60,124,30,12,(camX*0.2)%240-240,154-camY*0.2,0,1,nil) map(60,124,30,12,(camX*0.2)%240,154-camY*0.2,0,1,nil) end vbank(1) fadePal(math.min(math.max(150-fall,0)/100,1)) end function draw_vuk(ix,iy,face,walk) r = math.random() if(fall<=0 and duck == 0)then if(st>10)then if(s==0)then if(r>0.95)then s=2 st=0 end if(r<0.02)then s=4 st=0 end elseif (s==2)then s=0 elseif (s==4)then if(r<0.1)then s=0 st=0 end elseif (s==6)then s =0 st=0 end if(vy>1.4)then s = 6 st = -120 end end local fs = 256+s st=st+1 spr(fs,ix,iy-8,0,1,face,0,2,1) flip = 0 if (vx<0) then flip = 1 end if(floored)then if(walk>0) then frame = math.ceil(walk*0.2)%6 if(frame == 3) then sfx(2,-1,11,0)end spr(256+20+frame*2,ix,iy,0,1,flip,0,2,1) else spr(256+16,ix,iy,0,1,0,0,2,1) end else spr(256+18,ix,iy,0,1,flip,0,2,1) end elseif(fall>0)then if(health>0)then fall=fall-1/30 else fall=fall+1 end if(fall<0.2)then spr(290,ix,iy-8,0,1,face,0,2,2) return else spr(288,ix,iy-8,0,1,face,0,2,2) return end else if(duck<4)then spr(290,ix,iy-8,0,1,face,0,2,2) return end spr(292,ix,iy-8,0,1,face,0,2,2) end end function remap(tile, tx,ty) local sx = (camX//8+tx)*8 +camX%8+1 local sy = (-camY//8+ty)*8+8 - camY%8 if(fget(tile,2)==true)then return end if(fget(tile,3)==true)then vbank(0) rect(sx,sy+1,8,128,0) vbank(1) end if(fget(tile,4)==true)then if((t+tx)%15==0)then spawnParticle(tx*8,ty*8) end spr(tile,sx,sy+2*math.sin(t/4+tx),0) return end if(tile == 98)then return 0 elseif (tile == 119)then if(t%120)> 60 then mset(tx,ty-1,128) spr(114 + (7*tx+t//3)%5,sx,sy-8,0,1,0,0) else mset(tx,ty-1,0) end elseif (tile == 120)then if(t%120)> 60 then mset(tx,ty+1,128) spr(114 + (7*tx+t//3)%5,sx,sy+8,0,1,0,2) else mset(tx,ty+1,0) end elseif (tile == 121)then if(t%120)> 60 then mset(tx-1,ty,128) spr(114 + (7*tx+t//3)%5,sx-8,sy,0,1,0,3) else mset(tx-1,ty,0) end elseif (tile == 122)then if(t%120)> 60 then mset(tx+1,ty,128) spr(114 + (7*tx+t//3)%5,sx+8,sy,0,1,0,1) else mset(tx+1,ty,0) end elseif (tile == 161) then return end return tile end function updateCam(dt) local tX= math.min(0,(-x+170)//120*120)//8 local tY= math.max(0,(y-34)//68*68)//8 local dcx = camX-tX*8 local dcy = camY-tY*8 if(math.abs(dcx)>0.1)then camX = camX-(dcx) * dt else camX = tX*8+0.05 end if(math.abs(dcy)>0.1)then camY = camY-(dcy) * dt else camY = tY*8+0.05 end end function TIC() updateCam(0.1) drawBG() --bgPal() --spr(128,0,0,-1,2,0,0,8,8) --spr(128,128,0,-1,2,0,0,8,8) --defaultPal() cls(0) map(-camX//8,camY//8-16,31,17+16,camX%8-8,-camY%8-8-128,0,1,remap) if(fall > 300)then vx=0 vy=0 x=respX y=respY health=maxHealth fall = 3 for i=1,maxInv do if inv[i].sprite>0 then mset(inv[i].x,inv[i].y,inv[i].sprite) inv[i].sprite = 0 end end elseif(fall<=0)then if(floored)then if btnp(0)or btnp(4) and headstuck == false then sfx(0) vy=-1.7 floored = flase end end local facc = acc if (floored == false)then facc = acc*0.7 end if (duck>0)then facc = 0 end if btn(2) then vx=vx-1*facc face = 1 end if btn(3) then vx=vx+1*facc face = 0 end end y=y+vy if(floored==true)then vx=vx*0.92 vx = math.min(math.max(vx,-maxspd),maxspd) else vx=vx*0.93 end vy=vy*0.93+1/10; headstuck = false ysprite1 = mget((x+12)//8,(y-8)//8) ysprite2 = mget((x+4)//8,(y-8)//8) if(fget(ysprite1,0)==true or fget(ysprite2,0)==true)then vy=math.max(vy,0) headstuck =true end if(vy>-0.1)then ysprite1 = mget((x+12)//8,(y+8)//8) ysprite2 = mget((x+4)//8,(y+8)//8) if(fget(ysprite1,1)==true or fget(ysprite2,1)==true)then if(ysprite1==6 or ysprite2==6)then vy=-3 sfx(3) else if(vy>1.4)then sfx(1) fall = 5 health = health - 4 elseif(vy>1.2)then sfx(1) fall = 1.5 health = health - 1 elseif(vy>1)then fall = 0.2 sfx(2) end vy=0 end if btn(1)or fall>0.2 then if(fget(ysprite1,0)==false and fget(ysprite2,0)==false)then vy=0.8 y=y+1 floored = false else y=(y+2)//8*8 floored = true end else y=(y+2)//8*8 floored = true if(ysprite1==7 or ysprite2==7)then vx = vx*1.5 s=6 st = 5 w=0 sfx(4) end end else floored = false end if(floored and btn(1))then duck = duck+1 else duck = 0 end end if(math.abs(vx)>0.01)then checkX = (x+16)//8 if (vx<0)then checkX =(x)//8 end if(floored)then xsprite1 = mget(checkX,(y-2)//8) end xsprite2 = mget(checkX,(y+6)//8) if(fget(xsprite1,0)==true or fget(xsprite2,0)) then vx=0 else x=x+vx end else vx=0 end if(fall<=0)then if(duck == 0)then checkInteraction((x+8)//8,(y-6)//8) checkInteraction((x+2)//8,(y-6)//8) end checkInteraction((x+2)//8,(y)//8) checkInteraction((x+8)//8,(y)//8) end if(math.abs(vx)>0.2)then w=w+1 else w=-1 if(math.random()>0.993 and fall<=0)then face=(face+1)%2 end end draw_vuk(camX+x+1,-camY+y+1,face,w) for i=1,64 do if(fx[i].lifetime>0)then fx[i].lifetime = fx[i].lifetime - 1 spr(80,camX+fx[i].x,-camY+fx[i].y,0,1) fx[i].x = fx[i].x + fx[i].vx fx[i].y = fx[i].y + fx[i].vy fx[i].vx = fx[i].vx *0.95 fx[i].vy = fx[i].vy *0.95 end end if btn(6)then spawnParticle(x,y) vy = vy - 0.2 end map(-camX//8,camY//8,31,17,camX%8-8,-camY%8-8,0,1,remapFG) rect(0,124,240,12,14) rectb(1,125,238,10,15) for i=1,maxHealth//2 do local sp = 271 if(i>health//2)then sp=269 end if(health-i*2==-1)then sp=270 end spr(sp,2+i*9,126,0) end local invn = 0 for i=1,maxInv do if (inv[i].sprite > 0) then if health <= 0 and fall > 30 then local f = math.max((fall-30)/270) local p = math.sin(f) spr(inv[i].sprite,camX+x+f*(inv[i].x*8-x),-camY+y+f*(inv[i].y*8-y)-p*120,0) else spr(inv[i].sprite,100+i*9,126,0) invn = invn +1 end end end if invn >= maxInv then maxHealth = maxHealth + 2 sfx(9,55,-1,2) for i=1,maxInv do inv[i].sprite = 0 end end --rectb((x+8)//8*8,(y-20-)//8*8,8,8,12) --rectb((x+16)//8*8,(y-16)//8*8,8,8,12) -- print(,64,64) -- rectb(20,20,240-40,136-12-40,5) -- rectb(50,30,240-100,136-12-60,4) -- print(camX,20,20) -- print(camY,20,40) hurt = math.max(hurt-1,0) t=t+1 end function remapFG(tile,tx,ty) if (tile==96)then if (math.abs(x-tx*8+4)<20 and math.abs(y-ty*8-4)<20)then else local coverTile = mget(tx,ty+1) for i=-2,2 do for u=-2,2 do spr(coverTile,camX+(tx+i)*8+1,-camY+(ty+u)*8+1) end end end return elseif(tile == 114)then return 114 + (7*tx+t//3)%5 elseif(tile==128)then return end if(fget(tile,2)==true)then return tile end if(tile==38)then spr(81,camX+tx*8,-camY+ty*8-7,0) spr(97,camX+tx*8,-camY+ty*8+1,0) end end function checkInteraction(x,y) sprite = mget(x,y) if(fget(sprite,4)==true) then pickup(x,y) elseif(fget(sprite,5)==true) then health = 0 fall = 20 elseif(fget(sprite,7)==true) then if(hurt<=0)then for i=0,16 do spawnParticle(x*8-4,y*8+4) end sfx(8,5+health*10,-1,1) s=6 st=-20 hurt = 60 health = health-1 vy = vy -1.2 if(vx>0)then vx = -3 else vx = 1 end if(health <= 0)then fall=fall+1 end else floored = true end end if(floored == true)then if(sprite == 9)then sfx(6,-1,-1,1) mset(x,y,52) for i=-10,10 do for u=-10,10 do sprite = mget(x+i,y+u) if(sprite == 51)then mset(x+i,y+u,98) spawnParticle((x+i)*8,(y+u)*8) elseif(sprite == 100)then mset(x+i,y+u,99) spawnParticle((x+i)*8,(y+u)*8) elseif(fget(sprite,6)==true)then mset(x+i,y+u,0) spawnParticle((x+i)*8,(y+u)*8) end end end elseif(sprite == 99)then sfx(6,-1,-1,1) mset(x,y,100) for i=-10,10 do for u=-10,10 do sprite = mget(x+i,y+u) if(sprite == 98)then mset(x+i,y+u,51) spawnParticle((x+i)*8,(y+u)*8) elseif(sprite == 52)then mset(x+i,y+u,9) spawnParticle((x+i)*8,(y+u)*8) end end end end end if(sprite == 13)then if(respX==x*8 and respY==y*8)then else respX=x*8 respY=y*8 sfx(7,30,-1,1) end elseif(sprite == 161)then if(btnp(5))then for i =0,123 do if mget(x,i)==161 then if(y==i)then i=i else movePlayer(x*8,i*8) end end end end end end function movePlayer(nx,ny) x=nx y=ny -- updateCam(0.9) -- updateCam(0.1) end function pickup(x,y) for i=1,maxInv do if(inv[i].sprite == 0)then inv[i].sprite = mget(x,y) inv[i].x = x inv[i].y = y mset(x,y,0) sfx(5,55,-1,1) health = math.min(health + 1,maxHealth) break end end end