0,]']±>Sï}WÿÍu§ðp8·d%qy)6o;]ÉA¦ösï÷ôôô”°ÂVl†3D$ˆˆˆˆ‰xx˜ˆ—ˆxxˆxwˆˆ‰ˆxxˆˆˆxˆˆˆ˜ˆˆˆ‡îî."""""233CDDD3D$îîîŽBD4˜‡CDD#!D4>D$BDˆˆCDD#!D4x(DD4""CDD‚wBD#8D$ˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆxˆˆˆwˆˆˆˆˆˆxˆ‡î""""233333333D$îîîDDˆ(DDˆˆˆˆD48Dˆ‡ˆˆˆ8D‡'DDˆˆˆ‡D4ˆAD4�ˆˆCDˆCD�ˆxˆˆˆˆˆˆ8D$ˆˆxˆˆ‰‡ˆˆxˆˆˆˆˆˆˆˆˆˆˆˆˆ‡xˆxˆˆˆˆˆˆˆˆîî""""233333333D$îîŽ1DD‚ˆAD$ˆˆˆˆˆçD48Dˆˆ˜yx>DˆAD$ˆ˜ˆˆˆD4ˆCDˆ‡‡ˆ>D4ˆCD�ˆˆˆˆˆˆ‡ˆ(D$ˆˆˆˆˆ‡ˆ‡ˆxˆ‡ˆˆˆˆ—ˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆx‡ˆèî!""""33333333D$îî(DD$xˆBDƒx‰ˆˆˆD48DˆˆˆxˆAD„ˆBDƒˆˆˆˆ‡D4DDqˆ‰ˆˆDD�CDq‡ˆˆˆˆxˆˆ(Dˆˆˆ‡ˆˆˆˆˆ—x‰ˆˆˆx‰ˆˆˆˆˆˆx˜ˆˆˆˆ‡ˆˆˆˆ‡ˆî!"""3333#""2D$î!CDD‚‡ˆCD�w‡xˆˆD48DˆˆèˆCDƒˆCD�ˆˆˆˆˆçD4(D4ˆˆˆˆˆˆBDâCD�xˆèˆˆˆˆˆ(Dˆˆˆwˆˆˆˆ‡ˆˆ—ˆˆˆˆˆˆˆxˆˆˆˆxˆxˆˆˆˆˆˆ‰ˆˆî!""""33#"""2D4CDDDˆ‰ˆCD�yˆx‡ˆD48D1333DDD�èCD�‡wˆˆ‡D48Dˆxˆˆˆ‡ADƒCD�333333(Dˆˆˆ‡ˆˆˆˆ™ˆˆˆˆ‡ˆˆˆˆˆ˜‡ˆˆˆx‡ˆˆˆˆˆˆˆˆˆˆçî."""""""""">DDDD4xˆˆDDˆx‡ˆˆˆD48DADDDDD4�ˆDDˆˆˆˆˆ‰D4>DwˆˆxˆˆADCD�(DDDDDD4(Dˆˆ‡ˆxˆˆ‡x‡ˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆ‰ˆˆˆˆˆxˆ‡ˆˆˆîî"""""""âîî>DDDD3˜ˆˆD4ˆˆxˆˆˆD4>DADDDDDDD4ˆ‡ˆˆ‡ˆD4>DˆˆˆˆˆˆHDCDŽ(DDDDDD4Dˆˆˆˆˆ‡ˆˆˆˆ—ˆˆ‡ˆˆˆˆx‡‡ˆx‡xˆˆˆˆx‰ˆ‡ˆˆˆˆèî."""âîîîîî>DDDDDD⇈DD"""""""D48D1DDDDDD4DD"""""â"D48DˆˆˆˆˆˆHDCD�CDDDDD4Dˆˆˆˆˆˆˆˆ‰xˆˆˆˆ—xˆˆˆxˆˆˆ‡ˆ˜ˆˆˆˆˆˆˆˆˆˆˆxîîîîîîîîîîˆ8D2DD4�ˆDDDDDDDDDD48Dˆˆˆˆˆ!DDDDDDDDDDDD4>DxˆˆˆˆˆHDCD�ˆˆèD4"D‡ˆxˆ‡x‰ˆ‡ˆx˜ˆ‡wˆˆ‡xˆˆ‡ˆˆˆˆ‡ˆˆˆx˜ˆˆˆxˆ‡ˆˆîîîˆˆˆ7Dˆè1DD$ˆDDDDDDDDDD48DˆˆˆˆˆˆBDDDDDDDDDDD4>D‡ˆˆˆˆˆHDCDqˆˆˆîî.D4"Dƒˆˆˆˆyˆ‡ˆˆˆˆwˆˆˆˆˆˆˆˆˆˆˆxˆxˆˆˆˆˆxˆˆˆ‡ˆxˆˆxˆˆ‡ˆˆˆˆˆ8Dˆ˜ˆBDD�DDDDDDDDDD48DˆˆˆˆˆˆADDDDDDDDDDD48Dˆˆxˆˆ‡HDCD�ˆˆˆîî.D4"D㈇xˆxˆˆˆˆˆˆˆˆxˆˆxˆˆˆ˜‡xˆˆˆ‡ˆˆˆ‡ˆˆ‡˜‡ˆˆˆw‡ˆˆˆˆˆ‡ˆˆ8Dˆˆˆ(DDDD"""""""D48Dˆ‡ˆˆxˆNDDD"""""""D48Dˆwˆˆˆ‰HDCD�ˆˆˆîî"D4â2∉‰xˆxˆˆˆˆˆˆˆˆ˜ˆˆˆˆˆˆ‡xˆˆ‡‡ˆxˆx‡‰ˆˆ‡xˆˆˆ‡ˆˆˆˆˆˆˆˆ8D‡ˆˆˆCD$D4x‰ˆˆˆxD4>DADD4ŽˆˆˆˆˆD4>Dˆˆx‰ˆ‡HDCD""D4â"á‡x‰x‰ˆˆˆ˜‡ˆˆˆ‡xˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆ‡‰ˆˆˆˆˆ‡ˆˆˆxˆˆˆ‡ˆˆ7DˆˆˆˆADDD4ˆˆˆ‡ˆˆD48DDDDDDDDDDD4~ˆˆˆˆxD48D‡ˆˆˆˆxHDƒBDDDDDDDDD4"D‡ˆˆˆˆˆˆxˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆxˆ‡ˆˆˆˆˆˆˆxˆˆˆˆ‡ˆˆˆˆˆ˜‡8Dˆˆˆˆ8DDD4ˆˆxˆˆˆD48DDDDDDDDDDD4~ˆˆˆˆˆD4>DˆˆˆˆˆˆHDƒ8DDDDDDDDD4.D$xˆˆ‡ˆ‡ˆˆx‡ˆˆˆˆˆˆˆˆˆˆˆ‡‡ˆˆˆˆˆˆˆˆˆx‡ˆ‡ˆˆ‡ˆw‰x˜‡ˆˆwˆ8Dˆ‡ˆˆ(DD‚C4ˆˆˆˆˆˆD4(DDDDDDDDD$ˆC4ˆˆxˆˆˆD48DˆˆˆˆˆˆHDƒˆCDDDDDDDD4.Dˆˆˆ‰ˆˆˆˆˆˆˆ—ˆˆˆˆˆˆˆˆx‰xˆ‡ˆˆˆˆˆˆxxˆˆˆxˆˆxˆˆˆxˆˆˆˆˆ2âxˆˆxˆ2#ˆ!ˆˆˆˆˆˆ‡2è23333333"�ˆ!∈ˆˆˆˆˆ1"‚‡xˆˆx˜("‚x"3333333âî"�ˆ‰ˆxˆˆˆˆˆˆ‡x‡ˆ˜ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ˜ˆˆˆˆˆˆˆˆˆˆˆˆxˆˆˆ‡ˆˆˆ‡ˆˆˆˆˆˆx‡ˆˆˆˆxˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆxˆˆˆˆwˆˆˆˆˆˆ‰ˆˆˆˆˆxˆˆˆˆˆˆîî‡ˆˆˆˆˆˆˆˆˆˆˆˆˆwˆˆˆˆˆˆˆˆˆˆˆˆxˆˆˆˆˆˆˆˆˆˆˆˆxˆxxˆˆˆˆ‡‰‡ˆˆˆˆˆ‡ˆ˜wˆ‡‡ˆˆˆxˆˆxˆˆˆˆˆˆx‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆx˜‡ˆˆˆˆˆ‡ˆ‡ˆˆˆˆˆˆˆˆˆˆˆw‰ˆxˆˆˆxˆˆˆy‡ˆˆyˆˆˆˆˆˆˆxˆˆˆˆˆˆˆˆˆ‡x‰ˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆwˆxˆyˆˆˆˆx‡x‡ˆˆ‡ˆxxˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆxˆˆˆˆ‡ˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆ‡x‡ˆˆ‡xˆˆˆˆˆy‡ˆxˆˆ—xˆˆˆˆˆ‡ˆˆˆˆˆˆxˆxˆˆ‡ˆˆ‡ˆˆ‡ˆ‡xˆ‡ˆ˜‡ˆ‡ˆ˜˜ˆˆˆˆˆxˆˆˆxˆîîîî‡ˆ‡ˆˆˆˆˆ‡ˆ‡xˆxˆˆˆwˆˆˆˆˆˆˆˆˆˆˆˆˆw‰ˆxˆ‡ˆˆˆˆˆˆwˆxxˆˆˆˆˆxˆˆˆˆˆ—ˆˆˆˆˆˆˆyˆˆˆˆˆˆˆˆˆˆˆˆyˆ˜ˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆ‰ˆˆ—ˆˆ‡ˆˆˆˆˆ‡ˆîîîîîîîˆ‡ˆˆx‡‡xˆˆˆˆˆˆˆwˆˆˆxˆˆˆ‡ˆˆˆˆˆx‡ˆˆˆ‡ˆˆˆ‡xˆˆyxˆˆˆˆˆˆ‡ˆˆxˆxy‡ˆˆˆˆˆˆ‡ˆˆ‡ˆxˆˆw˜ˆwˆ‡ˆ‡ˆˆˆ‡—‡ˆx‡‡ˆˆˆˆˆˆˆ˜‡ˆˆxˆˆˆˆˆx‰îîîî"2#"ˆˆˆˆˆˆˆ‡ˆ˜‡ˆˆˆˆˆˆ‡ˆx‡wˆˆˆˆˆˆˆˆˆwˆx—ˆxˆˆˆˆˆˆˆˆ‡ˆˆˆ˜‡ˆ‡ˆˆˆx‰ˆˆ‡ˆˆ‡ˆˆˆˆˆx‡ˆ‡ˆxˆxˆˆxˆˆˆˆˆ‡ˆxˆ‡ˆˆˆ˜‡ˆˆ‡x‡ˆˆˆˆˆˆˆxèîîî""23"âˆˆˆyˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆx‡ˆˆˆˆˆˆ‡ˆˆ‡ˆˆ‡ˆˆxxˆˆˆˆˆˆˆˆˆˆˆˆ‡‡‡ˆˆˆˆˆˆ‡ˆˆˆxyˆˆˆˆw‡ˆˆˆ˜ˆ‡ˆ‡ˆˆˆˆ‡ˆˆx—ˆxˆˆˆˆxˆˆˆˆ˜ˆˆˆˆˆx‰ˆèîî""""3#"îˆˆˆˆˆˆˆˆxxˆˆxˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆx‡ˆˆˆ‡ˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆ—ˆ‡ˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆ‡ˆˆˆˆx‡ˆˆˆˆˆˆˆˆˆˆˆxˆˆˆˆˆˆˆˆ‡ˆˆˆîîî23#2333"î~ˆ˜ˆˆˆˆˆˆˆˆxˆ‡ˆˆˆˆx‡ˆˆ‡ˆˆˆˆˆˆˆyˆˆ‡ˆˆˆxˆˆˆˆˆˆ‡ˆˆˆˆxˆˆˆˆˆxxˆˆ—ˆ‰ˆˆˆˆxˆˆˆˆˆˆˆˆˆˆˆˆ‡x‡˜‰ˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆxˆˆˆˆˆˆˆˆîî.23333333âîŽxˆˆˆˆˆˆˆˆˆˆˆ˜ˆˆˆxˆˆˆˆˆ˜‡ˆx‡ˆ‡ˆˆˆˆˆˆ‡ˆ‡ˆˆˆˆˆxˆxˆ˜ˆˆˆˆˆxˆˆˆˆˆˆˆˆˆˆˆˆˆw‡ˆ‡ˆwˆˆˆˆxˆˆˆˆxˆ‡ˆx‰ˆˆˆx‡ˆxxˆxyˆ‡ˆ˜ˆ‡èîî.23333DD3#îˆ‡ˆˆyxxˆˆxˆ‡ˆˆˆˆˆˆˆˆˆ˜wˆˆ˜‡‡ˆxˆˆˆˆˆxˆˆˆˆxˆˆˆ‰ˆˆˆˆxˆˆˆˆˆ‡ˆ‡ˆxˆˆˆˆˆx˜xˆˆyxxˆy‡ˆˆ‡ˆˆˆˆˆˆˆw˜ˆˆ‡ˆ‡ˆˆˆˆˆˆˆˆˆ‰îîî""233DDD43âˆˆˆˆˆˆˆˆˆxˆˆˆˆˆx‡ˆˆˆˆˆ‡‡ˆˆˆˆxxˆˆˆ‡xˆˆ‡ˆˆ˜ˆˆ‡‡ˆ˜ˆ‡ˆˆˆˆ‡ˆ‰w‰ˆˆˆˆˆw‡ˆˆˆˆˆˆˆˆˆˆxˆ‡ˆˆˆxˆ‡ˆˆˆx‡ˆˆˆˆˆˆˆˆ‡ˆ˜ˆˆ‡îîî""2333DDD3ãîˆˆˆˆxˆˆˆˆ‡ˆˆ‡˜‡‡ˆxˆˆ‡ˆˆˆˆˆˆˆˆxˆˆˆˆ˜ˆˆˆˆˆˆˆˆˆˆxˆˆˆˆˆˆˆˆ‡ˆ‰ˆˆxˆˆˆ‡‡‡ˆˆˆˆˆˆˆˆxˆˆˆˆˆˆˆˆxˆˆˆˆˆˆˆ‡ˆˆˆˆwˆˆˆˆˆîî.""2333CD43Óîîxˆˆˆxˆˆˆˆˆ‡ˆˆˆˆw‡ˆˆxˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆwˆxˆˆ‡ˆˆˆˆˆˆˆˆˆxˆ‰ˆˆˆxˆˆˆˆxˆˆˆ‰‰ˆˆˆwyˆˆˆîˆˆxˆˆˆˆˆˆxˆˆˆˆˆˆˆˆ‰xˆxˆ‡ˆxˆîî.""233DDD33ãîwxˆˆˆxxˆ™ˆˆˆˆˆˆˆ‡wˆ‡ˆxˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆx‡xˆxˆˆˆˆxˆˆ‡ˆxˆˆˆˆˆ‡ˆˆ˜ˆ‡‡ˆˆ‡ˆîîîîîî‡ˆˆˆˆˆˆˆxˆ‡‡ˆˆˆˆˆˆˆxˆ‡xîî."""33DDD33îîˆˆx‡ˆˆwˆˆˆˆxxˆˆˆˆˆˆˆˆˆxˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆxˆ‰‡ˆˆˆ‡ˆxˆxˆˆˆˆ˜xˆˆˆˆˆˆˆˆˆxˆˆˆˆxîîîî."î‰ˆwˆˆˆˆxˆˆˆˆ‡ˆˆ™ˆˆˆˆˆˆèî."2333CDD33îîîˆxˆxx‡ˆˆˆˆˆˆ‡ˆ‡ˆˆˆˆˆˆ‡ˆˆˆˆxˆˆˆˆˆˆˆˆ‰ˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆxˆˆˆˆˆ˜ˆˆ‡ˆˆˆˆxˆˆˆˆˆ.""""""îˆ˜xˆˆˆxˆˆˆx™xˆ˜ˆxˆˆˆˆèî."23333CD4ãîîžxˆx˜èˆx˜wˆˆxˆˆyˆˆ‡ˆˆˆˆˆˆˆˆ˜ˆˆˆˆˆˆxˆ‰x‡ˆˆˆˆ‡ˆˆˆ‰ˆˆˆˆˆ™ˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆ""""""""ˆˆˆˆˆˆˆˆˆxˆ‰ˆˆˆˆˆˆˆˆ‡èîî"33333C33ÓîˆˆèÝ݈ØÝÝÝŽˆˆ˜ˆ‡‡ˆˆˆˆˆxˆ‰ˆˆˆˆˆ˜‡ˆ‡ˆyˆwˆ‰ˆˆˆˆˆˆˆˆ‰ˆˆ‡ˆˆ‡ˆˆˆˆˆˆxwˆˆˆˆ‰ˆˆˆ""233"""îîˆxˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆx˜ˆˆèîî"23333333îîîˆxˆˆÍÌÜžÞÜÝÝ�ˆx˜ˆ‡ˆ‡ˆˆˆˆˆˆ‡ˆˆˆˆ˜ˆˆˆ‡xˆˆwˆ‡ˆˆˆˆxˆˆˆ‡ˆˆˆ‰xˆˆˆˆ‡ˆˆˆˆˆˆ‡ˆˆˆˆ˜""23D33"âˆˆˆˆˆˆ‰xˆˆˆˆˆˆˆˆ—ˆˆˆèîî"2333333îîˆˆèÝÌÝÝÍÝÝÝíˆxxˆˆˆˆˆˆ‰ˆˆˆˆˆ˜‡˜ˆ‡‡ˆˆˆxˆˆˆˆˆˆˆˆ‡ˆ‡ˆˆˆˆˆˆ‡ˆˆ‡ˆ˜ˆˆˆˆˆ‡ˆˆˆˆˆx3333DD43"î‡ˆxˆˆ‡‡ˆˆxˆˆxˆx˜ˆˆˆèîî"2333#"îîîˆxÞÝÝÝÝÝÝÞÝˆww™y‡ˆyˆˆˆˆˆx‡ˆˆˆˆˆxˆˆˆˆˆˆˆ‡˜ˆˆˆxˆˆˆˆˆˆˆˆˆˆˆxˆˆˆˆˆ˜‡ˆˆˆˆˆ3333CDD33îˆˆˆˆˆˆˆˆˆˆˆˆˆˆ˜ˆxˆˆèîî""333#âîîˆ‡ˆÝÝÝÝÝÝÝîþïî~—™™™™ywˆˆˆˆˆˆˆˆˆ‡‰xˆˆxˆˆˆ˜ˆˆˆ‡ˆxˆˆˆˆˆˆ‡‡ˆ‡‡wˆxˆˆˆˆxˆˆˆˆˆˆ‡333333333îˆˆˆˆˆ‰ˆˆ‡ˆˆˆˆˆx‰ˆˆˆ‡è""33âîîˆ‡ˆèÝÝÝÝÝÜýÿîÿî™™™™™™™wˆ‰ˆx‰x‡ˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆxxˆˆˆˆxwˆˆˆxˆˆˆˆˆ‡‡ˆˆˆ333333333îˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆ™‰ˆwˆ‰ˆî!""îî‡xˆˆèÍÌÝÒÍÜíïîÿï™™™™™™™™‡ˆˆˆˆˆˆxˆ‡ˆˆˆˆx‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡xxˆˆ‡ˆˆxˆ‡ˆˆˆˆˆˆ333333333îîˆˆˆˆˆxˆˆˆ‡xˆˆˆˆˆˆˆˆˆèîîîîˆˆˆˆˆØÌÜÝÒÝÝíîïî™™™™™™™™y‰ˆˆˆˆˆˆˆˆxˆ‡ˆyˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆ™ˆˆˆˆˆˆˆ‡ˆˆˆˆˆx‡ˆ™˜‡ˆ333333333îˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆ™xèîîîîˆˆˆˆwÞÝÜ-ÒÝîîîÿîîî™™™™™™™™™‡xˆˆˆˆˆˆxˆˆˆˆˆˆˆ‰xxˆˆˆˆˆˆxˆˆxˆxˆˆˆxˆ‰ˆwˆˆˆˆˆˆˆˆˆˆ3333CDD33îyˆyˆwˆˆˆˆˆˆˆ‡‡ˆˆˆˆxˆˆxˆˆˆˆˆ‡ˆˆˆxˆˆˆˆÝÝÌ-ÝÝîÞîþîÞ�™™™™™™™™™yˆˆ—ˆxxˆˆ˜‡‡ˆˆˆˆˆˆˆwˆˆ‡ˆˆˆˆˆˆ‡‡ˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆˆ‡‡3333CDD33îˆˆˆˆ‡ˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÝÝÍ-ÝÝÝÝÝÞ�š™™™™™™™™yˆˆ‰ˆ‡ˆ‡ˆˆ‡‰ˆˆˆˆˆˆx‰ˆˆˆxˆˆˆ‡w‡ˆˆˆ‰ˆˆˆˆˆ‰‡ˆˆˆˆˆˆ‡ˆ3333CDD43îîŽxxˆˆˆˆˆˆˆˆ‡ˆˆxxˆˆˆˆ‡ˆˆ‡ˆy˜‰ˆˆˆ‡ˆˆˆˆˆèÍÝÝÒÝÝÝÝÝíïÞ™ªšš™™™™™™™—‰ˆˆ‡ˆxˆxˆˆ‡ˆˆˆxˆˆˆxˆˆˆˆxxˆˆ‡ˆ‡ˆˆˆˆˆˆˆ‡ˆ˜‡‡ˆˆˆˆˆ3333CDD43îˆˆˆˆˆˆˆˆˆˆˆˆˆ˜ˆˆˆxˆˆˆˆxˆxˆˆˆˆˆˆˆˆˆˆØÌÌÝÒÝÝ=3ÝÝÒÝ�™ª™™™™™™îˆˆˆˆ‡ˆˆˆˆˆˆxˆˆˆˆ‡ˆˆ‡ˆˆˆˆˆx‡ˆˆˆˆˆ‡ˆˆˆˆˆx‡ˆˆˆˆˆ‡33333DDD3îîŽwˆˆxˆˆˆˆ‰ˆˆˆˆxˆ‡ˆˆ˜‡xˆˆˆˆˆxx‡ˆˆˆ˜ˆwˆÞÌÌÝÞÝÝÝ-"3ÝÌÝÝ�™Ý�šé"""~ˆˆˆˆîŽˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆ‡‡‡xˆˆˆˆˆˆˆxˆˆˆˆˆ‡ˆ‡ˆˆˆˆˆ33333DDD3îî~wwˆˆˆ‡ˆxˆˆˆˆˆxˆˆˆˆˆˆ˜ˆˆˆˆ‡ˆˆˆˆˆˆ—ˆ‰ˆÞÌÜ-ÝíÞÝîÝÒÌÌÌÌÜÝÝ�Ú"2"3∈è""Žˆˆˆˆˆˆˆˆxˆˆxˆˆˆˆwˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆ‡ˆ‡ˆ‰ˆ‡x33333CDD4íˆy˜‡x‡ˆˆˆˆwˆ˜yˆˆˆˆ‡ˆˆ˜‡ˆˆˆˆˆˆˆˆˆˆˆˆÍÝÝ-ÝïÞÞ-ÝÌÜÝÌÜÝÝ­í"3333Žè"!3#∈‡ˆˆ˜ˆ‡ˆˆˆˆˆ‡ˆ‡ˆˆˆxyˆˆˆˆˆˆˆˆˆˆˆˆˆxˆ‰xˆˆ33333CDDÓîˆyˆ‡x‡xˆ‡ˆwˆxˆ‡ˆxˆx‡ˆˆˆˆˆˆˆˆˆˆˆˆwˆèÝÝÝíÝíÿÿÝ!ÝÍÝÝÍíÍÝ­."2333ã!""333Žˆˆˆ‡xxˆxˆˆˆˆxˆˆ‰ˆˆˆˆ‡xˆˆˆˆèîîˆˆ‡‡ˆ‡ˆ333#"333íî‡‡ˆˆˆˆxxˆˆˆˆˆˆˆˆˆ‡ˆ‡ˆˆˆˆˆˆ‡ˆxˆˆˆˆˆØÝÝÝÒÝÿÿ!îÞÞÝÝíÍÜí""3333#"""343‚ˆˆˆˆˆˆˆˆˆˆˆxˆ—ˆ‡ˆˆˆˆˆxˆ‡xçîîîî˜x‰ˆˆx333"""2Óîxxˆˆˆ‡ˆxˆxˆˆˆˆˆˆˆˆ‡‡ˆˆˆˆˆ‡ˆxˆˆˆˆxxˆØÝÝÝÒÝíÿ!îîÞÝÝíÝÌí""3333#"233C3ãˆîîˆ‡ˆˆˆˆˆˆˆ‡ˆˆˆˆ—ˆˆˆˆîîî."âîŽxx‰‡ˆˆ"""""""îîˆ‡ˆˆˆˆˆˆ˜xˆxˆˆˆxˆˆ‡ˆ‰ˆˆ‰ˆˆˆ‡ˆˆˆˆˆˆxÞÝÝ-ãÝÝñáÞÝÝÝîîÝ�."333#.23333r."""㈈ˆˆxˆˆˆxwˆˆˆˆˆˆˆˆˆîîî.33#îˆˆ—ˆ""""""îîˆ‡ˆˆ—ˆˆˆˆxˆˆˆˆxˆ‡ˆˆˆˆ‡ˆˆ‡‡xˆxxˆˆxˆxˆÝÝÝ-Ý"ÝíÿðÞÝÝÝîîî™."233â23CD3Ž""33#∈ˆˆ‡ˆˆˆˆˆˆˆˆˆxˆˆˆîî.33D3íˆˆ˜ˆ"""""âîîˆˆˆ‰x‡‡ˆ‡ˆˆˆˆˆ—ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ˜ˆˆˆÝÝÝ-Ý!íðáî™™îîî™)"2"3~è""3343î"3333#ˆxˆ‰ˆ‡ˆxˆˆˆˆxˆˆxˆèîî23CDÔíˆˆw‡"""îîîˆˆˆ‡‡ˆˆˆˆˆˆˆxˆxˆˆwˆxˆˆˆxˆˆˆˆˆˆˆˆˆˆˆ‡çÝÝÝÒÝðîî™™îîîšé""âžy‡!"2C4ãè"33333Žˆˆ‡ˆˆxˆˆˆˆˆˆˆ‡‡ˆèî.2333Óí‡ˆˆˆîîîîîîˆˆˆˆˆˆˆ˜‡ˆˆˆˆwˆˆˆˆ‰ˆxˆˆ‡ˆ‰ˆxˆˆˆˆˆxˆˆˆØÝÝÝÒÝÿÿá™™éîîî™™y‡"23#Ž"3333#Žˆˆˆx‡ˆxˆˆˆˆˆ˜‰ˆ—èîî2333Óíˆˆˆˆîîîîˆˆˆˆˆˆ—ˆxyˆˆˆˆˆ‡ˆˆx‰ˆxyˆˆˆˆ‡wˆˆˆˆ‡ˆˆxˆˆØÝÝÝáðÿÿá©™™îž©™™™™™™˜ˆ."2âˆ(333C33ˆˆˆˆˆˆˆˆˆˆˆˆˆ˜‡ˆxèîî"333ãîîˆxˆxˆxîˆˆˆx‡ˆˆˆˆˆˆˆxxˆˆˆˆˆˆˆwˆˆˆˆˆˆˆˆˆwˆxˆx‰xˆˆˆˆÞÝÝíÿÿÿÿñá™™™éž™™™™™™‡ˆxè""Žx.23343㈈莈xˆˆˆˆˆˆˆx‡‡ˆˆîî2333ãîˆˆxˆˆˆˆˆˆˆˆwˆˆxx‡xˆˆˆˆxˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆxxˆˆ‡ˆˆˆˆˆˆÞÝÝíððÿÿÿñÞÝÝÝÝžª™™™™™‡ˆˆˆî."2333‚ˆ""Žˆˆwxˆˆˆx‰ˆˆˆˆîî"33"îî‡‡ˆxˆ‰wˆˆˆˆˆˆˆˆxˆ˜ˆˆˆˆxˆˆˆˆˆxˆˆ˜ˆˆˆˆˆˆˆˆˆˆxˆˆˆx‡ˆˆÝÝÝýÿÿðîÝÝÝÝ�©™™™™yˆˆˆˆˆˆ—‡(""3#âˆ"3#∈x‡ˆˆˆ˜ˆˆˆxˆîî.""îîˆˆˆˆˆˆˆˆˆˆˆˆˆˆxˆwwˆˆˆx‡ˆˆˆˆˆˆ‡xˆˆˆ‡ˆˆwˆxˆˆˆˆˆˆˆˆˆˆèÝÝÝ àÿðï™™ÝÝ�™™™™™‡ˆˆˆˆˆˆx‡è""3"Žè""33#Žˆˆxˆˆxˆ˜ˆ‡‡ˆˆîîîîîîˆxˆˆ‡ˆˆˆˆˆˆˆˆˆˆ‡‡wxˆˆx‡wˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆ×ÝÝÝññÑð€™™ÙÝ�™™™™y‡ˆˆˆˆˆˆx‡ˆèîîxy."#333‚ˆˆˆˆˆˆ—ˆˆx‡ˆˆˆˆîˆˆˆˆ˜ˆˆxˆˆˆxˆˆˆˆ‰ˆ‰ˆˆˆˆwˆˆˆxˆˆ‡ˆ‡ˆˆ‡ˆˆˆˆˆ‡ˆx‡xˆˆ‡ˆˆˆˆ×ÝÝÝîÝ€™îÝM�™™™™wxˆ™‰x‡ˆˆˆ‡‰ˆˆˆˆ23333㈈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆ‡ˆ˜‰ˆ‡ˆxˆˆ˜ˆˆˆ‡ˆˆ˜ˆˆˆˆ‰ˆˆˆˆˆ‡‰ˆ‡ˆˆˆˆ‡ˆˆˆˆˆˆˆÞÝÝíîÝÝíáíñÝÝÝÝ�™™™wˆˆˆˆ‡ˆ‡ˆˆˆˆˆxˆˆˆ23333㈈xˆˆˆ‡ˆˆ‡ˆˆ‡ˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆxˆˆˆˆˆˆˆxˆˆˆˆˆ‡ˆˆˆˆ‡ˆˆˆˆxˆˆÝÝ#ÿááíîîîîþîîîÝž™™w‡ˆˆxˆˆˆˆˆˆxxˆˆˆxˆ!2343㈈˜‰xxˆˆˆˆˆˆ‰ˆˆxˆˆˆˆx‡ˆˆˆˆˆˆ‡ˆˆ‡xˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆ‡ˆˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆ=3#"ðÝíñˆw—î™ww‡ˆˆˆxˆˆxˆˆ‡ˆxˆxˆˆx(""C43~ˆx™‡ˆˆˆ‡‡ˆˆˆˆˆˆˆˆˆˆ˜˜‰ˆˆˆˆˆˆˆˆˆyˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆ‡‡ˆ‡ˆˆˆˆˆˆˆˆˆˆ˜ˆ‡ˆˆˆˆ."""àÝÝ-ðÿˆè~w‡ˆˆ‡xwˆˆˆˆ—x‰ˆˆˆˆˆˆˆè"2C$"ˆˆˆ‡ˆw‰ˆxˆˆˆxˆˆˆˆ˜ˆˆˆˆˆˆˆx‡ˆˆˆˆxˆˆˆwˆˆˆˆ‡ˆ˜ˆ‡ˆˆˆˆˆˆˆ‡ˆˆ‡ˆˆˆ‡xˆˆxˆˆxˆˆ˜‡ˆˆ""""àîÞ=#þ€èŽˆˆˆˆˆˆw‡ˆˆˆxwˆˆˆxˆˆˆˆˆ."2#Žˆè""Žˆ‡ˆ‡ˆˆˆˆˆˆ‡‡xˆˆˆˆˆˆˆx‰ˆˆˆˆˆ‡ˆˆ—ˆ‰ˆˆˆˆ˜ˆ‡ˆˆˆˆˆˆˆˆˆw‡ˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆèC4""àîîÝ#Þ/ˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆè""âˆè!"2âxˆˆxˆˆˆˆˆˆˆwˆˆˆxˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆxˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆw——ˆˆˆˆˆx‡˜×DD43òàþÑÝÑ݈‡ˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆxˆ˜yˆ‡"Žˆ!232#Žxˆxˆˆxˆˆˆ˜ˆˆˆˆˆˆxˆ‡ˆˆˆˆˆˆxˆˆˆˆˆˆˆˆˆˆˆˆ‡x‰ˆ‡ˆ™ˆˆˆ‡ˆˆxˆˆˆwˆˆxˆˆˆˆˆxˆÞDD43#ñïíò€ˆ‡‡x‡ˆxˆˆˆ‡ˆˆˆˆˆˆˆx˜ˆˆ‡ˆˆˆè"2333㘈ˆˆˆˆwˆˆˆˆ‡ˆˆˆxx‡xˆˆxˆxˆˆˆˆwwˆˆ‡ˆˆ‡xˆˆˆˆˆ‡‰ˆˆˆˆwˆ‰ˆxˆxˆxˆˆˆxˆˆˆˆˆN433#3ÿÿÝððò�xˆˆˆˆˆˆˆˆˆˆˆˆˆxˆˆˆˆˆˆˆˆˆˆx"233C3x‰ˆˆxˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆ˜ˆ‡ˆ‡x‡ˆx‰ˆˆˆˆˆˆˆˆˆˆxˆˆˆˆˆˆ‡ˆˆˆˆˆwˆˆˆxˆ˜ˆˆˆM4#3"#ÿÿÿÝð/ñ�ˆˆˆˆˆˆˆˆxˆˆwˆˆˆˆˆˆˆ‡ˆxˆˆˆˆ!"23333Žˆˆˆˆxˆˆˆˆˆˆˆˆ˜‡ˆ‰ˆˆˆˆˆˆˆˆˆ‡˜ˆˆˆˆˆˆˆˆˆˆxxˆˆˆˆˆˆˆ˜ˆˆˆˆˆ‡xˆˆˆˆˆˆwˆ‡ˆ."""!ÿÿÞíñð/ñ�ˆˆˆ‰xxˆxˆˆwˆˆ˜‰ˆˆˆˆx˜—ˆˆ‡ˆ.""333㈈ˆx‡ˆˆˆˆˆˆˆˆxˆˆˆˆ‡xˆˆˆˆˆ‡‡ˆˆˆˆˆˆ˜ˆxˆxˆˆˆˆˆˆˆˆˆˆxyxˆˆˆ˜‡ˆˆˆˆˆˆxˆˆˆ"""1ðÿÑÝð!ÿxˆˆˆ‰ˆxˆw‡ˆ‡ˆˆxˆxˆˆˆˆˆˆˆˆˆx""333‚ˆˆˆˆ‡ˆˆˆˆˆˆˆxˆx‡wˆˆxˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆ‡ˆˆˆˆˆˆ‡ˆˆˆˆxˆˆˆˆˆˆˆˆˆˆˆˆè!ÿÿÿà€‡ˆˆˆˆ‡ˆˆ‰ˆˆˆ‡ˆˆˆˆˆxˆˆ‡‡ˆˆˆˆç""3"ãx‡ˆˆˆ‰ˆˆˆxˆˆˆˆˆˆx‰ˆxˆˆxˆˆxˆxˆwxˆˆˆˆˆˆˆ‡ˆ‡ˆˆ‰ˆˆˆ‡ˆˆˆˆˆˆˆˆwˆ‡ˆˆˆˆˆ‡‡ˆÿ�ÿò€‰ˆˆˆˆˆxˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆxxˆˆˆˆ""""~ˆˆˆˆˆˆˆˆ‡ˆˆˆˆxˆˆˆ‡x‡x‰ˆˆˆˆˆxxˆˆˆˆˆˆ˜ˆˆˆˆˆˆˆˆˆˆxˆˆˆˆxˆˆˆˆˆˆˆw‡ˆˆˆy—ˆÿ�øð€ˆ‡‡ˆˆˆˆˆˆˆxˆˆˆ‡ˆˆˆˆˆ‡ˆ˜xˆˆˆˆáî~ˆˆˆˆˆˆˆ‡ˆˆ˜ˆxˆˆˆˆˆˆˆˆˆˆˆˆˆxˆˆˆˆˆ‡ˆˆˆxˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆ˜ˆˆˆˆˆˆˆˆˆˆ‡ˆxˆøÿÿñ�ˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆxxˆˆˆˆˆˆˆ‡—ˆˆˆxˆˆˆˆˆˆˆˆˆˆˆxˆˆˆxˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆxyˆˆèîî~ˆxˆˆˆˆˆ‡ˆx‰ˆˆˆˆˆ‡ˆˆxˆxy‡ˆˆˆøñxˆÿð!ˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆ‡ˆˆˆ˜‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆxˆˆˆˆˆˆx‡ˆˆîîîîˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆwˆˆxˆˆxˆˆÿÿˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆ—ˆˆ˜xˆˆˆˆˆˆˆˆxˆˆyˆˆxˆ‡ˆ‡‡‡ˆˆˆ‡ˆˆˆ‡ˆˆxˆˆˆèîî."âˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆ‡wˆˆx‡ˆñˆˆˆøÿ˜‡ˆ‡ˆˆˆˆˆˆxˆˆ‡wˆxˆˆ˜ˆ‡ˆˆˆˆˆˆˆxxˆˆˆˆxˆˆˆˆˆ‡ˆˆˆˆˆˆxˆˆˆˆyˆˆˆˆˆˆˆx‡ˆxˆˆˆˆèîîî"""îˆ˜ˆ‡‡ˆˆ‡xˆˆˆ‡ˆˆ‡ˆˆˆˆˆˆx�ˆˆˆˆÝ�ˆˆˆx‡ˆ‡‰xˆˆˆ˜ˆˆ‡ˆˆˆˆxˆˆxˆˆˆ‡ˆˆˆˆxˆˆ‡ˆˆˆˆˆwˆˆˆˆwˆˆˆˆˆx‡ˆ‡ˆˆ‡‡ˆx‡ˆˆˆˆˆèîîî"23#âˆˆ‰y—˜ˆwxˆˆˆx˜ˆwˆˆˆˆ‡ˆˆ�ˆˆxˆèÝð�‡‡ˆˆˆˆˆˆ˜ˆ‡xˆˆˆˆˆxˆˆ‡ˆˆ‡ˆˆˆ‰ˆˆˆˆwˆˆˆˆ‡ˆˆˆˆxˆˆˆˆˆ‡ˆˆˆx‡ˆ‰ˆˆˆˆˆ˜ˆˆˆˆˆèîîî""3333îˆ‡‡xˆˆˆˆxxˆˆxxˆˆ‡ˆˆxˆˆˆèއ‡ˆˆèÝއxˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ—ˆˆ‡ˆxˆˆxˆxˆˆ˜xˆˆˆˆˆˆˆˆˆˆˆ‰ˆ‡ˆˆ‡xˆˆˆˆˆxˆˆˆˆˆˆ‡ˆèîî!"23333ã‡˜‡ˆ˜ˆwˆxˆˆˆˆˆˆˆxˆxˆˆˆˆˆ‡ˆˆˆˆˆˆèˆˆˆˆˆˆˆˆˆxˆˆˆx‡‡˜ˆx˜ˆˆ‡ˆ˜ˆˆˆxˆˆˆxˆˆˆ‡xˆˆx‡ˆˆˆˆˆ‡ˆ‡ˆxˆˆˆˆˆˆˆˆˆxxˆˆˆîî""33333Óîˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆ˜ˆxyˆˆˆˆˆˆˆˆx‰ˆˆè˜ˆˆxxˆˆxˆˆxˆˆˆˆˆxˆˆˆxˆˆˆˆˆxˆˆˆˆxˆˆˆˆyˆˆˆˆˆxˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆ‡ˆ‡ˆ‰ˆˆxˆîî.""333333íˆˆˆx‰xˆˆˆ‡—ˆˆˆˆxˆˆˆˆˆˆˆˆˆˆˆˆˆ‡èw‡ˆˆˆˆˆ˜xˆˆˆˆxˆˆˆˆˆˆxˆ‡‡xˆ‡ˆˆˆˆxˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆxˆ‡ˆˆˆîîî""2333333Ýˆˆˆ‡‡ˆˆˆˆˆxˆˆxˆxˆˆˆˆxˆˆˆˆxˆˆ˜ˆèîˆxˆ˜ˆˆˆˆwˆˆ˜ˆˆˆxˆˆˆˆˆ‡‡˜‡ˆˆˆˆˆˆˆˆˆxˆˆ‡ˆ‡ˆ‰ˆˆˆwˆˆ‰ˆ‡ˆˆˆ‡wˆˆˆwˆˆˆ‡ˆˆˆîî""3333333ãîˆ‡ˆˆˆˆwˆˆ‰ˆ‡ˆˆˆ‡ˆˆˆˆˆ‡xˆˆˆˆˆˆçîðሇˆxˆˆˆˆ˜ˆˆ˜ˆˆˆˆˆˆˆˆˆˆˆ˜ˆx‡ˆxˆxˆˆˆˆˆˆˆˆˆx‡ˆˆxˆˆˆxˆ‡ˆˆˆxˆxˆˆ‡ˆˆˆˆˆˆˆèî""23DD4D4íîˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ˜ˆˆwˆˆˆˆxˆˆî�ˆ‰ˆˆˆˆˆˆˆˆˆˆxˆx‡ˆˆˆxˆˆˆˆˆˆyˆ˜ˆˆˆˆ‰‡ˆˆˆxˆˆˆˆˆ˜ˆˆˆˆˆˆˆˆˆ˜ˆˆˆˆˆˆˆˆxˆˆˆçî""23CDDD4Ýˆˆˆxˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆxˆ‡yˆˆ‡ˆˆˆˆøˆˆˆ‡ˆˆˆˆwˆ‰ˆxˆˆ‡ˆˆˆˆˆˆˆˆˆˆx‰ˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆxˆˆ‡xˆˆˆˆˆ˜ˆˆˆˆˆˆ‡‰ˆˆˆˆˆîî"""33333ÓÝî~ˆˆˆˆ—ˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆ‡‡ˆˆèíñÿˆˆxˆ‡ˆˆˆˆˆˆˆˆwˆxˆˆˆˆxˆˆˆˆxˆˆˆˆx‡‡ˆˆˆˆˆ‡ˆˆˆˆˆˆ‰ˆˆ‡ˆˆx‰ˆˆx‡ˆˆˆˆxˆ‡ˆˆˆˆˆîî.""23333Óîˆˆˆx‰ˆˆ˜ˆˆˆˆˆˆˆ˜ˆˆxˆˆˆxxˆˆ‡ˆxˆˆÿññˆˆ‡ˆ‡ˆˆxˆxˆˆˆˆˆˆˆˆ˜ˆˆˆˆˆˆˆxˆˆx‡ˆˆˆwˆˆˆˆwˆˆˆˆ˜‰ˆ‰‰ˆ‡ˆwxxˆˆ‡ˆˆˆˆˆˆˆxˆˆˆîî.""2333#îîˆˆw‰ˆˆˆx‡ˆˆˆ˜ˆ‡ˆˆˆˆˆ—ˆwˆˆˆˆˆˆˆðî�ˆ‡x‡ˆˆˆˆˆxˆˆˆˆˆ‡x‡ˆˆˆˆxˆxˆˆx‡‡‡ˆˆˆˆˆx‰ˆˆxˆ‡ˆˆˆˆ‡ˆ‡x˜ˆˆxxˆˆˆˆˆˆw‡ˆˆˆèîî"""233îî‡ˆxˆ‡ˆˆˆˆwxˆˆxˆˆ‡ˆˆˆ‡xˆˆˆˆxˆˆˆˆðíðÿ�ˆˆˆˆˆ‡ˆˆˆˆˆˆˆxˆ‡ˆˆˆˆˆˆ˜ˆˆ‡wˆˆˆˆˆw‡˜ˆˆˆˆˆˆxx‡˜‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ˜ˆˆˆˆˆîî"""""âîîˆˆxˆˆˆˆˆˆˆ‡ˆˆxxˆˆˆˆ‡‰ˆ‡ˆxˆ˜ˆˆˆˆ!ðÿ�ˆˆxxˆˆˆˆˆˆˆ‡xˆx‡ˆˆxˆˆˆˆˆˆ‰‰ˆˆˆˆxˆˆˆˆˆˆˆˆxˆˆxwˆˆˆˆx‡ˆˆ‡ˆˆˆˆˆ™ˆxˆˆˆˆˆèî."""îîîˆˆˆˆˆˆˆˆ‡ˆxˆˆˆˆˆˆ‡ˆˆx‡ˆˆxˆˆˆxˆxˆø!"ðÿ�‡ˆˆxˆx‡ˆˆˆˆˆ‡ˆ‡ˆˆ‰ˆxˆˆˆˆˆxˆˆ‡ˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆ‰xˆˆˆˆˆx‰ˆˆˆ‡‡ˆ‡ˆîî"âîîîˆˆxˆˆˆˆˆˆˆˆˆˆˆˆxxˆ‰ˆˆˆˆˆˆwˆˆˆ˜ˆ‡ˆˆÿ!"€ˆˆˆwˆˆ‰ˆˆˆˆˆˆˆxˆˆˆˆˆxˆˆˆˆ˜ˆˆˆˆˆˆˆˆ‡ˆˆˆ‡ˆˆˆˆˆ˜ˆˆ‡ˆˆˆxx‡ˆ‡wˆˆˆ‡ˆˆ‡‡xˆˆˆîîîîîˆˆˆˆˆˆxˆˆˆ‡ˆxˆˆ‡ˆˆˆˆˆ‡xˆˆˆˆˆˆ‡‡ˆˆˆˆ""ˆˆˆ‡ˆˆˆˆˆˆ‡wˆˆˆˆ˜‡ˆˆxˆx‡ˆ‡ˆˆˆˆˆ—wwˆˆˆˆˆˆy˜‡ˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰‡ˆˆˆxˆˆˆˆˆîˆˆˆwˆ—xˆxˆxˆˆˆˆˆˆ‡ˆˆˆ‡ˆˆˆˆˆ˜‰ˆˆˆˆˆ‡ˆˆøˆ˜‡ˆˆˆˆˆˆ‡‡ˆˆˆˆxw‰x‰ˆˆˆˆˆwxˆˆˆxˆ—ˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆxˆˆˆ˜ˆxˆˆˆˆˆˆxˆˆwˆ˜ˆˆˆˆˆwˆˆˆˆˆˆ˜øˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆxˆˆˆwˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆyˆˆˆˆ‰x‰ˆˆ‡ˆˆxˆ‡ˆˆˆˆˆˆˆˆˆx˜‡ˆˆˆˆˆˆˆˆ‡ˆ‰ˆˆˆˆˆˆˆx‡ˆˆˆˆˆˆˆˆˆˆˆˆxˆˆˆˆˆwˆˆˆ‡ˆˆxøˆˆˆˆ‡ˆxˆˆˆˆˆˆˆˆˆˆˆ‰xxˆˆ‡ˆˆˆx‡‡ˆ‡ˆˆˆ‡ˆ˜ˆxˆˆˆˆ‡ˆ‡ˆˆˆˆˆè~‡ˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆxˆxˆxˆˆˆ—ˆx‰ˆˆˆˆ‡xwwˆˆˆˆxˆˆˆxˆxˆˆˆˆˆˆˆˆˆˆˆˆøˆˆˆwˆˆˆˆˆˆˆˆˆˆxˆ˜‡ˆxˆˆˆˆˆˆˆˆˆˆˆxˆˆwˆx˜ˆˆˆˆˆˆˆ‡ˆˆxˆˆîîîî~ˆˆˆˆˆxxˆˆxˆˆˆˆˆ‡ˆˆˆˆxˆˆˆx‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆ—ˆ‡ˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆ‡xˆˆˆˆˆˆˆxˆˆˆˆˆˆˆˆˆˆˆxˆˆˆ‡ˆˆˆ‡ˆ‡ˆˆˆyˆˆ‡ˆˆˆˆ—ˆˆèîîîîîîîî.ˆˆˆˆˆ‡ˆˆˆˆ‡ˆˆˆˆˆˆxxˆˆˆˆˆˆˆˆˆˆˆˆˆ‰ˆˆ‡ˆˆ˜ˆˆxˆˆˆˆˆˆˆˆˆ‡ˆˆˆˆðˆˆxˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆˆ—ˆˆ‡ˆˆˆˆˆˆ‰ˆ‡ˆˆˆˆˆˆx‡ˆˆˆˆîîîî""î""""ˆˆˆ‡ˆˆˆˆˆˆˆˆˆx‡ˆˆˆˆˆˆxˆˆˆˆˆwˆˆˆ‰ˆ‰ˆxˆˆw‡ˆˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆÿ€ˆˆˆˆˆˆˆˆˆˆˆˆxˆˆˆˆˆˆ™ˆˆx‰ˆˆˆxˆˆ—ˆˆˆˆˆˆˆˆˆˆˆˆˆîîî.""""""""âˆˆˆˆˆˆ‡ˆˆxˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆyˆˆˆˆˆˆ‡ˆ‡‡˜ˆˆˆˆ‡ˆˆˆ‡ˆˆˆˆˆˆˆðÿ€yx‰ˆxˆˆˆˆxˆˆw‰ˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆ‡ˆˆx‡ˆˆˆèîî.""""""""""xˆˆ‡‡ˆˆ‡ˆxˆˆˆx˜—ˆxˆxˆˆˆˆˆˆˆˆˆˆxxˆˆˆˆ‰ˆˆˆˆ‡‰—‡ˆˆyˆ˜ˆˆˆˆðÿñ�—ˆxx‡ˆ—ˆxˆ‡‡˜ˆˆˆ‰ˆˆ‡‡ˆˆˆˆˆˆˆˆˆˆˆ˜‡ˆˆxˆˆˆˆˆèîîî""""233#"""⇈‡‡ˆˆ‡ˆˆˆˆxˆ‡x‰xˆˆˆˆˆˆˆˆˆ‡ˆˆx‡ˆˆ˜‡ˆxxˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÿÿÿ�ˆˆˆ˜ˆˆ‡ˆ‡ˆˆˆˆˆˆˆ‰xˆ‡ˆˆˆˆˆˆx‡ˆˆˆˆˆˆxˆˆˆˆˆ‡ˆîîî.""""23DD3"""ˆˆˆxˆˆˆˆˆˆˆˆwˆx‰ˆx‰ˆˆˆˆˆˆˆˆˆ‡ˆ‰ˆˆˆ‡ˆˆˆ‡xˆˆˆ‡ˆˆˆ˜ˆˆˆˆˆˆ˜ˆˆˆxˆˆ�ˆx‡ˆˆˆ‡ˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆ—xˆˆyˆxˆˆˆxxˆˆˆˆˆˆˆˆîîî."""#"33DDD333ˆˆˆˆˆˆˆˆˆˆ‡ˆwˆˆˆˆˆ˜‡ˆxˆˆˆˆˆˆ‡ˆˆˆˆˆxˆˆx‡ˆ‡ˆˆˆˆˆˆˆww‡ˆˆˆˆˆˆˆˆˆˆ‡ˆˆˆxˆˆx‰ˆˆxxˆˆ‡ˆ‡ˆˆˆˆ‡‡ˆˆˆˆˆˆˆˆˆ‡ˆˆxˆˆˆˆèîî"""33333DDDD33ˆˆ˜ˆˆˆˆ‡ˆˆx—ˆˆˆx‡ˆˆˆ‡ˆˆ‡ˆˆˆˆ‡˜ˆ‰ˆˆˆ‡ˆˆˆˆˆ‰ˆ—‡xˆˆˆˆ‡ˆˆˆˆˆ‡‡wˆx‡ˆˆˆˆˆˆ‰‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆ‡‡ˆˆˆˆˆˆˆˆˆˆˆxˆîîî!""233333CDD433ˆ‡ˆˆˆ‡ˆ‡ˆˆˆˆˆˆ˜‰ˆˆˆˆˆˆˆˆˆ‡ˆˆˆ‡ˆˆˆˆˆxˆˆˆˆˆˆ˜‡ˆˆˆˆˆˆˆˆxxˆ‡xˆˆˆˆˆ‡ˆˆ‡ˆˆˆˆˆxˆˆˆ‡ˆˆˆ‡ˆˆˆˆˆˆˆx‰x‰ˆˆˆˆˆˆˆ‡ˆˆèîî."""333333333333ˆˆˆˆˆˆ‡ˆˆˆˆˆ‡‡ˆˆˆˆxˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆxˆxˆˆˆ‡ˆˆˆˆˆ‰ˆˆ˜—‡xˆxyxˆxˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆ—ˆˆˆy‡‡ˆˆˆˆ‡ˆxˆˆˆ˜w‰îîî!"""333333333333ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆx‡ˆˆ‡ˆˆxˆ‡ˆˆˆˆˆˆˆxˆxˆx‰ˆx™ˆˆxˆˆˆˆxˆˆˆˆ‡ˆˆˆˆ‡ˆ˜ˆˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆxˆˆˆˆˆèî"""2333333333333ˆx‡ˆˆˆˆˆˆˆˆˆˆxˆxˆˆ˜ˆˆˆˆˆˆˆˆˆˆˆxˆˆˆˆˆˆywˆˆxˆˆˆˆˆˆˆxˆˆˆˆˆˆˆˆˆxˆ‡ˆ‡ˆˆˆˆˆˆxˆˆˆˆxˆˆˆ˜‡ˆˆˆ‡ˆwˆˆˆxˆˆˆˆˆ‡ˆ‡‡ˆîî!""2333333333333ˆˆˆˆˆˆˆxˆˆˆxˆˆˆˆˆˆˆˆˆˆ‰ˆ‡ˆˆˆˆxˆˆˆˆˆˆ˜‡‡ˆˆˆxˆˆˆˆ‰ˆˆx‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡ˆˆxˆˆˆ‡ˆˆˆ‡ˆˆˆˆ‡ˆˆˆ‡ˆ‡ˆ˜ˆ˜ˆˆwˆˆˆˆˆèî!""3333333333333ˆˆˆ˜ˆˆw‡ˆˆˆˆˆˆˆ‡ˆˆ‡ˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆxy‰x˜ˆˆˆxˆˆˆˆˆˆˆˆxx‡ˆwˆˆˆˆx‡ˆˆˆˆˆˆwˆ˜ˆˆˆˆˆˆˆ‡ˆ‡ˆˆˆ‡ˆ‰ˆ‡ˆˆxˆˆˆˆˆˆ‰èî"""33333333C4333ˆˆˆwˆˆx‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆxˆˆxˆ‰ˆx‡ˆxˆˆˆ‡ˆ˜‡ˆˆ‰ˆˆˆ‡ˆˆxˆˆˆˆˆ‡ˆxˆ—ˆ—ˆxx‡ˆˆˆˆxˆˆˆˆˆˆˆ‡ˆˆˆ‡ˆˆˆˆ‡‰ˆˆˆ‡èî"""33333333CD433ˆ‡ˆˆˆ‡ˆˆˆˆˆˆˆˆxˆˆˆˆxˆ‡ˆˆˆˆˆˆˆ‡˜ˆˆˆ‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆ—‰ˆˆˆ‰ˆ˜‡ˆ‡‡ˆˆˆ‡ˆˆˆˆˆˆwˆˆˆˆˆˆˆˆxˆˆˆˆˆxˆˆˆˆˆˆˆˆˆˆˆˆˆˆèî""233333333CDD33xˆ˜xˆˆ˜ˆ‡x˜‰ˆˆˆˆˆˆx˜‡ˆˆ˜‡ˆˆˆˆ‰ˆˆˆˆˆ‡ˆˆˆˆˆxˆˆˆˆˆxˆ‡ˆˆˆˆ‡ˆˆˆx‰ˆˆˆˆˆˆxxˆˆˆˆˆ‡ˆ‡ˆˆˆˆˆxˆ‰ˆˆˆ‡wˆˆˆˆˆˆˆˆxˆˆˆèî""333333333CDD33ˆˆ‡ˆˆˆ‡ˆˆˆxˆˆxˆˆxˆˆˆˆˆˆxˆˆˆ‡ˆˆî~‰ˆˆxˆˆˆxˆˆ‰˜ˆˆˆˆˆxˆˆˆˆ‡ˆwˆ‡ˆˆˆˆˆˆxˆˆˆˆˆˆˆˆˆxxˆ˜‰‰ˆˆˆ‡˜‰ˆˆˆˆˆˆˆˆˆˆˆèî"23333333333DD33g3-- title: Kabang! -- author: John Colagioia (jcolag@colagioia.net) -- desc: A Free Culture game about an astronaut collecting mines -- site: https://john.colagioia.net -- license: AGPL 3.0 or later; CC-BY-SA 4.0 for sprites, sound effects, and music -- version: 1.0 -- script: lua -- Game Constants local SCREEN_WIDTH = 240 local SCREEN_HEIGHT = 136 local ASTRONAUT_SIZE = 8 local ASTRONAUT_ACCEL = 0.25 local MINE_SIZE = 2 local MINE_SPEED = 1 local LETTERS = " ABCDEFGHIJKLMNOPQRSTUVWXYZ" -- Game Variables local astronautX = SCREEN_WIDTH * 0.4 local astronautY = SCREEN_HEIGHT / 2 + ASTRONAUT_SIZE / 4 local astronautRotation = 270 local astronautSpeed = 0 local mineX = SCREEN_WIDTH local mineY = SCREEN_HEIGHT / 2 + ASTRONAUT_SIZE / 4 local gameOver = true local about = false local flash = 0 local score = 0 local games = 0 local addInitials = false local initials = {} local iInitial = 0 local highScores = {} local li = 0 local rank = -1 local tempo = 150 -- TIC-80 Function: Update function TIC() -- Clear screen cls(0) if time() < 1500 then showSplash() elseif about then showAbout() elseif flash > 0 then makeFlash() elseif addInitials then getInitials(score, rank) elseif gameOver then showTitles() else -- Check for input local left = btn(3) local right = btn(2) astronautRotation = astronautRotation + astronautSpeed -- Update astronaut rotation if left and not right then astronautSpeed = astronautSpeed - ASTRONAUT_ACCEL elseif right and not left then astronautSpeed = astronautSpeed + ASTRONAUT_ACCEL end -- Normalize rotation angle to 0-359 range astronautRotation = astronautRotation % 360 -- Update mine position mineX = mineX - MINE_SPEED -- Check if the astronaut caught the mine if isCaught(astronautRotation, score, mineX, mineY) then sfx(2, "A#7", 2, 1, 15) score = score + 1 nextMine(score) elseif playerHit(astronautRotation, score, mineX, mineY) then sfx(4, "D-2", 16, 2, 15) flash = 3 games = games + 1 rank = addScore(score) if rank >= 0 then addInitials = true end end -- Missed the mine if mineX == 0 then nextMine(score) end -- Draw stars starfield(games) -- Draw astronaut drawAstronaut(astronautRotation, score) -- Draw mine circ(mineX, mineY, MINE_SIZE / 2, 13) end end -- Set up for the next game function restartGame() astronautX = SCREEN_WIDTH * 0.4 astronautY = SCREEN_HEIGHT / 2 astronautRotation = 270 astronautSpeed = 0 mineX = SCREEN_WIDTH mineY = SCREEN_HEIGHT / 2 mineCaught = false gameOver = false score = 0 rank = -1 iInitial = 0 initials = {} li = 1 tempo = 150 music(2) change_ts(2, tempo, -1) end -- Show splash screen function showSplash() if time() < 10 then music(1, -1, -1, false) end spr(2, SCREEN_WIDTH / 2 - 32, SCREEN_HEIGHT / 2 - 32, -1, 1, 0, 0, 8, 8) end -- Show titles function showTitles() -- Game over/splash screen music() spr(1, SCREEN_WIDTH / 8 - 24, SCREEN_HEIGHT / 4, -1, 5) circ(SCREEN_WIDTH / 5 * 3.5 - 32, SCREEN_HEIGHT / 2.5, 12, 14) print("K", SCREEN_WIDTH / 2 - 76, SCREEN_HEIGHT / 2 - 17, 2, false, 2) print("A", SCREEN_WIDTH / 2 - 64, SCREEN_HEIGHT / 2 - 19, 3, false, 2) print("B", SCREEN_WIDTH / 2 - 52, SCREEN_HEIGHT / 2 - 20, 4, false, 2) print("A", SCREEN_WIDTH / 2 - 40, SCREEN_HEIGHT / 2 - 21, 12, false, 2) print("N", SCREEN_WIDTH / 2 - 28, SCREEN_HEIGHT / 2 - 20, 4, false, 2) print("G", SCREEN_WIDTH / 2 - 16, SCREEN_HEIGHT / 2 - 19, 3, false, 2) print("!", SCREEN_WIDTH / 2 - 4, SCREEN_HEIGHT / 2 - 17, 2, false, 2) if games > 0 then print("GAME OVER", SCREEN_WIDTH / 2 - 65, SCREEN_HEIGHT / 2 - 4, 12) print("SCORE: " .. score, SCREEN_WIDTH / 2 - 64, SCREEN_HEIGHT / 2 + 16, 12, true) print("PRESS A TO PLAY AGAIN", SCREEN_WIDTH / 2 - 98, SCREEN_HEIGHT / 2 + 32, 12) else print("PRESS A TO PLAY", SCREEN_WIDTH / 2 - 85, SCREEN_HEIGHT / 2 + 32, 12) end print("PRESS B TO LEARN MORE", SCREEN_WIDTH / 2 - 99, SCREEN_HEIGHT / 2 + 38, 12) print("PRESS X TO RESET SCORES", SCREEN_WIDTH / 2 - 101, SCREEN_HEIGHT / 2 + 48, 12) print("HIGH SCORES", SCREEN_WIDTH / 2 + 50, 24, 12) for i=0, 9 do local n = pmem(i * 2 + 1) local l1 = ltr(math.floor(n % 256)) local l2 = ltr(math.floor(n / 256 % 256)) local l3 = ltr(math.floor(n / 65536)) print(l1, SCREEN_WIDTH / 2 + 59, 40 + 8 * i, 12, true) print(l2, SCREEN_WIDTH / 2 + 66, 40 + 8 * i, 12, true) print(l3, SCREEN_WIDTH / 2 + 73, 40 + 8 * i, 12, true) print(pmem(i * 2), SCREEN_WIDTH / 2 + 90, 40 + 8 * i, 12, true) end -- Check for game restart if btnp(4) then restartGame() elseif btnp(5) then about = true elseif btnp(6) then resetScores() end end -- Flash to white function makeFlash() music() cls(12) flash = flash - 1 if flash == 0 then gameOver = true end end -- Display licensing function showAbout() print("K", SCREEN_WIDTH / 2 - 40, SCREEN_HEIGHT / 2 - 64, 2, false, 2) print("A", SCREEN_WIDTH / 2 - 28, SCREEN_HEIGHT / 2 - 64, 3, false, 2) print("B", SCREEN_WIDTH / 2 - 16, SCREEN_HEIGHT / 2 - 64, 4, false, 2) print("A", SCREEN_WIDTH / 2 - 4, SCREEN_HEIGHT / 2 - 64, 12, false, 2) print("N", SCREEN_WIDTH / 2 + 8, SCREEN_HEIGHT / 2 - 64, 4, false, 2) print("G", SCREEN_WIDTH / 2 + 20, SCREEN_HEIGHT / 2 - 64, 3, false, 2) print("!", SCREEN_WIDTH / 2 + 32, SCREEN_HEIGHT / 2 - 64, 2, false, 2) print("by John Colagioia", SCREEN_WIDTH / 2 - 48, SCREEN_HEIGHT / 2 - 48, 13) print("BASED ON AN IDEA FROM", SCREEN_WIDTH / 2 - 62, SCREEN_HEIGHT / 2 - 32, 12) print("'Tesseract'", SCREEN_WIDTH / 2 - 32, SCREEN_HEIGHT / 2 - 20, 9) print("by Michael Peterson and Kevin Czapiewski", SCREEN_WIDTH / 2 - 75, SCREEN_HEIGHT / 2 - 8, 12, false, 1, true) print("AVAILABLE UNDER A CC-BY-SA 3.0 LICENSE", SCREEN_WIDTH / 2 - 74, SCREEN_HEIGHT / 2 + 2, 12, false, 1, true) print("MAIN THEME:", SCREEN_WIDTH / 2 - 24, SCREEN_HEIGHT / 2 + 12, 12, false, 1, true) print("RottenMage SpaceJacked Jingle #01", SCREEN_WIDTH / 2 - 67, SCREEN_HEIGHT / 2 + 20, 9, false, 1, true) print("by sawsquarenoise", SCREEN_WIDTH / 2 - 35, SCREEN_HEIGHT / 2 + 28, 12, false, 1, true) print("AVAILABLE UNDER A CC-BY-SA 4.0 LICENSE", SCREEN_WIDTH / 2 - 74, SCREEN_HEIGHT / 2 + 36, 12, false, 1, true) print("PRESS A TO EXIT", SCREEN_WIDTH / 2 - 45, SCREEN_HEIGHT / 2 + 48, 12) if btnp(4) then about = false end end -- Display interface to get initials function getInitials(score, rank) if iInitial > 2 then local n = initials[0] + initials[1] * 256 + initials[2] * 65536 pmem(rank * 2 + 1, n) addInitials = false end print("NEW HIGH SCORE! ADD YOUR TAG:", SCREEN_WIDTH / 2 - 74, SCREEN_HEIGHT / 2 - 60, 12) print("UP/DOWN TO CHANGE", SCREEN_WIDTH / 2 - 46, SCREEN_HEIGHT / 2 + 40, 12) print("LEFT TO ACCEPT", SCREEN_WIDTH / 2 - 35, SCREEN_HEIGHT / 2 + 50, 12) for i = 0, 2 do local letter = "-" if i < iInitial then letter = ltr(initials[i]) end if i == iInitial then letter = ltr(li) rectb(SCREEN_WIDTH / 2 - 32 + 24 * i, SCREEN_HEIGHT / 2 - 12, 18, 18, 13) end print(letter, SCREEN_WIDTH / 2 - 28 + 24 * i, SCREEN_HEIGHT / 2 - 8, 12, false, 2) end if btnp(0) then li = math.floor((li - 1) % #LETTERS) elseif btnp(1) then li = math.floor((li + 1) % #LETTERS) elseif btnp(3) then initials[iInitial] = li iInitial = iInitial + 1 end end -- Rotate a sprite - Based on TEXTRI example function rspr(sx,sy,scale,angle,mx,my,mw,mh,key,useMap) -- this is fixed , to make a textured quad -- X , Y , U , V local sv ={{-1,-1, 0,0}, { 1,-1, 0.999,0}, {-1,1, 0,0.999}, { 1,1, 0.999,0.999}} local rp = {} -- rotated points storage -- the scale is mw ( map width ) * 4 * scale -- mapwidth is * 4 because we actually want HALF width to center the image local scalex = (mw<<2) * scale local scaley = (mh<<2) * scale -- rotate the quad points for p=1,#sv do -- apply scale local _sx = sv[p][1] * scalex local _sy = sv[p][2] * scaley -- apply rotation local a = -angle local rx = _sx * math.cos(a) - _sy * math.sin(a) local ry = _sx * math.sin(a) + _sy * math.cos(a) -- apply transform sv[p][1] = rx + sx sv[p][2] = ry + sy -- scale UV's sv[p][3] = (mx<<3) + (sv[p][3] * (mw<<3)) sv[p][4] = (my<<3) + (sv[p][4] * (mh<<3)) end -- draw two triangles for the quad textri( sv[1][1],sv[1][2], sv[2][1],sv[2][2], sv[3][1],sv[3][2], sv[1][3],sv[1][4], sv[2][3],sv[2][4], sv[3][3],sv[3][4], useMap,key) textri( sv[2][1],sv[2][2], sv[3][1],sv[3][2], sv[4][1],sv[4][2], sv[2][3],sv[2][4], sv[3][3],sv[3][4], sv[4][3],sv[4][4], useMap,key) end -- Draw the astronaut and chain function drawAstronaut(angle, score) local rAstro = math.rad(astronautRotation) local rMines = math.rad(astronautRotation - 90) rspr(astronautX - ASTRONAUT_SIZE / 2, astronautY, 1, rAstro, 1, 0, 1, 1, 14, false) for i=1, score do local r = ASTRONAUT_SIZE / 2 + i * MINE_SIZE local x = astronautX - math.cos(rMines) * r - ASTRONAUT_SIZE / 2 local y = astronautY + math.sin(rMines) * r circ(x, y, 1, 13) end end -- Modify tempo or speed of a music track function change_ts(track, tempo, speed) local base = 0x13E64 local track_base = base + track * 51 local a_tempo = track_base + 48 local a_speed = track_base + 50 if tempo > 0 then local t = tempo - 150 if t < 0 then t = t + 256 end poke(a_tempo, t) end if speed > 0 then local s = speed - 6 if s < 0 then s = s + 256 end poke(a_speed, s) end end -- Draw pseudo-random stars function starfield(games) local x = SCREEN_WIDTH / 13 * math.floor(games % 13) + SCREEN_WIDTH / 23 local y = SCREEN_HEIGHT / 7 * math.floor(games % 7) + SCREEN_HEIGHT / 17 local n = x * y + 31 for i=1,50 do circ(x, y, 0, 4) n = (n * 1949 + 2969) % (SCREEN_WIDTH * SCREEN_HEIGHT) x = math.floor(n % (SCREEN_WIDTH - 10)) + 5 n = (n * 2111 + 1709) % (SCREEN_WIDTH * SCREEN_HEIGHT) y = math.floor(n % (SCREEN_HEIGHT - 10)) + 5 end end -- Test if player has caught a mine function isCaught(angle, score, mineX, mineY) local rAstro = math.rad(astronautRotation) local rMines = math.rad(astronautRotation - 90) local r = ASTRONAUT_SIZE / 2 + score * MINE_SIZE local x = astronautX - math.cos(rMines) * r - ASTRONAUT_SIZE / 2 local y = astronautY + math.sin(rMines) * r return close(mineX, x, 2) and close(mineY, y, 2) end -- Test if a mine has collided with the player function playerHit(angle, score, mineX, mineY) local rMines = math.rad(astronautRotation - 90) local r = ASTRONAUT_SIZE / 2 + score * MINE_SIZE local x = - math.cos(rMines) * r local y = math.sin(rMines) * r local cx = astronautX - ASTRONAUT_SIZE / 2 local cy = astronautY for i=0,r do if close(mineX, cx, 2) and close(mineY, cy, 2) then return true end cx = cx + x / r cy = cy + y / r end return false end -- Create the next mine function nextMine(score) local maxH = ASTRONAUT_SIZE + score * 2 * MINE_SIZE mineX = SCREEN_WIDTH + 2 mineY = SCREEN_HEIGHT / 2 + math.floor(math.random() * maxH) - maxH / 2 tempo = tempo + 2 change_ts(2, tempo, -1) end -- Check if a is less than tolerance pixels from b function close(a, b, tolerance) return a > b - tolerance and a < b + tolerance end -- Add score to table, if high enough function addScore(score) local found = -1 for i=9, 0, -1 do if pmem(i * 2) < score then found = i end end if found < 0 then return -1 end for i=8, found, -1 do pmem((i + 1) * 2, pmem(i * 2)) pmem((i + 1) * 2 + 1, pmem(i * 2 + 1)) end pmem(found * 2, score) return found end function ltr(n) local l = #LETTERS + 2 local i = math.floor(n % l) + 1 return LETTERS.sub(LETTERS, i, i) end function resetScores() for i = 0, 19 do pmem(i, 0) end end