~k("+ 41 6  f   .   $ $b $  $ $` $ @--FX܁ks$dԂX0 xă':0K$]<jDȅ  \3 `D xb  Ȇ   $ 0  L Ў% B V Xr  Ȓ l |   85 hQ <Z f 4s      p   D ԩ L  1 P; B K X g v   , @   |  ) K l\ dh q z      0?`c LCDCDISPCNTSTATDISPSTATVCOUNTBG0CNTBG1CNTBG2CNTBG3CNTKEYPADBG0SCXBG0SCYBG1SCXBG1SCYBG2SCXBG2SCYBG3SCXBG3SCYSGFIFOASG4FIFOBSGCNT0_LSGCNT0_HSGCNT1SG_BIASTM0DTM1DTM2DTM3DTM0CNTTM1CNTTM2CNTTM3CNTDM0SADDM0DADDM0CNT_LDM0CNT_HDM1SADDM1DADDM1CNT_LDM1CNT_HDM2SADDM2DADDM2CNT_LDM2CNT_HDM3SADDM3DADDM3CNT_LDM3CNT_HIEIFIMEBGPALBASESPPALBASEOAMBASEOAMendSTACKTOPBG0SCXvarBG1SCXvarBG2SCXvarBG3SCXvarBG0SCYvarBG1SCYvarBG2SCYvarBG3SCYvarBG0_CAMERA_OFFSET_XBG1_CAMERA_OFFSET_XBG2_CAMERA_OFFSET_XBG3_CAMERA_OFFSET_XBG0_CAMERA_OFFSET_YBG1_CAMERA_OFFSET_YBG2_CAMERA_OFFSET_YBG3_CAMERA_OFFSET_YBG0_CAMERA_FACTOR_XBG1_CAMERA_FACTOR_XBG2_CAMERA_FACTOR_XBG3_CAMERA_FACTOR_XBG0_CAMERA_FACTOR_YBG1_CAMERA_FACTOR_YBG2_CAMERA_FACTOR_YBG3_CAMERA_FACTOR_YCAMERAXCAMERAYCOLLISIONTYPECOLLISIONDATAADRBG0_XPOSITIONBG1_XPOSITIONBG2_XPOSITIONBG3_XPOSITIONBG0_YPOSITIONBG1_YPOSITIONBG2_YPOSITIONBG3_YPOSITIONCAMERAXmaxCAMERAYmaxBGCOLLISIONresolution_xBGCOLLISIONresolution_ySGFIFOAdebugDEBUG1DEBUG2DEBUG3DEBUG4MAINSPRITE_left_collisionflags1MAINSPRITE_right_collisionflags1OAMWCOVRAMBASECHARBUTTONSnewBUTTONScurrentREMOVEDOBJECTCOUNTBGPALADRSPPALADRSOUNDCHANADRSOUNDCHANNELDATAMAINSPRITExMAINSPRITEyMAINSPRITExvelocityMAINSPRITEyvelocityMAINSPRITEframesetMAINSPRITEdirectionMAINSPRITEframeMAINSPRITEobtypebaseadrMAINSPRITEobtypeinfoadrMAINSPRITElastframesetMAINSPRITElastdirectionMAINSPRITElastframeMAINSPRITEframeadvancecoMAINSPRITEscreenxMAINSPRITEscreenyMAINSPRITEframesetadrMAINSPRITEdirectionadrMAINSPRITEframeadrMAINSPRITEgravityMAINSPRITE_floor_collisionflags1TVARTVAR1TVAR2TVAR3TVAR4TVAR5TVAR6TVAR7GAMELOOPRTNADRStartexecstartsheresetfadedpal_spsetfadedpalsetfadedpal_bgdrawfadedpal_loopdrawfadedpal_docolfadeinfadeinloopfade_corewaitvblcopypalletebuffercopypalletebuffer1fadeoutfadeoutloopdrawscreendrawscreentype0drawscreen_loop0drawscreen_loop0_donewaitqtrsecreadbuttonsdrawscreen_loop1drawscreen_loop1_donedebugadrinitvars_objectramobjectpatn1objectpatn1updateygethitsatbottom0objectpatn1bouncedrawframedmagethitsatleft_mainspritegethitsatleft0checkcollisionboxtobackgroundcheckcollisionboxtobackground_loopreturncollisioncodecheckcollisionboxtobackground_loop_nextycheckcollisionboxtobackground_donesoundframeupdatesoundframeupdate_playfrom0nowsoundframeupdate_playfrom1nowsoundframeupdate0soundframeupdate1initsoundsoundoverflowinterrupt_endsoundoverflowinterruptgethitsatright_mainspritegethitsatright0gethitsatbottom_mainspritereturncollisioncode_coltype0playercontrol_type0playercontrol_type0_updateyplayercontrol_type0jmpplayercontrol_type0lfplayercontrol_type0rtplayercontrol_type0_updatey_upplayercontrol_type0_updatey_loopplayercontrol_type0_solidfloorplayercontrol_type0_updatey_doneplayercontrol_type0_solid_xinitvarssettestpalssettestpals1settestpals2clearrestofoamclearrestofoam1drawframe_loadoamcodrawframedrawframe_oamloopdrawframe_oam_donedrawframe_oam_skipfromxdonelogosgamegogameovergamewonsetupbackgroundtype0nonbltimebltimegameloopdebugshufflecopyscrollregsdrawmainspritedrawandanimateobjectsetcamerasetscrollvalsfromcamera_bgtype0updatebackgroundspriteonspritehitsremoveobjectupdatebackground_typ0asetupbackgroundtype0asetupbackgroundtype0csetscrollvalsfromcamera_bgtype0_await1second_loopwait1secondwaitvbl0waitvbl1waithblwaithbl1drawandanimateobject_noframeupdatedrawandanimateobject_stdloopanimdrawandanimateobject_animdonedrawandanimateobject_framesetordirectionchangeddrawandanimateobject_framechangeddrawandanimateobject_framechanged_rdrawandanimateobject_nocountdownrefreshspriteonspritehits_nohitdrawscreentype0adrawscreentype0b_bss_end___etext__bss_start____bss_end____bss_start_edata_end_stack! p8TLL  """#"""%%%%% %%"%%%%%%%%""%#"%""%%%%%%% % % % % % %% %%"%%"""%"" %"% %%%% %  %%  %% %%%%%% % % % %%% %%   %%  %%%% %%%%%% %%  %%% %%% %%%% % % %  %  %% %%%%%% hL FNU\                        ?GV                  ^                 _ @HOW@]                                            ^                            _                                                        ^                            _                                                 ^                        _                                                        ^                            _                                                        ^                         _                                                ^                            _                                                        ^                            _                                                     `dhlpt      xz      xz          aeimqu      y{      y{          bfjnrv      xz      xz          cgkosw      y{      y{          `dhlpt      xz      xz          aeimqu      y{      y{          bfjnrv      xz      xz          cgkosw      y{      y{          `dhlpt      xz      xz          aeimqu      y{      y{          bfjnrv      xz      xz          cgkosw      y{      y{          `dhlpt      xz      xz          aeimqu      y{      y{          bfjnrv      xz      xz          cgkosw      y{      y{          `dhlpt      xz      xz          aeimqu      y{      y{          bfjnrv      xz      xz          cgkosw      y{      y{          `dhlpt      xz      xz          aeimqu      y{      y{          bfjnrv      xz      xz          cgkosw      y{      y{          `dhlpt      xz      xz          aeimqu      y{      y{          bfjnrv      xz      xz          cgkosw      y{      y{          `dhlpt      xz      xz          aeimqu      y{      y{          bfjnrv      xz      xz          cgkosw      y{      y{                                                                                         |                                         |          |                                                                     |                     |                                                                                                                   |                                                        |                                                        |                                         |                                                                   |            |                            |                                                                                |                           |                                                        |                                                    |                                                        |               |                                                                                                                             }  }~  ~                                                 ~   ~ }   }                                                                                                                                                                                                                                                                                                                                                                                                c F F#-b99!D-!f-99ʀ  )HJ , -/.O -NNnOo!)H!i) !J1)-1119L)N!!))!)191EyA NLeR&Fң%eFz"{B${df+H҉L҈ *(h{j{,MPP Qq qRSr spq t   ցׅ ׍ P!))91 T:;<>~>_;RRʐ’”SPP%%%%%A%%%II%JJJ%AAAAAA#AA%%PPPAMհAܰJJJJAAհMJMJMMJJJMMPJAAAPJJA%MMPMM#MAAPAAAMհ%Mհ%%%#M%%JM#%JMMA#AM#####AAAMAMJJ%JIIII%%%%JJJ%JJJJJJJ%%MMMPMP#PܰII#PJJJJJ#P###PJJJJPPPP###JMPJJJJ#PJJMA#PA%%A%#AA%AA%%#A%A%%MM#A#######A%%%%AAA%M%JJJJM#PJ%MAA%#AAMAAA%#M######%AAAAAAAM%MMܰMJ%MMPIJM%MPJJMPMPPPPPP%%ܰܰJJܰJJAAܰAAA%%JAA%%%%AJJA%AJJMMMMMMM##MMAAMAܰհܰJMMJJMMJ%%#MJJ%%#AJJ%%%#AJJJJJ#AM#####MAPP%%MMMAհ#Pհ#PMMM###PAPP%%%PM%հMMM####MPPPMMMMܰP%%%%%%%%#PܰAJ#PJJJJ#PJհJM#PMM###J####A###AAAAMAAAMMMJJJJJM######AAAAAAAPAMܰ#JJJ#MM##M##MMMMM%P%JJJJJJJJAAAA#####M#M####ܰܰIIIIIJIܰJIJ%%%%> >>>> F>>>> rF>FF r >> >r = F> =>F>>FFFF >>FF >FF>> >F>>> >>>> >>>>r>>>>rF>> Fr >>FF>>>F >> > > FrrF rFF FF >rrr Fr r rr F rrrrrFFrrrFrrF=FF FrFrF> >FrrFr >Frrrrr>F rrrrrFFrrFrrFFF F rF F> FFF FF>FF F F ==> r= >>F Fr => =FF>  > > =  > >F> >FF>F> FFrrF F rrrFFF>FFrrr>>FF FFrF>F r F>FF Frr rr Frr>>=r FrFF>rF rrrr>r rrrrrF Frr F rrr rF rrFrFrFF rrFrrFF >r>rrrF >rrFF >rr> >>> > >FF>>> F>>rF >F>>r FF>>> rr >>>rrrrF>>rrrr >> rrr =F r ==rr == FF=> FFF=F>>r rrF> rrFr r rF F rF > FrF F> == F> === > =>>>>>>>>>666%6%6"""6"%666""66%"%6"""666"""%6%"%%6%%%6"%"6"%"66%6"%6"%66"6"66%66666%%%6"%%6"""666"""%6"%"%6"6666%%6%%%66"%%666%""> >>>> F>>>> rF>FF r >> >r = F> =>F>6%%%66%%%%66%%6""%66"""""%6""%""""6""%%%""%"""""%"6"""%"""%""%%""6"""%"6%""""6""%"%"6""66%"""6%%%"%"6"%""%"6"""""""6""""%"6"""""""6"""%"6"%"""6""%%"6"%%"6"%"""""%""""""%%"%""%%%"%"%"""%% > FrrF rFF FF >rrr Fr r rr F rrrrrFFrrrFrrF=6%6%%666%%66666666%%666%6%%%%6%%%6%%6"666""6%""%%"%6%""6%%"6%"6%%%"%6666%%%%%%%""""6%"%"6%%""66%"66%"6%%%"%%%"6666%"""%6%"6"%%%6%6%""6%%""6%%%"666%%"66%"%6%%%%66%66%%6%6%6%%6%%6"6%""66%%%%66%66%66%%66%%66%%"%%"6%%6%%6%666%%66%66%%66%6%"%%6%%6%%66%666%666%666%%66%%""%"6>FF>>> F>>rF >F>>r FF>>> rr >>>rrrrF>>rrrr >>%66%%6666%%66%666"""6""%666"%66666666666666666666666%%"%6%%%6%666666666666666666666666666%""%6%"%6%666666666666666666666%""%6%"%6%66666666> >>>> F>>>> rF>FF r >> >r = F> =>F>%%6"""6""%%%66%%66%%%666%66%""""""%6%%66%6666%666%%666%%6%%66"%%""6%6%%66%%6%%666%666%6%%6%%%"%6%%%6%%6666%666%% > FrrF rFF FF >rrr Fr r rr F rrrrrFFrrrFrrF=RRII%I%II%IAI%IA6"%AI6%A66%""6%"66"6"6"6"%6%"6$"""$"6"%II%6""%II6%"%6%"6"66"6"6"6"""6"6"6"666""666"""66%"666"6"6%"66A"6%""A%"AA""II""66%%"66%"$""""> >>>> F>>>> rF>FF r >> >r = F> =>F>>>FF>>>F AAARRAA%"R""%666%%""%"""6""66%6"%%66%%"""%""%R6%%6IRR66%IIIIIRRR$AIIIIIR$AAII""""%%"6"6%6"6%6"666%"666""6"666%6"666%%%%IIII%%%%AIII"""%6""6%""6%6""%6%"66"6"6"66"%%%%6%%%6%6%%%%6%%IIII%""IIIR""""%6%6%""6%%%6"6%%6 > FrrF rFF FF >rrr Fr r rr F rrrrrFFrrrFrrF= ==> r= >>F Fr => =FF>  > > AAAAAAA"A""""666"""%"""""""66%%666%6%"""%""""66%""""%66RIRIIIIIIIAA"""""""""""66"%"66""6666"666666%666%6"66%6"6%%"""%%RRR6"%6%66"6%66"%66%666%666%66%66%%66%%%66"%%66"%666%""%%6%""""%%%%RRR%%""""6%%FrrFF >r>rrrF >rrFF >rr>AIIAII"ARA6"""$%%""A%"%"A%%"IAIRRII"RIIA"6IIA$""%""""""""6%%""%66"%"6%6%"666""%""%""6%"%%"66%RI"%%%R%RR%%%""""%"""%""6"666%6%6%6%6%%6%6%"%6%%"6%%"RI%%%RR"RR""""""""""6%"6"%6""""$>FF>>> F>>rF >F>>r FF>>> rr >>>rrrrF>>rrrr >>F rF > FrF F> == F> === >%%%6%6%%%%%%%%I%II%%""6%"6%"%%"%%"%%"%%"%%"%%"%6%"%%"%%"A%AI"""%"%"%6%%AA ==> r= >>F Fr => =FF>  > >  PP%%%%%A%%%II%JJJ%AAAAAA#AA%%PPPAMհAܰJJJJAAհMJMJMMJJJMMPJAAAPJJA%MMPMM#MAAPAAAMհ%Mհ%%%DDDrD?D?rD?D??D?DDD???rD???????rD??DD?DD??rr?rrD???rDD??DDrDDDr?r?Drr??r?Dr?D?Dr??DrDDrr??DrDrDD??D?DD?DrDrD?? DrDrD DDrD?DDrDDrDrD?DDrrDDDD?rDrDDDrrDDrrrDDDrrrr?rrrDDrrDrDrDrrD?Dr??DD??r?D?????D??rD?D?D?D???????D??? D? ?? ???? D???? ????????DrDD????DrDDD?D?rDrrDD??rrrDDDD?rrrD??DDrrDDDDDrrrrD??DD?DDDDD?DD?D??DD?rD?DDDDDD?D??D? ???D??? ?? r? ?r?rrD rr???r???D??r?D???rD??DD?D?D?D?D? ? ?D? ?D??? r?D?? DD?? D??? ???    ? ?? ? ??? D??? ??? DD?? ???? DD??? D??? D?? ?D? ? D??? ??    ?? ? ?? D?? ?? ?? D??   ???DD? ?????D ???DD?? ???D??D ???D?D ??D?D? ???Dr? ??    ? ??? ??? ??D? ???? ???D ????? ??D?? ????D ???D? ???? ??  ?  ??? D??? ???D? ???D?D ???DDD?r??????D????DDD?rD??D????DD??????????????? ? ?? ? ??r ? ???D?????D?D????DDDrr?D?D?DrD?DDDr?DDDDDD?r??DD?D?D?DDD?r???D??DDr?DDDDD?D??D?D?D????? ???? ?   ???rD?D?D ?DDDDD??DDD??D?Dr?D??DDDD???D?DDDDrDrD?DrDrD?DDD????r?????r????Dr??r?r?????D???Dr?D?DrDD??rrr?rDrDDr?D?r?rD?r?Drr?D??DDrrDr?DDD???Drr?D??r???r rr??Dr?D?DrrD?DrrrDrDrrDrrrrrrDDrrrrrrrDDrDDrrrrrDrDrrrD* CC*** C*C** C*C**YC *C* YCC YC YY CYY *CCCY Y CCCYYY YC YYN CYCY* NC* CCCC CY* CY* CNYC * C**YC* C ** * **Y C*Y YY* **C* *CC*K*CYYC*YY+CYYYK CC+CCY *+Y *NC*K *CC *K CCCY*C* YYY Y@Zkhhmnge_gGm_eeeelxygeeeeelSm^eeedTvmjddt\\    ## #-&&-&-&!&02/2.///,22233/2132333:222//,22&/,&,,22&,&,0/2,0/222232222132332231315:<:7-7;9(-554(##"#&&&/-,/-/,2/1/1322333231321/3:222223/21/,//11/22,23233331122125(44#5.(4  4# ##########'&&',&/.,2,3232233121,213,/,,/1/212132123#######%#####" '('( (( &-.-(-&0.000,&-,252/222223233333#  # #####% #%## #  #  !'( .-( -//0/&-''22/2/&/,311/(! (' -('(((45(--&-'0870000(0770373(0733'023'-2:(003-0333-0023(-&023 ---.02 ' 4-4/0( .-/ (!(-(.  (' - ((-# (-  #      #' ( '( ' (((('-'(.(--'/.&-&.-,1/,20//33(( -( -444-((4.((% -..-(!(('.0-(' //00('20370-('30.&:0(:20300200033033523307/33:33007:33:7033:337/023:223&.21333-&/2:3(/03./302:-/2'(/30:'-03(-22(&23'./3 &,2!'//''/ '-  '(' '( '/ ((.((---/((---&-.0'((--&.2-(&(.(.0&-&.&000.//1,,32 # # ( # ( # ## (  # - -( ( (-4 --(' .-( &(&.! / ' 4(0-(-04 .&52770-20:3:2-3:7/33531022,,,,,2102332,2/33&03&0,-,12&&/2330&0/,22100000203000000323772022932/1/03121##   ! #/ # -- /-' 5--'./0- /005-,070-27:0.423800-(3120&('32,&/(1,,&&,,1/3222332233313##' -&-((-&/(2/.&-((:32..&.333.,./332/2#(((&(((.(-&.(..22,2,,,0¿³¹¹ÿ¹½11#######&(&&,.&,&00&1132/2·ÿ³ôóýùùùôã#####(&&,&&&2/32&''30/((((3,.&-((12,,0,&&12ÿ¿ôùÿô #########&!'''((&(&&&&/'&(&(&(1,,,-&..11211ſŹ¿½ųŘɥɦȽ#  # ######%####!''''((.&&.&,&&&,((.&.,0/,0,,0112211Ŀ¾ÿÿĿ#%############# &&&&&(('&'&'-(&,&(&-&',///(/&(1112,1,¹                                                       !"!    !!      !"#"       "$%%#    #&()(%"   "$%$"  !"     "$$"  ""    "%%#       $%%#     #'('%!          $&%#       !!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !    !"                                        !                                                                                                 #&'&$#   !!  !"##               "##"   #$                !#!      ## !                           !                     #$"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           #$"                                                                                                                                                                                                                                                                                                                                                                                                                                    "                                                                      "#                                     !         !"                            !#%#                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             "$$!                                                                                                                                                                                                                                     #%$!                                                                                                                                                                                                                                                                                        !                #&%                                 #,.,%    $(("                         !&(%                                                                                                                                                                                                     !                                                             ""                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !                                                                                                                                                                                                                                                                                                                                                                                                                         !&))'"                                                        !!                           !                                                &**%   !             #!            #"     "#   "#"!            #$  #(+*%            $&#                   $#                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ##!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "$%#                            "$#                   "#"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !##                                                                                                                                  !##"                                                                                                                                                                                                                                                                                                                                                !$$"                       !#"          ##                                                                                                                                                                                                                                                       !"!                                             "$#                                                                                                                                                                                                                                                                                                                                                                                                                                             "$%#                                                                                                                                                                                                                                                                                 $&$      #$           "$#             !$#                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !""   %()&!                 ""               "#"        ""       "$#    "$#                 #(++)$      %))&!      !  #&((%!      !%&"             $$!  !         !&*,,'!  "$$!                                                                                                                                                                                                                                                                                                             "$$!    #$"                  #$#    "!               !    $&&#    "%&%"     #&'%"      "##!     "##!    !%'&$!       ##"   "#"     !%''&$!   "$%%$"""""   "%'((&%$#!   #'*++)&#                        #&'%"        "#"       !$&'&%$$#             !                       "##      !$&&#       !"!        $&'&!                                                                                                                                                        !#"!        !&))(%"                         $(+,+(%!          !$$$$%%%%$$"            !$&)+,+'#                  !"#"                                                                        !""! !#$$#"                                                                 %'&!                      !                      "$%#                  "#"                                     !                                                                                 #%$                         ""!                                                                       !&)**(#       ##"                 $&&%      ""                     %&%!         !#"    $%"  "               $)+*%                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "$$"  !!           !%()))))&"    !#$%%#      !""##"    #'*,--,)%!  !%)-/1220+%       ").13441-(%&&%!     !"#"      !$'),..,*)&" #$!  "(,/2442/+)&#      !).26886410.,**)($    #'+.-,*('%"    !&)-0221125654442-'    $*.0231/,*)(&"    "',04678:;;841/.*%    !%)-13567762.,*($"'+/48<>@AA?=:752.'  "&)*+*)'$"!!    %),---,*'&&%"  "$%%&&%"   #(,0345541,'# "%&''&%"      !""               $'**(%!        !!        !#%')*)('&#         #&()(%!    "#!     !"#!                                        #$$$"                                                                                                                                                         !""!                                                                  ""                    !""!                        !!      !%*,.-+%    !%),-+(# #'*,+)'#   #*16::95/'        "&)++)$    &+/2331-(#  !"     #&(((%!  #',17<@A@>93-)'%%%&'()+,..-+($!!"$%&()+*)'#        !"%&''%"       $'(*-/24541-(" !#%&&&$"                                                                                                                                                                                                                                                                                          !!"##!  #%&'''(((&#                      !%&%#                   "$%%$#"                                !""!                                                                                                                                                          "!                                                                      !!!!""                                             #&(**&!     !$&'&#    #$"                                          !                                                                                                                                             !            !                !"!                                                           "%&&$                                                                                                                                                                                             #$$!   !                                    #''&!          !!  !                    !$%# "%%$" !#$#"!!""                                                                                                                                                                                                !                                                                                                                                     !!            !#%%#                                 #&&$                                                                                                                                                                                                                     !###!                                              !#%')))'&%$"!!""#"              !#$$#!         !###"""""!                            !#$#!                                                 !!                        "%'&#                                                                                                                                    !######          "&'&$!                     ""!             "%&&%#!     !%'((&$"""           !'+-.----,*'$"              !!!!"""!!#&)+*'"                                $$"                                                #&'&# #$"                                                                                                                                                                                                                                                                              !"!                          "%''%!                                                                                                                                                                                                                                                                                                #$"                                                                                                                                                                                                                                             !                                                                                                                                                                                                           !!!                                                                                                                                                                                !          !!             !#"                                             "$%#      !"##$$$$"                                                                                                                      !%$!                                                             !$'('%#""!      #(,.-*%          !                                                                               !!                                                                                                                                                                                                                                                  ""!              "!                             !       "%'&#                      !""!      #&'((('%"                         !%'&%#!            #&'%"            $')**)'&%###"!! "#%')***('&%%#"                  !&())'&$####"    "#" "&'('&%"               !""#$&),.00/.,*'#          "#$%&''())(&%#"!    !""!    !!!"#%(*+,,+*+,--..-,*(&%#          !###"!!!   !$'))(&$"  "$&),/2442/,(%#!       "&'&$!                !! "%%#                                                                                                                                                                                                                                                                                                          !!! !                                                      !                  !                                                                                                                                                                           "$$#                  !"$%%$"  #%&$"                            "',/00/-+(%"                                   "%&'()))'$                  !%'((&"                  !""          #(++)&$#" "$#!!                 "$%$! "$$"                                                                                                                                                                                           "$%%$#"! "$%%$"       !          !!!!  #&'&$"                   !"""!             !!   "%&%#!              !!          #&+04763.)%#"!            $*./-*&#!    !$&&$              """"" !#"!         !"##!                                     !$%$                    #&''$!         $'(('$                                                                                                                                  "$$#"                           "%'('%#!              !###!          !"##!                       !                             !$$"                            #&&#               ""                        "#!                 "#"      "'*+)'#                            "%'('%!                                                                                                                            !""! !!             !""#$$#                "%&(*,--,*&"   !""!!          !!      "$$"                  $')+*'#                                   !!!                                                                                                                                                                                                                                                        !!!!                               "#$%%$#!                                                                                                                                                                                                                                                     ""                                                                                                                                                                                                                                                                                                             !!                                                                                                                                                  "#"                                                                                                                                                                                                                                                 !#%&'&$"               #%(*++)#              %*.232/)!           $(+,,*&!    !!!!           !%(*,,*'"              !$&%#!                 "%),..-*'"                 $*.2331.*&!       "$%%%&&&%$!          "$$$$"   !#$%$#                                                                                                       "$$"                                                                                                                      !!!        !##!    !"#"                                   !$'()**)'%!                                                                                                                                                                                                                                                                                                       !!!         !!                                                !#$$!              #$#        #$" !###"                                                                                                                                    #%%$"                                            !#$$"                 "$%$"          """!!""!            "#"      "%&&$"                !#$#!                                          !!          "##!         !$%%#!                                                                                                                                 !"#"  "##!                                           "##" "%'((&"              "%&$!              #%$#!   $(*,+($                            $'))($                           !$$#                     !%)+,,+**++**'$  $&&$           !   !"#######"          "$'())))**)(%!"&'&$          !#%&''''((('$            !$&()*+,-...+(##(+-,)%!    "#"   #&'%#   !"##"         "$&'(()))))('&#           !!!                                                                                                                                                                           ELFh(L0LDD%%%%%'''%''(('%''(('&%'())('%'())))(%'()**))%%%%%%&&&&&%%&&&&&&&&'&&&&&&&&%%%%%&'''''''%(((((('')))))(('%%&%%%%%'()****%'()****%'())***%'()***%'())**%'()))%''(((%%'''****))('*****)('****))('****)('%***))('%))))('%((((''%''''%%%%%%%%%%%% `D   h0LDD%%%% % % %%%%%%%%        %%%%%%%%      %%%% % %% % % %% % % %                %% %% % %  % %% % % %% %%%                % %%% % % %%% % % %%%     %%%%%%%%     %%%%%%%% % %%%%% `D                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !Bc !)%J)k-159=1RsΔҵ9Z{ƿλ޿žvʽеPjco֩ƿλ޿žvʽеPjco֩ƿλ޿žvʽеPjco֩ƿλ޿žvʽۿĿӳۿ֢ocjdӳۿĿӳۿ֢ocjdӳۿĿӳۿ֢ocjdӳۿĿӳۿʞĿüۼʷrZjqq³ĿüۼʷrZjqq³ĿüۼʷrZjqq³Ŀüۼʷ¼ü۩miӼ¼ü۩miӼ¼ü۩miӼ¼üټÿüóۼ{üټÿüóۼ{üټÿüóۼ{üټÿüó¼޿[1r &,Z¼~)FѩÛ~5 /ſ[ ¼޿~ۼſߩ{{ѩ#*TTZ{{K֩ۿkG{{nſkTIʾ{{ßſӜ{֩ۼ[Ki[k Ti[v&J,v Tۼеi[vſŘ5 ٢iӬT8üФqin{bӬ?qi:BkJÛ~üФqi˿򝜴Ӭ= XFr{TBᦑqrnX^ Iü&55:ʼʿᣍQiqvóÜ%=cvT nۼciqKþӤ,5þQP{۩riiqҴÐ=P5&=doqҴTn{oAi{ӎ15ҴPKnÐnqqiqдF&.c/=oqдH=ߟT&:q0д Fv:3д< =³cPmߟʟ~dijЬۼӐ{miߜ翛׼n{ִdijЬۼӐ{miߜ翛׼n{ִdijЬۼӐ{miߜ翛׼n{ִdijЬۼӐ{miߜ翛cjۼm]rǹ{Мvcjۼm]rǹ{Мvcjۼm]rǹ{Мvcjۼm]rǹdЩó][˹֬nkdЩó][˹֬nkdЩó][˹֬nkdЩó][˹լЩ﷘{ۼ޷ÜҐmmvլЩ﷘{ۼ޷ÜҐmmvլЩ﷘{ۼ޷ÜҐmmvլЩ﷘{ۼ޷Ü֬ܟ۳ʿۼӼө{kq֬ܟ۳ʿۼӼө{kq֬ܟ۳ʿۼӼө{kq֬ܟ۳ʿۼӨ¼ßŸ÷Ö{۽rmӨ¼ßŸ÷Ö{۽rmӨ¼ßŸ÷Ö{۽rmӨ¼ßŸ÷Ö{ʸ۽ӳ}}ÿũ{ʸ۽ӳ}}ÿũ{ʸ۽ӳ}}ÿũ{ʸ۽ӳ}}ۼ輟☼ἾŽ򩜩ʼۼ輟☼ἾŽ򩜩ʼۼ輟☼ἾŽ򩜩ʼۼ輟☼ἾŽ򩜩üéۼۿż{ӬЦʽüéۼۿż{ӬЦʽüéۼۿż{ӬЦʽüéۼۿż{Ӭܽʿ⼳ß÷ÿҗ㬬Ľԫܽʿ⼳ß÷ÿҗ㬬Ľԫܽʿ⼳ß÷ÿҗ㬬Ľԫܽʿ⼳ß÷ÿҗſʽޟüÛʿۜ^ЩnߐГſʽޟüÛʿۜ^ЩnߐГſʽޟüÛʿۜ^ЩnߐГſʽޟüÛʿۜ^Щnߐ˿޽ө~ߝ~r{&޽ ~ө ~~ޟۜө~ÿߝ~ک˿޽ө~ÿüŽʷÿЦB!FF|^ʷ=//BT[ Kk[TT{_R\wkI ÿЦⰛ￰өüŽʷÿЦⰛ￰ü޿ʽʿ{& 8Žʿ/Ł۰F&/5, )=5)')85,F{Ł۰üü޿ʽʿ{Ł۰۷~} T liN rÜ{ T   l   k~}Ü۷~}Ü➲÷ʿ{vnu}üۼ=өߩۜ FnA{nө{nu}üۼөөөӳ÷ʿ{vnu}üۼөӘ޷kmnvß ©T^B޷v^I©&  ) $nvß{©ө޷kmnvß{ŷ޽ӦmrۼЬټ&/B޽Ӧm۩5ټF=/=FFFBIF?,ۼЬnټŷ޽ӦmrۼЬnÛ[iqérkr߼n TT [^[3K [[rkrknVn{{||ӎKéЬrkr߼nuÛ[iqéЬrkrۘw۾ŷOдo[drӐ Oqޙ $dr{ۖ۾Ű ֦o[drӼ{ۘw۾ŷOд֦o[dr߼óŸrr~Ыiir~߼óŸrr~Ыiir~߼óŸrr~Ыiir~߼óŸrr~Ыiirӟw⩘ÿ{{Цggjrߩӟw⩘ÿ{{Цggjrߩӟw⩘ÿ{{Цggjrߩӟw⩘ÿ{{Цggjr©{nٟÿܟ~өڳofcgßӼ©{nٟÿܟ~өڳofcgßӼ©{nٟÿܟ~өڳofcgßӼ©{nٟÿܟ~өڳofcgv`üӟgQfj޼өv`üӟgQfj޼өv`üӟgQfj޼өv`üӟgQfjޗ]{œü޹翷}۟geʐ߳{]{œü޹翷}۟geʐ߳{]{œü޹翷}۟geʐ߳{]{œü޹翷}۟gevߩۿۘyʜgĸanvߩۿۘyʜgĸanvߩۿۘyʜgĸanvߩۿۘyʜgĸmvٳüͷüǿʘodFߗ_{ KdK^R vٳv[dR~r{͘üǿʘodӿƿλ޿žv=i cokTTλzK n=0Pj:ƿޟB =? еjcoi{S9޿žvʽۿĿӳۿodv)) _n {ìocjۿ#ns#ķ ۿT֢jdn nސ!)! ӳۿʞĿüۼo Zq ^I5jA˿ķ  ۼrqq) )üۼʷ¼ü5OiüF F= AkF5=۩mU~Tüټÿüó{k vüT Wü[ۼu {ټ޷ üó¼޿~ۼſ{{5)ýݓ//T~TB,kÛ&^{ ~ߩ{{=w^^ ~ۼſߩ{{ѩʾ{{ßſ{ÿ&krTk[{  Iۿ[[{ {{ Ӝ{֩{ k Ɛ Ÿ {ßſӜ{֩ۼۼеi[vſFI}iB{BFſ{[v=L[{ ^{:1iſŘÛ~üФqi˿򝜴ӬÛ~üФqi˿򝜴ӬÛ~üФqi˿򝜴ӬÛ~üФqi˿򝜴Ӭþᦑqrʿʿִþᦑqrʿʿִþᦑqrʿʿִþᦑqrʿʿִʼß~vrvʿ۷ßʼß~vrvʿ۷ßʼß~vrvʿ۷ßʼß~vrvʿ۷ßʼü`vý٩дʼü`vý٩дʼü`vý٩дʼü`vý٩ʷþüuüөü掑ʷþüuüөü掑ʷþüuüөü掑ʷþüuüөüķ۲➖ʼөۿdjķ۲➖ʼөۿdjķ۲➖ʼөۿdjķ۲➖ʼөۿͿòóǿʿş|d^k{&oͿ|^McͿòóǿʿşý˜ʿ޾ž~ܼwvüܩ k {l ޾ž~Y/r{ IKʿ3~ޜ T?ʿ޾ž~ܼwvüwۚ¼Ϳ~{nߜE 򼼷ۚ¼Ϳ niT )ŽóͿX{Fߜ[۟ ,򼼷ۚ¼Ϳ~{nߜ۟}{~ſ߳ө~kß~ſ߳$&œ {üſөœߞU ß~ſ߳өœߞßüÿßß=kK~m ü= ÿ~{ßüÿ~ӜüۼüӼߩ{üün Bܽ򿟼 F#nܽüüۼüӼߩüüüלÜr^ K&üüüלTiB򼘼ל [n$r&2üüüüלÜ۟ۼۼün  {¼ n {nnʿß)8X  ~ü&[nWʿ¼ۼۼüۼܼýüې{=¼BI{{Ü #ü&#ܼ{ü Tۼܼýüü~üۼu{r۽ß~ۿü~üۼu{r۽ß~ۿü~üۼu{r۽ß~ۿü~üۼu{r۽ß~ۿüüw^r޷ʷۿ~ٞüüw^r޷ʷۿ~ٞüüw^r޷ʷۿ~ٞüüw^r޷üØ~Щ￟ÿÿʽ¼üØ~Щ￟ÿÿʽ¼üØ~Щ￟ÿÿʽ¼üØ~Щ￟ÿÿß⼼üʿܼ۩ӳß⼼üʿܼ۩ӳß⼼üʿܼ۩ӳß⼼üʿØü÷w٩ҞØü÷w٩ҞØü÷w٩ҞØü÷üüý򼼩ʿüüý򼼩ʿüüý򼼩ʿüüý򼼩ʿۘü⟩Tr{r{ۘrü۩& ~~~vO{k)rw|Vv{ۘü⟩ʿʿüۼéĿʿ ^þF5{ ~l^ EIþr {mk {[ޔĿw ~TuüۼéĿʿʿŸۼ~ýҩ{ٲ { krI=ýҩ{ٲ~#&Fvm8 X/ \r {ٲR{ {v}Ÿۼ~ýҩ{ٲ~ҴØę۾ۼٵjZrnZ rjZ= krOk ~ęٵjZrnZZ7 ҴØę۾ۼٵjZrnөǿʼʿᣍQi+?=8IÐ`düdr1<}QiüǿʼʿᣍQiqvüþQP{۟ۼӤJiv=1 ]:iqüBüQP{ۗۼi? qvüþQP{۩riiqҴPKn[ӎo8lގ0>8lު`77`#m#m$#+R>Em*lH޼*R#m ` `(`+$#<;`SR?(`+P \ގk*ޒP TlĽ`7;kRĽFIHm*`DHRmɢĽm`78`;]88S8Ľަ=-*%*#}#*=0*ߣſ Ž78;88lP;ŽqD#ŽŽ ~p?gT<a<`<`k?l5<TŽһһ7c;f0<t-<Ҁ  һ `76T*REU"b(R b~T77^һ!+4\84T7һҶT.`-` RI?<>N[<<I>ߣ!T Rλ;ŭ߮ҶλһһһһһһһһһһһһһһһһһһһһһһһһҺһҺһҺһҺһ׻һ׻һ׻һ׻һҺߒA + X hF 8U im`(ҺһK U J v7F</B7J<!7[88T6d&`һλUһ!|T Tŭ +/&һ xһλD7u8A6{%z9}2< tv9s+:&+K zA{W6U>#9C:  dş R#` Az אREbL<AY ,M66N7e%UޱRV+}8ŏ#!!w`Lһһһһ`J0m(Z \8nI \PPqߕ\R$m+Vm-kk5;`HI>RHPH\`78aH (*;--kD;#߾ ;0-#((;1-֣#8;qQޒ8;;8;H;`?l k< <l<<j?k`<n>߃4?0<m<Vm8l+@0>֖ޭ(q*RS(o ţf#j`78k(m B\>֮*\D(RV77TP BA([?֑\%lV\`*R \$=K>ߖ?@R>ŖT RźźźźֺֺֺֺֻֻֻֻP5zK T~^P4i%K `87K ` ֺҺR(qT68aJER[-q*`p*U T7;kJJ>P<T78`ֺҺoֺ֦-*!;0*oE;# ֺһH7;8 P8һһւ2:a@mt b< :һһ`һ+<T<Tw8m8iһһQ T!b~ z `87Tһ{%RK Td%U `76T!c#AK<K<M66` һһKt y[ N<<һ uC<ŖKw%gTK^.R K !77M LһT'һŴH0R \ߎ8R \;m*j`R(m`8;`JJ mP<`7;`[IR>m-mRk** =1-# ;+*߮#D8;8H8lގ8ł4<o?j4? o?m<k<mގ ނ kŭު;qޖ8e->Ǿ;m0<;mR#k (m# `77k \@`74` -\DR?m)j*RŏޖR##֎` \??ގk-;T R`+O?ޣ;k\k?`+ĽĽĽĽŽŽŽŽŽŽŽŽһһһһһTC ^~P K~~8G [ ;һN67`mK`47NΖBBߒRDPҶλߦһ;.*ґ "%8--! ҦR40R;0- һһq67; һһ `<x xU<``<r;m tk?rһҋ*:7U+@ז+!3һ6U0@߮һҺ֖a76T(LT45a &\J[Һһ׻\ T?בR \һT'AAP>8N RT'P?;׻һҺҺҺҺһһһһλһλһλһλşA +K T tC M}%%xzxyuyK#TޱK!_`78`FT67T++ BA }A>b DB%%һ<}ſ77:[mGһ;֎J;8 7B8;8D8%~7``7b<5@~2?o?jގ4?k;m֣\(a`44`Ha85`   *4``8]R \ުk0\ \??Pq48[RoZ==aaT a~ eł o `T#(ql##R-a\ T[+TP<Kź`# y#% ?<TźźP߭K7R;K886ֺ*&ֺֺֺֻֻֻ   DE ֺҺc xi~i00ҺҺֺҺҺֺҺֺֺֺֺһһһһһһһһһһһһһһһһһһһһһһһһһŴĽĽĽĽǽǽǽǽ !!ABBbcc  &''G((H(!H!h!I!I%i!i%j%j)%˩)̩1ͱ59 M..//:No00:PQr:Ѿ>Ҿ1?1BqBrFRʱB³BJʴƴJFNεR2233SS4G4455TTttUUuu6OvO5SuS7W7Ww[OOϷS98[xWXXxxYYyyz߹W_߻_9ycz{gkžž¾־žž¾־žž¾־žž¾žľžžľžžľžžľɾžɾžɾžɾžžžžžžžžžľr&ڂ\ ~R Yb XiE . ~žھžx&rPEAf48pf58[R h |JIʼnbqžĺ#!! ş^&&8/+žź:55־A8}84j־ź:i>n Ń ō2< ~nAhs<žھ4hs5h/<źž \!w&lC \~ f44dd44Nb%p &Xžž l Tɗ HHO"] [X Nf b~ž\"AHS;֔žžľžĽľžžĽľžžĽľžžĽľžĽľžžĽľžžĽľžžĽľžľžžľžžľžžľĽĽĽĽĽĽĽĠľľľľľľľľľľɽľľľľľľľF .R ]R [ wLڨ  R [̈ S!rf58fEf55dt8P<1J8JXf58fI n!op8,*H58x&88H84<:&.9v; :2=l8rC%;8|/;8v b$ig44gaf45f bPtC*Xf44p)|#H bf ]] Yp.p/ɗc=p.Y Y)#ĽĽĽĽ mS qKœ c ZžɈŇ*+845žĽ4>91J8žF8I90@5p55[AۉK ,/ĽTS<K7L9žĽžž\f n d ž6'"ŗHHĽ6'& Ş ׶ ĽžžŸ!6&6H5C54 5Ż־ž־žž!,žž~6&.7ۇ19^7ڃ0;ĵ^7žžžž9!9ž;);ž";ɞ'9۶žžžžjLCjAɇca|]44dA ž!L ڸ!TT9b;žK7žžžžۖY XžŘʼnB7K7Ŕ686žžž־źž־źž־źž־źžžžžžžžžžžžžž־žž־žž־žž־žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžž> "K X~~ ~~ œ ž B N ~!!ž!!~~~~žžŠK \ [48f>>jɌ> 5dT3E3MK3>N34d"' '' >>Ľɠ^!! f51U [3-U ړ>>ɨCAž!!žẽž54q6A4 8̵ 6ž44A54 4A5ž44rCl 7ڃ0997ڍ1<ɇ1<lAkl5q1#21!2 Ɍ8{b%ld45p H bcIXcGf44f  bY fPPo.Y Yp/ډHH!o$f$$#W[44X:Tژ14[{1'52/k 455cb5X!2.%2,ɃWɗ55cV5!0.<b v!lfkѤ2!7 0vs1)4fo8* !m2$y2! rug=<Q* m0$|;m)Sĸ!K;fg9ɗ9ė9 <gf7^4 4: žɻ~6 ^bW\\=F6icTľ\d!hdû1S33 fr&'R-fg81b/b!fgė.LžS,4cT*1!~ 5ֵ0%!~48TTRbK"1$2%K"50 SbXYYX1!žľžJ՗ھľľžھľľžھڵľžھžž{ĺžžžĺžžžĺ TžžĺĽžźžĽžźžĽžźžĽžźھ־ź־ھ־ź־ھ־ź־ھ־źžھžھžھžھźžźžźžźžžžxžžžžžžžľžžľžžľžžľ6"M0,ɃK6Tj 5U~ Už(B?31'łQ6B5 45۔(''6K41'` Q9Q3ľ\M-!\i ~ž" 0 !j\il!\3dd4 OO$ '~ ľO!de1 ~kOOľě7!K7ž7MN79ž7ľ\7 Ľ OOKTĽ^ĽĽ ^Ġ.Vľ~.Q!~N^!'N[4!NNl&'Klľ!\M\'K![[ɽ1$K'ژ&TXľ@"QWľKQ1!ŗL,434ɗ3W8ĵ0!X5ڗ4Q4ĵ0!L,Č4#f$c ]P .&&z58lb%r/z,,5[15g4c0̇X;/g1,k 58%44vP:GCl$lfk$flg==c$k]lf1$5gp5yg<;Q4ff4b5 4< گ;!L n<P:l߃7 <E6,] v;f&lf$k]l&\[.Q1fd40df5vX4CG$r!X%s ĽŨ5ŗ5X5L,TW1#3K,ɵ0$&440 45c8It$!W!qJžŸ@ž ~žł,žĽlžž Xl~žž QžžĽžžĽžžĽžžĽžžĽžžž־žž־žž־žž־žžžžžžžžžžžžžžžžžžžžžžžžžžžm žžžžžžžžIžžžžžžžžžžž43ָ33533548144 4333v!=/fXźž־źž:5d[(4N[4nn3NN34ff5ss#%sf3dd4j4dd3(NN3sgžžžžž:$S<žž־žž¾x9 ižžžžžD-NN(0d[4]l$ž-NN3'dd4Ne!&id'[[40d[4-NN3žžžžžžœ((Ż334žTQ34(4(œ(34XT3434!~K"žžžžžžžžľ?žžľžžľžžŠ!cĽľ\~ĽľĽľĽɠžľžžľžžľžžẽžžžžžžž!!5xR;:b1.%2/n!1/54u#5X1.$|#55% 1,f58g1,5482/%vr1%t2)0)#pp|llЧs1$wТ5pp5y2$ 2!5ff4z{%1)|!R)c%R$R: ؇: : 5#:8 .S/b0Q&ffr]l&/S1pz8X;/blp1V1]]5fu&.RXX1%1%*XW1$5Y84&2$&5881%1%4451$&ľžľžľžľžžľžľžľžľɾ##žj"3ɇɾž žžž; \>žžžžڗ546Xc;,ZŃTx > A.5%0'4~ T34!5ۻ-"U45]1.Ż354<.Z0,7b459'fھ&~4gf3^*n[&XTj6lk$|1!#vn ~3[d5q ll0 1)4[d5i^ lf0$\ž!x4ff5s[ĺĽ<ź=T9žźھzźz־~l ^־8!5־־ź*0ff4*mYu&1b&gfû0fg8!dd.Knf.b1ff5Xh!/cջ!1fg8ھ44YYR.XYb.H&i"m51$4B'bX584۟- 1$5542%bT55žžž e~44žžžžžžľ־BNžľžžžžľžĽľžžĽľžžĽľžžĽľžĽľžžĽľžžĽľžžĽľžľžžľžžľžžľĽĽĽĽĽĽĽĠM]Ȃ \~ hڇ kMľľľľľľɽ !ł! ľľľľU']] ]['[S<So&*&$<HlRb8b8W855*+  CC l v_ .. !!ABBbcc ƔƘG(H(!)!H!h!I!I%i!Jj)!%)%˩̭ͱ19 M.. M22.2.626/6/:NO::p6P:P>p:pQ>q:q>r6>>>QrBB“BFBBFFJFJJNJJNJNNRRZ3KSGKTGUO66OO7OVSU7[VSVWvSvWWSWWwSwWKϖOOӗӗ8W[8[8_9[9_XX[Xx[x_Y[Y_y[y_Z[Z_z[z_יSWۚך_߼_9yZ{ccggksxxohJJJffflqšxsffKKKKKKKKKjxnjNMLLL;INͩxnhKKKKKKKxæxxohJJJffflqšxsffKKKKKKKKKjxnjNMLLLnn IIIIKKhګsflppλλvpffggkkffvvssstxxnnntttKKIIIIIIIIIIIIKKKKKPWvssx +kn=gg+5IIIhhx۫tssvxǻvsskffffsxvsffkknnnnnjjggggghIIIIIIIIIIIIIKKKKho!-ν,vb%ll&KK 66 IIIxxڪxxνåvsppvxvrsllllnhggKKKKggIIKKKKKKKKKKKJJKhxxͩxť%)Tsl6FFKKKKKͩxxλťvvssllkkggJFFFJKKIIKKKNNKKKKJFJfflxxxxP zskFFFKKKJFԩxxxƻťŨvskfff^FFFFFFFFKKKKKKKKKKJJJflsxx޽Y pfffKKJJJͨxƻɥvvppffffkkkKKKKKKKKJJJffpxXvUvvv#4XXQ0vvggJffͨݾλvvvvvvvvvvvåƻvvvvvvhhhhhgggfffls3 p *kll@-!lhflsɥƽƵvuprkkkkkkkkkstxƻnnlllhffffsx!fKKK slsxťƏvrkfggggggKKKKijnƻxxslllflppx &H$ GGEWXRvsx¥vrkaFHHGGGGGGEEKKKΓxxxxxxx7k7GGG4xwskknggKKGGGGKKKjޕxvvvpxkFHGvvvpƜxxxttlgKHGGGKKjꖖvvsvvzAtnPPvvsvvvœxttnnjiintxx䖖vsrrvvP 0/4ϵvsrrvvĥxttssvwµ䟟»pffkrw,#ŧp4pffkrwŧwvpvv»~ppppppv䓓xxxprrvλbpxvprrvťλ~pbbbbppΒnnlkfppppvv8Y/tsupvvν~YYYV_ppv¥nnnggf`ppp4 svvl`ƵݽppbpprsvvƵiigg^F\_p !^krwv77XP ƏpppfkkrwvssssKKHFFF[_pW Rzε)^^rppp`^*4Q/εppf`^^^rĜppp`^^^FFKKKFFF_pε- ,S kksvrk  Ƶvskkksvrkg^FKKga^^p޸.`kwws^ - }trkwwskaFggggkfvεb 0wħvr*  01 4œħwħvr`gggkrvθƜvv˛ЧvffkkrrvθƜvv˛Чp^^krvθħœvrfkrw˧ppfrrvθħœvrfkrw˧kksƵħuragktw̩vuvƵħuragktw̩vvħrkaHgmn˩ħrkaHgmn˩ƵwwĝrkaHggmxģĝrkaHggmxģθrkgHKggtθxxxƏrkgHKggtθxxxλƏuuurkgHHHHnλvkrrƜƏuuurkgHHHHnλvkrrνœvrrrrݽ¥vpf^HHHHsλvkgggrvƜœvrrrrݽ¥vpf^HHHHsλvkgggrvθvrkkkkfݽƻ¥Ũpf^FFFFfsƵpffFFFffpvƏxxšvskkkffݽƻ¥Ũpf^FFFFfsƵpffFFFffpvλNNNNɥvrkkggffvνƻ¥xvpffFFFJfsvǻppffFFFgkrsvtnɥxskkggffvνƻ¥xvpffFFFJfsvǻppffFFFgkrsλMMMMKKjxåxsggggKffsνƻ¥xxslfJJFJfflvɥvfffJFFFKgklsnjjjKKjxťxskgggKffsνƻ¥xxslfJJFJfflvɥvfffJFFFKgklǻLLL<;;Ggs¥xslkJKKKKJJl»æxxoolhJJJJffffpvèxpffJFFFFKKglxťxljNIIEEKgs¥xxslgKKKKJJl»æxxoolhJJJJffffpvèxpffJFFFFKKglxǻLLIIEEJkvvslfJKKKKJFkv»xooohhKKKJJJJJJffpvxpffFFFJJgnxx˜vlKKKEEKlvvslfJKKKKJFkv»xooohhKKKJJJJJJffpvxpffFFFJJgnxxλIIEEGFfpvpfffJKKKJFflx¥xojKKKKKKKKKJJFFFfffpxxlfFFFFJglxΐsfFFFFfsvpffJJKKKJFflx¥xojKKKKKKKKKJJFFFfffpxxlfFFFFJglx޽jjjhllvvvxY T BooKKKKII7lxxxsfffFffl vs v=KKJ؀  %ooKKKKIINKKKKJJJFFfflxxxsfffFfflx޿xxxxǻsx*oojKKIIIIIxxsfffffsV2-JJJ/oojKKIIIIIIINKKKJJFJfhlxxsfffffsv迚εkx xx>KKKIIIIII7sffffpv8{γ^JJ%xxxxxxoojKKKIIIIIIIIINKKKJJJhhosffffpvƻf00txKKIIIIIIIsflpp.y yzλ7fg@BxnnnnnjjjKKKIIIIIIIIIIKKKKKKhoxګsflppf@U knng&IIIIIIIIIK&tssvx 2,PP!ssx*f%njjggggKKKKKIIIIIIIIIIIKKKKKhhx۫tssvxνvssplllKHKKKIIIIIIosxx |!#ywpv`hggKKKKKKKKKKKKIIIIIIIKKKKhoxxڪxxǻvsllFJKKKKKKKKKxxxW  SvggJFFJKKKKKKKKKKKKKKKKJJKhxxͩxxƻťskfFFKKNNKKKKJx ^FFFFFFFKKKKKKNNKKKKJFJfflxԩxxxΏfgKKKKKKKJJ{QT84ppfffggggKKKKKKKKKKJJJflsxͨxƻvvvvvvvvvvv)gKKKKJJJf4QpvvvXvvvssllhggKKKKJJJffpxͨݾλpkkkkkkkllltxxƻ$hhgggffflQ!,,,  kkkkƻxsslhhgggffflsɥƽƵppggggggKKKKijnslllffffsx OP/&KKKKœxslllffffsxťƏvrp`GGGGGGGGEEKKK)vsslflppx-yyv[CGGEEǥvsslflppx¥vrk^FnnigKKGGGGGKKjbxxxxxx { KGGGG¥xxxxxx¥vskxnlgHHGGGGKjR4¥vpRz)$gKHGG¡¥vvvpƜxttnniigntx¥vv2Q„_xttnnx2š¥vvsvvvœĥxtnssvwǥv#-wţǥvsrrvvŧwvpvv~pp¥wŧvpppţ»¥pffkrwť~pxxxxšWbbbŧxxxxšvprrvν~pp ħslkfpppĥvYYVħxtslkfpppĥvupvvƵݽ87kff`pppȥu #pp //xttlkff`pppȥuQ@vsf^F\_ppppR W|/vsslkkkgf^F\_pppp Ĝ^^FFF[_pbpp- -p ppp`^^FFHHKHFFF[_pbpp vrkFFF_pε~d2Ƶ vrkgaHHKKFFF_pε~dνX+wws^^^p޸}d8  @wskgHagg^^^p޸}dœħwħvr^gggkffvεœħwħvr^gggkffvεƜvv˛ЧvffkkrrvθƜvv˛Чvffkkrrvθģœvrfkrw˧ppfrrvθħœvrfkrw˧ppfrrvθģuragktw̩vuvƵħuragktw̩vuvƵęrkaHgmn˩ħrkaHgmn˩șrkaHggmxģĝrkaHggmxģțrkgHKggtθxxxƏrkgHKggtθxxxƏrkgHHHHnλvkrrƜƏuuurkgHHHHnλvkrrƜƏuuu¥vpf^HHHHsλvkgggrvƜœvrrrrݽ¥vpf^HHHHsλvkgggrvƜœvrrrrݽκpf^FFFFfsƵpffFFFffpvƏwtvrkkkkfݽƻ¥Ũpf^FFFFfsƵpffFFFffpvƏxxšvskkkffݽνxvpffFFFJfsvǻppffFFFgkrsvtnjnnnɥvrkkggffvνƻ¥xvpffFFFJfsvǻppffFFFgkrsvtnɥxskkggffvνƻxxslfJJFJfflvɥvfffJFFFKgklsnjKKKKjxåxsggggKffsνƻ¥xxslfJJFJfflvɥvfffJFFFKgklsnjjjKKjxťxskgggKffsνƻxxoolhJJJJffffpvèxpffJFFFFKKglxťxljKIIEEGgs¥xslkJKKKKJJl»æxxoolhJJJJffffpvèxpffJFFFFKKglxťxljNIIEEKgs¥xxslgKKKKJJl»xooohhKKKJJJJJJffpvxpffFFFJJgnxx˜vlKKKEDJkvvslfJKKKKJFkv»xooohhKKKJJJJJJffpvxpffFFFJJgnxx˜vlKKKEEKlvvslfJKKKKJFkv»xojKKKKKKKKKJJFFFfffpxxlfFFFFJglxΐskFFFFfpvpfffJKKKJFflx¥xojKKKKKKKKKJJFFFfffpxxlfFFFFJglxΐsfFFFFfsvpffJJKKKJFflx¥ooKKKKIINKKKKJJJFFfflxxxsfffFfflxǏxssslvvvpfffKKJFfksxťooKKKKIINKKKKJJJFFfflxxxsfffFfflxǏvssllvνvpfffJKKJJglsťojKKIIIIIIINKKKJJFJfhlxxsfffffsvǻǻvffffJJJfklsťoojKKIIIIIIINKKKJJFJfhlxxsfffffsvϻǻvpfffJJJJgkssťoojjKIIIIIIIIIINKKKJJJhhosffffpv޽εpfffJJJggkkxxxxxxxxxxxoojKKKIIIIIIIIINKKKJJJhhosffffpvϽγvfff^JJKggkkxxxxxxxxxxjjNKKIIIIIIIIIIKKKKKKhoxګsflppλvspffgffffvvssstxxnnnnnjjjKKKIIIIIIIIIIKKKKKKhoxګsflppλλvpffggkkffvvssstxxnnntttKKIIIIIIIIIIIIKKKKKhhx۫tssvxǻvsskffffsxvsffkknnnnnjjggggKKKKKIIIIIIIIIIIKKKKKhhx۫tssvxǻvsskffffsxvsffkknnnnnjjggggghIIIIIIIIIIIIIKKKKhoxxڪxxνåvsspvxvrsllllnhggKKKKKKKKKKKKIIIIIIIKKKKhoxxڪxxνåvsppvxvrsllllnhggKKKKggIIKKKKKKKKKKKJJKhxxͩxxλťvvssllkkggJFFJKKKKKKKKKKKKKKKKJJKhxxͩxxλťvvssllkkggJFFFJKKIIKKKNNKKKKJFJfflxԩxxxǻťŨvskfff^FFFFFFFKKKKKKNNKKKKJFJfflxԩxxxƻťŨvskfff^FFFFFFFFKKKKKKKKKKJJJflsxͨxƻvvppfffggggKKKKKKKKKKJJJflsxͨxƻɥvvppffffkkkKKKKKKKKJJJffpxͨݾλvvvvvvvvvvvƻvvvssllhggKKKKJJJffpxͨݾλvvvvvvvvvvvåƻvvvvvvhhhhhgggffflsɥƽƵvrpkkkkkkkllltxxƻxsslhhgggffflsɥƽƵvuprkkkkkkkkkstxƻnnlllhffffsxťƏvrkfggggggKKKKijnœxslllffffsxťƏvrkfggggggKKKKijnƻxxslllflppx¥vrkgHHHHGGGGGEEKKKǥvsslflppx¥vrkaFHHGGGGGGEEKKKΓxxxxxxx¥wsknniggKGGGGGKKj»¥xxxxxx¥wskknggKKGGGGKKKjޕx¥vvvpƜxxtlgHHGGGGKj¡¥vvvpƜxxxttlgKHGGGKKjꖖ¥vvsvvvœxttnniigntxš¥vvsvvvœxttnnjiintxx䖖ǥvsrrvvĥxtnssvw»ţǥvsrrvvĥxttssvwµ䟟»¥pffkrwŧwvpvv»~ppppppvţ»¥pffkrwŧwvpvv»~ppppppv䓓xxxšvprrvťλ~pbbbbppŧxxxxšvprrvťλ~pbbbbppΒnnlkfpppĥvupvvν~YYYV_ppvħxtslkfpppĥvupvvν~YYYV_ppv¥nnnggf`pppȥuƵݽppbpprsvvƵxttlkff`pppȥuƵݽppbpprsvvƵiigg^F\_ppppƏpppfkkrwvsslkkkgf^F\_ppppƏpppfkkrwvssssKKHFFF[_pbppεppf`^^^rĜppp`^^FFHHKHFFF[_pbppεppf`^^^rĜppp`^^^FFKKKFFF_pε~dƵvskkksvrkgaHHKKFFF_pε~dƵvskkksvrkg^FKKga^^p޸}dtrkwwskgHagg^^^p޸}dtrkwwskaFggggkfvεœħwħvr^gggkffvεœħwħvr`gggkrvθƜvv˛ЧvffkkrrvθƜvv˛Чp^^krvθħœvrfkrw˧ppfrrvθħœvrfkrw˧kksƵħuragktw̩vuvƵħuragktw̩vvħrkaHgmn˩ħrkaHgmn˩Ƶww" 8Ǝ" 8 #2.ĝrkaHggmxģθYp.ΊY3 )p U%H7A PO Y.%xUd ƏrkgHKggtθxxxλ@uuuSW d.[6H&/111O2#b7%.ƜƏuuurkgHHHHnλvkrrνwvrrrr¥p HHf -v gcƜœvrrrrݽ¥vpf^HHHHsλvkgggrvθvrkkkkfޮƻ3Ũ7AF$s#~P,Ƶ7AF$pvƏxxšvskkkffݽƻ¥Ũpf^FFFFfsƵpffFFFffpvλNNNNɥ7kkggffvνXƻ/xV)*Bsv~S X V)*Brsvtnɥxskkggffvνƻ¥xvpffFFFJfsvǻppffFFFgkrsλMMMMKKjxåB7gF'f\η3~ YƵ40xxsF flvvf B gksnjjjKKjxťxskgggKffsνƻ¥xxslfJJFJfflvɥvfffJFFFKgklǻLLL<;;Ggs¥xslB6JÅXxxool==J7ffpvTZ.bxpf7=F=KgťxljNIIEEKgs¥xxslgKKKKJJl»æxxoolhJJJJffffpvèxpffJFFFFKKglxǻLLIIEEJkvvslfJKKKKJFkv»xooohhKKKJJJJJJffpvxpffFFFJJgnxx˜vlKKKEEKlvvslfJKKKKJFkv»xooohhKKKJJJJJJffpvxpffFFFJJgnxxλIIEEGFfpvpfffJKKKJFflx¥xojKKKKKKKKKJJFFFfffpxxlfFFFFJglxΐsfFFFFfsvpffJJKKKJFflx¥xojKKKKKKKKKJJFFFfffpxxlfFFFFJglx޽jjjhllvvvpfffKKJFfksxťooKKKKIINKKKKJJJFFfflxxxsfffFfflxǏvssllvνvpfffJKKJJglsťooKKKKIINKKKKJJJFFfflxxxsfffFfflx޿xxxxǻvffffJJJfklsťoojKKIIIIIIINKKKJJFJfhlxxsfffffsvϻǻvpfffJJJJgkssťoojKKIIIIIIINKKKJJFJfhlxxsfffffsv迚εpfffJJJggkkxxxxxxxxxxxoojKKKIIIIIIIIINKKKJJJhhosffffpvϽγvfff^JJKggkkxxxxxxxxxxxoojKKKIIIIIIIIINKKKJJJhhosffffpvƻvspffgffffvvssstxxnnnnnjjjK9IIIIII IIIKKKKKKhoxګsflppλλvpffggkkffvvssstxxnnnnnjjjKKKI9IIIIII KKKKKKhoxګsflppAs VffFjgggg$(KKII?Bxx_VssBv)kggDKK'KKKKF@۟%`tsPν8 sp0vrslf+BKKKKKKKII6I9>h=fVxx8 V _pp/  BlfnhgKK>DKDDIII6KKhFV0 ژ xB\xvǻp4 pvslkk* FFJ6 9KKKKKKKKK=hxx@V x8#yPP΍Yv)8psslkAJFFJ(KK'KKKKKKJJKhx@pA.QϽ#ƻW8vfff[FFF (&KKKNNKKJFflx @x / /VvskFFFFF'K'NNKKKFJfflxxxQΏYяvvpffFDKKKKKJJJfxpx!SX"d ZvUfffggg'KKKKKJflsxx !ƻvvvvvvvvvv~ @ vv%%sl$gKKKJJff 8ʀZβ Vvvvvvvvvv} åэPƻvvvsllKKKJJfpxTVщOλpkkkkkkkllltxx4ɻPϻQ~ WpxBhhgA\flsV Zύ 4v8 YO# vup[^k^$kkx. DŽݷΏ.pxss gggfAf ύ Wք VVp~ZƵppggggggKKKKijn zllsx,  SƄ0rkfKń#Pxflfff !zʀp1Əvrp`GGGGGGGGEEKKKǥvsslflppx¥vrkaFHHGGGGGGEEKKKǥvsslflppx¥vrk^FnnigKKGGGGGKKj»¥xxxxxx¥wskknggKKGGGGKKKj¥xxxxxx¥vskxnlgHHGGGGKj¡¥vvvpƜxxxttlgKHGGGKKj¡¥vvvpƜxttnniigntxš¥vvsvvvœxttnnjiintxxš¥vvsvvvœĥxtnssvw»ţǥvsrrvvĥxttssvwµţǥvsrrvvŧwvpvv»~ppppppvţ»¥pffkrwŧwvpvv»~ppppppvţ»¥pffkrwťZUbp S,š-R#!яλ~pbbbbppŧxxxxšvprrv{| W~0@_pw4z ) xxkkfpp W.- z ĥvuv8  zΏ-ν~YYYV_ppvħxtslkfpppĥvupvvƵY4bpsp0 Ƶ8 0ttlfApp.# {-13ȥuS2y,| #~ƵݽppbpprsvvƵxttlkff`pppȥuƏpp0/s*kkgp,pppR{Əpppfkkrwvsslkkkgf^F\_ppppεpp^ AĜpp`&HKHF@p#{Q.bpp!,Qεppf`^^^rĜppp`^^FFHHKHFFF[_pbpp{~kAvvrHKKF_pƍ#X!z ε~dQz| QƵvskkksvrkgaHHKKFFF_pε~dν tr&ws agFBp. - ޸}dzPݶΈ | 1W trkwwskgHagg^^^p޸}dœ #wpggދOεPΊ!" ħwħvr^gggkffvεƜvv˛ЧvffkkrrvθƜvv˛Чvffkkrrvθģœvrfkrw˧ppfrrvθħœvrfkrw˧ppfrrvθģuragktw̩vuvƵħuragktw̩vuvƵęrkaHgmn˩ħrkaHgmn˩șrkaHggixĝƏĝrkaHggixĝƏțrkaHHHgtθxxεrkaHHHgtθxxεµrkaGGHHmκurrrθΏuµrkaGGHHmκurrrθΏuƵpaHGGGGmwݽp```pݽθuuppݾƵpaHGGGGmwݽp```pݽθuuppݾAA""B ddŘƘGg)-)Hi)*%*J%K--15鹫1ʵLm59959 : >K«N,BLl/BNoJƭίNү+S װн0JPqJ2F2JrNsRʐΰʰΑαΒβΓγαRڲҳZ4NtNuRvRΔҴҴ֕ҕֵҵִZҖֶֶַ֗^45673c5cU6677WwkV޸ڸ޹ڹ޻^f88999XYY;g;[ZZzz[[{{{s=g=\\\|]]}>>??^^~_=}s?^~~__乨jjϽÿùͽϽÿÿؽϽϿڿϽϽϽÿϽϲϿͶؽؽؿͶؿÿ϶ؿؽϲûܽÿϽϲÿͶÿؿضؿ϶ؿùϿܽϽ϶ؿؿ϶ϽͶͽܽؿؽܽͽͲɴɶϽƖؿϽ޽޽ɶɴȖϿϽ϶ϽɶɖؿϿϽスͽzzϽƕдʹ趶ͶzϽƕѶѶܔʹؿzzƖͶͶͽɴؿzzƖ϶϶ͶϽzzƖϽͲ޿ƕϽܽÿؿؿɶͽÿɴϿȖϿûɴȴɴɴȴɴдȴɴɴʹͽɶؽؾɶzzzزzzzz࿸ͶzzضzzzڿϽܶzz޾ϿͶ俱ؿʹؽϿɴ϶ؿϽϽɶؿ϶~heeW_naccccccccca_ؿ:::CCCCCMM>>>@GGCCCEWWW]____WWWECCxmlIIlneEEEEEIWllIIIGCCCMGGGGGGI]]]]]]WWWDDWWWW___]]CCMMOvuK7' $5^$ ؿ-M&C CxM77t7  B,M :  7wf7 2^$ϽP,:CP7 8f 8N1M:PN-5_ؿ&P-:CP-'&-y7=m:Pr-$_$ 6W"Wx-(7 M''CC7\Vò$a  $cɰ7>m--KC&;>m Ta0_ع$a% Uaaaaaa__Ͷm r&8m -GGGGGGGC'M>7z8 2_n T׿ a$ TaaϽ= 7<'C|-@@M=-7x-5_c_Z2$_ؿ1 $Ͻ a$  ڿ-,W0-vP-MM =x& 6cc_cca^T2_ؿ'_ؿ_$ 2ؽ' Dq"'N+8m,M ,Gɴ\ oWATͲ_$ 2ÿWΚ$ M<'>z,M=Mɶɶ&0˚1f-'W1$Ͷ _$ 2'W5 CQ-M,M-MͶ- "A1ft '1]ʹ,_$  5Ͻ-  'C'=m'MmϽ|G 1f:4ɴ,G,8 _$ Tcc___Ͻ81K>,G -G@@>>M,Ͻ~x1f'qɴ,Ov>7M-_$ Tؽf9er-M -m&>'Mܿ~7 1mmI,Mrv-"_$ 6__`__Ͻ*Wo(=m-GCCCC'My-zؿv 1m=1,M-"]$  ]Ͻf9e:'CzC'M-PÿϽzP 1m,x,M-W" We0Y{-MW'M> 7ϿͶzm 1G-GG>>>&G,M-W" Wh0Ynù(=mW'MM-yͶzy-1,;Pz1,M-I" W)[_ĿE,IW'Kf,mͽm- ;;,&@wM'mC ,lM'CIW% %^aû93lG__$ 'K7 &MϽzmNMMCCCGGGMMMxO@@@@@@@LMC>CCCCCMCCCCC]]]lMC:::CCCC888CCCCW]]______ߝaaط________ͶGGGGIIIIEEEWWWW_aaaa]WWEeGGGGGGCCMؿG@@@@@@@@@@>>>CCCCCGGGGGGGG@@@@@@@@@@GGGGGGGC>CCCCCCCCCCIIIW]]]IIIECCCC:::CCCCCCCCCCCCGIII]]_____aaaaaaaaa_aaaaaaaaaaaaaaaaaaaaaaaaaaaaa_______________]]]JJIIIIIIIIWWWWWWW__aaaccc__WWWIIIIIIIGGGG俽||    C޿||C޿G   C϶G@@@@@@@GGGGC>>CGGGCCCCGGGG@@@@@@@CCCCCCCCCCCEEEEEWWWW____cc____WWWWEEEEEEECCCCCCCCCCCCCCCWWWW____aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccccccc____WWWWWEEECCCIWWW]______aaaaaaaaaaaaaaa_```_]]]]IIIGCCϽؿؿͶÿϽؿؿͶϽϿϿܽͶͶÿܽܧͶϽÿܶͽؽz࿸ܽؿzzڿ޽>>>>>>>>CCCCKeloؿzzoeen__a࿹Ͷ 1mÿzzmE7 $T_aa俹ؿWWͶEϿƕzN. 2X2ؽϽo9'nͶBؿƕQ-_T VؿͶ~E'1oͶ fEECCCCC>PMCMyzfMMEelon__accϽfCCCCCCMMmyƕ70_ڷ_0 T֛neWIEMNu@GGGGGCCmMIlf7 1eɴ0W->M- mN8' 6_5 0VD'  ';y&  6n؛V_T$&>z>M-xf7e0pq' mM, V] 1H-wz$_aTWؿn3 22 y mM-'M5n -C&0ͮ0A>y 5W0We00^z-rM''M66'7e1,-M'$VWeD0nV1&'M  ,  ,F1'D7H4,>.=PC1e~{7' 0nV m&  'MA-;l' 1meAIo-mxM;G71{1EWWnnA06__]$G'Cr6`ICK0_  &,,=xx;,B411flA]_np";  7M- ZͶ2_$ 78' 7 &=-my-qɴl77-ffm9,;<<&7Ct1ZǛ2TTa$ :ifK:e @; mz7 q7Ml'&f7--fm-;y>zxMGM7T6zzz~~5aTT^a$ :7 GGG@@@-@-Ov-'MMr10M,=M8>N7;y>9 ]ozzzͽS$ WnxymM-P.-v;-t70l-4G1&>M>'7F;yGe$_ɴS$ $c0--,7.@.  7E70Wt& (Mu>&>m7yIܷ$aɴ$ S% %c6]C7N>>- =7yI_%cȴ% S% %c$_ؿA->yz.GM7yCV%cͶ% S% %c&=77HAH$_ؿo1;GPy.&G;7yC\2c϶a% Ra% %c]  ,=CMv>, 7Wlͮ]0 $^al1  ';GMxM 7GMM &7yCC$$VaϽaaaaaaaabbbbaaaaϽmMMCCMMmzymmMMIWlm֝ccɳoMMM>>>MMmyrMMGMPxPMCMPyMCCCCCCCyCCCCCCC8֜dھؿɶڹ~||ÿͶ޿ûɴ俲ûϽ޿ŻؽɴúϽzzĬϲѶܽͶzz໥ܶͶɶɴ͔zz໩ܽϽɴ||Ͷϔzz໩ͶϽܰùܿɴؾ޲ؿϽͶؾ乹ÿʹͽͶͶﹹٷûѶvƖɴɶM@Oÿ_YѶv<=vɴ=&ϽژV g}ɴzzP.&PvͶ,-Ͷؾn31fɖzzM-.mɰͶ>+MͶܿD'1KfMKEKeoɴy>&-MCCI]]]]]xMCMuMCCCCCCCrz>>>>>>CMooel__n֝___]WWIECCCvPMMCCMMNyzPw@=&GGGGG>>ymMMCMNϽؽo9 Kf8- ,lȖm; M ]l1 f8 rMM|M8- 2_^0 -yO=-  &>y'.=@;-'7- 'mϽϽn1'MK-1ɴO-'M :P-7MK$2 7yM&zy7M࿽Ͷe,,MM&ȖzM''M'(&Gx7!5 7y;zyeڿB ,M--r='e9-M7T 7y;-y(t޽7& +MMMr7& 0l,W1=m7 V 7y; Py 'e~~~޽r -GGGO--zx 1WWWl" 0ln-GN701HWW$WA6_ 7yP.,-?@<>6WE~~~޿--m+--&P-3" $Vn0;PeADWnp"AVVp" ;yO/<@OO;vV1EϽ7-mm&@P&M76$ #a_2$^]+@f7'7}e6 ;yP/+ ;mV6IeWWoÿϽ7--P+ @PM;66$ %c֚aܷ.Mt-7{|(;v-;m\TWD' 0Ͽʹ=@P.-&>8 _$ %dH>v77tf;;;m\TWe ѽͶM@M-MM$_$ %dϿ-L'7B7tff;,.<;m\ZW11Ͻ~~Ͷy@z&7Ps$_$ %c޿1@O,Gy>$_$ %aڽB'>z- 87y-MyuNM8' =-<;m^Z"]1&Mz.@@=Mz.$_$ $aؽ1.MM7y-7>C7=M7P^Z$_n-My. &>M&>My70_$ $_ܽ{ 8r77y-=;7P^Z$_H=NzM .>Mw- ,<>NM A_n_$ $_ܽ:-LM &7y-&@M &7m8 #^S $_ϼW '=MrML>MNrPMM@MMPzlMIlo_YYY____ܽ'8NmMCMmyMCCCCCCCy- -MPMGMPyMCCCCCCCxCCCCCCEEWWWW_cccccca___ϽeEEeÿͶM'>z7zͶÿɴɴx +Gyy-.Cmɴx7 -Mx=& ->MrɴvG@@@GGGGmymMMC>>MMmɴɴɶڊͰͶɴؿͶͶʹؿ϶ѽͶؿϽϽܽڿؿϲϽùͰؽؿûѶؽؿÿ϶޽ؿÿؿ俽ɔؿؿؿдÿûؿɓؿûϲͶ||ؿûعڿϹû~~~عøؿܿûÿèؿϽûϽèܿϽÿϽعϽͰؿؿϽڹϽͲϽϿϽؿ޽ͶͲɽϽͽϽϲͶͶ϶ͽͲϽɶɶͲ||ͶͽɶϿ϶ȴͶÿͶȴͶúͶȴͶkkúѶ ABABbĜ$ (Ġ(Ű48%)F-1GF=h5h=5='AGAGɇAM(AHhMiQjUAMM͉թYU݊ՊYY]Y]Y]Y]Y]Y]]aaimq K KK,NL,V,^Ll^n^^ޮ^ KkjKKk,f LLnnn ,, ---~LLllMMmmLLllMMmm.v../NNNnnOofnfnvv/s/Op~nv0w0011QPppQQqq23RRRrrSsTt|AjMp_EBE _Ep_EP\\=}Et|@Eh}APCtH =}Et |@E`8 |@EH8.=}Et܍=}Et}EuBE@Ptj=@|Etn=|Euc= @EuZ=}EuJx@EP=_Et BE9_Et jh }Aj^_EBE _E_EP[jo*|@EP*uJ|@EP=_Et BE9_Et jhQ}Aj_EBE _E_EP[=}Eh=}E[x@EЉӃtzt8#t+C8#t&C8#t!Cttt uCC)Ӄ~;ho}ADPNht}Ax@EP-h|ǍCPqơx@EPV7ho}AVx@Ehy}APE h|}AV۴E}uJx@EP=_Et BE9_Et jh}Aj赒_EBE _E_EPTZ}V=_Et BE9`Et jh}Ajf_EBE `E_EUt&EPSjW蓳9tEV=`Et BE9 `Et jh}Aj`EBE `E`EPYURhjW足ÃEPԳUR˳ƒuDV=0`Et BE9@`EtRh~Aj蕑0`EBE @`E0`EP4YV藲W葲=}Ej"1+uC)i@B)ơ0}EVQP=P`Et BE9``Et jh@~AjP`EBE ``EP`EPBE@ Pܱ0}EBESP=p`Et BE9`Et jhc~Aj蠐p`EBE `Ep`EPBE@ P肱x@Ej&LDEMULATIONarmelf-m%P%F: missing argument to -m -mips1-mips2-mips3-mips4-m486UWVShAűEuEA;]jhAU P= U xu\EH9}DEC=`Et BE9`Et jhAjt`EBE `E`EPWeƿ&AtRƿ-At?ƿ4At,ƿ;AtƿBAtEC;] Ee[^_]%s/ldscriptsU@WVS}tzt8"t+B8"t&B8"t!Bttt uBB) RWhASt1EPSuE%=@S`tjWUWe[^_]Ðt&/usr/cygnus/arm-000512/H-i686-cygwin32/thumb-elf/lib/../libvUVSh@Auij/0}EPutU+50}EFPV0}EPSFSu$uAyADSuS聮e[^]Ð%P%F: bfd_hash_table_init failed: %E %P%F: bfd_hash_lookup failed: %E U=~Eudj ~Ej=hlBPLuD=`Et BE9`Et jh Aj脌`EBE `E`EP#TjjEP~EPLuA=`Et BE9`Et jh`Aj&`EBE `E`EPS]ÐU=~Eudj=~Ej=hlBPKuD=`Et BE9aEt jh Aj贋`EBE aE`EPSSjjEP~EP-LuA=aEt BE9 aEt jh`AjVaEBE aEaEPR]Ð%X%P: error: duplicate retain-symbols-file r%X%P: %s: %E t&%P%F: bfd_hash_lookup for insertion failed: %E %P: `-retain-symbols-file' overrides `-s' and `-S' UWVSu=}EuD=0aEt BE9@aEt jh@Aj+0aEBE @aE0aEPQhlAVÃuj褸VhnAQj%}EhlBP9J uD=PaEt BE9`aEt jh Aj螉PaEBE `aEPaEP=QEdjd ECPSЅ}S"v0t&ED0t9t&CPSЅ}Sê t&EDu͉փ1D0uVUG;}reEPRuECPSЅ} SZ0ED0uuEjjP}EP IuD=paEt BE9aEt jhAjIpaEBE aEpaEPO=}EtA=aEt BE9aEt jhAjaEBE aEaEPO}Ee[^_]Archive member includedbecause of file (symbol)%-29s %s %s%s(%s)%B (%T) (%s) %I UWVSjL U ƉVFF$F4F@F0FF V=}EjjjMQ}EPǃu EGG Hw$AAAAAA&GGG@@hE=aE=aEt BE9aEt jhAjkaEBE aEaEP=aEt BE9aEt jhAj/aEBE aEaEPhǑA]SShґANaEM Q`u_PhґANU ‰Ãtzt83t-C83t(C83t#CtttuCC)M PPhՑA%NU B`‰tzt81t-A81t(A81t#AtttuAA)E ӉЃtzt88t-@88t(@88t#@tttu@@)Ѝ\~M1 t&MC~}tURhܑAYMt GPhA MQhA9M=}Eu =@}Et VhALt[^_]Ð%X%C: multiple definition of `%T' %D: first defined here UVS]uU C(tQBt =QBB(tQBt =QBE PE$PREP=bEt BE9bEt jh Aj艃bEBE bEbEP(KtGEPSV= bEt BE90bEt jhCAj; bEBE 0bE bEPJe[^]Ð/tantor/build/nintendo/arm-000512/i686-cygwin32/src/ld/ldmain.c%B: warning: definition of `%T' overriding common %B: warning: common is here %B: warning: common of `%T' overridden by definition %B: warning: defined here %B: warning: common of `%T' overridden by larger common &%B: warning: larger common is here %B: warning: common of `%T' overriding smaller common '%B: warning: smaller common is here %B: warning: multiple common of `%T' %B: warning: previous common is here UWVS] }MuU =|EcBv th]h`AAHSV=@bEt BE9PbEt jhAj @bEBE PbE@bEPG W=`bEt BE9pbEt jhӖAj`bEBE pbE`bEAv thgh`AG&SV=bEt BE9bEt jhAjbbEBE bEbEPG /W=bEt BE9bEt jh6AjbEBE bEbEWu thoh`AFE$9ESV=bEt BE9bEt jh`Aj~bEBE bEbEPCF qW=bEt BE9bEt jhAjW~bEBE bEbEvE9E$SV=cEt BE9cEt jhAj~cEBE cEcEPE W= cEt BE90cEt jh Aj} cEBE 0cE cEPXESV=@cEt BE9PcEt jh`Ajq}@cEBE PcE@cEPE tBW=`cEt BE9pcEt jhAj(}`cEBE pcE`cEPDe[^_]Ít&%P: warning: global constructor %s used vUS] =|EtHCP=cEt BE9cEt jh`Aj|cEBE cEcEP3D=|Et'EPEPjEPS{ u C EC]]%P%F: BFD backend error: BFD_RELOC_CTOR unsupported __CTOR_LIST____DTOR_LIST__ %P%F: bfd_link_hash_lookup failed: %E UWVS}u=|EtEW=cEt BE9cEt jh`Ajs{cEBE cEcEPC=|EBh|@EPu_=}EuhVuD=cEt BE9cEt jh AjzcEBE cEcEPBFMˊ@tEM} t UAUA cAcABABAB fA jjjSE@4PÃuD=cEt BE9cEt jhAjHzcEBE cEcEPA{ u C sEPEPWhSe[^_]using multiple gp values%C: %s %P: %s %B: %s %B%F: could not read symbols: %E U WVS]U=}Euu cAxtE PEPRSh|AA[uE PhA@D}uE PShA@*{|tGtCSЉƃ}ES=dEt BE9dEt jhAjxdEBE dEdEPf@VƋCVSЉE }ES= dEt BE90dEt jhAjcx dEBE 0dE dEP@t wEG E EEEEuEPhASy }uE PShA? uVe[^_]Ðt&%B%F: could not read relocs: %E vUWVSEE8LU REPϧÃ}HUR=@dEt BE9PdEt jhAj^w@dEBE PdE@dEP>S|UEB PEPU REP腧Ã}HUR=`dEt BE9pdEt jhAjv`dEBE pdE`dEP>uE 9s>uURxe[^_]Í&'%F%P: bfd_hash_table_init failed: %E %F%P: bfd_hash_lookup failed: %E %X%C: undefined reference to `%T' %D: more undefined references to `%T' follow %X%B: undefined reference to `%T' %B: more undefined references to `%T' follow UWVS] u}=}E=dEubjdEhlBP4 uD=dEt BE9dEt jh AjatdEBE dEdEP<jjSdEP4jjSdEP4uD=dEt BE9dEt jh`AjsdEBE dEdEP;dEtPS賔u dE.t&dEdEt P跔S;dEdEwDSEPWV=dEt BE9eEt jhAjAsdEBE eEdEKSEPWV=eEt BE9 eEt jhAjreEBE eEeEP:dEwESV=0eEt BE9@eEt jh Ajr0eEBE @eE0eEPA:HuCSV=PeEt BE9`eEt jh`AjXrPeEBE `eEPeEP9e[^_]%P%X: generated%X%C: relocation truncated to fit: %s %T+%v US]UuF=peEt BE9eEt jh,AjqpeEBE eEpeEP99E PEPRh2F$CF PC j ‰SFSFBVuDN|@EC9AhuCH-t&SA(BFS@$BCCPUB x4r~(|@E9GhthhA1G W|@EPÃF tCC!Cs9~(thhAm1FuFtF C F$CRMY|@E9ChthhA+1C t*S|@EPZMBA B ABABe[^_]%s%dU WVSEEUUvM E1ҋ89tuˊ2Bw< uD*WUMQhbAEP衉uVUR赡uMQAPEPjjjV}EP@ @XU eԋB C BCRC$ЈCM [(C4C8ACCC A$C$A,C,[^_]ÍvU@WVSUBHrDtUuEEE1ɉtHRUuE܃~t1&EEދCu6U FE̋B tu E̋@TEU zt'E̋@8Et&U ztwEM} }E9EE9 =$}E|EPuVEPCYtyt V )‰Q CF Euqqst&ډˋJ)Jzu BX(BH$uىMMEE7UUE?uE܋vut~e[^_]%F%P: final link failed: %E vUjƔhdAhY= }Eu =$}Eth}E|@EP|@EPh}EPHЃu[ftI|@EP=pfEt BE9fEt jhAjepfEBE fEpfEP/- j]AYAAAAAߵA ۵A ׵A ԵA ѵA εA˵AȵAŵAµAAA׵AAAA"A3A4A5A6~A'wA.oA/hA0]A1YATANAIACA>A28AENTRYBYTESHORTLONGSQUADQUADMAPSEARCH_DIRTARGETDEFINEDMEMORYLOADADDRADDRSIZEOFNEXTSIZEOF_HEADERSSECTIONSBLOCKALIGN<<>=<=!===&&|||=&=>>=<<=/=*=-=+=NAMErelocateableint%s%cUVS]}EA΃=At&19AuPhAR!<uShARe[^]ÍvUUB@$@ |EB]ÍvUMU |EEEUAAȉ]v'%F%P: %s uses undefined section %s %F%P: %s forward reference of section %s UWVS]u }uFVW=fEt BE9fEt jhAjafEBE fEfEP) { uCVW=fEt BE9fEt jhAjafEBE fEfEPF)e[^_]US]j :SX@]]ÍvUVS]u jSY@ Xp e[^]ÉUME UEEUQAȉ]US]ME EQ$EM+BEKC[]%F%S %% by zero %F%S / by zero t&/tantor/build/nintendo/arm-000512/i686-cygwin32/src/ld/ldexp.cU@WVS}uVEPURWM ]APS }VEPURWM ]A PSp EE̅ |Eu9tR9t 9UuIM 9+uAM +t-u29tI]MUEEẺ]ЉMԉU؉uE]MU9uu9uURSM |l-1&Q%*+t</>^=<== $o=T=YTt&=%=~=(=7=8 }uA=fEt BE9fEt jhAjK^fEBE fEfEP%E}U&}uA=fEt BE9gEt jhAj]fEBE gEfEP%E}ErEEgEE䍶E)EMt&Me=t&Mm-t&E9E>t&E9EDt&E9Et&E9E$t&E9EƒUE9EMt&E!Et&U1Ut&M Mt&1}}%v1}u }t&E9Es@E9Ev0EEEEE&h7hAQ$EEUEBEBEe[^_]UUEEEBBЉ]v'%X%S: unresolvable symbol `%s' referenced in expression &%F%S: undefined symbol `%s' referenced in expression UWVS} u3i$AUA`A`A`A`A`A`A`A`A`A`A`A`A`A`A`A`A`A`A`A`A`A`A`A`A`A`A`A`A`A`AоA`A`A`A`A`A`A`A`A`A`A`AA`A`A`A`A`A AAAt0|@E}EJPR4]PSut&u E`jjjGPh}E|@EP1҅t@ ЉUEEEG8.u$xuURUERPjjjPh}E|@EPÃC SQBuCUn&FB(uAGP=gEt BE9 gEt jh`Aj=YgEBE gEgEiPPPPCU@$CPRGP=0gEt BE9@gEt jhAjX0gEBE @gE0gEPq GPOhAGPSb+t&t|GPsOh~AGPS>{DuESjP-kV |ERSDERPTt&t,GP#OhAGPSC$U@ PR6 EPt&hhAEUEBEBEe[^_]%F%P: %s v%F%S can not PROVIDE assignment to location counter t&'%F%S invalid assignment to location counter %F%S assignment to location counter invalid outside of SECTION %F%S cannot move location counter backwards (from %V to %V) v%P%F:%s: hash creation failed UWVSu }u!EUEEBB$V $APAAAApApAAA3AwAFAWFUPR}t EWVB(M@F B$PQMQEPMQWFUPR/}f}\F PhA^It&MQEPURWF]PS}~!-t&=3=t&=Mt.t&}WEMT!RS}E@$@E |EE|SUnS}ƒUTS]F}SEMT!‰Uh<hA[ EPURMQWF]PS}EPMQEPW}tF FPRuURMQUERWVPt&F8.xuD=PgEt BE9`gEt jhAjSPgEBE `gEPgEPH}t}%;= |EMQEPjWF UPR}uD=pgEt BE9gEt jhAj(SpgEBE gEpgEF&uL=gEt BE9gEt jh AjRgEBE gEgEPjG$@E;EsS;= |EtKPUR=gEt BE9gEt jh`AjyRgEBE gEgEPMt&EPMQEPWF UPR}~%jjPFP}EP葿ƒuQ~FP=gEt BE9gEt jhAjQgEBE gEgEPeS~u B tu@EBEB @$B(t&URMEQWVPhhALEUEBEBEe[^_]US]M UEjjPRQS{؋]]U0EU MEUMEj |EUPEPR }u$jB‹EEBEBEB EP]ÉU0WVSU] EMUE]MEEjjuVP/ }ujB EPe[^_]U0EU EUEj |EUPEPR }u!j A‹EEBEB vEPO]ÍvU0EU EUEUjjEPRn }uj VA‹EEBEB EP]ÉU UM EUEMEj A‹EEBEBEB Љ]ÍvUVSu] j@=@X pe[^]ÉUVS]u j@!@ Xp e[^]0x%v%B:%s+0x%vPROVIDE (%s, )(?:ASSERT (, %s)????????(%s)US]C $AAA0AAfAAAA"AeA5ACPhAC@htPhAC PCPhACPhA}EPnPC CPhA}EPnC P/hAhA}EPnCP P0C PhAt&CPhA}EPWnC PhA}EP>nCPP{hA}EP nCP~hA0hA}EPmCP^C PhAC&hA}EPmN=u CPhAPLCt*PhA}EPm&hhAa]]É'%F%S nonconstant expression for %s USME ]tgUR |EERQP }uFtBS=gEt BE9hEt jhAjKgEBE hEgEPxE]]ÉUS]M UEPRQSc]]Ð%F%S non constant expression for %s vUMEP |EUPQR }tE@$@EIt&EP=hEt BE9 hEt jhAjJhEBE hEhEPE]U0~EEPBЉ]ÉU0~EEPBЉ]ÉU0~E@ Љ]ÍvU0~EЉ]U0~E@Љ]ÍvU0~E@Љ]ÍvU0~E@ tЉ]ÍvU0~E@Љ]ÍvU0~E@0tЉ]ÍvU0~E@@tЉ]ÍvU0~E@4tЉ]ÍvU0~EEPB$Љ]ÉU0~Ez8u 1t&EPE PEPB8Љ]ÍvU0~Ez<u 1t&E PEPB<Љ]ÍvU0~EzDu1 E PEPBDЉ]U0~EzHu 1t&EPBHЉ]ÍvU0~EzPu1 EPBPЉ]U0~E@Љ]GNUTARGETUhAju0~E@,]ÍvU]ÐU]ÐU]ÐU]ÐU|@EP~EJP`~EPR,Љ]%S SYSLIB ignored U=0hEt BE9@hEt jhAj-H0hEBE @hE0hEP]%S HLL ignored U=PhEt BE9`hEt jhLAjGPhEBE `hEPhEPT]Ð%P: unrecognised emulation mode: %s Supported emulations: %F UVS]@E;gu3{lu-{du'"@(PS!hu 0~E>uS=phEt BE9hEt jhAjFphEBE hEphEP=hEt BE9hEt jhAjFhEBE hEhEPDBE@ PhA,e[^] %sUWVS}@E=@Et6t1t&hAW5g@(PhAW!g ;uʍe[^_]%s: no emulation specific options. UWVS}1@E=@Et0v{LtC(PhTAWfWCLи>uӅuB=hEt BE9hEt jh`AjcEhEBE hEhEPWMfe[^_]2.9-arm-000512GNU ld version %s (with BFD %s) Supported emulations: %s vUSh A@EP=hEt BE9hEt jh@AjDhEBE hEhEPBE@Pe}ti@E=hEt BE9iEt jhaAjIDhEBE iEhEPe;t@(PhzAe;u]]US]|@Et P8BuC;.u @8.tjSJuS]]%%%c%08lx0x%sno symbol%s%s(%s)(%s) (%s)--defsym %s%s:%ubuilt in linker script:%u%s+0x%v (type %s)%B%F: could not read symbols %B:%s:%T%B: In function `%T': %s(%s+0x%v)%B(%s+0x%v):%u%B:%s:%u%B(%s+0x%v):%s%d%uvUWVSE }Dž8" IGHOȅ},;G|M 8 u Wj WU Pc M E U <%tuM 9% E U BU QU$@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA`A`A!AA`AA8AAAAAAAAA0AARAAA`AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM APhA(GPWЅ}1;G|%8 tWj t&Wj%a%t&|EEMAPhAEU]BPhAS:a }0uڍ&B:0tӀ;uKWSbnvEM APhAS` 0uB:0t 8uH ƃtzt8&t+F8&t&F8&t!Fttt uFF+ ECPSЅ}#;C| 8 uSj Sj ` F~ߋ QhApEUBt8uK=iEt BE9 iEt jhAj>iEBE iEiEPW_PShAW_S_EMQz`tPB`PhAPhADž0}EPhAlPlPW-_EEXC@`tPhAW_ C PhAW^C x`OCPC P^7CPhA =D@Et8@EPhAt&@~Et4@EPRhAW^4@EP=0iEt BE9@iEt jhAjJ=0iEBE @iE0iEPt&EMQB @ PBP@PhAWkEEXPEHC|t@tCSЉƃ}ES=`iEt BE9piEt jhAj~<`iEBE piE`iEPVƋCVSЉ }ES=iEt BE9iEt jhAj<iEBE iEiEPtrJ DžSPPPPVQSЃWU B=@Et59u1PR[uP@EP[PS=iEt BE9iEt jh@~E4@E@Ee[^]ÍvUWVS]Sj脲lj@E7G>tE Dt B:u@E8=@Ee[^_]Ð%P%F: cannot represent machine `%s' vUS]SjƒtB `~EBP~EB@EBS=kEt BE9kEt jhAj[-kEBE kEkEP]]US] UujS2ƒu1'EPSR…tB BlEЋ]] %X%P: bfd_hash_table_init of cref table failed: %E %X%P: cref_hash_lookup failed: %E UWVSu }=lEudh@AhlEuD=0kEt BE9@kEt jhAj,0kEBE @kE0kEPlEjjEPhlEuÃuD=PkEt BE9`kEt jhAj+PkEBE `kEPkEP;St 9ruuj 譯‹CSrbQBuJf }JJe[^_] /tantor/build/nintendo/arm-000512/i686-cygwin32/src/ld/ldcref.cUVS]u { thh@ACPC e[^]ÉUE U@ P@ PnK] Cross Reference Table SymbolFile No symbols UWVS}=pkEt BE9kEt jhAj*pkEBE kEpkEPWJ=kEt BE9kEt jhAj)kEBE kEkESWJ؉ރtzt8&t+F8&t&F8&t!Fttt uFF)ރ1JCPSЅ}*;C| 8 uSj t&Sj J v F1~߃=kEt BE9kEt jhAj(kEBE kEkEPWI=lEuG=kEt BE9kEt jh Aj(kEBE kEkEPWIlEP转É]EPhAhlEE);lEthh@A/hAjlEPSIlE49sPW_9re[^_]Ð%P: symbol `%T' missing from main hash table %s %B UWVS]jjjU BP}EPuU BPhA#Ex u?@x(@ht+@8@t%E x?fG@8@uUU B PhASHE P щЃtzt8(t-@8(t(@8(t#@tttu@@)ЋU pztdGtX1?CPSЅ}#;C| 8 uSj Sj G F1~GPhAS%1 ?uE xteGuY1@CPSЅ}#;C| 8 uSj Sj sG F1~GPhAS1 ?uthQh@At&e[^_]ÉU=lEtjhAhlE/]ÍvUWVSEEjjj@P}EPǃuJUBP=kEt BE9lEt jhAj@%kEBE lEkEP^G wSG@(tIE5@|Et:t&^t(EPCPEuVWUR u؋6u˸e[^_]Ð%B%F: could not read symbols; %E %B%F: could not read symbols: %E U0WVSEXXt&C‹x|tGt CPPЉƃ}HCP=lEt BE9 lEt jhAj#lEBE lElEPWVާƋCPVCPЉE܃ }HCP=0lEt BE9@lEt jhAjK#0lEBE @lE0lEPSt wM܉O M EEAMEMu;Phu EEEPhARG^ u VCe[^_]Ív%B%F: could not read relocs: %E %X%C: prohibited cross reference from %s to `%T' in %s U WVSU B(}EG@(EPEP CGXCPURBu@EE PURRÃ}HEP=PlEt BE9`lEt jhAj!PlEBE `lEPlEP<FS軥EG PURE PURQÃ}HEP=plEt BE9lEt jhAj&!plEBE lEplEPu]9>t&8UR@PAttlG9Bu`EP@PURCPE PUR=lEt BE9lEt jhAji lEBE lElEP;us >PEPWAe[^_]no-pipeline-knowledgev' -p --no-pipeline-knowledge Stop the linker knowing about the pipeline length vU=lEt BE9lEt jh`Aj}lEBE lElEPEPd@]-pUWVS\BE=dBE9$AEt dBE5dBE$AEEPhAEhAE PEP肵=dBEpttj%\BE1AEe[^_]armUhA]ÐErrors encountered processing file %sUSP@EtjAEPh}ECPV uHCP=mEt BE9mEt jhAjmEBE mEmEP[$uh}E]]ÍvUSP@Et{$uh}ECP[$u]]ÐOUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .hash 0 : { *(.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0 : { *(.gnu.version_d) } .gnu.version_r 0 : { *(.gnu.version_r) } .rel.text 0 : { *(.rel.text) } .rela.text 0 : { *(.rela.text) } .rel.data 0 : { *(.rel.data) } .rela.data 0 : { *(.rela.data) } .rel.rodata 0 : { *(.rel.rodata) } .rela.rodata 0 : { *(.rela.rodata) } .rel.got 0 : { *(.rel.got) } .rela.got 0 : { *(.rela.got) } .rel.ctors 0 : { *(.rel.ctors) } .rela.ctors 0 : { *(.rela.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rela.dtors 0 : { *(.rela.dtors) } .rel.init 0 : { *(.rel.init) } .rela.init 0 : { *(.rela.init) } .rel.fini 0 : { *(.rel.fini) } .rela.fini 0 : { *(.rela.fini) } .rel.bss 0 : { *(.rel.bss) } .rela.bss 0 : { *(.rela.bss) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(.init)) } =0 .plt 0 : { *(.plt) } .text 0 : { *(.text) *(.stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0 .fini 0 : { KEEP (*(.fini)) } =0 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .got 0 : { *(.got.plt) *(.got) } .dynamic 0 : { *(.dynamic) } /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so we can shorten the on-disk segment size. */ .sdata 0 : { *(.sdata) *(.sdata.*) } .sbss 0 : { *(.sbss) *(.scommon) } .bss 0 : { *(.dynbss) *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. */ } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* These must appear regardless of . */ } OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .hash 0 : { *(.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0 : { *(.gnu.version_d) } .gnu.version_r 0 : { *(.gnu.version_r) } .rel.text 0 : { *(.rel.text) } .rela.text 0 : { *(.rela.text) } .rel.data 0 : { *(.rel.data) } .rela.data 0 : { *(.rela.data) } .rel.rodata 0 : { *(.rel.rodata) } .rela.rodata 0 : { *(.rela.rodata) } .rel.got 0 : { *(.rel.got) } .rela.got 0 : { *(.rela.got) } .rel.ctors 0 : { *(.rel.ctors) } .rela.ctors 0 : { *(.rela.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rela.dtors 0 : { *(.rela.dtors) } .rel.init 0 : { *(.rel.init) } .rela.init 0 : { *(.rela.init) } .rel.fini 0 : { *(.rel.fini) } .rela.fini 0 : { *(.rela.fini) } .rel.bss 0 : { *(.rel.bss) } .rela.bss 0 : { *(.rela.bss) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(.init)) } =0 .plt 0 : { *(.plt) } .text 0 : { *(.text) *(.stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0 .fini 0 : { KEEP (*(.fini)) } =0 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ .data 0 : { *(.data) } .data1 0 : { *(.data1) } .got 0 : { *(.got.plt) *(.got) } .dynamic 0 : { *(.dynamic) } /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so we can shorten the on-disk segment size. */ .sdata 0 : { *(.sdata) *(.sdata.*) } .sbss 0 : { *(.sbss) *(.scommon) } .bss 0 : { *(.dynbss) *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. */ } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* These must appear regardless of . */ } OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR(/usr/cygnus/arm-000512/H-i686-cygwin32/thumb-elf/lib); /* Do we need any of these for elf? __DYNAMIC = 0; */ SECTIONS { /* Read-only sections, merged into text segment: */ . = 0x8000; .interp : { *(.interp) } .hash : { *(.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.text : { *(.rel.text) *(.rel.text.*) *(.rel.gnu.linkonce.t*) } .rela.text : { *(.rela.text) *(.rela.text.*) *(.rela.gnu.linkonce.t*) } .rel.data : { *(.rel.data) *(.rel.data.*) *(.rel.gnu.linkonce.d*) } .rela.data : { *(.rela.data) *(.rela.data.*) *(.rela.gnu.linkonce.d*) } .rel.rodata : { *(.rel.rodata) *(.rel.rodata.*) *(.rel.gnu.linkonce.r*) } .rela.rodata : { *(.rela.rodata) *(.rela.rodata.*) *(.rela.gnu.linkonce.r*) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.bss : { *(.rel.bss) } .rela.bss : { *(.rela.bss) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .text : { *(.text) *(.text.*) *(.stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.gnu.linkonce.t*) *(.glue_7t) *(.glue_7) } =0 _etext = .; PROVIDE (etext = .); .fini : { KEEP (*(.fini)) } =0 .rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) } .rodata1 : { *(.rodata1) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = .; .data : { *(.data) *(.data.*) *(.gnu.linkonce.d*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } .ctors : { /* We don't want to include the .ctor section from from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*crtend(.ctors)) } .dtors : { KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*crtend.o(.dtors)) } .got : { *(.got.plt) *(.got) } .dynamic : { *(.dynamic) } /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so we can shorten the on-disk segment size. */ .sdata : { *(.sdata) *(.sdata.*) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .sbss : { *(.sbss) *(.scommon) } .bss : { *(.dynbss) *(.bss) *(.bss.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. */ . = ALIGN(32 / 8); } . = ALIGN(32 / 8); _end = . ; _bss_end__ = . ; __bss_end__ = . ; PROVIDE (end = .); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } .stack 0x80000 : { _stack = .; *(.stack) } /* These must appear regardless of . */ } OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR(/usr/cygnus/arm-000512/H-i686-cygwin32/thumb-elf/lib); /* Do we need any of these for elf? __DYNAMIC = 0; */ SECTIONS { /* Read-only sections, merged into text segment: */ . = 0x8000; .interp : { *(.interp) } .hash : { *(.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.text : { *(.rel.text) *(.rel.text.*) *(.rel.gnu.linkonce.t*) } .rela.text : { *(.rela.text) *(.rela.text.*) *(.rela.gnu.linkonce.t*) } .rel.data : { *(.rel.data) *(.rel.data.*) *(.rel.gnu.linkonce.d*) } .rela.data : { *(.rela.data) *(.rela.data.*) *(.rela.gnu.linkonce.d*) } .rel.rodata : { *(.rel.rodata) *(.rel.rodata.*) *(.rel.gnu.linkonce.r*) } .rela.rodata : { *(.rela.rodata) *(.rela.rodata.*) *(.rela.gnu.linkonce.r*) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.bss : { *(.rel.bss) } .rela.bss : { *(.rela.bss) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .text : { *(.text) *(.text.*) *(.stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.gnu.linkonce.t*) *(.glue_7t) *(.glue_7) } =0 _etext = .; PROVIDE (etext = .); .fini : { KEEP (*(.fini)) } =0 .rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) } .rodata1 : { *(.rodata1) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN(256) + (. & (256 - 1)); .data : { *(.data) *(.data.*) *(.gnu.linkonce.d*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } .ctors : { /* We don't want to include the .ctor section from from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*crtend(.ctors)) } .dtors : { KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*crtend.o(.dtors)) } .got : { *(.got.plt) *(.got) } .dynamic : { *(.dynamic) } /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so we can shorten the on-disk segment size. */ .sdata : { *(.sdata) *(.sdata.*) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .sbss : { *(.sbss) *(.scommon) } .bss : { *(.dynbss) *(.bss) *(.bss.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. */ . = ALIGN(32 / 8); } . = ALIGN(32 / 8); _end = . ; _bss_end__ = . ; __bss_end__ = . ; PROVIDE (end = .); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } .stack 0x80000 : { _stack = .; *(.stack) } /* These must appear regardless of . */ } UE=}Eu=|EuA B=}Eu B@0B]elf32-littlearmarmelfGBGBGBGBGBGBGB`GBAGB/GBGBFBFBFBFB^FBOFBBFB,FB#File too bigFile truncatedBad valueSymbol needs debug section which does not existNonrepresentable section on outputSection has no contentsFile format is ambiguousFile format not recognizedMalformed archiveNo more archived files&Archive has no index; run ranlib to add oneNo symbolsMemory exhaustedInvalid operationFile in wrong formatInvalid bfd targetSystem call errorNo errorvUAE]UEAE]bfdUEuXP$vEBjPhHB]%s %s: %s US]uSW&t;u'bP|PhbHBBE@ P&;PUPShfHBBE@ P]]%s: BFD: U`mEt PhHBBE@ PL &hHBBE@ P-E PEPBE@ P,hHBBE@ P]ÐUEAEAEЉ]ÐUE`mE]ÐUAE]UMy0uAU RQ  jO]ÉUMy0uQEPEPE PQ$j]UE UMP4H8]ÉUUM z0t j*t&B4ttJ8R#B9u j1]bfd assertion fail %s:%dvUUE PR=@mEt BE9PmEt#jh`JBhHB@mEBE PmE@mEPAEЉ]ÍvUUE BL]ÍvU@S]{$tC(A;~EuS SEPR{PBuEC(1]]ÍvU@E@9t@7;~EuP PEPRPuE1]ÍvUUz0u$B@u Bx@u Bx1]ÉUUM z0u'B@uBxHu Bx]ÉUUz0u#B@uBx@u Bx1]ÍvUUM z0u#B@u BxHu Bx]ÉUMU EPRQX]USM]yu A@hu؋@8EPEPEPQE PSҋ]]UWVS}Gu(xPWeÃu1E CECEC UC$ЊU$ЊU $ЊU$$ЈCstPE,PCPGxPCMCSCjC ?NB2NB NB(CNB(Cthumb-*-elfarmv*-*-linux-gnuarm-*-linux*arm-*-elfvUVSuMB=MBtPVuI;uMBt(jVPga u{u ؃xtËC jM1e[^]ÉUS]AEtPSkuSStAE &1]]GNUTARGETdefaultUWVSE] thOBƒtп#OBuAECuMBCCCRt Ct&1e[^_]UVS1ɺMBփ=MBt @:uPcÅu1 =MBt:u؍e[^]PBPB|PBQBvPBQBpPBRB*IND**ABS**UND**COM*PBt&PBPBPBPB(PB|PBQB(PB QB@PBvPBQB@PBQBXPBpPBRBXPB RBUVSEu XDtVPu [u1e[^]ÉUVSu] SVuSVe[^]ÍvUWVSu~DFD~@t jt&P@uj|V_ÃE FHCFFHC CHCLCC0C8CDshVЉClt>U P@X@ ClCpFSVЃuS1e[^_]ÐUWVSEu XDvPBu QBu PBu PBnvu |PBu QBNvu pPBu$RB.v1'E PPt[u} WEPYe[^_]ÍvUU EB ]ÍvUWVSu1^DtEPSVE Ћ[ Gu;~Hte[^_]UEM Ux@uQQ t&j1]ÍvUWVSuM ]}A uj u1e[^_]ÐUWVS1ҹpVBσ=pVBt#t&Yt&@,Buك9uP踈ƅu1:=pVBt%YtBR,uȉك9ue[^_]ÉUE@XU x uBXRXz tRP@$Љ]Ð WBWBXBXBunknownUUE BX]UVS]u MpVB=pVBt;t-9p u9Ht ux t CX!@,uك:uCXWBj1e[^]UE@X]@ UE@X]@UE@X]@UE@X]@USM UA 9B t1ZA9w9w[]ÍvUWVSU} BPWNu My oUBPW-Wj:MAPƃUB‰Ãtzt83t-C83t(C83t#CtttuCC)SPW u.<;:u MAPD; UBP;Pt4MA)SPW uUB@P;PQ~EXACt t8t9:uA9uUB Wt&E1DtTBADu wKpw } tA& thw t> tF tX t`thvYt&It&9t&)t&t& M;A uE;Pu t&1e[^_]UE]@XÍvUS]M pVB=pVBt/t!9X u9Htux u@,u:u1[]UNKNOWN!UUE PRu[B@]wBwBwBwBwBzwBmwBawBNwB;wB(wBwBwBvBvBvBvBvBvBnvBXvB@vB-vBvBuBuBuBuBuBuB~uBfuBSuBtB(tBtB tBsBsBsBsBsBsBsBpsBZsBDsB/sBsBsBrBrBrBrBrBwrB`rBMrB:rB$rBrBqBqBqBqBqBqBmqB[qBIqB7qB!qB qBpBpBpBpBpBpBnpBRpB;pB#pBpBoBoBoBoBoBoBkoB\oBKoB>24)&255) MOV \rgstr,\rgstr,LSL #8 @ ADD \rgstr,\rgstr,#((\vlu>>24)&255),LSL #24 @ADD \rgstr,\rgstr,#((\vlu>>16)&255),LSL #16 @ ADD \rgstr,\rgstr,#((\vlu>>8)&255),LSL #8 .endm .equ LCDC,0x04000000 .equ DISPCNT,0x04000000 .equ STAT,0x04000004 .equ DISPSTAT,0x04000004 .equ VCOUNT,0x04000006 .equ BG0CNT,0x04000008 .equ BG1CNT,0x0400000A .equ BG2CNT,0x0400000C .equ BG3CNT,0x0400000E .equ KEYPAD,0x04000130 .equ BG0SCX,0x04000010 .equ BG0SCY,0x04000012 .equ BG1SCX,0x04000014 .equ BG1SCY,0x04000016 .equ BG2SCX,0x04000018 .equ BG2SCY,0x0400001A .equ BG3SCX,0x0400001C .equ BG3SCY,0x0400001E .equ SGFIFOA,0x040000A0 @ direct sound A fifo adress, 32bit .equ SG4FIFOB,0x040000A4 @ direct sound B fifo adress, 32bit .equ SGCNT0_L,0x04000080 @ sound control register, 16 bit .equ SGCNT0_H,0x04000082 @ sound control register, 16 bit .equ SGCNT1,0x04000084 @ sound control register, 16 bit .equ SG_BIAS,0x04000088 @ sound control register, 16 bit .equ TM0D,0x04000100 @ Timer 0 counter refresh, 16 bit .equ TM1D,0x04000104 @ Timer 1 counter refresh, 16 bit .equ TM2D,0x04000108 @ Timer 2 counter refresh, 16 bit .equ TM3D,0x0400010C @ Timer 3 counter refresh, 16 bit .equ TM0CNT,0x04000102 @ Timer 0 control, 16 bit .equ TM1CNT,0x04000106 @ Timer 1 control, 16 bit .equ TM2CNT,0x0400010A @ Timer 2 control, 16 bit .equ TM3CNT,0x0400010E @ Timer 3 control, 16 bit .equ DM0SAD,0x040000B0 @ DMA 0 Start adr, 27 (of32) bit .equ DM0DAD,0x040000B4 @ DMA 0 Dest adr, 27 (of32) bit .equ DM0CNT_L,0x040000B8 @ DMA 0 count 14 (of16) bit .equ DM0CNT_H,0x040000BA @ DMA 0 control 16 bit .equ DM1SAD,0x040000BC @ DMA 1 Start adr, 27 (of32) bit .equ DM1DAD,0x040000C0 @ DMA 1 Dest adr, 27 (of32) bit .equ DM1CNT_L,0x040000C4 @ DMA 1 count 14 (of16) bit .equ DM1CNT_H,0x040000C6 @ DMA 1 control 16 bit .equ DM2SAD,0x040000C8 @ DMA 2 Start adr, 27 (of32) bit .equ DM2DAD,0x040000CC @ DMA 2 Dest adr, 27 (of32) bit .equ DM2CNT_L,0x040000D0 @ DMA 2 count 14 (of16) bit .equ DM2CNT_H,0x040000D2 @ DMA 2 control 16 bit .equ DM3SAD,0x040000D4 @ DMA 3 Start adr, 28 (of32) bit .equ DM3DAD,0x040000D8 @ DMA 3 Dest adr, 28 (of32) bit .equ DM3CNT_L,0x040000DC @ DMA 3 count 16 bit .equ DM3CNT_H,0x040000DE @ DMA 3 control 16 bit .equ IE,0x04000200 @ Int req enable .equ IF,0x04000202 @ Int req flags .equ IME,0x04000208 @ Int enable .equ BGPALBASE,0x05000000 .equ SPPALBASE,0x05000200 .equ OAMBASE,0x07000000 @ &03007FFF will be top of fast ram @ &03007Fxx used by system .equ STACKTOP,0x03007EFC @ &03007E00 use as stack bottom @ &03007800>7DFF use as system variables @ &03007700 use as general variables .equ BG0SCXvar,0x03007800 @ VALUES FOR SCROLL REGISTERS AT NEXT VBL .equ BG1SCXvar,0x03007804 .equ BG2SCXvar,0x03007808 .equ BG3SCXvar,0x0300780C .equ BG0SCYvar,0x03007810 .equ BG1SCYvar,0x03007814 .equ BG2SCYvar,0x03007818 .equ BG3SCYvar,0x0300781C .equ BG0_CAMERA_OFFSET_X,0x03007820 @ VALUES FOR CAMERA INDEPENDENT SCROLL OFFSETS .equ BG1_CAMERA_OFFSET_X,0x03007824 .equ BG2_CAMERA_OFFSET_X,0x03007828 .equ BG3_CAMERA_OFFSET_X,0x0300782C .equ BG0_CAMERA_OFFSET_Y,0x03007830 .equ BG1_CAMERA_OFFSET_Y,0x03007834 .equ BG2_CAMERA_OFFSET_Y,0x03007838 .equ BG3_CAMERA_OFFSET_Y,0x0300783C .equ BG0_CAMERA_FACTOR_X,0x03007840 @ VALUES TO BE MULTIPLIED BY CAMERA VALUES .equ BG1_CAMERA_FACTOR_X,0x03007844 @ THEN ADDED TO SCROLL OFFSETS, TO GIVE .equ BG2_CAMERA_FACTOR_X,0x03007848 @ SCROLL VALUES FOR NEXT VBL .equ BG3_CAMERA_FACTOR_X,0x0300784C .equ BG0_CAMERA_FACTOR_Y,0x03007850 .equ BG1_CAMERA_FACTOR_Y,0x03007854 .equ BG2_CAMERA_FACTOR_Y,0x03007858 .equ BG3_CAMERA_FACTOR_Y,0x0300785C .equ CAMERAX,0x03007860 .equ CAMERAY,0x03007864 .equ COLLISIONTYPE,0x03007868 .equ COLLISIONDATAADR,0x0300786C .equ BG0_XPOSITION,0x03007870 .equ BG1_XPOSITION,0x03007874 .equ BG2_XPOSITION,0x03007878 .equ BG3_XPOSITION,0x0300787C .equ BG0_YPOSITION,0x03007880 .equ BG1_YPOSITION,0x03007884 .equ BG2_YPOSITION,0x03007888 .equ BG3_YPOSITION,0x0300788C .equ CAMERAXmax,0x03007890 .equ CAMERAYmax,0x03007894 .equ BGCOLLISIONresolution_x,0x03007898 .equ BGCOLLISIONresolution_y,0x0300789C .equ SGFIFOAdebug,0x030078A0 .equ DEBUG1,0x030078A4 .equ DEBUG2,0x030078A8 .equ DEBUG3,0x030078AC .equ DEBUG4,0x030078B0 .equ MAINSPRITE_left_collisionflags1,0x030078B4 .equ MAINSPRITE_right_collisionflags1,0x030078B8 .equ OAMWCO,0x030078BC .equ VRAMBASECHAR,0x030078C0 @ sound channel ram as follows .equ SOUNDCHANADR,0x03000000 @ first 128 bytes of fastram reserved for this (32 channel) @ 4 byte address being read from next, or 0 if free @ up to 2Kb of fast ram is reserved for code @ then next 2Kb of fastram used for buffer @ then in slower ram .equ SOUNDCHANNELDATA,0x02000000 @ 128 bytes for general variables relating to sound @ then for each of 32 channels @ 0/1 is number of buffer updates (1kB @ 32KHz) remaining @ @ 16 bit value will allow for 64MB samples, so is ENOUGH @ 2 is left mixer volume @ 3 is right mixer volume @ 4/5 is repeat count, 0 if not to repeat, -1 if infinate @ 6/7 are sample number (so it knows what to repeat) @ 8>15 reserved @ MAIN SPRITE OBJECT RAM @ "PERMENANT RAM" .equ MAINSPRITEx,0x03007900 .equ MAINSPRITEy,0x03007904 .equ MAINSPRITExvelocity,0x03007908 .equ MAINSPRITEyvelocity,0x0300790C .equ MAINSPRITEframeset,0x03007910 .equ MAINSPRITEdirection,0x03007912 .equ MAINSPRITEframe,0x03007914 @ "WHEN ACTIVE RAM" .equ MAINSPRITEobtypebaseadr,0x03007940 .equ MAINSPRITEobtypeinfoadr,0x03007944 .equ MAINSPRITElastframeset,0x03007948 .equ MAINSPRITElastdirection,0x0300794A .equ MAINSPRITElastframe,0x0300794C .equ MAINSPRITEframeadvanceco,0x0300794E .equ MAINSPRITEscreenx,0x03007950 @ $180 seems to be centre of screen .equ MAINSPRITEscreeny,0x03007952 @ $140 seems to be centre of screen .equ MAINSPRITEframesetadr,0x03007954 .equ MAINSPRITEdirectionadr,0x03007958 .equ MAINSPRITEframeadr,0x0300795C .equ MAINSPRITEgravity,0x03007960 .equ MAINSPRITE_floor_collisionflags1,0x03007964 .equ TVAR,0x03007700 .equ TVAR1,0x03007704 .equ TVAR2,0x03007708 .equ TVAR3,0x0300770C .equ TVAR4,0x03007710 .equ TVAR5,0x03007714 .equ TVAR6,0x03007718 .equ TVAR7,0x0300771C .equ GAMELOOPRTNADR,0x03007720 @ AREA adrlabel, CODE,READONLY @ CODE32 @ ENTRY @ Mark first instruction Start: B execstartshere SLOWLOAD r0,80 initvars_objectram: LDR r1,[r0] @ object base address LDR r2,[r1] @type @******************************* @ASSUME THAT THIS WILL BE TYPE 0 @EVENTUALLY HAVE BRANCH TABLE @******************************* ADD r3,r1,#8 LDR r2,[r3] ADD r2,r2,r1 ADD r0,r0,#4 STR r2,[r0] @ object type info address MOV r2,#0 SUB r2,r2,#1 ADD r0,r0,#4 STR r2,[r0] @ Last Frameset , then last direction , 2x16bit ADD r0,r0,#4 STRH r2,[r0] @ Last Frame Drawn ADD r0,r0,#2 MOV r2,#1 STRH r2,[r0] @ Frame Advance Countdown MOV PC,r14 objectpatn1: @ simple bounce STMFD r13!,{r14} @ STORE RETURN ADDRESS @ expects r10 = start of perm ram @ expects r11 = start of activ ram ADD r9,r10,#4 LDR r6,[r9] @ y posn ADD r8,r10,#12 LDR r1,[r8] @ y velocity CMP r1,#0 BLE objectpatn1updatey @ going up, so no need to worry about colisions ADD r0,r11,#4 LDR r0,[r0] @ ob type info LDR r7,[r10] @ x posn STMFD r13!,{r10,r11} BL gethitsatbottom0 LDMFD r13!,{r10,r11} TST r12,#2 BNE objectpatn1bounce objectpatn1updatey: ADD r9,r10,#4 LDR r6,[r9] @ y posn ADD r8,r10,#12 LDR r1,[r8] @ y velocity ADD r6,r6,r1 STR r6,[r9] ADD r1,r1,#32 @ gravity effect STR r1,[r8] LDMFD r13!,{r15} @ RETURN FROM STACK objectpatn1bounce: ADD r8,r10,#12 MOV r0,#128 MOV r1,#0 SUB r1,r1,r0,LSL #3 STR r1,[r8] LDMFD r13!,{r15} @ RETURN FROM STACK drawframedma: @ dma 3 control register @bit 15 enable @bit 14 set to 1 if irq at end @bit 12/13 start timing (=0) is immediate @bit 11 sram related, set to 0 @bit 10 word length 0 is 16bit 1 is 32bit @bit 9 dma repeat =9 is off @bit 7/8 set to 0 for incremental source @bit 5/6 set to 0 for incremental destination @ Want just bit 15 set @****** NOTE IF EVER USED TO DMA COMPRESSED FRAMES FROM FASTRAM @****** INITIALISE AS 32BIT NOT 16BIT LDR r5,=DM3SAD STR r7,[r5] LDR r5,=DM3DAD STR r2,[r5] MOV r5,#0 ADD r4,r5,r4,LSR #1 @ so in 16 bit words now. LDR r5,=DM3CNT_L STRH r4,[r5] LDR r4,=0x8000 LDR r5,=DM3CNT_H STRH r4,[r5] @ FRAME SHOULD NOW BE DRAWN MOV PC,r14 gethitsatleft_mainsprite: LDR r0,=MAINSPRITEobtypeinfoadr LDR r0,[r0] LDR r7,=MAINSPRITEx LDR r7,[r7] LDR r6,=MAINSPRITEy LDR r6,[r6] gethitsatleft0: LDR r1,[r0] @************************************ @MSBYTE OF r1 will be collision type @for now,assuming type 1 (bounding box) @************************************ LDR r12,=0x08000 LDR r1,=0x0FFFF0000 ADD r0,r0,#8 LDRH r2,[r0] @ x min relative to centre (left) @in case -ve TST r12,r2 ORRNE r2,r2,r1 @ ADD r0,r0,#4 LDRH r3,[r0] @ y min relative to centre @in case -ve TST r12,r3 ORRNE r3,r3,r1 @ ADD r0,r0,#2 LDRH r4,[r0] @ y max relative to centre (ie along bottom) @in case -ve TST r12,r4 ORRNE r4,r4,r1 @ ADD r9,r7,r2,LSL #8 @ xmax to check LDR r8,=256 SUB r8,r9,r8 @ x min ADD r10,r6,r3,LSL #8 @ ymin to check ADD r11,r6,r4,LSL #8 @ ymax to check B checkcollisionboxtobackground checkcollisionboxtobackground: STMFD r13!,{r14} @ STORE RETURN ADDRESS @******************************************* @ WILL NEED EXPANDING TO COVER z AS WELL, CAN USE RAM VARS @ FOR THE z LOOP @******************************************* @ r8 is xmin,r9 is xmax,r10 is ymin,r11 is ymax @ use r6 as x counter, r7 as y counter MOV r6,r8 MOV r7,r10 LDR r5,=BGCOLLISIONresolution_x LDR r5,[r5] MOV r12,#0 @ collision flags checkcollisionboxtobackground_loop: MOV r1,r7 MOV r2,r6 BL returncollisioncode ORR r12,r12,r0 CMP r6,r9 BEQ checkcollisionboxtobackground_loop_nexty ADDLT r6,r6,r5 CMP r6,r9 MOVGT r6,r9 @ r6 is now last x to check, either is less than or eq to last B checkcollisionboxtobackground_loop checkcollisionboxtobackground_loop_nexty: MOV r6,r8 @ RESET X CMP r7,r11 BEQ checkcollisionboxtobackground_done LDR r0,=BGCOLLISIONresolution_y LDR r0,[r0] ADDLT r7,r7,r0 CMP r7,r11 MOVGT r7,r11 @ r7 is now last y to check, either is less that or eq to last B checkcollisionboxtobackground_loop checkcollisionboxtobackground_done: LDMFD r13!,{r15} @ RETURN FROM STACK soundframeupdate: LDR r12,=SOUNDCHANNELDATA LDR r11,=SOUNDCHANADR @ r12,r11 should now stay fixed at this for entire routine LDRH r0,[r12] @ if bits 0 and 1 are the same, then refresh other buffer TST r0,#1 BEQ soundframeupdate_playfrom0now soundframeupdate_playfrom1now: TST r0,#2 MOVEQ PC,r14 @ buffer 0 allready updated and not yet playing from LDR r10,=2048 @ buffer to update offset from r12 soundframeupdate0: EOR r0,r0,#2 @ flag buffer about to be updated as updated STRH r0,[r12] @************************************* @FOR NOW JUST DO BUFFER UPDATE @DIRECT FROM ROM POINTER TO BY FIRST CHANNEL ADRESS POINTER @************************************* ADD r10,r10,r12 @ now have buffer address LDR r9,[r11] @ r9 is address of data to copy in LDR r8,=1024 ADD r0,r8,r9 @ end adr STR r0,[r11] soundframeupdate1: LDR r0,[r9] STR r0,[r10] ADD r9,r9,#4 ADD r10,r10,#4 SUB r8,r8,#4 CMP r8,#0 BNE soundframeupdate1 ADD r10,r12,#128 @ r10 now points to end countdown for channel 1 LDR r0,[r10] SUB r0,r0,#1 STR r0,[r10] CMP r0,#0 MOVNE PC,r14 LDR r0,=0x023C STR r0,[r10] LDR r0,=0x0800016C @ pointer to test sound data LDR r0,[r0] STR r0,[r11] MOV PC,r14 soundframeupdate_playfrom0now: TST r0,#2 MOVNE PC,r14 @ buffer 1 allready updated and not yet playing from LDR r10,=3072 @ buffer to update offset from r12 B soundframeupdate0 initsound: LDR r12,=SOUNDCHANNELDATA LDR r11,=SOUNDCHANADR LDR r0,=0x0800016C @ pointer to test sound data LDR r0,[r0] STR r0,[r11] MOV r0,#0 STR r0,[r12] ADD r10,r12,#128 @ r10 now points to end countdown for channel 1 LDR r0,=0x023C STR r0,[r10] LDR r0,=128 LDR r1,=SGCNT1 STRH r0,[r1] @ turn on sound LDR r0,=0 @x77 LDR r1,=SGCNT0_L STRH r0,[r1] LDR r0,=0 LDR r1,=SGCNT0_H STRH r0,[r1] LDR r0,=0x0800 @ reset fifo for a STRH r0,[r1] MOV r0,#0 LDR r1,=SGFIFOA STR r0,[r1] @for dma initialisation @bits5/6 is destination info ,=2 (fixed) @bits7/8 is source info =0 (incremental) @bit 9 is dma repeat flag (1=enabled) =1 @bit10 is 16/32 bit (1=32bit) =1 @bits12/13 are timing (0immed,1hbl,2vbl,3snd) =3 @bit14 is irq request on completion =0 (FOR NOW!!,is good way to check length) @bit15 is enable =1 @ %1011 0110 0100 0000 @ &B640 LDR r0,=SGFIFOA @debug LDR r1,=DM1DAD STR r0,[r1] LDR r0,=SOUNDCHANADR LDR r1,=2048 ADD r0,r0,r1 LDR r1,=DM1SAD STR r0,[r1] LDR r0,=0x0B640 LDR r1,=DM1CNT_H STRH r0,[r1] LDR r0,=0x030E @ enable direct sound channel a from timer 0 LDR r1,=SGCNT0_H STRH r0,[r1] LDR r0,=0xFD16 @-12 @-364 @ timer reset value for 44khz playback LDR r1,=TM0D STRH r0,[r1] LDR r0,=128 @ enable timer at 16mhz LDR r1,=TM0CNT STRH r0,[r1] LDR r1,=SG_BIAS LDRH r2,[r1] LDR r0,=0x03FFF AND r2,r2,r0 @ so as to clear pwm bits @ LDR r0,=0x0C000 @ ORR r2,r2,r0 @pwm STRH r2,[r1] LDR r1,=IME MOV r0,#0 STRH r0,[r1] LDR r1,=IE STRH r0,[r1] LDR r0,=0x0FFFF @ write of 1 to IF bits clears them!!!!! LDR r1,=IF STRH r0,[r1] LDR r1,=0x03007FFC ADD r0,r15,#0 B soundoverflowinterrupt_end soundoverflowinterrupt: @ stopping the dma will put an extra 4 bytes onto the fifo @ probably not not noticable, but should try @ to work around this. (SET SOURCE ADR FIRST WONT WORK,will have no effect) @for dma stop @bits7/8 is source info =0 (incremental) @bit 9 is dma repeat flag (1=enabled) =0 @bit10 is 16/32 bit (1=32bit) =1 @bits12/13 are timing (0immed,1hbl,2vbl,3snd) =0 @bit14 is irq request on completion =0 @bit15 is enable =1 then 0 @ %1000 0100 0100 0000 @ &8440 then 0440 LDRH r0,=SOUNDCHANNELDATA LDRH r2,[r0] EOR r2,r2,#1 @ change buffer being played STRH r2,[r0] LDR r1,=TM1CNT @ reset timer 1 for next time LDR r0,=0xC4 STRH r0,[r1] LDR r1,=TM1D LDR r0,=-1024 STRH r0,[r1] LDR r1,=IF @ clear if MOV r0,#16 @ write of 1 to if bits clears them!!! STRH r0,[r1] TST r2,#1 BXNE LR @exit interrupt, just moved into 2nd part of buffer LDR r0,=0x084400004 LDR r1,=DM1CNT_L STR r0,[r1] LDR r1,=DEBUG1 @ increment debug counter LDR r0,[r1] ADD r0,r0,#1 STR r0,[r1] LDR r0,=0x00440 LDR r1,=DM1CNT_H STRH r0,[r1] @ reposition dma read address to start of buffer LDR r0,=SOUNDCHANADR @ pointer to test sound data LDR r0,[r0] LDR r1,=2048 ADD r0,r0,r1 LDR r1,=DM1SAD STR r0,[r1] LDR r0,=0x0B640 LDR r1,=DM1CNT_H STRH r0,[r1] BX LR soundoverflowinterrupt_end: STR r0,[r1] LDR r1,=TM1CNT LDR r0,=0xC4 STRH r0,[r1] LDR r1,=TM1D LDR r0,=-1024 STRH r0,[r1] LDR r1,=IME MOV r0,#1 STRH r0,[r1] MOV r0,#16 @ just timer 1 int LDR r1,=IE STRH r0,[r1] MOV PC,r14 gethitsatright_mainsprite: LDR r0,=MAINSPRITEobtypeinfoadr LDR r0,[r0] LDR r7,=MAINSPRITEx LDR r7,[r7] LDR r6,=MAINSPRITEy LDR r6,[r6] gethitsatright0: LDR r1,[r0] @************************************ @MSBYTE OF r1 will be collision type @for now,assuming type 1 (bounding box) @************************************ LDR r12,=0x08000 LDR r1,=0x0FFFF0000 ADD r0,r0,#10 LDRH r2,[r0] @ x max relative to centre (rgt) @in case -ve TST r12,r2 ORRNE r2,r2,r1 @ ADD r0,r0,#2 LDRH r3,[r0] @ y min relative to centre @in case -ve TST r12,r3 ORRNE r3,r3,r1 @ ADD r0,r0,#2 LDRH r4,[r0] @ y max relative to centre (ie along bottom) @in case -ve TST r12,r4 ORRNE r4,r4,r1 @ ADD r8,r7,r2,LSL #8 @ xmin to check MOV r9,#256 ADD r9,r9,r8 @ x max ADD r10,r6,r3,LSL #8 @ ymin to check ADD r11,r6,r4,LSL #8 @ ymax to check B checkcollisionboxtobackground gethitsatbottom_mainsprite: LDR r0,=MAINSPRITEobtypeinfoadr LDR r0,[r0] LDR r6,=MAINSPRITEy LDR r6,[r6] LDR r7,=MAINSPRITEx LDR r7,[r7] gethitsatbottom0: LDR r1,[r0] @************************************ @MSBYTE OF r1 will be collision type @for now,assuming type 1 (bounding box) @************************************ LDR r12,=0x08000 LDR r1,=0x0FFFF0000 ADD r0,r0,#8 LDRH r2,[r0] @ x min relative to centre @in case -ve TST r12,r2 ORRNE r2,r2,r1 @ ADD r0,r0,#2 LDRH r3,[r0] @ x max relative to centre @in case -ve TST r12,r3 ORRNE r3,r3,r1 @ ADD r0,r0,#4 LDRH r4,[r0] @ y max relative to centre (ie along bottom) @in case -ve TST r12,r4 ORRNE r4,r4,r1 @ ADD r8,r7,r2,LSL #8 @ xmin to check ADD r9,r7,r3,LSL #8 @ xmax to check ADD r10,r6,r4,LSL #8 @ ymin to check LDR r11,=256 @ so checks pixel below as well ADD r11,r11,r10 @ ymax to check B checkcollisionboxtobackground returncollisioncode: @********************************************************** @ will need branch table, depending on type of bg collision @ must preserve r5>r12 @ for now, just type 0. @********************************************************** returncollisioncode_coltype0: @r1 will be y co-ord, @r2 will be x co-ord, @ need y co-ord bits 11 to 16 into bits 6 to 11 @ need x co-ord bits 11 to 16 into bits 0 to 5 LDR r0,=0x01F800 AND r1,r1,r0 AND r2,r2,r0 MOV r0,#0 ADD r0,r0,r1,LSR #5 ADD r0,r0,r2,LSR #11 LDR r1,=COLLISIONDATAADR LDR r1,[r1] ADD r0,r0,r1 LDRB r4,[r0] @r4 is collisioncode @************************************************* @THIS NEEDS A TABLE,TO SET FLAGS DEPENDING ON TYPE @FOR NOW HARD CODE @************************************************* MOV r0,#0 CMP r4,#0 MOVEQ PC,r14 MOV r0,#1 @ set flag to indicate solid floor CMP r4,#1 MOVEQ PC,r14 MOV r0,#3 @ set flag to indicate solid floor and solid wall MOV PC,r14 playercontrol_type0: STMFD r13!,{r14} @ PUSH RETURN ADDRESS BL playercontrol_type0_updatey LDR r2,=0xFFFFFFFF LDR r1,=KEYPAD LDR r0,[r1] EOR r11,r0,r2 AND r1,r11,#1 CMP r1,#1 BLEQ playercontrol_type0jmp AND r1,r11,#32 CMP r1,#32 BEQ playercontrol_type0lf AND r1,r11,#16 CMP r1,#16 BEQ playercontrol_type0rt LDR r1,=MAINSPRITEframeset MOV r0,#0 STRH r0,[r1] LDMFD r13!,{r15} @ RETURN FROM STACK playercontrol_type0_updatey: STMFD r13!,{r14} @ PUSH RETURN ADDRESS LDR r1,=MAINSPRITEyvelocity LDR r0,[r1] LDR r2,=MAINSPRITEgravity LDR r2,[r2] ADD r0,r0,r2 STR r0,[r1] LDR r1,=TVAR @ amount to increment MAINSPRITEy this frame STR r0,[r1] CMP r0,#0 BLT playercontrol_type0_updatey_up LDR r1,=MAINSPRITEy LDR r1,[r1] playercontrol_type0_updatey_loop: LDR r2,=MAINSPRITEx LDR r2,[r2] BL gethitsatbottom_mainsprite LDR r4,=MAINSPRITE_floor_collisionflags1 STR r12,[r4] @ first set of collision flags TST r12,#1 BNE playercontrol_type0_solidfloor LDR r0,=MAINSPRITEy LDR r1,[r0] LDR r2,=TVAR LDR r3,[r2] MOV r4,r3 CMP r3,#0 BEQ playercontrol_type0_updatey_done MOV r5,#256 CMP r3,r5 MOVGT r3,r5 SUB r4,r4,r3 STR r4,[r2] @ amount to add to y vel still remaining this frame @ now need to add r3 to y co-ord which is in r1 ADD r1,r1,r3 STR r1,[r0] B playercontrol_type0_updatey_loop playercontrol_type0lf: BL gethitsatleft_mainsprite LDR r4,=MAINSPRITE_left_collisionflags1 STR r12,[r4] @ first set of collision flags TST r12,#2 BNE playercontrol_type0_solid_x LDR r1,=MAINSPRITEx LDR r0,[r1] LDR r2,=256 SUB r0,r0,r2 STR r0,[r1] LDR r1,=MAINSPRITEdirection MOV r0,#1 STRH r0,[r1] LDR r1,=MAINSPRITEframeset MOV r0,#2 STRH r0,[r1] playercontrol_type0_solid_x: LDMFD r13!,{r15} @ RETURN FROM STACK playercontrol_type0rt: BL gethitsatright_mainsprite LDR r4,=MAINSPRITE_right_collisionflags1 STR r12,[r4] @ first set of collision flags TST r12,#2 BNE playercontrol_type0_solid_x LDR r1,=MAINSPRITEx LDR r0,[r1] LDR r2,=256 ADD r0,r0,r2 STR r0,[r1] LDR r1,=MAINSPRITEdirection MOV r0,#0 STRH r0,[r1] LDR r1,=MAINSPRITEframeset MOV r0,#2 STRH r0,[r1] LDMFD r13!,{r15} @ RETURN FROM STACK playercontrol_type0jmp: LDR r1,=MAINSPRITE_floor_collisionflags1 LDR r0,[r1] AND r0,r0,#1 CMP r0,#1 MOVNE PC,r14 @ floor not solid LDR r1,=MAINSPRITEyvelocity LDR r0,=-1024 STR r0,[r1] MOV PC,r14 playercontrol_type0_updatey_up: LDR r1,=MAINSPRITEy LDR r2,[r1] ADD r2,r2,r0 STR r2,[r1] MOV r1,r2 LDR r2,=MAINSPRITEx LDR r2,[r2] BL gethitsatbottom_mainsprite LDR r4,=MAINSPRITE_floor_collisionflags1 STR r12,[r4] @ first set of collision flags B playercontrol_type0_updatey_done playercontrol_type0_solidfloor: LDR r1,=MAINSPRITEyvelocity MOV r0,#0 STR r0,[r1] LDR r1,=MAINSPRITEframeset MOV r0,#0 STRH r0,[r1] playercontrol_type0_updatey_done: LDMFD r13!,{r15} @ RETURN FROM STACK initvars: STM~$Qi!= $!R FJJ'1X3οߔK VrMsʚaX'v#aV8@Ro0`ր%cN84>Dxˈ:e|c<%8 r!F-ZERO ADVANAFZJ01 1SV  P 0    B   @-` Qp - ` ``  A_p_ P@_@I_@po`ɠ  00@@I@-` p8_P V ` V `` W p W pĠ   HX@PlĠD倠$        "  "  |/| |x  /  ||pxl`ɠl  00@@7 l`|pɠ  00@@ ~  @TT@-+  QN  Q)  Q7 @-+ PB* pKD T+0@SC \S0@D@$K x,@oJ4,P|X  ) iXJ@0@-8 4 0 , ( $                T 0  ,  x T@< (  @$ @@ ! AQ0? 0AQ( @\PPg$H``ppU% PEⰠ  ̠ ఠ `Ⱐ ȟ ̠ ఠ `Ⱐǟ ˠ ?ˠ ఠ `갧 '#ן 00}||ztpp;``<8!      4l`6TJDK6 hf,A#䥟KJ<88 0@#D@ BR        @-o% 0 @PD0 0^ 0AQT$ 0 @P@-8$$4#0#5$#4#4#4#4 #4#4 A$h# @:0DS0S004hT# @90DS0S00  Q Q< 좟౟T3AQP0 P* P( P  A Ⰰ A ⰐH20U   0@@T@D PUPP   Dyyyxxl@?@xlx0y y`ywdyxyx x$x(x,x0x4x8xHR\fpzzpf\RH>?IS]gq{{qg]SI?@JT^hr||rh^TJ@AKU_is}}si_UKAAKU_is} } s i _ U K A @JT^hr| | r h ^ T J @ ?IS]gq{ { q g ] S I ? >HR\fpz z p f \ R H > =GQ[eoy y o e [ Q G = <FPZdnx x n d Z P F < ;EOYcmw w m c Y O E ; :DNXblv v l b X N D : 9CMWaku  u k a W M C 9 8BLV`jt~ ~ t j ` V L B 8                                                                                                                                                                                                                                                                                                                                                                                                c F F#-b99!D-!f-99ʀ  )HJ , -/.O -NNnOo!)H!i) !J1)-1119L)N!!))!)191EyA NLeR&Fң%eFz"{B${df+H҉L҈ *(h{j{,MPP Qq qRSr spq t   ցׅ ׍ P!))91 T:;<>~>_;RRʐ’”SPP%%%%%A%%%II%JJJ%AAAAAA#AA%%PPPAMհAܰJJJJAAհMJMJMMJJJMMPJAAAPJJA%MMPMM#MAAPAAAMհ%Mհ%%%#M%%JM#%JMMA#AM#####AAAMAMJJ%JIIII%%%%JJJ%JJJJJJJ%%MMMPMP#PܰII#PJJJJJ#P###PJJJJPPPP###JMPJJJJ#PJJMA#PA%%A%#AA%AA%%#A%A%%MM#A#######A%%%%AAA%M%JJJJM#PJ%MAA%#AAMAAA%#M######%AAAAAAAM%MMܰMJ%MMPIJM%MPJJMPMPPPPPP%%ܰܰJJܰJJAAܰAAA%%JAA%%%%AJJA%AJJMMMMMMM##MMAAMAܰհܰJMMJJMMJ%%#MJJ%%#AJJ%%%#AJJJJJ#AM#####MAPP%%MMMAհ#Pհ#PMMM###PAPP%%%PM%հMMM####MPPPMMMMܰP%%%%%%%%#PܰAJ#PJJJJ#PJհJM#PMM###J####A###AAAAMAAAMMMJJJJJM######AAAAAAAPAMܰ#JJJ#MM##M##MMMMM%P%JJJJJJJJAAAA#####M#M####ܰܰIIIIIJIܰJIJ%%%%> >>>> F>>>> rF>FF r >> >r = F> =>F>>FFFF >>FF >FF>> >F>>> >>>> >>>>r>>>>rF>> Fr >>FF>>>F >> > > FrrF rFF FF >rrr Fr r rr F rrrrrFFrrrFrrF=FF FrFrF> >FrrFr >Frrrrr>F rrrrrFFrrFrrFFF F rF F> FFF FF>FF F F ==> r= >>F Fr => =FF>  > > =  > >F> >FF>F> FFrrF F rrrFFF>FFrrr>>FF FFrF>F r F>FF Frr rr Frr>>=r FrFF>rF rrrr>r rrrrrF Frr F rrr rF rrFrFrFF rrFrrFF >r>rrrF >rrFF >rr> >>> > >FF>>> F>>rF >F>>r FF>>> rr >>>rrrrF>>rrrr >> rrr =F r ==rr == FF=> FFF=F>>r rrF> rrFr r rF F rF > FrF F> == F> === > =>>>>>>>>>PP%%%%%A%%%II%JJJ%AAAAAA#AA%%PPPAMհAܰJJJJAAհMJMJMMJJJMMPJAAAPJJA%MMPMM#MAAPAAAMհ%Mհ%%%DDDrD?D?rD?D??D?DDD???rD???????rD??DD?DD??rr?rrD???rDD??DDrDDDr?r?Drr??r?Dr?D?Dr??DrDDrr??DrDrDD??D?DD?DrDrD?? DrDrD DDrD?DDrDDrDrD?DDrrDDDD?rDrDDDrrDDrrrDDDrrrr?rrrDDrrDrDrDrrD?Dr??DD??r?D?????D??rD?D?D?D???????D??? D? ?? ???? D???? ????????DrDD????DrDDD?D?rDrrDD??rrrDDDD?rrrD??DDrrDDDDDrrrrD??DD?DDDDD?DD?D??DD?rD?DDDDDD?D??D? ???D??? ?? r? ?r?rrD rr???r???D??r?D???rD??DD?D?D?D?D? ? ?D? ?D??? r?D?? DD?? D??? ???    ? ?? ? ??? D??? ??? DD?? ???? DD??? D??? D?? ?D? ? D??? ??    ?? ? ?? D?? ?? ?? D??   ???DD? ?????D ???DD?? ???D??D ???D?D ??D?D? ???Dr? ??    ? ??? ??? ??D? ???? ???D ????? ??D?? ????D ???D? ???? ??  ?  ??? D??? ???D? ???D?D ???DDD?r??????D????DDD?rD??D????DD??????????????? ? ?? ? ??r ? ???D?????D?D????DDDrr?D?D?DrD?DDDr?DDDDDD?r??DD?D?D?DDD?r???D??DDr?DDDDD?D??D?D?D????? ???? ?   ???rD?D?D ?DDDDD??DDD??D?Dr?D??DDDD???D?DDDDrDrD?DrDrD?DDD????r?????r????Dr??r?r?????D???Dr?D?DrDD??rrr?rDrDDr?D?r?rD?r?Drr?D??DDrrDr?DDD???Drr?D??r???r rr??Dr?D?DrrD?DrrrDrDrrDrrrrrrDDrrrrrrrDDrDDrrrrrDrDrrrD* CC*** C*C** C*C**YC *C* YCC YC YY CYY *CCCY Y CCCYYY YC YYN CYCY* NC* CCCC CY* CY* CNYC * C**YC* C ** * **Y C*Y YY* **C* *CC*K*CYYC*YY+CYYYK CC+CCY *+Y *NC*K *CC *K CCCY*C* YYY Y@Zkhhmnge_gGm_eeeelxygeeeeelSm^eeedTvmjddt\\    ## #-&&-&-&!&02/2.///,22233/2132333:222//,22&/,&,,22&,&,0/2,0/222232222132332231315:<:7-7;9(-554(##"#&&&/-,/-/,2/1/1322333231321/3:222223/21/,//11/22,23233331122125(44#5.(4  4# ##########'&&',&/.,2,3232233121,213,/,,/1/212132123#######%#####" '('( (( &-.-(-&0.000,&-,252/222223233333#  # #####% #%## #  #  !'( .-( -//0/&-''22/2/&/,311/(! (' -('(((45(--&-'0870000(0770373(0733'023'-2:(003-0333-0023(-&023 ---.02 ' 4-4/0( .-/ (!(-(.  (' - ((-# (-  #      #' ( '( ' (((('-'(.(--'/.&-&.-,1/,20//33(( -( -444-((4.((% -..-(!(('.0-(' //00('20370-('30.&:0(:20300200033033523307/33:33007:33:7033:337/023:223&.21333-&/2:3(/03./302:-/2'(/30:'-03(-22(&23'./3 &,2!'//''/ '-  '(' '( '/ ((.((---/((---&-.0'((--&.2-(&(.(.0&-&.&000.//1,,32 # # ( # ( # ## (  # - -( ( (-4 --(' .-( &(&.! / ' 4(0-(-04 .&52770-20:3:2-3:7/33531022,,,,,2102332,2/33&03&0,-,12&&/2330&0/,22100000203000000323772022932/1/03121##   ! #/ # -- /-' 5--'./0- /005-,070-27:0.423800-(3120&('32,&/(1,,&&,,1/3222332233313##' -&-((-&/(2/.&-((:32..&.333.,./332/2#(((&(((.(-&.(..22,2,,,0¿³¹¹ÿ¹½11#######&(&&,.&,&00&1132/2·ÿ³ôóýùùùôã#####(&&,&&&2/32&''30/((((3,.&-((12,,0,&&12ÿ¿ôùÿô #########&!'''((&(&&&&/'&(&(&(1,,,-&..11211ſŹ¿½ųŘɥɦȽ#  # ######%####!''''((.&&.&,&&&,((.&.,0/,0,,0112211Ŀ¾ÿÿĿ#%############# &&&&&(('&'&'-(&,&(&-&',///(/&(1112,1,¹