grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026ELF>0R@Ða@8 @@@@ØØ11°©°©°À°À°À�…¥à$à$à$00$$`¹`¹`¹00�¹�¹�¹ Såtd`¹`¹`¹00PåtddIdIdIŒŒQåtdRåtd°À°À°ÀPoPoGNUV†vÅBÀwsõmó~Š"r�KÕîóúHƒìH‹e,H…ÀtÿÐHƒÄÃÿ5²#ÿ%´#@óúhéâÿÿÿf�óúhéÒÿÿÿf�óúhéÂÿÿÿf�óúhé²ÿÿÿf�óúhé¢ÿÿÿf�óúhé’ÿÿÿf�óúhé‚ÿÿÿf�óúhérÿÿÿf�óúhébÿÿÿf�óúh éRÿÿÿf�óúh éBÿÿÿf�óúh é2ÿÿÿf�óúh é"ÿÿÿf�óúh éÿÿÿf�óúhéÿÿÿf�óúhéòþÿÿf�óúhéâþÿÿf�óúhéÒþÿÿf�óúhéÂþÿÿf�óúhé²þÿÿf�óúhé¢þÿÿf�óúhé’þÿÿf�óúhé‚þÿÿf�óúhérþÿÿf�óúhébþÿÿf�óúhéRþÿÿf�óúhéBþÿÿf�óúhé2þÿÿf�óúhé"þÿÿf�óúhéþÿÿf�óúhéþÿÿf�óúhéòýÿÿf�óúh éâýÿÿf�óúh!éÒýÿÿf�óúh"éÂýÿÿf�óúh#é²ýÿÿf�óúh$é¢ýÿÿf�óúh%é’ýÿÿf�óúh&é‚ýÿÿf�óúh'érýÿÿf�óúh(ébýÿÿf�óúh)éRýÿÿf�óúh*éBýÿÿf�óúh+é2ýÿÿf�óúh,é"ýÿÿf�óúh-éýÿÿf�óúh.éýÿÿf�óúh/éòüÿÿf�óúh0éâüÿÿf�óúh1éÒüÿÿf�óúh2éÂüÿÿf�óúh3é²üÿÿf�óúh4é¢üÿÿf�óúh5é’üÿÿf�óúh6é‚üÿÿf�óúh7érüÿÿf�óúh8ébüÿÿf�óúh9éRüÿÿf�óúh:éBüÿÿf�óúh;é2üÿÿf�óúh<é"üÿÿf�óúh=éüÿÿf�óúh>éüÿÿf�óúh?éòûÿÿf�óúh@éâûÿÿf�óúhAéÒûÿÿf�óúhBéÂûÿÿf�óúhCé²ûÿÿf�óúhDé¢ûÿÿf�óúhEé’ûÿÿf�óúhFé‚ûÿÿf�óúhGérûÿÿf�óúhHébûÿÿf�óúhIéRûÿÿf�óúhJéBûÿÿf�óúhKé2ûÿÿf�óúhLé"ûÿÿf�óúhMéûÿÿf�óúhNéûÿÿf�óúhOéòúÿÿf�óúhPéâúÿÿf�óúhQéÒúÿÿf�óúhRéÂúÿÿf�óúhSé²úÿÿf�óúhTé¢úÿÿf�óúhUé’úÿÿf�óúhVé‚úÿÿf�óúhWérúÿÿf�óúhXébúÿÿf�óúhYéRúÿÿf�óúhZéBúÿÿf�óúh[é2úÿÿf�óúh\é"úÿÿf�óúh]éúÿÿf�óúh^éúÿÿf�óúh_éòùÿÿf�óúh`éâùÿÿf�óúhaéÒùÿÿf�óúhbéÂùÿÿf�óúhcé²ùÿÿf�óúhdé¢ùÿÿf�óúheé’ùÿÿf�óúhfé‚ùÿÿf�óúhgérùÿÿf�óúhhébùÿÿf�óúhiéRùÿÿf�óúhjéBùÿÿf�óúhké2ùÿÿf�óúhlé"ùÿÿf�óúhméùÿÿf�óúhnéùÿÿf�óúhoéòøÿÿf�óúhpéâøÿÿf�óúhqéÒøÿÿf�óúhréÂøÿÿf�óúhsé²øÿÿf�óúht颸ÿÿf�óúhué’øÿÿf�óúhv邸ÿÿf�óúhwérøÿÿf�óúhxébøÿÿf�óúhyéRøÿÿf�óúhzéBøÿÿf�óúh{é2øÿÿf�óúh|é"øÿÿf�óúh}éøÿÿf�óúh~éøÿÿf�óúhéò÷ÿÿf�óúh€éâ÷ÿÿf�óúh�éÒ÷ÿÿf�óúh‚éÂ÷ÿÿf�óúhƒé²÷ÿÿf�óúh„é¢÷ÿÿf�óúh…é’÷ÿÿf�óúh†é‚÷ÿÿf�óúh‡ér÷ÿÿf�óúhˆéb÷ÿÿf�óúh‰éR÷ÿÿf�óúhŠéB÷ÿÿf�óúh‹é2÷ÿÿf�óúhŒé"÷ÿÿf�óúh�é÷ÿÿf�óúhŽé÷ÿÿf�óúh�éòöÿÿf�óúh�éâöÿÿf�óúh‘éÒöÿÿf�óúh’éÂöÿÿf�óúh“é²öÿÿf�óúh”é¢öÿÿf�óúh•é’öÿÿf�óúh–é‚öÿÿf�óúh—éröÿÿf�óúh˜éböÿÿf�óúh™éRöÿÿf�óúhšéBöÿÿf�óúh›é2öÿÿf�óúhœé"öÿÿf�óúh�éöÿÿf�óúhžéöÿÿf�óúhŸéòõÿÿf�óúh éâõÿÿf�óúh¡éÒõÿÿf�óúh¢éÂõÿÿf�óúh£é²õÿÿf�óúh¤é¢õÿÿf�óúh¥é’õÿÿf�óúh¦é‚õÿÿf�óúh§érõÿÿf�óúh¨ébõÿÿf�óúh©éRõÿÿf�óúhªéBõÿÿf�óúh«é2õÿÿf�óúh¬é"õÿÿf�óúh­éõÿÿf�óúh®éõÿÿf�óúh¯éòôÿÿf�óúh°éâôÿÿf�óúh±éÒôÿÿf�óúh²éÂôÿÿf�óúh³é²ôÿÿf�óúh´é¢ôÿÿf�óúhµé’ôÿÿf�óúh¶é‚ôÿÿf�óúh·érôÿÿf�óúh¸ébôÿÿf�óúh¹éRôÿÿf�óúhºéBôÿÿf�óúh»é2ôÿÿf�óúh¼é"ôÿÿf�óúh½éôÿÿf�óúh¾éôÿÿf�óúh¿éòóÿÿf�óúhÀéâóÿÿf�óúhÁéÒóÿÿf�óúhÂéÂóÿÿf�óúhÃé²óÿÿf�óúhÄé¢óÿÿf�óúhÅé’óÿÿf�óúhÆé‚óÿÿf�óúhÇéróÿÿf�óúhÈébóÿÿf�óúhÉéRóÿÿf�óúhÊéBóÿÿf�óúhËé2óÿÿf�óúhÌé"óÿÿf�óúhÍéóÿÿf�óúhÎéóÿÿf�óúhÏéòòÿÿf�óúhÐéâòÿÿf�óúhÑéÒòÿÿf�óúhÒéÂòÿÿf�óúhÓé²òÿÿf�óúhÔé¢òÿÿf�óúhÕé’òÿÿf�óúhÖé‚òÿÿf�óúh×éròÿÿf�óúhØébòÿÿf�óúhÙéRòÿÿf�óúhÚéBòÿÿf�óúhÛé2òÿÿf�óúhÜé"òÿÿf�óúhÝéòÿÿf�óúhÞéòÿÿf�óúhßéòñÿÿf�óúhàéâñÿÿf�óúháéÒñÿÿf�óúhâéÂñÿÿf�óúhãé²ñÿÿf�óúhäé¢ñÿÿf�óúhåé’ñÿÿf�óúhæé‚ñÿÿf�óúhçérñÿÿf�óúhèébñÿÿf�óúhééRñÿÿf�óúhêéBñÿÿf�óúhëé2ñÿÿf�óúhìé"ñÿÿf�óúhíéñÿÿf�óúhîéñÿÿf�óúhïéòðÿÿf�óúhðéâðÿÿf�óúhñéÒðÿÿf�óúhòéÂðÿÿf�óúhóé²ðÿÿf�óúhôé¢ðÿÿf�óúhõé’ðÿÿf�óúhöé‚ðÿÿf�óúh÷érðÿÿf�óúhøébðÿÿf�óúhùéRðÿÿf�óúhúéBðÿÿf�óúhûé2ðÿÿf�óúhüé"ðÿÿf�óúhýéðÿÿf�óúhþéðÿÿf�óúhÿéòïÿÿf�óúhéâïÿÿf�óúhéÒïÿÿf�óúhéÂïÿÿf�óúhé²ïÿÿf�óúhé¢ïÿÿf�óúhé’ïÿÿf�óúhé‚ïÿÿf�óúhérïÿÿf�óúhébïÿÿf�óúh éRïÿÿf�óúh éBïÿÿf�óúh é2ïÿÿf�óúÿ%îfDóúÿ%æfDóúÿ%ÞfDóúÿ%ÖfDóúÿ%ÎfDóúÿ%ÆfDóúÿ%¾fDóúÿ%¶fDóúÿ%®fDóúÿ%¦fDóúÿ%žfDóúÿ%–fDóúÿ%ŽfDóúÿ%†fDóúÿ%~fDóúÿ%vfDóúÿ%nfDóúÿ%ffDóúÿ%^fDóúÿ%VfDóúÿ%NfDóúÿ%FfDóúÿ%>fDóúÿ%6fDóúÿ%.fDóúÿ%&fDóúÿ%fDóúÿ%fDóúÿ%fDóúÿ%fDóúÿ%þfDóúÿ%öfDóúÿ%îfDóúÿ%æfDóúÿ%ÞfDóúÿ%ÖfDóúÿ%ÎfDóúÿ%ÆfDóúÿ%¾fDóúÿ%¶fDóúÿ%®fDóúÿ%¦fDóúÿ%žfDóúÿ%–fDóúÿ%ŽfDóúÿ%†fDóúÿ%~fDóúÿ%vfDóúÿ%nfDóúÿ%ffDóúÿ%^fDóúÿ%VfDóúÿ%NfDóúÿ%FfDóúÿ%>fDóúÿ%6fDóúÿ%.fDóúÿ%&fDóúÿ%fDóúÿ%fDóúÿ%fDóúÿ%fDóúÿ%þfDóúÿ%öfDóúÿ%îfDóúÿ%æfDóúÿ%ÞfDóúÿ%ÖfDóúÿ%ÎfDóúÿ%ÆfDóúÿ%¾fDóúÿ%¶fDóúÿ%®fDóúÿ%¦fDóúÿ%žfDóúÿ%–fDóúÿ%ŽfDóúÿ%†fDóúÿ%~fDóúÿ%vfDóúÿ%nfDóúÿ%ffDóúÿ%^fDóúÿ%VfDóúÿ%NfDóúÿ%FfDóúÿ%>fDóúÿ%6fDóúÿ%.fDóúÿ%&fDóúÿ%fDóúÿ%fDóúÿ%fDóúÿ%fDóúÿ%þfDóúÿ%öfDóúÿ%îfDóúÿ%æfDóúÿ%ÞfDóúÿ%ÖfDóúÿ%ÎfDóúÿ%ÆfDóúÿ%¾fDóúÿ%¶fDóúÿ%®fDóúÿ%¦fDóúÿ%žfDóúÿ%–fDóúÿ%ŽfDóúÿ%†fDóúÿ%~fDóúÿ%vfDóúÿ%nfDóúÿ%ffDóúÿ%^fDóúÿ%VfDóúÿ%NfDóúÿ%FfDóúÿ%>fDóúÿ%6fDóúÿ%.fDóúÿ%&fDóúÿ%fDóúÿ%fDóúÿ%fDóúÿ%fDóúÿ%þfDóúÿ%öfDóúÿ%îfDóúÿ%æfDóúÿ%ÞfDóúÿ%ÖfDóúÿ%ÎfDóúÿ%ÆfDóúÿ%¾fDóúÿ%¶fDóúÿ%®fDóúÿ%¦fDóúÿ%žfDóúÿ%–fDóúÿ%ŽfDóúÿ%†fDóúÿ%~fDóúÿ%vfDóúÿ%nfDóúÿ%ffDóúÿ%^fDóúÿ%VfDóúÿ%NfDóúÿ%FfDóúÿ%>fDóúÿ%6fDóúÿ%.fDóúÿ%&fDóúÿ%fDóúÿ%fDóúÿ%fDóúÿ%fDóúÿ%þ fDóúÿ%ö fDóúÿ%î fDóúÿ%æ fDóúÿ%Þ fDóúÿ%Ö fDóúÿ%Î fDóúÿ%Æ fDóúÿ%¾ fDóúÿ%¶ fDóúÿ%® fDóúÿ%¦ fDóúÿ%ž fDóúÿ%– fDóúÿ%Ž fDóúÿ%† fDóúÿ%~ fDóúÿ%v fDóúÿ%n fDóúÿ%f fDóúÿ%^ fDóúÿ%V fDóúÿ%N fDóúÿ%F fDóúÿ%> fDóúÿ%6 fDóúÿ%. fDóúÿ%& fDóúÿ% fDóúÿ% fDóúÿ% fDóúÿ% fDóúÿ%þ fDóúÿ%ö fDóúÿ%î fDóúÿ%æ fDóúÿ%Þ fDóúÿ%Ö fDóúÿ%Î fDóúÿ%Æ fDóúÿ%¾ fDóúÿ%¶ fDóúÿ%® fDóúÿ%¦ fDóúÿ%ž fDóúÿ%– fDóúÿ%Ž fDóúÿ%† fDóúÿ%~ fDóúÿ%v fDóúÿ%n fDóúÿ%f fDóúÿ%^ fDóúÿ%V fDóúÿ%N fDóúÿ%F fDóúÿ%> fDóúÿ%6 fDóúÿ%. fDóúÿ%& fDóúÿ% fDóúÿ% fDóúÿ% fDóúÿ% fDóúÿ%þ fDóúÿ%ö fDóúÿ%î fDóúÿ%æ fDóúÿ%Þ fDóúÿ%Ö fDóúÿ%Î fDóúÿ%Æ fDóúÿ%¾ fDóúÿ%¶ fDóúÿ%® fDóúÿ%¦ fDóúÿ%ž fDóúÿ%– fDóúÿ%Ž fDóúÿ%† fDóúÿ%~ fDóúÿ%v fDóúÿ%n fDóúÿ%f fDóúÿ%^ fDóúÿ%V fDóúÿ%N fDóúÿ%F fDóúÿ%> fDóúÿ%6 fDóúÿ%. fDóúÿ%& fDóúÿ% fDóúÿ% fDóúÿ% fDóúÿ% fDóúÿ%þ fDóúÿ%ö fDóúÿ%î fDóúÿ%æ fDóúÿ%Þ fDóúÿ%Ö fDóúÿ%Î fDóúÿ%Æ fDóúÿ%¾ fDóúÿ%¶ fDóúÿ%® fDóúÿ%¦ fDóúÿ%ž fDóúÿ%– fDº1ÿH�5ò9èýòÿÿH‰ÞH‰Ç1Àè J·% €äþf‰%  èöïÿÿL‰$ÿ$L‹$1ÀH‰CL‰% èÓïÿÿóúAWAVA‰þAUATUSH‰óH�ìh‰|$H‰t$XdH‹%(H‰„$X1ÀèÂH�5³á¿H‰„$ˆèÛùÿÿ1ÿH�5˜áèÍùÿÿH�5FH�=gÐè òÿÿH�=[Ðè^ñÿÿH‹;H‰=”.è/ôÿÿAƒþŽÔ Ç$L�=×ûÇD$,ÐH‰\$»DH‹D$LcãJ�,åHèH‰D$H‹€8@…Tƒl$,„Ä(L�pH�´$ÀL‰÷è=öÿÿ…Àˆ-‹„$Ø%ð=@„Ì(L‰÷H�5ݺèúÿÿI‰ÆH…À„û1öºH‰Çèdøÿÿƒøÿ„ûL‰÷è³õÿÿI‰ÅHƒøÿ„æ1Ò1öL‰÷è:øÿÿƒøÿ„ÑI�}èóÿÿL‰ñL‰ê¾H‰ÇH‰D$@è°ïÿÿI9Å„#L‰÷H‰D$ èúîÿÿH‹T$ …À…}H‹D$@ÆL‹l$@L‰ïèñÿÿH�xè®òÿÿ‰\$l1ÉL‰ëL‰d$pE1ÒE1íE1äL‰´$€E1öÇD$ H‰l$xH‰D$Hë „HƒÃ¶AöG@uòHcl$ H‰îHÁåE…öt A�FÿM�D-9ð<‰L$8D‰T$0M…í„rEöL‰ïIcöHÁæè@ñÿÿ‹L$8D‹T$0I‰ÅM�D-IÇD¶ E„É…ËIǶH‰ÐAöW@t)ff.„ff.„�¶SHƒÃH‰ÐAöW@uî„À…JÿÿÿH‹|$H‹\$lL‰l$ L‹d$pH‹l$xL‹´$€èaìÿÿH‹L$H9L$XL‹D$ „é Iƒ8„†1ÉHƒÁIƒ<ÈuõL�,ÍH‹D$L‰D$0H‰L$ H‹8èìÿÿH‹L$ HcD$H‹|$H�tH‰L$HÁæèDðÿÿ‹T$H‹L$H�t(H‰D$)ÚIÌH‰L$ H‰ÃHcÒJ�<àHÁâè÷ÿÿL‹D$0H�<+L‰êL‰ÆL‰D$èËóÿÿ‹D$H‹L$ H‹|$�Dÿ‰D$è�ëÿÿH‹|$@è†ëÿÿL‰÷ènîÿÿ‹$�X;\$ŒÎüÿÿè òÿÿ=…‡H‹=+èröÿÿH�=‹WèÆøÿÿH�=ŸWH‰.è3òÿÿH�=Ü~H‰õ-èäH�=‰}èôã‹D$ƒøŽ©H‹L$ƒèE1íL�aH�lÁI‹$º H�5�ÆH‰ßHƒÃ è¤ëÿÿ…ÀLDëIƒÄL9åuÕM…í„^A€}/„HL‰-’*A€}…êH‹°+H…Û„ö H‰ßèîÿÿ‰‘+…À~HcЀ|ÿ/„Ç H�="Æè3ìÿÿ„À„%·šþH�=%ÆÆ©%ƺ%:ÇÍ%ÿÿÿÿHÇÊ%ÿÿÿÿf‰ƒ%Æ�%ÆÈ%Çã#ÿÿÿÿf‰%Æ%ÿèxéÿÿH�=‡Üó~©ÍHº )H…ÀH�u HǪ$ÿÿÿÿH‰£#H�Ü#H‰Ý#H�€ÅfH:"ÀH¸ÿÿÿÿ”–)H‰ÿ#H¸ÿûÿïÖõÿH#>#H м#H‰-#¸HÁà Dz#H‰ó#HǨ#ÿÿÿÿǦ#ÿÿÿÿÆ#:èŠH�=Åè¦èÿÿH‰ÅH…À„ïƒ|$ŽnD‹|$L‹t$A¼A�_ÿëFf„A9Ü�b I‹lÆAƒÄff.„ff.„„AƒÄE9ü�IcÄM‹,ÆA€}-uåA€}muÞA€}t§H�5¦ÄL‰ïèèïÿÿ…ÀtÄH�5šÄL‰ïèÕïÿÿ…Àt±H�5ŽÄL‰ïèÂïÿÿ…ÀtžH�5‚ÄL‰ïè¯ïÿÿ…Àt‹H�5vÄL‰ïèœïÿÿ…À„tÿÿÿH�5fÄL‰ïè…ïÿÿ…À„]ÿÿÿH�5WÄL‰ïènïÿÿ…À„FÿÿÿH�5JÄL‰ïèWïÿÿ…À„/ÿÿÿH�5=ÄL‰ïè@ïÿÿ…À„ÿÿÿH�50ÄL‰ïè)ïÿÿ…À„ÿÿÿH�5#ÄL‰ïèïÿÿ…À„êþÿÿH�5ÄL‰ïèûîÿÿ…À„ÓþÿÿH�5ÄL‰ïèäîÿÿ…À„¼þÿÿH�5úÃL‰ïèÍîÿÿ…À„¥þÿÿH�5íÃL‰ïè¶îÿÿ…À„ŽþÿÿH�5àÃL‰ïèŸîÿÿ…À„wþÿÿI�ménþÿÿfD‰$é¢ûÿÿH‹|$@èçÿÿfD‰$é‚ûÿÿ„H‰èH‹T$HD‰åE‰ÌI‰Áë"D1ÉA€ü tDˆ"HƒÂD¶cHƒÃE„ätKA¶ÄAöG@t ‰ÈD Ð è„[…ÉuÇA€ü\tq…í„É1íA€ü'tÀHƒÃDˆ"½HƒÂD¶#E„äuµA‰ìL‰ÍÆH‹|$H‰L$PD‰T$8L‰D$0èßëÿÿL‹D$0ƒD$ ‹L$PD‹T$8I‰M�D-étùÿÿ€…íu›E…҄þsH�=ÉÁL‰L$`L‰D$PH‰T$8D‰T$0‰L$hèóéÿÿD‹T$0H‹T$8H…ÀL‹D$PL‹L$`‹L$ht D‰ÑéÿÿÿfDE…Òt#E1ÒA€ü"„íþÿÿDˆ"1íHƒÂAºéÙþÿÿf�A€ü'tjA€ü"…ÀþÿÿAºé¼þÿÿD¿@A¾è°êÿÿD‹T$0‹L$8I‰Å鋸ÿÿ€¹é…þÿÿfDL‰Í1ÉE1ÒE1äéÎþÿÿ„½é]þÿÿH�5÷<º1ÿèsèÿÿH�5ÖÀH‰Ç1Àè’?H‹„$XdH+%(…-!¿èñðÿÿèŒëÿÿ=„‡H‹D$XH‰D$1ÿºH�5i<èèÿÿH‰Ç1Àè:?éWùÿÿL‰ïè}çÿÿH‰¾%éúÿÿH‰ë€}g„ L‹%íL�5æM…äuéx@M‹fIƒÆM…ä„cI‹t$hH‰ßèºëÿÿ…ÀuÞL‰%ïL‹t$‹\$H‹ßL‰ö‰ßÿPP1ÿH‰"è)ÿ1ÿè‚@H‹»ÿL‰ö‰ßÆ-#èH¾H‹©H…À…ƒ H‹¹#H…À„†1ÒfDH‹H ‰ÖH‹H9ÎBÑH…Àuì�zL�%böHƒÇL�=gõHÁçèÞèÿÿI�T$HH‰ÃL�pf�A‹$A‰Føƒø#w Ic‡Lø>ÿà¾7H�=3Àèè>H�Yö�IƒÄIƒÆI9ÔuÃL‹=$#M…ÿ„‰I‹H�5ÀèàïÿÿI‰ÄH…À„PI‹WH�ƒ H…Òt@H‹JH‹ÇHƒÀH‰HøH…ÒuæÇH‰ßÇ@L‰=$AÿÔHÇ$A‰Ä…À…ÆM‹?M…ÿ…zÿÿÿH‹5£H�=¼$¹&¶pH‰5‘#Àè󥈎#f� U€H�‡hÿÿÿH�=—H‰xPH�=ÜNH‰Uè âÿÿèûïÿÿH˜H‰B#H‹ûH‹€˜H…ÀtÿÐHƒ=µ„.€="… H‹=ƒH…ÿt?1öH‹�èØ}€=ò!… H‰tÆ-ÇCènBƶò„Àu¶•ƒà<•À¶‡ƒàÁàƒâï Ѐ=Ĉo…ûèCfƒ|$„ÙöY t¶H÷Ш…q€=— … €=L!u €=q„ÑH‹„$XdH+%(…v1ÿè=íÿÿH�FEI‰é¾ýÿÿH�'fI‰é¯ýÿÿH�èII‰é ýÿÿAÇôé”ýÿÿH�M|I‰é…ýÿÿH‹6üI‰évýÿÿH�/LI‰égýÿÿH�0KI‰éXýÿÿH�II‰éIýÿÿH�R^I‰é:ýÿÿH�cKI‰é+ýÿÿH�teI‰éýÿÿH�åEI‰é ýÿÿH�fEI‰éþüÿÿH�çDI‰éïüÿÿH�øCI‰éàüÿÿ¶ ƒà<„¹„Àt,¹¸EÈA‰é®üÿÿAÇé¢üÿÿf�M‹o1ÿºH�5μèIãÿÿD‰âH‰ÇL‰î1Àèi:éýÿÿI‹H�5¡¼ètìÿÿI‰ÄH…À…”üÿÿè“ßÿÿM‹o1ÿºH�5±ýI‰ÆèùâÿÿL‰òL‰îH‰Ç1Àè:é`üÿÿH‹D$@BÆ(éññÿÿ1ÿºH�5o»èÂâÿÿH‰Ç1Àèè9é£öÿÿH‹D$XHƒ8„H¸ff.„@H‰ÂHƒÀHƒ|ÁøuñƒÂL‰D$HcúHÁçèMäÿÿL‹D$H‰ÂH‹D$H‹8H…ÿ„ L‰D$ I‰íH‰Õ‰\$H‰ÃL‰d$E1äf.„è[äÿÿJ‰D%IƒÄJ‹<#H…ÿuéH‰ê‹\$L‰íL‹D$ M‰åL‹d$1ÀH‰T$J‰*H�*H‰D$éMòÿÿÇŸÿÿÿÿéôÿÿè5;1ÿºH�5˜»èÂáÿÿH‰Ç1Àèè8€=B…zH‹ôÿPèü:H‹ÅH…Ût,H�5TÃH‰ßè‘åÿÿ…À…‰H‹¢H‰£€ Ü@è¯ÝH‹5¶Á‹FDƒâ‰ÁƒÈƒáý€úEÈ‹Ÿ�xÿA‰À‰Ê1ÉA1øD9Çs¼À¿ÿÿÿÿDǃèƒøw H� ãð‹ �H‹F#H щNDè—‚Hƒ='„Hƒ=‘„@ºH�5ú1ÿèÈàÿÿH‰Ç1ÀèNTH‹gH…Ûu=éDL‹#ºH�5¯º1ÿè’àÿÿH‰êH‰ÇL‰æ1ÀèTH‹[H…Û„ÚH‹kH…íuĺH�5lº1ÿèYàÿÿH‰Å묺1ÿH�5î4èAàÿÿH‰ÞH‰Ç1Àèd7ºH�5w¹1ÿè!àÿÿH‰Ç1ÀèG7H‹=è»$H�=åž1Àè-7éYøÿÿƒè‰¯ÆDÿé&òÿÿ€=‘…ƒHƒ=t>€=?t51ÒH�5\<H�=è ÞÿÿH‹™ëöCatH‰ßèÙ:H‹[HH…Ûué€=J… H�=lè—àÿÿH�= è‹àÿÿèf}H‹=ŸH…ÿ„°H�5[ÄèÚçÿÿH‰ÅH…À„¦H‹ /÷H�2ºH‰ï1À¾èÑéÿÿH‹ÊH…Ût'DH‹KH� ºH‰ï1À¾è¦éÿÿH‹H…ÛuÞH‰î¿ èQáÿÿH‹ŠH…Ût'DH‹KH�Ó¹H‰ï1À¾èféÿÿH‹H…ÛuÞH‰ïèFÞÿÿ€=°…—€=2…Š€=„öÿÿH‹pöH�5ñ4º1ÿèeÞÿÿH‰Þéñõÿÿ1ÿºH�53èJÞÿÿH‰Ç1Àèp5émùÿÿè–oéÖøÿÿ1ÿºH�5 ¸èÞÿÿH‰îH‰Ç1Àèñ2éaüÿÿE1í1Éé…îÿÿH‹=»E1ÀL‰±èÜæÿÿ„À„ȶM1ÿH‰=”ƒà<„3€=t„&H‹­õL�%%ÆH‰ßèÖÝÿÿH‰Åƒø~8H˜L�% ÆH�\üL‰æH‰ßè…Úÿÿ…À„çH�5ØÍH‰ßènÚÿÿ…À„пè<ßÿÿ�}HcÿH‰Ãè.ßÿÿL‹5?õH‰ÅH‰ÇL‰öèéÚÿÿL‰æH‰ïè>çÿÿL‰÷H�5}¦è¯åÿÿH�5$ÂH‰ïI‰Æè�åÿÿI‰ÄM…ö„PM…äu!é•IcÕL‰á¾H‰ßè„çÿÿA9Å…šL‰ñº¾H‰ßèfÛÿÿI‰Å…ÀÈL‰÷èWÜÿÿL‰çèOÜÿÿƒÀ„„H‰ïèNÙÿÿH‰ßèFÙÿÿ€=ð…« €=§…( 1ÀH‰kôéÃ÷ÿÿH‹H�5011ÿºH�X èPÜÿÿH‰ÞH‰Ç1Àè#11ÀH�=21è1Hƒ=M„² è‚mH�=11Àèô0é�öÿÿ€=š„÷ÿÿéR÷ÿÿèèžH�=o¹H‰Æ1ÀèÇ0éêöÿÿ€}l…ôóÿÿ€}d…êóÿÿH�]éáóÿÿ‰ÇènèÿÿéqôÿÿA€}…­íÿÿH�íÊH‰8é¬íÿÿH‹-„1ÒH…íu*é±ff.„ff.„f�H‹mHH…턌H‹E0f÷@D@uçöE`uáD¶%¬E„ätÔH‹˜�H…ÛtÈL�-¡ë¾H‰ßè,D‰âH‹[H…Ût¦H‹C`H…Àt I‹}PH9¸àtáöC&0uÛ„ÒuÇ1ÿºH�5µèãÚÿÿH‰Ç1ÀèiN먀=3u„Ò„úºH�5µ1ÿè³ÚÿÿH‰Ç1Àè9NºH�5µ1ÿè–ÚÿÿºH�5ú´1ÿH‰Ãè€ÚÿÿºH�5ë´1ÿI‰ÄèjÚÿÿºH�5Ü´1ÿH‰ÅèTÚÿÿM‰áI‰è¾ASH‹=xH‰Á1ÀSH�¶´èÞäÿÿH‹O]A\H…Û„÷L�¤$ÀL�=|H�-ë+D‹KLE…É…´H‹u(¿ èUÜÿÿH‹[H…Û„´H‹ H‹}(H�f´1À¾ènäÿÿH‹S I‹PL‰æèÎâÿÿH‹}(L‰á1ÀH�7´¾èDäÿÿH‹S(I‹PL‰æè¤âÿÿD‹SH¹ïÿÿÿE…Òuƒ{Lu1ÉH‹}(M‰àH�´1À¾èäÿÿ‹{H…ÿ„IÿÿÿèT™é?ÿÿÿH�=á³1ÀèÁL‹{Lè9™é1ÿÿÿ1ÿºH�5Ö.èÙÿÿH‰Ç1Àè—Löu„PH‹ ƒ`ÇR H…Ût H‹->fDH‰ßH‰îèå.H‹H…ÛuíH‹ H‹€àH…ÀtH‹ÛH‹=\H�5ÿЀ=?„®øÿÿH‹·H…Û„!ºH�5³1ÿècØÿÿ¾H‰ßH‰Â1ÀèãÿÿºH�5 ³1ÿè>ØÿÿH‰ÞH‰ÅH‰ÇèpÙÿÿH‰ïèXØÿÿ‰Åƒø1�H‰Þ¿ ƒÅè0Üÿÿƒý2uë1ÿºH�5Ȳèø×ÿÿ¾H‰ßH‰Â1Àè–âÿÿ€=W„ H‹zH�<Åè¥ÙÿÿH�”$ H�5¶1H�=ÿI‰ÆH‰„$ èÖÿÿH‹„$ L)ðHÁøH;1…¡ H‹5$H�  ºL‰÷L�=Ö è±ÕÿÿH‹M�ÆM9ƃu÷ÿÿL‰$M‹&I‹(1É1ÒA¸I‹t$ènÚÿÿH…À„‰€x„?€=Ä„I‹L$¾H‰ß1ÀH�Æ›è£áÿÿI‹|$è×ÿÿ�PI‹l$ A‰ÕH…íuëv€H‹mH…í„£öEtíAƒý1€H‰Þ¿ AƒÅè¿ÚÿÿAƒý2uéH‹UH�5è™H‰ß1ÀE1íèPH‹mH…ítXöEuÂH‹mH…ítIöEt“ë±E…ít)ºH�5Ñ“1ÿèIÖÿÿºèH�5±H‰Ç1Àèc-IƒÆL;4$‚ÜþÿÿéHöÿÿI‹l$ H…íuë³@H‹mH…ítjöEtñAƒý1"ff.„H‰Þ¿ AƒÅèÿÙÿÿAƒý2uéH‹UH�5(™H‰ß1ÀèTOH‹mH…í„&E1íöEu¾H‹mH…ítöEt�ë­I‹l$ H…íu é-ÿÿÿff.„H‹mH…í„ÿÿÿöEuíAƒý1€H‰Þ¿ AƒÅèoÙÿÿAƒý2uéH‹UH�5˜˜H‰ß1ÀèÄNH‹mH…í„ôþÿÿE1íöEt¾H‹mH…í„ÞþÿÿöEu‹ë©I‹L$¾H‰ß1ÀH�Á™èžßÿÿI‹|$èÕÿÿ�PéöýÿÿH‹@(Hƒx`„šþÿÿH‹€àH…À„¢ýÿÿö@D@„˜ýÿÿI‹D$ ëH‹PöBD@„ƒýÿÿH‹H…Àuêé^þÿÿI‹l$ E1íH…í… ÿÿÿéHþÿÿH�-¬H‰ëƒ|$�èÿÿé}ìÿÿH‹=Z H…ÿt'¾è»lÇAèl1Hƒ=T …ŸîÿÿH‹wH�¼$ ÿP`H‰Ãƒ¼$ …ºH�5›­1ÿèøÓÿÿºH‰ßH‰Æè8pÇÞè 1€=c„JîÿÿHƒ=ä…P÷ÿÿ1ÿºH�5c­è«ÓÿÿH‰Ç1Àè�(éY÷ÿÿI‹l$1ÿºH�5i)è„ÓÿÿH‰ÇH‰î1Àè§*éWüÿÿ1ÉéõïÿÿH�5t)¿1ÀèøÚÿÿH‹-yHƒ}u#éÂóÿÿD¿ è&ÐÿÿH‹mHƒ}„¤óÿÿH‹UH‹]8¿1ÀH�5®H+] è¨ÚÿÿH‰ßè [H‹}(è—[H‹E(H…Àt®H…Ûx>fïÀòH*ÃòYÐãH…ÀxCfïÉòH*Èò^Á¿¸H�5«­èPÚÿÿékÿÿÿH‰ÚƒãfïÀHÑêH ÚòH*ÂòXÀë°H‰ÂƒàfïÉHÑêH ÂòH*ÊòXÉë«H‹¾H�¼$ ÿP`H‰Ç1Àè9'é2öÿÿèï¡H‹=xH+„$ˆH‰ÃèØÿÿ1ÿºH�5Â+H‹-“èÒÿÿ¹@BH‹=H‰ÆH‰ØH™H÷ùH‰éI‰ÑI‰ÀH‰ò1À¾èŸÜÿÿH‹=Øè³×ÿÿébõÿÿH�=%­H‹-Èéè›ÛÿÿfïÀ¿ÆH‰¬éH�}fH:"À)oèJé¿è *èÛRH‹5”H�=½訇èóèîÜÿÿ„À„šH‹ï € ¹Æ³ H…Ûu<ëQf.„ƒø…I H‹CHƒ¸ð… H‹8¾è8§H‹H…Ût‹C…ÀuÉH‹{¾è§ëáH‹r H…Àt^ƒx… H‹H‹@¾L‹ ðI‹<$èç¦H…Ûu!ë1H‹CI‹<$H‹€ðH‹0è¹Ôÿÿ…À…}ƒ{…FH‹H…ÛuÏH‹=˜1Ò1öèÿéH‹ÈÿP(è0Üÿÿè Hè†JH‹=oè:–H‹=c1öèlþèNH‹�ÿPX1öƒ=¼@—Æ1ÿèY|H‹rÿP@H‹hÿPx€=Ä…2èÃDèžqH�=' èÑÿÿèímH‹=¦èÑØÿÿ„À„e1öH‹=Èç1ÀH‰5‡1öè Øÿÿ‰Ã…Àˆ¬H�´$À‰ßè§Ûÿÿ…À…õL‹¤$ðE1öL‰çèlÑÿÿH‰D$I‰ÅëMþM9ô„ÛL‰âK�t5‰ßL)òè$ÒÿÿI‰ÇH…ÀyÚ¿èBÑÿÿH‹Cç1ÿºH�5E'H‰$è4ÏÿÿH‹4$H‰Ç1ÀèV&ë¢H‰Øé/þÿÿH‹ ç1ÿºH�5¿%èÏÿÿH‰ÇH‰Þ1Àè%&é ñÿÿH�5õ³H‰ßèq×ÿÿH‰H…À…fíÿÿ¿è·ÐÿÿH‹ð1ÿºH�5"$è­ÎÿÿH‰ÞH‰Ç1ÀèÐ%é0íÿÿ‰ßè´ÐÿÿH‹=…æèÈËÿÿH‹5éH‰ïH‰-oæèâÍÿÿH‰ÅH…À„H�”$˜¾H‰ÇèÑ×ÿÿ„À„H‹:æ¾/L‹-žH‰ßè>ÏÿÿH…À„OH)ØH�x I‰ÇèöÏÿÿL‰úH‰ÞI‰ÆH‰ÇèÕÒÿÿCÆ>/I�GH¿ldXXXXXXAÆDI‰<L‰÷è�Ôÿÿƒøÿ„�‰ÁH�Ú²L‰îL‰÷èƒÓÿÿH‰ÃH…À„oH‹8èßÏÿÿ¾H‰ßH‰$è>Òÿÿ„À„zL‹µÀH‰ïD‹}DèóÒÿÿH‰ï‰D$èWÔÿÿL‰öH‰ßI‰Åè¹Øÿÿ„À„ED‰þH‰ßèöÓÿÿ„À„2H‹C‹t$D‰êH‰ßÿ�˜„À„H‹EH‰ïÿ�ðH…ÀˆH‰ÇèôÎÿÿH‰ïI‰ÆH‹EL‰öÿ�øI‰ÇH…ÀˆþH�„$ 1ÉH�54VH‰ïH‰ÂH‰œ$ L‰´$¨‰Œ$°H‰D$èí×ÿÿƒ¼$°…šH‹CH‰ÞH‰ïÿ�`„À„dº(H�5ÿ§H‰ßèCÊÿÿH‰D$H…À„$H‹|$L‰æèHÒÿÿ„À„€L‹­ M…í„ËJ�<ýè#Îÿÿ1Ò1öI‰Å1Àë&I‹<ÖL‹� L9_ tHƒÀI‰|5H�4ÅHƒÂI9×uÕ1ÒH‰ßI‰T5‰ÂL‰îèùÏÿÿé}¾H‰ÇèWdéú÷ÿÿ¾ˆH�=³¦èñ#éIôÿÿ1ÿºH�5#è¹ËÿÿH‰Ç1Àèß"éDúÿÿ¿è�ÍÿÿL‹%‘ã1ÿºH�5c#è†ËÿÿL‰æH‰Ç1Àè©"éÕûÿÿH‹eã1ÿºH�5Ï"èZËÿÿH‰ÇH‰Þ1Àè}"éoûÿÿèÍÿÿ‰Çè,ÕÿÿH‰ÅH�5š$1ÿºè&ËÿÿH‰îH‰Ç1ÀèI"H‹|$è¿Çÿÿé�îÿÿ¿èðÌÿÿL‹%ñâ1ÿºH�5“"èæÊÿÿL‰æH‰Ç1Àè "éûÿÿ1ÿºH�5—¥èÁÊÿÿ¾H‰ßH‰Â1Àè_ÕÿÿéÒêÿÿó~:â1ÒfH:" â¾èH�=Y€%¢þƒ膚H‹=1ÒH�5ÖèqÑÿÿébñÿÿ1ÒéÔçÿÿH‹~øéÓñÿÿE1íé?èÿÿºH�5I¥1ÿè.ÊÿÿH‰îH‰Ç1ÀèQ!éAíÿÿè×ËÿÿE1íE1ö‰ÇèúÓÿÿH‰ÅL‰÷è¯ÆÿÿL‰ïè§ÆÿÿH‰ßèßÒÿÿH‹$H‰ßè#ÇÿÿH‰ßè‹Æÿÿé�þÿÿè¡•éÄùÿÿ1ÿºH�5Vè¹ÉÿÿH‰Ç1Àè?=éäîÿÿH‹=ènÑÿÿH�=‡2èÂÓÿÿH�=›2H‰ è/ÍÿÿH�=ØYH‰ñèü¾H�=…Xèð¾H‹D$XH‰D$é£íÿÿH‹„$XdH+%(…H�ãØ¾s(H�=†è²1ÿºH�5E¤èÉÿÿH‰îH‰Ç1Àè2 éWìÿÿH‹D$H�áH‹H‹=×û¾1Àè‹Óÿÿétàÿÿ¿ è¬ÊÿÿI‰Æ1ÀéÆúÿÿH‹D$H�ÖH‹ëÃL‹=¢à1ÿºH�5|è—ÈÿÿH‰ÇL‰þ1Àèºé„ëÿÿD‰úL‰öH‰ßèwÌÿÿH‹T$H�5;SH‰ïè“Óÿÿƒ¼$°…H‹T$H‹t$1ÉM‰àH‰ßè®Éÿÿ„À„âH‹CH‰ÞH‰ïÿ�8„À„¯H‰ßèÑÿÿ„ÀtxL‰÷èºÄÿÿL‰ïè²ÄÿÿH‹5óßH‹<$è"Ñÿÿ…Àu,H‹<$è•ÄÿÿéÇüÿÿºH�5\ 1ÿE1íèÊÇÿÿH‰Åé»ýÿÿH‹<$èùÄÿÿ1ÿºH�5Û è¦ÇÿÿH‰Ç1ÀèÌë¬H‹<$èÑÄÿÿ1ÿºH�5{ è~ÇÿÿH‰Ç1Àè¤é]ÿÿÿºH�5; 1ÿè\ÇÿÿH‰ÅéMýÿÿºH�5ø1ÿèAÇÿÿH‰Åé2ýÿÿºH�5²¢1ÿè&ÇÿÿH‰ÅéýÿÿèYÇÿÿH‹„$XdH+%(uèH�¯Ö¾W(H�=æƒè~ H‹„$XdH+%(u½H�„Ö¾O(H�=»ƒèS H‹„$XdH+%(u’H�YÖ¾a(H�=�ƒè( ¿è~ÈÿÿH‹Çþ1ÿºH�5ÉètÆÿÿH‰ÞH‰Ç1Àè—é$çÿÿºH�5féüÿÿºH�5¥1ÿE1íè;ÆÿÿH‰Åé,üÿÿºH�5_1ÿE1íèÆÿÿH‰ÅéüÿÿºH�5c¡1ÿE1íèÿÅÿÿH‰Åéðûÿÿè²ÇÿÿE1í‰ÇèØÏÿÿH‰ÅéÙûÿÿóú1íI‰Ñ^H‰âHƒäðPTE1À1ÉH�=Óÿÿÿ;Ýôf.„H�=ÙóH�ÒóH9øtH‹ÝH…Àt ÿà€Ã€H�=©óH�5¢óH)þH‰ðHÁî?HÁøHÆHÑþtH‹ýÜH…ÀtÿàfDÀóú€=-øu+UHƒ=ÚÜH‰åt H�=Îmè)ÑÿÿèdÿÿÿÆø]ÃÀóúéwÿÿÿf.„f.„f.„f„L‹áýD‹ ûAWL‹=éýAVAUATUSM9úƒï1íL��qH�=h_L� á{H�z{f.„A¶„À„ÌH�5}�¶ A‰ÎIcóH�¬…fƒA‹E …Àu¦IÇEH�=ç´èûÿÿf�1ÛHƒý•ÃHƒÄƒÃ‰Ø[]A\A]ÀH‹©ïH‹=šïH‹ úH…Ò„ÅH…É„¼Hƒ9„²H‹5ƒïH…ö„¢º H‰ñHcý¾9ÐNÐI}‰ÓHcÒèß¹ÿÿI‰ÀA‰Ä9Ã�hH‹2ïH‹3ïD‰$ô1ÛH� ÐL‹)E‰EI‹}DåA;m�Ú‰-ôHcíÆ/H‹H‹@ÆD(H‹H‹@H‰ïóHƒÄ‰Ø[]A\A]Ãf.„ǾóÇA…íu[H‹=¼î»èýÿÿH‹›îH‹œîD‹%�óH� ÐL‹)éjÿÿÿf„AÇEH‹=iîÇ_óH‹`îH� úD‹%Mó»L‹)DåAÇE8I‹}A;mŽ&ÿÿÿAÑüH‰L$AìIcôèQÁÿÿH‹L$I‰EH‹H‹xH…ÿ„ÃAƒìD‰`éíþÿÿAƒ}8…öýÿÿÇÞòAÇEéÿÿÿH‹=ÚíH‰D$踷ÿÿL‹D$…Àu0H‹=°íH‹±íH� úL‹)D‰›ò1ÛE‰EE…À…uþÿÿéÐþÿÿºH�5ò1ÿL‰D$èg¹ÿÿH‰Ç1Àè�H‹=^íL‹D$H‹ZíH� úL‹)ë§H�="²èuøÿÿH�=¦²èiøÿÿf„SHƒìH‹Dò¶9òˆ„Àu"H‹íH‹ íH‹ ÈHcöñHAH9Âs%¶H�JƶRH‰ òˆöñHƒÄ[Ã@H�BH‰T$H‹ÈñH‰ÙñèäûÿÿƒøtƒøH‹T$uH‹=¦ìè ûÿÿ1Àë»DH)ÚHcÒH‹ñëŒ�Hƒìff.„�è;ÿÿÿƒø*t&…Àtbƒø u탊îè!ÿÿÿƒø*uæff.„�è ÿÿÿƒø*töƒø/t8ƒø tÏ…Àu¸1ÿºH�5´tè¸ÿÿHƒÄH‰Ç1Àé'€ƒø*uÓë¹XÀóúAWAVAUATUSHƒì‹5ñ…ö…†Çöð‹ øí…É„ÝHƒ=¸ë„çHƒ=Êð„õH‹•ëH…À„+H‹}ëH‹ÐH…À„‹P‰gðH‹PH‹H‰�ðH‰bë¶H‰Xðˆfð‹4ë…À…¬L�dL�=nxL� çQL�`nL�ùmL‹%2ð¶'ðAˆ$‹59íL‰áHcÖH‰L$1ÿA¾A¿Pf„A¶ $L�-Ô�fAƒï‰ïA¶$AÆ$ˆ$ï=Ò‡b‰ÂIcT•Lê>ÿâHcïL‹%òîA¿Gë©Hƒ=ÛéÇì…þÿÿH‹ìãHƒ=ÜîH‰µé… þÿÿH‹ÀãH‰Áîéøýÿÿ@Çvéƒèƒø‡tH�ƒ�‹‚HƒÄ[]A\A]A^A_Ãè¼ôÿÿH‹MéH‹NéH‹=OéL�$Ðè>÷ÿÿH‹/éI‰$H‹,éH‹Ðé«ýÿÿH‹éH…Àt+H‹éH‹ÐH…ÛtHÇЋS …Ò…H‰ß茱ÿÿ‹ëƒè‰ ë…ÇëéXÿÿÿH‹=ÉíèܶÿÿH‰í¸é;ÿÿÿÇíV¸Vé'ÿÿÿÇíìT¸TéÿÿÿÇÙìf¸féÿþÿÿÇÅì¸éëþÿÿDZìy¸yé×þÿÿÇ�ìH¸HéÃþÿÿljì'¸'é¯þÿÿÇuì*¸*é›þÿÿÇaì?¸?é‡þÿÿÇMì!¸!ésþÿÿÇ9ì~¸~é_þÿÿÇ%ì|¸|éKþÿÿÇì&¸&é7þÿÿÇýë,¸,é#þÿÿÇéë>¸>éþÿÿÇÕë¸éûýÿÿÇÁë ¸ éçýÿÿÇ­ë ¸ éÓýÿÿÇ™ë ¸ é¿ýÿÿÇ…ë¸é«ýÿÿÇqë¸é—ýÿÿÇ]ë¸éƒýÿÿÇIë¸éoýÿÿÇ5ë¸é[ýÿÿÇ!ë¸éGýÿÿÇ ë¸é3ýÿÿÇùê¸éýÿÿÇåê¸é ýÿÿÇÑê¸é÷üÿÿǽê¸éãüÿÿÇ©ê ¸ éÏüÿÿÇ•ê ¸ é»üÿÿÇ�ê[¸[é§üÿÿÇmê]¸]é“üÿÿH‹ë1ÒH‰ß€;$u H�{º1öè’µÿÿHcÛêHÇ8êH‰)ê¶Tÿƒâ߀úM…HÁàH‰ ê¸é3üÿÿH‹=¤êHc•ê¶LÿƒéB€ù6‡"¸ºHÓàH¹@@@@H…Èu-H¹ ºH…ÈuHºH!ÐHƒøÒƒâƒÂ1öèä´ÿÿHÇ‘éH‰‚éépÿÿÿH‹=ê€?/…Lüÿÿ€*…Büÿÿ¶êH‰ ýéÇëéAˆ$H�AH‰üé¶AÆAˆêéèIøÿÿL� ‚KL�›]L�ôgL��gé�ùÿÿH‹©éº1öH�xèA´ÿÿHÇîèH‰ßèéÍþÿÿÇÐè=¸=éöúÿÿǼè^¸^éâúÿÿǨè<¸<éÎúÿÿÇ”è%¸%éºúÿÿÇ€è/¸/é¦úÿÿÇlè-¸-é’úÿÿÇXè+¸+é~úÿÿÇDè+¸+éjúÿÿÇ0è*¸*éVúÿÿÇè>¸>éBúÿÿÇèS¸Sé.úÿÿÇôçR¸RéúÿÿÇàçQ¸QéúÿÿÇÌç&¸&éòùÿÿÇ¸ç ¸ éÞùÿÿǤ煸…éÊùÿÿÇ�焸„é¶ùÿÿÇ|烸ƒé¢ùÿÿÇhç"¸"éŽùÿÿÇTç6¸6ézùÿÿÇ@熸†éfùÿÿ¶ëçH‹ÐçM‰æAˆ$H‹ºâI)ÖH‹5¨âAƒîH‹4ð‹F8…À„Í HcŽçHFH;«çƒ H‰L$è«ñÿÿH‹|çH‹L$L� (IƒøL�>[L�—eL�0e„¤ D‰÷I‰ÖHc׃ø„E M�$L‰%MçèHéÿÿL� áHL�úZ‰ÆL�QeL�êdL‰ñé÷ÿÿÇXæ@¸@é~øÿÿÇDæ=¸=éjøÿÿÇ0æ<¸<éVøÿÿÇæ;¸;éBøÿÿÇæ?¸?é.øÿÿÇôå:¸:éøÿÿÇàå.¸.éøÿÿÇÌå,¸,éò÷ÿÿǸå-¸-éÞ÷ÿÿǤås¸séÊ÷ÿÿÇ�år¸ré¶÷ÿÿÇ|åq¸qé¢÷ÿÿÇhåc¸céŽ÷ÿÿL‹%ÿåºH�5®i1ÿèÔ¬ÿÿL‰æH‰Çè íÿÿL� ’GL�«YL�dL��céŸõÿÿÇå\¸\é4÷ÿÿHc5�åH‹ ¾åºH‹=’åè·ÿÿL� >GL�WYL�°cL�IcéKõÿÿǺäi¸iéàöÿÿƒ}â¸hÇšähéÅöÿÿÇ‹ä)¸)é±öÿÿÇwä(¸(é�öÿÿH‹å¾éŽöÿÿH‹ÿäƒìä¾éxöÿÿƒ-Ýäy Ç âH‹Öä¾éVöÿÿL‹%ÇäºH�5khéÃþÿÿÇäe¸eé*öÿÿÇðãd¸déöÿÿÇÜã¸éöÿÿÇÈã¸éîõÿÿÇ´ã¸éÚõÿÿÇ ã¸éÆõÿÿÇŒã¸é²õÿÿÇxãP¸PéžõÿÿÇdãO¸OéŠõÿÿÇPã!¸!évõÿÿÇ<ã3¸3ébõÿÿÇ(ã4¸4éNõÿÿÇã1¸1é:õÿÿÇã[¸[é&õÿÿÇìâW¸WéõÿÿÇØâA¸AéþôÿÿÇÄâb¸béêôÿÿ‹Tã�hÿƒèHcíHcØH‹IãH‰ïL�`è¬ÿÿH9ë‚0H‰ÚL‰æH‰ÇèÞ®ÿÿé]õÿÿ¶.ãHc#ãI‰ÎAˆ$L‹% ãL‰ñéºóÿÿÇKâE¸EéqôÿÿÇ7â/¸/é]ôÿÿÇ#âF¸FéIôÿÿÇâl¸lé5ôÿÿÇûám¸mé!ôÿÿÇçáL¸Lé ôÿÿÇÓáK¸KéùóÿÿÇ¿áY¸YéåóÿÿÇ«áX¸XéÑóÿÿÇ—áZ¸Zé½óÿÿǃáC¸Cé©óÿÿÇoáB¸Bé•óÿÿÇ[áG¸Gé�óÿÿÇGáD¸DémóÿÿÇ3á5¸5éYóÿÿÇáN¸NéEóÿÿÇ á2¸2é1óÿÿÇ÷à0¸0éóÿÿÇãàM¸Mé óÿÿÇÏàU¸UéõòÿÿÇ»à%¸%éáòÿÿǧà$¸$éÍòÿÿÇ“à#¸#é¹òÿÿH‹*áH�xè9ªÿÿH‰rà¸é˜òÿÿÇ^à‰¸‰é„òÿÿÇJàˆ¸ˆépòÿÿÇ6à‚¸‚é\òÿÿÇ"àa¸aéHòÿÿÇà`¸`é4òÿÿÇúß_¸_é òÿÿÇæß^¸^é òÿÿÇÒ߇¸‡éøñÿÿǾß]¸]éäñÿÿǪ߸éÐñÿÿÇ–ß9¸9é¼ñÿÿÇ‚ß8¸8é¨ñÿÿÇnß7¸7é”ñÿÿÇZßJ¸Jé€ñÿÿÇFßI¸IélñÿÿÇ2߸éXñÿÿÇ߸éDñÿÿƒáÜé�ïÿÿH‹©ß¾é)ñÿÿÇïÞ}¸}éñÿÿÇÛÞ~¸~éñÿÿH‹=rßè…¨ÿÿH‰¾Þ¸|éäðÿÿH‹=Ußèh¨ÿÿH‰¡Þ¸{éÇðÿÿH‹8ßÇ^ܾé®ðÿÿH‹ßÇEÜÇÿÞ¾é‹ðÿÿÇQÞ;¸;éwðÿÿÇ=Þ:¸:écðÿÿÇ)Þ(¸(éOðÿÿÇÞ)é@ðÿÿÇÞ{¸{é,ðÿÿÇòÝ}¸}éðÿÿÇÞÝz¸zéðÿÿÇÊÝx¸xéðïÿÿǶÝn¸néÜïÿÿÇ¢Ýk¸kéÈïÿÿÇŽÝj¸jé´ïÿÿÇzÝo¸oé ïÿÿÇfÝg¸géŒïÿÿÆéÇúÿÿH‹äØH‹åØLc%ÖÝH‹ÐL`L‰%ïÝèêßÿÿL� ƒ?L�œQHcÐL�ò[L�‹[é©úÿÿ‹ØÚH‰¹Ý¾ƒè™÷þÊé|îÿÿD‰ðI‰ÖHcÐM�$L‰%�Ýè‹ßÿÿL� $?L�=QHcÐL�“[L�,[fAƒéõÿÿ€úKuHÁà H‰ÜéîñÿÿH�=,�è¿âÿÿ€;0…Ùñÿÿ¶CƒàßÿàH‹¸H�Pü‹@üH‰ù·‰+ÖH¾T$foD$pL‰èH‹|$@HkÊ8HÒI)ÔH‹”$ A¿4$H)È@8L�h8‰ñfo„$€H‰PhH�m@Hfo„$�@XH� n¿x-£H˜¿Bò�úÄwHcÒH�5 ‰f; V„ŸH�˜k¿,BIƒÄé ýÿÿH��r¿H…Ò…µþÿÿD‹D$E…À„Gƒ|$u‹^Ù…À�b„kH�yëM9愇I¿D$þIƒìIƒí8A¿,G�ýòüÿÿt܃Å�ýÄwÑHcíH�gˆfƒèÍÊH‰D$pé£êÿÿI‹UI‹u�¿<è±ÊH‰D$pé‡êÿÿI‹UI‹u�¿è•ÊH‰D$pékêÿÿI‹UI‹u�¿èyÊH‰D$péOêÿÿI‹UI‹u�¿è]ÊH‰D$pé3êÿÿI‹UI‹u�¿èAÊH‰D$péêÿÿI‹UI‹u�¿è%ÊH‰D$péûéÿÿI‹UI‹u�¿è ÊH‰D$péßéÿÿI‹UI‹u�¿-èíÉH‰D$péÃéÿÿI‹UI‹u�¿+èÑÉH‰D$pé§éÿÿI‹UI‹u�¿%èµÉH‰D$pé‹éÿÿI‹UI‹u�¿/è™ÉH‰D$péoéÿÿI‹UI‹u�¿*è}ÉH‰D$péSéÿÿI‹u¿~èUÊH‰D$pé;éÿÿI‹EH‰D$pé-éÿÿI‹u¿!è/ÊH‰D$pééÿÿI‹uÈA‹½XÿÿÿèÊH‰D$péûèÿÿI‹EÈH‰D$péíèÿÿI‹u¿-èïÉH‰D$péÕèÿÿH‹¾ H�Pü‹@üH‰° ‰â¾I‹EH‰D$pé¬èÿÿH‹• H�PH‰Š ‹¼¾‰Ç°¾éƒèÿÿH‹l H�Pü‹@üH‰^ ‰�¾I‹EÈH‰D$péZèÿÿI‹…XÿÿÿH‰D$péIèÿÿHÇD$pé;èÿÿHÇD$pé-èÿÿI‹EÈH‰D$péèÿÿI‹…xþÿÿH‰D$péèÿÿÇtÁI‹EH‰qÁéôçÿÿÇZÁéåçÿÿÇKÁéÖçÿÿI‹}1öè éÆçÿÿH‹¯Ÿ¿0H�Pü‹@üH‰œŸI‹U‰ʽH‰T$0è¨WH‹T$0¿Ç=H‰ÅH‹BH‰E‹BH‰U ‰EH�€xH‹EŸÇEH‰EÆE(H‰T$0è\WH‹T$0Ç@HÇH‹JH‰H‰BH‰hé%çÿÿH‹ŸH�PH‰Ÿ‹5½‰Ç)½éüæÿÿ¶5½A¶U�ƒàÁâ Ј"½éÝæÿÿ¶½A¶U�ƒàÁâ Ј½龿ÿÿH‹§ž‹-áÀH�PH‰–ž‹ȼ‰Ç¼¼ƒýŽ;ƒÅ‰-²Àé}æÿÿI‹EÈH‰D$péoæÿÿI‹EóAoEH‰„$€I‹E�)D$pH‰D$xéJæÿÿI‹m�óAoEH�5DI‹EH‰ï)D$pH‰„$€èŠÿÿ…À…‘Iƒ}È„\H�5ÙCH‰ïèî‰ÿÿ…À…(I‹UÈH�5ÄCH‰ïH‰T$0èΉÿÿH‹T$0…À…#H‰”$€éÄåÿÿHÇ„$€fïÀ)D$péªåÿÿI‹EH‰D$pƒx…—åÿÿ�8…‹åÿÿH‹hL‰l$0H� +.I‰Ý1ÛH‹4ÙH‰ïèZ‰ÿÿH� .…À„vHƒÃHƒûuÛH�5ÛBH‰ïL‰ëL‹l$0è*‰ÿÿ…À„ÂH�5ÌBH‰ïè‰ÿÿ…À„—H�5ÂBH‰ïèüˆÿÿ…À„lH�5¸BH‰ïèåˆÿÿ…À…"¿Såtdè.H‰D$péÙäÿÿf„óAoE˜A¶u‘¿0I‹�XÿÿÿI‹•èþÿÿA¶E�A·m�)D$`@ˆt$0H‰L$PH‰T$XˆD$Hè›TH‹T$XH‹|$P1öHÇH� îAH‰P1ÒH‰D$Xè¡ÜL‹D$XfoD$`H‰ÂI‰@H‹P¸fA‰hH�-D¸A@ H…Àt&Hƒúu^¶t$0@ t$HtRHƒxtH‹mH‹EH…ÀuìL‰Eéäÿÿ€xuä€xuÞºH�5;~1ÿL‰D$0迃ÿÿ1öH‰Ç1ÀèãÚL‹D$0H‹mHƒ}uõëµÇD$p^é´ãÿÿÇD$p|é§ãÿÿÇD$p&éšãÿÿÇD$pé�ãÿÿÇD$pé€ãÿÿÇD$p/ésãÿÿÇD$p*éfãÿÿI‹}�H‹ü1ÉH�5GAèm:H‰D$péCãÿÿH‹¤¼1ÉH�5(A1ÿèL:H‰D$pé"ãÿÿI‹}�H‹¼1ÉH�5ü@è):H‰D$péÿâÿÿH‹`¼1ÉH�5Ý@1ÿè:H‰D$péÞâÿÿI‹E�H‰D$pI‹…XÿÿÿH‰/¼éÂâÿÿH‹#¼H‰D$pI‹EÈH‰¼é¦âÿÿI‹U�H‰ÐH‰ÁH‹H…ÀuõI‹…@þÿÿH‰I‹…XÿÿÿH‰T$pH‰ß»érâÿÿH‹Ó»H‰D$pI‹EÈH‰ûéVâÿÿóAoEÈI‹Eø)D$póAoEØH‰„$ )„$€óAoEèÆ„$¤Ç„$ )„$�é âÿÿóA~EfI:"E�Ç„$ HÇ„$€Æ„$¤)D$péÔáÿÿI‹EÇ„$ HÇD$xH‰D$pHÇ„$€Æ„$¤éžáÿÿI‹EH‰D$pé�áÿÿH‹y™¿(H�Pü‹@üH‰f™I‹•Xÿÿÿ‰‘·fHnÂfI:"EÈH‰T$H)D$0è]QH‹T$HfoD$0¿Ç!H‰ÅH‹BH‰E‹BÇE‰EH‹ø˜EH‰T$0èQH‹T$0Ç@HÇH‹JH‰H‰BH‰héãàÿÿH‹̘H�PH‰Á˜‹ó¶‰Çç¶éºàÿÿHƒ=êµt €=Õµ…£àÿÿI‹EÈÆĵH‰ɵéŒàÿÿ¶ŶA¶U�ƒàÁâ Ј²¶émàÿÿ¿è#‚ÿÿI‹UÈÆ@H‰PHÇH‰D$péFàÿÿ¿ èü�ÿÿI‹U1É€:!u HƒÂ¹H‰PI‹U�‰Æ@H‰PH‰D$pé àÿÿ¿ èÂ�ÿÿI‹U1É€:!u HƒÂ¹H‰P‰Æ@HÇ@H‰D$péÒßÿÿóAoE�I‹EÀ)D$póAoE H‰„$ )„$€óAoE°Ç„$ Æ„$¤)„$�é‡ßÿÿóAoE�I‹EÀ)D$póAoE H‰„$ )„$€óAoE°Ç„$ Æ„$¤)„$�é<ßÿÿóAoEÈI‹Eø)D$póAoEØH‰„$ )„$€óAoEèÇ„$ )„$�éùÞÿÿóAoE�I‹EÀ)D$póAoE H‰„$ )„$€óAoE°Ç„$ )„$�é¶ÞÿÿóAoE�I‹EÀ)D$póAoE H‰„$ )„$€óAoE°Ç„$ )„$�ésÞÿÿóAoE�I‹EÀ)D$póAoE H‰„$ )„$€óAoE°Ç„$ )„$�é0ÞÿÿóAoE�I‹EÀ)D$póAoE H‰„$ )„$€óAoE°Ç„$ )„$�éíÝÿÿóAoEÈI‹Eø)D$póAoEØH‰„$ )„$€óAoEèÇ„$ )„$�éªÝÿÿóAoEÈI‹Eø)D$póAoEØH‰„$ )„$€óAoEèÇ„$ )„$�égÝÿÿóAoEÈI‹Eø)D$póAoEØH‰„$ )„$€óAoEèÇ„$ )„$�é$ÝÿÿóAoE�I‹EÀ)D$póAoE H‰„$ )„$€óAoE°Ç„$ Æ„$¤)„$�éÙÜÿÿóAoEÈI‹Eø)D$póAoEØH‰„$ )„$€óAoEèÇ„$ Æ„$¤)„$�éŽÜÿÿóAoEÈI‹Eø)D$póAoEØH‰„$ )„$€óAoEèÇ„$ )„$�éKÜÿÿÇD$p-é>ÜÿÿÇD$p+é1ÜÿÿHÇD$pé#ÜÿÿI‹EH‰D$péÜÿÿºH�5A91ÿèâ{ÿÿI‹mH‰D$0H…턪foL$ H‰ïÆ5°HÇ]°HÇj°) S°è^Q€=7°„5H‹=°H…ÿtè°{ÿÿH‰ÅH…À…L¿èJ}ÿÿ‹ì¯HÇʉPH‰D$pénÛÿÿIcEH‰D$pé`ÛÿÿIcEH‰D$péRÛÿÿIcEH‰D$péDÛÿÿIcEH‰D$pé6ÛÿÿIcEH‰D$pé(ÛÿÿI‹}1öèméÛÿÿH‹“¿(H�Pü‹@üH‰î’I‹• ÿÿÿ‰±fHnÂfI:"E�H‰T$H)D$0èåJH‹T$HfoD$0¿Ç!H‰ÅH‹BH‰E‹BÇE‰EH‹€’EH‰T$0è¢JH‹T$0Ç@HÇH‹JH‰H‰BH‰hékÚÿÿH‹T’H�PH‰I’‹{°‰Ço°éBÚÿÿè )é8ÚÿÿI‹UÈH‹- ’¿(H‰T$0è.JH‹T$0Ç@HÇH‹MH‰H‰EH‰Pé÷ÙÿÿI‹}è®*ééÙÿÿI‹MÈI‹•Xÿÿÿ¿8H‹-²‘H‰L$HH‰T$0èÓIH‹L$HH‹T$0Ç@HÇH‹uH‰H‰EH‰H‰Pé”ÙÿÿH‹-m‘¿Æ¹¯èŒIÇ@HÇH‹UH‰H‰Eé^ÙÿÿH‹-7‘¿è]IÇ@HÇH‹UH‰H‰Eé/ÙÿÿH‹-‘¿è.IÇ@HÇH‹UH‰H‰EéÙÿÿÆ�²éôØÿÿÆu²éèØÿÿI‹… ÿÿÿ¶b²I�½XÿÿÿI‹uÈI‰…hÿÿÿè#—龨ÿÿ¶?²I‹uÈI�½Xÿÿÿè—風ÿÿI‹…Xÿÿÿ¶²fïÀH�¼$°I‹uÈ)„$°Ç„$àH‰„$ÀèÄ–é_Øÿÿ¶à±I‹uÈ1ÿè­–éHØÿÿI‹E¶űH�¼$°1öHÇ„$¸H‰„$°I‹EÈÇ„$àH‰„$Àèc–éþ×ÿÿI‹E¶{±H�¼$°1öHÇ„$¸H‰„$°Ç„$àHÇ„$Àè–é´×ÿÿ¿@èjyÿÿóAoEI‹U0HÇ@óAoEH‰P8@óAoE H‰D$p@(és×ÿÿ¿@è)yÿÿóAoEI‹U�H‰D$p@óAoEH‰I‹U0@óAoE H‰P8@(é2×ÿÿ¿èèxÿÿI‹UHÇ@H‰H‰D$pé×ÿÿ¿èÅxÿÿI‹UH‰D$pH‰I‹UÈH‰PéìÖÿÿÇR°I‹EÈH‰O°éÒÖÿÿH‹»ŽHƒìE1É1ÉI‹}ÈE1À1öH�PH‰žŽ‹Ь‰1ÒjjjǼ¬ è/6HƒÄ é†ÖÿÿH‹oŽ‹-©°H�PH‰^Ž‹�¬‰Ç„¬ƒýŽ ƒÅ‰-z°éEÖÿÿI‹}�H‹¢¯1ÉH�5,4èL-H‰D$pé"ÖÿÿH‹ƒ¯1ÉH�5 41ÿè+-H‰D$péÖÿÿH‹ê�1É1ö1ÿH�Pü‹@üH‰Ö�1Ò‰¬è 8éÔÕÿÿH‹½�H�PH‰²�‹ä«‰ÇØ«é«ÕÿÿH‹”�‹=þ®H�Pü‹@üH‰€�‰²«…ÿ…Ñ H‹-Ó®L‹Ä®H…íteM…Ò„€H‰\$HL‰l$PL‰d$0M‰ÔL‹mM…ä…H‹UE1ÉE1À1ÉL‰îH�=�®è¼CH‹mL‹%q®H…íuÈM‰âH‹\$HL‹l$PL‹d$0H‹K®H…Ò„~M…Ò„®H‰\$HL‰t$0M‰æI‰ÔL‰l$PM‰ÕI‹\$L‰íH‹}H‰Þèµxÿÿ…ÀuÇE0H‹mH…íuàM‹$$M…äuÏM‰ôM‰êL‹t$0H‹\$HL‹l$PH�ü©L‰d$0L‰t$HL‰l$XH‰D$`H‰\$PL‰ÓL‹-©­M…í„Ü H‹kE1äI‹}H‰îè=xÿÿ…ÀuM‹e M‹mM…íuãL‹5m­M…ö„  H‹kE1íI‹~H‰îè xÿÿ…ÀuM‹n(M‹6M…öuäH‹52­H…ö„T ƒ{0H‹{M‰éM‰àÒHƒì1Éjƒâjjèu3HƒÄ ¿@HÇñ¬è|uÿÿH‹S1ÿHÇH‰ÆH‰P1ÒHÇ@Ç@8HÇ@èê‘H‹-«¬H…íué f„H‹mH…í„ H‹sH‹}èFwÿÿ…Àuâ¿@èuÿÿH‹U1ÿHÇH‰ÆH‰P1ÒHÇ@Ç@8HÇ@èv‘ë¤H‹ýŠ‹-7­H�PH‰ìŠ‹©‰Ç© ƒýŽË ƒÅ‰-­éÓÒÿÿI‹uI‹}�èBéÁÒÿÿI‹UI‹uÈE1ÉE1À1ÉH�=¬è5Aé ÒÿÿI‹UI‹u�E1ÉE1À1ÉH�=á«èAéÒÿÿI‹m€}S…Y €}…O Hƒ=§§…YÒÿÿH�A/H‰“§éFÒÿÿI‹uI‹}ÈèyAé4ÒÿÿE‹Eº¾1ÀH�¼$ðH� t.I‹m�H‰|$0è§~ÿÿH‹|$0è tÿÿE1ÉE1ÀH‰é1ÒH‰ÆH�=«ès@éÞÑÿÿI‹uI‹m�H…ö„® E1ÉE1ÀH‰é1ÒH�=ãªèF@é±Ñÿÿ€=ꦅ¤ÑÿÿI‹EÆÙ¦H‰j‰é�ÑÿÿI‹u�M‹ME1À1É1ÒH�=¯ªè@émÑÿÿI‹u�M‹ME1À1É1ÒH�=�ªèâ?éMÑÿÿI‹u�M‹EE1É1É1ÒH�=wªèÂ?é-ÑÿÿI‹u�M‹EE1É1É1ÒH�=Wªè¢?é ÑÿÿI‹UI‹u�E1ÉE1À1ÉH�=Nªè�?éìÐÿÿI‹uE1ÉE1À1É1ÒH�='ªèb?éÍÐÿÿHƒ=ý¥t €=襅¶ÐÿÿI‹EÆ×¥H‰Ü¥éŸÐÿÿI‹}1öèäé�ÐÿÿI‹EH‰´©éÐÿÿH�#RH‰�¨élÐÿÿI‹m1ÿºH�5jè5pÿÿH‰ÇH‰î1ÀèXÇéCÐÿÿI‹uI‹}�èv?é1ÐÿÿHƒ=Q¤I‹m�I‹�èþÿÿ„+ºH�5m-1ÿH‰L$0èàoÿÿº$H�5Ç,H‰Ç1ÀèúÆH‹L$0H‰ ¤H‰-÷£éÒÏÿÿH‹»‡H�PH‰°‡‹â¥‰ÇÖ¥é©Ïÿÿ�=Ó©„= I‹M�I‹UÈI‹µXÿÿÿI‹}è±1é|ÏÿÿA‹E�HƒìM‹MÈÇŽ¥ M‹…XÿÿÿI‹µèþÿÿI‹½xþÿÿH‹ ¨PA‹E‹¯¨PAÿµ ÿÿÿèÒ.HƒÄ é)ÏÿÿI‹UH‹-þ†¿ H‰T$0è?H‹T$0HÇÇ@H‹MH‰H‰EH‰PÆ@H‹ê£H‰Û£éÖÎÿÿI‹UH‹-«†¿ H‰T$0èÌ>H‹T$0HÇÇ@H‹MH‰H‰EH‰PÆ@H‹—£H‰ˆ£éƒÎÿÿH‹l†H�PH‰a†‹“¤‰Ç‡¤éZÎÿÿ¿I‹mÈè pÿÿ€ •¤€ó~M£Æ@fH:"ÅH‰;£é#ÎÿÿI‹EÈH‰D$péÎÿÿI‹EÈH‰D$péÎÿÿHÇD$péùÍÿÿ�=#¨„¡ I‹�XÿÿÿI‹UI‹½ÐýÿÿM‹M�M‹EÈA‹µ˜ýÿÿè"é¾ÍÿÿI‹}¾è°Cé«ÍÿÿI‹uÈ¿mè­®H‰D$pé“Íÿÿ¿ I‹mè•=H�N£ÇV‹ ’£H‰D$pƒùƒÑÿH‹ÊH‰hÇ@H‰P‹r£‰PéFÍÿÿ¿ I‹mèH=H�£ÇT‹ E£H‰D$pƒùƒÑÿH‹ÊH‰hÇ@H‰P‹%£‰PéùÌÿÿI‹­Xÿÿÿ¿(fHnÅfI:"EÈ)D$0èæ<H‹UfoD$0Ç!H‰P‹UH‰D$p‰PÇ@@é§ÌÿÿI‹UÈI‹µXÿÿÿ¿L責H‰D$péˆÌÿÿI‹UÈI‹µXÿÿÿ¿K蓬H‰D$péiÌÿÿ¿ I‹mèk<H�$¢Ç‹ h¢H‰D$pƒùƒÑÿH‹ÊH‰hÇ@H‰P‹H¢‰PéÌÿÿI‹uÈ¿è­H‰D$péÌÿÿH‹íƒH�PH‰âƒ‹¢‰Ç¢éÛËÿÿÇD$p…éÎËÿÿÇD$p„éÁËÿÿI‹EH‰D$pé³ËÿÿI‹MÈL�Xu€9„ŸËÿÿL‰d$0H‰\$HH‰ËH‰Ýëff.„f�HƒÅ¶E<,tô¶ÐAöP@uê„À„;D¶eH�]E„äuë!f�D¶cHƒÃE„ätA€ü,t A¶ÄAö@@táÆH�59(H‰ïèÿgÿÿL�Èt…À…‰Æ£Dˆ#E„ä…kÿÿÿL‹d$0H‹\$HéîÊÿÿH‹ׂH�PH‰Ì‚‹þ ‰Çò éÅÊÿÿI‹uÈI‹½XÿÿÿèEŠé°ÊÿÿL‹\$H�=Ð(M‰ôL‰$訧ÿÿL‹$éÌÿÿM‰ÄéÌÿÿºH�5—'1ÿèTjÿÿH‰îH‰Ç1ÀèwÁL�téRÿÿÿH‹<‚H9D$`ƒ¢H�PøH‹@ø€=úŸH‰‚H‰ ‚uOH‹sŸE1ÉH�þ&HƒxhH�pXH�xPA•ÁE1ÀHƒxpA•À1ÉèuH‹>ŸHÇ@`HÇ€�H‹H…Û…_õÿÿL‹d$0L‹t$HH‹\$PL‹l$XÇ£ƒ-Ú£é¥ÉÿÿH‹sH…ö„H‰5Á¢é“õÿÿE1íé{õÿÿE1äé@õÿÿHƒ|$0t.ƒ=½�t%ºH�5c1ÿè8iÿÿH‹T$0H‰îH‰Ç1ÀèVÀ1ÀéÇíÿÿºH�55'1ÿè iÿÿH�µ¢H‰ÁHcÅH‰ ÂéÃòÿÿºH�5Ì%1ÿèãhÿÿH�Œ¢H‰ÁHcÅH‰ Âé öÿÿHƒ=�…ÇøÿÿHƒ=¹øÿÿéçøÿÿƒ~…¥Ýÿÿƒy…›ÝÿÿfoT$ 1É1öH‰ïÆùœH‰ %�H‰56�)�è*>€=�„`ÝÿÿH‹Þœ1ÒÇEH‰U H‰EÇEé<Ýÿÿf„ºH�5’:1ÿèhÿÿH�Æ¡H‰ÁHcÅH‰ ÂéœáÿÿL‹d$0H‹\$HéÈÿÿ1ÿºH�5þ$èågÿÿH‰îH‰Ç1Àè¿éóÇÿÿ1ÿºH�5ÝaèÀgÿÿH‰îH‰Ç1Àèã¾éÎÇÿÿH�5 %H‰ïè¯kÿÿ…Àu I‹UÈH…Ò…Ýáÿÿ1ÿºH�5€bè{gÿÿH‰ê1öH‰Ç1À蜾é‡ÇÿÿH�5S%H‰ïèhkÿÿ…Àu¦I‹UÈH…Ò…uáÿÿÆD$qé]ÇÿÿH‰n›éQÇÿÿºH�5$%1ÿègÿÿH�Ç H‰ÁHcÅH‰ ÂéêÕÿÿ¿ H‰T$0è)7H‹T$0ÇI‹ (�ƒùƒÑÿH‹ ÊH‰hÇ@H‰H‹ �‰HH‰›é¶ÒÿÿÇ¡þÿÿÿè£ÿÿé%ÒÿÿI‹…XÿÿÿH…À…Ïÿÿé ÏÿÿÆD$pé§ÆÿÿH‹„$h.dH+%(uLH�¥2¾hH�=T#èì¬L‰ÐM…Ò„µüÿÿÇ@0H‹H…ÀuñéÉñÿÿdž þÿÿÿè�¢ÿÿéÊÿÿècfÿÿL‰t$0M‰æI‰ÔL‰l$PI‰ÕH‰yŸH‰\$HéFñÿÿ¾E1Àº1ÀH�¼$ðH� `"H‰|$0è—rÿÿH‹|$0èýgÿÿH‰ÆéôÿÿH‰ßL‰ëL‹l$0èõH‰D$péËÅÿÿºH�5g`1ÿè˜eÿÿH‰ê1öH‰Ç1Àè¹¼1ÿèÂH‰D$pé˜Åÿÿ¿Råtdè®H‰D$pé„Åÿÿ¿QåtdèšH‰D$pépÅÿÿ¿Påtdè†H‰D$pé\ÅÿÿdžŸþÿÿÿè�¡ÿÿé¯õÿÿH�PHÑêH�zH‰T$0èófÿÿH‹T$0H‹5—™H�xH‰1ÒD¶HƒÆA�HÐAƒè7Aƒàƒù ACÈÁâHƒíÊ@öÅuÖˆH…í„qéÿÿHƒÇ1Òëþ(¿H‰L$0èÍpÿÿH‹L$0H�5QèH‰(H‰p H‰é²ÄÿÿH‹„$h.dH+%(…Sþÿÿè–&¿ èœ4H�UšÇH‰Æ‹–šƒøƒÐÿH‹ÂÇFH‰F‹š‰FH�eUH‰Fé°úÿÿÇržþÿÿÿ艠ÿÿéKöÿÿI‡íë €I‹EM‹mH‰CM…í„÷îÿÿI‹mL‰ãH‹sH‰ïèðgÿÿ…ÀtÔH‹H…ÛuèH‰èL‰íI‰ÅéŸîÿÿH‰-/�I‰êéqîÿÿ€óúAUI‰ýATUH‰õS‰ÓHƒì‹Ô™ÇÊœƒø ‡Ñ‰ÁH�h™‹5¶™H‰,ÊH�×–‰4ŠH‹m—H…Òt H‹5Y—H‹òH�5ö–L‰ïƒÀ‰~™H‰Ήp™è[cÿÿ¿@H‰Åèþdÿÿ�}‰hHcÿH‰ÃHÇèædÿÿL‰îH‰CH�xI‰ÄÆ è `ÿÿ1ÒH‰ßHÇC fA‰T,ƒÅ‰kH‰CÇC(HÇC4HƒÄ[]A\A]éõ£ÿÿDºH�5!1ÿè�bÿÿH‰Ç1Àèù‹͘éÿÿÿ„óúSH‰ûH‰÷HƒìH‰t$è—bÿÿH‹t$H‰ßH‰Âè×_ÿÿ…À”ÀHƒÄ[Ãf.„f.„f.„f.„f.„f.„óúH‰ñöB`uS¶l˜‹WDƒà<t÷Âu‹F$%€ =€tKƒâ@uH‹GH�;˜H‰ÎH‹€(ÿà€Ã€H‹GH�5˜H‰ÏH‹€Ðÿàf„H�9’H‰F`ë¨óúH‹Å•H‹€ðH…ÀtH‰þH‹=ß›ÿàDÀóúH‹••H‹€øH…ÀtH‰ò‰þH‹=­›ÿàÀóúH‹H‹P0H‹H‹H0¸ÿÿÿÿH9Êr1ÀH9Ñ’ÀÃff.„óúH‹?H‹6¸ÿÿÿÿH‹W8H‹N8H9Êr ¸H9Ñr‹W‹N¸ÿÿÿÿ9Êr1À9Ñ’ÀÃóúH‹?H‹6¸ÿÿÿÿH‹W0H‹N0H9Êr ¸H9Ñr‹W‹N¸ÿÿÿÿ9Êr1À9Ñ’ÀÃH‹I‰øH…Àt=H9=þ›A”Á1ö‹Hƒùw0H�=ùaHc�Hú>ÿâ€E1É1öI‰ÀH‹H…ÀuÐL‰ÀÃ@�Qùƒú wðºHÓâ÷ÂØuÐ÷€%u̓ù uÓH…ötÎH‹@HH…À„‰Hƒ¸ðtö@$LEÆL‰ÀÃH…öu˜H‹PƒztŽH‹R€:.u…€z…{ÿÿÿE„ÉtPE1Éénÿÿÿ�HƒìºH�51ÿL‰D$è„_ÿÿº¡H�5kH‰Ç1Àèž¶H‹D$HƒÄÃ@I‰ðL‰ÀÃL‰Æéÿÿÿ�L‹N8H‹F I‰ÈH‹N(I9ÁrM‰ÊI)ÂL9у�HÈL9Èu M…À…|AVSHƒì(H…Òt`H‹GHL‹º1ÿH�5#ZL‰L$H‹H‹˜àL‰D$H‰L$èÝ^ÿÿL‹D$H‹L$H‰ÚH‹t$HƒÄ(H‰Ç1À[A^éêµf.„€~PtHƒÄ([A^Ãf�ÀH‹GHÆFPº1ÿH‹H�5ïYH‹L‹°àH‰L$èk^ÿÿH‹L$H‰ÚL‰öHƒÄ(H‰Ç1À[A^éµff.„@óúHƒìH‹?è@bÿÿ…À”ÀHƒÄ¶ÀÃUH‰õH�5ÛSH‰ûHƒìè˜`ÿÿHƒøv€<*tDH�5¿H‰ßè­dÿÿH…ÀuHƒÄH‰îH‰ß[]éçaÿÿ€HƒÄH‰îH‰ß1Ò[]é=_ÿÿD€|uµ¶M¸8 uM¶M8KuD¶U8Su;¶U8Su21Àë"ff.„f.„¶LHƒÀ8Ñu¶T€ú*ué1ÀHƒÄ[]øëòf„U¾.SHƒì(dH‹,%(H‰l$H‰ýè/^ÿÿH…À„¶¶PH‰ÃH�ØföP„žH�t$H�{º è‹fÿÿH‰ÁH‹D$€8u~H�EH9Ãt%H�ùÿÿÿwl‰ÈH‹T$dH+%(uaHƒÄ([]úH�5rH‰ïH‰L$èZÿÿH‹L$…Àu¸ÿÿH)ÈH‰Áë¬�ºH�5IH‰ïèìYÿÿH‹L$…ÀuŽëÓ�¸ÿÿÿÿë�è”\ÿÿ@HƒìH‰ñH…ÿ„ÀH‰ÎèÈ[ÿÿH‰ÂH…À„×H�pH�x HÇ@HƒçøH‰ñHÇ€Ð1ÀH)ù�ÁÀÁéóH«H�B(ÇB H‰B0H�B8H‰B@H‹ÛsÇ‚¸H‹HHÇB(HÇB8H‰1Hƒ=R—H‰pH‹O—tH�HÐH‰JPH‰0H�BHH‰7—H‰ÐHƒÄÀH‰Ï¾àH‰T$H‰ $èZ_ÿÿH‹ $H‹T$H…ÀH‰Ç…ÿÿÿ1ÒHƒÄH‰ÐÃff.„óúHƒìèãþÿÿH…ÀtH‰€ØHƒÄÃf�AWAVAUATUSHƒì8dH‹%(H‰D$(1À¶Ga¨t2A½H‹D$(dH+%(…ÈHƒÄ8D‰è[]A\A]A^A_ÃfDH‰ýH‰óHƒ0u èÖ¶Ea¨u´‹<—…Àu €=.—tH‰îH�=m1Àèj¯H‹}0¾èI‰Äè(]ÿÿL‹;H�5ƒI‰ÅL‰ÿè£]ÿÿ…Àt?McäL‰îL‰ÿL‰âèÞZÿÿ…Àu²C¶D%„Àt <.u¤C€|%auœC€|%u”ff.„�A€NIL‹u0I‰® öEa„pA½E1äë^€=ƒ‘…±H‹¤�L‰d$ H�L$ L‰æH�'H�=i�ÿ„À„ÜH‹|$ H�5S�H‹Gÿ�È„À„¡L‹u0L‰æL‰÷è’cÿÿI‰ÄH…À„î¾H‰Çèicÿÿ„À…yÿÿÿ1ÿH‹]0ºE1íH�5”Tè‡XÿÿL‰âH‰ÞH‰Ç1À觯€=Ò�„OÿÿÿH‹ã“H…Ût�I‹D$XM‹´$ðH‰D$ëEf.„L‹{I‹>I‹‡ðH‹0è:\ÿÿ…ÀuH‹D$I;GX„üþÿÿ‚@ÿÿÿH‹H…Û„4ÿÿÿƒ{t¿H‹D$(dH+%(…ÓH�Ô`¾±'H�=ËècžöEa„�I‹FH�5+ŽL‰÷ÿ�ÈA‰Å„À„§€MaéªüÿÿfDL‹m0Aƒü „ Aƒü …ÚH…Û„ÑH‹}0L�=L�èW`ÿÿHÇE0H‹}1öD¶5²�L‹%ª�L‹-«�è®ïH‹?oAÀîAƒæL9øƒPH�PÆ;‹H‰oH‹ oÇ‹H‰·Y�·U`H‰înf%þf�âà Ðf‰<�H‹EH‰Á“èü³ÿÿ¶&�L‰âHǧ“€æ÷ÆÍŠÀèL‰- �L ðƒàHÁà H ÐI�W°H‰ëŒH‹ŒnH9ƒ�H�PøH‹=ˆŠH‹@øH‰mnH‰^nèùUÿÿHÇfŠ€MaéKûÿÿH‰ïèýL‹u0énþÿÿ@ºH�5dR1ÿE1íèVÿÿL‰æH‰Ç1Àè=­é7ýÿÿ„H‹]0ºH�50R1ÿèéUÿÿH‰ÇH‰Þ1Àè ­D¶maAÐíAƒåé×úÿÿ¶EaD‰êƒâÒƒàý ЈEaé»úÿÿL‹u0é_üÿÿ1ÿºH�5xQè“UÿÿL‰îH‰Ç1À趬é þÿÿºH�5Q1ÿènUÿÿL‰îH‰Ç1À葬H‹|$H‹7I‰üH…öt!�H�=S01ÀIƒÄèn¬I‹4$H…öuåH‹|$èÛQÿÿH�=1ÀèM¬é¡ýÿÿèSUÿÿH‹D$(dH+%(uëH�^¾c H�=ãè{›H‹D$(dH+%(uÃèöH‹D$(dH+%(u®èQ�AUI‰ýATUSH‰óHƒìèÛTÿÿH�xè‚VÿÿH‰ßI‰ÄèÇTÿÿH�xènVÿÿH‰ÅA¶E„À„–I�UL‰áH�5@`¶HƒÂHƒÁˆAÿ¶Bÿ„Àué¶Æ„À„{H�SH‰éH�5 `ff.„f�¶HƒÂHƒÁˆAÿ¶Bÿ„ÀuéÆH�5þL‰çèw`ÿÿH…ÀuëˆHƒÀ¶P„ÒuòÆH�5ëL‰çèP`ÿÿH…Àuëf„ˆHƒÀ¶P„ÒuòÆH�5§H‰ïè `ÿÿH…Àuëf„ˆHƒÀ¶P„ÒuòÆH�5‹H‰ïèð_ÿÿH…Àuëf„ˆHƒÀ¶P„ÒuòÆA¶$8U…‰¸ë)ff.„ff.„@A¶:Tu5HƒÀ„Òuí�D€û�L‰çè¾OÿÿH‰ïè¶OÿÿHƒÄ‰Ø[]A\A]Ãf„‰ÃëÖ@¶L‰áÆ„À…Œþÿÿ€H‰éé¯þÿÿ1Ûë®@óú‹zŠƒø„̓ø„´‹F9G…²AWI‰÷H�5uAVUH‰ýSHƒìH‹H‰ßè†Vÿÿ…ÀtoH�5^H‰ßèsVÿÿ…Àt\H�5UH‰ßè`Vÿÿ…ÀtIH�5OH‰ßèMVÿÿ…Àt6Hƒ= �t%I‹7H‰ßèdýÿÿI‹7A‰ÆH‹ïŽH‹8èOýÿÿA9Æ~H‰-ÛŽHƒÄ1À[]A^A_ÃfDƒ „Bÿÿÿ1ÀËG …Àuó‹F9Guëé4ÿÿÿff.„�óú‹Gƒø tƒø tÃfDH‹GH‰EŒÃ@Hƒ=PˆAWAVATUSH‰ût)ºH�5ø1ÿèpQÿÿºÁ H�5WH‰Ç1À芨H‹CH‰ÇI‰ÇèËPÿÿH‹�I‰ÄH…ÛuëIf.„H‹[PH…Ût6öCatñH‹{è˜PÿÿL‰æH‰ÇH‰ÅèêOÿÿ…À„bH‰ïèªMÿÿH‹[PH…ÛuÊL‰çè™MÿÿH‹5J†H…ö„�‹—ˆH‰54†…À…”L‰ÿèLXÿÿH‰u‡H‰ÇH…À„i¾Æ9‹è8Uÿÿ„À„øH‹=I‡H‹Â…‹5Ä…H‹Gÿ�˜„À„ªH‹=#‡H‹Gÿ�ÀH‰ê†H…À„I‹5_hH‹=ü†è—WÿÿH‹€„ÿPHH‹ 憀=/ˆ‹QDtZ¶ƒ†ƒà<tL€Î‰Ð$€="ˆt ‰Ð €„‰Â€äû€ÎöV†E€=ˆue%ÿÿÿ‰AD[]A\A^A_Ã@€æþ‰Ð$€=Ö‡tÀ‰Ð €ëºf.„L‹s1ÿºH�5öKè‰OÿÿH‰ÇL‰ö1À謦éuþÿÿ€ €‰AD[]A\A^A_ÀH‹5ù‰H95ê‰t H…ö…fþÿÿèH‰ÆéYþÿÿf�H�=éðÿÿètUÿÿH…À„Ë1Òƒ=Ö†•Â9P „¶H‹ˆpH…Ét 9Q „?H‰ÆH�='üÿÿè2UÿÿH‹³‹H…ÀtcH‹0H‰54„éþÿÿ€1ÿºH�5òKè­NÿÿL‰þH‰Ç1ÀèÐ¥é1þÿÿ1ÿºH�5¢Kè…NÿÿL‰þH‰Ç1À訥éãýÿÿ1ÿºH�5Kè`NÿÿH‰Ç1À膥fDH‹5±ƒé€ýÿÿ@èûOÿÿƒøtXºH�5K1ÿè#NÿÿL‰þH‰Ç1ÀèF¥H‹=Ï„éaýÿÿf.„1ÿºH�5ZKèíMÿÿH‰Ç1Àè¥é•ýÿÿH‹?ƒ1ÿºH�5à èÄMÿÿH‰ÇH‰Þ1Àèç¤é|ÿÿÿH‹1H‰5ƒéßüÿÿóúHƒ=ˆt*H‹Û�H‹€èH…ÀtHƒìÿÐ…ÀuHƒÄé¬ @ÀHƒÄÃff.„óúSH‰ùH‰óHƒì€~uSH‹B0H…Àt:H‹€ðH…Àt.H9Ët\H‹0ÆH‰Ïèóîÿÿ¶‡ƒ…Àˆ”ÀHƒÄ[ÀH9Ë”ÀHƒÄ[Ã@H‹rH‰|$H�{H‰$è²îÿÿH‹$H‹L$…ÀtŠHƒÄ1À[Ãff.„f�óúUH‰ýSHƒìö ƒu H‹¿àH…ÿtH‹GH‰óH‰îÿ�„ÀuRH‹ë‰H…Ût6H‹më„H‹H…Ût H‹{H‰îè,îÿÿ…Àuè¸HƒÄ[]Ã@HƒÄ1À[]ÀH…ÛtàH‹{@H�5J è#Pÿÿ…À•ÀëÉff.„�H…ÿ„¹AUI‰õATI‰üUSHƒìë*DƒøuI‹|$L‰îèÎÿÿÿAö…¸t1M‹$$M…ät(A‹D$ƒøt1ƒøuÌH‹=…‡L‰îè�ÿÿÿAö…¸uÏHƒÄ[]A\A]ÄI‹\$ H…Ûuë¦@H‹H…ÛtšH‹kL‰îH‰ïè©þÿÿ„ÀuåHƒ}`uÞöE$uØA€¥¸ûëÎÃff.„f�óúH…ÿ„°AUL�-Š�ATI‰ôUSH‰ûHƒìë2f.„H‰ïè˜KÿÿH…Àt(L‰âH‰ÆH‰ïè•ýÿÿ„ÀuLH‹[H…ÛtXA¾u H‹+@„öuËI‹t$H‰ïèžìÿÿ…Àt%I‹D$0H…ÀtÏH‹€ðH…ÀtÃH‹0H‹;èyìÿÿ…Àu´HƒÄ¸[]A\A]ÃDHƒÄ1À[]A\A]Ã1ÀÃóúUSHƒìH‹O†H…Ût8f.„H‹{0H…ÿt¾èýTÿÿ„Àu!öC`uH‰ßè lH‹[HH…ÛuÒHƒÄ[]ÃH‹{01öèÝTÿÿH‰ÅH…ÀtÚDH‹½ H…ÿt öG`uèÉkH‹{0H‰îè­TÿÿH‰ÅH…ÀuÕë¨óúH…ö„³ATL�%†KUH‰ýSH‰óH‰ßÿÕƒ{w_‹CIc„Là>ÿàf.„ƒ»¤ÿt H‹sH‰ïè«ÿÿÿH‹H…ÛuÁ[]A\ÃfDH‹5A…H‰ïè‰ÿÿÿH‹H…ÛuŸëÜ€ºH�5½1ÿè5Iÿÿº=H�5H‰Ç1ÀèO H‹H…Û…aÿÿÿëž�Ãff.„@óúAV…ÒAUA‰Õ•Â1ÉAT¶ÒA‰ôH‰þUH‰ýH�=„Sè²MÿÿH…À„IL‹pXH‰ÃM…ötzAƒýtAöÅ„­A�ü…… H‹«Ø¾ØH�=½ƒèxLÿÿH…À„×L‰òH�5¥ƒH‰ÇèìÿÿH…À„¼óoEH‹UH‰PH‰EL‰õH‰ƒØH‰ÃAƒýH‰kX”ÂA�ü…D‰£¼”À ¶ƒÐÁâƒà ЈƒÐH�C[]A\A]A^ÃE…äH‰Ý”ÂëD…Àx„ÒuH‹EH…ÀtL;pXuH‰Å‹…¼D9àuÛH�Eë¹DE…í…ÿÿÿ1À[]A\A]A^Ã@ºH�5,E1ÿè•GÿÿL‰öH‰Ç1À踞1ÀëÏ@E…ítĺH�5ÿD1ÿèhGÿÿH‰îH‰Ç1À苞1À뢀UH�-XISH‰ûHƒìƒ{w%‹CHcD…Hè>ÿà@H‹{èÏÿÿÿH‹[ ƒ{vÛHƒÄ[]ÃfDH‹[ëÂf�‹-IƒøwßH‹{1Ò1öèçýÿÿH…ÀtÍHƒxHuÆ‹�¬¾ƒút 1öƒú@”ÆÁæHƒÄH‰Ç[]ë$@H‹{èWÿÿÿH‹{ èNÿÿÿH‹[(éUÿÿÿDAWA‰÷H�5¶AVSH‰ûH‹@è…Jÿÿ…À„-€»¸‰ H‹CHH…À„°H‹{hH‰@`HÇ@XH‰˜˜H…ÿtèâþÿÿH‹{pH…ÿtèÔþÿÿH‹{xH…ÿtRH� T HÇÂÿÿÿÿH‰ÞèežH‰ÁHƒøÿ„á1ÀºHƒùwëf„ƒø@t HÒƒÀH9ÊrðH‹SH‰B|[A^A_ÃH‹s@H‹=u|èPHÿÿH‰CHH…À…PÿÿÿH‹s@H‹=X|D‰úè`DÿÿH‰CHH…À…0ÿÿÿH‹<|L‹s@º1ÿH�5JCH‹@L‹8è^EÿÿL‰òH‰ÇL‰þ1Àè~œH‹CHéòþÿÿD1ÿºH�5êBè-EÿÿH�5XH‰Ç1ÀèLœéªþÿÿ¸ÿÿÿÿé=ÿÿÿff.„f�óúE‰ÁE„ÀuH…ÒtzH…Étu¶5 }@„öt ‹B$3A$¨u\Hƒì(H‹:1ö1ÒDˆL$H‰L$èºûÿÿH‹L$1Ò1öH‰D$H‹9è¤ûÿÿL‹D$D¶L$M…ÀtH…Àt H‹@PI9@PA•ÁD‰ÈHƒÄ(ÃA‰ñD‰ÈÃ�óúAWI‰úI‰ÏAVA‰öAUATUSHƒìH‰T$H‹éH‹X0H…Û„ìH‰ÝE1ífDH‹uHH…ötQD‹f$M…ÿt L‰$I‹’àL‰ÑH‹=ÉzAÿ×L‹$„Àt;E1ôA�ä@u/H‹E0H…À„úI‰íH‰ÅH‹uHH…öu¯D‹¥¨E1ôA�ä@tÑH‹m0H…íuŠM…í…ÃD‰ðƒàAöƄɅÀu{1íH…Ûué�‹@$D1ðöÄ HDëH‹[0H…Û„ŠH‹CHH…ÀuÝ‹ƒ¨ëØfD‹n$M…ÿt L‰$I‹’àL‰ÑH‹=zAÿ×L‹$„Àt D1õ�å@LDëH‹[0H…ÛtH‹sHH…öu¹‹«¨ëÙ�M…í•ÂHÇD$M…ÿ”ÀE1ÿЄ þÿÿL‰íHƒÄH‰è[]A\A]A^A_ÃAöÆ„ž…À„)ÿÿÿë@% �å@ èLDëH‹[0H…Ût–H‹sHH…öt=‹n$M…ÿt L‰$I‹’àL‰ÑH‹=@yAÿ×L‹$„ÀtƉèD1ð© @u©I‰Ýëµ@‹«¨ëã„D‰ðƒàAöÆ…8AöÆ….fDA÷Æ„ƒ…À„~þÿÿH…Û„D‰ñ1ö1í�Éë&¨u AöÆ…ÿÿÿH‰Ý¾H‹[0H…Û„ðþÿÿH‹CHH…Àt$‹@$‰Â1Ê÷ÂtÅ@„ö…Ïþÿÿ�âHDëëÆ‹ƒ¨ëׄA÷Æ@„¾…À„îýÿÿH…Û„ŠE1íë%D�å@t A÷ÆLDëH‹[0H…Û„HþÿÿH‹sHH…öt?‹n$M…ÿt L‰$I‹’àL‰ÑH‹=òwAÿ×L‹$„Àt‰èD1ð©u£I‰Ýë±fD‹«¨ëá…Àu 1íéþÿÿD1ÒE1íéäýÿÿL‰íH‹D$H…À„ðýÿÿH‰(éèýÿÿA÷Æto…À„'ýÿÿH…ÛtÇE1íëLf.„‹n$M…ÿt L‰$I‹’àL‰ÑH‹=SwAÿ×L‹$„Àt D1õ�å@LDëH‹[0H…Û„^ýÿÿH‹sHH…öuµ‹«¨ëÕ…À„¸üÿÿH…Û„TÿÿÿE1íëF€‹n$M…ÿt L‰$I‹’àL‰ÑH‹=ãvAÿ×L‹$„Àt D1õƒåLDëH‹[0H…Û„ñüÿÿH‹sHH…öu¸‹«¨ëØóúS‰ûƒçuöÃu*öÃu8öà uFƒãuT[ÃfD1ÀH�=š/èJ³öÃtÖ1ÀH�=7è7³öÃtÈ1ÀH�=òè$³öà tº1ÀH�=’$賃ãt¬H�=ïþ1À[éý²ff.„f�óú¶ Æu‰øÁè‰ÊƒàÀêƒâ Â÷ÇEƒá@t÷Ç t ¸Ã€€=Cwtï÷׃ç øÃff.„@ATI‰ôUSH‰ûHƒì‹$èŠÿÿÿH‹~@H�5þ‰ÅèèBÿÿL‹C`…À”À@èt:H�soM…À„ªI9Àt ö'u…¨AºHƒÄD‰Ð[]A\ÃfDA‰ÂM…Àtæ€=ùty×H�(oI9ÀtËI‹l$HL9ÅtÁH…ítÂöÖtt¹L‹£àºH�5Ø<1ÿDˆT$L‰D$è7>ÿÿL‹D$I‰éL‰áH‰ÇH‰Ú1ö1ÀèM•D¶T$épÿÿÿf�H‰C`é_ÿÿÿ€H‹«à1ÿºH�5 <èæ=ÿÿH‰Ú1öH‰ÇH‰é1Àè•é'ÿÿÿff.„@óú€?„žAUATUH‰ýSHƒìëY@¿I‰Ýès?ÿÿI)íI‰ÄH‹fzI�}I‰D$èX?ÿÿL‰êH‰îI‰$H‰Çè6BÿÿL‰%?zBÆ(€;t5H�k€{t+H�5€üH‰ïèüCÿÿH‰ÃH…Àu”H‰ïè\=ÿÿH�\ë…DHƒÄ[]A\A]ÃÃ@óúH‹mrH…ÀtÀH‹™wH9ŠwtH…Àuãé¾ff.„óúH‹…sÇSwH‹@ƒxuH…ÿt öG'@…‚HƒìH‹5×q‹=Ùqè¼:ÿÿƒøv(¨u3‹5w�Vf.„Ñè‰ÑƒÂ¨tõ‰ ÷vƒøu HƒÄÃDºH�5Åù1ÿè=<ÿÿºò H�5$ùHƒÄH‰Ç1ÀéS“Ãff.„@óúAWAVAUATUSHƒì(dL‹$%(L‰d$I‰üHÇD$ë>f�H�5û1ÿèÒ;ÿÿH‰ÅºH�5%1ÿè¼;ÿÿH‰ÚH‰îH‰Ç1ÀèÜ’H‰ßèT8ÿÿH�L$H�T$ L‰çH�t$è�>ÿÿH‰ÃH…Àt%‹D$ º…Àu˜H�5¼ú1ÿèj;ÿÿH‰Åë–D‹|$�ÿt(è;ÿÿH�5p:1ÿºH‰Ãè9;ÿÿH‰ÞH‰Ç1Àè\’M…ätL‰çèÏ9ÿÿ=t(H‹D$dH+%(uCHƒÄ([]A\A]A^A_Ãf„1ÿºH�5cøèÝ:ÿÿº©H�5Ä÷H‰Ç1Àè÷‘ë­è;ÿÿóúHƒìH‰þH‹=Fq1ÉA¸ºèÜ=ÿÿH‰ÁH…ÀtD€ytHƒÄÃf„·AHÇA(H‰ÎH‹=qf%þf f‰AHƒÄé…=ÿÿDºH�5”91ÿH‰D$è8:ÿÿH‰Ç1Àè^‘H‹L$ë“€óú‹–w…À„îƒèATUSƒøw2H‰ûH…ÿt%‹CƒøtjwPƒøtƒø u H‹{è½ÿÿÿH‹H…ÛuÛ[]A\úH�5E÷1ÿè½9ÿÿ[]ºIH‰ÇH�5Ÿö1ÀA\éÓ�ƒøu¾H‹=tuèoÿÿÿë°DH‹k@H…ít¢ff.„@L‹eH�5ºøL‰çèm=ÿÿ…Àt(H�5­øL‰çèZ=ÿÿ…Àt‹E8ƒøtNƒøt1…ÀtÆCbH‹mH…íu¸éFÿÿÿÀ‹’v‰E8ëØDƒ=�vuÊÇE8ëÁfDƒ=ivu²ÇE8ë©ff.„óúAWAVAUATUSHƒìH‹/H…íteI‰ýI‰üE1ÿ1Û‹Eƒø tcƒø„̓ø„ÙM‹$$I‹,$H…íuÙH…Ûuë,ff.„f�H‹[0H…Ût¸þÿÿÿ+ƒ¤‰ƒ¤I9ßuáHƒÄ[]A\A]A^A_Ãf�M…ÿt/I9o0t)ºH�5ªõ1ÿè"8ÿÿºRH�5 õH‰Ç1Àè<�¸þÿÿÿ+…¤I‰ï‰…¤H…Û„oM‹$$I‹,$H…í„Zÿÿÿ‹Eƒø t›ƒø…3ÿÿÿH�}èôþÿÿé.ÿÿÿ€€=)nˆSH‹}1Ò1öèžîÿÿH‰ÇH…À„Û€}…ÈL‹!sM…ÿ…øI9ø„OèúÖÿÿI‹$I‹MH‹I‰UH‹I‰$H…Ò„H‰I‹mH‰êH…í„çþÿÿ‹EE1ÿ1ÛM‰ìƒø …�þÿÿ¸þÿÿÿ+…¤I‰ï‰…¤H‹mH…í„‹EI‰ÔH‰Óƒø …Nþÿÿé±þÿÿff.„ff.„fDD‹‡¤E…À‰8ÿÿÿH‹8H…ÿuçH‹]H�5Œ61ÿºè 6ÿÿHƒÄH‰ÞH‰Ç[1À]A\A]A^A_éµ�DH‹S8I‹G0H‰B0H…À„kH‰P8H‹G0I‰G0H…À„FL‰x8H‰{81É1ÒH‰_0fD¸þÿÿÿ+ƒ¤‰ƒ¤H‹CHH…ÀtHƒ¸àt H…ÒH‰ÁHDÐI9ßt H‹[0H…ÛuÄH…ÉtdH‹wHH9ñ•ÀH…ö„„ÀtMH‹BL‹IH…À„jL‰HM…É„JI‰AHƒ¾à„ H‹FH‰AH…À„MH‰HH‰rH‰VI9ø…#þÿÿI‹<$éþÿÿf„M‹$$I‹,$H…í„‹EL‰ûƒø …½üÿÿé ýÿÿ1ÿºH�5Â4èE5ÿÿH‰Ç1ÀèkŒé‹ýÿÿfDL‰%AhéÙýÿÿ@H9_0…§ýÿÿë‚@I�G0H‰­pé®þÿÿHƒÂ0H‰�pé‰þÿÿL‰ûédüÿÿH‹G8H…À„@ÿÿÿff.„‹°¤…öx H‹pHH…öuvH‹@8H…ÀuäéÿÿÿH‹5hkH‹†�H‰AH…Àt\H‰HHÇBH‰–�éåþÿÿL‹ 9kI‰�˜é§þÿÿL‹&kM‰Š�é‡þÿÿH‹kH‰ˆ˜é¤þÿÿH9ñ•ÀéPþÿÿH‰Ž˜ëŸóúAWAVAUATUSHƒìHH‹=×jèr@ÿÿ‰ÁH‹ÉjH‹˜�H…Ûtmƒé¸HÓàH�lÿff.„f�öC$t:H‹K0H‹C@H�H!êt H!éH9Ê‚ÍH‹S8HÐH!ètH!êH9ЂÝDH‹[H…Ûu·H‹Pj‹€¨ƒø†y‰ÇE1ÿHÁçèS5ÿÿH‰ÇH‹)jH‹˜�H…Û„f„‹C$¨t'%=tHƒ{@tL‰øIƒÇHÁàH‰ÆDH‹[H…ÛuÉIƒÿ†ÉH� ÒÿÿL‰þE1öE1äºH‰|$1íè>1ÿÿH‹|$E1ÒH‰\$L‰T$H‰|$I‰ýH‰|$ ëDI‰ÄI‹]H‰ßèéõÿÿöC$t=‹ EmH‹C@L‹[8HÓèI�LÿM…ötH‹D$L9؃ÓH9è‚ÊH‰L$L‰ÝI‰ÞI�D$IƒÅI9Çu H‹|$ ºL‰þH� ¤ÑÿÿL‹l$H‹\$H‰|$è�0ÿÿH‹|$H‹L‹z0ºë!ff.„ff.„€HƒÂH‰ÑL‰øHÁáH‹ L‹y0I9ÇtzI9ÔuàL‹t$H‰|$1íL‰d$ë DHƒÅI‰ÜI‹]H‰ßèõôÿÿH‹C@M‰ùL‹{0‹ LlM‰óHÓèM�tÿM…ätA€}uM9ûƒaM9Ë‚XIƒÅH9l$u¨H‹|$è&.ÿÿH‹—lH…Ûuë`„H‹[H…ÛtO€{PtñH‹k8H‹C(A¸1ÿHC L‹#H�#2H�5L2H)ÅH‰éèá9ÿÿH‰êL‰æH‰Ç1ÀèAˆH‹[H…Ûu±HƒÄH[]A\A]A^A_Ãf„L‹#ºH�5á01ÿèÚ0ÿÿL‰æH‰Ç1Àèý‡é(ýÿÿL‹#ºH�5ñ0ëÖM‹1ÿºH‰L$8H�51L‰\$0L‹3L‰D$(è�0ÿÿI‰éL‰öWH‰Ç1Àÿt$L‹\$@H‹L$HL‹D$8L‰ÚH‰L$8L‰\$莇AÆEAXAYL‹\$H‹L$(éÅýÿÿHƒÄH[]A\A]A^A_éã,ÿÿM‹$º1ÿL‰\$(H�5Ì0L‰L$ L‹#L‰D$è 0ÿÿL‰ñL‰æRL‹\$0H‰ÇL‰ú1ÀASL‹L$0L‹D$(è‡Y^éSþÿÿff.„óúHƒìH‹ ñlH‹âlH‰úH‰ÎH)ÆH9þrTH‹5ÅlHÐH9ðt{H‹ÖlI‰ÈHÐH÷ÒH!ÐH‹›lH‰ÇH)×I)ÐI9øHBÁfHnÀH‰ðflÀ)€lHƒÄÃH‰þH‰|$H�=YlèdH‹elH‹T$H‹5QlH‹ ZlHÐH9ðu…€ {léyÿÿÿfDAUºATI‰üUSHƒì(dH‹%(H‰\$H‰óH�t$H‰ßè°+ÿÿI‰ÅH‹D$€8…ŸH‹0kI�l$H…Ûué±f„H‹H…Û„œH‹{H‰îè¨2ÿÿ…ÀuäL‰k¿(è¶þÿÿH�od¿(ÇH‰Å‹«dƒøƒÐÿH‹ÂL‰mHÇE H‰E‹�dÇE‰EL‹-:FèeþÿÿÇ@HÇI‹UH‰I‰EL‰`H‰hH‰X 鸿 è.þÿÿ¿(ó~YjL‰hÆ@fH:"ÅH‰@jH‰D$èþýÿÿH� ·c¿(ÇH‰Ã‹ócƒøƒÐÿH‹ÁL‰kHÇC H‰C‹×cÇC‰CH‹-‚Eè­ýÿÿH‹T$Ç@HÇH‹MH‰H‰EL‰`H‰XH‰P H‹D$dH+%(u8HƒÄ([]A\A]Ä1ÿºH�5r.è-ÿÿH‰ÞH‰Ç1Àè@„é<þÿÿèF-ÿÿfDóúAWAVAUI‰ÍATI‰ÔU‰õSH‰ûHƒìƬhH…ÿ„–L‹5|hM…öué…f�M‹vM…ötzI‹>1ÒH‰Þè*.ÿÿ…Àuæ€=0itSI‹H�5]ëM‹~H‰ÇH‰$èC3ÿÿºH…À„ùM…ÿ„0H�5Õ-1ÿè^,ÿÿH‹ $L‰úH‰ÞH‰Ç1Àè*�I‹^H…Û„=fHnÓL‹=1D¿pòÊ) $èOüÿÿfïÀHÇI‰ÆÇ@I‹GL‰0·\bM‰wf%èAFPAF`IÇF(M‰fXfA‰F`IÇF AF0AF@ƒý‡ÃH�ë-HcªHÐ>ÿàDfo<$A€NaA~f„H‹QgL‰0I�FPH‰CgHƒÄL‰ð[]A\A]A^A_Ãf„fo$fA�N`A^ë½Dfo,$A€N`Anë§€fo$$Afë”@fo4$AvM…ít€;/uDfA�N`épÿÿÿE1öë€H‰Ø€;:„›I‰F1ÒH‰ÞH�=Xê1Àè(,ÿÿfA�N`I‰Fé8ÿÿÿL‰ïè@.ÿÿH‰ÃI9ÅrëfDHƒëI9Ý„«€{ÿ/tíI9Ý„œL‰ïL)ëèé5ÿÿÆI‰F(épÿÿÿM…ÿt_1ÿH�5F,èi*ÿÿL‰úH‰ÞH‰Ç1Àè9é þÿÿ€{„[ÿÿÿA€N`H�CéMÿÿÿ1ÿH�5Û+è.*ÿÿH‹$H‰ÞH‰Ç1Àèý~éÎýÿÿ1ÿH�5péè *ÿÿH‰ÞH‰Ç1ÀèÝ~é®ýÿÿH�=%èL5ÿÿébÿÿÿ€óúS‰óHƒìH…ÿt(€?=„§ºH�57éH‰|$è1'ÿÿH‹|$…ÀtH‹ ‘fHƒÄ‰Þ1Ò[é“üÿÿ¸H�4H‹=f1Ò1ÀèÇ*ÿÿ1Ò‰Þ1ÉH‰Ç¶Ç_A‰Àƒà÷AÀ舷_AƒàDˆD$èIüÿÿD¶D$H‰Â¶™_AÁàƒà÷D Àˆ‰_HƒÄH‰Ð[øëŽf„óúAWA‰ÿ¿rAVAUATUSH�ìdL‹4%(L‰´$I‰öHÇD$Hè±*ÿÿ¿ H‰D$`è¢*ÿÿ¿ H‰D$Xè“*ÿÿE1À1ö¿H‰D$PH‹D$`Æ-H�¥ÑL�ˆ4ff.„¶P „Òt"L‹T$`HcÏAˆ ‹H�WD�QÿAƒú†h‰×Hƒ8t)ƒx8„†foHcÖƒÆHÁâHT$Xfo@BHƒÀ@L9ÈužH‹T$`HcÇÆHcÆHÁàHD$XHÇIcÀHÁàHD$PHÇH‹5\H‹€¨H…Àt‰òH�L$XL�L$PH�t$`ÿÐI�^¾H�=†1H‰ÚAƒÿwé „HƒÂ‰ÎH‹ ¶ƒè-u ¶AƒèGu¶A�N…ÀuD9ùs H‹B¶öGuÉH�çæH‰A9Ïuº�FÿI�lÆë HƒÃH9Ý„¨H‹;€?-uë€luå€tßèZ'ÿÿH�xè)ÿÿH� ¨æ¾HÇÂÿÿÿÿI‰ÄH‹L‰çL�@1Àèº3ÿÿL‰#ë¥DL‹T$`HcÒAÆ:�Wƒù…þÿÿH‹L$`HcÒƒÇÆ:émþÿÿfoIcÐAƒÀHÁâHT$Pfo@BétþÿÿH�D$D½ÿÿÿÿÇD$ ÇD$$HÇD$ÇD$H‰$ff.„�‹¢TÇD$D9ët.H‹—ZH‹€ H…ÀtL‰öD‰ÿÿЄÀuÏ‹qTf„L‹$H‹L$XL‰öD‰ÿÇçXH‹T$`è)ÿÿ‰Åƒý?tf‹L$D…Éu ƒý �}H‹.ZH‹€°H…Àt‰ïÿЄÀt ‰Ýécÿÿÿƒýÿ„�ý.‡åH�5ð'Hc®Hð>ÿàf.„L‹$H‹L$PL‰öD‰ÿH�E‰¼Sèß%ÿÿ‰Åë†HcÃM‹$ÆA¾D$9ètrHƒ=¿SºtHH�59'1ÿè:%ÿÿL‰âL‰æH‰Ç1ÀèZ|H‹sYH‹€°H…À„\ÿÿÿ‰ïÿЄÀ„Pÿÿÿ‰Ýé þÿÿH�51'1ÿèò$ÿÿL‰æH‰Ç1Àè|H‹.YH‹€°H…Àu¿�ý.†ÿÿÿºH�5:'1ÿ‰Ýè±$ÿÿH‰Ç1Àè×{éBþÿÿH‹|$PèH!ÿÿH‹|$Xè>!ÿÿH‹|$`è4!ÿÿH‹­\H…Ûtn€;„…H�53H‰ßèp(ÿÿ…ÀtR¾%H‰ßèï$ÿÿH…À„H+ÆH�H€xuH� ÉæH‹#<H‹5T\H�=§æ1Àè†ûH…ÀtH‰:\H‹Ó[H…Àt €8„Ì‹|$‹l$H�vY…ÿtJf�ºH�5´C1ÿèÍ#ÿÿH‰Ç1ÀèózH‹Ä;H9æ:H�PøH‹@øH‰¬;H‰�;ƒíu¸H‹D$H‰ÃH…Àuë>f„Æ€;…zH�X¾:H‰ßè$ÿÿH…ÀuÞ€;…H‹|$èûÿÿ€=¶Y?w¶­Yƒà?ƒÈ€ˆ¡Y¶›Y¨„@¶‰YH‹D$H‰Ñƒá€ù„7H…À„tH‹8öÂ…ôH‹5bZH…ö„­H‰øff.„H‰ÁH‹H…ÀuõH‹H‰H‰>ƒ|$ „t€ Y€=ÍZt‰Ðƒà<„%!€ þXÀ÷Ò€âtNHƒ=fZt1ÿºH�5ÎBèi"ÿÿH‰Ç1Àè�yHƒ=GZt1ÿºH�5×BèB"ÿÿH‰Ç1Àèhy·¡Xf%Àf=À„¬H‹„$dH+%(…¢7H�Ä[]A\A]A^A_þH‰ßH‰$è)¹H‹$élþÿÿƒàüƒÈˆGXé¯þÿÿ€=~YˆsH…Àt4H‹8H‹H…ÛuëH‰ÃèXÿÿH‹H‰ßH…ÀuíH‹D$HH‰Çè@ÿÿ¶ùW‹D$ ƒø„?ƒø„Âþÿÿ‰Ð÷Ш„)!€=ŠY…¹þÿÿéÏþÿÿ€ ÃW€¶·W¨t4÷ÐH�-�ð¨uH�-µàH�5 <1ÿºè!ÿÿH‰îH‰Ç1Àè?x¶xW€%aWß‰ÝÆ YƒàüÆþXƒÈÆYˆNWéyúÿÿH‹ªXL‹%;OH‰D$L‰çH…À„jèå ÿÿ¶ÙXL‹l$‰\$(L‰t$0H‰ÅM‰î¾ÚA‰Õ@H‰êL‰öL‰çèÿÿ…ÀuA¶.„À„Ÿ!D8è„í%‰ÞL‰÷èþ ÿÿH…À„q&L�p뿾H‰ßè‚·éèüÿÿ€ §Vé€ýÿÿH‹5šNH�=â‰Ýè ñÿÿé·ùÿÿ€ €V‰Ýé©ùÿÿH‹rN€%sVï‰ÝH‰ºWé�ùÿÿH‹VNH��W€:uH‹ £WH…Ét €9…h#H‰P ‰ÝéZùÿÿ9üM„u%¶V¨t4÷ÐH�-ðî¨uH�-ßH�5€:1ÿºè|ÿÿH‰îH‰Ç1ÀèŸv¶ØU€%ÁUß‰ÝÆkWƒàüÆ^WƒÈÆhWˆ®UéÙøÿÿfÇNW‰ÝéÉøÿÿºH�5Í>1ÿèÿÿH‰Ç1ÀèU„ƶ�Sƒà<„a&¶}S‰ÝƒàüƒÈˆoSéšöÿÿ€%cSü‰ÝéŒöÿÿH‹-UKH�5ÆÝH‰ïèæ ÿÿ…À… ·9S‰Ýf%?üf @f‰(SéQöÿÿ€ S‰ÝéCöÿÿ€ S‰Ýé5öÿÿ€ SHƒ=ÞT…¶öÿÿHÇÍTý‰ÝéöÿÿH‹=×JH�t$h1Òèû%ÿÿH‰ÅH‹D$h€8…LH‰-ÓS‰ÝéÜõÿÿ¿PL‹% JH‹-¡Xèÿÿ¹¾I‰Å1ÀL‰ïó«M‰eL‰çè4 ÿÿI‰EH…À„%H…턱I‹Eë„H‹mH…í„–H;EuíºH�5ìÜ1ÿ‰Ýè¸ÿÿL‰æH‰Ç1ÀèÛrL‰ïèSÿÿé>õÿÿ€% Rû‰Ýé0õÿÿ¶ýQ‰ÝƒàŸƒÈ ˆïQéõÿÿHƒ=ÞX„,H‹-ÑI€}-u'€}-„a$H�}º H�5±Üè¼ÿÿ…À„jõÿÿ¿è ÿÿH‹‹XH‰h1íH‰(‰ÝH‰H‰vXH‹wXHƒ@ é�ôÿÿÆVS‰Ýé�ôÿÿH‹XI‰ÝH‰ßRézôÿÿÆ“R‰ÝélôÿÿH‹55IH�=.Q‰Ýè—êéRôÿÿ¿‰Ýè†ÿÿfoþPH‰ÿPé/ôÿÿH‹=ðPH…ÿ„ýóo‰Ý)ÒPèÿÿéôÿÿ€ ×P‰ÝéúóÿÿÆR‰Ýéìóÿÿ¿L‹%°HèkêÿÿH‰ÅH‹�OL‰çH‰EH‰-sOèNÿÿHƒ=ÖPH‰EtH‰ÇèHßÿÿ¿è.êÿÿL‰çH‰ÅH‹yVH‰EèH%ÿÿH‰EH‰-eV‰ÝévóÿÿH‹-?HH�5ÜH‰ïèÀÿÿ…À…¥E1Û‰ÝD‰ÄQéGóÿÿÆbQ‰Ýé9óÿÿÆõQ‰Ýé+óÿÿÆçQ‰ÝéóÿÿÆÚQ‰ÝéóÿÿÆÌQ‰ÝéóÿÿÆpQ‰ÝéóòÿÿÆiQ‰ÝéåòÿÿH‹=®GH…ÿ„I1Ò1ö‰ÝèÊ"ÿÿ‰lQé¿òÿÿH‹=ˆGH…ÿ„;1Ò1ö‰ÝèÔÿÿH‰MQé˜òÿÿH‹=aGH�t$pèwÿÿ…Àˆøÿÿ‹„$ˆ%ð=@„ï÷ÿÿH‹=1G¾‰ÝèÕîÿÿéPòÿÿ€ O‰ÝéBòÿÿH‹ G‰ÝH‰:Ué-òÿÿ€ üN‰Ýéòÿÿ€%îN÷‰Ýéòÿÿ€ ÚN‰ÝéòÿÿH‹=H�5ЉÝ�P‰“MèZ¬ÿÿÇDè+mÿÿé–éÿÿH‹=_>ƘLH…ÿ„êÿÿèj ÿÿ‰Å…À„F‰ï‰Ýèçÿÿébéÿÿ€ 3F‰ÝéTéÿÿH‹=>‰ÝèÖÿÿH‰WGé:éÿÿÇTG‰Ýé)éÿÿÇCG‰ÝééÿÿÆ"G‰Ýé éÿÿ€ ÕE‰ÝéüèÿÿHƒ=üEH‹-½=„éH‹=èE¹ºH‰îèÿÿH…À…[éÿÿºH�5i,1ÿ‰ÝèÿÿH‰Ç1Àè6fé¡èÿÿH‹-j=H�5 ÜH‰ïèûÿÿ…À„éÿÿH�5¯ÎH‰ïèäÿÿ…À„éÿÿH�5¦ÎH‰ïèÍÿÿ…À„ëèÿÿH�5šÎH‰ïè¶ÿÿ…À„ÔèÿÿºH�5r1ÿè‹ÿÿH‰î‰ÝH‰Ç1Àè¬eéèÿÿ€ ÐD ‰Ýé èÿÿƒöJ‰Ýéûçÿÿ¿L‹%¿<èzÞÿÿH‰ÅH‹�CL‰çH‰EH‰-‚Cè]ÿÿHƒ=åDH‰E„QèÿÿH‰Ç‰ÝèQÓÿÿé¬çÿÿH‹=u<‰Ý莫é™çÿÿ€%bD÷‰Ýé‹çÿÿH‹T<‰ÝH‰ FévçÿÿÆJ‰Ýéhçÿÿ€%4Dï‰ÝéZçÿÿÆgE‰ÝéLçÿÿÆZE‰Ýé>çÿÿÆ7J‰Ýé0çÿÿ€%éC߉Ýé"çÿÿ€%ÜCþ‰ÝéçÿÿH‹Ý;‰ÝH‰ÌBéÿæÿÿE1À‰ÝD‰ÛCéîæÿÿÇÌC‰ÝéÝæÿÿ¶§CH‹-Ÿ;ƒàÀ<€„ÉH�5vÖH‰ïè¥ÿÿI‰ÄH…À„+$¿(èßÿÿH‹5ˆ$ºH‰ÇH‰‰CèÔÿÿ„À„N ¿dè²ÿÿL‰çH‰D$èõÿÿƒøÿ„¶D‰|$0A½dD¶ÀH�-v‰\$(H‹\$L‰t$8A‰ÆDMcÈBöDM@t#DL‰çè¨ÿÿ¶ÐöDU@uîA‰Æƒøÿ„ìE1ÿD‰ðë-f.„L‰çèxÿÿ¶ÐD¶ÀöDU@…‚ƒøÿ„ÌBˆ;IƒÇM9ïrÐMíH‰ßL‰îè ÿÿH‰Ãë½€ {B‰ÝéŸåÿÿ¶jB‰ÝƒàüƒÈˆ\Bé…åÿÿH‹=N:1Ò1ö‰Ýèsÿÿ‰íBéhåÿÿ€ 9B ‰ÝéZåÿÿ¿èPQH‹=:Æ4HÆ,HÇ©#þÿÿÿH…ÿ„¾åÿÿH�t$h1ÒèÿÿH‰ÅH‹D$h€8…µƒí‰ÝŸïGéúäÿÿ¶ÅA‰ÝƒàüƒÈˆ·AéàäÿÿH‹-©9H�5‚ÍH‰ï誨ÿÿ„Àt HƒÅH‰-‹9H‹|$èÁÿÿH‰ï‰Ýè7 ÿÿH‰D$é�äÿÿH‹-f9H�5ÙH‰ïè÷ÿÿ…À… €%8A߉ÝéqäÿÿH‹-Ê"¿L‹%.9èéÚÿÿ1ÒÇ@ H‰H‹UH‰H‰E‰ÝL‰`é7äÿÿè2̉݃D$é&äÿÿƒ|$„‚ H‹|"H�ý?H9ƒ¨!H�PøH‹@øƒl$‰ÝH‰V"H‰G"éâãÿÿHcÃL�%HH�-A³M‹,Æë(ff.„ff.„DHƒí@I9섃ƒ½È3uêH‹µÀ3H…ötÞ‹½ø3Lïèð ÿÿ…Àu̺H�5kÉ1ÿèÉ ÿÿL‰îH‰Ç1Àèì`éñäÿÿH‹ 8‰ÝH‰�AéBãÿÿH‹= 8H�t$h1Òè/ÿÿ‰¥!H‹D$h€8„±ãÿÿH‹-ä7ºH�5gÉ1ÿèa ÿÿH‰ÇH‰î1À‰Ýè‚`éíâÿÿH‹=¶71ö‰Ýè]ßÿÿéØâÿÿ1ÿ‰ÝèÏNƺEéÃâÿÿ¿‰Ýè·NÆ¢Eé«âÿÿ€%d?ß‰ÝÆAÆAé�âÿÿH‹=X7¾‰Ýè éwâÿÿH‹=À@H…ÿ„�H‰ú1ÀHƒ?t HƒÂƒÀHƒ:uó�hE1äHcíHÁåH‰îèš ÿÿH‹7H‰|@H‰T(ðL‰d(ø‰ÝéâÿÿH‹=ä6¾‰ÝèˆÞÿÿéâÿÿ€ Ó> ‰Ýéõáÿÿ€ Å>‰Ýéçáÿÿ€%·>ï‰ÝéÙáÿÿÆÓD‰ÝéËáÿÿÆÅD‰Ýé½áÿÿH‹=†6¾=è¬ÿÿH‰ÅH…À„öI‰íL+-f6I�}èÍ ÿÿH‹5V6L‰êI‰ÄH‰Çè¨ ÿÿCÆ,H�uL‰ç‰ÝèUžL‰çèmÿÿéXáÿÿH‹=!6H�5Ñè5ÿÿH‰D$(H…À„+¿A‰Ü½èe ÿÿH‹\$(L‰t$0I‰Æ„D‰d$M‰ôëDfDH‰ÇL�eÿè„ÿÿH‰ÂL‰àL)èH9Â…"A€|.þ „HíL‰÷H‰îè(ÿÿI‰ÆIÄM‰å‰îH‰ÚL‰çM)õD)îèü ÿÿH…Àu§M9æD‹d$„~¾ L‰÷èŒÿÿH…Àtƾ#L‰÷èwÿÿH…ÀtÆL‰÷ë-ff.„ff.„@¹€H£Áƒ‹HƒÇ¶�B÷<vã„Ò…ÖH‰ßèó ÿÿ…À„ ÿÿÿM‰õL‹t$0D‰ãL‰ï‰ÝèÿÿH‹|$(èüÿÿé÷ßÿÿ€ À<€‰ÝÆú=éâßÿÿH‹=«41ö‰Ý袞Ç(:èScÿÿé¾ßÿÿÆÇ=‰Ýé°ßÿÿH‹y4ÆN;‰ÝH‰Q;é”ßÿÿ¶d<‰ÝƒàóƒÈˆV<ézßÿÿH‹ó:H‹=<4¾‰ÝH‰æ:è)žÇ¯9èÚbÿÿ1ÿH‰=É:é<ßÿÿH�`ç‰ÝH‰¼=é'ßÿÿ¶ñ;‰Ýƒà?ƒÈ@ˆã;é ßÿÿE1Ò‰ÝD‰T$$éþÞÿÿÇD$$‰ÝéïÞÿÿÆþ<é�ãÿÿÇD$ ‰ÝéÔÞÿÿH‰¥<élâÿÿ„D‹d$éþÿÿH‰ø€ú �=€ú  €ú …8ÆH�pë¹€H£ÑƒCHƒÆ¶�P÷€úvâ„À…_ L‰öH�=p"1Àèé[é)þÿÿBÆ;¹H‰ÞA‰ÆH‹==;ºD‰D$èn ÿÿD‹D$H…À„LAƒþÿ…æ÷ÿÿD‹|$0L‹t$8H‰\$‹\$(ë[H‰\$H‹D$M‰ý¹º‹\$(D‹|$0BÆ(H‹=Õ:H‰ÆL‹t$8è ÿÿH…Àu1ÿºH�5•èÿÿH‰Ç1Àè6[€=p:?‡?H‹|$‰Ýè�ÿÿ¶W:L‰çƒà?ƒÈ€ˆH:èrÿÿémÝÿÿ€ú „Èþÿÿ¶PHƒÀ„Ò„êþÿÿ€ú=…˜þÿÿ„Ò„Ùþÿÿé¢þÿÿH‰òëf„¶BHƒÂ„Àt<=tƒè <wé¹€H£ÁsÞÆèö™éÖüÿÿÇw;‰ÝéðÜÿÿè{ÿÿ‰ÝH‰;éÝÜÿÿH‹^M�EL‰-S‰ÝL‰-’@L‰(L‰€@é³ÜÿÿH�5eÅH‰ïèÿÿ…À„ŽH�5DÂH‰ïèíÿþÿ…À…€Çó:‰ÝétÜÿÿHÇ;‰ÝébÜÿÿH�5®ÃH‰ïèÃÿÿ…À„ H�5¢ÃH‰ïè¬ÿÿ…À…W·ÿ8‰Ýf%?üf @f‰î8éÜÿÿ¶á8ƒà?ƒÈ@ˆÕ8¶Ï8¨…2àÿÿƒÈˆ¾8é$àÿÿH�5ˆÅH‰ïèHÿÿ…À…»Ç¦?‰Ýé¿ÛÿÿÆ>:‰Ýé±ÛÿÿH�5ƒÄH‰ïèÿÿ…À…ÕÆY:‰ÝéŒÛÿÿÇ*:€‰Ýé{ÛÿÿH�5[ÁH‰ïèÜÿÿ…Àt:H�5'âH‰ïèÉÿÿ…Àt'ºH�5a1ÿè¢ÿÿH‰î‰ÝH‰Ç1ÀèÃXé.Ûÿÿ€ ç7 ‰Ýé ÛÿÿºH�5)ÁéŸ÷ÿÿ1ÿºH�5�!è\ÿÿH‰Ç1Àè‚X¶»7é²Þÿÿ¿E1í‰ÝèÿÿH‹ /H‰9H‰L‰hé½ÚÿÿºH�5¤Â1ÿ‰ÝèÿÿH‰Ç1Àè.Xé™Úÿÿ1ÿºH�5cèæÿÿH‰Ç1Àè Xé\öÿÿºH�5+1ÿ‰ÝèÂÿÿH‰Ç1ÀèèWéSÚÿÿ1ÿºH�5õè ÿÿL‰æH‰Ç1ÀèÃWé–îÿÿ1ÿºH�5Øè{ÿÿH‰Ç1Àè¡Wé�óÿÿH‹-Õ.ºH�511ÿèRÿÿH‰ÇH‰î1À‰ÝèsWéÞÙÿÿ‹D$$ƒøt,ƒø…’H¸H ‹6€=>8„ÖÝÿÿé·þÿÿH‹z7ƒÊˆi6H…À„FÝÿÿH‹8ë H‹è“üþÿH‰ßH…ÿuðH‹=L7èüþÿ1ö¶66H‰577éÝÿÿ1ÿºH�5\è§ÿþÿH‰Ç1ÀèÍVéŸûÿÿH‰ï‰Ýè¾ÿÿH‰g7é"ÙÿÿºH�5‰ÝèoÿþÿH‰Ç1Àè•VéÙÿÿºH�5Á1ÿ‰ÝèKÿþÿH‰Ç1ÀèqVéÜØÿÿºH�5vÀ1ÿ‰Ýè'ÿþÿºH�5mÀ1ÿH‰’;è ÿþÿH‰Ç1Àè3VéžØÿÿL‹%g-1ÿºH�5!èäþþÿH‰ÇL‰æ1ÀèVéˆâÿÿ‹\$(L‹t$0‰ÝébØÿÿ¿è˜ÿÿL‰çH‰ÅèÝÿÿó~<H‰-<fH:"ÀE‰Ýé,ØÿÿH‹=;€?…ØH‹„$dH+%(…û1ÿèÿÿH‹Ç:º1ÿ1íH�5a¾èBþþÿH‰Ú¿H‰Æ1ÀèÐÿÿºH�5[¾1ÿèþþÿ¿H‰Æ1Àè®ÿÿH�§H‰$ëGff.„ff.„ff.„ff.„DHƒÅHƒ$@H�ýЄ0H‹$H‹@(H‰D$H…ÀtØ¿1ÀA‰í»H�5ÛìL�=cÚè&ÿÿL‹$$1Òé H�ºìH�5®½¿1Àèÿÿ¸M‹t$ úM…ötWAƒ<$t ¿ ƒÃè'úþÿºL‰ö1ÿè(ýþÿH�5 ¿H‰Â1Àè²ÿÿºL‰ö1ÿèýþÿH‰Çè+ýþÿºÃM9ü„ÙIƒÄ@Iƒ|$(…ÉA¶D$„ÀtÝAƒ|$0tվȄ҄CÿÿÿH�ªÛH�5ñ¼¿1ÀèDÿÿ¸é>ÿÿÿ¿è0Béþÿÿ·ö2‰Ýf%?üf €f‰å2éÖÿÿÇ|4‰ÝéýÕÿÿºH�591ÿ‰ÝèHüþÿH‰Ç1ÀènSéÙÕÿÿºH�5U1ÿè&üþÿH‰î‰ÝH‰Ç1ÀèGSé²ÕÿÿH‰l$E‰îéÂDH�?ëH�59¼¿1Àè†ÿÿA¿H‰ïèüþÿ1ÒAƒü–ÂØIÁæDú�H�̤N‹d0(M…ät@ºL‰æ1ÿè£ûþÿH�5¦Ö¿H‰Â1Àè-ÿÿºL‰æ1ÿè~ûþÿH‰Çè¦ûþÿ�\ºAƒÅA�ýЄ†E‰îH� b¤L‰ðHÁàHƒ|0umL‰ðH� I¤HÁàHÈH‹(H…ít½D‹`8Aƒüt³AƒìH� [êH�ÙÜI‰èAƒüHFȄ҄ûþÿÿH�çÙH�54»¿1ÀA¿è{ÿÿéöþÿÿH‹l$ƒûCff.„�H‹5é(¿ ƒÃèÌþþÿƒûuçH‹t$1ÿºè–úþÿH‰Çè~øþÿé¹üÿÿ¿ 1Ûèm÷þÿ뻋\$(L‹t$0‰Ýé ÔÿÿH‰ò<=…àöÿÿéíöÿÿ1ÿºH�5uèHúþÿH‰Ç1ÀènQéíÿÿHcÃ1ÿºI‹,ÆH�5üèúþÿH‰ÇH‰î1ÀèBQé_ÚÿÿºH�5‘1ÿèúùþÿH‰Ç1Àè QH‹-Y(éCãÿÿH‹|$‹\$(L‹t$0èúþÿH�|è§ûþÿD¾ ê1L‹�1H� /»H‰ÅPHÇÂÿÿÿÿ¾ÿ5 (H‰ï1ÀèQÿÿH‹=b1è5öþÿH‰-V1Z‰ÝYéÓÿÿºH�5É1ÿèbùþÿH‰î‰ÝH‰Ç1ÀèƒPéîÒÿÿ¾(¿è_ÿÿH� è|H‰(‰ÝH‰H H‰D$HéÅÒÿÿºH�5 1ÿèùþÿH‰î‰ÝH‰Ç1Àè3PéžÒÿÿH�t$pH‰ßè�ýþÿ…Àˆa‹„$ˆ%ð=@„2=€„½ÔÿÿºH�5;éØÙÿÿL‹%'1ÿºH�5 ¸èœøþÿH‰ÇL‰æ1Àè¿OéíÿÿL‹%ó&1ÿºH�5}ûèpøþÿH‰ÇL‰æ1Àè“OéŽèÿÿ¿(è4úþÿ¹=ºH‹5ÓH‰ÇH‰á.è¤ûþÿ„À…åèÿÿ1ÿºH�5vèøþÿH‰Ç1Àè?OéÃèÿÿ1ÿºH�5üè÷÷þÿH‰Ç1ÀèOéèïÿÿ¿(è¾ùþÿ¹=ºH‹5]H‰ÇH‰s.è.ûþÿ„À… çÿÿ1ÿºH�5è£÷þÿH‰Ç1ÀèÉNéèæÿÿºH�5h1ÿè�÷þÿH‰Ç1Àè§NH‹-à%éåäÿÿ¾(¿è|ÿÿH� {H‰(H‰H H‰¿.é?âÿÿ¾(¿èSÿÿH� ÜzH‰(H‰H H‰–.é­âÿÿ1ÿºH�5è÷þÿH�5…¶H‰Ç1Àè%Né2ßÿÿH�}éšÛÿÿèbóþÿ1ÿºH�5„H‰D$èÊöþÿH‹T$L‰æH‰Ç1ÀèèMé¼Úÿÿ1ÿºH�5�è öþÿH�5ïÅH‰Ç1Àè¿MévÙÿÿºH�5Ͷ1ÿ»èröþÿ¿H‰Æ1ÀèþþÿH‹5Œ$¿ èrúþÿƒëuêºH�5˜¶1ÿè:öþÿ¿H‰Æ1ÀèËýþÿH‹”2º1ÿH�5…¶èöþÿH‰Ú¿H‰Æ1ÀèŸýþÿèŠ÷þÿH‰ÅH‰ÃëH�5õп1ÀHƒÃè{ýþÿH‹H…ÒuáH‰ïè{òþÿ¿ è±òþÿH‹*21ÿºH�52¶è§õþÿH‰Ú¿H‰Æ1Àè5ýþÿH‹=¾#è9:¿ èoòþÿH‹è11ÿºH�5šøèeõþÿH‰Ú¿H‰Æ1Àèóüþÿº1ÿH�5æµH‹n#è9õþÿ¿H‰Æ1ÀèÊüþÿ1ÿºH�5tøèõþÿ¾H‰ßH‰Â1Àèµÿþÿ1ÿºH�5—øèòôþÿ¾H‰ßH‰Â1Àè�ÿþÿ1ÿºH�5âøèÍôþÿ¾H‰ßH‰Â1Àèkÿþÿ1ÿºH�5õøè¨ôþÿ¾H‰ßH‰Â1ÀèFÿþÿ1ÿºH�5ùèƒôþÿ¾H‰ßH‰Â1Àè!ÿþÿ1ÿºH�53ùè^ôþÿ¾H‰ßH‰Â1Àèüþþÿ‹=®,èÑÿÿ1ÿºH�5kùH‰Åè+ôþÿH‰é¾H‰ßH‰Â1ÀèÆþþÿ1ÿºH�5pùèôþÿ¾H‰ßH‰Â1Àè¡þþÿ1ÿºH�5‹ùèÞóþÿ¾H‰ßH‰Â1Àè|þþÿ1ÿºH�5¦ùè¹óþÿ¾H‰ßH‰Â1ÀèWþþÿ1ÿºH�5Ñùè”óþÿ¾H‰ßH‰Â1Àè2þþÿ1ÿºH�5üùèoóþÿ¾H‰ßH‰Â1Àè þþÿ1ÿºH�5úèJóþÿ¾H‰ßH‰Â1Àèèýþÿ1ÿºH�52úè%óþÿ¾H‰ßH‰Â1ÀèÃýþÿ1ÿºH�5]úèóþÿ¾H‰ßH‰Â1Àèžýþÿ1ÿºH�5�úèÛòþÿ¾H‰ßH‰Â1Àèyýþÿ1ÿºH�5Óúè¶òþÿ¾H‰ßH‰Â1ÀèTýþÿ1ÿºH�5ûè‘òþÿ¾H‰ßH‰Â1Àè/ýþÿ1ÿºH�5Iûèlòþÿ¾H‰ßH‰Â1Àè ýþÿ1ÿºH�5|ûèGòþÿ¾H‰ßH‰Â1Àèåüþÿ1ÿºH�5¯ûè"òþÿ¾H‰ßH‰Â1ÀèÀüþÿ1ÿºH�5òûèýñþÿ¾H‰ßH‰Â1Àè›üþÿ1ÿºH�5-üèØñþÿ¾H‰ßH‰Â1Àèvüþÿ1ÿºH�5`üè³ñþÿ¾H‰ßH‰Â1ÀèQüþÿ1ÿºH�5›üèŽñþÿ¾H‰ßH‰Â1Àè,üþÿ1ÿºH�5¾üèiñþÿ¾H‰ßH‰Â1Àèüþÿ1ÿºH�5éüèDñþÿ¾H‰ßH‰Â1Àèâûþÿ1ÿºH�5ýèñþÿ¾H‰ßH‰Â1Àè½ûþÿ1ÿºH�5?ýèúðþÿ¾H‰ßH‰Â1Àè˜ûþÿ1ÿºH�5jýèÕðþÿ¾H‰ßH‰Â1Àèsûþÿ1ÿºH�5åýè°ðþÿ¾H‰ßH‰Â1ÀèNûþÿ1ÿºH�5þè‹ðþÿ¾H‰ßH‰Â1Àè)ûþÿ1ÿºH�5#þèfðþÿ¾H‰ßH‰Â1Àèûþÿ1ÿºH�5FþèAðþÿ¾H‰ßH‰Â1Àèßúþÿ1ÿºH�5iþèðþÿ¾H‰ßH‰Â1Àèºúþÿ1ÿºH�5|þè÷ïþÿ¾H‰ßH‰Â1Àè•úþÿ1ÿºH�5�þèÒïþÿ¾H‰ßH‰Â1Àèpúþÿ1ÿºH�5ªþè­ïþÿ¾H‰ßH‰Â1ÀèKúþÿ1ÿºH�5Íþèˆïþÿ¾H‰ßH‰Â1Àè&úþÿ1ÿºH�5èþècïþÿ¾H‰ßH‰Â1ÀèúþÿH‰Ùº¾H�=ï¯èØùþÿ1ÿºH�5úþè%ïþÿ¾H‰ßH‰Â1ÀèÃùþÿ1ÿºH�5Mÿèïþÿ¾H‰ßH‰Â1Àèžùþÿ1ÿºH�5xÿèÛîþÿ¾H‰ßH‰Â1Àèyùþÿ1ÿºH�5£ÿè¶îþÿ¾H‰ßH‰Â1ÀèTùþÿ1ÿºH�5þÿè‘îþÿ¾H‰ßH‰Â1Àè/ùþÿ1ÿºH�5)èlîþÿ¾H‰ßH‰Â1Àè ùþÿ1ÿºH�5TèGîþÿ¾H‰ßH‰Â1Àèåøþÿ1ÿºH�5Ÿè"îþÿ¾H‰ßH‰Â1ÀèÀøþÿ1ÿºH�5Êèýíþÿ¾H‰ßH‰Â1Àè›øþÿ1ÿºH�5õèØíþÿ¾H‰ßH‰Â1Àèvøþÿ1ÿºH�5è³íþÿ¾H‰ßH‰Â1ÀèQøþÿ1ÿºH�5+èŽíþÿ¾H‰ßH‰Â1Àè,øþÿ1ÿºH�5Vèiíþÿ¾H‰ßH‰Â1Àèøþÿ1ÿºH�5yèDíþÿ¾H‰ßH‰Â1Àèâ÷þÿ1ÿºH�5”èíþÿ¾H‰ßH‰Â1Àè½÷þÿ1ÿºH�5¯èúìþÿ¾H‰ßH‰Â1Àè˜÷þÿ1ÿºH�5ÒèÕìþÿ¾H‰ßH‰Â1Àès÷þÿ1ÿºH�5-è°ìþÿ¾H‰ßH‰Â1ÀèN÷þÿ1ÿºH�5Pè‹ìþÿ¾H‰ßH‰Â1Àè)÷þÿ1ÿºH�5sèfìþÿ¾H‰ßH‰Â1Àè÷þÿºH�5 1ÿèAìþÿ¾H‰ßH‰Â1ÀèßöþÿºH�5Ë1ÿèìþÿ¾H‰ßH‰Â1ÀèºöþÿºH�51ÿè÷ëþÿ¾H‰ßH‰Â1Àè•öþÿºH�5A1ÿèÒëþÿ¾H‰ßH‰Â1ÀèpöþÿºH�5l1ÿè­ëþÿ¾H‰ßH‰Â1ÀèKöþÿ¶"ºH�5�ƒà`<@tH�5Ò1ÿèsëþÿ¾H‰ßH‰Â1ÀèöþÿºöÉ!`…BH�5è1ÿèAëþÿ¾H‰ßH‰Â1ÀèßõþÿºH�51ÿèëþÿ¾H‰ßH‰Â1Àèºõþÿ1ÿºH�5ìè÷êþÿ¾H‰ßH‰Â1Àè•õþÿ1ÿºH�5èÒêþÿ¾H‰ßH‰Â1ÀèpõþÿH‹=éè´/¿ èšçþÿ1ÿºH�5S«è—êþÿH�Z«¿H‰Æ1Àè!òþÿH‹„$dH+%(„ìÿÿè¥êþÿH�5¼¬H‰ïèVçþÿ…À…öÇ\"‰ÝéÝÃÿÿH�5K«H‰ïè>îþÿ…ÀuN·• ‰Ýf%?üf €f‰„ é­ÃÿÿH�5V1ÿèÿéþÿ¾H‰ßH‰Â1Àè�ôþÿºH�5�é¹þÿÿºH�5P1ÿèÉéþÿH‰î‰ÝH‰Ç1Àèê@éUÃÿÿH‰ø€ú=„­äÿÿé‘äÿÿè�çþÿéëÿÿ€=½!„ÇÿÿéôÆÿÿè³æþÿƒ8„pÅÿÿ1ÿºH�5ÄègéþÿH‰Ç1Àè�@éNÅÿÿºH�51ÿ‰ÝèCéþÿH‰Ç1Àèi@éÔÂÿÿºH�5¨1ÿè!éþÿH‰Ç1ÀèG@D‹D$é�äÿÿH‹„$dH+%(…ŒþÿÿH�'µ¾hH�=Ö¥èn/¿èÄêþÿH‰îH�=Oª1Àèó?‰Ýé\ÂÿÿH‹„$dH+%(…;þÿÿèÀªH‹É H‰ßèÁèþÿH‹=‚¶\ÿèìþÿH�³§€û/uH�³×H‹5– H‰Á1ÀH�=ëªèÅ¿é:ÄÿÿóúfïÀH�á#HƒìHfoÈfoÐfH:"ÈH�ç#fH:"ÐH� $)L$ fH:"À)T$)$@„ÿ„ëH�¹=ºàH�5£ŒÿÿH�= #H‰Õÿè@ëþÿ„À„H�Q#fo\$fod$ 1ÿH‰D#fo,$¾H�#H‰#H�ý"H‰þ"H‹ÿHÇH‰@)-#)%#)-O#èz½ÿÿº1öH�=è©H‰�è@žÿÿH� éHÇŽ"H‰�"H‰HHH�|"H‰m"HƒÄHÃó~ þ1ÒfH:"sþ¾èH�=ÿ#€%H$þ)D$0$$èç¶foD$01Ò1öH�=Ö"€%#þ#èöé³þÿÿ1ÿºH�5äè›æþÿH‰Ç1ÀèÁ=éÄþÿÿff.„�óúAWAVAUATUSHƒìhdH‹%(H‰D$X1ÀH…ÿ„}fïÀH‰ûH‰õA‰ÔfoÈH�íL�5>ífH:"ÈH�D$@H‰D$fH:"À)L$ )D$ƒ{w.‹CIc†Lð>ÿà�H‹=Ù!D‰âH‰îènÿÿÿff.„H‹H…ÛuÄö2…sH‹D$XdH+%(…ÿHƒÄh[]A\A]A^A_ÄAöÄu!L‹{XM…ÿtH�5T¤L‰ÿèBìþÿH…À„ÑH‹{D‰âH‰îèêþÿÿH‹H…Û…Jÿÿÿë„@H‹CH‰õH‹H…Û…-ÿÿÿédÿÿÿ@H‹{H‰ÞD‰âH‰Ýè¦þÿÿH‹H…Û…ÿÿÿé=ÿÿÿD¶Ca¨„´H‹¥H‰SXE…ät$AöÄ„ªHƒ=r„œff.„�foT$H‹t$H‰ßL‹=c )T$@葉ÿÿ„ÀuÆ·Hƒ|$@tNL9=? „ѺL‹{H�5A1ÿèzäþÿH‰ÇL‰þ1Àè�;H‹füH‹L$@H‹PH‰ H‹T$HH‰P�H;Ù…cþÿÿHÇÈH‹H…Û…þÿÿéOþÿÿ€D‰àL‹=¦ƒÈ‰D$0H‹ L‹h0@‹T$0H‹{H‰îèpýÿÿH‹�L‰éL‰úL‹=lL‹h0I9ÍuÓL9ú„êýÿÿHƒ=JuÀH‹H…Û… ýÿÿé×ýÿÿ€H‹{ƒ„ºýÿÿfo\$ ÆHÇ*H‰-;)$è/¹H‹H…Û…Oýÿÿé†ýÿÿfDH�=ó¥1Àèz:ézýÿÿD¨„hþÿÿH‹S0H…Ò„[þÿÿ¶JHƒáƒù„Pƒù…BþÿÿöBD@„8þÿÿ€{`‰.þÿÿH‹Bƒx… þÿÿH‹‚ö€Œ @„ þÿÿ¶CaƒàíƒÈˆCaéúýÿÿf.„H‹D$HH‹H‰H‹D$@H‰éXþÿÿ¶„Àt¾ðL‰ÿè2ãþÿH…À…ýÿÿH‹BH…Òt5ff.„f�H‹zH…ÿtL‰þH‰T$0è:áþÿH‹T$0…ÀthH‹RPH…ÒuØH‹ 1ɾL‰ÿH‹0úL‹H°HƒèPL‹BH‰BH‹¹L‰L$0L‰D$8è µÿÿL‹L$0L‹D$8H‰ÂH‹öùH‹HL‰ Iƒ8t+¶Baƒà<…aüÿÿ1öH‰×è°†ÿÿéRüÿÿ¨„çþÿÿéîüÿÿL‰@ëÏèóáþÿóúAUATUSHƒìH…ÿ„AL‹-ºA‰ôH‰ýM…ít,L‰ë@H‹;H‰îè…åþÿ…À„ÍH‹[H…ÛuäM‹mM…íuÔE„äu5H�5TžH‰ïèWåþÿ…Àt"ºH�5o1ÿè0áþÿH‰ê1öH‰Ç1ÀèQ8¿XèG±ÿÿH‰ïI‰Åè<ãþÿfo4êIÇEI‰EH‹ùIÇEIÇEIÇE0IÇE8IÇE@IÇEHAÆEPAE L‰(I�EH‰Éøë €E„äuHƒÄL‰è[]A\A]ÃDºH�5|1ÿèuàþÿH‰ê1öH‰Ç1Àè–7HƒÄL‰è[]A\A]ÃE1íë¸óúAWI‰÷H�5E�AVAUI‰ýL‰ÿATUSHƒìè9äþÿ…À„ÐH�5�L‰ïè"äþÿ…À„¹L‹5+M…ö„ØE1ä€L‰óë H‹[H…ÛtFH‹+M…ä„ãL‰îH‰ïèØãþÿ…ÀuܺH�5`1ÿè±ßþÿL‰ê1öH‰Ç1ÀèÒ6H‹[H…ÛuºM‹vM…öu M…äti¿豯ÿÿL‰ïH‰Ãè¦áþÿfHnÀfI:"D$I‰\$HƒÄ[]A\A]A^A_úH�5µ1ÿè>ßþÿ1öH‰Ç1Àèb6L‹5SM…ö…(ÿÿÿºH�5þ1ÿE1äè ßþÿL‰éL‰ú1öH‰Ç1Àè*6éjÿÿÿDL‰þH‰ïèõâþÿ…ÀMDæéÿÿÿf.„óúAWAVAUI‰ÍATI‰üUL‰ÅSH‰óH‰ßHƒìD‹v$L‰ÆL‹=aH‰$蘟ÿÿ„À…~M…ítI‹GH‰ÚL‰îH�=êÿ�„À„ZD‰ð÷Щ„”¶ÅD‰òA�æûýñÿ€æýƒà<‹…¬DDòƒø„‘†*ƒèƒø‡ƒAƒÎ¸ÿÿÿÿH‹MHH…É„ˆ¶Q(#A$öÂ…hƒÊD ðL�[H‰ÞˆQ(H‹ž‰A$H‹»àH‹Bÿ�HA÷Æ€t‹“´H‹EH‰�´A�æ…\H‹]H‹mHH‹@ƒx„{‹C|9E|s‰E|€=)H‰k`u0H‹…øH‰�øHǃðH‰ƒøH…À„êH‰˜ð¿ èi­ÿÿH‹4$Ç@HÇI‹T$H‰I‰D$H‰XH‰pHƒÄ[]A\A]A^A_Ãøu`H‹´H‹@ƒxD‰ð„“ƒàüA‰ÆƒÈ÷A�Îé¹þÿÿfDD‰ðA�æûýóÿ%ûýñÿö#DEð‹…¬ƒø…oþÿÿAƒæþD‰ðƒÈ÷é{þÿÿD‰ò‰Æƒâ÷1Ö�æ€uA÷Æ€tU‹»´9¹´tGA�æ÷ÿþ%ÿÿþD ðA�æ‰A$„¤þÿÿH‹»àè¬áþÿƒø#…�þÿÿÇ… €é€þÿÿ@ ÐA‰Ö‰A$ébþÿÿL‹3ºH�5ÏšL‰÷èyÙþÿ…Àu5H‹}H�5�žèõßþÿ…Àu!A¶F„Àt<.…Eþÿÿ�K$é9þÿÿ@ºH�5‰šL‰÷è,Ùþÿ…À…þÿÿH‹}H�5Jžè¤ßþÿ…À…þÿÿë©f.„D‰öH‰ï‰D$ èá”ÿÿH‹MH‹D$ é\ýÿÿ@H‰�ðéþÿÿ@%ýþÿÿA‰ÆƒÈ÷A�Îé$ýÿÿf„ATI‰ÔUH‰ýSH‰óH‹vH…ötèåÿÿÿH‹3H‹MPH�}M‰àH‹Sè.üÿÿH‹sH…öt L‰âH‰ïèºÿÿÿH‰ß[]A\éŽ×þÿff.„óúAWAVAUI‰ýATM‰ÄUH‰õL‰ÎSH‰ËHƒìhdL‹<%(L‰|$XL‹¼$ H…ÉtHH�L$@fïÀH‹ŒòH�=]fH:"Á)D$@H9øƒsH�xH‰=eòH‹=VòH‰8H‰ Lò¶µƒà<„úAöE$„ïHƒìE1À1ÉH‰ïjE1ÉL‹5¿R1ÒjèÍ™HƒÄ M…ÿL‰îH‰ÅH�@LDøI‰è1É1ÒL‰ÿèûÿÿH…Û„0AöE$…õ1É1ÒH�5Ï–1ÿèœH‹ÄñH�EH9ƒ¢H�PøH‹@øH‰¥ñH‹UHH‰’ñH…Ò„I‹D$Iƒ|$ A”ÁH…À„1L‹*L‹8M…ÿ„ÎI‹@ƒx„�L9útPI‹GH9ÂtGH‹rH‹zH…ö„ñH‰~H…ÿ„ÔH‰wI‹GfInÇfH:"ÀBI‰WH…À„ŸH‰PHƒÂI‰T$Hƒ|$@t|E„É…I‹T$ H‹D$HH‹ H‰H‹L$@H‰ I‹\$(H‹½ðH‹|$@H‹JH99„ I‰D$ I‹H�SÐIÇH‰P8H‹H‰P0H…ÒtH‰B8H‰HƒÀ0I‰D$(Iƒ>„ÞH‹D$XdH+%(…KHƒÄhH‰è[]A\A]A^A_Ä¿(‰T$èb¨ÿÿH� ‹T$ÇH‰Æ‹XƒøƒÐÿH‹ÁHÇFHÇF H‰F‹8ÇF‰Fé¶ýÿÿDH‹CPH�5Ú”H…ÀtH‹0H‹KXH…ÉtH‹ H‹“�éëýÿÿD1É1ÒH�5ª”1ÿèî™é+ÿÿÿf„H‹BH‹JH…À„OH‰HH…É„rH‰AI‹€˜HÇBH…À„>H‰BH‰PI‰�˜éGþÿÿf�H9ÙtWH‹CHH…ÀtHƒ¸àtDH9Ât?HƒÀI‰D$é ýÿÿ�H‹K8H…Ét'€‹±¤…öx H‹AHH…Àu¿H‹I8H…Éuä@L‹™ I�€�I‰D$é^ýÿÿ„I‹…àH‹@ƒx…[ýÿÿI‹…Ћ@ƒø„¨I‹·Ðƒ~…7ýÿÿAöG$„,ýÿÿƒø„–Hƒ=S„ýÿÿI‹GL� L9Øt9H…Àu ë2fDL9ØtH‹ˆÐƒyuö@$LEøH‹@H…ÀuÝM…ÿ„0¸H‹s0„À„æH‰ßL;H„ÉH…ö„-L9~H„˜H‹~0H…ÿ„H‹w0ëЄH‰ßHƒÃ0èTuÿÿH‰ÂH‹D$HH‹ H‰H‹L$@H‰ éåüÿÿf„H‰BH‹D$Héçüÿÿf�L‰51éýÿÿI‹€�HÇBH…À„KH‰BH‰P@I‰��éYüÿÿ@I‰°˜é(üÿÿ@I‰¸�éüÿÿ@I‰ˆ�H…É…®ýÿÿHÇBHÇBI‰��é¶ýÿÿ@HÇBé�ýÿÿAöE$„MþÿÿM‹��L�‡HÇ´M9Ú„sûÿÿM…Ò„jûÿÿ¶' 1ÉHÇD$ƒàˆD$&ë*€H…É…DM‹RM9Ú•ÀM…Ò@•Æ@ ð„“L9ÒtØI‹‚ЃxuËAöB$tÄ€|$&uTI‹:H�5—L‰\$8H‰L$0L‰D$(DˆL$'H‰T$L‰T$è8ØþÿL‹T$H‹T$…ÀD¶L$'L‹D$(H‹L$0L‹\$8„iÿÿÿH…É„ÈA‹E|A9B|H‹D$ICÂH‰D$éNÿÿÿAöE$„_ýÿÿéèþÿÿD„À…(H‰ØH‹H0L9yH„µH‹@8H…ÀtH‹H0L9yH„žH‹@8H…ÀuÒ1ÿI;W„ˆúÿÿH‹BH‹rH…À„ÎH‰pH…ö„µH‰FM…ÿ„Ôýÿÿ@„ÿ„/úÿÿI‹GfHnÀfI:"ÇBI‰WH…À„àûÿÿH‰Pé*úÿÿH‰Øëff.„DH‰ðH‹v0H…ö„@ÿÿÿL9~HuêH‰ÃA¹é]ÿÿÿ¿é_ÿÿÿHƒ|$uH…É„�ùÿÿI‰Ïé²üÿÿH…É„pùÿÿL‹|$é‘üÿÿfDI‰€˜éCÿÿÿI‰°�é*ÿÿÿH‰ÞL9~Ht4H‹v8H…ötL9~Ht%H‹v8H…öuâ„À„àþÿÿ¿I;W…Ýþÿÿé`ùÿÿA‰ÁH‰óëäH‰óA‰ÁëÜI‰Ï1ÀHƒ|$„#üÿÿéuÿÿÿH‰ûëàL‰L‰Ñé)þÿÿ1ÀH‰BI‰�˜é¯üÿÿèJÒþÿH‹D$XdH+%(uëè”H‹D$XdH+%(uÖèp‘óúH…ÿ„sAWfïÀH�vI‰÷AVfH:"ÀL�5ûØAUATUSH‰ûHƒìX)D$ ƒ{w+‹CIc†Lð>ÿàfDH‹=a L‰þè™ÿÿÿf„H‹H…ÛuÇHƒÄX[]A\A]A^A_Ãf„M…ÿtÛIƒHuÔ1öL‰ÿ誊ÿÿëÈ„M…ÿ„H‹{èΉÿÿA‹‡¬ƒèƒø‡i H��ØHc‚HÐ>ÿàf.„M…ÿt IƒH„H‹{臉ÿÿH‹H…Û…*ÿÿÿé^ÿÿÿfDH‹C H…Àt €x…=ÿÿÿH‹{º1öè�‡ÿÿH‹SH‰PhHƒxH…ÿÿÿ1öH‰Çèð‰ÿÿé ÿÿÿH‹k €{`u €{b„,H…턬L‰<$€L‹eH‹4$L‹} L‹mL‰ç舃ÿÿ„À…pH‹4$L‰çè$‘ÿÿ„À…\¿ èòÑþÿfïÀ@fInÄfH:"C@¶s`@„öuM…í„A‹U8…Ò„üƒú„óH‹K0H�S0H…É„ïL‰|$L‰d$8H‰D$HH‰l$@H‰Õff.„@„ö„WH‹D$L‹H‹@0L‹€ðM…À„£I‹€ L‹` M…äuM‹ I‹ƒàL‹ˆðM…É„™I‹� L‹x M…ÿuM‹9€{aL‰L$0L‰D$L‰\$„L‰æL‰ÿèúÍþÿL‹\$L‹D$L‹L$0…À�…�L‰ÈL À„±M…Àt!H‹D$H‹@0H‹� L‹b M…äuL‹ M…ÉtI‹ƒàH‹ˆ L‹y M…ÿuL‹8€{a„çL‰æL‰ÿè|ÍþÿH‹U…À�ç„JH�jé_�‹ƒ¤��}þÿÿƒú†Ë…ÀˆóüÿÿH‹{H‰ÞèwüÿÿH‹H…Û…ªüÿÿéÞüÿÿfDºH�5µ‹1ÿè-Îþÿº.H�5‹H‰Ç1ÀèG%H‹H…Û…jüÿÿéžüÿÿfDH‹{L‰þèüÿÿH‹H…Û…Güÿÿé{üÿÿH‰êH‹D$HH‹l$@H‰H;S8„nfDH‹mH…í…cýÿÿL‹<$H‹s0H…ötL‰úH‰ßèkòÿÿH�C0HÇC0H‰C8Hƒ=û… üÿÿH‹k@H…í„üÿÿH‹}H…ÿtH�50�èkÑþÿ…À„šH‹mH…íuÚéÕûÿÿDH‹MM…ítA‹E8…Àt ƒø…ŽH�iH‹MH…É„5ÿÿÿ¶s`élýÿÿ@L‰þL‰çèÝËþÿL‹L$0L‹D$L‹\$…ÀŽãýÿÿH‹mHƒÅëº@H‹� L‹b M…ä…\ýÿÿL‹ éTýÿÿ@H‹ˆ L‹y M…ÿ…fýÿÿL‹8é^ýÿÿ@E¶}ÿàfDH‹mHƒÅéAÿÿÿÀHƒÀH‰C8H‹mH…í…óûÿÿé‹þÿÿfDH…턤þÿÿL�kff.„L‹eL‰þL‰çèaÿÿ„ÀuH‹KPH‹S@M‰øL‰æL‰ïè'íÿÿH‹mH…íuÎé^þÿÿf„A‹‡¬¾ƒøt 1öƒø@”ÆÁæL‰ÿè+…ÿÿéÖúÿÿfD½I‹¿°D‹gAƒüu �?„æfoL$ ÆöÿHÇL‰=/) è#¡€=üÿ„qD‹%×ÿëD½ ë–�E1ä½I‹GHH…À„û h$H‹D‰ H…Û…tùÿÿé¨ùÿÿE1ä½ ëÎfDH‹¹½E1äH‹@ƒx¸Dèë§€H‹T$8A‹D$|+B|u$E„ÿ„pH‹D$8I‹<$H‰L$H‹0èºÎþÿH‹L$…À‰wýÿÿH�iH‹IH…É„¬üÿÿ€{`…ëúÿÿéFýÿÿDI‹<$E„ÿ…‰H‹D$8H‰þH‰L$H‹H‰ÇH‰D$è^ÎþÿH‹L$…Àu H‹T$8A‹D$|+B|ë‘fDH‹D$8H‹8èãlÿÿI‹<$‰D$èÖlÿÿ‹T$H‹M‰Æƒúÿ„:ÿÿÿƒøÿ„1ÿÿÿE„ÿ„–)Ð…Dÿÿÿé$ÿÿÿ@H‹S8H…Ò…üÿÿH‹mH…í…vùÿÿéüÿÿ�L‰þL‰çè•ÈþÿH‹U…ÀŽûÿÿH�jé~üÿÿ€‹¸H‹{H‰Þè�}ÿÿ¶“¸‹ƒ¤Àêƒâ=ƒ”Á8Ê„ÿúÿÿǃ¤ÿÿÿÿéë÷ÿÿ‰Ð)ð…¬þÿÿ�H‹D$8I‹4$H‰L$H‹8èJÍþÿH‹L$é‹þÿÿ‰îL‰ÿƒÎè“‚ÿÿI‹GHéòýÿÿf.„1ÿºH�5ƒ†èýÈþÿº·H�5ä…H‰Ç1Àè é»÷ÿÿH‹D$8H‰L$H‹0èàÌþÿH‹L$é}þÿÿH�ŸÑ¾1H�=¦…è>fDL‹oH�5t‹L‰ïè¥Ìþÿ…À„àH�5j‹L‰ïèŽÌþÿ…À„>ýÿÿH�5^‹L‰ïA¼èqÌþÿ…À„!ýÿÿH�5J‹L‰ïA¼èTÌþÿ…À„ýÿÿH�58‹L‰ïA¼è7Ìþÿ…À„çüÿÿH�5*‹L‰ïA¼èÌþÿ…À„ÊüÿÿH�5‹L‰ïA¼èýËþÿ…À„­üÿÿM‹g@ºH�5ê1ÿèÎÇþÿH‰ÇL‰æ1ÀE1äèîé�üÿÿL‰=*é=öÿÿA¼éjüÿÿE1ä½é]üÿÿDAUI‰õATI‰ÌUH‰ýSH‰ÓHƒìH…ÿtH�~úH9Çt ƒ „ŸH‹EH…Àt ƒx „|¿0L‰D$èm—ÿÿH‹UM…íL‹D$H‰H�çLDêH‰EÇ@ L‰` L‰h(I‹T$0L‰ÁH‰XH)ÑH‰HAöD$%u‹ ‡HÓëLÃH)ÓHÓãI‰\$@HƒÄ[]A\A]ÃL9` …zÿÿÿë´@H‰øH9O …Tÿÿÿë¡�óúAWAVAUATUSHƒìxH‰T$H‰L$XL‰$DˆL$SdH‹%(H‰\$hH‹H…Û„²H�D$XfïÀI‰üI‰õfHnÐH‰t$0E1öE1ÿH�ûöH�-ÎfH:"ÐfH:"À)T$)D$ ff.„�ƒ{‡f‹CHcD…Hè>ÿà„L‹$H‹L$XH�{L‰îD¶L$SH‹T$è0ÿÿÿH‰D$Xff.„I‰ßI‰ÜH‹E1öH…ÛuŸH‹D$XH‹T$hdH+%(…ZHƒÄx[]A\A]A^A_ÀI‹EHI‰ßH‰C H‹CH‰D$ë­f.„I‹UHH‹D$XÆÕùH‹{fo\$H‰ÆH+r0H‰s0I‹UHH‰S(H‰äùH‹D$0)àùH‰éùèäš‹C��åþÿÿƒú‡ž‹ ¤ÿH�5…͸‹–Óà9ÐBÂI‹UHÓèHD$XH‰D$XöB%… ÿÿÿH+B0HÓàH‰B@éüþÿÿ@H‹D$XI‹UHÆ-ùH‰D$`L‹cH‰PùH�D$`H‰LùH‹D$0L‰çÇ’ùH‰CùH‰4ùè7š‹yùƒø„(ƒø„§Ç]ùA‹D$ƒàýƒøuI‹D$€8.„ŠA€�¸I‰ßAö…¸…TþÿÿL9-‚ÿ„{ H‹T$`L‹D$XL9Â…9L‰D$XI‰ßé'þÿÿ@I‹EHH‰Åú�H$ é þÿÿf„D¶L$SL‹$L‰îI‰ßH‹L$XH‹T$H�=�ÿèúüÿÿH‰D$XéÓýÿÿI‹EHH‹t$XH‰ñH+H0H‹CH‰KH‹ þ¶@I‹UHƒàH‰S@ÓøH˜HðH‰D$XöB%…�ýÿÿH+B0HÓàH‰B@é}ýÿÿDHÇCI‹UHH‹D$XH+B0H‰CéZýÿÿf.„H‹{HH‰\$0èB†ÿÿƒ»¤ÿ„5ýÿÿH‹{hH…ÿ„ÈH‹D$Xfod$Æ[÷H‰Ÿ÷H‰€÷)%�÷茘€=e÷…Oƒ=(÷t6L‹s@L‹chº1ÿH�5åè›ÂþÿL‰òL‰æH‰Ç1Àè»ff.„L‹cHM…ä„£üÿÿH‹,ùH‹@‹@ƒèƒø‡AA‹D$$©„1H‹SH…Òt Hƒ:„ L‹c@ºH�5Öä1ÿèÂþÿH‰ÇL‰æ1ÀèBL‹cHH‹SA‹D$$H‹RòB0A€L$(AD$0öÄ…üÿÿH‹B@I‰D$@é üÿÿf„Hƒ<$t7H‹sH�L$`H�)øH‹¾àH‹Gÿ�¸„À„À€|$`tH‹$ÆI‹$€=ÿ÷M‹UHL‹HˆùA·A(f%€f=„†E‹Y$L‹D$XA�々`Aö…¸…RI‹½€H…ÿ„µH� h„HÇÂÿÿÿÿL‰îL‰T$HL‰L$@L‰D$8D‰\$TèhL‹D$8L‹L$@HƒøÿL‹T$HH‰Á„_ 1ÀHƒùD‹\$Tºw넃ø@t HÒƒÀH9ÊrðA‰ÃE‰Y|E‰Z|é71ÿºH�5#~è�ÀþÿºH�5„}H‰Ç1Àè·é²úÿÿf�I‹�H…À„÷þÿÿI9„îþÿÿH‹E„ö…+M…ÿ„"I‰M‰üH‰Ãé€úÿÿ@H‹IõH…À„êH9ÄÈûÿÿ1ÿºH�5š}èÀþÿºßH�5û|H‰Ç1Àè.éšûÿÿf„M+B0M‰AXéúÿÿI‹A0I+B0I‰ßI‰AXéÿùÿÿ@‹ ZúL)ÂH‹t$H‰ßHÓâI‹MHèøÿÿA‹…¬H‹ƒøtƒø„� I‹EHƒH$L‹D$`I‰ßL‰D$Xé¬ùÿÿf„H‹ñóH‹úóH‰D$XH…Ò„ÔüÿÿHB0H‰D$XéÆüÿÿH‰OôéÛúÿÿf.„I‰ßI‰$H‰ÃA¾éWùÿÿH�ÁïL‹t$XI9Ä„QHƒ{h„èH‹{xHÇÂÿÿÿÿH� &‚H‰Þè>H‰ÂHƒøÿ„/ E1ÿ¸Hƒúwé¢ ff.„Aƒÿ@t HÀAƒÇH9ÐrîAºD‰ùIÓâK�D2ÿI÷ÚI!ÂM‰ÔM)ôƒ=êø„qH‹CH~nHÇÂÿÿÿÿM‰ÖL+p0HÓâH÷ÒL…òtU€=köu Hƒ{h„¼H‹C@º1ÿL‰T$@H�5¢áH‰D$8è ¾þÿH‹t$8L‰òH‰Ç1Àè>H‹CHL‹T$@D€H(fInêHÇ@XòÅ@0H‹S`D¶L$SL‰ÑH‰ÞL‹$H�{è÷ÿÿ¶ƒ¸H‹SHH� hîƒÈH‹r@ˆƒ¸H9Ê„2¨…*H‹z0H‰|$XöB%„€€L‹sPM…ö„±H‹KpH…É„Æfot$ H‰ÏÆËñHÇóñHÇòH‰L$8)5äñèï’€=Èñ…¿ƒ=‹ñt)ºH�5M·1ÿè½þÿH‹t$8H�-€H‰Ç1Àè 1Òé¤f„1ÿºH�5²àèͼþÿH‰Ç1ÀèóéûÿÿfDH‹ÉñH…À„ÚH9Ä@øÿÿ1ÿºH�5z茼þÿºèH�5syH‰Ç1Àè¦éøÿÿ�H…ö„çþÿÿ1ÿºH�5ÚyèT¼þÿº°H�5;yH‰Ç1Àèné¹þÿÿf„¶™òƒà<…žùÿÿH‹×òH‹@ƒx…‰ùÿÿ¿(è/ŒÿÿH�èñÇH‰Ç‹)òƒøƒÐÿH‹ÂHÇGHÇG H‰G‹ òÇG‰GH‰{héºøÿÿf�€x„t÷ÿÿég÷ÿÿ�H‹CXH…À„?L‹@8öƒ¸@„¨MàH‹CH‹P$L‰@8‰Ñƒá€‹¸…É„€‰Ñ�á�ù„lHƒx@u%I‹N@H…É„EH‹IHH‹q0H9t$X‚EDHƒ{X„öH�5¾ëH9ð„5õÿÿöƒ¸…(õÿÿ�â�ú„FL‹`@‹ tõIÓìH‹D$XH‹»ˆLàH‰D$XH…ÿt'fo|$Æ(ïH‰TïH‰eï)=NïèY�H‹sPI‰ßH…ö„¼ôÿÿH‹CHö@$„«ôÿÿH‹T$XH‰V8€|$S…±H‹sXH…ö„ŠôÿÿH;sP„€ôÿÿH‹CHö@$u öƒ¸@„iôÿÿH‹H8I‰ßIÌL‰f8€|$S„Sôÿÿ1ÒH‰ßèÆZÿÿéAôÿÿ�L‹sPM…öt AöD$$tqI‹>€?*uiH�5õvèû½þÿ…ÀuYA‹T$$L‹5õ‰Ñ‰ÐƒáƒÈ ƒùDÐM…ötfD‰ÐA#FHt‰ÐA#FLtM‹vM…öuç1öH�=£vèé×ÿÿL‹cHI‰ÆL‰sPöƒ¸…±A‹D$$¨„¤%=„”¶Íïƒà<„‚€|$St{I‹>H�5FvèL½þÿ…ÀuhL‹=YôM…ÿt\I‹?H�5'vè-½þÿ…ÀuIƒtBƒ={óu9€=¸ðM‹$$º„EH�5ÔÛ1ÿèå¸þÿL‰æH‰Ç1ÀèL‹sPL‹cHE‹|$|M‹V8E…ÿ�PH‹CHE1äé²úÿÿHƒx0…†M‰òE1ÿE1äé²úÿÿ1öH�=•uèÛÖÿÿL‹D$`L‰@8é|ôÿÿE‹Z|A‹I|A9ËsA‰J|¸HÓàI�TÿH÷ØH!ÐH‰ÂL)Â…q‹ ßòI‹A@HÓèLÀ€=®îˆ„I‹R0I)ÐM‰AXAöB%u H‰ÆH)ÖHÓæI‰r@H‰D$Xé7òÿÿD‹ƒ ‹ ’òJ�DÿHÓîI÷ØHðL!ÀH)øHÓàH‰B@éZúÿÿH;CP„TH‹{xHÇÂÿÿÿÿH‰ÞL‰D$8H� özèL‹D$8H‰ÂH�@þHƒøü‡üÿÿE1ÿ¸ë�Aƒÿ@t HÀAƒÇH9Ðrî¸D‰ùHÓàN�DÿH÷ØI!ÀéäûÿÿH‹ôëH‹ÝëH…Àt HP0H‰ÍëH‹CHH‰P8‹P$‰ÑƒáéÁûÿÿƒz…ðôÿÿéõÿÿ1ÿºH�5”tè·þÿºKH�5õsH‰Ç1Àè(éLþÿÿH‹p8H9p0…ÅûÿÿDƒ»¬…¾ûÿÿé®ûÿÿH‰ßëécòÿÿ1öH�=¾sèÕÿÿI‰Æé9ùÿÿI‹UPH…Òt óoB foÈfsÙfÔÁfI~ÃI9ÂâI‹R0I)ÐM‰AXAöB%u H‰ÆH)ÖHÓæI‰r@M‰‘M‰Q`éCþÿÿH‹CHI‹v@‹P$‰ÑƒáH…ö„Ìúÿÿ…É…Í€‹¸ƒ»¬… ûÿÿ¶ ˆìƒá€ù„÷úÿÿI‰^@éîúÿÿM…ätyM‰æé¡÷ÿÿH‹¯ìH‹@ƒx…VöÿÿéIöÿÿ‹ nðH‹t$L‰çL‰L$@L‰T$8HÓâL‰ÑH‰D$Hè$îÿÿL‹D$HL‹L$@L‹T$8éSýÿÿ¶ ìE1äƒâ€ú…±úÿÿéŸúÿÿH‹CHé|÷ÿÿE…ÿŽôùÿÿéðýÿÿM‰ÖéÈöÿÿL‹NHL‹T$XM‹A0I‹q8M9ÂsXH‹x@H…ÿtO‹ ÙïHÓïJ� I9Èr=I9ðtnºL‹c@H�5ÐØ1ÿèµþÿH‰ÇL‰æ1Àè< H‹CH‹P$‰ÑƒáéŒùÿÿƒ»¬„ÞHp0L)ÆE…ÿ~D‰ù¿HÓçH‰ùH�t7ÿH÷ÙH!ÎH‰p8€‹¸éVùÿÿH‹H0H‹ShH‰ßèVUÿÿé:úÿÿAöA&…žI‹AHH…ÀtRI;A@tLI‹A`º1ÿL‰\$HH�5ÐØL‰L$@H‰D$8èa´þÿL‹L$@H‹T$8H‰Ç1ÀL‰ÎL‰L$8èu L‹\$HL‹L$8€=¬êIÇA`L‰\$XˆºóÿÿéLîÿÿH‹CHM‰òE1äé öÿÿI‹y@‹ ›îHÓïHþéÿÿÿI‹A`º1ÿL‰L$@H�5á×fÖD$HH‰D$8èѳþÿH‹T$@H‹t$8H‰Ç1Àèí L‹\$HL‹L$@éÿÿÿH�5×Öé¶úÿÿH‹CHM‰òA¿ÿÿÿÿE1äé�õÿÿAÇA|ÿÿÿÿAÇB|ÿÿÿÿA‹I|éûÿÿH‹D$hdH+%(uH�ý»¾fH�=DpèÜù至þÿ€óúHƒìƒ=¡çt=H‹5�îE1ÉE1À1É1ÒH�='惄íÇvçÇÄçèGìÿÿè’^H‹‹îH…Àt_L‹Ÿéff.„@‹�¤…Òx6H‹PHH…Òt-HƒzHu&‹z$÷Ç uL‹BM…Àt"I;Pt%ff.„�H‹@0H…Àu·HƒÄÃf�I;’˜uçH‹ŠðH…Éu;¶ˆ¸öÁtx�Ï€‰z$H‹RH…Ò„‰L‰BM…ÀtpI‰PAƒª¨ë¢f�D¶ ›è„‹q$÷Æ€u�æ…yÿÿÿAöÁ …oÿÿÿH‹‰ðH…ÉuÓ¶ˆ¸öÁuˆƒÉˆˆ¸ézÿÿÿf„I‰’˜ë‹€M‰‚�éoÿÿÿ@óúHƒì(fHnÎH‹5ÌíH‰úH‹ºíH‰ñH)ÁHƒù†‚H‹=›íHƒÀH9ø„´H‹ §íI‰ñHÈH÷ÑH!ÈH‹ líI‰ÀI)ÈI)ÉM9ÁHBÆfHnÀflÀ)TíH‹BH…À„|@H‰ÂH‹@H…ÀuôHƒÂH‰:HƒÄ(ÄH‰|$¾H�=ÿì) $è‚H‹T$fo $H‹ýìH‹=îìH‹5÷ìHƒÀH9ø…Lÿÿÿ€ íé@ÿÿÿfDHƒÂH‰:HƒÄ(Ãff.„�óú¶Gƒè<v ¸ÃH‹O(H‹�àH9&çtãH…ÀtÞHƒìH‹‰˜H‰úH…É„èHƒy„L‹&ëH‹ëL‰ÆH)ÆHƒþvsH‹5üêHƒÀH9ð„ŸH‹=ëM‰ÂHøH÷×H!øH‹=ÍêI‰ÁI)ùI)úM9ÊIBÀfHnÀflÀ)µêH‹AH‰H‰0HƒÆ¸HƒAH‰qHƒÄÃ@¾H�=têH‰T$H‰ $è¶€H‹wêL‹xêH‹T$H‹ $éWÿÿÿf.„€ ‰êéUÿÿÿ@H‰<$¿è‚ÿÿH‹$H‰ÁH‹B(H‰ˆ˜H‰IHÇAéòþÿÿ€H‰Iéâþÿÿff.„@óúAWAVAUATUSH‰ûHƒìHH‹o@dL‹$%(L‰d$8A‰ôèrÿÿH‹3H�=á‰1Àè`"H‹;èø®þÿƒÀƒø�ô¹)ÁH‹=ææL�í�H�E‰1À¾èD¹þÿH‹C`H‹=IåH…Àt H9¸à„÷1ÀE„äL‹-;ëHDèL‰êH�t$èz·þÿ‹ ìèH‰ê1ÀH�t$H�=•qHÓêH‹‹àèÄ!H‹CHH…ÀtH9èuFH‹C`H…ÀtH‹ ÖäH9ˆà„™H‹D$8dH+%(… HƒÄH[]A\A]A^A_ÃfDH�|$è®þÿH‹=æ¾L� ��HH�^ˆ1Àèb¸þÿL‹cH1ÿº‹ 9èH�5ùpIÓìè’­þÿL‰æH‰Ç1Àè!éZÿÿÿL‹kXLh0é ÿÿÿöÞã„»H‹=ôãH‰ÚH�5"&è]´þÿ‹ ßçHÓíLíH9- êsH‰-ê€=Žå„ÿÿÿH‹=ÝãH‹Gÿ�ðH…ÀŽÿÿÿH‰Ç1íèà®þÿH‹=¹ãI‰ÆH‹GL‰öÿ�øI‰ÁH…ÀéŒff.„�HƒÅI9é„sM‹$îH‹C`I;D$ uäL‹x0M|$M9ïrÖAöD$tÎL;=gésÅM‹T$M…Òt»A€:tµH‹=>ãL‰æL‰ $L‰T$è]¸þÿL‹ $„Àu•L‹T$A€:$tŠH‹=ëâ1É1ÒL‰ÖA¸è�¯þÿL‹ $H…Àt$H‹@(H‹€àH…À„Tÿÿÿ‹@D÷Щ…Dÿÿÿ¹¾1ÀL‰ $H‹=5äL�<›H�”†èš¶þÿI‹T$L‰þ1ÀH�=SoèdL‹ $éûþÿÿH‹5ùã¿ è'®þÿ¹éøüÿÿDL‹£˜M…ä„KþÿÿI‹D$H‹ |æHÇI‹D$H‰ÊL�4ÅH‹VæH)ÂL9ò‚BL‹=;æLðL9ø„WH‹HæH‰ÏHÐH÷ÒH!ÐH‹ æH‰ÆH)ÖH)×H9÷HBÁ1ÒfHnÀflÀ)óåI‹$H…Àt/ff.„ff.„@H‹0H‹@‰ÑƒÂI‰4ÏH…ÀuëI‹t$ºL‰ÿE1öH� ¤Iÿÿè©þÿ1ÀIƒ|$tDI‹<ÇH‰Þèt#A�FI‰ÆI;D$ræL9=gås%L;=våsfInÇflÀ)Tåé"ýÿÿ€L‰þH�=.åè}éýÿÿ@H‹D$8dH+%(uTHƒÄHL‰÷[]A\A]A^A_éÚ¦þÿf.„L‰öH�=æäè1{H‹òäH‹ óäéœþÿÿfD€ åé�þÿÿè'ªþÿ€óúAWAVAUATUSHƒìHdH‹%(H‰\$8‹_ƒû‡ÄH�­±‰ØH‰ýI‰õHc‚HÐ>ÿàH‹D$8dH+%(…8H�=nHƒÄH1À[]A\A]A^A_éø„H‹_º1ÿH�5µmèI©þÿH‰ÇH‰Þ1ÀèÌH‹}ècH‹D$8dH+%(…ÓH‹5PáHƒÄH¿ []A\A]A^A_ép«þÿH‹=1á¹1ÀH��ƒL�*˜¾芳þÿH‹UI‹EH‹JH‹zƒù„¢ 1Û€?.u€”ÃH…ÀH�5ZÙHDƃù…x Æ6ÝH� LlH‹=Àà¾H�‚m1ÀHÇçÜè³þÿH‹}è‘H‹5’à¿ èÀªþÿH‹D$8dH+%(…ðHƒÄH[]A\A]A^A_ÃDH‹(èOkÿÿH‹=Pà1ÀL�U—¹H�¨‚¾該þÿH‹E(L‹e0H…ÀtL`0‹E-ƒø‡˜ H�°Hc‚HÐ>ÿàfDH‹ ñߺ ¾H�=ElèC²þÿH‹EH‹H…Òt7H�XH�lL�-2lL�%�ß¶ I‹|$(L‰ê¾1ÀHƒÃè²þÿH9ëuàH‹D$8dH+%(„-þÿÿ臧þÿ€H‹D$8dH+%(uäH‹HƒÄH1ö[]A\A]A^A_éøÿÿ€H‹ Aߺ ¾H�=#l蓱þÿH‹]H…Ûtf.„H‰ßL‰îèõüÿÿH‹H…ÛuíH‹D$8dH+%(…mÿÿÿH‹ êÞHƒÄHº ¾[H�=Ôk]A\A]A^A_é.±þÿfDH‹OH…É„+þÿÿH‹D$8dH+%(…ÿÿÿH�‚ké:H�5 j€H�jH‹WHEðH‹D$8dH+%(…ÞþÿÿHƒÄHH�=bk1À[]A\A]A^A_éžfDH‹@è/iÿÿH‹=0Þ1ÀL�5•¹H�ˆ€¾艰þÿH‹E@L‹eHH…ÀtL`0H‹U‹ VàL‰æH�=tj¶BH‰ÃH‹B ƒãH‰ÚHÓêH‰Á1Àè&H‹u(H…ö„d1ÀH�=Rjè H‹}0è¢H‹5£Ý¿ èѧþÿ‹ óßH‰ØHÓèLàH‰âéöüÿÿfDH‹D$8dH+%(…àýÿÿH‹OH�-jH‹=RÝHƒÄH¾1À[]A\A]A^A_é°¯þÿH‹=1ÝL�8”1À¹H�‰¾芯þÿH‹EHH…ÀtUH‹0H�=Ïh1ÀL�=ÈèIH‹EHH‹XH…Ût"ff.„�H‹3L‰ÿ1Àè#H‹[H…ÛuêH�=›h1Àè €}`…:€}a…H‹uXH…ö„BH�=ff.„Aƒ|$8‡¾A‹D$8H� P¬Hc�HÈ>ÿàfDHƒ=Àß„Šûÿÿ€=+Ú„EH�=©g1ÀèOH‹˜ßH…Û„_ûÿÿff.„@H‰ßL‰îèµùÿÿH‹H…Ûuíé8ûÿÿ„H‹w1ÀH�=‹hèþH‹5ÏØH…ötH�=e~1ÀèäH‹D$8dH+%(…ôûÿÿH�=E�é·ùÿÿ@H‹ èWfÿÿH�=ög1Àè©H‹=JÛ¹ 1ÀH�©}L�C’¾裭þÿH‹UH‹E I‰×H…ÀtH‹@0L�<‹ mÝH‹U1ÀL‰þH�=£gHÓêèMH‹E(H‹H…ÒtAH�XL�-QgL�%¯ÚL�tf.„¶ I‹|$(L‰ê¾1ÀHƒÃè%­þÿL9óuàH‹5¡Ú¿ èϤþÿH‹E‹ íÜHÓèLøH‰ßéóùÿÿH;=¡Ý„H‹_HH‹w@1ÀH�= gè­H…Û„ßH‹C0H‹}@L‹%=ÚH‰ÎÞè)¢þÿƒø�Ó¹)ÁH‹=ÚL�!‘H�y|1À¾èx¬þÿH‹S@H‹s01À‹ PÜH�=œfHÓêè9L‹c8L9c0t H�5‹f1ÿº茡þÿL‰æH‰Ç1ÀèH‹½ˆH…ÿt>H‹<ÞÆÚÕó~m~H‰-ÖH‰÷ÕH�øÑfH:"À)êÕèõvH‹5fÙ¿ 蔣þÿH‹]H…Û„Çøÿÿ€H‰ßH‰îè%÷ÿÿH‹H…Ûuí鍸ÿÿ„1ÿºH�5·dèÝ þÿH‹=Ù¾‰ÙH‰Â1Àèu«þÿº1ÿH�58^è² þÿH‹T$8dH+%(…RùÿÿHƒÄHH‰Ç1Àºá[H�5{]]A\A]A^A_éª÷f.„H�=¹d1Àèò»A€|$<…1I‹D$H…À…BI‹t$H…ö„—H�=e1Àè·…Ût1ÀH�=AŽè¥ƒëuíIƒ<$t)H�=Ôw1Àè‹M‹$$M…ä…Þûÿÿff.„H�=Ž1ÀèbH‹5Ø¿ è1¢þÿH‹]H…Û„d÷ÿÿH‰ßL‰îèÉõÿÿH‹H…ÛuíéL÷ÿÿ@H�=Öc1Àèé#ÿÿÿDH�=«c1Àèé ÿÿÿDH�=|c1ÀèêéóþÿÿDH�=QÄ1ÀèÒ»éÛþÿÿ„H�=Ä1Àè²ëÞ1ÛH�ÇÏH…ÀHDÂH‹ÙÛH‰ºÓÆpÓH‰œÓH�½ÛH‰–ÓL‰-ŸÓèštH‹U€=oÓ‹B„³ƒø„M„Û…EHƒ=%Ó„ÉH‹8ÓL‹%!ÓH…À„ŠL`0º0xH‹=@ÕH�t$f‰T$L‰â莧þÿH�L$„Û„ÒõÿÿL‰%*ÛéÆõÿÿDH�=rb1ÀèÒéÕùÿÿDH�=Lb1Àèºé³ùÿÿH‹E H‹0é�øÿÿH�=²`1Àè›é¹ùÿÿH�5–a¸‹ ŒØ»L‹E H�=”bÓãH9ÃHBØ1ÀH‰ÚHÓêH‰ñL‰æèXH‹Eƒxt/H‹=ïÕL�öŒ1À¹H�Gx¾èH¨þÿH‹}è¿H‹5ÀÕ¿ èîŸþÿ‹ ØHÓëLãH‰;ÚéõÿÿH�5ü`¸é[ÿÿÿH�5ð`¸éJÿÿÿH�5à`¸é9ÿÿÿH�5¾`¸é(ÿÿÿf�1ÀH�=@aƒÃèŸI‹D$H…À„¾üÿÿH‹0H�=ÿ`1ÀL�=øwèyI‹D$L‹pM…öt!ff.„I‹6L‰ÿ1ÀèSM‹vM…öuêH�=Ë`1Àè<I‹t$H…ö…iüÿÿH�=7_1Àè édüÿÿH�=z`1Àè é¶øÿÿDH‹ÑL‹%êÐH…À…ÉýÿÿéÈýÿÿ@H�=pŠ1ÀèÒéøÿÿDH�=XŠ1Àèºéâ÷ÿÿH‰×é ýÿÿL‰æ¿ 耞þÿ¹éúÿÿH‹=¿Ò¸0xH�t$L‰âf‰D$è¥þÿH�L$éOóÿÿH‹r1É1ÒA¸H‹=aÒèŸþÿH� e_H‰ÂH…À„"óÿÿ¶@ƒè<‡óÿÿH‹J(H‹=WÒH�t$fÇD$[0ÆD$xH‹AXHB0H‹Q`H�L$H‰L$HB0H‰Â脤þÿH‹|$º H�5ñvèn—þÿH‰Áé·òÿÿ1ÛéâúÿÿH‹D$8dH+%(…ßóÿÿH�䣾êH�= Xè£áH� Á^ƒø…tòÿÿéhòÿÿf.„f.„f.„f.„fDHƒ=€Út7UH‰ýS1ÛHƒìff.„H‹QÚH‹<ØHƒÃÿÕH;PÚræHƒÄ[]ÃÃff.„óúöG u;€u5H‹W€:.tOH‹ ÑH‹O(H‹@H‹I`€xH‰O(•À¶ÀƒÀH˜€<ot Ãf.„H‹A@‹ ¾ÔHÓèH‰G0ÃfD€ziu×H‹G(‹  ÔH‹@@HÓèH‰G0H�¦ÊH‰G(Ã�óúÃff.„H…ÿ„×SH‰û‹Cƒøt;w!ƒøtƒø u H‹{èÖÿÿÿH‹H…ÛuÛ[Ã@ƒøuíH‹=|Õè·ÿÿÿëßDH‹C H…ÀtÑ€{ctaff.„ff.„ff.„ff.„DH‹PH‹�J$ H…Àt‡H‹PH‹�J$ H…ÀuÚéoÿÿÿDH‹H…À„^ÿÿÿH‹H…ÀuìéQÿÿÿ€Ãff.„@€>…çATUSH‰ûH…ÿt7L‹%ìÍH‰õI9Üt(‹CƒøtDw*ƒøtƒø u H‹{H‰îè¼ÿÿÿH‹H…ÛuÓ[]A\ÀƒøuçH‹=lÔH‰îè”ÿÿÿëÖf�H‹C H‹55ÏH…ÀtÄH‹HH‹Q`H…Òu(ff.„„H‹H…ÀtœH‹HH‹Q`H…ÒtëH9²àuâöB%€uÜ‹Q$öÂtÔ�â�útÆHƒy@t¿ÆEë¹f„Ãff.„@HƒìH‰úH‹H‰ñH9t#H‰t$¾mH‰<$H�=¼TèäïH‹L$H‹$H‹Aó~fH:"BH‰BHÇHƒÄÄSH‹H‰øH…Ût‹Sƒú twƒútƒúu[ÃfDƒúuH�{èÊÿÿÿHƒ8uäH‰ØH‹H…ÛuÅ[ÀóúƒtÃDH�G HÇG H‰G(Ãff.„@óúÆÏÿ%‡Öff.„@óú€=ÏtÆíÎÿ%VÖfDóú€=Ú΄ïAW‰ÈI‰×AV�PýSHƒìƒú¶NL‹v–ƒø@”Ç úƒùtz�yýƒÿ†Þ„Ò„¶1ÛºH�5ñS1ÿèi–þÿºªH�5kH‰Ç1ÀèƒíºH�5ÔH…Û„þ1ÿè7–þÿH‰ÙL‰òHƒÄL‰þH‰Ç1À[A^A_éKíH‹N(H‹IH‹™à„Òu²H‹N0ƒø… ºI9ȃÚH�5»ÔH…Ûu H�5÷Ôé™f�Àƒù…σøuJºH�5FÔës@H‹N(H‹™à„Ò…ÿÿÿƒøu"H…ÛtѺH�5ÏÓé<ÿÿÿf.„1Û1ÿºH�5áRè[•þÿº·H�5úiH‰Ç1Àèuìë³H�5IÓ1ÿè2•þÿHƒÄL‰òL‰þ[H‰ÇA^1ÀA_éIìf„L9ÁscH�5dÔH…Û…½þÿÿH�5œÔë¹f�1É1ÛºH�5aR1ÿL‰D$H‰ $èДþÿºÂH�5oiH‰Ç1ÀèêëL‹D$H‹ $é´þÿÿ@H…Ût#H�5„Ô1ÿè•”þÿL‰ñH‰ÚéYþÿÿf.„H�5™Ôé;ÿÿÿ@óúAU1ÿI‰õH�5®ÔATM‰ÄUH‰ÍSH‰ÓºHƒìèC”þÿHƒÄM‰èL‰áH‰êH‰ÞH‰Ç[1À]A\A]éSëóúAU1ÿI‰õH�5~ÔATM‰ÄUH‰ÍSH‰ÓºHƒìèó“þÿHƒÄM‰èL‰áH‰êH‰ÞH‰Ç[1À]A\A]éëSH…ÿtJH‰ûë$DƒøuJH‹sH�=mh1Àè‰èH‹H…Ût!‹C…ÀuÚH‹sH�=™n1ÀèhèH‹H…ÛußH�=¾‚1À[éQèH�*¤¾˜'H�=QPèéÙf„óúD¶OAöÁ…}AVH‰×H‰ðAUATUSH‰ËL‰ÁHƒì¶V€ú„€ú…‹1íL�-ÆÄE1äAöÁuGI‹u`H�¢ÃH9ÖA”ÀH…ö@•ÆA„ðt I9Õ…ÄH‹s`H…öA•ÀH9Ö@”ÆA„ðt H9Ó…¤H…ÿL‹@¸ºIDüHDÍIDÝLDàL‰$AƒáH‰L$I‰þH�5.ÓuH�5UÓ1ÿèn’þÿL‹$H‰ÚL‰öH‹L$H‰Ç1Àè…éM…ät&ºH�5g1ÿè=’þÿH‰éL‰êL‰æH‰Ç1ÀèZé1ÀH�=f�èL鋞ȅÀtZHƒÄ[]A\A]A^ÃDL‹n(H�¥ÂH‹n0M‹¥àI9Õ…ÞþÿÿL9ëuL9ÅtÅAöÁ…ÿÿÿéòþÿÿ„ÀºH�5´Ò1ÿ襑þÿH‰Ç1ÀèËèÇÈHƒÄ[]A\A]A^ÃH�� ¾JH�=fèü×ff.„�óúAWH‰ÐI‰ÊAVATUSHƒìƒ=[©ÿH‹T$@H‹L$H„ÓH‰óI‰ÇL‰Î1ÀI‰üH�=úeL‰ÅM‰ÖèCè‹%©…Àx�Pÿ‰©„*H…Ûu)1ÿºH�5Óèâ�þÿL‰úL‰öH‰Ç1ÀèèëCH‹[(¶C�Pú€úvð<wl„À„H‹[ºH�54Ò1ÿè��þÿL‰öH‰ÇH‰Ú1Àè½çH…í…œH�=ÂHƒÄ1À[]A\A^A_éšçf.„HƒÄ[]A\A^A_Ãè<‡ŸH‹K(H�êÀH9Á„�L‹�à1ÿH‹[ºL‰D$H�5ãÑH‰ $è �þÿL‹D$H‰ÚL‰öH‹ $H‰Ç1Àè!çH…í„dÿÿÿH‰îH�=Àd1ÀèçéNÿÿÿf�1ÿºH�5Ñè½�þÿH‰Çé8ÿÿÿDM‹D$Pé|ÿÿÿH�§ž¾\H�=>dèÖff.„óúHƒìH‹vH‹è{“þÿ…À”ÀHƒÄ¶ÀÃff.„AUI‰ùM‰ÅATI‰ÔUH‰ÍSHƒìH‹ËÎH…Ûuéùf„H‹H…Û„äL9Kuî9s…¥H‹C H…Àt?H‹•àH…Òt3H‹@H‹€àH…Àt#H‹@L‰ $H‹0H‹BH‹8èÙ’þÿL‹ $…À…à¿ è“�þÿfïÀfI:"ÄH‰hH‰ÁL‰hH‹C H…À„§ff.„f�H‰ÂH‹H…ÀuõH‰ HƒCHƒÄ[]A\A]Ãf�I‹YºH�5¨Ð1ÿèIŽþÿHƒÄH‰ÞH‰Ç[1À]A\A]ébåf�¿(‰t$ L‰ $èþ�þÿL‹ $‹t$ H‰ÃH‹¤ÍL‰KH‰H‰–͉sHÇCHÇC é)ÿÿÿH�S éhÿÿÿI‹YºH�5MÐéxÿÿÿ„óúAWA‰ÒI‰ÏL‰ÁAVSH‰óHƒì €=´Åu>€=ªÅu HƒÄ [A^A_Ã1ÒM‰ÈD‰ÖH‰ßè(þÿÿ€{uÝÆCL‰{(HƒÄ [A^A_ÃL‹v‰T$ 1ÿºH�5ÐL‰L$L‰D$è;�þÿL‰öH‰Ç1Àè^äL‹L$H‹L$D‹T$ é|ÿÿÿf.„HƒìH‹ÅÃH‰òH‰þH�=hÃH‹@ÿ�@H…Àt)H‹5šÌH;5‹ÌH‰ÂH‹=yÌtH�FH‰÷H‰xÌHƒÄÃHƒÆH‰D$H�6HÁæH‰PÌè›�þÿH‹5LÌH‹T$H‰0ÌH‰Çë´óúöG …¢ATUH‰ýSH‹W(H‹ ÃH‹B`L‹"H…Àt H9˜à„L‰æH‰ßèÜŽþÿH…Àt?H‹˜ðH…Ût3H‹E(L‹ ëf�H‹›ðH…ÛtH‹3L‰çè�þÿ…ÀuåH‰]([]A\Ã@H‹‰ÂÆEHÇE(ƒx@t/[]A\Ãf.„ÀH‹0L‰çèÍ�þÿ…ÀtÚémÿÿÿ@H‹i¶]lºH‰îH�=ÂH‹@ÀëƒãH‹€xÿ�ØöEkuÆEHºHÁã$H¸ÿÿÿýïÿÿÿH#EhH!ÓH ØH‰Eh[]A\Ãf.„AVSHƒì(dH‹%(H‰D$1À¶’Á‰Âƒâ€ú„™€ú…£¶PÀH‹5UÀH…ö„H‹=…Á1É1ÒA¸èŽþÿH…Àt ¶H�Qý€úvoH‹=À1ÒH�t$芇þÿH‹T$€:„ÎöÁ„ú„Û…3H‹D$dH+%(…HƒÄ([A^è „hÿÿÿƒà`< „0»éZÿÿÿH‹H(H‹Q`H…Òt„H‹= ÁH‹qXHp0Hr0艕þÿ„Àužº1ÿH�5_ÍH‹x¿èŠþÿH‹T$dH+%(…”HƒÄ(H‰ÞH‰Ç1À[A^é#áH‹5Ôª1ÛH‰5;¿éêþÿÿH‹=—ÀH‰Æè•þÿ„À…0ÿÿÿ1ÿºH�5Íè´‰þÿH‰Ç1ÀèÚàéÿÿÿH‹=^ÀH�5«zè2ŒþÿH‰ÁH…À„çþÿÿ„Û…©H‹q0H‹=3Àè¾”þÿ„À…Ïþÿÿë�H‹µ¾1ÿºH�5ÍèJ‰þÿH‰ÇH‰Þ1Àèmàé¡þÿÿH‹ÀH…Û„“H‹sH‹=µ¿E1À1É1ÒèQŒþÿH…Àt ¶x�Wý€úvH‹ëÊH‹@(H�=À»H9øƒþÿÿH�—ÀûÿÿH9ЂoþÿÿëÕH‹@0º1ÿH‰L$H‹¾H�57ÌI‰Æè¯ˆþÿL‰òH‰ÞH‰Ç1ÀèÏßH‹L$éÿÿÿ1ÿºH�5oË肈þÿH‰Ç1Àè¨ßé þÿÿ讈þÿff.„AVAUATUSHƒìH‹=ÄH…Û„áL�%í¿ff.„f�öCa …¶H‹k0L�-‹¾A¶T$I‹uPH‰ïèÙ‰þÿöC`…¯A¶M‰ÊˆL$ƒâ€ú„èöT¾ …ÛH…À„‡‹UDƒâ@u ‹…¨…ÀtPE1íA€|$„·H‹j¾H�5¾H‰ïH‹@ÿ�@„À…#A€|$…÷L‰ïè*‹þÿf.„H‹[HH…Û…3ÿÿÿHƒÄ[]A\A]A^ÃfDH…ÀuÛA€|$tÓH‹=ü½èÇŠþÿH‰ïI‰Æè¼Šþÿ1ÿºH�5&ËI‰Åè‡þÿL‰ñH‰êL‰îH‰Ç1Àè3Þë‘�‹UDH…À„§L‹-­½H‹EI‹M‹y9x„ ÿÿÿö„ÿÿÿH‹ 1ÿL‹0ºH�5LËH‰L$貆þÿH‹L$M‰èH‰êH‰ÇL‰ö1ÀèÊÝöC`„¾þÿÿéÿÿÿH�5ÜÊ1ÿºèx†þÿH‰îH‰Ç1Àè›ÝA€|$„ÝþÿÿH‹[HH…Û…"þÿÿéêþÿÿ€â„ùþÿÿL‹-ý¼1ÿºH�5¿ÊI‹EH‹H‹EL‹0H‰L$è†þÿH‹L$M‰èH‰êH‰ÇL‰ö1Àè/Ýé¯þÿÿH�=ìÿÿ螉þÿI‰Åé5þÿÿfDATUSHƒìdH‹%(H‰D$1Àö9¼ ……¶$¼ƒà<„�‹ý…À„‘ƒø„µ1ÀH�ùH�l$‰D$L�%é»f„I‹|$(H‰êH‰ÞèpŒþÿ‹D$ƒÀ‰D$ƒøvàÇD$ÿÿÿÿH‹=Ù»H‰êH‰ÞèFŒþÿH‹D$dH+%(…~HƒÄ[]A\À=¼…cÿÿÿëÔH‹D$dH+%(uVH‹=‹»HƒÄ1ÒH�5V[]A\éí‹þÿÇD$H�>H�l$L�%2»f�I‹|$(H‰êH‰ÞèÀ‹þÿƒl$uéé\ÿÿÿèß„þÿff.„@óúAWAVUSHƒìHdH‹%(H‰D$81À€…"H‹G(‹~¼H‰û‹ƒú„0ƒú„7H‹=»H‹hH‰ÚH�5¢ºL‹{0H‹Gÿ�0„À„”Hƒ=L¼„È€=¨Ã„H‹sH‹=¶ººè ŒþÿH…À„3H‰ÆH‰D$H�=¼H1Àè]÷H‹|$èóƒþÿH‹|$‰Ãèg€þÿƒû�V¸)ØA‰ÆM‰øº ¾1ÀH� UrH�|$èD�þÿ¾D‰ñ1ÀH‹=«»L�L$L�­rH�bXè ŽþÿH‹µàH�=§F1ÀèÖöH‹D$8dH+%(…öHƒÄH¸[]A^A_Ãf�;ƒÑþÿÿëÐfD9ƒÁþÿÿëÀfDºH�5ÚW1ÿèí‚þÿH‰Ç1ÀèsöºH�5ÿÇ1ÿèЂþÿH‰Ç1ÀèVöÆ`Âé¹þÿÿf.„H‹sH�=�G1Àè.öH‹{èÅ‚þÿ‰Ãé×þÿÿfDL‹s1ÿºH�5nÇèq‚þÿH‰ÇL‰ö1Àè”ÙéCþÿÿ€H‹5‰º¿ A¾豄þÿé˜þÿÿèw‚þÿ€AWAVAUATUSHƒìH‹- ¾H…ítL�-ºL�%¸²„H‹E0H‹˜�H…ÛuëNff.„H‹[H…Ût7Hƒ{`uðöE`tJH‹E0H‰ßH�5,¸H‹@ÿ�ÐH‹[H…ÛuÒf„H‹mHH…íu—HƒÄ[]A\A]A^A_Ä‹{$èBÿÿ„Àt L‰c`ëŽfDL‹3H�5.DL‰÷èf…þÿ…ÀuB¶»·ˆD$ƒà<„ÌL‹­»M…À„ÎI�x1É1ÒH‰ÞèL¢ÿÿé7ÿÿÿ€A‹Eƒø„ƒø„¦A€}„³A¿…H‹2µH‹€�H…À„°D‰úL‰öH‰ßÿÐI‰ÀH…À„™Aƒ}…ÐþÿÿM‹x@L‹³à1ÿºH�5'Æè’€þÿL‰ùL‰òH‰ÞH‰Ç1Àè¯×éšþÿÿf.„€=¸„ƒþÿÿé"ÿÿÿº1öH�=?qèK7ÿÿH‰¼ºI‰Àéÿÿÿ1öH‰ßè‚3ÿÿ„À…;ÿÿÿE1ÿé9ÿÿÿºD‰þL‰÷è7ÿÿI‰ÀHƒxh„ßI�x1É1ÒH‰ÞL‰D$è¡ÿÿL‹D$é*ÿÿÿº1öH�= ?èÒ6ÿÿI‰ÀHƒxh…˜þÿÿ¶-¶ƒà<t öC$…€þÿÿ¿(L‰D$èÍOÿÿH� †µL‹D$Ç‹ŵƒúƒÒÿH‹Ñ1ÉÇ@H‰HH‰P‹¨µH‰H ‰PI‰@hé(þÿÿL‹»à1ÿºH�5—Äè:þÿH‰ÞH‰ÇL‰ú1ÀèZÖé+þÿÿ¶޵ƒà<t öC$… ÿÿÿ¿(L‰D$è.OÿÿH� ç´L‹D$Ç‹&µƒúƒÒÿH‹ÑÇ@H‰P‹µ‰P1ÒH‰PH‰P I‰@hé±þÿÿDS¿H‹£–èÎNÿÿHÇÇ@ H‹SH‰H‹z–H‰CH‰P[ÄSH‰û¿è’NÿÿH‹CµH‰XH‰[H‰4µÃff.„óúAWM‰ÇAVA‰öAUATI‰ÔUH‰ÍSH‰ûHƒì(€=,¶dL‹,%(L‰l$M‰Í…á€= ¶u(H‹D$dH+%(…ŽHƒÄ([]A\A]A^A_ÃDH‹{P¾bèB~þÿH…À„ùH‹E¶@„À„ÙˆD$ H�t$ H�D$ E„ö„šH¹__CTOR_LH‰H¹_LIST__H‰HH‹{(A¸¹º螀þÿH‰ÃH…À„Ú€{uÆCH‰k(M‰èL‰ùL‰â¾bH‰ßèÞíÿÿé1ÿÿÿf„1ÿºH�5Ê¿è }þÿL‰æH‰Ç1Àè0ÔéúþÿÿHº__DTOR_LH¹_LIST__H‰H‰Héaÿÿÿ„H�t$ H‰ðé(ÿÿÿ¶ƒà<t¾bH‰ïè)}þÿH…À…çþÿÿ1ÿºH�5rÂè�|þÿH‰Ç1Àè³ÓéÅþÿÿfD1ÿºH�5º{èe|þÿH‰Ç1Àè‹Óéÿÿÿè‘|þÿ�óúAWAVI‰þ¿ÿÿÿÿAUATUSHƒì8‹hªH‰t$dL‹,%(L‰l$(I‰Õè5{þÿH‹=β1ÒL‰îM‰ìè!„þÿ‰ßH…ÀIDÅH‰Åè{þÿA‹F¨…̨…œL‰ëI‹~H…ÿ„LH‹D$H…À„Þ¶@¨„MÀèƒà<„³<„À„À„´@M‹~ë0f.„A¶GH‰Þƒà8< t <L‰æHEõ1Òèá|þÿ…Àt-M‹?M…ÿ„I‹H…ÿtë€?*uÀu½ff.„f�L9ítH‰ïèÓwþÿM9ìtL‰çèÆwþÿL9ëtH‰ßè¹wþÿH‹D$(dH+%(…æHƒÄ8L‰ø[]A\A]A^A_ÃA‹F¨…u¨…¨tHI‹~H�t$H‰\$èÕ„þÿI‰ÇH…Àuë+A¶Gƒà8< „hÿÿÿM‹?M…ÿtI‹H‰Þè”~þÿ…ÀtØHƒ|$„äþÿÿH‹D$ö@…ÕþÿÿH‹D$L‹8M…ÿ…ÿÿÿ@E1ÿéÿÿÿ„H‹=ù°ºL‰îèL‚þÿH‰ÃH…À…Gþÿÿé?þÿÿH‹=ѰºL‰îè$‚þÿI‰ÄA‹FM…äMDåé þÿÿA‹F¨u=¨„QþÿÿéÿÿÿAöF„AþÿÿH�t$H‰\$èâƒþÿI‰ÇH…À…&ÿÿÿé=ÿÿÿ�I‹~H�t$L‰d$轃þÿI‰ÇH…Àuë+A¶Gƒà8<„PþÿÿM‹?M…ÿtI‹L‰æè|}þÿ…ÀtØA‹Fé“þÿÿH�t$H‰l$èpƒþÿI‰ÇH…Àu ë.fDA¶Gƒà8<„þÿÿM‹?M…ÿtI‹H‰îè,}þÿ…ÀtØA‹Fé;þÿÿèJyþÿf.„óúH‹é³uþÿAWAVAUATI‰üUSHƒìL‹M…ÀtN‹OL‰Â1ÿff.„ff.„f„¶BH‹H‰ÆÀèƒæƒàH÷ ÁH…ÒuãA‰L$H…ÿuM‰D$HƒÄ[]A\A]A^A_ÃDHÿ1ÉL‰d$M�t$H�ÚèÿÿH�5Sÿÿÿ讂þÿL‰$$M‹<$I‰D$M…ÿtL‰ûM‹?öCu8I‰I‰ÞM…ÿuéH‹D$H‹ $IÇH‹@H‰HƒÄ[]A\A]A^A_ÀH‹D$ºH‰ÞH‹xè2|þÿL‹ M…äuH‰H‹$H‰$H‰ë‰f.„D¶kë&f„I‹,$H…ít7H‹sH‹}èª{þÿ…Àu&I‰ìA¶D$D1è¨8uÖH‰ßè.tþÿé8ÿÿÿf„H‰+I‰$é#ÿÿÿ@H…ÿt[H‰ú÷Çÿÿÿ?t0÷Çÿÿtx÷ÇÿuXHÁê H�5]L¿1ÀéÉ~þÿf„HÁêH�5+L¿1Àé©~þÿf„1ÒH�5L¿1Àé‹~þÿH�5îK¿1Àéu~þÿDHÁêH�5äK¿1ÀéY~þÿf„óúH9· t‹B…ÀtÃAWI‰ðAVI‰þUSH‰ÓHƒì(L‹ L‹zH‹6A‹P$L‰D$L‰ÏL‰L$H‰õè2uþÿL‹L$L‹D$H…ÀH‰Á„üI‹@@H‰A@A‹@|óAo@0‰A|A‹€´A0‰�´I‰H`IÇ@XAö@'u#I‹AL‰ÊL‰ÆL‰÷ÿ�P„Àt\HƒÄ([]A^A_Ã�L‰ÇL‰þH‰L$L‰L$L‰D$èvrþÿL‹D$L‹L$H…ÀH‹L$t¯I‹VƒH ƒzu¡I‹�ÐH‰‚°ë‘@ºH�5ÅJ1ÿè�uþÿI‰ÇÇCºH�5ÄJ1ÿèpuþÿHƒÄ(H‰êL‰þ[H‰Ç]1ÀA^A_é†ÌfDºH�5\»1ÿè=uþÿI‰Ç뮄óúAWAVATUSHƒì dH‹%(H‰D$1ÀH9· „ƒ‹B…Àu|öF'uvH‹N`H‹F@H‰ËI‰ÆH…ÀtcH…Ét^L‹:H‹jH‰t$H‰<$èÙþÿL‹$L‹L$H…Àxc…=I‹GL‰L$L‰ÿ1ÉL‰$1ÒH‰Þÿ�€L‹$L‹L$AöA%…”@H‹D$dH+%(…ŸHƒÄ []A\A^A_ÀHƒøÿ„®L‰ $èvþÿ‰Çè.~þÿL‹ $I‰Çº1ÿH�5°II‹è!tþÿH‹T$dH+%(…@HƒÄ H‰ÚL‰þH‰Ç[1À]A\A^A_é!Ë�H�T$L‰ÎL‰ÇL‰ $HÇD$è3wþÿ„Àt…H‹T$1ÉM‰ðH‰ÞL‰ÿè*uþÿ„À„hÿÿÿH‹|$èXpþÿé#ÿÿÿL‰L$L‰$èRuþÿL‹$L‹L$ƒø…2ÿÿÿéÆþÿÿH‰ÇL‰L$L‰$èGuþÿH‹t$H‹<$H‰éH‰ÂI‰ÄèP}þÿL‹$L‹L$H…ÀxRI‹WL‰L$L‰ÿL‰$L‹’€t‰ÁL‰âH‰ÞAÿÒL‹$L‹L$é�þÿÿ1É1ÒH‰ÞAÿÒL‰çè®oþÿL‹L$L‹$éaþÿÿºH�5NH1ÿL‰ $èÙrþÿL‹ $I‰Çé–þÿÿèsþÿ„óú€:tÃfDAWI‰÷AVI‰þAUATI‰ÔUSHƒìè¤}þÿH‰ÃH…Àxu2HƒÄ[]A\A]A^A_ÃH�5©¸1ÿºèerþÿL‰öH‰Ç1ÀèˆÉH‰ßè0tþÿI‹L$L‰þL‰÷H‰ÂH‰D$è8|þÿH‰ÃH…ÀxhH‹D$L�,ØH‰ÃL9èr3ë9DH‹EH…ÀtH‹H…ÀtI‹t$H‹xè vþÿ…ÀtUHƒÃL9ësH‹+H…íuÌH‹|$HƒÄ[]A\A]A^A_é|nþÿ@1ÿºH�5ò·èµqþÿL‰öH‰Ç1ÀèØÈésÿÿÿI‹\$ºH�5¸P1ÿèˆqþÿH‹ML‰úL‰öI‰ÀI‰ÙH�=G1ÀèšÈAÆ$é|ÿÿÿUH‰ýSHƒìèÒuþÿH‰ÃH…Àt:¿èpAÿÿH‹±¬Ç@HÇH‰XH‰H‰•¬HƒÄH‰Ø[]Ã1ÿºH�5b·èýpþÿH‰îH‰Ç1Àè Èë¤ff.„óú€=5©u3SH‹;¬H…ÛtfD‹C…ÀuH‹{èðmþÿH‹H…Ûuè[ÃfDÃH�(�¾9+H�=-è·€SH‰û€?_u€HƒÃ€;_t÷ºH�5 FH‰ßèÓmþÿ…Àu8¶C 8Cu/¶CH‹Í™fïÀH…Àt'@‹�¤…ÒxH‹PHH…Òt‚ðH‹@0H…ÀuÝÆ¦˜H‹5ÿ�H�=ˆ÷ÿÿèÿÿƒ=$–ÿuHƒ="–ÿ„H‹…”D‹š¨H‹²�E…Û„7H…ö„.H‰t$ L�- ”D‰\$ÿâºH�5ü�1ÿ¾ØèòUþÿ‰Ú‰ÞH‰Ç1Àè­@¶EHƒÅ„Àu´HƒÄ[]A\A]A^A_ÃDAƒMëÙf„AƒMëÉf„AƒMë¹f„AƒM ë©f„AƒMë™f„E…ÿuM�l$LA¿é{ÿÿÿM�l$HE1ÿékÿÿÿff.„óúH‹-‘SH‰ûH‰8H�GHH‹0H‰‘H�‡H9é‹t Hƒ¿t-ºH�5z1ÿèòTþÿºÉH�5ÙH‰Ç1Àè ¬H‹{0H9=‘‹t?H‹ ‹‹5ÞlH‰8H�‡H‰Ÿ H‰‚‹è\þÿH‹{0H‰Ú[H�5†òþÿéÁ_þÿ�ºH�51ÿè}TþÿºËH�5dH‰Ç1Àè—«H‹{0ë’�óúH‹}�H…ÀtH‹P HÇ@@H‰P8H‹@H…ÀuçH‹Ð�H…Àtff.„€ ¸üH‹@0H…ÀuðH‹ÉŠH‹€�H…Àt,ff.„f�H‹P@H‰PHö@%uHÇ@@H‹@H…ÀuáÃóúAVI‰ø1É1ÒUH‰ýH�=ȆS@¶ÞA‰ÙHƒìH‹5 �ƒŽƒŽÇý‡ÇKˆèÎŒÿÿƒ=?ˆtÇ3ˆHƒÄ[]A^Ãf�¶̉ƒà@tH‹-ˆH…Ò…ÔH‹5 ˆH‹=.ˆL‹ˆH�OÿH‰òI‰ÉH÷ÚM!ÁH!ÊtjM…ÉteH‰ùL1ÆH÷ÙH…ÎtWLÊH9×rOǽ‡è�þÿÿƒ]�ƒ=R‡tƒI�H‹5:ŽA‰ÙI‰è1É1ÒH�=Ñ…è Œÿÿ¶(‰ƒà@ë Çn‡„À„3ÿÿÿHƒ=v‡„%ÿÿÿó~X‡fH:"]‡Þ‰éÿÿÿ�H‹i‡L‹2‡H�LÿH÷ØH!ÁH‹‰I‰ÈI‰ÎH‹ ‡H‹€˜I)ÈH…ÀtmH‰×H)Ïff.„‹P$öÂtHH‹p0L9Ör?H9þs:�âH‰ñ�út‹ ‹ŒH‹P@HÓêH� 2LÆA¸H)΋H|IÓàI÷ØI!ðH‹@H…Àu§Ç…†M9ÐrhL‰�†èLýÿÿƒŒƒ=†tƒŒH‹5öŒ1É1ÒA‰ÙI‰èH�=�„L‰$èÄŠÿÿL;5M†L‹$ƒ§þÿÿL‰,†ébþÿÿ€ºH�5Å1ÿL‰T$L‰$è4Qþÿº°H�5H‰Ç1ÀèN¨L‹T$L‹$éXÿÿÿóú€=¦�„×AVAUL�-ª'ATM�eUH�-Ö†SD¿(M¾uè!ÿÿ¿8ÇH‰Ã‹ý†ƒøƒÐÿIƒÅH‹DÅL‰sHÇC H‰C‹܆ÇC‰CL‹5‡hè² ÿÿÇ@HÇI‹VH‰I‰FH‰XÇ@M9å…uÿÿÿL�- 'M�ef.„¿(M¾uèa ÿÿ¿8ÇH‰Ã‹]†ƒøƒÐÿIƒÅH‹DÅL‰sHÇC H‰C‹<†ÇC‰CL‹5çgè ÿÿÇ@HÇI‹VH‰I‰FH‰XÇ@M9å…uÿÿÿ¿(èÛÿÿ¿8ÇH‰Ã‹×…ƒøƒÐÿH‹DÅHÇCHÇC H‰C‹¶…ÇC‰CH‹-agèŒÿÿÇ@HÇH‹UH‰H‰EH‰XÇ@[]A\A]A^ÀÀóúAWAVAUATI‰üUSHƒìè6OþÿH…À„íM¾4$I�\$H‰ÅA½L�%Ó„A€þ\„™¿(èüÿÿ¿8ÇI‰Ç‹ø„ƒøƒÐÿI‹ÄM‰wIÇG I‰G‹Ü„AÇGA‰GL‹5…fè°ÿÿÇ@HÇI‹VH‰I‰FL‰xÇ@I9íƒJL¾3IƒÅHƒÃA€þ\…gÿÿÿI9íƒ+¾L�sM�}H‹hè5ÿÿH‹SH� .<Ç=H‰P‹SH‰X ‰PH‹Ç@H‰HÆ@(H‰…ˆH…Û„ùHÇD$ó~T$0fH:"T$()$@H‹CM…ätHƒx`tLfo $L‹;HPM…ÿtGM…í„^Hƒ¸�„8E…ö…ïH‰ßL‰ûèGþÿH‹CM…ät»Hƒx`u´L‰``ë®fDÇ€¬H‹t$H‰ppM…ítL‹¸�M…ÿ„àE…ö…—H‰ßè¯FþÿH‹\$H…Ût.¿èËKþÿ€ T€€ó~ Æ@H‰fH:"ÃHÇ~HÇá}HÇÞ}HÇÛ}H‹D$8dH+%(…´HƒÄH[]A\A]A^A_ÄH‰Ý¿èCKþÿH‹Só~D$H‰D$fH:"B@H‹H‰ïèîEþÿH…Û…•þÿÿé1ÿÿÿL‰¨�H‰ÝE…öu´L‰ûëÖ@E…öu£H‰ßè»EþÿI‹GM…ätL‰ûécþÿÿf.„fo$I‹L‰ûXPH…É„ þÿÿI‰ÏëÀèIþÿff.„óúAWI‰ÿ¿AVA‰ÎAUA‰ÍATI‰ôUH‰ÕSHƒìèuJþÿL‰8H‰Ã¶@ƒàøƒÈˆCE„í„ÙL‰cM…䄼H…ítH�5Ð,H‰ïèXEþÿ…ÀuDº¶CÁâƒàÇ ÐˆCH‹‰|H‹€ØH…À„HƒÄH‰ß[]A\A]A^A_ÿàfDH�56 H‰ïèEþÿº…Àt©H�5ÂH‰ïèéDþÿº…Àt‘1ÿºH�5B�èÍGþÿH‰îH‰Ç1ÀèðžégÿÿÿL‰Ïè`Dþÿ€cþL‰cé7ÿÿÿL‰çèÈGþÿH�xèoIþÿL‰âI¸ I‰ÁA¶$L‰É„Àu%é‹fDI£ðrªHƒÂˆH�q¶„ÀtiH‰ñ�pÖ@€þ1vݶzˆH�qL�R@„ÿtJ<\u\¶BHƒÂ@ˆ9„Àt'A¾ëÆ€HƒÄH‰Ø[]A\A]A^A_ÃfDÆL‰Ké€þÿÿ@E„öuëL‰Ïè‹CþÿL‰céfþÿÿL‰Ò‰øéwÿÿÿ„óúAWAVAUI‰õATUSHƒìH‹$~H‰T$H…ÿ„µI‰üH…Û„Š€?t H‹{€?uhºH�5�1ÿèiFþÿH‰Ç1Àè��HƒÄL‰ï[]A\A]A^A_éùBþÿf„ºH�5$�1ÿè-FþÿL‰æH‰Ç1ÀèP�H‹H…ÛtH‹{L‰æèJþÿ…ÀtÈH‹H…ÛuèI�}èÍÿÿI�}8èþÌÿÿM‹uH‹c}M…ö„¹f.„H…Û„.€H‹{@A¶FH…ÿ„ž¨…ÖH‹kHH…íuë[H‹mH…ítOM‹~H‹uL‰ÿè�Iþÿ…ÀuãA¶F2E¨8u׺H�5{Ž1ÿè\EþÿL‰þH‰Ç1ÀèœH‹mH…íu·fDH‹H…Û…tÿÿÿM‹6H‹ª|M…ö…QÿÿÿM‹u8M…ö„³@H…Û„Š€H‹{ A¶FH…ÿ„þ¨…†H‹k(H…íuë[H‹mH…ítOM‹~H‹uL‰ÿèÏHþÿ…ÀuãA¶F2E¨8u׺H�5»�1ÿèœDþÿL‰þH‰Ç1Àè¿›H‹mH…íu·fDH‹H…Û…tÿÿÿM‹6H‹ê{M…ö…QÿÿÿH‹D$M‰eI‰EX1ÀA€<$…RA‰EH…Û„•f.„H‰ØH‹H…ÛuõL‰(HƒÄ[]A\A]A^A_è„bþÿÿH‹H…Û…<þÿÿéÃþÿÿ€¨„ÿÿÿH‹H…Û…Üþÿÿécÿÿÿ€L‰öèèMþÿI‰ÇH…Àué{þÿÿM‹?M…ÿ„lþÿÿI‹nI‹wH‰ïè¬Gþÿ…À…TþÿÿA¶FA2G¨8uÏ1ÿºH�5‘ŒètCþÿH‰îH‰Ç1Àè—šë­DL‰öèxMþÿI‰ÇH…ÀuéËþÿÿM‹?M…ÿ„¼þÿÿI‹nI‹wH‰ïèþÿ1öH‰Ç1Àè–H‹L$H‹D$PL‰©€L‰axH‰ApéÿÿÿL‰±°é|ÿÿÿ@‰ØL‰yhƒàý‰™¬ƒø…OÿÿÿëÖfDºH�5\ˆ1ÿH‰D$è€>þÿH‰ê1öH‰Ç1Àè¡•H‹L$énþÿÿèòýÿÿf�óúS¿ H‹OVèzÿÿH� #tÇ@HÇH‹SH‰H�PH‰CHÇ@H‰PH‹VH9ÈsH�HH‰ VH‹ üUH‰[H‰ñUÃè{ýÿÿff.„óúPXH� ¾hH�=ºúHƒìèN„ff.„óúHƒìH‹©UI‰ÒH�'sH9Âs}H�PøH‹@ø€=csH‰„UH‰uUuYI‰ûH‹=ÙrE1ÉH‰òL‰$HƒhH�GXL‰T$A•ÁE1ÀHƒpH‰ÆA•ÀHƒÇPèÕðÿÿH‹žrL‹$L‹T$L‰X`L‰��HƒÄÃè0ÿÿÿóúAWH�“rAVAUATUSHƒìH‹øTH9ƒ·H�PøI‰üH‹@øH‹=Er€=®rH‰ÏTH‰ÀTH‹_@uCE1ÉHƒhH‰õA•ÁE1ÀHƒpA•ÀH�wX1ÉHƒÇPH�“ùè)ðÿÿH‹òqL‰``H‰¨�H‰ßèŸ<þÿH�xèF>þÿH‰Å¶„À„ H‰ÚH‰éH�=Fff.„¶ðöwŒu<_uˆHƒÁ¶BHƒÂ„ÀuáÆH‰îH�=ï1ÀL�5ûqèv¿ I‰Çè) ÿÿ¿0I‰ÅÇJ‹%rƒøƒÐÿI‹ÆI‰]AÇEI‰E‹ rA‰Eèì ÿÿ¿Ç=I‰ÄI‹EI‰D$A‹EM‰l$ A‰D$L‹-�SM‰|$AÇD$AÆD$(è§ ÿÿH‰îH�=XÇ@HÇI‹UH‰I‰EL‰`1À蹿 I‰Åèl ÿÿ¿ ÇGI‰Ä‹hqƒøƒÐÿI‹ÆI‰\$AÇD$I‰D$‹IqA‰D$è+ ÿÿ¿+ÇJ‹*qH‰ÆƒúƒÒÿI‹ÖH‰XÇ@H‰P‹ q‰PL‰âèýz¿0I‰Äèà ÿÿ¿Ç=H‰ÃI‹D$H‰CA‹D$L‰c ‰CL‹%†RL‰kÇCÆC(è¢ ÿÿH‰ïÇ@HÇI‹T$H‰I‰D$H‰XHƒÄ[]A\A]A^A_éí6þÿDH‰ééþÿÿèKüÿÿff.„óúSH‹vH…Ûuëgff.„f�H‹[HH…ÛtQƒ{uñöCatëH‹{0H…ÿt"¾è˜Dþÿ„ÀtÔH‹C0H‹@H‹H…ÀtÄ[Ãf�H‰ßèØàH‹{0H…ÿuÍH‹[HH…Ûu¯H‹?t[Ãff.„f�óúAWAVATUSH‰ûHƒì @„ö„Ä·GJfÁèƒà<†‘<…‘èôÇÿÿ1É1Ò¾H‰ÇèC ÿÿH‰ÃH…À„YHƒx0„|‹ºu…Àu €=¬utH‰ÞH�=ë÷1Àèè�öCa…ÏH‹C0¶@Hƒà<…¼H‰ßè£ãÿÿH‹{0H�5HoH‹Gÿ�È„À„6€KaHƒÄ []A\A^A_ÃD¶oƒà<uà·GJfÁèƒà<‡/<wÉ…wH‹‡ð¿I‰ÇH…À„Uè˜ÿÿH‹ás1íÇ@I‰ÄHÇH‰XH…ÒuéÊH‰Êƒz…=L‹BH‹ H‰T$I‹?I‹€ðH‰L$L‰D$I‰þH‹0è<þÿL‹D$H‹T$…ÀH‹L$„ñH‰ÕH…Éu©H‹jsL‰ L‰%`séÿÿÿ„À…ÿÿÿH�H¾+H�=¨ôè@~H‰ÇèÈÞ‹6t…À„xþÿÿé|þÿÿDH‹[0H�5Å31ÿºèy7þÿHƒÄ H‰ÞH‰Ç[1À]A\A^A_é�Ž<…JèóÅÿÿ¿H‰ÃèvÿÿÇ@H‰XHÇH‹ÅrH‰H‰»ré\þÿÿfDèCÿÿÇ@ëËf.„H‹[XI;XX‚�H…ÉuEéÑ„H‹€ðL‰÷H‰L$H‰T$H‹0èÔ:þÿH‹L$H‹T$…ÀugH‹H‰ÊH…ÀtZH‰Áƒy…ØH‹AH9XXs´H‹H‰ÆH‹rH92t>I‰$L‰!é´ýÿÿH‰ïqH‰ðqé¡ýÿÿI‰$H…ítL‰eé�ýÿÿ1ÉH‰ÈH‹2H‰Ñë¶L‰%Åqë¹L‰%´qémýÿÿH�8F¾ë*H�=óè§|1ö1ÀH‰Ñë€H�WF¾+H�=îòè†|H�ßE¾÷'H�=Öòèn|H�çE¾â*H�=¾òèV|H�¯E¾(H�=¦òè>|ff.„óúAWI‰×AVI‰þ¿ATUH‰õ¾pSHƒÄ€dL‹$%(L‰d$xI‰Ìè‡AþÿòE)D$@óo@ H‰ÃH‰h0)D$ óo@0Ç@óo)D$0óo@@) $)D$@óo@P)D$Póo@`)D$`ö{k„„€=Õrt·EJfÁèƒà<tlH‰ßèÔÓ¶Ca¨ uþÿM…ätL‰æH�=S 1ÀèÛ¦H…Û„bH‹sH�== 1ÀèÀ¦€=ºou ‹µoƒøv5þÿH…Àt H‰Ãéöýÿÿ�E1äéþÿÿ„L‰þH�=èö1Àè_¥éšþÿÿf.„H‹H‰òH�=­H‰Æ1Àè9¥H‹…ðH‹8èÊ1þÿH‹}I‰Æè¾1þÿA�Déòýÿÿ@H‹C(L‹ àé ýÿÿH‰æH�=¶{1Àè?†é§þÿÿè•1þÿDóúAWfïÀI‰×AVfH:"ÆI‰ÎAUM‰ÅATUSH‰ûHƒì(L‹'L‰L$)$M…ät.H‰õë �L‰#M…ät I‹t$H‰ïè 5þÿL‰áM‹$$…ÀtàH‰ËM…äuà¿8è¾2þÿfo $H‹T$H‰L‰xH‹Ç@0L‰pL‰h H‰P(HƒÄ([]A\A]A^A_ÃDóúATI‰ü¿0UH‰õSè¸ÿÿ¿Ç=H‰ÃH‹EH‰C‹EH‰k ‰CH‹-aHL‰cÇCÆC(è}ÿÿÇ@HÇH‹UH‰H‰EH‰X[]A\Ãff.„óúHƒìI‰øH‹HI‰ñH…ÿt!¹ºL‰Îè×4þÿH…ÀtRHƒÄÃD¿(H‰t$L‰$èµ1þÿL‹$¹=H‹5UGºH‰ÇI‰@Hè$3þÿL‹$L‹L$„Àt/I‹xHë˜�1ÿºH�5âLè�/þÿHƒÄH‰Ç1À鯆€ºH�5ÄJ1ÿL‰L$L‰$è\/þÿH‰Ç1À肆L‹$L‹L$I‹xHé7ÿÿÿóúAWI‰×AVAUI‰ýATUH‰ÍSH‰óHƒìXH‹HL‰D$dL‹$%(L‰d$HE‰ÌH…ÿt31É1ÒèÚ3þÿH…Àt%H‹D$HdH+%(…1HƒÄX[]A\A]A^A_Ãf�€=ßf…cL‹-TmM…ítL‰îH‰ßè¼2þÿ…À„,Ç*mL‰ïèB+þÿH‰ßèº0þÿH‰m‹ mL‹-kM…턉ƒø‡H�j€=çjL‰l$ H‰D$(H‰\$0HÇD$8…�L‰ïH�L$H�T$H�t$ è‘I‰ÅH…Àt/L‹5ºjºH�5y1ÿèÿ-þÿH‰ÇL‰ö1Àè"…L‰ïèÊ6þÿ‹tlH…í„«ƒø‡‹ºE„ä…¼1ÿH�5yè¶-þÿH‹T$HdH+%(…òH‹L$HƒÄXI‰ØH‰ê[L‰þ]H‰ÇA\1ÀA]A^A_鬄@‹lƒÀ‰ùkéçþÿÿ@H‰ÞL‰ïè5ýÿÿé�þÿÿH…í„׃øtbE„ä„DþÿÿH‹D$HdH+%(uyHƒÄXH�=<1À[]A\A]A^A_é=„D1ÿH�57xèú,þÿH‹T$HdH+%(„Dÿÿÿë4@ºE„ä…1ÿH�5‘xèÄ,þÿH‹T$HdH+%(„ÿÿÿèë,þÿºH�5Tw1ÿè•,þÿL‰îH‰ÙH�•H‰Ç1À讃L‹-ié:þÿÿf�ƒø…%ÿÿÿºE„ä„É1ÿH�5¸xèK,þÿH‹T$HdH+%(t<ë‰f„ƒøw»ºE„ätA1ÿH�5 xè,þÿH‹T$HdH+%(…OÿÿÿHƒÄXH‰ÚL‰þH‰Ç[1À]A\A]A^A_éƒ�1ÿH�5xèÒ+þÿH‹T$HdH+%(tÃé ÿÿÿD1ÿH�5?wèª+þÿH‹T$HdH+%(„ôýÿÿéáþÿÿ�1ÿH�5'xè‚+þÿH‹T$HdH+%(„oÿÿÿé¹þÿÿf„óúL�…Hƒì‰ùA‰ñL‰À1ÒëDƒÂHƒÀƒú4t,9uðH‹5acE…É… HÁâI‹|HƒÄéN,þÿfDE…ÉtNH‹54c¿ D‰L$ ‰L$èY-þÿ‹L$D‹L$ H‹=cƒù~+H‰þ‰Ïè:-þÿH‹5ûb¿ HƒÄé%-þÿH‹=æbƒù~~YH�þ1ÀD‰L$èA5þÿ‹D$…Àu¿HƒÄÃ@¿ ‰T$èâ,þÿ‹T$L�—H‹5˜bHÁâI‹|è’+þÿë†H‰þ‰Ïè¶,þÿë»@óúAWH� £5AVATUSH‰ûHƒìH…ÿt=‹Sƒú w ‰ÐHc�HÈ>ÿàºH�5‚ç1ÿèú)þÿºH�5#H‰Ç1Àè�fïÀa^j^HƒÄ[]A\A^A_ÃDH‹s€>.„c E1Ƀú„' H‹{ L‰ $H‰5^HÇ ^èHÿÿÿ‹ò]L‹ $ƒèƒø†âHƒ=â]…ÔHÇÑ]ë…€H�ùYH9ú]„Œ H‹CÆÑ]HǾ]H‰§]H‹C H‰¤]HƒÄ[]A\A^A_ÀH‹{è·þÿÿ€=�]H‹{ „& L‹=g]�;5„L‹d]L‰$èƒþÿÿ€=\]„äþÿÿH‹G]L‹$L9Àt@H…À„ÍM…À„ËH‹@0I‹p0Æú\L�.YHÿ\H� YH‰]I÷‹�úL� �ú Ž” �êƒú>‡H� Î3Hc‘HÈ>ÿà@H‹¡\H‹{H‰$èÔýÿÿH‹$€=©\H‰‚\„*þÿÿH‹C Hƒ=x\H� Y3HDC(H…ÀH‰Ã…·ýÿÿéïýÿÿH‹{è‡ýÿÿ€=`\„èýÿÿ‹=)„’�g ƒø~„f�Xƒø!„ëƒø-…ÅH÷\é¨ýÿÿf.„fïÀí[ö[‹=V�é =.Ž& -/ƒø'‡XH�Å3Hc‚HÐ>ÿà€H‹{è×üÿÿƒ=€[…8ýÿÿHƒ=Š[…*ýÿÿH‹s H�=þHƒÄ1À[]A\A^A_é~fD‹B[…À„æüÿÿH‹CH‹P`H‹@XHC ÆS[H‰4[HÇ1[H‰2[éÃüÿÿDƒ{„ÞM…É„å€=[„`Hƒ=[„kH‹C1ɺL‰ $H�=TIƒÿ†áJ�D?ÿ1ÒI÷÷J�D?ÿH)Ћ ÿàL1= QL9Q…£òÿÿé©ýÿÿHÇýP1ÀL9=äP’ÀH‰ÚPé{òÿÿHÇÚP1ÀL;=ÁP’ÀH‰·PéXòÿÿH‹ «PH…É„ L‰øH™H÷ùH‰“PL9œP…,òÿÿé2ýÿÿL‰øH+wPL9€PH‰iP… òÿÿéýÿÿL=WPëÂH‹NPI¯ÇL9SPH‰OH‰õH…ö„> €=ÓW…1 H‹uHL‹jPH…öu"é ff.„DH‹vH…ö„ÿ D‹V$A�â„AƒúuâL‹VM…Ò„W I9rA•ÂE„ÒuÈD‹V$A�âAƒút H‹vH…öuæH‰ÆH‰qE„ä…móÿÿHƒ=žM„Hóÿÿ¶�OH�=‚OL‰ $L‰ÎL‹W L‹ˆM‰ÐƒÊH‹ ŒMÀèˆaOH‹WPƒàˆD$AÿR¶D$L‹ $�…¶;Oƒàû Ћ*Mˆ*Oé×òÿÿH‹(MH�BÿHƒøý‡6ïÿÿéSóÿÿA€y…¸îÿÿM‹A(I‹A0L‰MH‰üLé�îÿÿH‹=(O¹A¹E1ÀH�5ÃNè^þÿH‰ÁH…À„l¶@�Pý€ú†–‹œLƒútƒú„y€=‹L„lH‰ $L‹sºH�5Åf1ÿèöþÿL‰òH‰ÞH‰Ç1ÀèoH‹ $Hƒ=ZLHÇÀÿÿÿÿH‹=DLHDÁH‰ALH…ÿ„æíÿÿH‹[H‰ $H‰Þè¸þÿ…À…ÎíÿÿH‹ $H…É„/îÿÿ¶Aƒè<‡ îÿÿH�-HH9A(…îÿÿ1É1ÒH�=XUH‰Þè@þÿH…À„óíÿÿ¶@ 8ÁQ…ãíÿÿépíÿÿf�=ux‹£K…À„;óÿÿH‹5¬KH‹ ÅKHƒþvH�Lÿ1ÒH‰ÈH÷öH)ÑH‹¸KÆnKÆ’KH+H0H‰KH‰ hKHÇeKéþìÿÿL‰aKE1Àé[îÿÿºH�56Ô1ÿè®þÿº¤éÜñÿÿ1ÀHƒ="K”ÀH‰Ké¹ìÿÿH‹ K1É1ÒHƒøv+f.„‰ÆHÑèƒæ ñH‰ÖHƒÂHƒøuéHƒÆ„ÉHEÖHÇÜJH‰ÅJéfìÿÿH÷¹JéZìÿÿH�5c1ÿºèþÿL‰öH‰Ç1ÀèI…”H‹{ ƒ„˜è=½ÿÿH�56D„À„K€='I…‚ƒ=êH„¢êÿÿé‘öÿÿ€M‹A(Iƒx`„2úÿÿH�E@ˆq H‰AI9À„1ƒç…(ƒú…ûÿÿ¶=�HL‹¹H‰þM‰Â@„ÿt I9À„ûHƒ=~H…àúÿÿé?îÿÿƒú|…·ïÿÿL =pHL9yH… êÿÿéõÿÿD‹?HE…Ò„äûÿÿºH�5 1ÿH‰$è¯þÿH‰Ç1ÀèÕjH‹ $éºûÿÿH‹Q(H‹B`H…À„§H�54DH9ð„ÅH‹RXHQ0HÇøGÆHH‰âGH‰ëGélûÿÿƒ=·G…oéÿÿL‹sºH�59b1ÿè*þÿL‰òé�ýÿÿH‹ƒNH…À…Zïÿÿƒ={Gu'L‹sºH�5b1ÿèòþÿH‰ÞH‰ÇL‰ò1ÀèjfïÀÆwGHÇTG)UGéîèÿÿºH�5Db1ÿè­þÿL‰úé ýÿÿ„À…»úÿÿE1ÀÆAL‰A(Hƒy …¥úÿÿH‹=IH;O0„”úÿÿH‰ÎH‰ $èšþÿH‹ $éúÿÿ�„É„†èÿÿH�ñAH9„vèÿÿéîüÿÿH‹C ƒx„ƃxu �8„€H‹ÔF�J$ é‚ýÿÿƒú„øÿÿƒú„xùÿÿL‹�F¶5eFé/ìÿÿH‹s1É1ÒH�=ÌOè·þÿH…À„ùîÿÿö@!…ïîÿÿ1ɶ5/L@8p ”ÁéßîÿÿH�5éè³þÿ…À…‰þÿÿH‹TFH…À„iþÿÿH‹@0H…À„\þÿÿ‹�¤…ÒxéHƒxHtâé°íÿÿ‹*F�Pÿƒú†+ƒèƒø†xçÿÿéUíÿÿƒ=®E„-õÿÿL‰$H‹[ ºH�5jè1ÿèþÿH‰ÞH‰Ç1Àè@hL‹$éüôÿÿƒ=pE„ïôÿÿL‰$H‹[ ºH�5AèëÀƒ=ME‡ÙH‹A0E1ÉÆiEL‰ REH‰CEH‰LEéÍøÿÿH‹=hGö€¸H‹^HHE^@èSþÿ1Ò‰ÁH‰ØH÷ñéôìÿÿH‹5=PH…öuéÍH‹6H…ö„¾ƒ~ uîL‹=GëM9VA•ÂE„Ò„_H‹v0H…ö„˜D¶ž¸Aöà …@L‹VHM…ÒtØAöB%€uÑM‹rM…öu·M9—˜A•Âë²H‹°DH9ò„nûÿÿé•úÿÿH‹@HfïÀÆ{DH‹@8H‰XDH�y@fH:"À)KDéäåÿÿH9gD„H‹BXfïÀHA0Æ6DH‰D)Dé¡÷ÿÿHJ0éiúÿÿºH�5]é—ñÿÿºH�5E]1ÿH‰ $L‰D$èMþÿH‹ $H‹T$H‰ÞHƒÄH‰Ç1À[]A\A^A_é[fH‹¬CÇâCH‰ûCé<åÿÿI9³˜A•Âé¡õÿÿH‰ $L‹sºH�5r]éèöÿÿH…ít A€ã …!õÿÿH‹vHH…ö„‹õÿÿD‹V$A�âAƒú„yõÿÿH‹vH…öuâéhõÿÿL‹=_EI‹·˜ëÄ€=·F„ûÿÿéÛþÿÿI‹³�H…ö…õÿÿé1õÿÿƒ8+…CüÿÿH‹Pƒz…5üÿÿ�:…)üÿÿH‹R€:.…üÿÿ€z…üÿÿH‹x ƒ„è¶ÿÿH�5»=„À……ùÿÿH‹C éÕûÿÿHƒ…]ùÿÿ饸ÿÿL‰ùL9þƒäÿÿH�T>ÿH)ñH!ÊHÐH‰aBéäÿÿL‰=UBÇ‹BéìãÿÿH‹‡BH‰8BéÙãÿÿH‰øé)îÿÿH‹Pƒz…rûÿÿH‹Bƒx…dûÿÿ�8…XûÿÿH‹Hƒy…Jûÿÿ�9…>ûÿÿH‹I€9.…1ûÿÿ€y…'ûÿÿH‹@ ƒx…ûÿÿHƒx…ûÿÿH‹B(ƒx…ûÿÿHƒx…õúÿÿé…øÿÿE1äé6óÿÿHƒ…Ùþÿÿémøÿÿff.„óúAWAVAUATUSHƒìHH‰T$(dH‹%(H‰D$81ÀH…ÿ„‘L�t$(H�T$0H‰ûH‰õfInÆfHnÊI‰ÌI‰õH�I=L�=®fH:"ÀfH:"È)$)L$ff.„ƒ{‡v‹CIc‡Lø>ÿàf„H‹{H‹T$(L‰áH‰îèLÿÿÿH‰D$(H‹H…Ûu¿H‹D$(H‹T$8dH+%(…•HƒÄH[]A\A]A^A_ÀH‹{0H‹D$(Æe@fo$L‰-¤@H‰…@)†@è‘áÿÿ€=j@…Dƒ=-@„ÊH‹C‹ EF¶@ƒàÓèHD$(H‹H…Û…#ÿÿÿé_ÿÿÿfDH‹C‹ FHÓèHD$(H‹H…Û…úþÿÿé6ÿÿÿDA¶$¶ƒ¸I‰ÝH‹{HƒâƒàßÁâ Јƒ¸ègÎþÿH‹T$(H‹CHH‰T$0H…Àt&öƒ¸uö@$tH‰~@ÆIH‹P0H‰T$0H‹{L‰áH‰Þèÿýÿÿöƒ¸…«þÿÿH‹SHH…Ò„™þÿÿ‹J$H‹B0�áH‰D$0�ù„²H‹R@‹ EEHÓêHÐH‰D$0H‹»ˆH…ÿ„Vþÿÿfod$H‰-?Æó>H‰7?)% ?è+àÿÿH‹D$0é%þÿÿ�H‹Cö@%€…þÿÿH‹@@‹ àDHÓèHD$(H‹H…Û…Äýÿÿéþÿÿ€H‹{H‹D$(Æ�>fo$L‰-Ì>H‰­>)®>è¹ßÿÿ€=’>…<ƒ=U>„‹C-ƒø‡%‹ `D‰ÂH�5?¸‹–Óà9ÐBÂÓèHD$(H‹H…Û…-ýÿÿéiýÿÿ„H‹SH‰EIƒz… H‹EHH� 9H‰×ÆÛ=L‰5>H…ÀL‰->HDÁH‹L$(H‰ý=H‰ æ=èùÞÿÿH‹H…Û…½üÿÿéùüÿÿ„H‹T$(H‹=ôDL‰áH‰îèüÿÿH‰D$(H‹H…Û…ˆüÿÿéÄüÿÿºH�5eÆ1ÿèÝþÿºšH�5ÄÅH‰Ç1Àè÷_H‹H…Û…Küÿÿé‡üÿÿfDH‹1=H‹:=H‰C H…Ò„¶þÿÿHB0H‰C é©þÿÿ„H‹=H‰C8é¹üÿÿH‹zH;-ÍC¶tE<_uff.„�HƒÇ€?_t÷H�5õßH‰T$ èF þÿH‹T$ …À…®þÿÿAÆ$H‹Sé þÿÿ<.u·€uÊÆ"F¶ë¥¶ n>ƒá€ù…Pýÿÿé6ýÿÿ1ÿºH�5¯WèÚþÿH‰Ç1Àè_éüÿÿ1ÿºH�5Tßè¸þÿH‰Ç1ÀèÞ^éÊýÿÿH‹D$8dH+%(uH�r¾GH�=yÄèNè¼þÿff.„�HƒìH‹5ÍB1ÒdH‹%(H‰D$1À‰=½;H‹=V:H�L$ƒ®AÆD$HÇš<Æ;Eè.úÿÿH‹D$dH+%(uHƒÄÃèDþÿ@óúAVAUATUSHƒìdH‹%(H‰D$1Àƒ=a=v7€=C=x.@„ÿ…PH‹D$dH+%(…7HƒÄ[]A\A]A^Ã@D‹-¡=H�l$Ç’=H�ó<L�5Œ9E…턌¸ÿÿÿÿëf„‹ƒœI‹>H‹5¸AƒÀ1ÒH‰éƒµ@‰ƒœÆD$HÇ›;ƈD$„À…*L�5n:fïÀ€=Û4Æ>fI:"Æ)$…yfo$H‹gH�84)1:H9ЃtH�PH‹Õ=H‰>H‹/H‰L‰5%H…Û„„L�-4DH‹C¶@ƒè<†YL‹t$@‹sI‹~PèlþýÿH‰D$HH…Àu@A¶‹sˆ$ƒà<„>H‹C H‹@H‹¸àH…ÿ„Ä è0þýÿH‰D$HH…À„4H‹D$H¶@A‰Çˆ$AƒçA€ÿ„ƇY ÇD$ A€ÿtÇD$ A€ÿ…t¿(L�5‡îè~Íþÿ¿Ç‹}3H‰ÆƒúƒÒÿI‹TÕHÇ@ Ç@H‰P‹Z3‰PA¶×H‰Pè6>¿0I‰Çè)Íþÿ¿Ç=I‰ÄI‹GI‰D$A‹GM‰|$ A‰D$L‹=ÍAÇD$M‰t$AÆD$(èäÌþÿ¿ Ç@HÇI‹WH‰I‰GL‰`è½Ìþÿ¿0I‰ÇÇ‹¹2ƒøƒÐÿI‹DÅM‰wAÇGI‰G‹œ2A‰GH‹Có~@fI:"Ç)$èkÌþÿfo$¿Ç=I‰ÄI‹GI‰D$A‹GAÇD$A‰D$L‹=AÆD$(AD$è%Ìþÿ¿(Ç@HÇI‹WH‰I‰GL‹{L‰`èúËþÿ¿8ÇI‰Ä‹ö1ƒøƒÐÿI‹DÅM‰|$IÇD$ I‰D$‹Ö1AÇD$A‰D$L‹=}è¨Ëþÿ‹L$ H‹k Ç@HÇI‹WH‰I‰GL‰`‰HH…í„L�%P3é�¿(H‰ $èZËþÿH‹ $¿8ÇtI‰Ç‹R1ƒøƒÐÿI‹DÅI‰OM‰w I‰G‹91AÇG A‰GL‹5âè Ëþÿ‹L$ Ç@HÇI‹vH‰H‹mI‰FL‰x‰HH…í„„Iƒ|$(t}€|$„ H‹CH�=v¿H‹p1ÀènH‹CH‹xè¦úýÿƒø�½¹)ÁI‹|$(¾L�›é1ÀH�ñÔè÷þÿH‹uH…ö„ÒH�=SÙ1Àè¼mÆD$H‹MH�Ì*H9Át�I$ H‹D$@L‹u¶ˆ$ƒà<…¾þÿÿ¿(èÊþÿó~E¿Pó~L$HÇ‹0fH:"MfH:"Àƒú)D$0ƒÒÿ) $I‹TÕL‰pHÇ@ D‹sH‰P‹×/Ç@‰PL‹=‚è­Éþÿfo $foD$0Ç@ HÇI‹wH‰I‰GH@(H‹mD‰pHÇ@8HÇ@@HÇ@HH…í…|þÿÿ¿(èNÉþÿ¿8ÇI‰Ä‹J/ƒøƒÐÿI‹DÅIÇD$IÇD$ I‰D$‹&/AÇD$A‰D$L‹=ÍèøÈþÿ‹L$ Ç@HÇI‹WH‰I‰GL‰`‰HH‹H…Û…ˆúÿÿH‹™H�.H9ƒÅH�PøH‹@øH‰zH‰k€=w0…Q H‹=ï.ƒ@„³ ¿èÓðÿÿÇ©,èTrÿÿè¿­þÿH‹=8+èC^ÿÿD¶5‹.D‰ðƒà<„ñ Aƒæ …öH‹”.ƒx@„5 öc.t=H‹D$@H‹X`H…Ût/ff.„H‹t$@H‰ßèsþÿ„ÀuÆÉ/H‹›H…ÛuÜH‹õ+ÿP0H‹5«*H�=T`ÿÿè¿­þÿè­þÿH‹=“*è^½þÿH‹=‡*1öƒâ1è‰%ÿÿH‹=3è�¾þÿH‹¦+ÿP8èuÿÿ¶·-ƒà<tLH‹=ù-H‹t$@H‹Gÿ�„À„ÓH‹=Û-H�5(èè¯ùýÿH…Àt€='/‹P$„­ƒÊ‰P$Hƒ=l1„ÍH‹=Ÿ-H�5®ÍèsùýÿI‰ÄH…À„H‹°2H…Ût5ff.„H‹s8H…ötH‹SH‹=1è'þÿ…ÀˆòH‹[HH…ÛuÖ€=ä.¶5Þ.uƒÎ¶Ü,ƒà<„4H‹=Ú0è¥ûýÿ…ÀˆgH‹=Æ0è1ºþÿHƒ=¹0tH‹€*H‹€èH…ÀtÿÐ…ÀtèY´ÿÿH‹²1H…Àu*éÂff.„ff.„f�H‹@0H…À„�H‹P8H…ÒtêHƒxXuãHƒxpuÜHƒxhuÕH‹ZPH9XPuËH‹RXH‰PXëÁ�I‹t$(¿ èøýÿ¹é1ûÿÿ€1ÿºH�5_Íè}õýÿH‰Ç1ÀèiéÕúÿÿfDH‹UH‹MH�=TÍ1ÀH‹²àèÛhéûÿÿ€=R-…a ¶¢+ƒà<…'H‹p)ÿPX¿PèóöýÿL‹%4)I‰ÅM…ä„áHÇ$A¾ f�L‹=‰01ÛM…ÿ„ff.„A‹�¤…ɈñI‹‡�H…ÀteH‰$IƒH„ÖH‹,$ëI‹wH‰ØƒÃI‰tÅÆEH‹mH…턱I‹t$H‹}èƒøýÿ…ÀuáD9órÊC�46L‰ïI‰öHÁæèWõýÿI‰Åë²f�Aƒ¿¬tvI‹GHH…Àtmö@$tgIƒ|$t_Hƒ<$…~ÿÿÿL‰øë#ff.„@H‹ˆ�H‰ $H…É…VÿÿÿH‹@0H…ÀuãºH�5§F1ÿèàóýÿH‰Ç1ÀèK1ÒH‰$M‹0M…ÿ…óþÿÿI‹|$(E1ÒH…ÿtH� ÛË1Ò1öèLA‰ÂI‹|$ E1ÉH…ÿt"H� ÆË1Ò1öD‰T$èáKI‹|$ D‹T$I‰ÁH‹D$@E1ÀH…ÿI‹t$A•À1ÒIƒ|$(D‰ÑH‹xPAU•ÂSA¶D$PA¶D$Pè(øýÿHƒÄ „À„äM‹$$M…ä…/þÿÿL‰ïèÇïýÿL‹%°.M…ä„¥€A‹„$¤…Àˆ€Iƒ|$HtxI‹œ$�H…Ûuëif„H‹H…ÛtX€{uòL‹kH�5ËL‰ïè¿öýÿ…ÀtÛM‹t$@ºH�5ªE1ÿè“òýÿL‰êH‰ÇL‰ö1Àè³IH‹H…Ûu³ff.„M‹d$0M…ä…bÿÿÿöÎ(@… 1öƒ=Ô(@—Æ1ÿèqžÿÿH‹Š&ÿP@H�=°Wÿÿè[Wÿÿ¿è±êÿÿH‹j&ÿPx1ÒH�5N!H�=÷/èrðýÿ€=±)….·f(÷Ðf©€„{ H‹c.H…Ût]fDH‹D$@H‹31É1ÒA¸H‹x(èõôýÿH…Àt ¶@ƒè<v#L‹#H�53E1ÿºè�ñýÿH‰ÇL‰æ1Àè²HH‹[H…Ûu©H‹„$˜dH+%(…‰H�Ĩ[]A\A]A^A_é fÿÿ@1ÿºH�5"Dè5ñýÿH‰Ç1Àè[HéúýÿÿA€ÿ…1H‹D$Hº·@f‰$f%€f=¸D‰D$ é’óÿÿH‹C‰÷H‹hè"íýÿºH�5†BI‰ÇH‹C H‹@L‹ 1ÿèÁðýÿH‰éL‰úL‰æH‰Ç1ÀèÞGH‹H…Û…’òÿÿéøÿÿH‹=+èAïýÿ‰ÇèJðýÿL‹k0º1ÿH�5¸BI‰ÆèpðýÿL‰òL‰îH‰Ç1Àè�GH‹{8è×øýÿ1ÿH‰{8é½ùÿÿ¶µ&ƒà<„åýÿÿH‹=C%H�t$\ÆD$\è4Wÿÿ€|$\…Äýÿÿ€%…&¿é¸ýÿÿH‹=Æ&H‹t$@H‹Gÿ�øéï÷ÿÿH‹ƒ/H…Û„wñÿÿf�H‹C H…À„×E1íH‹McýAƒÅH…ÀuñIcíH�<íè‘ñýÿ1ÒI‰ÄH‹C H…Àt)ff.„„I‰ÔH‰ÁH‹H‰HƒÂH…ÀuêH� cÿÿºH‰îL‰çè³íýÿI‹$H‰C 1ÀAƒý„à ff.„ff.„f„I‹ÄI‹LÄHƒÀH‰ A9ÇëE…ÿ¸LNøK‹üL‰çHÇè¬ëýÿH‹H…Û…ÿÿÿé€ðÿÿH‹CºH�5Ë@1ÿL‹`èÐîýÿA¶÷H‰ÇL‰â1ÀèïEÇD$ éSñÿÿH‹{%1öH…Òu;éd€¸Óà Æ@öÆ…C‰ð÷Ш„7H‹’H…Ò„.·BJfÁè‰Áƒàƒáƒøu¼ƒÎëÊ1ÿºH�5Y@è<îýÿH‰Ç1ÀèbEé ÷ÿÿƒÎéÄ÷ÿÿ1ÿºH�5g?èîýÿL‰þH‰Ç1Àè5EéÄîÿÿH‹¹$H‹˜�H…Û„Âøÿÿf„L‹+L‰ïèîýÿH�x è¬ïýÿM‰è¾H� ÝÅI‰ÄHÇÂÿÿÿÿH‰Ç1ÀèiúýÿH‰ÞL‰çèŽ`ÿÿI�|$H‰ÞAÇD$.sizÆGeèt`ÿÿL‰çè,êýÿH‹[H…Ûu“éGøÿÿH‹C‹sH‹hH‹C H‹@Hƒ¸à„\üÿÿ‰÷è†éýÿI‰ÇH‹C H‹@H‹€àH‹@ºH�5¤>L‹ éTüÿÿL‹-)M…íuéþôÿÿff.„M‹mHM…í„æôÿÿAöEa uìI‹E0H‹˜�H…ÛtÜff.„�D‹c$A÷Ä tH‹;H�5ÐÄèÄðýÿ…Àt A�äÿÿÿD‰c$H‹[H…ÛuÌëš¶#ƒà<„;ôÿÿA¸1É1ÒH�5�Äè²ïýÿH‰ÃH…À„ôÿÿ¶@<v<… ôÿÿH‹#ºH‹|$@H‰ÞH‹@H‹€xÿ�ضCi‰Âƒâ€êt ƒàüƒÈˆCi€Kk€KPéÀóÿÿL‹%Ö"M…䄟óÿÿH‹¶"L�=¿õH‹@¶X1À„Û•À€ûH‰$HÀHƒÀH‰D$ff.„f�I‹¬$�H…í„Áff.„@L‹mA¶E„Àt!L‰ê¶ÈAöOŒu<_…ƒ¶BHƒÂ„ÀuâL‰ïèšëýÿH�x èAíýÿM‰è¾H� QÃI‰ÆˆH‹$HÇÂÿÿÿÿI�<1Àè÷÷ýÿH‰îL‰÷è^ÿÿAˆ^I�~H‰îH‹D$AºopAÇ__stfE‰Tèó]ÿÿL‰÷è«çýÿH‹mH…í…NÿÿÿM‹¤$M…ä…ÿÿÿézòÿÿH�=Q^ÿÿèüOÿÿéŽõÿÿè’¶þÿéÈøÿÿH‹ H…Û„»òÿÿff.„f�H‹D$@H‹s1É1ÒA¸H‹x(èÄíýÿH…Àt€Hl@H‹H…ÛuÓé|òÿÿH‹gfo%O&Æ0(fo-&H‹Á&óo)d$),$)\$ fI:ÜH…Ût?ff.„H‹C8H…Àt#H‰à'ÿÐHÇÓ'…Àt H‹CH‰t&H‹H…ÛuÌH‹e&H…Û…'H�E H‹5n%€ 8 H‰D$@H‹@(H‹@0H‰;$H…öt H‹O%H�pÐI‹<$1ÒèÿÿH‹) H‹$H9X0„¼fot$ H‹=sH�´$€L�-T%)´$€ègQÿÿfo|$L‰ïH�D$pH‰ÆL‹¼$€H‰D$L‹´$ˆ)|$pè7Qÿÿfo$$H�t$`H�=Ö$L‹d$pH‹\$x)d$`èQÿÿM…ÿ„ºæÿÿH‹D$`H‹l$hH‹5¨$H‰$H‹Í$H…Àu*éâH‹P0H…Òt HƒºðHDðH‹@HH…À„¶Paö tÕA‰ÐAÀèAƒà€â@…oH‰#H‹5#E„À„úH‰÷èâPÿÿH‹NPH9…åH‹^H‹8I‰>L‰8H;B„ H‹FPH‰EH‹$H‰FPH�FPH9ø#„àH‹$Hƒ~„¥H‹VHHƒÆHH‰L‰&H9ð„¨ó~é#H‹=º1öƒX"fH:"À)$èTÿÿfo$H‹t$L‰ï)D$pèÍOÿÿL‹L$pM…É„påÿÿI‹q0H‹”#L‹]#L‹†ðL�[HM…À„ÒL‰ÆM…Ò„:L‰Ð1ÿE1äëH…Òt HƒxHtH‰ÇH‹@PH…Àt"H‹P0H9òußH‹PHH…Ò…zH‹@PI‰üH…ÀuÞI�T$HM…äIDÓH‹H…Àt#f�ö@a@uH‹p0Hƒ¾ðt H�PHH‹@HH…ÀußM‹eI�yHM…À…ÃH‹L‰ I‹qHI‰AHL9â„I‰ñM…É„ŒäÿÿI‹q0L‹†ðM…À….ÿÿÿM…Ò…1ÿÿÿH‹CHL‰ÊH…À„&E1ÀL‰Úésÿÿÿ1ÿºH�5íãè€æýÿH‰Ç1Àè¦=é¿ãÿÿH‹ºH‹=KH‰H…ÿ„ZäÿÿèâgÿÿéPäÿÿƒâ÷‰P$éNïÿÿÆœ€=Å"„ïãÿÿHƒ=¶!„ëºH�5ͽ1ÿè æýÿH‰Ç1Àèã:H‹=Œ!è'RÿÿH‹=p!èRÿÿé§ãÿÿH‹=_ èÊ©þÿH‹=S è~äýÿ‰Çè‡åýÿºH�5381ÿH‰Ãè±åýÿH‰ÞH‰Ç1ÀèÔ<1öA�L$$€I‰t$@éBïÿÿH‹C‰÷H‹hèÀáýÿI‰ÇH‹D$@H‹@Pé;øÿÿE1ÿéXöÿÿL‹%P!M…äuétóÿÿfDM‹d$HM…ä„`óÿÿI‹D$0f÷@D@uåAöD$`uÝH‹˜�H…ÛuëÏff.„@H‹[H…Ût·Hƒ{`uðöC&uêM‹l$01ÿºH�5/8èâäýÿH‰ÞH‰ÇL‰ê1Àè<ëÀH�±é¯âÿÿE1äL‰%Bé5ûÿÿ1ÿºH�5÷4è¢äýÿH‰ÞH‰Ç1ÀèÅ;é´úÿÿH‰5H…ö„¢H‰ðéüÿÿ1íL‰KHM‹IHH‰jHM9]„¼M…É„âÿÿI‹A0L‹€ðM…À„•ýÿÿH‹CHL‰ÚH…À…ýÿÿM‹eI�yHI‹AHH…Àuë*ff.„DH�xHH‹@HH…Àt H‹p0L9†ðtæH‹L‰ L‹H‰I9Ôt/I‹€ H…À„ýÿÿHƒïHH‰xHéôüÿÿHƒÂHéÀüÿÿI‰}éßüÿÿI‰}ëËH‹=)èäâýÿE1ÉH‹ŠL‰ ëH‹{8èìýÿE1ÀL‰C8H‹[HH…Ûuçé2íÿÿH‹\H‰L‰%RL9è…XûÿÿH‰JH‰ØéIûÿÿH‰- éûÿÿL‰réêúÿÿHƒ=­…ýÿÿéãàÿÿH‰5«H…ö…ˆúÿÿ¾r H�=ùŸDˆD$ è;D¶D$ égúÿÿH‰5zH‰ðH…ö…yúÿÿE1ÀëÇèãýÿH‹„$˜dH+%(uèèL¢ÿÿH‹„$˜dH+%(uÐèĤÿÿHƒÂHI‰UM…É…<þÿÿéOàÿÿff.„HƒìA‰ñH‹5¢I‰øH‹�H‰òH)ÂHƒúv|H‹uHƒÀ H9Є­H‹ �I‰òHÈH÷ÑH!ÈH‹ FH‰ÇH)ÏI)ÊI9úHBÆfHnÀflÀ).HÇI‹DˆJH‰BH‰ÐHÇBI‰HƒÄÃf„H‰<$¾ H�=àD‰L$ èæ²H‹çD‹L$ H‹ÓH‹5ÜHƒÀ L‹$H9Ð…Sÿÿÿ€ ôéGÿÿÿff.„@óúAWAVAUI‰õATI‰üU1íS‰ÓHƒìH…öt51Éëff.„I‰ÅA‹U8…Ò•Àƒú•Â!Ð ÅI‹EI‰ML‰éH…ÀuÚL‹5#ùM…ä„?I‹<$H…ÿt€?*… €…–IÇ$¿hè±þÿA¶T$4HÇI‰ÇÇ@I‹FL‰8I‹$M‰~I‰GX1ÀAƒ|$0”ÁAˆobóAoD$ˆÈÐAGHˆÔfA‰G`I�GM‰o@I‰GI�G I‰G(I�G0Aˆ_cIÇGIÇG IÇG0I‰G8M…í„M‰î„M‹fM…ä„+L‰çèkàýÿL‰çH�5ûžI‰F è¸âýÿI‰F(IÄL‰çèIàýÿH‰ÅH…Àt1H�Xÿ1íëf„HƒÅHƒërA¾4H�=†»è…àýÿH…ÀtàI‰n0M‹6M…öu„@I‹]H…ۄþ3@„ö„!H�=à@€þ?tj@€þ[td@€þ*t^H‹H…Òué©�H‹RH…Ò„›@8ruíH‰×¾sHƒÃ@„öu½H‰øH‹8H…ÿ…ëff.„H‰Ç1öèÆüÿÿH‰ÇL‰þèˆ-ÿÿM‹mM…í…[ÿÿÿHƒÄ[]A\A]A^A_Ã@fïÉIÇF0AN é&ÿÿÿf�H�™¡¾*é8ÿÿÿ€ècüÿÿH‰Çéaÿÿÿ¿hè¯þÿfïÀHÇI‰ÇÇ@I‹FL‰8M‰~IÇGXAÆG`AˆobAGHéúýÿÿH�¿H‹8H…ÿué2ÿÿÿf�H‹H…ÿ„#ÿÿÿ€uíé(ÿÿÿH�5+�èåýÿH…À…]ýÿÿÆéQýÿÿHƒÄL‰þH�=i[]A\A]A^A_éz,ÿÿf.„óúH‹W0H‹’�H…Ò„ŠAWI‰ÿAVAUATUSHƒìHH‰T$H‹D$H�-A¼L‹(M‰îf.„L‹mM…íuOE„ät!H‹mH…ítE¶&IƒÆ�D:etÚH‹mH…íuñH‹D$H‹@H‰D$H…ÀuœHƒÄH[]A\A]A^A_ÀDˆd$/L‰t$0H‰l$8f„I‹]L‹cXM…ät7¾5Ç@„ö„‹L‰çèÛÝýÿH…À„zL‰úH‰ÆL‰çèÔ�þÿ„À„>H‹{HL‰þèà‘þÿ„À…*L‹s@M…ö„3H‹D$H‰\$L‰l$ L‰<$L‹ ëM‹6M…ö„íM‹~M…ÿ„‚L‰çI‹^(èëÜýÿI‰ÅH…ÛtH9ØrÎH‰ÚL‰æL‰ÿèpßýÿ…Àu¼I‹V0I‹n H…Òt*I9ÕrªL‰îH‰ïH‰T$H)ÖH)×LæLÿè>ßýÿH‹T$…Àu…H�DH9Å„ßH9ë‚ÑI9íƒõI‹~H‹4$è‘þÿ„À…Pÿÿÿ¿(èV¬þÿH‹L$Ç@HÇH‹Q(H‰H‰A(H‹L$L‰pM‹6H‰HH‹ $H‰H M…ö…ÿÿÿL‹l$ L‹<$M‹mM…í…qþÿÿD¶d$/L‹t$0H‹l$8éõýÿÿ@H�5{šL‰çèiâýÿH…ÀtdI‹w1ÒL‰çèÝýÿ…À„rþÿÿM‹mM…í…!þÿÿ뮀I�<€?*„&ÿÿÿI�41ÒèàÜýÿ…À„ÿÿÿésþÿÿA¾,ëéf„I‹H…ÿtL‰æèÚýÿ…À„ þÿÿI‹G0H…À„<ÿÿÿH‹€ðH…À„,ÿÿÿH‹€ H…À„ÿÿÿH‹xH…ÿ„ÿÿÿL‰æèÅÙýÿ…À„ÁýÿÿM‹mM…í…pýÿÿéúþÿÿ¿(èîªþÿH‹L$Ç@HÇH‹S(M‹mH‰H‰C(H‰HHÇ@L‰x M…í…#ýÿÿé­þÿÿÃI�<é ÿÿÿf.„f.„f.„fDóúÃff.„óúÃff.„óúH‹=åH‹^‹5`H‹GH‹€˜ÿàff.„óúÃff.„I‰ð1ÉH‰ÖH‹H‹TI3I3THƒÁH÷âH1ÂHÖHƒù@uÛH¸ùy7ž‘gVH‰òHÁê%H1òH¯ÐH‰ÐHÁè H1ÐÃóúǶÿƒà<„|€=¡H�Ngte€=}H�¶‘tU¶5Ò¶ Ê<„Þ<tbƒæ„IöÁ…¨H�!Zö�@tH�)öRH�ZHDÐH‰ÐÀ=H�ÒLtéH�±2H‰ÐÃD·U‰Â÷Òf÷„÷Ðf©„ÍH‹/H¸@H!ÂH9„—ƒæH�O uމÈ÷Ш„¶H�*‰ƒáH�ˆ^HEÐéhÿÿÿ€·Ý‰Â÷Òf÷„*÷Ðf©„îH‹·H¸@H!ÂH9„�ƒæH�wŽ…ÿÿÿ‰È÷Ш„ÕH�¾ƒáH�¤ãHEÐéìþÿÿH�¹‚öÁ„ÙþÿÿH�!ÚƒáH�ß­HEÐé¿þÿÿH�âöøH�¡ÜHDÐé¡þÿÿH�YöÚ„kÿÿÿéˆþÿÿ€H�a±öº…mþÿÿ÷уá„¢H�Ò9éVþÿÿDH�ùdöŠH�+åHDÐé3þÿÿf�H�·é%þÿÿ@H�™ºöZH�;·HDÐéþÿÿH�S�ö<„UþÿÿéêýÿÿH�².ö#H�ä8HDÐéÌýÿÿH�„2éÀýÿÿH� bé´ýÿÿóúǶ ƒà<„|€=ÁH�f9 te€=�H�žc tU¶5ò ¶ ê <„Þ<tbƒæ„IöÁ…¨H�y' ö½ @tH�éÔ ör H�[' HDÐH‰ÐÀ=4H�ê téH�É H‰ÐÃD·u ‰Â÷Òf÷„÷Ðf©„ÍH‹O H¸@H!ÂH9„—ƒæH�GÛ uމÈ÷Ш„¶H�‚W ƒáH�- HEÐéhÿÿÿ€·ý ‰Â÷Òf÷„*÷Ðf©„îH‹× H¸@H!ÂH9„�ƒæH�7_ …ÿÿÿ‰È÷Ш„ÕH�îß ƒáH�´ HEÐéìþÿÿH�áO öÁ„ÙþÿÿH�ᦠƒáH�Ïz HEÐé¿þÿÿH�¯± ö H�™ª HDÐé¡þÿÿH�©á öú „kÿÿÿéˆþÿÿ€H�‰ öÚ …mþÿÿ÷уá„¢H�Ò éVþÿÿDH�Á4 öª H�«¶ HDÐé3þÿÿf�H�‘‡ é%þÿÿ@H�IŒ öz H�›† HDÐéþÿÿH�ë^ ö\ „UþÿÿéêýÿÿH�:ü öC H� HDÐéÌýÿÿH�D éÀýÿÿH�3 é´ýÿÿóúSºH‰ûH�5ìÑ 1ÿèÅÓýÿH‰ß¾H‰Â1ÀècÞýÿ1ÿºH�5Ò è ÓýÿH‰ß¾H‰Â1Àè>Þýÿ1ÿºH�50Ò è{ÓýÿH‰ß¾H‰Â1ÀèÞýÿ1ÿºH�5[Ò èVÓýÿH‰ß¾H‰Â1ÀèôÝýÿ1ÿºH�5ÆÒ è1ÓýÿH‰ß¾H‰Â1ÀèÏÝýÿ1ÿºH�5éÒ è ÓýÿH‰ß¾H‰Â1ÀèªÝýÿ1ÿºH�5 Ó èçÒýÿH‰ß¾H‰Â1Àè…Ýýÿ1ÿºH�5'Ó èÂÒýÿH‰ß¾H‰Â1Àè`Ýýÿ1ÿºH�5JÓ è�ÒýÿH‰ß¾H‰Â1Àè;Ýýÿ1ÿºH�5uÓ èxÒýÿH‰ß¾H‰Â1ÀèÝýÿ1ÿºH�5ÐÓ èSÒýÿH‰ß¾H‰Â1ÀèñÜýÿ1ÿºH�5ëÓ è.ÒýÿH‰ß¾H‰Â1ÀèÌÜýÿ1ÿºH�5Ô è ÒýÿH‰ß¾H‰Â1Àè§Üýÿ1ÿºH�5qÔ èäÑýÿH‰ß¾H‰Â1Àè‚Üýÿ1ÿºH�5œÔ è¿ÑýÿH‰ß¾H‰Â1Àè]Üýÿ1ÿºH�5ïÔ èšÑýÿH‰ß¾H‰Â1Àè8Üýÿ1ÿºH�5Õ èuÑýÿH‰ß¾H‰Â1ÀèÜýÿºH�5oÕ 1ÿèPÑýÿH‰ß¾H‰Â1ÀèîÛýÿºH�5ÒÕ 1ÿè+ÑýÿH‰ß¾H‰Â1ÀèÉÛýÿºH�55Ö 1ÿèÑýÿH‰ß¾H‰Â1Àè¤ÛýÿºH�5PÖ 1ÿèáÐýÿH‰ß¾[H‰Â1Àé~Ûýÿff.„óúL�eL9WtGHƒìH‹w1É1ÒH‰|$H‹=/A¸èÌÓýÿH…Àt€xL‹L$L�'t¸HƒÄøÃf�L9P(uåI‹QH‹J0H‰P(H)H0ëÓ„óúATI‰òI‰üI‰ËUSH‰ÓHƒì ‹l$@H…öthH‰ð€~uH‹F(M…Ût}AöCFtv€=Ÿ uFI‹|$8H…ÿ„�I‹r1É1ÒL‰$L‰\$L‰D$L‰L$è¯ÔýÿL‹$L‹\$H…ÀL‹D$L‹L$tWH‹H H‰ÚL‰çL‰Ù‰l$@L‰ÖH‹@PHƒÄ []A\ÿàf�H�II9Ðt÷Å t,€xtfAöCD@u€K€Hé\ÿÿÿf�HƒÄ ¸[]A\Ãf�÷Å…>ÿÿÿH�ê I9ЄÄAö@%t]€x„ßAöCD@u0ë¯f.„€{…ÿÿÿAöCD@u€KéðþÿÿfD€K€HéÝþÿÿ€KéÑþÿÿ€AöD$uI‹Sƒz„´þÿÿ¶P�Jý€ù†•€ú…›þÿÿH‹P(H‹RH‹’àH…Ò„ƒþÿÿöBF„yþÿÿÆ@H‰P(élþÿÿf�¶H�Qÿ€ú‡=ÿÿÿH‹P(H…Òt öBF„*ÿÿÿL‰X(é!ÿÿÿH‹P(H‹RH‹’àH…Ò„ ÿÿÿöBF„ÿþÿÿÆ@H‰P(éòþÿÿH‹P(H‹’àH…Ò…xÿÿÿéöýÿÿff.„�óúHƒìH�=«è ÊýÿH…Àu H‹ H‹@pHƒÄÀóú1ÿ鵯ÿÿDUSHƒìH‹H…Ût3H‰ýff.„@H‹H‹{H‰Eè0ÊýÿH‰ßè(ÊýÿH‹]H…ÛußHƒÄ[]Äóú€= H‹H‹t H‹rH‹xéPÑýÿH‹rH‹xéCÑýÿóúHƒìH‰ñH…ÿt(H‰Îè¨ÌýÿH…ÀtHƒ³ fïÀ@HƒÄÃfDH‰Ï¾(H‰T$H‰ $èÒÐýÿH‹ $H‹T$H…ÀH‰Çu±1ÀëÊff.„f�I‰ûAWI‰ÒH¿‡Êë…±y7žAVH¯þL‰ÙAUM�«€ATE1äUSH‰óH‰ÖH‹H‹VHƒÁ HƒÆ H‹iàL‹IèLÀL)ÂL‹yðL‹qøL1ÊH1èIéH÷âH‰D$èH‹FðH‰T$ðH‹T$ðH3T$èLÀHúK�<7L1øH1×H‹VøL)ÂL1òH÷âH1ÂLâL1ÊI‰ÔI9Íu‰Hºùy7ž‘gVH‰øHÁè%H1øH¯ÂH‰ÆHÁî H1ÆL‰àHÁè%L1àH¯ÂI‰ÁIÁé I1ÁH�ûŸv}¹ I‹„ cÿÿÿI‹” kÿÿÿI‹| àI‹l èLÀL)ÂM‹l ðM‹d øH1øH1êHïH÷âH1ÂI‹„ sÿÿÿHòK�t%H1ÖI‹” {ÿÿÿLÀHƒÁ L1èL)ÂL1âH÷âH1ÂLÊH1úI‰ÑH9ËsˆI�DðI�LàI‹RoL)ÃH‹8L‹XI‹BgLÂL‹!L1ÚH‹iL)ÀH1øLßH÷âH‰ÑI‹RH1ÁI�,HñLÂH¾‡Êë…±y7žH1ÁI‹BwH1êL)ÀL1àH÷âH1ÂJ� H1øH�H¯ÎH¾c®²ÂwÊë…H¯ÆH¾ùy7ž‘gVHÁH¸OëÔ'=®²ÂH¯ØH‰ÐHÁè%H1ÐHÙH¯Æ[]H‰ÊA\A]HÁê%A^A_H1ÊH‰ÁH¯ÖHÁé H1ÁH‰ÐHÁè H1ÐH÷ØH‰ÂH‰ÈÃóúAWAVAUATUSHƒìxdH‹%(H‰D$h1ÀH…ÿ„I‰ÐH‹’8I‰ùI‰öH…Ò„áóAoA‹°¹M°)D$ óAo@)ñA‰Ê)D$0óAo@ )D$@óAo@0)D$PM9òƒÐMÎI�€…ö…öM‰òM)ÊI�úŽI‹¨I‹°I�^ÿL)ËI‰ëHÁëH� òI)óL9Û‚L‰t$¾±y7žL�T$ M‹  fnÞL�l$`H‰ÎH‰ÁIÔfpÛf�M�±€M…ÛtwH‰T$M‰ÇI‰È1É€I�¾€þÿÿL‰Ò1ÀAóo óoHƒÀHƒÂfïÁfpÉNfpÐ1fôÂfÔÁfÔBð)BðHƒø@uÉHƒÁIƒÆ@HƒÆL9Ùu¨H‹T$L‰ÁM‰øL‰ÐL‰æfoóo&HƒÀHƒÆfoÈfïÄfsÑ/fïÁfpÈ1fôÃfôËfsñ fÔÁ)@ðI9ÅuÀL‰ØL)ÛHÁàIÁH9ë‚CI‰ëH‰ÖéÿÿÿH…Û„SL�T$ M�™€1íff.„@I�»€þÿÿL‰Ö1ÒA óo óoHƒÂHƒÆfïÁfpÉNfpÐ1fôÂfÔÁfÔFð)FðHƒú@uÉHƒÅIƒÃ@HƒÁH9Ýr¨I˜H‰ÚHÁâIÑóAoAÀM‰òM)ÊA€ÀóAoAÐA€ÐóAoAàA€àóAoAðA€ðD‰ÑAƒú‚ŠI‹I�¸L‰ÎHƒçøI‰�D‰ÒI‹LøH‰LøH)øB� H)ÆÁéóH¥foD$ E‰�AfoD$0A@foD$@A@ foD$PA@0H‹D$hdH+%(…pHƒÄx[]A\A]A^A_ÃAöÂ…+E…ÒtœA¶Aˆ�AöÂt‹D‰ÒA·Lþf‰Lþéxÿÿÿ€H‰ÃHƃù‚‡I‹9H‰>K‹|øJ‰|øH�~HƒçøH)þI‰óL‰ÎDÙL)ÞÁéóH¥M‹¨I‹°MÑA¼L�T$ L‰íH� òH)õHƒý‡£M‹˜ L‰t$¾±y7žI‰ÇfnÞH�|$`H‰ÎL‰ÉIÓfpÛM‰Ùff.„L�›€E1öH…ítsH‰T$H‰\$€I�›€þÿÿL‰Ò1ÀA óo óoHƒÀHƒÂfïÁfpÉNfpÐ1fôÂfÔÁfÔBð)BðHƒø@uÉIƒÆIƒÃ@HƒÆI9îu¨H‹T$H‹\$L‰ÐL‰Îfoóo.HƒÀHƒÆfoÈfïÅfsÑ/fïÁfpÈ1fôÃfôËfsñ fÔÁ)@ðH9ÇuÀH‰èI)ìHÁàHÃM9ìroL‰íH‰ÖéÿÿÿI�P@éûÿÿöÁ…t…É„•þÿÿA¶9ƒá@ˆ>„…þÿÿC·LþfB‰LþétþÿÿI�¼0L‰òL‰ÎL‰D$èÈÉýÿL‹D$E°é²ýÿÿL‹t$I‰ÉL‰øIÇ€M…ätkH‰ÑH�À1íL�›€þÿÿL‰×1ö óAo 3óo1HƒÆHƒÇfïÁfpÉNfpÐ1fôÂfÔÁfÔGð)GðHƒþ@uÈHƒÅHƒÃ@HƒÁL9åu¨I¨AÇ€M‰òM)ÊI�úŽšüÿÿéƒúÿÿIÇ€L‹t$H‰ÈH…Û„;üÿÿH‰Ñé²ûÿÿóAoAÀA€ÀóAoAÐA€ÐóAoAàA€àóAoAðA€ðé4üÿÿA‹A‰�A‹T ü‰Tüé^üÿÿA‹ ‰C‹LüB‰LüéýÿÿèìÃýÿff.„�óúH�5ÕH�=þùééÂýÿf„óúH�5UH�=ÞùéÉÂýÿf„óúHƒìH�=Š €%‹ûÆ›gènËýÿºH…Àt‹P H‹@H‰føH¸ÿÿÿ¿øÿȉ^øH#ùHº@€H Ѐ [ù € lùÆÿúÆûH‰OùHƒÄÃf.„óúHƒìH�= €%›ûÆ«gèÞÊýÿºH…Àt‹P H‹@H‰Ö÷H¸ÿÿÿ¿øÿȉÎ÷H#ïøHº@€H Ѐ Ëø € ÜøÆoúÆúH‰¿øHƒÄÃf.„óúö¦øt H‹Äøƒx@tÃDHƒìÆ@RH‰Ç¹@º¾H‰D$èœåH‹D$Æ@RHƒÄÃff.„óúöFøt H‹døƒx@tÃDHƒìÆ@RH‰Ç¹ º¾H‰D$è<åH‹D$Æ@RHƒÄÃff.„óúº@¾¿éØí„óúº ¾¿é¸í„óúH‹5eH‹=VéÙöf„óúH‹5íH‹=Þé¹öf„óúAUI‰õATI‰ÌUHcïSH�uHcÚHƒìI‹}èÙÁýÿ‹ÀÖH�sHÁãI‰EHÁæ‰(¶ªÖˆT(I‹<$è¬ÁýÿH�5U£I‰$H� H‹F£H�yH‰H‹†HƒçøH‰�H)ùH)Î�Á ÁéóH¥HƒÄ[]A\A]ÃóúAUI‰õATI‰ÌUHcïSH�uHcÚHƒìI‹}è9Áýÿ‹ÖH�sHÁãI‰EHÁæ‰(¶ÖˆT(I‹<$è ÁýÿH�5• I‰$H� H‹† H�yH‰H‹†HƒçøH‰�H)ùH)Î�Á ÁéóH¥HƒÄ[]A\A]ÃóúATA‰ü¿(UH‰ÕSH‰óHƒìèÑ�þÿH‹SD‰ H‰P‹SH‰X‰PH‰h Ç@ƒ{t HƒÄ[]A\Ãf�ƒ}uïA�”$ÙþÿÿƒúvâA�ütÙH�ýïfïÀH‰ÇH‰D$fH:"ÂÆ¨óHÇÐóHÇÝó)ÆóèÑ”ÿÿ€=ªóH‹D$tˆH‹„óÇHÇ@ H‰PÇ@écÿÿÿff.„óúU‰ý¿(SH‰óHƒìèçŽþÿH‹S‰(H‰P‹SH‰X‰PÇ@ƒ{tHƒÄ[]À�ýtê�ýftâ�ýFtÚ�ý)tÒH�ïfïÀH‰ÇH‰D$fH:"ÂÆ¼òHÇäòHÇñò)Úòèå“ÿÿ€=¾òH‹D$t�H‹˜òÇHÇ@ H‰PÇ@é\ÿÿÿf�óú€t1ÀÃL�‰îL9G(uí¸öG täHƒìH‹w1É1ÒH�=¥ûè�ÂýÿH…ÀtL�TîL9@”ÀHƒÄÄ1ÀHƒÄÃf„óúH‹ÅñH‹€€H…ÀtÿàÃfDóúHƒì(dH‹ %(H‰L$H‹ ›òH…Ét_¶ƒòö óu~„Àu~¿H‰L$èK�þÿH‹|$H‰ÂH‹\òH‰$H‰H‰Nòè)¿ýÿH‹$Hƒ=­óH‰BtH‰Çè‚þÿHƒ=/ôtmHƒ=-ôtKH‹D$dH+%(ukHƒÄ(ÃfD„ÀtÍH�t$1ÒH‰Ïèm¹ýÿH‹D$€8t´H‹ äñé]ÿÿÿ€H‹=÷èĸýÿH‰Íóë H‹=÷èìºýÿH‰­óé{ÿÿÿ苼ýÿff.„óúH‹õò¶ŸòH‹RƒÈ ˆ’ò‹R …ÒtFƒútE‹Óóƒút6ƒút5…Òu-H‹ê÷H…ÒuÃ@H‹RHH…ÒtH‹J0H…ÉtîH‹Qƒz tÃà߈8òÃfDóúSH‹T÷H…Ût/ff.„@H‹»˜èD¸ýÿHǃ˜H‹[0H…Ûuà¶éñƒà<u[ÃH‹=)òH�5Òñ[éìÆýÿff.„�óúHƒ=TÛt?UH‰ýSH�FÛHƒìë H‰î¿ 蓽ýÿH‹H‰îHƒÃH‹xhèP¼ýÿHƒ;uÚHƒÄ[]ÃÃf�óúATI‰üUSH‹þÚH…ÛtQ1ÀH�-ðÚHƒ»Àt(H‹KhH�˜L‰ç1À¾èlÅýÿL‰çÿ“À¸H‹]HƒÅH…ÛuÁ…Àt[]A\úH�5DÀ 1ÿè…ºýÿ[L‰ç]H‰Â¾1ÀA\éÅýÿff.„@óúSº‰ûH�5¤—1ÿèFºýÿH‹=oè¾H� ñ�H‰Â1ÀèÙÄýÿöÃul…Ûu[ÃfDºH�5n—1ÿèºýÿ¿H‰Æ1Àè–ÁýÿH‹ÿÙH…ÀtÊH�óÙH‹Ph¿1ÀHƒÃH�5E—èeÁýÿH‹H…ÀuÝ[úH�5Œ¿ 1ÿ襹ýÿ¿H‰Æ1Àè6ÁýÿH�5§¿ 1ÿº胹ýÿ¿[H‰Æ1ÀéÁýÿóúATI‰ÔºU‰õH�58À SH‰û1ÿèM¹ýÿL‰á‰êH‰ÞH‰Ç1ÀèkºH�5±–1ÿè(¹ýÿH‰Ç1ÀèN¿èÄÁýÿ@AWAVI‰öH‰ÖAUATUH‰ýSH�ìhdL‹,%(L‰¬$XA‰Í„Ét €=öð…iH�Œ$€H�”$XH‰ÈÇHƒÀHÇ@ÐÇ@èH9ÐuãE¶L‰ð1ÿD‰Ê„Òt?€ú%„¸ff.„ff.„f�¶PHƒÀ€ú%„�„Òuë€ú%„‚…ÿt`H�H�sÉH�<Áff.„@ƒ9‡+ ‹Hc‚HÐ>ÿà‹ƒø/‡ÕA‰ÀƒÀLF‰I‹H‰HƒÁH9ÏuÂE¶E„É„CA€ù%„)ÆD$E1äL‰÷I‰ÿff.„ff.„€L‰ûA¶GIƒÇ<%t„ÀuìI9ÿ„L‰úH‰é¾H)úè Âýÿ¶C<%„˜„À„ðL‰ÿë—€D‹Aƒø/‡KH‹FE�PE‰ÁD‰N‹ L‰ Aƒú/‡ E�HD‰N‹L‰QAƒù/‡Þ AƒÀLÈD‰H‹H‰Aé ÿÿÿD‹ƒø/‡ÕA‰ÀƒÀLF‰A‹‰éäþÿÿM‰÷A¶GI�_M�w<0„w¶ÈH�5�À¾øD‰âöNt A€$„¶L�sÿáfD<%t E„í…[€|$… H‹„$XdH+%(… H�Äh[]A\A]A^A_ÀL‹FI�@H‰Fé&þÿÿ€L‹FI�@H‰Fé&ÿÿÿ€H‹FI‰ÀHƒÀH‰FM‹L‰I‰ÀHƒÀH‰FM‹L‰AL�@L‰FéÃþÿÿ@¶PL�P€ú0„öD¶ÚH�„¿D¾âA‰øBö[t €x$„á„Ò„BýÿÿƒêCI�B€ú5‡¿L�©È¶ÒIc“LÚ>ÿâ¶K€ùd„Ì€ùu„®€ùx„3�¾ÈH�u“H‰ï1À¾èç¿ýÿ¶C„À„¬þÿÿ<%„AþÿÿL‰÷éHýÿÿ€=/턘þÿÿÆí€|$„‘þÿÿéš @A¶G�WÏI�_é9þÿÿI‰ÞH‰î¿%èï¸ýÿA¶ë™HƒÀA¶Ré&üÿÿ¶PE�D$ÏL�Pé ÿÿÿ‰$AƒÄè]¶ýÿ‹$‰D$H�RH‹¼ÄˆL‹¼Ä€H‹„Ä�H‰<$H‰D$M…ÿ„>L‰ÿ耲ýÿ„À„þI‹·ÈI‹GjL‰ÿH�T$,RH‹L$H‹T$L�L$8L�D$@ÿ�8ˆD$ ZY„À„ðH‹D$(H‰ÁH…Àt¶€úC„Ì€úH„ÃL‰úH�5¾‘H‰ï1Àèt-H‹L$0H…É„WH�ÑŽ¾H‰ï1Àèp¾ýÿH‹T$(¶H…ÒtÿàA¶RD�ZœA€û‡høÿÿ»L£ÛƒYøÿÿI�Bºé•ýÿÿA¶ZºD�[¿A€û‡}ýÿÿ»IƒÂL£ÛIBÂégýÿÿÆD$M‰÷E1äéÆùÿÿE„í„1úÿÿ€=°è„$úÿÿÆ–èéúÿÿºé+ýÿÿH�RH��ŽH‹ŒÄ€éøýÿÿH�RL�sH‹„Ä€H…À„H‹HH…Ét@€þS„UH‰îH‰Ïèg±ýÿ¶CéîúÿÿH�RH�ÚžH‹ŒÄ€¾H‰ï1ÀAƒÄ診ýÿL�së˺é�üÿÿL�oH�³�H‰ï1À¾è{ºýÿH‹L$H‹$H‰ï1ÀH�5”�èA)é>üÿÿH�RH�Ì�H‹ŒÄ€ëŒH�RH�³�H‹ŒÄ€étÿÿÿH‹T$(€;GuªH…Òt¥H�5>�H‰ï1Àèï(éìûÿÿ1ÿºH�5öèG¯ýÿL‰þH‰Ç1ÀèjéÝúÿÿH‹FðH…ÒtHƒ=1ðt L9ú„‡ºH�5ÁŒ1ÿH‰L$èþ®ýÿH‹L$L‰úH‰ïH‰Æ1Àèy(H‹=êïL‰=óï膫ýÿH‹|$0HÇÎïH…ÿt èì°ýÿH‰½ïH‹=¾ïèY«ýÿH‹|$(èϰýÿH‰¨ïÆD$éªúÿÿfDH�RH‰ïL�sH‹„Ä€H‹pH‹HH‹L‹F H�5aŒH‹H‹P1Àèá'¶CéùÿÿH�RL�sH‹„Ä€H‹P0H…ÒtH‹’ðH…Òt öBI@„H‹xH‰îèM¯ýÿ¶CéÔøÿÿH�RL�sH‹„Ä€H…À„[H‹�ðH…Òt öBI@„iH‹8H‰îè ¯ýÿ¶C鑸ÿÿH�RH‰îL�sL‹¼Ä€I‹?èæ®ýÿI‹¿àH…ÿ„oýÿÿH‹GL‰þÿ�H…À„YýÿÿH‰ÁH�_‹H‰ï1À¾è¸ýÿ¶Cé.øÿÿH�RL�sL‹¼Ä€M…ÿt|A€?tv€=ìé„“H‹=ïãºL‰þèBµýÿH‰ÇH…ÀtwH‰îH‰$èN®ýÿH‹<$赩ýÿ¶CéÌ÷ÿÿH‹„$XdH+%(…±H�^ľÌH�=rŠè]óÿÿ1ÿºH�5ÙŠ躬ýÿ¾H‰ïH‰Â1ÀèX·ýÿé|üÿÿH‰îL‰ÿèØ­ýÿ¶Cé_÷ÿÿH‹=�íH‹t$0H…ÿA”ÀH…ö”ÂA8Ð…WýÿÿH…ötèC«ýÿ…ÀuxH‹D$(H‹=cíH‰ÆH‰D$èV°ýÿH‹L$…À…#ýÿÿéœýÿÿ‹nâH�âƒøƒÐÿH‹ ‹[â‰D$4H�D$0éÈûÿÿL‹@H‹ H�ö‰¾H‰ï1À蜶ýÿéÀûÿÿH‹L$(éÇüÿÿD‹@H�æ‰H‰ï1À¾ès¶ýÿé—ûÿÿH‹„$XdH+%(uwH�$þ¯H�=8‰è#òÿÿH‹ ùçH�p‰¾H‰ïè%¶ýÿ¶Cé<öÿÿH‹ L‹H�Y‚é_ÿÿÿH‹„$XdH+%(u¿èí³ýÿH‹FéSõÿÿèo«ýÿH‹Fé3õÿÿfDóúH�ìØH‰t$(H‰T$0H‰L$8L‰D$@L‰L$H„Àt7)D$P)L$`)T$p)œ$€)¤$�)¬$ )´$°)¼$ÀdH‹%(H‰D$1ÀH‰þH�„$à1ÉH‹=ÍØH‰D$H‰âH�D$ H‰D$Ç$ÇD$0ègñÿÿH‹D$dH+%(uH�ÄØÃ蚪ýÿf.„óúHƒìH�5uˆ1ÿºè5ªýÿ1öHƒÄH‰Ç1ÀéÿÿÿDóúHƒìH�5Yˆ1ÿºèªýÿ1öHƒÄH‰Ç1ÀéÕþÿÿDAVAUI‰õH�5;sATUH‰ýSèf²ýÿI‰ÄH…À„ã1ÛHƒ=ˆçt)H‰ïè6©ýÿH‰ÇI‰ÆèÛ©ýÿH‰ÂHcaç9Ð|}L‰÷èE¦ýÿAˆ]¿èg«ýÿH‰ïH‰Ã謫ýÿHƒ=$çHÇH‰CtwH‹xéH‰€=çåH‰gét ºH�5¶‡1ÿè:©ýÿH‰îH‰Ç1Àè þÿÿ[L‰à]A\A]A^Ã�A€</…xÿÿÿAÆH‹=ÑæL‰öèá§ýÿ…À”ÃéZÿÿÿ€H‰™æ늀=qåt±ºH�5+‡ë�óúSH‰ûH�ìÐH‰t$(H‰T$0H‰L$8L‰D$@L‰L$H„Àt7)D$P)L$`)T$p)œ$€)¤$�)¬$ )´$°)¼$ÀdH‹<%(H‰|$H‹=ˆÖè#®ýÿH‰â¹H‰ÞH‹=1ÛH�„$àÇ$H‰D$H�D$ ÇD$0H‰D$èïÿÿH‹=ÿÚèÚ­ýÿH‹D$dH+%(u H�ÄÐ[Ãè,¨ýÿff.„�óúUº‰õH�5NeSH‰û1ÿHƒìè¾§ýÿHƒÄ‰êH‰ÞH‰Ç[1À]éÙþÿÿf„óúAVUSH‰ÓH…ÿtOH�9ØfïÀÆóÛH‰ýfH:"ÀH‰5-ÜI‰ÎHÇÜ)Üè}ÿÿ€=ìÛuƒ=³Ûu!H‰Ø[]A^Ãf„[H‹°Û]A^Ã@1ÿºH�5R¡è §ýÿL‰òH‰îH‰Ç1Àè-þÿÿëºff.„óú@„ÿtÃQº(¹ H�5Ä:ÿÿH�=½äè8ªýÿ„ÀtXú1ÿH�5¤详ýÿZH‰Ç1ÀéÔýÿÿ@óúAUATUSHƒìH‹‹çH…ÛtzH‹=¯ÔL�-ˆÞèC¬ýÿH‰ÝºH‹H�5n­ L‹eA€}uH�5Ø„1ÿèE¦ýÿL‰æH‰Ç1ÀèhýÿÿH‹}èߢýÿH‰ïè×¢ýÿH…Ûu²H‹= ÙHƒÄ[]A\A]éÜ«ýÿX[]A\A]Ã@óúUH‰õSH‰ûHƒìHƒt)ºH�5^c1ÿèÖ¥ýÿºKH�5§€H‰Ç1ÀèðüÿÿH‹sH‹=uܺèË­ýÿH‰CH…Àt"H‹EH‰HƒÀH‰EHƒÄ¸[]ÀH‹CH‰CëÔfDAVI‰þH‰ÏAUA‰õATI‰ÔUSH‰ËHƒì0dH‹,%(H‰l$(L‰Åè_£ýÿ„ÀtSH‹ƒÈH‰âH�5úH‰ßL‰4$H‰D$Dˆl$ L‰d$H‰l$è:°ýÿH‹D$(dH+%(u4HƒÄ0[]A\A]A^ÃD1ÿºH�5¢ëèÕ¤ýÿH‰ÞH‰Ç1Àèøûÿÿë‹è¥ýÿ�óúAWAVAUATUSHƒìL‹o0M…í„úL‰ïè¹¢ýÿ„À„M‹½ÈM‹'M…äu#éÖff.„f�M‹gIƒÇM…䄸A‹D$©puã©tÜI‹T$ H‹R`H…ÒtÎHÇD$öÄ„”H‹UÙH…Ût°H‹*ff.„f�L‹sM…öuëED€{u:M‹6M…öt2I‹~H‰îèö§ýÿ…ÀuâI‹T$ H‹|$1öI‰ØL‰éè[þÿÿ€{tËDH‹H…Ûu¨M‹gIƒÇM…ä…HÿÿÿHƒÄ[]A\A]A^A_ÃI‹D$H‰D$é]ÿÿÿ1ÿºH�5Cêèv£ýÿL‰îH‰Ç1Àè™úÿÿéÓþÿÿ@óúAWI‰ÿ1É1ÒAVA¸AUATUSHƒìH‹wH‹=ÎÙèq¦ýÿH…À„ÅH‰Å¶@ƒè<‡ŸH‹E(H‹@`H…À„ŽL‹-.ØM…í„~L‹0f�M‹eM…äuëeDA€}uYM‹$$M…ätPI‹|$L‰öèÓ¦ýÿ…ÀußI‹_ H…ÛtÖfDH‹KH‹U(M‰è¾H‹}è'ýÿÿH‹H…ÛußA€}t¯„M‹mM…íu‡HƒÄ¸[]A\A]A^A_ÃI‹_1ÿºH�51øèL¢ýÿH‰ÇH‰Þ1ÀèoùÿÿëÆff.„f�óúAWI‰×AVAUI‰ýATUH‰õSHƒì8H‹F`H‹H‹BH‹@`H‰ßL‹ L‰æè¦ýÿ…ÀtMI‹GL‹pM…öuë>DM‹6M…öt1I‹vH‰ßèÜ¥ýÿ…ÀuèI‹H‰îL‰ïE¶w H‰$èÁ¬ýÿH‰ÁH…ÀxuAHƒÄ8[]A\A]A^A_ĺH�5¼ç1ÿH‰L$èx¡ýÿL‰îH‰Ç1Àè›øÿÿH‹L$H‰Ïè>£ýÿI‹OH‰îL‰ïH‰ÂH‰D$èG«ýÿL‹L$H…ÀH‰Áˆ)M�ÉM9ÙskL‰l$ H‰l$(L‰L$H‰\$L‰ËL‰d$E‰ôM‰Þff.„H‹+H…ít1H‹EH…ÀtH‹H…ÀtE„äu:f÷@t H‹P I9Wt>HƒÃL9órÇL‹L$HƒÄ8L‰Ï[]A\A]A^A_é\�ýÿ@H‹H H�=ÐH9ÑtöA%tzH‹4$H…ö„µL‹hL‰ï艤ýÿ…Àu¥Dº1ÿH‹mHƒÃH�5’§ èU ýÿHƒìM‰éH‰éÿt$ L‹D$ H‰Ç1ÀH‹T$8H‹t$0è^÷ÿÿXZL9ó‚#ÿÿÿéWÿÿÿfDö@‚u€é=ÿÿÿºH�59æ1ÿH‰D$èõŸýÿL‰îH‰Ç1Àè÷ÿÿH‹L$L‹L$é£þÿÿf„ö@„öþÿÿL‹héMÿÿÿff.„f�óúH‹uÝH…ÀtH‰x(1ÀÃf„HƒìºH�5]H‰|$1ÿètŸýÿºÑH�5ÎxH‰Ç1ÀèŽöÿÿH‹'ÝH‹L$H‰H(1ÀHƒÄÀóúH‹ÝH…ÀtH‰x01ÀÃf„HƒìºH�5‘\H‰|$1ÿèŸýÿºÚH�5^xH‰Ç1ÀèöÿÿH‹·ÜH‹L$H‰H01ÀHƒÄÀóúH‹•ÜH…ÀtH‰x81ÀÃf„HƒìºH�5!\H‰|$1ÿ蔞ýÿºãH�5îwH‰Ç1Àè®õÿÿH‹GÜH‹L$H‰H81ÀHƒÄÀóúH‹%ÜH…ÀtH‰x@1ÀÃf„HƒìºH�5±[H‰|$1ÿè$žýÿºìH�5~wH‰Ç1Àè>õÿÿH‹×ÛH‹L$H‰H@1ÀHƒÄÀóúAWAVI‰ÖAUATUSHƒì(Hƒ=£ÛL‹?‰t$„–Lcl$L‰ÿJ�4íèÁ�ýÿH‰D$H…À„&H‰ÅJ�èL�%í±H‰$E…펥„I‹GL‰ÿÿ�H‰EH‰ÃH…À„æI‹VI‹>L‰8H…Òt1ÉH�5Ø�1À蔞ýÿH‰ÇH‰{HÇCA€~‡­A¶FIc„Là>ÿàH�±ÌA½€H‰C I‹GD‰kƒx„åHƒÅIƒÆ0H;,$…cÿÿÿ‹T$H‹t$L‰ÿèÒ ýÿHƒÄ(1À[]A\A]A^A_Ã�H�YÌE1íë©@I‹v A½‚H…ötX1ÒH�=={1Àèá�ýÿL‰ÿH‰ÆH‰D$è!ŸýÿH‹t$H…À„+H‰÷H‰D$è™ýÿH‹D$éQÿÿÿ@I‹v A½H…öu¨H�5V�L‰ÿèÚžýÿé*ÿÿÿDI‹FA½H‰CH�«Êé ÿÿÿfDH‹H…ÀtH‹Pƒz„šH‹[ºH�5b£ 1ÿèã›ýÿH‰ÇH‰Þ1À1ÛèóÿÿA€~uÇCLòÿÿÿHÇC0A‹NƒùwH�*³¶CIé­þÿÿf�H�59£ 1ÿº‰ $芛ýÿ‹4$H‰Ç1Àè­òÿÿHƒÄ(¸[]A\A]A^A_Ãf„Hƒ¸…~ÿÿÿéSÿÿÿDº�"L‰ÿè šýÿH…À…'þÿÿë³1ÿºH�5£Xè›ýÿºúH�5wtH‰Ç1Àè7òÿÿé<ýÿÿf�óúHƒìHƒ=ÀØI‰øH‰ñt I‹@(óAo@8L‰A H‰1ÀAHƒÄÃ@H‰t$ºH�58XH‰<$1ÿ謚ýÿºH�5tH‰Ç1ÀèÆñÿÿH‹L$L‹$ë£ff.„óúAWI‰÷AVAUATUSH‰ûHƒìHƒ=0ØL‹o@H‹o8t~L‹sM…öt L9k„ÓH‰èH‰k D‹C01ÿH™L‰k¹H÷=´×H)ÕI‰ÖI‰ìJ�,*ºM‰áH‰îègšýÿHƒøÿ„�ÆC4IÆL‰sM‰71ÀHƒÄ[]A\A]A^A_ÃfDºH�5MW1ÿèÅ™ýÿº,H�5sH‰Ç1ÀèßðÿÿL‹c@M9å„LÿÿÿL‹s(1ÿºH�5`¡ è‹™ýÿL‰âH‰ÇL‰ö1Àè«ðÿÿé ÿÿÿfDH9k …#ÿÿÿéoÿÿÿ�ÆC4‹{01ÒL‰æèšýÿH…ÀxLH‹;H‰îèO™ýÿI‰ÆH…Àt9I‰Åëf�IÅH)ÅH…í„+ÿÿÿ‹{0H‰êL‰îèÓ›ýÿH…À„ÿÿÿØè3–ýÿƒ8tÔ¸éÿÿÿ@óúHƒ=´ÖSH‰ût‹s0ƒþÿtH‹{è �ýÿÇC0ÿÿÿÿ1À[Ãf�1ÿºH�53Vè­˜ýÿºƒH�5rH‰Ç1ÀèÇïÿÿë·DóúHƒìHƒ=PÖH‰ùt+H‰Ï裚ýÿ¾H‰Çè†nþÿH…ÀtI€Ha€1ÀHƒÄÃfDH‰|$ºH�5ÀU1ÿè8˜ýÿº¡H�5’qH‰Ç1ÀèRïÿÿH‹L$ë ¸HƒÄÃff.„óúHƒìHƒ=ÀÕH‰ùt+H‰Ïèšýÿ1öH‰ÇèùmþÿH…ÀtL€Ha€1ÀHƒÄÃf„H‰|$ºH�50U1ÿ託ýÿº°H�5qH‰Ç1ÀèÂîÿÿH‹L$ë ¸HƒÄÃff.„AVATI‰ôUH‰ýH‰÷SHƒì舗ýÿH‰ïH�XH‰ÞèY—ýÿH‰ÅH…Àt!H‰ÚL‰æH‰ïèœýÿHƒÄ[]A\A^ÄèÛ˜ýÿ1ÿºH�5Ÿ A‰Æè—ýÿD‰öH‰Ç1Àè(îÿÿëµfDóúAWAVAUATUSHƒìXdH‹%(H‰D$H1ÀöGF…l¶GJH‰ûA‰õƒàtE@€þu<t;<„KH�œ¼ÿÿH‹T$HdH+%(…¸HƒÄX[]A\A]A^A_Ãf„H‹{H‹+褟ýÿ1ÒH‰ïH�5uA‰Æ1Àèž—ýÿE„öH‰ÞHE5ÍH‰ÇI‰Äè5™ýÿL‰çH‰ÅèÚ’ýÿH…턉�MDH‰ïè‚“ýÿ„À„rE„öu=H‰ßè�™ýÿH‰ïH‰ÆèB¢ýÿH‰ßè*˜ýÿH‰ï‰Æè@�ýÿH‹EH‰îH‰ßÿ�8„À„0º� H�5ІH‰ïè„”ýÿH…À„¾HH‰ï讕ýÿI‰ÄH…À„RL�t$ H‰ßL‰öè"¢ýÿ…À„"H‹3H9t$ „\H‹ƒðL‰d$@H‰ïfoD$0I‰,$H…ÀAÆD$4HEÃAD$8IÇD$I‰D$‹D$(IÇD$IÇD$ A‰D$0è¢ýÿÿL‹=ƒÑÇD$1ÉI‰D$(M…ÿ„£H�D$H‰$ëE„H‹4$A¶ÕL‰÷AÿѹHÇ’Ò…Àt I‹GH‰3ÑM‹?M…ÿt[‹t$…öuSI‹G(H…ÀtçM‹O0L‰=_ÒM…Éuª‰L$ H‹4$L‰÷ÿЋL$ 몀A€|$4…l€KJH‰ïèx™ýÿ1Àéµýÿÿ�L‹5ÉÐM…öt&ºH�5àœ 1ÿ‰ $è.”ýÿL‰öH‰Ç1ÀèQëÿÿ‹ $A‹t$0ƒþÿt%‹T$…Ò…˜I‹|$‰ $è;˜ýÿ‹ $AÇD$0ÿÿÿÿ‹D$…À„sÿÿÿA‰È¸¶SJH‰kPAƒðH‰ïE èƒâçD)ÀƒàÁà ЈCJè“‘ýÿ¶SI¶EIƒâƒà÷ ЈEIéøüÿÿºH�5Ì› 1ÿ1í胓ýÿH‰Ç1Àè©êÿÿéÉýÿÿ@H‹{‰ $褜ýÿ‹ $„À…jÿÿÿA‹t$0ƒþÿ„\ÿÿÿé>ÿÿÿfDèû”ýÿ1ÿºH�5�› A‰Æè%“ýÿD‰öH‰Ç1ÀèHêÿÿé�ýÿÿH‰ïè˜ûÿÿH‹3H‰D$ é�ýÿÿI‹D$ I‹|$I‹t$H™H÷=pÐHÖH)×èEšýÿélþÿÿè “ýÿff.„óúAWAVAUATUSHƒì(H‹=gÉdH‹4%(H‰t$H�5Éèm•ýÿ…ÀˆX@•ǽ @ˆ|$€@¶ÿèg‹ÿÿH‹= ÉÆD$H‹Gƒxt8H‹ ÉH‹@ƒx„¬H‹D$dH+%(…+HƒÄ([]A\A]A^A_À=2Ò„LL‹-¥ÍM…íuéff.„M‹m0M…í„ØM‹¥˜M…ätçA‹D$…ÀtÞA‹L$9Èt¶.ȈD$ƒà<„‰ƒùvºE1ö€A�^9˃_D‰ðH�xHÁàH‰úLàHÁâI‹H‹rëDƒÃHƒÀ9Ës H‹P H9rtë‰ÞD)öA‰ÞƒþvHÁçH� ÓtºLçè†�ýÿA‹L$9Ër�…É„5ÿÿÿI�\$1ÀH‰Úëf„ƒÀHƒÂ9Á„ÿÿÿ9tí9Á„ÿÿÿH�<ÍèÈ’ýÿA‹|$I‰ÆHÁçè·’ýÿA‹|$I‰À…ÿ„šH‰ÂL� øH‰Øff.„f�H‹Hø‹0HƒÂHƒÀI‰ öH‹IH‰JøL9Êuá1Àff.„ff.„ff.„ff.„ff.„„9tI‹ÆI‹ ÀH‰JH‰Sø‰HƒÀHƒÃH9ÇuÝL‰ÇèÕŒýÿL‰÷èÍŒýÿM‹m0ÆD$M…í…(þÿÿH‹=ÄÆH‹Gƒx…�¶_ƈD$ƒà<t{H‹‡Hƒ=ýÃH‹€˜ H‹XH„øH�T$H�5(Æè�ýÿ„À„½H‹dÆH‹€H‹�˜ H‹BHH9Ãt$ƒývÆD$ƒí¶|$éýÿÿH9Â=H‰ZH¶D$„À„ ýÿÿƒíu×1ÿºH�5ᘠèD�ýÿH‰Ç1ÀèjæÿÿéäüÿÿA‰Þéüýÿÿº1ÿH�5÷— è�ýÿH‹T$dH+%(… HƒÄ(H‰Ç1À[]A\A]A^A_éæÿÿ1ÿºH�5˜ èÛŽýÿH‰Ç1Àèæÿÿé!ÿÿÿHÇéüþÿÿH‹=ÉÁ1öè²ÈL‹-KÊÆÄÎM…í…¸üÿÿé‹þÿÿfDHƒ=°Â…FüÿÿH‹€xH‹€0H…À„/üÿÿH�=ÔÄÿЄÀ…üÿÿ1ÿºH�5¬— èGŽýÿH‰Ç1Àèmåÿÿéüûÿÿ„ÆD$éÊþÿÿI‹]H1ÿºH�5 — èŽýÿH‰ÇH‰Þ1Àè2åÿÿéÁûÿÿè8Žýÿ„óúé'ûÿÿ€óúATUH‰ýSH�ìÐH‰t$(H‰T$0H‰L$8L‰D$@L‰L$H„Àt7)D$P)L$`)T$p)œ$€)¤$�)¬$ )´$°)¼$ÀdH‹<%(H‰|$¿èB�ýÿ¿H‰Ãè5�ýÿH�L$ I‰áI‰èH‰CH�”$ð¾H‰ÇHÇH‰T$ºH‰L$HÇÁÿÿÿÿÇ$ÇD$0è%”ýÿ=ÿw.H‹÷­H‰ð­H‰H‹D$dH+%(udH�ÄÐ[]A\Ã�H‹=ùºè”’ýÿ¹H‰âH‰îH�„$ðH‹=š¿Ç$H‰D$H�D$ ÇD$0H‰D$èwÓÿÿH‹=p¿èK’ýÿëŒè´Œýÿ@óúH�ìØH‰t$(H‰T$0H‰L$8L‰D$@L‰L$H„Àt7)D$P)L$`)T$p)œ$€)¤$�)¬$ )´$°)¼$ÀdH‹%(H‰D$1ÀHƒ=1ÄtEH�„$àÇ$H‰D$H�D$ ÇD$0H‰D$€?%u€!t6H‰þH‹=ôÃH‰â1Éè¢ÒÿÿH‹D$dH+%(… H�ÄØÃfD€uÄ¿ è`�ýÿHÇH‰Â‹$ƒø/wNH‹t$‰Ç�HH‹<>H‰zƒù/weH‹ ƒÀH‰Jƒø/wNHðH‹H‰BH‹ŽÆH‰H‰„Æéuÿÿÿ€H‹D$H‹0H‰ÁHƒÀH‰D$H‰rH‹IH‰Jëºè9‹ýÿH‹D$ë®H‹D$H‰ÁHƒÀH‹ H‰D$H‰J딄óúSH� ÔÂH‰ûH�&ŸHƒy(t#H…Û„jƒ{ ‡‚‹CHc‚HÐ>ÿàH‹y½H‰A(ëÐH‹=±ÂH‹K¾1ÀH�Fiè•ýÿH‹{ è‰ÿÿÿH‹5ŠÂ¿)[é·Œýÿ€H‹sH�=ðN1À[é½ýÿÿDH‹ Yº¾H�=iè«”ýÿH‹{è2ÿÿÿH‹K H�öhH‹=(¾1À[é“”ýÿH‹CH‹°àH…öt1ÀH�=—gèRýÿÿH‹CH‹S H‹0H�=‡h1À[é8ýÿÿ„‹;�ÿ5„ú�œ�ÿt�‡Ùþÿÿƒø‡”1öè^ÿÿH‹5ŸÁ¿ èÍ‹ýÿH‹5ŽÁ¿(輋ýÿH‹{èsþÿÿºH‹ oÁ¾H�=hèÆ“ýÿH‹{ é¿þÿÿDH‹{è?þÿÿH‹5@Á¿?èn‹ýÿH‹{ è%þÿÿH‹5&Á¿:èT‹ýÿH‹[(H� éÀH�>�éþÿÿD‹;1öè_]ÿÿHƒ{„”H‹ åÀº¾H�=˜gè7“ýÿH‹{é0þÿÿfD‹;�ÿ„Ê1öè]ÿÿH‹KH…ÉtJH�hgégþÿÿfDH‹q(H‹{苉ýÿ‹;¾èß\ÿÿH‹[ H� DÀH�™œénýÿÿ„[úH�5“E1ÿè ˆýÿºH�54_[H‰Ç1Àé$ßÿÿ@�‡µþÿÿƒø†lþÿÿH‹5À¿(è@ŠýÿH‹{è÷üÿÿ‹;¾è[\ÿÿé�þÿÿfDH‹{H‹5Ý¿[é߈ýÿ€1ö¿5è,\ÿÿºH‹ ¸¿¾H�=bfè’ýÿH‹{ è–üÿÿºH‹ ’¿¾H�=@fé­þÿÿf„H�=f1À[éÁúÿÿ�óúH‹u»H‹€H…Àt ÿà€¶Gƒè<v ¸Ã€H;w(uíHƒì¹¾1ÀH‰|$H‹=¿L�vH�maès‘ýÿL‹L$H�=ÂeI‹A(H‹pXH‹@`Iq0Hp01Àè,úÿÿL‹L$1ÀH�=¡eI‹qèúÿÿ¸HƒÄÃff.„óúH�ìØH‰T$0H‰L$8L‰D$@L‰L$H„Àt7)D$P)L$`)T$p)œ$€)¤$�)¬$ )´$°)¼$ÀdH‹%(H‰D$1ÀH�„$à1ÉH‰âH‰D$H�D$ H‰D$Ç$ÇD$0èÆÌÿÿH‹D$dH+%(uH�ÄØÃèù…ýÿf„óúSA‰úH‰óH�ìàH‰T$@H‰L$HL‰D$PL‰L$X„Àt:)D$`)L$p)”$€)œ$�)¤$ )¬$°)´$À)¼$ÐdH‹%(H‰D$(1ÀH�„$ðÇD$H‰D$H�D$0ÇD$0H‰D$ E…Ò„ AƒúuvºH�5d1ÿèó„ýÿH‰Þ1ÉH�,tH‰Ç1Àè-†ýÿH�T$¹H‹=ü²H‰ÃH‰Æè±ËÿÿH‰ßèi�ýÿH‹D$(dH+%(…ÑH�Äà1À[Ãf.„1ÿºD‰T$ H�5°cèx„ýÿƒ|$ H�GH�=ƒ[HDúH‰ÆE1ÀH‰ÚH� –s1Àèš…ýÿH‹=s²H‰Ãè ŠýÿH‹=$·H�T$H‰Þ¹èËÿÿH‹= ·èæ‰ýÿH‰ßè¾€ýÿéPÿÿÿf„H‹=)²H‰ÞH�T$1ÉèÚÊÿÿH‹5²¿ èù‡ýÿéÿÿÿè„ýÿff.„@AWAVAUATUH‰ÕSHcÞH�ìˆHƒ=qÁ‰L$LdL‹$%(L‰d$xL‹'„½…ÛŽ:ó~%–hH�[I‰ïH�§bó~-ˆhHÁãó~5„hfH:"àH��bHëó~=shfH:"èH�†b)d$0fH:"ðH�†b)l$ fH:"ø)t$)<$ëIƒÇ0I9ß„¯I‹7H‹=�¹1Ò1ÉA¸è†ýÿI‰ÅA¶G�Pþ€ú†®M…í„=½AöEu01íHƒ=W¹t$L‰êL‰æH�=¹è3‹ýÿH…À•Â1ÉI9Å•Á!щÍE¶uA�Fÿ<†©A�Fý<‡„I‹E(A€þuH‹@H‹�àA¶Gƒè<‡‡H;ø¸¸t1I9Ô„ˆH…Òt#‹RD¸÷Âu1Àƒâ@•ÀƒÀ„€=‰¾A‰G(„ïþÿÿfo $foD$H� ­fA‹oL‹4Á)D$P)L$`ƒý‡¢H‹lìPfoT$0fo\$ H�zDE¾oH‰D$p)T$P)\$`Aƒý‡,J‹LìPM‹/º1ÿH‰L$@H�5�‹ IƒÇ0èh�ýÿH‹L$@M‰ñI‰èH‰ÇL‰êL‰æ1Àè}ØÿÿI9ß…QþÿÿH‹D$xdH+%(…®H�Ĉ[]A\A]A^A_ÃfDH��·I‹E1À1ÉH‹xPA¹H‰ÆèýÿH…ÀtI9ŽI‰Å…`þÿÿH…À…A¶G<�K<~O¸é½þÿÿDH;q·¸„¦þÿÿI9Ô„ýH…Ò„”þÿÿ1ÀöBF•ÀƒÀéƒþÿÿ<�ø<‡ø¸éfþÿÿfDºH�5Ç_1ÿèM€ýÿE‰èº@¾H‰ÁH�=¦À1ÀèïŒýÿH� ˜ÀéœþÿÿºH�5Š 1ÿè €ýÿA‰èº@¾H‰ÁH�=¦À1À诌ýÿH�-˜Àé&þÿÿH‹©½ºH�5…‰ 1ÿH‹@H‰D$@è½ýÿH‹t$@A¶ÖH‰Ç1ÀèÚÖÿÿE¶ué<ýÿÿA¶UöÂuƒýuI¸é‡ýÿÿ€<„ÿÿÿH‹D$xdH+%(…âH�Í–¾*H�=·XèÜÅÿÿ@¸ƒý„:ýÿÿ¶£µ‰Áƒá€ùtGƒâƒàÂu €ù…¦þÿÿL�5µI‹uI‹¾è_„ýÿ„À…‡þÿÿI‹F(ƒx@tRAƒ‡rþÿÿ‹D$LéÙüÿÿf„1íéHüÿÿ1ÿºH�5<<è¶~ýÿºüH�5XH‰Ç1ÀèÐÕÿÿéûÿÿA¶Eiº ƒàH£Âƒþÿÿë è½~ýÿff.„f�óúHƒì¹èžúÿÿ1ÀHƒÄÀóúHƒì¹ è~úÿÿ1ÀHƒÄÀóúAVAUATI‰ôUS¶„ÛtzH‰ýëDL‰íAˆ$¶]IƒÄ„Ût]L�m€û%uä¾E�PЀú vX�P¿€úvh�PŸ€úwmƒèW¾U�JЀù vH�J¿€ùvQ�JŸ€ùw©ƒêWÁàHƒÅ�ë�f.„AÆ$[]A\A]A^Ãf�¾Uƒè0�JЀù w¸ƒê0ëÆ@ƒè7랃ê7ëµ<[…SÿÿÿºH�5ä\H�}L�uèÊzýÿ…ÀuHƒÅ»,é+ÿÿÿ„ºH�5¸\L‰÷èœzýÿ…ÀuHƒÅ »{éýþÿÿºH�5š\L‰÷èvzýÿ…ÀuHƒÅ»"é×þÿÿºH�5z\L‰÷èPzýÿ…ÀuHƒÅ »}é±þÿÿºH�5\\L‰÷è*zýÿ…À…’þÿÿHƒÅ» é‡þÿÿ@óúAVSHƒì(dH‹%(H‰D$1À�ÿƒ=�ÿ.~%�ï/ƒÿTw*H�ç�HcºHÐ>ÿàf„�ÿ›u(€ r¼�1ÀH‹T$dH+%(…åHƒÄ([A^Ãf�^ƒÿP„¥ƒÿzuÐH‹iªH�5CGH‰ÇH‰Ãè÷ýÿ…À…Ÿ¶J²ƒà?ƒÈ€ˆ>²ff.„�¸ë‹f„�ÿ¬…tÿÿÿ€=m·…gÿÿÿ€ л€é[ÿÿÿH‹=Œ»è/xýÿH‹=è©HÇu»H…ÿ„tH�5EH‰|$ècýÿH‹|$…ÀtŠf.„èk}ýÿH‰<»éoÿÿÿH‹=˜©èc=þÿé^ÿÿÿ€%Œ±¿éRÿÿÿ€ €±@éFÿÿÿ€%t±ßé:ÿÿÿ€ h± é.ÿÿÿ·Y±Hƒ ²f%?üf €f‰B±é ÿÿÿ¶8±ƒàçƒÈˆ,±éóþÿÿ€% ±çéçþÿÿ·±H�5TZf%þf‰±A‰ÆH‹ô¨H‰ÇH‰Ãè‰~ýÿ…À…a€ Þ°€é¥þÿÿH‹=^ºè wýÿH‹=¨HÇGºH…ÿ„~þÿÿèizýÿH…À„pþÿÿH�xè|ýÿH‹=�¨H‰ÆH‰D$èãûÿÿH‹D$H‰ºéBþÿÿH‹=k¨èV€ýÿH‹=_¨H�5žY‰J²‰D$èÙvýÿ‹T$ƒúu…À„Ńú…ÿýÿÿH‹(¨1ÿºH�5R„ è¥yýÿH‰ÇH‰Þ1ÀèÈÐÿÿéÓýÿÿ€ °éÇýÿÿ€%ô¯ýé»ýÿÿH‹5ä§H�=•¹è®é£ýÿÿH‹5ɧH�=‚¹èí­éˆýÿÿ„H�5þXH‰ßèA}ýÿ…Àu]¶˜¯ƒà?ƒÈ@ˆŒ¯éUýÿÿDH�5‡QH‰ßè}ýÿ…ÀuM€ k¯é1ýÿÿ�H�šXH‰R§H‰Çéšýÿÿf.„H�5•XH‰ßèÑ|ýÿ…Àu7€ ,¯éñüÿÿ�H�5iXH‰ßè±|ýÿ…À…¾D‰ðf €f‰ÿ®éÆüÿÿºH�5NXH‰ßèòuýÿ…À„´ºH�5AXH‰ßèÖuýÿ…À„ùº H�57XH‰ßèºuýÿ…À„mH�5CKH‰ßè3|ýÿ…À…'¶Š®ƒàŸƒÈ ˆ~®éCüÿÿºH�5O‚ 1ÿèðwýÿH‰Ç1ÀèÏÿÿ‹H°éþÿÿ1ÿºH�5­‚ èÈwýÿH‰ÞH‰Ç1ÀèëÎÿÿéöûÿÿ1ÒH�t$H�{èF�ýÿH‹T$H‰ò®€:u H�PÿH…Ât+H‹õ¥H�5~‚ 1ÿºH�XènwýÿH‰ÞH‰Ç1Àè‘Îÿÿ€ Ó­é•ûÿÿ1ÒH�t$H�{èå€ýÿH‹T$H‰™®€:u H�PÿH…Ât+H‹”¥H�5E‚ 1ÿºH�Xè wýÿH‰ÞH‰Ç1Àè0Îÿÿ€ r­é4ûÿÿH�5îVH‰ßèõzýÿ…À…‰¶L­ƒàŸƒÈ@ˆ@­éûÿÿ1ÒH�t$H�{ èU€ýÿH‹T$H‰)­€:u#H…ÀxHƒ=­…ÑúÿÿHÇ­ÿÿÿÿéÁúÿÿH‹ê¤1ÿºH�5¼� H�X ècvýÿH‰ÞH‰Ç1Àè†ÍÿÿëµH�5\VH‰ßèUzýÿ…Àu€ ³¬éuúÿÿèpvýÿH�56VH‰ßè1zýÿ…Àu €%�¬ýéQúÿÿH�5'VH‰ßèzýÿ…ÀuH� 3­é.úÿÿH�5VH‰ßè_þÿ„ÀtÇ!­é úÿÿH�5îUH‰ßè=þÿ„Àt 1Û‰­éìùÿÿH�5ÞUH‰ßèþÿ„Àt"H�5âUH‰ßèšyýÿ…Àu.E1ÛD‰Ьé·ùÿÿH�5ýUH‰ßèxyýÿ…Àu.Ƈ­é˜ùÿÿH�5Á€ H‰ßèYyýÿ…Àu.Ç�¬évùÿÿH�5ºUH‰ßè7yýÿ…Àu.ÆF­éWùÿÿH�5~UH‰ßèyýÿ…Àu/ÇN¬é5ùÿÿH�5ü2H‰ßèöxýÿ…Àu/Hƒ ¬éùÿÿH�5^€ H‰ßèÖxýÿ…Àu/Ç ¬éóøÿÿH�5GUH‰ßè´xýÿ…Àu2Hƒ Ø« éÓøÿÿ1ÿºH�55€ è€týÿH‰ÞH‰Ç1Àè£Ëÿÿ鮸ÿÿH�5 UH‰ßèoxýÿ…ÀuH� �«鋸ÿÿH�5óTH‰ßèLxýÿ…Àu Hƒ p«ékøÿÿH�5ÜTH‰ßè,xýÿ…ÀuH� M«éHøÿÿH�5ÆTH‰ßè xýÿ…Àu Hƒ -«é(øÿÿH�5¯TH‰ßèéwýÿ…Àu Hƒ «@éøÿÿH�5˜TH‰ßèÉwýÿ…ÀuH� êªéå÷ÿÿH�50H‰ßè¦wýÿ…ÀuóoªfëÂ|³ªé¶÷ÿÿH�5MTH‰ßèwwýÿ…Àuóo“ªfÛ£|„ªé‡÷ÿÿH�5#TH‰ßèHwýÿ…Àuóodªfë„|UªéX÷ÿÿH�5ýSH‰ßèwýÿ…Àu Hƒ Eªé8÷ÿÿH�5ÛSH‰ßèùvýÿ…Àu Hƒ%%ªþé÷ÿÿH�5ÆSH‰ßèÙvýÿ…Àu € 3©éùöÿÿH�5¥SH‰ßèºvýÿ…Àu €%©÷éÚöÿÿH�5’SH‰ßè›výÿ…ÀuÇ¥©é¸öÿÿH�5~SH‰ßèyvýÿ…Àu € Ò¨é™öÿÿH�5]SH‰ßèZvýÿ…Àu €%³¨ûézöÿÿH�5NSH‰ßè;výÿ…Àu € “¨@é[öÿÿH�5-SH‰ßèvýÿ…Àu €%t¨¿é<öÿÿH�5SH‰ßèýuýÿ…Àu € V¨éöÿÿH�5÷RH‰ßèÞuýÿ…Àu €%7¨þéþõÿÿH�5>H‰ßè¿uýÿ…Àu¶¨ƒàóƒÈˆ ¨éÓõÿÿH�5½RH‰ßè”uýÿ…Àu¶ë§ƒàóƒÈˆß§é¨õÿÿH�5R1H‰ßèiuýÿ…Àu¶§ƒàŸƒÈ@ˆ¶§é}õÿÿH�5pRH‰ßè>uýÿ…Àu €%—§Ÿé^õÿÿH�5XRH‰ßèuýÿ…ÀtáH�5MRH‰ßè uýÿ…ÀuE1ÒD‰þ§é)õÿÿH�5ERH‰ßèêtýÿ…ÀuÇð§éõÿÿH�5!RH‰ßèÈtýÿ…ÀuE1ÉD‰ ΧéåôÿÿH�5âaH‰ßè¦týÿ…ÀuÇœ§éÃôÿÿH�5öQH‰ßè„týÿ…ÀuE1ÀD‰z§é¡ôÿÿH�5íQH‰ßèbtýÿ…Àu € ‡° é‚ôÿÿº H�5ÚQH‰ßè®mýÿ…Àu+H�5ÑQH�{ L�s è&týÿ…Àu2€%K°¿Æ\°gé?ôÿÿH�5ÍQH‰ßètýÿ…Àu2€ %°é ôÿÿH�5“QL‰÷èásýÿ…Àu6€ °@ư�éúóÿÿH�5�QH‰ßè»sýÿ…À…€ ܯé×óÿÿºH�5PQL‰÷èmýÿ…À„”ºH�5OH‰ßèqýÿ…À…’€ /­é*ñÿÿH�t$H�{º èwvýÿH‰ÁH‹D$€8u�Aþƒøv1H‹+›ºH�5y 1ÿH‰L$è£lýÿH‰ÞH‰Ç1ÀèÆÃÿÿH‹L$‰ ϬéÆðÿÿH�5°6H‰ßè‡pýÿ…ÀuKDZ¬é¤ðÿÿºH�5˜NH‰ßèÐiýÿ…ÀuhHƒÃH�5ó5H‰ßèIpýÿ…Àu/1ɉ }¬éhðÿÿH�5TNH‰ßè)pýÿ…ÀuPÇS¬éFðÿÿH�5B+H‰ßèpýÿ…ÀuSÇ9¬é$ðÿÿH�5-NH‰ßèåoýÿ…ÀuS€ ¬éðÿÿ1ÿºH�5¯x è²kýÿH‰ÞH‰Ç1ÀèÕÂÿÿéàïÿÿH�5è*H‰ßè¡oýÿ…ÀuKÇÓ«é¾ïÿÿºH�5ÊMH‰ßèêhýÿ…ÀukHƒÃH�5 5H‰ßècoýÿ…Àu21Ò‰›«é‚ïÿÿ1ÿºH�5dx è/kýÿH‰ÞH‰Ç1ÀèRÂÿÿé]ïÿÿH�5Y*H‰ßèoýÿ…ÀuLÇT«é;ïÿÿº H�5WMH‰ßèghýÿ…ÀumHƒÃ H�5Š4H‰ßèànýÿ…Àu01ÀH‰«éþîÿÿH�5*H‰ßè¿nýÿ…ÀuTÇõªéÜîÿÿH�5Ø)H‰ßè�nýÿ…ÀuWH‹‚{H‰˪é¶îÿÿH�5åLH‰ßèwnýÿ…ÀuW€ �ªé—îÿÿ1ÿºH�5±w èDjýÿH‰ÞH‰Ç1ÀègÁÿÿérîÿÿH�5z)H‰ßè3nýÿ…Àu2H‹ {H‰aªéLîÿÿH�5yLH‰ßè nýÿ…Àu1€%3ªûé-îÿÿ1ÿºH�5w èÚiýÿH‰ÞH‰Ç1ÀèýÀÿÿéîÿÿH�5BLH‰ßèÉmýÿ…Àu € ! €ééíÿÿH�5!LH‰ßèªmýÿ…Àu €% éÊíÿÿH‰ÞH�=L1Àè™Ûÿÿé´íÿÿ@óúATI‰ü¿UH‰õSè8kýÿL‰çE1äH‰ÃèzkýÿHÇCH�5×KH‰ïH‰è@mýÿ…ÀtH�5ËKH‰ïè-mýÿ…ÀuAH‹¤L‰cH…Àt!f„H‰ÂH‹@H…ÀuôH‰Z[]A\ÃH‰‘¤[]A\Ã@H‰ïèkýÿI‰Äë²ff.„óú@„öu €=× ufATA‰ôUSH‰û¿èzjýÿH‰ÅHÇDˆ`H‹}‰H‰-v‰H‰(€;=tVºH�5æ'H‰ßèâeýÿ…ÀtH‰ßè†jýÿH‰E[]A\ÃDÀH‹=ѤH�s1Òè~iýÿH‰E[]A\ÃDH‹=±¤H�s1Ò1Àè\iýÿH‰E[]A\ÃóúHƒìHƒ=À¥H‰ùtH‰Ïèjýÿ1öH‰Çèÿÿÿ1ÀHƒÄÃf�H‰|$ºH�5@%1ÿè¸gýÿº¾H�5AH‰Ç1ÀèÒ¾ÿÿH‹L$ë°ff.„óúAUATUH‰ýSH�ìÈH‹-¥dL‹$%(L‰¤$¸A‰ôH…Ûu(ëZf.„H�s H‰ïèTkýÿ…À„ÜH‹H…Ût4E…äuß‹S…ÒuØH‹H…Û„‹C…ÀuÅH‹H…ÛuÞff.„f�H‰ïè(gýÿH�xI‰ÅèÌhýÿI�UH‰îH‰ÃH‹“¤D‰cH�{ H‰è›kýÿH‰|¤Aƒü…áL‹«§M…À„2H‹›‡L‰I‹x1ÉH‰êH�5Ê%1ÀL‰D$èÔgýÿH�t$H‰ÇI‰Ä脼ÿÿL‰çH‰ÃècýÿH…ÛL‹D$„ÚH‹L‡HÇ‹‡œD¶d$ƒø ‡˜‰Á‹5tœH�œH‰,ÊH�Ž™‰4жtœH�5=™Àêƒâ‰ŽH‹ šH…Òt H‹5ù™H‹òƒÀAƒäH‰ßÇœ‰œ¶,œAÁäH�5q™H‰΃à÷H‰Ë™D àˆ œèµ§ýÿH‰ÇèݦýÿH‰¶šÇЛH‹„$¸dH+%(…þH�ÄÈ[]A\A]Àº1ÿH�5"s èMeýÿH‹”$¸dH+%(…¿H�ÄÈH‰îH‰Ç1À[]A\A]éL¼ÿÿ@H‰ïè@eýÿH�xI‰ÅèäfýÿI�UH‰îH‰ÃH‹«¢ÇCH�{ H‰è°iýÿH‰‘¢H�t$H‰ïèܺÿÿH‰ÃH…À…sþÿÿH‹±¥H…Àt¢H…ÛuÙH‹=úžH…ÿt(ff.„f�H‹H‰ÞžèÑ]ýÿH‹=ÒžH…ÿuå[ÃóúSH‰ûHƒìƒt)ºH�5s1ÿèë`ýÿº:H�5E:H‰Ç1Àè¸ÿÿH‹{0¾è×ÉÿÿH…Àt.H‹{0€=™H‹WPu ¶GHƒà<tHƒ¿ðt6€Ka H‰S0HƒÄ[ÃfD¾H‰T$èé&ÿÿH‹{0H‹T$Hƒ¿ðuÊH‰T$èLiýÿH‹T$ë¹DóúAWAVAUATUH‰ýSH‰óHƒìH‹vXèŸ_ýÿ€=¹œH‰C0H‰Çt0ºH�5ÈBH…Àt H�5×B1ÿè`ýÿH‰îH‰Ç1ÀèÓ´ÿÿH‹{0H…ÿ„v€{a‰Ì¶GJ�OD€ƒÈˆGJƒÈ ˆGJ¶C`ƒà$< t\¾èpjýÿH‹K0„À…H…Ét=H‰Ï¾H‰L$èMjýÿH‹L$„À„ ¶C`¨ uH‹S0öBD@…ʨ…"H‹{0öÈ•t €=&�„È€=£—u ¶GHƒà<tHƒÄ¸[]A\A]A^A_Ã1öè‰%ÿÿë〿èæ`ýÿH‰ïH‰D$è)aýÿH‹T$Hƒ=œœH‰BHÇ„[H‹ìžH‰H‹{0H‰Þž¶Sa¶GJ�OD€ƒÈˆGJ„Ò‰äþÿÿéÙþÿÿ@H‰Ï1öèfiýÿH‰ÁH…É…ëþÿÿé#ÿÿÿD¾è6iýÿ„À…H‹{0éÿÿÿDH‹{0H9Ï…õþÿÿöC`„ëþÿÿè`ýÿƒø …ÙþÿÿH‹„’H‹€¸H…Àt H‰ßÿЄÀ…¹þÿÿ1öH‰ïE1öè~öÿÿH‹vÇý‘Æ’H�PH‰ûu‹-”‰¸uÇ”ë%f�-ƒøw H‹=/–èjZýÿèÕ¥ýÿ…À„Ä=0„Z�<=uÅH‹=–è9ZýÿëÍ€H‰)›é£þÿÿ@è+_ýÿƒø„’1ÀHƒÄ[]A\A]A^A_Ã�H‰ßè8üÿÿéþÿÿ¶ð”H‹5ò“H‰ÏH‰L$èõ^ýÿH‹L$H…À…µýÿÿH‹AƒxuH‹Æ“H‹@ƒx„‚€=¦”…IH‹{0èÒeýÿHÇC01ÀésÿÿÿH‹[XºH�5pk 1ÿè¹\ýÿH‰ÇH‰Þ1Àèܳÿÿ1ÀéEÿÿÿDºH�5œk 1ÿè�\ýÿH‰îH‰Ç1Àè°³ÿÿH‹{0ègeýÿHÇC01Àéÿÿÿ„-{ƒø‡˜þÿÿé‡þÿÿDèc¤ýÿƒø(……þÿÿèU¤ýÿ=…uþÿÿL‹-“”è>¤ýÿƒø,„ºE1äE1ÿƒø)„ÔL‰ïè®XýÿL‰ÿè¦XýÿL‰çèžXýÿé/þÿÿH‹òsH‹=ó�Æô�H�Pü‹@üH‰Ös‰’è[[ýÿHÇÈ�E…ö…¯þÿÿé@üÿÿL‹s1ÿºH�5`j è‹[ýÿH‰îH‰ÇL‰ò1À諲ÿÿé‹þÿÿH‹{0¾è(fýÿ„À…þûÿÿécþÿÿèv£ýÿ=tLL‰ï‰D$èóWýÿ‹D$é…ýÿÿL‰ÿM…ÿuL‰ïH‰|$èþÿH‹|$H‰Æè(_ýÿD‰ñ…À•À¶À ÁA‰ÎéýþÿÿL‹=l“è£ýÿƒø,u è £ýÿ=tL‰ï‰D$èŠWýÿL‰ÿè‚Wýÿ‹D$éýÿÿL‹%2“èÝ¢ýÿƒø)…®þÿÿ‹r’ƒø„kÿÿÿƒø…jÿÿÿM…ä„aÿÿÿL‰çé\ÿÿÿff.„óúAWAVI‰ÎAUI‰ÕATI‰üUH‰õSHƒì¶F`¨u.H‹~¨t €?/„"H‰îèñùÿÿ„À…èH‹E€8/„ôH‹5šH…ÛuBéã1ÉH�5I1ÀèX[ýÿH‰îI‰ÇL‰ÿèªùÿÿ„À…�L‰ÿèšVýÿH‹H…Û„¦¶E`¨ t6¶?�ƒâ€út'H‹ŽH‹ŠˆH…ÉtH‰êH‰ÞL‰çÿÑ„ÀuT¶E`�ƒàH‹UH‹{<…uÿÿÿHƒìH‰ÑH�5¹1ÀjL‰êM‰ñM‰àè½ZýÿH‰îI‰ÇXZL‰ÿè ùÿÿ„À„cÿÿÿL‰}HƒÄ¸[]A\A]A^A_ÃDHƒÄ1À[]A\A]A^A_ÃH‰þH‹=µ•1Ò1ÀèdZýÿH‰îH‰ÇH‰Ãè¶øÿÿ„ÀtH‰]ë«H‰ßè¤Uýÿé¶þÿÿff.„@óúATUSHƒì@dH‹,%(H‰l$8H‰ýöG`„ÉH‹}(H…ÿt8H‹U1ÉH�5Ý1ÀèìYýÿH‰îH‰ÇH‰Ãè>øÿÿ„Àt €e`ûH‰]ëqH‰ßè(UýÿH‹a™H…Û„ØL�%;Hë3€H‹¡ŒH‹€ÐH…Àt H‹;H‰îÿÐ…Àu&H‹[H…Û„œH‹;L‰áH�h;H‰îè—ýÿÿ„Àt»€e`ûH‹D$8dH+%(…ÑHƒÄ@[]A\Ãf�H‹}H‰îè”÷ÿÿ„ÀuÑH‹uH‹}è³VýÿH‹]…À„¿L‹eºH�5¥:1ÿè°WýÿH‰ÚH‰ÇL‰æ1ÀèЮÿÿ€Ma€ ö�é�ÿÿÿL‹eöE`tH‹”H…Ût A€<$/„H‹”H…Û„èH�™:€=â“H‰\$H‰D$L‰d$ HÇD$(…SH‰ßH�L$H�T$ H�t$èŒ*H‰ÃH…À„pL‹%±“ºH�5ý¡1ÿèöVýÿH‰ÇL‰æ1Àè®ÿÿH‰ßèÁ_ýÿöE` u;H‹]€;-u2€{lu,H�5f 1ÿºè¹VýÿH�sH‰Ç1ÀèÛ­ÿÿff.„H‹‰—L�%lFH…Ûuéèþÿÿ„H‹[H…Û„ÓþÿÿH‹;L‰áH�¬EH‰îèÞûÿÿ„ÀtÚH‹}èÑYýÿL‹eº1ÿH�5¿e H‰Ãè7VýÿH‰ÙH‰ÚL‰æH‰Ç1ÀèT­ÿÿH‹}0è _ýÿHÇE0énþÿÿfD1ÿºH�59èõUýÿH‰ÞH‰Ç1Àè­ÿÿéCþÿÿºH�5Œ 1ÿèÍUýÿH‰ÞL‰áH�9H‰Ç1Àèæ¬ÿÿH‹W’éwþÿÿf.„H‹]1ÿºH�5™8è‰UýÿH‰ÇH‰Þ1À謬ÿÿé–þÿÿ1ÿºH�5t8èdUýÿL‰æH‰Ç1À臬ÿÿéqþÿÿ1ÿºH�5g8è?UýÿH‰ÚL‰æH‰Ç1Àè_¬ÿÿéIþÿÿèeUýÿDóúUH�5a8½SH‰ûHƒìèYýÿ…ÀtKH�5¨4H‰ßèÿXýÿ…Àt8€;xu€{xt@H�5*8H‰ß½èÜXýÿ…Àt¶ƒè0u¶Cƒèx…À@”ÅHƒÄ‰è[]Ãf.„€{tç븄óúUH�5Ñ7½SH‰ûHƒìè‚Xýÿ…À„”H�5´7H‰ßèkXýÿ…À„}€;x„‚H�5ô3H‰ß½èFXýÿ…Àt\€;0uU€{xuO¶CH�S1íH�5æ]ë@¶JöDNtHƒÅHƒÂ¶„Àt ¶ÈöDNuÜ<-t<:u HƒÂëáfD1íHƒÄH‰è[]Ã@€{x…tÿÿÿ€{…jÿÿÿHƒÄH‰è[]Ãf.„óúAWAVI‰þAUI‰õATI‰ÔUH‰ÍSD‰ÃH�ì(dH‹%(H‰„$1À€>x…ð€~x…æ€~…Ü¿€èòXýÿI‰ÁH…À„–H‰Â¸@fïÀL‰÷ƒâ?H�5­ˆÿÿH)ÐIÁA)�L‰Êfot\AˆAÿH�©iA)fom\IÇ�A)Afoe\IÇ�(A)A fo]\I‰�8A)A0foY\L‰L$A�AÿÔL‹L$„À„ÄM‹‘8M‹™I�A@M…ÒLDÐI�ûð‡®M‹�(I�¹M…À…ÇIƒû†[I�û€†r I‹� L‰L$E1ÀL‰ÒH�H@L‰ÞL�l$0èU…ÿÿL‹L$I‰ÆI‰ÔA¶AÿL‰ÏIÌH)Çè§NýÿL‰ðL‰d$0HÈH‰D$8¸9ÃHG؃ûƒöÃ…A …Ût&¶D$0ˆEöÃtA·Dþf‰Dþff.„H‹„$dH+%(…ÝH�Ä([]A\A]A^A_ÀH�5¶4L‰ïèqUýÿ…À„éH�51L‰ïèZUýÿ‰Æ…À„H�5Š4L‰ïèAUýÿ…À„éA€}0…C^ýÿA€}x…8^ýÿA¶EI�UE1ÉH�5ÐZë!fD<-t<:…^ýÿHƒÂ¶„À„=ÿÿÿ¶È· NöÅtÙ¶zöD~tÎöÁ…=öÁ€„Dƒè7J�| ÁàˆD¶BL‰ÁF·FAöÀ…AöÀ€„.ƒé7 ÈHƒÂIƒÁˆë�Dfo(ZÇD$HH�T$0L‰÷HÇD$@H�5X)D$0AÿÔ„À„˜þÿÿ‹D$HD$@sƒD$DºxA¼8‰Ã)ÂA)ăø8DCâH�|LH�5TfL‰âèÌTýÿ‹T$@J�#H�|$LH�p� Õ‰LL‹L$D¬Ê‰TPH�T$0èjÿfoD$0EéþÿÿfAoA‹�)D$0fAoA‰D$)D$@fAoA )D$PfAoA0)D$`ƒø?‡D¸@I�‰+D$A‰ÀH‰ÊL�¤$ÐL)ÂH�²H‰òƒøƒ8 1ö¨t ‹2A‰4$¾¨tD·,2fE‰,4HƒÆ¨t¶2Aˆ4‹t$J�„Ѓþƒ# ƒæ…‹t$…ötA¶‘ƒæˆ…I‹� H�Œ$ÐL�l$0H‰D$I�4L‰ê1Àóo óoDùHƒÀHƒÂfïÁfpÉNfpÐ1fôÂfÔÁfÔBð)BðHƒø@uÈHº‡Êë…±y7žI�r L‰ïI¯ÓèytÿÿHºOëÔ'=®²ÂI¯ÓI‰ÆH‹D$I�tõH÷ÒèVtÿÿI‰Äé4üÿÿfDfoðW)D$0foóW)D$@¢H�=Eƒøv@¸‰ñ¢�ã t/‰ð¢…Àt'¸¢H�=‰Ý�áH� HDø„H‰þH�T$0L‰÷AÿÔ„À„üÿÿ‹T$Lƒú7†]A¸€¹x¿Aº‰Öt$DD‹L$H‰t$Ds AƒÁD‰L$H‰ðD¬ÈD� õÈB‰D”P‰ðE‰ÊÁà AÁêÁæ%ÿAÁéD ÐA�áÿ ðH�5LcD ÈL�LP‰D¼PH‰ÈH)ÐHƒøƒI¨… H…Àt¶cAˆ¨… H�T$0L‰ÆH�|$Pè¿foD$0‹D$@f8¼VȉEEé.ûÿÿfDH‹„$dH+%(… A¶AÿL‰ÏH�Ä([]H)ÇA\A]A^A_é@Iýÿƒé0éüÿÿ„ƒè0éÇûÿÿ„ƒá„ŒYýÿƒèWé®ûÿÿ€Aƒà„sYýÿƒéWéÃûÿÿfD1öH�=�/è’TýÿA‰Ä…Àˆ‡úÿÿHcÓH‰î‰ÇèÚNýÿH‹„$dH+%(…W H�Ä(D‰ç[]A\A]A^A_é NýÿIƒû‡Iƒû‡bM…Û…| I‹R@I3RHH¹OëÔ'=®²ÂH‰ÐI‹rPI3rXHÁè!I‰ôH1ÐIÁì!H¯ÁI1ôL¯áH‰ÂHÁêH1ÐHºùy7ž±gVH¯ÂH‰ÇHÁï H1øI‰ÆL‰àHÁèI1ÄL¯âL�l$0L‰àHÁè I1ÄéFùÿÿA¸@¹8¿AºéžýÿÿI‹¹I‹‘ƒèI‹± ÁèI‰üI� ÒI)ÔH‰t$L9à‚#L‰\$ A¾±y7žL�l$0LÖ‰\$,fAnÞH�T$pM��L‰L$I‰ùfpÛff.„f�M…ätI‰ÖI‰ï1ÒH‰õI‰ËH‰ÆI�€€H�˜€þÿÿL‰é1ÿfo ;óAo;HƒÇHƒÁfïÁfpÉNfpÐ1fôÂfÔÁfÔAð)AðHƒÿ@uÈHƒÂHƒÀ@IƒÃL9âu¨H‰ðL‰òH‰îL‰ýL‰éH‰÷foóo'HƒÁHƒÇfoÈfïÄfsÑ/fïÁfpÈ1fôÃfôËfsñ fÔÁ)AðH9ÑuÀL‰áL)àHÁáIÈL9È‚^M‰ÌL‰ÑéÿÿÿD‰ØL‰eI‹TøH‰TøH�EHƒàøH)ÅI)íÝƒåøƒý‚øÿÿƒåø1҉уÂI‹t H‰49êrîéè÷ÿÿIƒû‡ÙIƒû‡âIƒû‡«M…Û…ÓHº´ø70Š�.hH¾OëÔ'=®²ÂH¹ùy7ž±gVL1ÂH‰ÐHÁè!H1ÐH¯ÆH‰ÂHÁêH1ÐH¯ÁH‰ÂHÁê H1ÐHºI}§Ñ ÓU–I‰ÆL1ÂH‰ÐL�l$0HÁè!H1ÐH¯ÆH‰ÂHÁêH1ÐI‰ÄL¯áL‰àHÁè I1ÄéÍöÿÿH‹à^I�yHƒçøI‰H‹TøI‰TøI)ùJ� L)ÎHÁéóH¥é¤ûÿÿI�û€†µL‰L$¹ÀH�7_é`öÿÿL‹L$L‹\$ L‰ÂL‰Ñ‹\$,H…ÀtyI‰ïH�º€H‰õH‰Æ1À€L�§€þÿÿM‰è1ÒfAo óoHƒÂIƒÀfïÁfpÉNfpÐ1fôÂfÔÁfAÔ@ðA)@ðHƒú@uÆHƒÀHƒÇ@HƒÁH9Æu¦H‰îL‰ý‹D$I�ŒÀéùÿÿH‹t$I�‘L�l$0LÖéXÿÿÿH¹‡Êë…±y7žI¯ËIƒû †Iƒû@†²Iƒû`vUM‹�8I‹±0N�dÀI‹B`I‹RhM‹,$M‹d$H1ðL1ÂLÆH÷âH1ÐHÈK�L%M3bxH1ÁI‹BpL1èI÷äH1ÆH1ÖI‰ðI‹± I‹B@N�lÐI‹‘(I3RHH1ðM‹eM‹mH÷âI±(H1ÐHÈK� ,M3jXH1ÁI‹BPL1àI÷åH1ÂLÂH1òI‰ÐI‹±I‹B N�làI‹‘I3R(H1ðM‹eM‹mH÷âI±H1ÐHÈK� ,M3j8H1ÁI‹B0L1àI÷åH1ÂLÂH1òI‰ÐN�dðI‹±I‹I‹¹I‹RH1ðM‹,$M‹d$H1úHþH÷âH1ÂK�D%M3jM3bHÑH1ÁL‰èI÷äH1ÂJ�Hº‡Êë…±y7žH1ðH�4H¯ÊHºc®²ÂwÊë…H¯ÂHºOëÔ'=®²ÂI¯ÓHÈHÐH‰òL�l$0H¹ùy7ž‘gVHÁê%H1òH¯ÑH‰ÖHÁî H1ÖH‰ÂHÁê%I‰öH1ÐH¯ÁI‰ÄIÁì I1ÄI÷Üé¾óÿÿJ‹tøI‹�Hº‡Êë…±y7žI‹J0I3J8H1ðI3B I3B(H÷âI‰ÆI‰×H1ñ¿vÊë…I�Sÿ‰ÎHÁâ6L�l$0H¯÷I�H¿OëÔ'=®²ÂHñJ�49HÎH1ðH÷çH‰ÆJ�9H¹ùy7ž‘gVH¯ÇHÐH‰òHÁê%H1òH¯ÑH‰ÖHÁî H1ÖH‰ÂHÁê%I‰öH1ÐH¯ÁI‰ÄIÁì I1ÄéóÿÿA‰Å1ÒAƒåø‰×ƒÂL‹$>L‰¤<ÐD9êrêL�¤ÐHòé™õÿÿI‹‘H‰‹T$H‹tøH‰×H‰tøH�pH‰ÊHƒæøH)ðÇH)Âƒçøƒÿ‚Çõÿÿƒçø1À‰ÁƒÀL‹ L‰9ørïé¬õÿÿ‹D$0‰EA‹Dü‰DüéÔòÿÿB‹DüA‹‘HÁà HÐI‹RI3RH1ÐL�l$0Hº‡Êë…±y7žJ�šH÷âH� BH‰ÆH‰ÊHÁêH1òH‰ÐHÁè#H1ÐHº%ߘe²ŸH¯ÂH‰ÂHÁêH1ÂH‰ÈHÁè%I‰ÖHºùy7ž‘gVH1ÈH¯ÂI‰ÄIÁì I1ÄéÙñÿÿH¹‡Êë…±y7ž1öI¯ËIƒû †Iƒû@†úIƒû`vyI‹±0N�dÀM‹‘8H¸¨úv?ãœ4?HºùÜ»ÇÇ OLÀM‹,$M‹d$L)ÂH1ðLÖL1ÒH÷âH1ÐHºÈŸ~ÉÙxsdHÈK�L%L)ÂH1ÁL1âH¸ŠQàKÍ´Y1LÀL1èH÷âH1ÆH1ÖM‹‘ N�lÐH¸<(R»‘ÃËHºˆÐe‹S.£LÀL)ÂI3‘(M‹eL1ÐM‹mM‘(H÷âH1ÐHº8ïF©Þ¬ØHÈK� ,L)ÂH1ÁL1êH¸qdH—¢ ùNLÀL1àH÷âH1ÂHÖL1ÖM‹‘N�làH¸ËyæNÌÀåxHº‚ZÐ}Ìÿr!LÀL)ÂI3‘M‹eL1ÐM‹mM‘H÷âH1ÐHºà5�æ�:&LHÈK� ,L)ÂH1ÁL1êH¸¸Ft÷C$ŽLÀL1àH÷âH1ÂHÖL1ÖN�dðM‹‘I‹¹H¸¸þl9#¤K¾Hº|�,÷!­LÀM‹,$M‹d$L)ÂH1øL×L1ÒH÷âH1ÂK�D%HÑHºr@¤¤·³gH1ÁL)ÂH¸ÞÔméƒ�—ÛLÀL1âL1èH÷âH1ÐHº‡Êë…±y7žHðH1øH�4H¯ÊHºc®²ÂwÊë…H¯ÂL‰ÚL)ÂHÈH¹OëÔ'=®²ÂH¯Ñé}ûÿÿH¸I#63?—YJ‹tøHº‡Êë…±y7žH¹X=Ö’vyÂL)ÀI3�LÁH1ðH÷âI‰ÆI‰×é»ûÿÿA¶�D‰ÚH¾OëÔ'=®²ÂÁâÁà ÐB¶Tÿ ÐL‰ÚHÑêA¶”Áâ ÂA‹A3B1ЉÑH¯ÆÉÁÁ H‰ÂHÁêH1ÐHºùy7ž±gVH¯ÂH‰ÇHÁï H1øI‰ÆA‹BA3B 1ÈH¯ÆH‰ÁHÁéH1ÈI‰ÄéWõÿÿB‹DüA‹‰D‰ÂÊHÁâ HÁà L1ÂHÈH¹¬”ÉM4#ðÄHÊé5üÿÿA¶�D‰Ú¹›Z'‡ÁâLÁÁà ÐB¶Tÿ ÐL‰ÚHÑêA¶”Áâ к‹ ,0H1Á‰ÆL)ÂH‰ÈÎÁÆ HÁè!H1òH¾OëÔ'=®²ÂH1ÈH¯ÆH‰ÁHÁéH1ÈH¹ùy7ž±gVH¯ÁH‰ÇHÁï H1øI‰Æéööÿÿ‹ VA‰‹TüA‰Tüéèòÿÿ·TþfA‰TþéØòÿÿA‹‘‰‹T$‹Lü‰Lüéâðÿÿ‹T$·Lþf‰LþéÏðÿÿèç?ýÿf.„f.„óúǶïuƒà<„|€=‘wH�.� te€=mwH�ö¨ tU¶5Âu¶ ºu<„Þ<tbƒæ„IöÁ…¨H�a=ö�u@tH�™îöBvH�C=HDÐH‰ÐÀ=wH�ºg téH�¡N H‰ÐÃD·Eu‰Â÷Òf÷„÷Ðf©„ÍH‹uH¸@H!ÂH9„—ƒæH�÷uމÈ÷Ш„¶H�rwƒáH�pOHEÐéhÿÿÿ€·Ít‰Â÷Òf÷„*÷Ðf©„îH‹§tH¸@H!ÂH9„�ƒæH�Ÿ˜…ÿÿÿ‰È÷Ш„ÕH�ŽƒáH�éHEÐéìþÿÿH�ácöÁ„ÙþÿÿH�¶ƒáH�gŒHEÐé¿þÿÿH�GÚöètH�1ÆHDÐé¡þÿÿH�É öÊt„kÿÿÿéˆþÿÿ€H� �öªt…mþÿÿ÷уá„¢H�:éVþÿÿDH�cöztH�³÷ HDÐé3þÿÿf�H�¿é%þÿÿ@H�9Ï öJtH�±HDÐéþÿÿH�S‹ö,t„UþÿÿéêýÿÿH� ötH�ÿÿÿ@H�Õ öÁ„*ÿÿÿH�õ ƒáH�Ò HEÐéÿÿÿfDH�["öÁ„úþÿÿH�y"ƒáH�W"HEÐéàþÿÿfDH�S!öÁ„ÊþÿÿH�s!ƒáH�P!HEÐé°þÿÿfDöñq„àþÿÿH�€ öÁ„�þÿÿH�¢ ƒáH�~ HEÐésþÿÿf„H�s!öÁ„ZþÿÿH�“!ƒáH�p!HEÐé@þÿÿfDö�q„ÀþÿÿH�2öÁ„þÿÿH�TƒáH�0HEÐéþÿÿf„óúSH‹6H‰ÓH�=…!ºèt7ýÿ…ÀuÇ[Äóú¸€tÃAVI‰þSHƒìH‹_H‰÷H‰4$èæ9ýÿ€;@H‹ $LcÀt:L‰ÂH‰ÎH‰ßL‰$è7ýÿL‹$…À¸u ¸B€<@t?HƒÄ[A^À€9_uÁƒèH�qH�{L‰D$HcÐèÓ6ýÿH‹ $L‹D$…Àt»ëš@L‰5){1Àë¶DóúAVSHƒì(dH‹%(H‰D$1À�ÿƒ=�ÿ.~%�ï/ƒÿTw*H�ƒPHcºHÐ>ÿàf„�ÿ›u(€ ²x�1ÀH‹T$dH+%(…åHƒÄ([A^Ãf�^ƒÿP„¥ƒÿzuÐH‹ gH�5ãH‰ÇH‰Ãè—<ýÿ…À…Ÿ¶ênƒà?ƒÈ€ˆÞnff.„�¸ë‹f„�ÿ¬…tÿÿÿ€= t…gÿÿÿ€ x€é[ÿÿÿH‹=,xèÏ4ýÿH‹=ˆfHÇxH…ÿ„tH�5¯H‰|$è<ýÿH‹|$…ÀtŠf.„è :ýÿH‰ÜwéoÿÿÿH‹=8fèúýÿé^ÿÿÿ€%,n¿éRÿÿÿ€ n@éFÿÿÿ€%nßé:ÿÿÿ€ n é.ÿÿÿ·ùmHƒ ¿nf%?üf €f‰âmé ÿÿÿ¶ØmƒàçƒÈˆÌméóþÿÿ€%Àmçéçþÿÿ·´mH�5ôf%þf‰¢mA‰ÆH‹”eH‰ÇH‰Ãè);ýÿ…À…a€ ~m€é¥þÿÿH‹=þvè©3ýÿH‹=beHÇçvH…ÿ„~þÿÿè 7ýÿH…À„pþÿÿH�xè§8ýÿH‹=0eH‰ÆH‰D$胸ÿÿH‹D$H‰§véBþÿÿH‹= eèö<ýÿH‹=ÿdH�5>‰ên‰D$èy3ýÿ‹T$ƒúu…À„Ńú…ÿýÿÿH‹Èd1ÿºH�5ò@ èE6ýÿH‰ÇH‰Þ1Àèh�ÿÿéÓýÿÿ€  léÇýÿÿ€%”lýé»ýÿÿH‹5„dH�=Ýuè¨jé£ýÿÿH‹5idH�=Êuè�jéˆýÿÿ„H�5žH‰ßèá9ýÿ…Àu]¶8lƒà?ƒÈ@ˆ,léUýÿÿDH�5'H‰ßè±9ýÿ…ÀuM€ lé1ýÿÿ�H�:H‰òcH‰Çéšýÿÿf.„H�55H‰ßèq9ýÿ…Àu7€ Ìkéñüÿÿ�H�5 H‰ßèQ9ýÿ…À…¾D‰ðf €f‰ŸkéÆüÿÿºH�5îH‰ßè’2ýÿ…À„´ºH�5áH‰ßèv2ýÿ…À„ùº H�5×H‰ßèZ2ýÿ…À„mH�5ãH‰ßèÓ8ýÿ…À…'¶*kƒàŸƒÈ ˆkéCüÿÿºH�5ï> 1ÿè�4ýÿH‰Ç1Àè¶‹ÿÿ‹èléþÿÿ1ÿºH�5M? èh4ýÿH‰ÞH‰Ç1Àè‹‹ÿÿéöûÿÿ1ÒH�t$H�{èæ=ýÿH‹T$H‰’k€:u H�PÿH…Ât+H‹•bH�5? 1ÿºH�Xè4ýÿH‰ÞH‰Ç1Àè1‹ÿÿ€ sjé•ûÿÿ1ÒH�t$H�{è…=ýÿH‹T$H‰9k€:u H�PÿH…Ât+H‹4bH�5å> 1ÿºH�Xè­3ýÿH‰ÞH‰Ç1ÀèЊÿÿ€ jé4ûÿÿH�5ŽH‰ßè•7ýÿ…À…‰¶ìiƒàŸƒÈ@ˆàiéûÿÿ1ÒH�t$H�{ èõ<ýÿH‹T$H‰Éi€:u#H…ÀxHƒ=·i…ÑúÿÿHǦiÿÿÿÿéÁúÿÿH‹Ša1ÿºH�5\> H�X è3ýÿH‰ÞH‰Ç1Àè&ŠÿÿëµH�5üH‰ßèõ6ýÿ…Àu€ Siéuúÿÿè3ýÿH�5ÖH‰ßèÑ6ýÿ…Àu €%/iýéQúÿÿH�5ÇH‰ßè²6ýÿ…ÀuH� Óié.úÿÿH�5²H‰ßèÿÏýÿ„ÀtÇÁié úÿÿH�5ŽH‰ßèÝÏýÿ„ÀtE1ÉD‰ ŸiéêùÿÿH�5|H‰ßè»Ïýÿ„Àt"H�5€H‰ßè86ýÿ…Àu.E1ÀD‰niéµùÿÿH�5›H‰ßè6ýÿ…Àu.Æ%jé–ùÿÿH�5_= H‰ßè÷5ýÿ…Àu.Ç-iétùÿÿH�5XH‰ßèÕ5ýÿ…Àu.ÆäiéUùÿÿH�5H‰ßè¶5ýÿ…Àu/Çìhé3ùÿÿH�5šïH‰ßè”5ýÿ…Àu/Hƒ ¸héùÿÿH�5ü< H‰ßèt5ýÿ…Àu/ǪhéñøÿÿH�5åH‰ßèR5ýÿ…Àu2Hƒ vh éÑøÿÿ1ÿºH�5Ó< è1ýÿH‰ÞH‰Ç1ÀèAˆÿÿ鬸ÿÿH�5ªH‰ßè 5ýÿ…ÀuH� .h鉸ÿÿH�5‘H‰ßèê4ýÿ…Àu Hƒ héiøÿÿH�5zH‰ßèÊ4ýÿ…ÀuH� ëgéFøÿÿH�5dH‰ßè§4ýÿ…Àu Hƒ Ëgé&øÿÿH�5MH‰ßè‡4ýÿ…Àu Hƒ «g@éøÿÿH�56H‰ßèg4ýÿ…ÀuH� ˆgéã÷ÿÿH�5¶ìH‰ßèD4ýÿ…Àuóo`gfë`9Qgé´÷ÿÿH�5ëH‰ßè4ýÿ…Àuóo1gfÛA9"gé…÷ÿÿH�5ÁH‰ßèæ3ýÿ…Àuóogfë"9óféV÷ÿÿH�5›H‰ßè·3ýÿ…Àu Hƒ ãfé6÷ÿÿH�5yH‰ßè—3ýÿ…Àu Hƒ%Ãfþé÷ÿÿH�5dH‰ßèw3ýÿ…Àu € Ñeé÷öÿÿH�5CH‰ßèX3ýÿ…Àu €%²e÷éØöÿÿH�50H‰ßè93ýÿ…ÀuÇCfé¶öÿÿH�5H‰ßè3ýÿ…Àu € peé—öÿÿH�5ûH‰ßèø2ýÿ…Àu €%QeûéxöÿÿH�5ìH‰ßèÙ2ýÿ…Àu € 1e@éYöÿÿH�5ËH‰ßèº2ýÿ…Àu €%e¿é:öÿÿH�5¶H‰ßè›2ýÿ…Àu € ôdéöÿÿH�5•H‰ßè|2ýÿ…Àu €%ÕdþéüõÿÿH�5µúH‰ßè]2ýÿ…Àu¶´dƒàóƒÈˆ¨déÑõÿÿH�5[H‰ßè22ýÿ…Àu¶‰dƒàóƒÈˆ}dé¦õÿÿH�5ðíH‰ßè2ýÿ…Àu¶`dƒàŸƒÈ@ˆTdé{õÿÿH�5H‰ßèÜ1ýÿ…Àu €%5dŸé\õÿÿH�5öH‰ßè½1ýÿ…ÀtáH�5ëH‰ßèª1ýÿ…Àu 1ÿ‰=ždé)õÿÿH�5åH‰ßèŠ1ýÿ…ÀuÇ�déõÿÿH�5ÁH‰ßèh1ýÿ…Àu 1ö‰5pdéçôÿÿH�5„H‰ßèH1ýÿ…ÀuÇ>déÅôÿÿH�5˜H‰ßè&1ýÿ…Àu 1ɉ dé¥ôÿÿH�5‘H‰ßè1ýÿ…Àu € Ël é†ôÿÿº H�5~H‰ßèR*ýÿ…Àu+H�5uH�{ L�s èÊ0ýÿ…Àu2€%�l¿Æ lgéCôÿÿH�5qH‰ßè¤0ýÿ…Àu2€ ilé$ôÿÿH�57L‰÷è…0ýÿ…Àu6€ Jl@Æ[l�éþóÿÿH�53H‰ßè_0ýÿ…À…€ léÛóÿÿºH�5ô L‰÷è§)ýÿ…À„”ºH�5à L‰÷è‹)ýÿ…ÀuWH�t$H�{1Òè—5ýÿˆékH‹D$€8t+H‹PZH�58 1ÿºH�XèÉ+ýÿH‰ÞH‰Ç1Àèì‚ÿÿ€ •k@éPóÿÿ1ÿºH�58 è�+ýÿH‰ÞH‰Ç1ÀèÀ‚ÿÿé+óÿÿH�t$H�{1Òè5ýÿˆmkH‹D$€8t+H‹ÔYH�5e7 1ÿºH�XèM+ýÿH‰ÞH‰Ç1Àèp‚ÿÿ€%k¿éÔòÿÿH�5 H‰ßè5/ýÿ…Àu € újéµòÿÿº H�5ï H‰ßè�(ýÿ…Àu$HƒÃ H�5¤ôH‰ßèú.ýÿ…Àu,1Ò‰ÊjéyòÿÿH�5Ä H‰ßèÚ.ýÿ…Àu.€  jéZòÿÿH�5öéH‰ßè».ýÿ…Àu1ljj é8òÿÿH�5™ H‰ßè™.ýÿ…Àu1Ç_jéòÿÿH�5¾éH‰ßèw.ýÿ…ÀugÇEjéôñÿÿºH�5` H‰ßèÀ'ýÿ…À„ªºH�5M H‰ßè¤'ýÿ…ÀuoHƒÃH�5ÇóH‰ßè.ýÿ…Àu21À‰éiéœñÿÿ1ÿºH�5Ž6 èé)ýÿH‰ÞH‰Ç1Àè �ÿÿéwñÿÿH�5MóH‰ßèØ-ýÿ…À…–ÇžiéQñÿÿH�5 H‰ßè²-ýÿ…À…’€ tié.ñÿÿH�t$H�{º è3ýÿH‰ÁH‹D$€8u�Aþƒøv1H‹ÏWºH�5#6 1ÿH‰L$èG)ýÿH‰ÞH‰Ç1Àèj€ÿÿH‹L$‰ iéÊðÿÿH�5TóH‰ßè+-ýÿ…Àu.Çõhé¨ðÿÿH�5u H‰ßè -ýÿ…Àu.€%Ïhûé‰ðÿÿH�5 H‰ßèê,ýÿ…Àu.Ç´hégðÿÿH�5A H‰ßèÈ,ýÿ…Àu1€ _€éHðÿÿ1ÿºH�5’5 è•(ýÿH‰ÞH‰Ç1Àè¸ÿÿé#ðÿÿH�5û H‰ßè„,ýÿ…Àu €%Ü^éðÿÿH‰ÞH�=ð 1Àèsšÿÿéîïÿÿff.„óúSºH‰ûH�5L& 1ÿè%(ýÿH‰ß¾H‰Â1ÀèÃ2ýÿ1ÿºH�5u& è(ýÿH‰ß¾H‰Â1Àèž2ýÿ1ÿºH�5�& èÛ'ýÿH‰ß¾H‰Â1Àèy2ýÿ1ÿºH�5»& è¶'ýÿH‰ß¾H‰Â1ÀèT2ýÿ1ÿºH�5&' è‘'ýÿH‰ß¾H‰Â1Àè/2ýÿ1ÿºH�5I' èl'ýÿH‰ß¾H‰Â1Àè 2ýÿ1ÿºH�5l' èG'ýÿH‰ß¾H‰Â1Àèå1ýÿ1ÿºH�5‡' è"'ýÿH‰ß¾H‰Â1ÀèÀ1ýÿ1ÿºH�5ª' èý&ýÿH‰ß¾H‰Â1Àè›1ýÿºH�5×' 1ÿèØ&ýÿH‰ß¾H‰Â1Àèv1ýÿºH�52( 1ÿè³&ýÿH‰ß¾H‰Â1ÀèQ1ýÿºH�5M( 1ÿèŽ&ýÿH‰ß¾H‰Â1Àè,1ýÿºH�5€( 1ÿèi&ýÿH‰ß¾H‰Â1Àè1ýÿºH�5ë* 1ÿèD&ýÿH‰ß¾H‰Â1Àèâ0ýÿºH�5N+ 1ÿè&ýÿH‰ß¾H‰Â1Àè½0ýÿºH�5i+ 1ÿèú%ýÿH‰ß¾[H‰Â1Àé—0ýÿ€óúSºH‰ûH�5ì# 1ÿèÅ%ýÿH‰ß¾H‰Â1Àèc0ýÿ1ÿºH�5$ è %ýÿH‰ß¾H‰Â1Àè>0ýÿ1ÿºH�50$ è{%ýÿH‰ß¾H‰Â1Àè0ýÿ1ÿºH�5[$ èV%ýÿH‰ß¾H‰Â1Àèô/ýÿ1ÿºH�5% è1%ýÿH‰ß¾H‰Â1ÀèÏ/ýÿ1ÿºH�51% è %ýÿH‰ß¾H‰Â1Àèª/ýÿ1ÿºH�5L% èç$ýÿH‰ß¾H‰Â1Àè…/ýÿ1ÿºH�5o% èÂ$ýÿH‰ß¾H‰Â1Àè`/ýÿ1ÿºH�5š% è�$ýÿH‰ß¾H‰Â1Àè;/ýÿºH�5÷% 1ÿèx$ýÿH‰ß¾H‰Â1Àè/ýÿºH�5& 1ÿèS$ýÿH‰ß¾H‰Â1Àèñ.ýÿºH�5E& 1ÿè.$ýÿH‰ß¾H‰Â1ÀèÌ.ýÿºH�58) 1ÿè $ýÿH‰ß¾H‰Â1Àè§.ýÿºH�5S) 1ÿèä#ýÿH‰ß¾[H‰Â1Àé�.ýÿ�óúSºH‰ûH�5Ü! 1ÿèµ#ýÿH‰ß¾H‰Â1ÀèS.ýÿºH�5" 1ÿè�#ýÿH‰ß¾H‰Â1Àè..ýÿºH�5"" 1ÿèk#ýÿH‰ß¾H‰Â1Àè .ýÿºH�5M" 1ÿèF#ýÿH‰ß¾H‰Â1Àèä-ýÿºH�5# 1ÿè!#ýÿH‰ß¾[H‰Â1Àé¾-ýÿff.„óúSºH‰ûH�5Å1ÿèå"ýÿH‰ß¾H‰Â1Àèƒ-ýÿ1ÿºH�5-ÅèÀ"ýÿH‰ß¾H‰Â1Àè^-ýÿ1ÿºH�5XÅè›"ýÿH‰ß¾H‰Â1Àè9-ýÿ1ÿºH�5sÅèv"ýÿH‰ß¾H‰Â1Àè-ýÿ1ÿºH�5–ÅèQ"ýÿH‰ß¾H‰Â1Àèï,ýÿ1ÿºH�5ÁÅè,"ýÿH‰ß¾H‰Â1ÀèÊ,ýÿ1ÿºH�5ìÅè"ýÿH‰ß¾H‰Â1Àè¥,ýÿ1ÿºH�5Æèâ!ýÿH‰ß¾H‰Â1Àè€,ýÿ1ÿºH�5:Æè½!ýÿH‰ß¾H‰Â1Àè[,ýÿ1ÿºH�5eÆè˜!ýÿH‰ß¾H‰Â1Àè6,ýÿ1ÿºH�5ˆÆès!ýÿH‰ß¾H‰Â1Àè,ýÿ1ÿºH�5»ÆèN!ýÿH‰ß¾H‰Â1Àèì+ýÿ1ÿºH�5ÖÆè)!ýÿH‰ß¾H‰Â1ÀèÇ+ýÿ1ÿºH�5ùÆè!ýÿH‰ß¾H‰Â1Àè¢+ýÿ1ÿºH�5$Çèß ýÿH‰ß¾H‰Â1Àè}+ýÿ1ÿºH�5OÇèº ýÿH‰ß¾H‰Â1ÀèX+ýÿ1ÿºH�5‚Çè• ýÿH‰ß¾H‰Â1Àè3+ýÿ1ÿºH�5µÇèp ýÿH‰ß¾H‰Â1Àè+ýÿ1ÿºH�5àÇèK ýÿH‰ß¾H‰Â1Àèé*ýÿ1ÿºH�5 Èè& ýÿH‰ß¾H‰Â1ÀèÄ*ýÿ1ÿºH�5.Èè ýÿH‰ß¾H‰Â1ÀèŸ*ýÿ1ÿºH�5YÈèÜýÿH‰ß¾H‰Â1Àèz*ýÿ1ÿºH�5„Èè·ýÿH‰ß¾H‰Â1ÀèU*ýÿ1ÿºH�5¯Èè’ýÿH‰ß¾H‰Â1Àè0*ýÿ1ÿºH�5ÚÈèmýÿH‰ß¾H‰Â1Àè *ýÿ1ÿºH�5åÈèHýÿH‰ß¾H‰Â1Àèæ)ýÿ1ÿºH�5Éè#ýÿH‰ß¾H‰Â1ÀèÁ)ýÿ1ÿºH�5CÉèþýÿH‰ß¾H‰Â1Àèœ)ýÿ1ÿºH�5nÉèÙýÿH‰ß¾H‰Â1Àèw)ýÿ1ÿºH�5‘Éè´ýÿH‰ß¾H‰Â1ÀèR)ýÿ1ÿºH�5¼Éè�ýÿH‰ß¾H‰Â1Àè-)ýÿ1ÿºH�5ßÉèjýÿH‰ß¾H‰Â1Àè)ýÿ1ÿºH�5RÊèEýÿH‰ß¾H‰Â1Àèã(ýÿ1ÿºH�5½Êè ýÿH‰ß¾H‰Â1Àè¾(ýÿ1ÿºH�5èÊèûýÿH‰ß¾H‰Â1Àè™(ýÿ1ÿºH�5³ËèÖýÿH‰ß¾H‰Â1Àèt(ýÿ1ÿºH�5Ìè±ýÿH‰ß¾H‰Â1ÀèO(ýÿ1ÿºH�5IÌèŒýÿH‰ß¾H‰Â1Àè*(ýÿ1ÿºH�5ôÌègýÿH‰ß¾H‰Â1Àè(ýÿ1ÿºH�5_ÍèBýÿH‰ß¾H‰Â1Àèà'ýÿ1ÿºH�5ÚÍèýÿH‰ß¾H‰Â1Àè»'ýÿ1ÿºH�5=ÎèøýÿH‰ß¾H‰Â1Àè–'ýÿ1ÿºH�5 ÎèÓýÿH‰ß¾H‰Â1Àèq'ýÿ1ÿºH�5Ïè®ýÿH‰ß¾H‰Â1ÀèL'ýÿ1ÿºH�5–Ïè‰ýÿH‰ß¾H‰Â1Àè''ýÿ1ÿºH�5¹ÏèdýÿH‰ß¾H‰Â1Àè'ýÿ1ÿºH�5äÏè?ýÿH‰ß¾H‰Â1ÀèÝ&ýÿ1ÿºH�5ÐèýÿH‰ß¾H‰Â1Àè¸&ýÿ1ÿºH�5jÐèõýÿH‰ß¾H‰Â1Àè“&ýÿºH�5ÏÐ1ÿèÐýÿH‰ß¾H‰Â1Àèn&ýÿºH�5:Ñ1ÿè«ýÿH‰ß¾H‰Â1ÀèI&ýÿºH�5UÑ1ÿè†ýÿH‰ß¾H‰Â1Àè$&ýÿºH�5pÑ1ÿèaýÿH‰ß¾H‰Â1Àèÿ%ýÿºH�5“Ñ1ÿè<ýÿH‰ß¾[H‰Â1ÀéÙ%ýÿf„óúH�5%_H�=~Qéiýÿf„óúH�5Õ^H�=^QéIýÿf„óúHƒìH�=ÎöÆò^gèõ"ýÿºH…Àt‹P H‹@H‰íOH¸ÿÿÿ¿øÿȉåOH#QHº@€H Ѐ âP € óPƆRÆ–RH‰ÖPHƒÄÃ�óúHƒìH�=9öÆB^gèu"ýÿº H…Àt‹P H‹@H‰mOH¸ÿÿÿ¿øÿȉeOH#†PHº@€H Ѐ bP € sPÆRÆRH‰VPHƒÄÃ�óúöFPt H‹dPƒx@tÃDHƒìÆ@RH‰Ç¹ º¾H‰D$è<=H‹D$Æ@RHƒÄÃff.„óúöæOt H‹Pƒx@tÃDHƒìÆ@RH‰Ç¹ 1Ò1öH‰D$èâ<H‹D$Æ@RHƒÄÃ@óúº ¾¿éˆE„óúº 1ö1ÿénEff.„óúH‹5í\H‹=Þ\é‰Nf„óúH‹5•\H‹=†\éiNf„óúéç…ÿÿ€óúé×…ÿÿ€óúAUI‰õATI‰ÌUHcïSH�uHcÚHƒìI‹}èiýÿ‹(9H�sHÁãI‰EHÁæ‰(¶9ˆT(I‹<$è<ýÿH�5 I‰$H� H‹öH�yH‰H‹†HƒçøH‰�H)ùH)Î�Á ÁéóH¥HƒÄ[]A\A]ÃóúAUI‰õATI‰ÌUHcïSH�uHcÚHƒìI‹}èÉýÿ‹ƒ8H�sHÁãI‰EHÁæ‰(¶m8ˆT(I‹<$èœýÿH�5EI‰$H� H‹6H�yH‰H‹†HƒçøH‰�H)ùH)Î�Á ÁéóH¥HƒÄ[]A\A]ÃóúUH‰ÍSHcÚH�sCHÁãHÁæHƒìH‹9è,ýÿH�5uýH‰EH� H‹fýH�yH‰H‹†XHƒçøH‰�XH)ùH)Î�Á`ÁéóH¥HƒÄ[]Ã@óúAVSHƒì(dH‹%(H‰D$1À�ÿƒ=�ÿ.~%�ï/ƒÿTw*H�‡/HcºHÐ>ÿàf„�ÿ›u(€ ’Z�1ÀH‹T$dH+%(…ÑHƒÄ([A^Ãf�^ƒÿP„¥ƒÿzuÐH‹¹DH�5“áH‰ÇH‰ÃèGýÿ…À…Ÿ¶šLƒà?ƒÈ€ˆŽLff.„�¸ë‹f„�ÿ¬…tÿÿÿ€=½Q…gÿÿÿ€ ðY€é[ÿÿÿH‹=ÜUèýÿH‹=8DHÇÅUH…ÿ„tH�5_ßH‰|$è³ýÿH‹|$…ÀtŠf.„è»ýÿH‰ŒUéoÿÿÿH‹=èCè³×ýÿé^ÿÿÿ€%ÜK¿éRÿÿÿ€ ÐK@éFÿÿÿ€%ÄKßé:ÿÿÿ€ ¸K é.ÿÿÿ·©KHƒ oLf%?üf €f‰’Ké ÿÿÿ¶ˆKƒàçƒÈˆ|Kéóþÿÿ€%pKçéçþÿÿ·dKH�5¤ôf%þf‰RKA‰ÆH‹DCH‰ÇH‰ÃèÙýÿ…À…a€ .K€é¥þÿÿH‹=®TèYýÿH‹=CHÇ—TH…ÿ„~þÿÿè¹ýÿH…À„pþÿÿH�xèWýÿH‹=àBH‰ÆH‰D$è3–ÿÿH‹D$H‰WTéBþÿÿH‹=»Bè¦ýÿH‹=¯BH�5îó‰šL‰D$è)ýÿ‹T$ƒúu…À„Ńú…ÿýÿÿH‹xBºH�5¤ 1ÿèõýÿH‰ÞH‰Ç1ÀèkÿÿéÓýÿÿ€ PJéÇýÿÿ€%DJýé»ýÿÿH‹54BH�=½WèXHé£ýÿÿH‹5BH�=ªWè=Héˆýÿÿ„H�5NóH‰ßè‘ýÿ…Àu]¶èIƒà?ƒÈ@ˆÜIéUýÿÿDH�5×ëH‰ßèaýÿ…ÀuM€ »Ié1ýÿÿ�H�êòH‰¢AH‰Çéšýÿÿf.„H�5åòH‰ßè!ýÿ…Àu7€ |Iéñüÿÿ�H�5¹òH‰ßèýÿ…À…¾D‰ðf €f‰OIéÆüÿÿºH�5žòH‰ßèBýÿ…À„ ºH�5‘òH‰ßè&ýÿ…À„åº H�5‡òH‰ßè ýÿ…À„YH�5“åH‰ßèƒýÿ…À…¶ÚHƒàŸƒÈ ˆÎHéCüÿÿºH�5Ÿ 1ÿè@ýÿH‰Ç1Àèfiÿÿ‹˜JéþÿÿºH�5ÿ éþÿÿ1ÒH�t$H�{èªýÿH‹T$H‰VI€:u H�PÿH…Ât+H‹Y@H�5â 1ÿºH�XèÒýÿH‰ÞH‰Ç1Àèõhÿÿ€ 7Hé©ûÿÿ1ÒH�t$H�{èIýÿH‹T$H‰ýH€:u H�PÿH…Ât+H‹ø?H�5© 1ÿºH�XèqýÿH‰ÞH‰Ç1Àè”hÿÿ€ ÖGéHûÿÿH�5RñH‰ßèYýÿ…À…‰¶°GƒàŸƒÈ@ˆ¤Géûÿÿ1ÒH�t$H�{ è¹ýÿH‹T$H‰�G€:u#H…ÀxHƒ={G…åúÿÿHÇjGÿÿÿÿéÕúÿÿH‹N?1ÿºH�5  H�X èÇýÿH‰ÞH‰Ç1ÀèêgÿÿëµH�5ÀðH‰ßè¹ýÿ…Àu€ Gé‰úÿÿèÔýÿH�5šðH‰ßè•ýÿ…Àu €%óFýéeúÿÿH�5‹ðH‰ßèvýÿ…ÀuH� —GéBúÿÿH�5vðH‰ßèíýÿ„ÀtÇ…Gé úÿÿH�5RðH‰ßè¡­ýÿ„ÀtE1ÉD‰ cGéþùÿÿH�5@ðH‰ßè­ýÿ„Àt"H�5DðH‰ßèüýÿ…Àu.E1ÀD‰2GéÉùÿÿH�5_ðH‰ßèÚýÿ…Àu.ÆéGéªùÿÿH�5# H‰ßè»ýÿ…Àu.ÇñFéˆùÿÿH�5ðH‰ßè™ýÿ…Àu.ƨGéiùÿÿH�5àïH‰ßèzýÿ…Àu/ǰFéGùÿÿH�5^ÍH‰ßèXýÿ…Àu/Hƒ |Fé'ùÿÿH�5À H‰ßè8ýÿ…Àu/ÇnFéùÿÿH�5©ïH‰ßèýÿ…ÀuHƒ :F éåøÿÿºH�5™ éèúÿÿH�5‚ïH‰ßèåýÿ…ÀuH� Fé±øÿÿH�5iïH‰ßèÂýÿ…Àu Hƒ æE鑸ÿÿH�5RïH‰ßè¢ýÿ…ÀuH� ÃEénøÿÿH�5<ïH‰ßèýÿ…Àu Hƒ £EéNøÿÿH�5%ïH‰ßè_ýÿ…Àu Hƒ ƒE@é.øÿÿH�5ïH‰ßè?ýÿ…ÀuH� `Eé øÿÿH�5ŽÊH‰ßèýÿ…Àuóo8Efë8)EéÜ÷ÿÿH�5ÃîH‰ßèíýÿ…Àuóo EfÛúDé­÷ÿÿH�5™îH‰ßè¾ýÿ…ÀuóoÚDfëúËDé~÷ÿÿH�5sîH‰ßè�ýÿ…Àu Hƒ »Dé^÷ÿÿH�5QîH‰ßèoýÿ…Àu Hƒ%›Dþé>÷ÿÿH�5<îH‰ßèOýÿ…Àu € ©Cé÷ÿÿH�5îH‰ßè0ýÿ…Àu €%ŠC÷é÷ÿÿH�5îH‰ßèýÿ…ÀuÇDéÞöÿÿH�5ôíH‰ßèïýÿ…Àu € HCé¿öÿÿH�5ÓíH‰ßèÐýÿ…Àu €%)Cûé öÿÿH�5ÄíH‰ßè±ýÿ…Àu € C@é�öÿÿH�5£íH‰ßè’ýÿ…Àu €%êB¿éböÿÿH�5ŽíH‰ßèsýÿ…Àu € ÌBéCöÿÿH�5míH‰ßèTýÿ…Àu €%­Bþé$öÿÿH�5�ØH‰ßè5ýÿ…Àu¶ŒBƒàóƒÈˆ€BéùõÿÿH�53íH‰ßè ýÿ…Àu¶aBƒàóƒÈˆUBéÎõÿÿH�5ÈËH‰ßèßýÿ…Àu¶8BƒàŸƒÈ@ˆ,Bé£õÿÿH�5æìH‰ßè´ýÿ…Àu €% BŸé„õÿÿH�5ÎìH‰ßè•ýÿ…ÀtáH�5ÃìH‰ßè‚ýÿ…Àu 1ÿ‰=vBéQõÿÿH�5½ìH‰ßèbýÿ…ÀuÇhBé/õÿÿH�5™ìH‰ßè@ýÿ…Àu 1ö‰5HBéõÿÿH�5\üH‰ßè ýÿ…ÀuÇBéíôÿÿH�5pìH‰ßèþýÿ…Àu 1ɉ öAéÍôÿÿº H�5uìH‰ßèIýÿ…Àu+H�5lìH�{ L�s èÁýÿ…Àu2€%¶N¿ÆÇNgéŠôÿÿH�5hìH‰ßè›ýÿ…Àu2€ �NékôÿÿH�5.ìL‰÷è|ýÿ…Àu6€ qN@Æ‚N�éEôÿÿH�5*ìH‰ßèVýÿ…À…ÿ€ GNé"ôÿÿºH�5ëëL‰÷èžýÿ…À„€ºH�5×ëL‰÷è‚ýÿ…ÀuWH�t$H�{1ÒèŽýÿˆNH‹D$€8t+H‹G8H�5 1ÿºH�XèÀ ýÿH‰ÞH‰Ç1Àèã`ÿÿ€ ¼M@é—óÿÿºH�5 éšõÿÿH�t$H�{1Òè&ýÿˆ¨MH‹D$€8t+H‹ß7H�5p 1ÿºH�XèX ýÿH‰ÞH‰Ç1Àè{`ÿÿ€%TM¿é/óÿÿH�5ëH‰ßè@ ýÿ…Àu € 5Méóÿÿº H�5úêH‰ßèŒýÿ…Àu$HƒÃ H�5¯ÒH‰ßè ýÿ…Àu,1Ò‰MéÔòÿÿH�5ÏêH‰ßèå ýÿ…Àu.€ ÛLéµòÿÿH�5ÈH‰ßèÆ ýÿ…Àu1ÇÄL é“òÿÿH�5¤êH‰ßè¤ ýÿ…Àu1ÇšLéqòÿÿH�5ÉÇH‰ßè‚ ýÿ…ÀugÇ€LéOòÿÿºH�5kêH‰ßèËýÿ…À„–ºH�5XêH‰ßè¯ýÿ…Àu[HƒÃH�5ÒÑH‰ßè( ýÿ…Àu1À‰$Lé÷ñÿÿºH�5› éúóÿÿH�5lÑH‰ßè÷ ýÿ…À…–ÇíKéÀñÿÿH�5JêH‰ßèÑ ýÿ…À…’€ %>€é�ñÿÿH�t$H�{º è:ýÿH‰ÁH‹D$€8u�Aþƒøv1H‹î5ºH�5B 1ÿH‰L$èfýÿH‰ÞH‰Ç1Àè‰^ÿÿH‹L$‰ bKé9ñÿÿH�5sÑH‰ßèJ ýÿ…Àu.ÇDKéñÿÿH�5ŸéH‰ßè( ýÿ…Àu.€%€=éøðÿÿH�54éH‰ßè ýÿ…Àu%ÇKéÖðÿÿH‰ÞH�=ré1ÀèõxÿÿéÀðÿÿºH�5¼ éÃòÿÿff.„@óúAVSHƒì(dH‹%(H‰D$1À�ÿƒ-�ÿ.޹�ï/ƒÿTwH�§ HcºHÐ>ÿàD1ÀH‹T$dH+%(…ªHƒÄ([A^À%¯<ýff.„¸ëË€ –<ëðH‹=‰4èt ýÿH‹=}4H�5¼å‰h>‰D$è÷ýÿ‹T$ƒúu.…Àu*ºH�56 1ÿè×ýÿH‰Ç1Àèý\ÿÿ‹/>€ƒúu‹H‹$4ºH�5P 1ÿè¡ýÿH‰ÞH‰Ç1ÀèÄ\ÿÿé_ÿÿÿH‹5ø3H�=IIè:éGÿÿÿH‹=pEèýÿH‹=Ô3HÇYEH…ÿ„ ÿÿÿè{ýÿH…À„ÿÿÿH�xèýÿH‹=¢3H‰ÆH‰D$èõ†ÿÿH‹D$H‰Eéäþÿÿ·�;H�5Áäf%þf‰o;A‰ÆH‹a3H‰ÇH‰Ãèöýÿ…À„®H�5UÝH‰ßèßýÿ…À…Ç€ 5;é‹þÿÿ€%(;çéþÿÿ¶;ƒàçƒÈˆ;égþÿÿ·;Hƒ È;f%?üf €f‰ë:éDþÿÿ€ â: é8þÿÿ€%Ö:ßé,þÿÿ€ Ê:@é þÿÿ€%¾:¿éþÿÿH‹=­2èxÆýÿéþÿÿH‹=4Dè×ýÿH‹=�2HÇDH…ÿ„ìH�5·ÍH‰|$è ýÿH‹|$…À„¾ýÿÿff.„è ýÿH‰ÜCéŸýÿÿ€ƒÿPt[ƒÿz…\ýÿÿH‹#2H�5ýÎH‰ÇH‰Ãè±ýÿ…ÀtMH�5[ãH‰ßèžýÿ…À…¶¶ñ9ƒà?ƒÈ@ˆå9é>ýÿÿfDH‹5Ñ1H�=*Gèõ7é ýÿÿ¶»9ƒà?ƒÈ€ˆ¯9éýÿÿ„€ �9€éôüÿÿ@H�ÊâH‰‚1H‰Çé*ÿÿÿf.„H�5¹âH‰ßèýÿ…À…·D‰ðf €f‰O9é¦üÿÿfDH�5•âH‰ßèÑýÿ…Àu € ,9é�üÿÿºH�5yâH‰ßèýÿ…ÀtxºH�5pâH‰ßèýÿ…À„½º H�5fâH‰ßèéÿüÿ…À„1H�5rÕH‰ßèbýÿ…À…ë¶¹8ƒàŸƒÈ ˆ­8éüÿÿºH�5 éyüÿÿ1ÒH�t$H�{è± ýÿH‹T$H‰]9€:u H�PÿH…Ât+H‹`0H�5é 1ÿºH�XèÙýÿH‰ÞH‰Ç1ÀèüXÿÿ€ >8é�ûÿÿ1ÒH�t$H�{èP ýÿH‹T$H‰9€:u H�PÿH…Ât+H‹ÿ/H�5° 1ÿºH�XèxýÿH‰ÞH‰Ç1Àè›Xÿÿ€ Ý7é/ûÿÿH�5YáH‰ßè`ýÿ…À…‰¶·7ƒàŸƒÈ@ˆ«7éûÿÿ1ÒH�t$H�{ èÀ ýÿH‹T$H‰”7€:u#H…ÀxHƒ=‚7…ÌúÿÿHÇq7ÿÿÿÿé¼úÿÿH‹U/1ÿºH�5' H�X èÎýÿH‰ÞH‰Ç1ÀèñWÿÿëµH�5ÇàH‰ßèÀýÿ…Àu€ 7épúÿÿèÛýÿH�5¡àH‰ßèœýÿ…Àu €%ú6ýéLúÿÿH�5’àH‰ßè}ýÿ…ÀuH� ž7é)úÿÿH�5}àH‰ßèÊ�ýÿ„ÀtÇŒ7éúÿÿH�5YàH‰ßè¨�ýÿ„Àt 1ÿ‰=l7éçùÿÿH�5IàH‰ßèˆ�ýÿ„Àt H�5MàH‰ßèýÿ…Àu,1ö‰5=7é´ùÿÿH�5jàH‰ßèåýÿ…Àu.Æô7é•ùÿÿH�5. H‰ßèÆýÿ…Àu.Çü6ésùÿÿH�5'àH‰ßè¤ýÿ…Àu.Ƴ7éTùÿÿH�5ëßH‰ßè…ýÿ…Àu/Ç»6é2ùÿÿH�5i½H‰ßècýÿ…Àu/Hƒ ‡6éùÿÿH�5Ë H‰ßèCýÿ…Àu/Çy6éðøÿÿH�5´ßH‰ßè!ýÿ…ÀuHƒ E6 éÐøÿÿºH�5¤ éGùÿÿH�5�ßH‰ßèðýÿ…ÀuH� 6éœøÿÿH�5tßH‰ßèÍýÿ…Àu Hƒ ñ5é|øÿÿH�5]ßH‰ßè­ýÿ…ÀuH� Î5éYøÿÿH�5GßH‰ßèŠýÿ…Àu Hƒ ®5é9øÿÿH�50ßH‰ßèjýÿ…Àu Hƒ Ž5@éøÿÿH�5ßH‰ßèJýÿ…ÀuH� k5éö÷ÿÿH�5™ºH‰ßè'ýÿ…ÀuóoC5fëC45éÇ÷ÿÿH�5ÎÞH‰ßèøýÿ…Àuóo5fÛ$5é˜÷ÿÿH�5¤ÞH‰ßèÉýÿ…Àuóoå4fëÖ4éi÷ÿÿH�5~ÞH‰ßèšýÿ…Àu Hƒ Æ4éI÷ÿÿH�5\ÞH‰ßèzýÿ…Àu Hƒ%¦4þé)÷ÿÿH�5GÞH‰ßèZýÿ…Àu € ´3é ÷ÿÿH�5&ÞH‰ßè;ýÿ…Àu €%•3÷éëöÿÿH�5ÞH‰ßèýÿ…ÀuÇ&4éÉöÿÿH�5ÿÝH‰ßèúýÿ…Àu € S3éªöÿÿH�5ÞÝH‰ßèÛýÿ…Àu €%43ûé‹öÿÿH�5ÏÝH‰ßè¼ýÿ…Àu € 3@élöÿÿH�5®ÝH‰ßè�ýÿ…Àu €%õ2¿éMöÿÿH�5™ÝH‰ßè~ýÿ…Àu € ×2é.öÿÿH�5xÝH‰ßè_ýÿ…Àu €%¸2þéöÿÿH�5˜ÈH‰ßè@ýÿ…Àu¶—2ƒàóƒÈˆ‹2éäõÿÿH�5>ÝH‰ßèýÿ…Àu¶l2ƒàóƒÈˆ`2é¹õÿÿH�5Ó»H‰ßèêÿüÿ…Àu¶C2ƒàŸƒÈ@ˆ72éŽõÿÿH�5ñÜH‰ßè¿ÿüÿ…Àu €%2ŸéoõÿÿH�5ÙÜH‰ßè ÿüÿ…ÀtáH�5ÎÜH‰ßè�ÿüÿ…Àu 1ɉ �2é<õÿÿH�5ÈÜH‰ßèmÿüÿ…ÀuÇs2éõÿÿH�5¤ÜH‰ßèKÿüÿ…Àu 1Ò‰S2éúôÿÿH�5gìH‰ßè+ÿüÿ…ÀuÇ!2éØôÿÿH�5{ÜH‰ßè ÿüÿ…Àu 1À‰2é¸ôÿÿº H�5€ÜH‰ßèTøüÿ…Àu+H�5wÜH�{ L�s èÌþüÿ…Àu)€%‘>¿Æ¢>géuôÿÿH‰ÞH�=1Ý1Àè´lÿÿé_ôÿÿH�5BÜL‰÷è�þüÿ…Àu€ U>@Æf>�é9ôÿÿºH�5"ÜL‰÷èÕ÷üÿ…À„€ºH�5ÜL‰÷è¹÷üÿ…ÀuWH�t$H�{1ÒèÅýÿˆ>H‹D$€8t+H‹~(H�5G 1ÿºH�Xè÷ùüÿH‰ÞH‰Ç1ÀèQÿÿ€ Ã=@é®óÿÿºH�5J é%ôÿÿH�t$H�{1Òè]ýÿˆ¯=H‹D$€8t+H‹(H�5§ 1ÿºH�Xè�ùüÿH‰ÞH‰Ç1Àè²Pÿÿ€%[=¿éFóÿÿfDóúHƒìH‹WH�5ìà1À¿èñýÿ¸HƒÄÀóúAWAVI‰ÖAUI‰õATUSH‰ûHƒì8‹5Ã:H‰L$dH‹%(H‰D$(1À…ö…ZH‹CH‹kI‹½à·@fÁèƒà<„w^<„. <…#L�d$ A¸H‰éL‰îL‰âèÕøüÿ„À„þI‹…àH‹SL‰çH‹@öB„á ÿP`I‰Çé fD< „¨<@…ÅA¸H‰éH�T$ L‰îèzøüÿ„À„£I‹…àH�|$ H‹@ÿP(‹ Ý9I‰Ç…É„Áff.„H‹KL‹CL‰ú¿H�5Ñ®1Àè¢ÿüÿH‹Cö@…$ ·PH�5ºß¿1ÀfÁêƒâèvÿüÿëg@L�d$ A¸H‰éL‰îL‰âè×÷üÿ„À…ÿH‹kM‹¥àºH�5 ®1ÿè‘÷üÿH‰éL‰êE1ÿH‰ÇL‰æ1Àè«Nÿÿ‹ 9…É…MÿÿÿL‰öH‰ßL�%¦æèË–ƒ=p.H‰D$„„ºk_I�vö1ÉA¸H¸__nm_thnI‰Föf‰VH‹=·-1ÒèXúüÿH…Àt €x„¤‹£8H‹5”8H�=ÔÞ1ÀH‹-¬-èW΃€8H‰îI‰ÄH‰ÇèÒùüÿL‰çH‰ÅèwóüÿH‹P8H‰îH‹xèýÿH‰ïèôüÿ¾H‰ïè?ûüÿH‹(81ÒH‰ï‹p$H‹Eÿ�˜¿Çÿ7èRøüÿºH�5SÞH‰ïH‰Ü7è×’A¹L‰òH� �åI‰ÀH�53ÞH‰ïH‰D$è0“A¹L‰òH‰ïL�½%H� \åH�5Þè “H‹|$¾èÛûüÿ¿èÑ÷üÿfïÀ¹1öI‰ÄH‹D$º?H‰ïL‰  A$è•“H‹|$è‹”‹=7H‹5.7H‰ïè¦ùüÿH‹t$1ÉL‰âA¸H‰ïèþöüÿH‰ïèfóüÿH‹uH‰ïèJ–H‹3,Æ�-�`DÿÿÿM…ÿ„|‹r,ƒøtqL�%�äƒø„|H‹º1ÿH‹kH�5T¬I‹�àH‹L‹`èõüÿH‹T$(dH+%(…pHƒÄ8M‰àH‰éL‰êH‰ÞH‰Ç[1À]A\A]A^A_éLÿÿ�‹z6H‹5k6H�=ÓÜ1ÀH‹-ƒ+è.̃W6H‰îI‰ÄH‰Çè©÷üÿL‰çL�%åãH‰ÅèGñüÿH‹ 6H‰îH‹xèÔþüÿH‰ïèìñüÿ¾H‰ïèùüÿH‹ø51ÒH‰ï‹p$H‹Eÿ�˜¿0ÇÏ5è"öüÿºH�5IÜH‰ïH‰¬5è§�L‰áL‰òH‰ïA¹L�±#H‰D$H�5ûÛè‘H‹‰5H‹T$H�5¤ÉA¹L�€#H� õÛH‰ï€x(IDôèÉ�H‹T$L‰áL‰æL�W#A¹H‰ïè©�H‹|$¾èzùüÿ¿èpõüÿfïÀ¹1öI‰ÁH‹D$º?H‰ïL‰L$L‰ˆ AÇAAè(‘¹º?H‰ï¾ 葹º?H‰ï¾èú�H‹|$èð‘‹¢4H‹5“4H‰ïè ÷üÿH‹T$1ÉH‰ïH‹t$A¸èaôüÿH‰ïèÉðüÿH‹uH‰ïè­“‹ó)M…ÿ„ƒø…týÿÿ‹c4…À…ÇH‹C‹M4H�=ÉÚH‹574H‹-X)·@fÁèƒàˆD$1ÀèòÉH‰îƒ4I‰ÅH‰ÇèmõüÿL‰ïH‰ÃèïüÿH‹ë3H‰ÞH‹xèŸüüÿH‰ßè·ïüÿ¾H‰ßèÚöüÿH‹Ã31ÒH‰ß‹p$H‹Cÿ�˜ƒ=6)¿u¿0€=ë3¸HEøÇ|3èÏóüÿºH�5ÚH‰ßH‰Y3èT޾H‰ßH‰ÅH‹CH‹€xÿPxH‹T$L‰áL‰æA¹L�C!H‰ß蛎ƒ=°(…€=k3D¶|$…A¹L‰òL‰áH‰ßL�!H�5ËèÆ;3A¾èL޾H‰ïè÷üÿ¿èóüÿfïÀ¹H‰ßH‰… º?¾I‰ÅHÇ@èÕŽ¹º?H‰ß¾ 辎H‹CI�uL‰ÿÿPPH‹CI�u¿ÿPPH‰ïè˜�‹J2H‹5;2H‰ßè³ôüÿM‰ðé¢H‹H‹OH�5IØL‹G¿H‹H‹P1Àè#øüÿé|÷ÿÿfD¾H‰ïèKöüÿ¿èAòüÿL‰ÿH‰… I‰ÅHÇH‹CL‰îÿPP¹º?H‰ß¾èü�H‰ïèôŽ‹¦1H‹5—1H‰ßèôüÿA¸L‰ê1ÉH‰îH‰ßèiñüÿH‰ßèÑíüÿH‹3H‰ßè¶�‹È1�P‰¿1…À„OH‹D$(dH+%(…&HƒÄ8[]A\A]A^A_Ã@H�T$ A¸H‰éL‰îè²ïüÿ„À„Û÷ÿÿD¶|$ H‹SA�G€¶ÀHƒÀ€öBLEøéí÷ÿÿ„A¹L‰òL‰áH‰ßL�êH�5°æA¾ è8Œ¾ H‰ïè õüÿ¿ èñüÿ¹º?H‰ßH‰… ¾I‰ÅHÇÇ@èÂŒ¹1öH‰ßº?讌H‹CI�uL‰ÿÿPPéûýÿÿƒø…ðþÿÿéõûÿÿf.„I‹…àH‹SL‰çH‹@öB„ôÿPHI‰Çé÷ÿÿf„‹0H‹5 0H�=¸ÖH‹%%èÐŃù/H‰ÞH‰ÅH‰ÇèKñüÿH‰ïH‰ÃèðêüÿH‹É/H‰ÞH‹xè}øüÿH‰ßè•ëüÿ¾H‰ßè¸òüÿH‹¡/1ÒH‰ß‹p$H‹Cÿ�˜¿Çx/èËïüÿºH�59ÖH‰ßH‰U/èPŠL‰áL‰æH‰ßH‰ÅH‹M/H�KÕL�O€x(H�8ÕHEÐE1É蘊¾H‰ïèkóüÿ¾¿èœùüÿ¹1öH‰ßH‰… º?I‰Äè.‹H‰ïè&Œ‹Ø.H‹5É.H‰ßèAñüÿ1ÉH‰ßA¸L‰âH‰îè›îüÿH‰ßèëüÿH‹D$(dH+%(u~H‹3HƒÄ8H‰ß[]A\A]A^A_éÊ�f.„H‹T$D‰ù¿1ÀH�5Ê£èuôüÿéúÿÿH�5“Ô¿1Àè]ôüÿH‹CéÀôÿÿ@ÿPXI‰Çé*õÿÿDÿP@I‰ÇéõÿÿèÐìüÿóúAVAUI‰õATUH‰ýS1ÛHƒìdL‹4%(L‰t$I‰Öë/DH‰ê¾H�|$è>òüÿ…À~JL‰ò¾H�|$HƒÃAÿÕ1ÒH‰ÞH‰ïèùøüÿ…ÀtÅ1ÀH‹T$dH+%(uHƒÄ[]A\A]A^ÃfD¸ëÖè4ìüÿ@óúAWAVAUATUSH�ìˆdL‹<%(L‰|$xL‹¿�M…ÿ„JH‹¯I‰üI‹ŸðH…Ûu éff.„@H‹H…Û„ƒ{uîL‹k L;­ÐuáM‹µ M…ö„´H‹½ÈèÅ–ÿÿH‰ÇI‰Åè*íüÿH‹µÈE‰èL‰çH‰ÁH�£þÿÿH‰$芗ÿÿfïÀ¸L‰ç)D$foõH‹�H�t$ÇD$ D$(H‹SH)ÈIG0H‰L$HÐH‰D$8I‹‡€H�DL‰òH‰D$@è—ñüÿH‹s1ÒL‰çI·€è‚÷üÿ…Àt_1ÀH‹T$xdH+%(…„H�Ĉ[]A\A]A^A_ÃfDM‹M…ÿ…Ãþÿÿ1ÿºH�5 ¢è`êüÿH‰Ç1Àè†Aÿÿ¸ë£L‰â¾L‰÷èèüÿH‹ $Hƒøu‡¸fïÀHÇD$PRSDSI9ÅD$XHÇD$pLGèAƒýs~AöÅ…ÒE…í…¤H‰Ïè�æüÿH‹t$@1ÉL‰çH�T$Pè¹ñüÿ…À„#ÿÿÿH‹CIG0HÇ…ÈH+D$H‰…ÀéWÿÿÿI‹}@è„ëüÿI‰… H‹…ÐL‹° é)þÿÿD‰èAƒíH‹TøH‰TPAƒý‚zÿÿÿAƒåø1À‰ÂƒÀH‹4H‰tXD9èríé\ÿÿÿ¶ˆD$XAöÅ„KÿÿÿE‰íB·D)þfB‰D,Vé7ÿÿÿ‹E‰í‰D$XB‹D)üB‰D,TéÿÿÿèOéüÿff.„@óúSHƒìdH‹%(H‰D$1Àƒ= ÿÇD$tN¶?ƒà<u H‹D$dH+%(…†HƒÄ[ÃfDH‹D$dH+%(ujHƒÄ[éN5þÿfDE1À1ÒH�L$1öH�=BÄèàóüÿH…Àt#‹D$ƒøÿt9…À•À¶À‰x éyÿÿÿ€E1ÀH�L$1Ò1öH�=–Ðè óüÿëÃèièüÿH‹D$dH+%(uëH�¾¡H�=qÐè‘.ÿÿ�óúSHƒìdH‹%(H‰D$1À‹ ÇD$ƒøÿtH‹T$dH+%(u^HƒÄ[ÃfDE1À1ÒH�L$1öH�=rÃèóüÿH…Àt‹D$ƒøÿt1…À•À¶À‰¨ë®f�E1ÀH�L$1Ò1öH�=ÎÏèØòüÿëËè¡çüÿH‹D$dH+%(uëH�ú¾¡H�=©ÏèÉ-ÿÿf„óúHƒìè#ÿÿÿH�=UÄèGïüÿºH…Àt‹P H‹@H‰?H�nÏ€ Q H‰âþH‹ó÷‰%ÆèH‰çHƒÄÃf.„AWAVI‰öAUL�-àATI‰üUSHƒìDè›þÿÿIƒ}„°H�¹1íë%DL‰þL‰çè…êüÿ…Àt;HƒÃ(ƒÅHƒ;„€L‹{€{$tÖèQþÿÿL‰çƒø•À¶ÀIÇL‰þèJêüÿ…ÀuÅHcíH�5µÎL‰çH�D­M‰tÅAÇDÅ è!êüÿ…ÀuèþÿÿL�%~Î…ÀH�tÎLEàéOÿÿÿHƒÄ[]A\A]A^A_ÃH�q¾­H�=8ÎèX,ÿÿ„S1ÒHƒìdH‹%(H‰\$H‰ûH‹=H‰æèYéüÿH‰ÆH‰ßèÎþÿÿH‹$H;ót!H‰êH‹D$dH+%(u0HƒÄ[Ã@ºH�5<�1ÿèMåüÿH‰ÞH‰Ç1Àèp<ÿÿH‹$ë¹èuåüÿDSH‰óHƒìècÿÿÿH‹ Œ¶<,t=„Àu HƒÄ[ÃH�5�1ÿºH‰L$èðäüÿH‹t$HƒÄH‰Ç[1Àé <ÿÿ@HƒÁH‰ßH‰ :HƒÄ[éÿÿÿóúAWAVUSHƒì(dH‹%(H‰\$‰ûè�üÿÿ�»Bÿÿÿ�ÿwH�HcºHÐ>ÿàfD1ÀH‹T$dH+%(…HƒÄ([]A^A_ÃIcÇH� ÊHÁà‹DHcðH�=v͉=èpýÿÿ·59f„·öH�=êÍèQýÿÿ¸ë”Ç·5 ë×Çù·5öƒæ¿ƒæßf‰5éë·H‹=@èûåüÿ·5ÔH‰u%ë›·5ÄÇ¶ëˆÆÁ·5ªéuÿÿÿ·5žf�æÿûf‰5’é]ÿÿÿ·5†f�æÿýf‰5zéEÿÿÿ·5nf�æÿþf‰5bé-ÿÿÿ·5V@€æf‰5KéÿÿÿH‹=×&èÚßüÿH‹“HÇÀ&H…Û„IH�5º¬H‰ßèçüÿ…À„ÈþÿÿH‰ßè åüÿH‰‘&é´þÿÿH�=fËèýÿÿ·5áé¬þÿÿ·5ՃΠƒÎ@f‰5Èéÿþÿÿ·5¼éÄþÿÿ·5°f�æÿf‰5¤éoþÿÿ·5˜f�æÿßf‰5ŒéWþÿÿ·5€f�æÿ÷f‰5té?þÿÿÆx·5aé,þÿÿ·5Uf�΀f‰5Iéþÿÿ·5=f�Î f‰51éüýÿÿ·5%f�Îf‰5éäýÿÿ·5 f�Îf‰5éÌýÿÿ·5õf�Îf‰5éé´ýÿÿ·5Ýf�Îf‰5Ñéœýÿÿ·5Å@€Î€f‰5ºé…ýÿÿ·5®é×þÿÿÇ£·5˜écýÿÿÇ�·5‚éMýÿÿLJ·5lé7ýÿÿÇq·5Vé!ýÿÿÇ÷"·5@é ýÿÿH‹=”¾èêF·5#éîüÿÿH‹w¾:H‰ßèšáüÿH…À„‰Á1ÒH�x)ÙA‰ÏH�L$H‰ÎH‰L$èrêüÿH�=ÎÉH‰ÆèúÿÿH‹T$H‹L$¶<.„1„À…öH‹1ÒH‰ÎH‰ßè2êüÿH‹T$¶ €ù:”„É”ÁÊt H=ÿÿ†*üÿÿH‹-ØMc÷H� .ÆE1ÿH�ìÈ@L‰òH‰ÞH‰ïH‰L$è½ÝüÿH‹L$…Àu B€<3„ÒûÿÿH‹YHƒÁAƒÇH…ÛuÈ1ÿºH�5ª˜èàüÿH‰îH‰Ç1Àè(7ÿÿéÃûÿÿH�=tÉè$úÿÿ·5íé¸ûÿÿH�5pÈH�=�Èè•úÿÿ·5Îé™ûÿÿH‹="¾èxE·5±é|ûÿÿH�=KÉèÐùÿÿ·5™édûÿÿH�=œÈè¸ùÿÿ·5�éLûÿÿH�=ÃÈè ùÿÿ·5ié4ûÿÿÇ#·5SéûÿÿH�=:Èèrùÿÿ·5;éûÿÿH�=hÈèZùÿÿ·5#éîúÿÿH�=zÈèBùÿÿ·5 éÖúÿÿH�=’Èè*ùÿÿ·5óÿé¾úÿÿ¾H�=žÈè øÿÿ·5Öÿé¡úÿÿH�5ŠÇH�=œÇè~ùÿÿ·5·ÿé‚úÿÿH‹= H�5 ÃèçüÿH‰xH…À…OúÿÿH‹è ºH�5´–1ÿèeÞüÿH‰ÇH‰Þ1Àèˆ5ÿÿ·5aÿé,úÿÿ@ÇZ·5GÿéúÿÿÇÌ·51ÿéüùÿÿÇ*·5ÿéæùÿÿÇ·5ÿéÐùÿÿÇþþ·5ïþéºùÿÿH‹=C èþßüÿ·5×þH‰hé›ùÿÿÇa!·5ºþé…ùÿÿÇK!·5¤þéoùÿÿÇ5·5ŽþéYùÿÿÇ#!·5xþéCùÿÿÇuþ·5bþé-ùÿÿÇ_þ·5LþéùÿÿÇå ·56þéùÿÿÇÓ ·5 þéëøÿÿÇÁ ·5 þéÕøÿÿH‹=^ 1öè·B·5ðý黸ÿÿH‰ßèÝüÿH�L$A‰Çé'üÿÿH� ÀH‰( H‰Ãé¸ùÿÿºH�5 •1ÿH‰L$è˜ÜüÿH‰Ç1Àè¾3ÿÿH‹÷ H‹L$éÞûÿÿH‰ÎH�z1ÒèæüÿH�=‡ÅH‰Æè õÿÿH‹D$H‹L$¶é ûÿÿè‰Üüÿf„óúAWAVAUATUSHƒìè)ôÿÿ¶’‹lýƒà…Ò…1<„yHƒ=iýuHº@<uHº€‹‘…À…nH‰ýH‰[ýH‹ ÌóH��H9ÁƒêH‹H‹5¦óH�PH�AH‰ŸóH‰1Hƒ=¼üH‰…ó„VL�=¨üE1äë9ƒù„'ƒù…wI‹L‰)E…äuH‰ìIƒÇ(AƒÄIƒ?„ ¿(M‹oè\«ýÿH�5ÇH‰Ã‹VƒøƒÐÿH‹ÆL‰kHÇC H‰C‹:ÇC‰CM‹wA€$…}¿0è«ýÿ¿Ç=H‰ÅH‹CH‰E‹CH‰] ‰EH‹¬òÇEL‰uÆE(èȪýÿÇ@HÇH‹KH‰A‹OH‰CH‰hƒù…þþÿÿI‹fD‰)é ÿÿÿf�è[òÿÿƒø•À¶ÀIÆémÿÿÿf.„I‹D‰)éÝþÿÿDH‹1òH�²H9ƒJH�PøH‹@øH‰òH‰ò‹Q9Gr5HƒÄ[]A\A]A^A_ÃfD<… þÿÿHƒÄ[]A\A]A^A_Ãf„1ÿºH�5z’è­ÙüÿHƒÄ[H‰Ç]1ÀA\A]A^A_éÅ0ÿÿDHÇÅúHÇ ûHƒÄ[]A\A]A^A_ÃH‹=\ñ¶…ÉtgH�w1Ò€‰ÈÁàȉÀHÐH‰ÂHÁêH1ÂH‰ð¶HƒÆ…ÉuÜ)ø‰ÁÁáȉÀHÐH‰ÂHÁêH1ÂH¸ÿÿHÁâH!ÂH�”ÀéýÿÿHºÀéýÿÿH�`ù¾›H�=?Áè_ÿÿèêšþÿèU˜þÿDóúSHƒì¶ ¨…¸÷ÐH�4̨t ‹�…ÀtaèŒðÿÿ…Àt*H‰ßè°ØüÿH�xèWÚüÿH‰ÞÆ_H�xH‰D$èÖüÿH‹\$H‰?ùöÀu €=“ „�HƒÄ[é×ÿÿ€‹2ùH�s½H�Âëf.„H‹XHƒÀH…Û„�9uëéeÿÿÿfDºH�5ä�1ÿèÝ×üÿH‰Ç1Àè/ÿÿ¶<éÿÿÿ€¿èæ§ýÿH‰ßH‰ÂH‹ù H‰T$H‰H‰ê èÅÙüÿH‹T$Hƒ=HH‰B„=ÿÿÿH‰Çè¶œýÿé0ÿÿÿ�H�Ñ÷éÓþÿÿ@óúöÆ t ‹e…Àu ÄHƒìè7ïÿÿA¹¹H�¹¾…ÀH�±¾H‹=Õ H�5~ HDÐE1ÀèÕüÿH…ÀtM€xuÆ@HÇ@(Hƒx t €HHƒÄÃH‹=i H;G0tçH‰ÆH‰D$èîÙüÿH‹D$ëÓ€1ÿºH�5òÕè�ÖüÿHƒÄH‰Ç1Àé¿-ÿÿff.„@óúAWAVAUATUSH�ìˆdH‹%(H‰D$x1ÀèÿÿèQîÿÿ‹ï…À…aH‹=äH…ÿ„H‹ü H…Ûu'éïff.„€H‹›H…Û„ÍH‹CƒxuæèÑ€ÿÿ„À„’º+AH�5ö¿H‰ßè¥ÔüÿH…À„Ì"H‹… H� Îéÿÿó~^H‹“fH:"ÀH‰ŠÀ‚ÈHÇ@@5H‹Cƒx„v@ºH�5\�1ÿèmÕüÿH‰ÞH‰Ç1Àè�,ÿÿH‹ H‹ƒH‹³öH�¸Ð¹2H�5HóH¥‰�`¶Höƒˆ¸ ÷Ú‰�¬‹'ö…Àˆ§H‰ßèÓvH‹¼ H‰D$ H‹@H‹8è{9H‹\H…À„SH‹=l H�ÄH�5Ö]H‹h`ÇðèÃÛüÿHc=äHÁçèƒÖüÿH‹=4 H�ÛÃH�5î_H‰·ÇµèˆÛüÿHc5©ºH‹=•H� ^_è©ÒüÿH‹ÊL‹xPM…ÿ„{H‰ëf�‹pXE1öH�C…ö3ézff.„ff.„€AƒÆHƒÀ(A9ö„LL98uêD9öŽ>I�H‰=.èÖüÿ¶0H‰oH‰ÇI‰À@„öt;ff.„ff.„fDH�yÝöpŒuAÆ_A¶pIƒÀ@„öuáH‹D9pXŽÈIcÆH‰\$@H�€L‰|$ÇD$H�,Ãë,�H‰ßèÐüÿA€ý„_H‹¿AƒÆHƒÅ(D;pX�MH‹D$H9E…>H‹}D¶'èIÓüÿH�xèðÔüÿL‹mH‰ÃA€ü@„G ¾@L‰ïè’Óüÿ¾H‰ßM‰éI‰ÄH‹mL��¨H� “HÇÂÿÿÿÿ€x(H�ÂLDÀ1ÀèrßüÿH‹=C 1É1ÒH� E1ÀH‰ÞH‰$èÑÕüÿH…Àt €x„êH‹ M…äL� ·ÁL�×ÉA”ÄH� 锾H‰ß€x(H�¨HÇÂÿÿÿÿLEÈHƒìÿu1ÀèóÞüÿA]A_H‹$E1À1É1ÒH‰ÞH‹x(èXÕüÿH…À„¿D¶hE„ä„¡þÿÿA€ý…°H‰ßèŸÎüÿD‹T$1ÛE…Ò„oóoEóoU1ÒH�|$PH‹t$ foÈflÊ)L$PH‹EH‰D$`‹E …ÀfnÈIÐE1ÉfH~ÀfD‰L$pH…Àf:"ÊfÖL$h‹U$”D$r„ÒˆT$s”¶Ò!ÚèO¯H‹0H‰Çè4rÇD$é þÿÿºH�5³Š1ÿèDÑüÿH‰Ç1Àèj(ÿÿH‹=ÛèÞÍüÿHÇËH‹ÜH‹Cƒx…ŽûÿÿH‹ƒH…À„~ûÿÿ€xu…¢ûÿÿéoûÿÿ€ƒè‰H˜HÁàHH‹8èzÍüÿ‹ü…ÀuØH‹=éèdÍüÿH‹%H…À„H‹8H…ÿ„H‰=Ùè¼ÒüÿH� UÚ¶H‰„Òt€öQŒuÆ_¶PHƒÀ„Òuë‹=m…ÿ…U‹cñ…À… ¶¨ƒà<…`L‹- M…íuéjff.„�M‹mHM…í„ I‹E0H‰D$Hƒ¸ðtàH‹€�H‰$H…ÀtÐH‰ÃE1äE1ÿ1íDL‹3H�5Ù·L‰÷èÎÓüÿºH�5ê¹L‰÷…À”À¶À Åè Íüÿ…À”ÀD{xH‹[¶ÀA ÄH…Ûu¸ƒõD!åƒå„iÿÿÿE…ÿ…ìM‹mHM…í…`ÿÿÿL‹%L M…ä„¡H�-Ûff.„�M‹l$0Iƒ½ð„mI‹]¾.H‰ßè,ÐüÿH…À„SHƒÀH�ÍÃH‰Áë#ff.„„HƒÁHƒÂ…ö„ ¶1¾:¶t59þtáH�ϸë(ff.„ff.„f�HƒÀHƒÂ…Ʉ඾2¶L 9ñtáM‹­�M…í„ÁÇD$E1öE1ÿI‹}H�5x¶H‰<$èlÒüÿH‹<$ºH�5„¸…À”À¶À D$è»Ëüÿ…À”ÀE}xM‹m¶ÀA ÆM…íu³E…öt^‹L$A½a…É„ H‰ßè4ÎüÿH�xèÛÏüÿE‰é¾H� ,¸H‰ÃI‹D$0HÇÂÿÿÿÿH‰ßL‹1Àè�ÚüÿI‰\$ ff.„M‹d$HM…ä…rþÿÿH‹D$xdH+%(…¬H�Ĉ[]A\A]A^A_Ã@H‹D$ H‹8H‰=Á¶„À„ÝüÿÿHº @ƒè/HƒÇ<-w H£ÂsH‰=�¶„ÀuáH‹=‚é¤üÿÿDH‹pH‹=½1É1ÒA¸èVÐüÿH…À„€x…H‹@(I‹U0H‹ˆàH‹’ðH‹�ðH9ЄàH…ÀH‹:HDÁL‹8L‰þè¨Ëüÿ…À„ÃI‹E0H‹€ðH‹€ L‰x L‰çèRÉüÿH‹$H‹@H‰$H…À„}üÿÿI‹E0H‰D$H‹4$H‹|$è†×üÿH‰ÃH…ÀŽZüÿÿI‹}0è�ÊüÿI‹m0„À„/ H‹­ÈH‰ßè&ÎüÿI‹}0H‹4$H‰éH‰ÂI‰Äè0Öüÿ…ÀˆG „xÿÿÿƒèL‰ãI�lÄ€H‹H‹H‹ö@„ÍþÿÿHƒÃH9ëuäéEÿÿÿ€D‹D$H‹\$@L‹|$E…ÀtH‹|$ èj§H‹0H‰Çè�lH‹=P ècÈüÿM‹?M…ÿ„ÝúÿÿH‹ é[÷ÿÿH‰ßè@ÈüÿD‹T$»E…Ò…žùÿÿff.„f�H‹|$ èÆ£H‹0H‰Çè+léwùÿÿfDE„ä„H�{ènËüÿH�xèÍüÿH�sI‰ÄH‰ÇèÖÈüÿ1ÿA€<$@¾@@”ÇLçè®ËüÿH‰D$8H…ÀtÆ@H‹) Lc* H‰l$(1íH‰\$0H‰D$L‰Ãff.„H9Ýs9L�,+H‹L$L‰çIÑíL‰èHÁàL�<I‹7è¹Îüÿ…ÀˆÑ„ I�mH9ÝrÇH‹l$(H‹\$0A¶$1É1ÒH� E1ÀH‰ÞH‰$èÌÌüÿH…Àt €x„åýÿÿL‹ML�ßÀH‰ß1ÀH� °‰HÇÂÿÿÿÿ¾E1äèÖüÿé÷ÿÿL‰çèõÅüÿH‰ßèíÅüÿéêõÿÿH‹$I‹uE1À1É1ÒH‹l$(H‹\$0H‹x(èVÌüÿ€xuÃL‰çè¸ÅüÿH‰ßè°ÅüÿékýÿÿH‹$I‹wE1À1É1ÒH‹l$(H‹\$0H‹x(èÌüÿ€x…Gþÿÿë½H‹†ÿH‹CH‹8èJ-H‰ßè‚jHƒ=" „µH‹mÿH…Ûtf„H�5¸²H‰ßè!ËüÿI‰ÄH…Àt;H‹h@H‰ïèMÊüÿI‰è1ÉL‰æH‰ÂH‰ßI‰ÅèwÈüÿH‹=È ‰êL‰îèv&L‰ïèîÄüÿH‹›H…Ûu¢H‹£ L�-”þH‹kpH…íuëNf„H‹mH…ít5H‹uI‹}(E1À1É1Òè3ËüÿH…ÀtÞ€xuØH‹@(‹U9sÍH‹m‰H…íuËH‹C H‹ƒ€H…Àt1D‹{xE…ÿt(1íë f�H‹ƒ€H‹<è1öHƒÅèj-H‹ ;kxrÞ¶÷ý‹ E ‰Â¨…ÇD‹s@E…ö…ã …É„ÕD‹- E…í…ÅL‹-þM…턳L�5Ûöff.„L‰ïèHÅüÿ„À„@A‹…Ð…ÀŽ‘M‹½ÈƒèI�_H�,Ãë=DH‹pèOÌüÿ„À„§ff.„ff.„�I‰ßH9ë„DHƒÃI‹L9p tç‹PöÂu…ÒuÛH‹=$þH…ÿu§L‹`ºH�5ü½L‰çèÄüÿ…Àt³L‰çè«ÆüÿH�xèRÈüÿM‰áL�Õ½H� «†H‰ÇH‰$¾1ÀHÇÂÿÿÿÿèÓüÿH‹4$E1À1ÉH‹=Ïü1ÒèpÉüÿH‹<$H‰D$èÒÂüÿH‹D$H…Àt €x„>ÿÿÿH‹—€x(t 1ÀA€<$_”ÀIÄH‹5eL‰âL‰ïèR,…À„ ÿÿÿH‹=K1ÒE1ÀL‰æL�L$P¹ÿÿÿÿÆD$Pè÷H‰Â€|$P…ÙþÿÿI‹I‰ß¶@ÀèƒàƒðˆB#H9ë…Æþÿÿf.„M‹­M…í…@þÿÿH‹áé˜ €=Îû?‡Lðÿÿ¶Àûƒà<„­ H‹-.L�d$PH…íué$ðÿÿ€H‹mHH…í„ÙH‹}0L‰âH�5ýŠÿÿÇD$Pè0Ðüÿ‹D$P…ÀtÐÇæH‹§ûé×ïÿÿ¿H�&åH�5Ø®1ÀèhÌüÿH‹=YûH‹_(H…Ût/„H‹SH�5´®¿1Àè9ÌüÿH‹[ H…ÛuàH‹=!û1ÒH�5ËÿÿèëÂüÿH‹DûH…Û„Æff.„H‹H�5j®¿1ÀèêËüÿH‹›H…ÛuÞéöíÿÿ‹×…À…îH‹¼úH‹X(H…Ûué×óÿÿfDH‹[ H…Û„Äóÿÿ€{uíH‹k€}@„Ÿ¾@H‰ïè‚ÄüÿH…À„‰H‰ïèÆüÿH‰Å¾@H‰ïèaÄüÿH…ÀtÆH‹=Jú1É1ÒH‰îA¸èàÆüÿH…Àt‹€xu…H‹P0H‹@(ÆCƒ=žäÿH‰S0H‰C(…dÿÿÿL‹cºH�5œ~1ÿè]ÃüÿH‰êL‰æéóf�H‹=áùH‰êH�5_‰ÿÿHÇ$è?ÊüÿL‹-M…í„ÿÿÿI‹E0L‹cÆCH‰C0I‹E(H‰C(èÛÿÿ…Àt 1ÀA€<$_”ÀIÄH‹‚ù1ɺL‰æH�¸€è´ÇüÿH‰ÅH‹@H…Àt7€=†u.L‹pºH�5~1ÿè¨ÂüÿL‰âH‰ÇL‰ö1ÀèÈÿÿÆVƒ=¦ãÿL‰m…pþÿÿM‹eH‹kº1ÿH�5¢}èeÂüÿL‰âH‰îH‰Ç1Àè…ÿÿ‹…À…7þÿÿº1ÿH�5™}Ç÷è*ÂüÿH‰Ç1ÀèPÿÿ1ÿºH�5ª}è ÂüÿH‰Ç1Àè3ÿÿéîýÿÿfDèóÙÿÿ…À„TH�á«HÇ$H‰D$H‹høL‹p(M…ö„vñÿÿ1Û�A€~uI‹~èàÁüÿH9ÃHBØM‹v M…öuàH…Û„JñÿÿHƒÃ!ƒ=¨ø„RH‰ßè^ÃüÿI‰ÇH‹ øL‹h(M…í„‘ M�g L‰|$(I�_H�-Ã÷M‰ïëff.„M‹ M…ÿ„6 A€uì‹5Ê…ö…þI‹wL‰çè¾üÿ¹p_H‹}(1Òf‰KA¸1ÉH‰ÞÇ__imè-ÄüÿI‰ÅH…Àt¥€xuŸM…ö„øI‹w1ɺL‰÷è£ÅüÿI‹E0AÆGI‰G0I‹E(I‰G(I‹EI‰Gƒ½¨ÿ…Yÿÿÿ1ÿºH�5³zè†ÀüÿH‰ÚL‰æH‰Ç1ÀèVÿÿ€=3…)ÿÿÿºH�5½z1ÿèVÀüÿH‰Ç1Àè|ÿÿÆ éÿÿÿ<@…ºH‹Á€x(„rAÆ$_L‰l$HH‰l$(H‰\$01Û�L9ës;M�|H‹D$L‰çIÑïL‰úHÁâH�,H‹uè÷Ãüÿ…Àˆ�„B I�_L9ërÅL‹l$HH‹l$(H‹\$0Hƒ|$8„qõÿÿé\õÿÿ…ɅЋS@…Ò…!‹W…Ò„‰Âƒâ„æD‹ =E…É…Ö‹=F‹D…ÿ„ê‹:9Ž܉Ñ)Á�A‹ �9È�N )‰��BHcøHÁçéǺ1ÿH�5àè¿üÿH‹T$xdH+%(… H�ĈH‰îH‰Ç1À[]A\A]A^A_éÿÿL‰ç艻üÿº1ÿH�5c|èÆ¾üÿH‹T$xdH+%(…ÀH�ĈH‰Ç1À[]A\A]A^A_éÇÿÿH�ލHÇ$H‰D$é§üÿÿL‰ç覾üÿA»@L‰l$HH‰D$8fE‰H‰l$(H‰\$01ÛDL9ës;M�|H‹D$L‰çIÑïL‰úHÁâH�,H‹uè7Âüÿ…Àˆï„� I�_L9ërÅL‹l$HH‹l$(H‹\$0A€<$_…†H‹ÿ€x(„uAÆ$@H‰l$(1íH‰\$0L‰ë�H9݃ÒóÿÿL�|H‹L$L‰çIÑïL‰øHÁàL�,I‹uè³Áüÿ…Àˆs„]ôÿÿI�oH9ÝrÅé’óÿÿ…É…§‹S@‹-2…í„Ï …ÒŽÇ 1íE1ÿ�H‹CHL�l­N‹$èE¶4$A€þ?tU¾@L‰çèÛ½üÿH…ÀtC1ÀA€þ@”ÀI�<èT¿üÿ¾@H‰ÇI‰Äè$¾üÿH…À„Õ ÆH‹yþA¿H‹CHN‰$è‹C@HƒÅ9èˆE„ÿ…! D‹�E…Û„î…ÀŽU 1íL�l$PëH‰ßèf¹üÿH‹'þ‹C@HƒÅ9莿H‹CHL�t­ºH�5ø³N‹$ðL‰çèÿ¹üÿ…Àt̾@L‰çè½üÿH…ÀtºÆD$P1ÀA€<$@”ÀI�<è�¾üÿ¾@H‰ÇH‰Ãèá¼üÿH‹5²ý1ÿH‰ÚÆè�"…À„gÿÿÿH‹=–ýE1ÀM‰éH‰Þ¹ÿÿÿÿH‹GHJ‹TðèBø€|$P…9ÿÿÿH‹hýHƒÅ‹C@9è�Aÿÿÿ…ÀŽg L‹{HE1íE1äL‰ýff.„�AƒÅAƒÄD;c@�žL‹u(H‹uHƒÅ(L‰÷調üÿ…À…âIcÅH�D€ûI�Ç‹4ÿD‹CAƒøÿ„7‹Mƒùÿ„+A9È„"…À…u ‰KfnE fn[ L‰÷AƒÄfëØf~[ èã·üÿH‹}èÚ·üÿH‹}èÑ·üÿH‹’üD;c@ŒbÿÿÿIcýHÁçD‰k@èà¼üÿH‰aüH‹jüHcx@HÁçèżüÿH‹-Vü1öH‰ÇH‰2üHcU@HÁâèu¼üÿD‹U@Ç—üÇüÇüÇíûÇgüE…ÒŽ E1äL�-ìðé…€H‹-áûƒ>üH]H€{"uƒ¥ûH‹ªûH‹@(J�âA€ÿtH‹@H‰‹Cƒøÿt#;ü~‰ÿû;qû}‰iûƒâûL‰÷IƒÄè®¶üÿ‹E@D9àŽ<H‹EHK�¤HÁãH‹lH…ít¿èŠýÿóA~ExfH:"ÅI‰ExH‰ïèæ¹üÿH�xè�»üÿI‰ÆH‹3û€x(„Ù€}@„ÏAÆ_H‰îI�~è/·üÿL‰÷è§»üÿ¿I‰Ç蚉ýÿóA~ExfI:"ÇI‰ExI‹}(1É1ÒA¸L‰ö耼üÿH…À„ºD¶xA�Wý�âý„²þÿÿ¾.H‰ïèµ¹üÿH…À„êH‹-}úƒÚúH]H€{"uƒAú‹CÆC$ƒøÿ…°þÿÿéÎþÿÿD‹%‘üE…ätC‹S@…Ò…Eûÿÿ¶*ïé&ùÿÿL‰çèݸüÿI�t$L‰çH‰Âè�ÀüÿévøÿÿÇ¢Ùé~ãÿÿL‹-RïM…í…7ñÿÿë«€H‹T$8I�|$L‰æHƒÂèZÀüÿépúÿÿDM‰ýé8øÿÿ„I‹é™ñÿÿ„M‰ýéØùÿÿL‰ûéPúÿÿI‹OH�%ØH�50¢1À¿袿üÿéßöÿÿL‹|$(M…ötL‰ò1öL‰çè&#L‰÷èþ¸üÿL‰÷膴üÿL‰ÿè~´üÿé|çÿÿf„H‰îL‰÷èeµüÿéZþÿÿE9å„çûÿÿóoEIcÅH�€AÇóoEADÇH‹U I‰TÇ é½ûÿÿ¾.H‰ïè¸üÿH…À…[þÿÿºH�5ct1ÿèT·üÿH‰îH‰Ç1ÀèwÿÿH‹-¸øé1ýÿÿ…À…‹Mƒùÿ…ÒûÿÿéÐûÿÿºH�5¶sA€ÿtµH�5Ùs1ÿè·üÿH‰îA¶×¹H‰Ç1ÀèÿÿH‹-]øéÖüÿÿºH�5œý1ÿèͶüÿL‰îH‰Ç1Àèð ÿÿH‹1ø‹@@…À…:÷ÿÿ¶íƒâ…÷ÿÿD‹£×E…À„aæÿÿ1ÿèW H‹=ð÷èKXéIæÿÿHcøHÁçǽ÷‰?ø‰©÷è4¸üÿH‰øH‰Ç‹”÷…À~H�…¾ÿèÞ·üÿH‹Ÿ÷‹s@…öŽŒH‹kHE1öE1íéÑDD‹@Aƒøÿ„€E‰ÇD+=H÷E‰ñMcÿJ� ½H «÷HcƒúÿtVH�’H‹H�5ýr1ÿH‹lÕºD‰D$D‰4$諵üÿ‹t$H‰éH‰ÚH‰Ç1ÀèÇ ÿÿH‹÷D‹ $J� ½H M÷D‰ H‹kHIìI‹|$H…ÿti蔵üÿE�lA€|$$tI‹|$è}µüÿE�l‹C@IƒÆD9ð~BO�$¶H‹‘öIÁäJ�D%Jƒ<ò…ÿÿÿ€x$… ÿÿÿH‹kHIìë«f.„I‹<$ë‘‹=Lö…ÀŽÿL‹ µöHcÇHƒÅ1ÒHÁàH‹51öA‰üM�AI)ÀëDƒ}ÿt HƒÂHƒÅ(9S@~bHƒ<Öuæ€} tæƒ}ÿuàD‰àA‰Ò)øH˜I� �ƒ9ÿt(IcÄI�€ff.„DH‰ÁHƒÀAƒÄƒxüÿuïD‰HƒÂHƒÅ(D‰eØ9S@ž‹%ö�ûÿÿ A�üÿÿ~&1ÿH�5“qºè!´üÿD9ãD‰æMóH‰Ç1Àè> ÿÿH‹=Oõ‹Uõè,´üÿ¿H‰Â‹>õ�D �CA�DEH˜H�DH‰õèŸH‹=8õè“Ué‘ãÿÿH‹{HHcðº(H� Kœèö±üÿH‹õ‹C@é¸öÿÿH‹$H‰êE1À1ÉH‹r1ÒH‹l$(H‹x(H‹\$0è²¶üÿ€x„XêÿÿH‹‘ôLc-’ôH‰D$é�óÿÿH‰ïèxµüÿÆ_H‰ÅéoïÿÿH�=fÓè!±üÿéïÿÿL‹3ºH�5•o1ÿè³üÿH‰ÇL‰ö1Àè9 ÿÿL‹uéÍûÿÿºH�5”lé¤áÿÿ¿ˆèÅ´üÿfvÀH�xH‰ÁHÇH‰ÂHÇ€€Hƒçø1ÀH)ù�ÁˆÁéóH«ÇBÿÿÿÿHÇBÿÿÿÿHÇBhÿÿÿÿH‰ ôB éåéÿÿH‹$H‰êE1À1ÉH‹r1ÒH‹l$(H‹x(H‹\$0褵üÿ€x„JéÿÿH‹ƒóLc-„óH‰D$éAôÿÿH‹ûèé+ÝÿÿH‹§ó1ÿºH�5)nH‹@HJ‹èè²üÿH‰ÇH‰Þ1Àè7 ÿÿéúôÿÿE1íE…ÿAžÅAƒÅbéããÿÿ)Ê�BHcøHÁçéûÿÿH‹@(H‹�àH‰×H‰T$èæ¯üÿH‹T$„À„�‹‚Ð…ÀŽkðÿÿH‹ŠÈƒèH�DÁH‰D$ ëHƒÁH9L$ „FðÿÿH‹H‹$H‰L$H‹t$H‹xH‰|$èç®üÿH‹|$H‹L$…ÀuÄ‹÷ò…Ò…H‹$1ÒH�4L‰çèyéqðÿÿ¿(è ³üÿH‹5³ÈºH‰ÇI‰Æè¼üÿ„À„£H‰ßèã²üÿI‰ÇL�` H‹�çL‹h(M…í……ïÿÿéðøÿÿL‹3º1ÿD‰D$H�5m‰ $è°üÿ‹ $‹T$L‰öH‰Ç1ÀèÞÿÿL‹uérùÿÿH‹=FôH…ÿ…bßÿÿémßÿÿD‹%áñE1íé6üÿÿ„Íùÿÿ1ÿ1Àéúÿÿ1ÿE1íé_õÿÿ1ÿºH�5²ËèU°üÿH‰Ç1Àè{ÿÿé;ÿÿÿH‰úH�5eš¿H‰L$èÍ·üÿH‹L$H‹H‹xéÑþÿÿH‰$1ÿºH�5Òöè°üÿH‹4$H‰Ç1Àè'ÿÿé¥ßÿÿè-°üÿA‰üéšûÿÿDAVI‰þAUATUSèÐÇÿÿHƒ=øÐtvL�-ïÐE1äL‰ëë$€L‰öH‰ïèµ³üÿ…Àt8HƒÃ(AƒÄHƒ;tCH‹k€{$tÙè„ÇÿÿL‰öƒø•À¶ÀHÅH‰ïè}³üÿ…ÀuÈMcä[]K�¤A\A‹DÅ A]A^Ã@[1À]A\A]A^ÃDóúAT¾.USHƒìH‹oH‰ïè3°üÿH…ÀtHHƒÀH�ŸšH�5ܺë&ff.„ff.„@HƒÀHƒÂ…Ût¶¶¾ 9Ëtæ1ÀHƒÄ[]A\ÃH‹59ðH‰ïè9H‰*ðH…Àt×HcP@…ÒŽ»H‹hHH�’HƒÅL�dÅH‹}è·®üÿ�PƒÀ9ÚMØHƒÅ(I9ìuãHcûèK°üÿH‹ÜïH‰Ã‹r@…öŽöE1äH�-¼äëf.„H‹±ïIƒÄD9b@ŽËH‹JHK�¤H�ÁL‹HL‰L$èÆÿÿL�P�H‰ßL‹L$…ÀH�°ƒ¾HÇÂÿÿÿÿLEÀH� ,n1À蛺üÿH‹}(¹H‰ÞA¸ºèÿ°üÿH‰ÁH…Àt'€y…mÿÿÿÆAH‹}(H‰ÎHÇA(èŰüÿéPÿÿÿºH�5Ô¬1ÿH‰D$èx­üÿH‰Ç1ÀèžÿÿH‹L$ë°€H‰ßH‰T$èªüÿH‹T$ƒzu€ ±ãH‹ZHƒûÿ„ÈH‹ìãHƒ=ÄðH‰]ÎH‰^ïH‹€ÇUÎH‰˜„�¿(è}ýÿH�×â¿0ÇH‰Å‹ãƒøƒÐÿH‹ÂH‰]HÇE H‹VðH‰E‹ðâÇE‰EèÍ|ýÿH‹UH�5•Ç=H‰P‹UÇ@‰PH‰h H‰pÆ@(H‰CH‹Üíƒx ÿuDƒx(ÿu ¸ézýÿÿH�=þ”èbüÿÿ…ÀuæH‹¯íHcP(Hc@,H‰°îƒøÿtËH‰¬îëÂH�=ü”è.üÿÿ…ÀH‹}íu¥HcP H‰pîHcP$ƒúÿt‘H‰hîëˆ1ÿéoýÿÿf.„DóúǶ/âƒà<tH€=ÕãH�–t7€=±ãH�úÀt'ƒ=©âH�òëuƒ=�âH� uH�ÙëÀ=|ãH�š‚tïH�YiÄóúHƒìH‹WH�5Ì’1À¿èѲüÿ¸HƒÄÀóú¸€tÃAVI‰þSHƒìH‹_H‰÷H‰4$è&«üÿ€;@H‹ $LcÀt:L‰ÂH‰ÎH‰ßL‰$èX¨üÿL‹$…À¸u ¸B€<@t?HƒÄ[A^À€9_uÁƒèH�qH�{L‰D$HcÐè¨üÿH‹ $L‹D$…Àt»ëš@L‰5�ï1Àë¶DóúSH‹6H‰ÓH�=呺èÔ§üÿ…ÀuÇ[ÄóúAWAVAUATUSH�ì˜dH‹%(H‰œ$ˆH‰ûèÂÿÿH�=Ø…è–E1ÒH‹S0¶BHƒà<t4H‹„$ˆdH+%(…¦H�ĘD‰Ð[]A\A]A^A_ÄH‹‚D¶PuE„Òt»‹¨`E1Ò…ít®H‹+ëH‹{H‹0I‰ýèü¨üÿºH�5©—H‰ÃH…À„�¿èJ«üÿL‰ïH‰$莫üÿH‹$Hƒ=çH‰BHÇ„�H‹RéH‰¾H‰ßH‰@éèã³üÿ„À„+L�t${¾<H‰ßˆD$L‰òÆD${L‰4$èIJA‰Ç€|${…û�°„L‰òH‰ßè*J€|${…ß…Àu E1ÒéÏþÿÿA�·ˆL‰òH‰ßèþIA�·ŒL‰òH‰ß‰ÅèêI€|${…Ÿ‰ÀH‰D$0H…Àt¸A�w1ÒH‰ßHcöèBµüÿD¶T$…À…°H�¼$†H‰Ú¾DˆT$è:®üÿD¶T$Hƒø…†·„$†H‰D$ A�w1ÒH‰ßDˆT$Hcöèç´üÿ…À…H�¼$†H‰Ú¾èê­üÿHƒø…€|${·„$†D¶T$…ç‰éH‰L$Hƒ|$ „’D‰úI‰ÞDˆT$(H�LH‹D$ H‰ËH‰L$ H�€H�ÁH‰D$H�D$}H‰D$ë]fD1ÒH‰ÞL‰÷èK´üÿ…À…ƒH‹|$L‰ò¾èQ­üÿHƒøukH‹L$‰èH9ÁrD‰âHÂH9Ñ‚òHƒÃ(H;\$„�L‹<$�s L‰÷L‰úèoHL‰ú�sL‰÷‰Åè_HL‰ú�sL‰÷A‰ÄèNHA‰Ç€|${„hÿÿÿºH�5”=1ÿèݦüÿL‰îH‰Ç1ÀèþþÿE1ÒéÔüÿÿ„H‰iäé}ýÿÿÆD${HÇD$ étþÿÿH‹L$ D¶T$(L‰óHÇD$`H‰\$(H‰ËHÇD$HHÇD$PHÇD$@HÇD$XHÇD$ HÇD$8DˆT$oë6DH‹L$�9.rda„H‹L$�9.bss„nHƒÃ(H;\$„L‹4$L‹|$(�sL‰òL‰ÿèHGL‰ò�s L‰ÿ‰Åè8GL‰ò�s$L‰ÿA‰Äè'GÆ„$…A‰Æ€|${…Ñþÿÿ1ÒH‰ÞL‰ÿ脲üÿ…À…¼þÿÿL‰úL‹|$¾L‰ÿ臫üÿHƒø…�þÿÿ‰êE‰àD‰ðA�?.dat…8ÿÿÿH‹L$fƒya…(ÿÿÿD‹ çJ� H‰L$ E…Ét5HƒìH�5(<¿PL‹L$0H�VË1ÀH‹L$L‰D$HèŬüÿ^_L‹D$8L‰D$8éöþÿÿH‹L$�yata…ÓþÿÿJ� H‰L$@‹ —æ…Ét5HƒìH�Ë¿PL‹L$PH�5²;1ÀH‹L$L‰D$hèa¬üÿXZL‹D$XL‰D$Xé’þÿÿH‹L$€y…ƒþÿÿD‹=>æJ� H‰L$HE…ÿt4UH�¤Ê¿H�5X;PL‹L$X1ÀH‹L$L‰D$`è¬üÿA\A^L‹D$PL‰D$Pé0þÿÿH‹|$D‰þH‹L$ L‰óD¶T$(HþH)ÆH‹D$0H‰t$`HøH9ƒ’ýÿÿH)úH‰T$0é…ýÿÿD¶T$oH‹\$(L‹t$0Dˆ$L‰÷èÓ¥üÿH‹t$`1ÒH‰ßI‰ÇH‰Åè®°üÿ…À…æüÿÿH‰ÚL‰öL‰ÿ踩üÿL9ð…ÏüÿÿH‹=0åL+|$D¶$H…ÿ„‹E H‹WPI�H…Ò„šI‰ÞI‰ýH‰ÓE‰ÔëH‹H…Ût{H�{L‰öè§üÿ…Àuèƒ=åE‰â„gùÿÿL‰òH�5�‘1ÀDˆ$¿èáªüÿD¶$éCùÿÿèr£üÿHÇD$PE1ÛL‰\$`L‰\$HL‰\$@HÇD$XHÇD$8éüþÿÿL‰ïL‰óE‰â‹E ‹MDˆT$D‹eLøI‰ÍH‰Ù‹L‰æH‰$Lúè¾þD¶T$…À‰D$‰JH‰\$E1öé—AºH;\$ ƒÈD‰T$E1ÉE1ÀD‰ñWH‹=äH‰îH�„$„PH‹T$èãAXAY€|$|D‹T$uD‰P$ƒ=ûãt9E…Ò„ªH�g�RH�5E9I‰ÙI‰èPH‹L$H�JÈ1À¿辩üÿY^IƒÆM9æs}H‹$ºH�5ŠB‹°I�<I�,èrŸüÿ…ÀtÒK�/ÆD$|B‹°H;\$8ƒ'ÿÿÿH;\$XrAºH;\$@‚ ÿÿÿH;\$P“ÀE1ÒH;\$HA’ÂA!ÂéÿÿÿH�á�éQÿÿÿD¶T$é—÷ÿÿèVÝD¶$H‰òâH‰ÇéÍýÿÿDˆT$E1ÛH‰ÝëIƒÃM9ãsÆK�/H‹=ÉâE‰ØB‹˜H‹$B‹˜M�4‹D$B�4H;\$8rkH;\$ sdH‰éL‰òL‰\$èXþƒ=µâL‹\$Ç@$tžH��L‰\$I‰ÙM‰ðH‰éARH�Ç¿H�5á7P1Àèq¨üÿA[[L‹\$é_ÿÿÿH;\$XrH;\$@rŽH;\$PL‰òH‰éL‰\$(A“ÁH;\$H’ÀA!ÁDˆL$èÍý¶T$L‹\$(ƒ= â‰P$„ÿÿÿH�²�„Ò„hÿÿÿé\ÿÿÿff.„@óúSºH‰ûH�5TB1ÿè5 üÿH‰ß¾H‰Â1ÀèÓªüÿ1ÿºH�5}Bè üÿH‰ß¾H‰Â1À讪üÿ1ÿºH�5¨BèëŸüÿH‰ß¾H‰Â1À艪üÿ1ÿºH�5ÃBèÆŸüÿH‰ß¾H‰Â1Àèdªüÿ1ÿºH�5æB衟üÿH‰ß¾H‰Â1Àè?ªüÿ1ÿºH�5Cè|ŸüÿH‰ß¾H‰Â1Àèªüÿ1ÿºH�5L‰l$(ÇD$ f.„L‰ÿè•üÿ„À„øM‹·�M…ötWI‹‡ÈH‰D$L‰øM‰÷I‰Æë&DH9ètö@$t H‹X0H…Û…M‹M…ÿtI‹G`H…ÀuÖI‰o`M‹M…ÿuê�M‰÷M‹¿M…ÿu�D‹T$ L‹l$(E…Ò„•L‹d$0IcÚºH� J{H‰ÞD‰T$L‰çèš”üÿD‹t$H‹&ÞE…öŽ5H‰ØL‰æHÇÁÿÿÿÿHÁàM� ff.„DH‰ÏH‹H�BHƒàüHÁé HƒÀH9ùHEÐH�BHƒÂ€~HEÐHƒÆI9ñuÊH�zL‰L$IÇÇÿÿÿÿHÇÃÿÿÿÿHƒçüH‰= Ýè“—üÿ1ÿHÇŽÝH‰Ýë~DH�48A¾|$I‹E�áÿÁç HcÿHÏÿPhH‹YÝH�xH‰=NÝA€|$u)H‹57ÝI‹EHþI¿|$ ÿPhH‹(ÝH�xH‰=ÝIƒÄL;d$„H‹ÿÜI‹ $H+ ÝI‰ÎI�æðÿÿI9Þ„iÿÿÿ@öÇt&H�W€H‰ÖÆDÿH‰×H�RƒæuìH‰=½ÜIƒÿÿt J�t8I‹EH‰L$L)ÿÿPPH‹”ÜH‹L$H�ÜH‰L$L‰÷L‰óH‰ÆI‹EÿPPL‹=tÜH‹eÜH‹L$I�H‰=]ÜéØþÿÿƒà<tH‹ÚÕ‹@@…À…Œüÿÿ€L‹-ÖM…í„ÕH�5EyL‰ïèÁœüÿH‰ÃH…À„£H‹–ÕH…À„)Hƒ8toD‹HH‰ÙE…É…•º¾H�=§‚艞üÿH‹ZÕºH‰ÞH‹8è"H‹‹ÊH‹€H‹ˆH…É…­H‰Þ¿ è–üÿH‹ÕHƒxtEH‰Ùº ¾H�=P‚è žüÿH‹ñÔºH‰ÞH‹xè¸H‰Þ¿ èË•üÿH‹ÌÔD‹@l‹HhAƒøÿ„|H�‚¾H‰ß1ÀèÝ�üÿH‹žÔƒx ÿu ‹P(ƒúÿ„S H‰Þ¿ èw•üÿH‹xÔ‹H$‹P ƒùÿ…< ƒúÿt‰Ñ¾H�æ�1ÀH‰ßè„�üÿH‹EÔD‹@,‹H(Aƒøÿ„: H�Í�¾H‰ß1ÀèV�üÿH‹ÔD‹@0E…À�C ‹p@…ö�°‹PX…Ò�aH‰ßè’üÿƒøÿ„H‹=$ÉH�5'‚èø”üÿH‰ÂH…Àt ‹@$ƒàïƒÈ ‰B$H‹D$HdH+%(…ÓHƒÄX[]A\A]A^A_Ã@öÇt&H‹ ôÙH�GH‰ÂÆDÿH‰ÇH�@ƒâuìH‰=ÝÙIƒÿÿtH‹ÈÙL)ÿJ�t8I‹EÿPPH‹=šÖH‹5³ÙH…ö…NH…ÿt¾ÀèS�üÿH‹tÖH‰h`Hƒ=pÖ„·H‹=ÓÒèn“üÿ‹ØÒH‰ÁH‰vÙH�@(D�$�H‰D$H‰ÏMcäJ� ‹±ÒH‰\$�…HcÒH�4�H‹€ÒHcÛH‰t$Hó1öèÞ’üÿH‰ÁI‹…‹€¬ƒøÿ„SHcøI‹EH�qÿ�˜H‹uÒ‹@hƒøÿt2HcøH‹ ãØI‹EH�qÿPhH‹ÑØH�p H‹FÒHcxlI‹EÿPhH‹ŒÕH‹­ØH‹R`H�p H‹z0H‰ÚH+=�ØH)ÂI‹EH×ÿPPH‹5ÓÑH‰ßè3ŽüÿH‰ßè«�üÿHc=ÌÑH‰ÅH‹bØH�pI‹EÿPPH‹PØHc=¡ÑH�pI‹EÿPPH‹7ØHc=ŒÑH�pI‹EÿPPH‹öÔH‹ØH‹R`H�pH‹z0H‹T$H+=÷×H)ÂI‹EH×ÿPPH‹ÃÔH‹ä×H‹R`H�p H‹z0H‹T$H+=Ä×H)ÂI‹EH×ÿPPH‹�ÔH‹±×H‹R`H�p$H‹z0H‹T$H+=‘×H)ÂI‹EH×ÿPPL‹=ÑE‹g@E…䎈H�l+L�5äÅ1ÛL‰úëkDAÆ$_H‹@HI�|$J‹tøè�üÿI‹~(1É1ÒA¸L‰æèz’üÿH…Àt€xuH‹P0H‹ŒÐH‰ØL‰çHƒÃèÄ‹üÿH‹…ЋB@9ØŽ˜ H‹BHL�<›J‹|øè �üÿH�xèÇ�üÿI‰ÄH‹UÐH‹PHJ‹túH‹]Ѐz(t €>@…VÿÿÿL‰çèfŒüÿéaÿÿÿ�L‰þL‰÷M‹gXè±™üÿHcøèy�üÿH‹L$L‰þL‰÷H‰ÂI‰Å胘üÿ…ÀŽ�J� #L‰l$ƒèH‰L$M�dÅD‹þÏ…À…‚I‹UH‹Bö@…P‹H‹ÇÏ;H„>;Hr 9Hƒ0;H„'H‹H‹|$(E1ÉE1À1ÉH�5pÄH‹H‹SèŒüÿH‰Â�{€„DH‹C H9h`„¾H…ÒtAH‰×H‰T$8èÔÏþÿ„Àt0H‹T$8öB„ÁH‹[H�5/vH‰ß讑üÿ…À…ú fDH‹5QÒI‹EHcL$ H‹T$H‹v`HPH‰ËHÁáHL$0H‰‰Y H;V0ƒÿH‹p·^‹FfÁëÁè ƒãƒà?iÓè Ð=’e„¦�¦=�>„�=Â]„=€>… ƒD$ ÆAff.„�IƒÅM9ì…ƒþÿÿL‹l$L‰ï膉üÿé!öÿÿ�I‹EH�5{¿H‹H‹H‹P1ÀèO”üÿéXþÿÿf.„H…Àt«¶@<„<„÷þÿÿë•D=}„ý=ú……ƒD$ ÆA élÿÿÿ@I‹G`º1ÿH‰L$8H�5*H‹è9ŒüÿH‰ÇH‰Þ1Àè\ãþÿI‹EH‹L$8éÇþÿÿfDI‹?H�5izè�üÿ…À…qþÿÿé ÿÿÿ@H‹ÁÐH‹âÓH‰� ¶L‰Â÷ÒƒâuI‹•Ç‚`L‹-sÃM…í„b÷ÿÿH‹-#ÍD‹]@E…Ûu¨„J÷ÿÿL‰ï貑üÿ1öL‰ïè“üÿH‰D$H…À„D €=È…A H‹\$¾H‰ßèû�üÿ€KI H‰ß1Ûè­cL‹%ÂI‰ÆM…ä„¡H‰l$DL‹=ÐM…ÿtu@¸1ÒAƒuI‹4$I‹?èæ‰üÿ…À”•ÀM‹M…ÿt„ÀuÑ„Òt>I‹„$ðH…ÀIDÄ1öH‹8èDŠüÿI‰ÇH…À„i Iƒ¼$ð…¡I‰ŸøL‰ûM‹¤$M…ä…nÿÿÿH‹l$D‹U@E…ÒŽ:L‰l$E1ÿL‰t$ I‰îff.„�H‹áËK�¿H�,ÅH‹RH€| …äI‹FHH‹=ÛÀE1À1ÉHèH‹L‹`H‰PL‰æ1Òèf�üÿH…Àt €xBj„y H‹ Ë€x(tsA€<$@tlL‰çè+ŠüÿH�xèÒ‹üÿM‰à¾H� Ù`I‰ÅH‰ÇHÇÂÿÿÿÿ1Àè�–üÿH‹=`À1É1ÒE1ÀL‰îL‰l$èôŒüÿH‹|$I‰ÅèW†üÿM…ít A€}Bj„" I‹~H1ÒH‹t$Hï€#”Âè]gI‹VHH‰˜øH‰ÃL‰d*IƒÇE9~@�ìþÿÿL‹l$L‹t$ L‹|$L‰ÿèådI‰žøL‰ÿL‰°øH‰Æèì‡üÿ„À„ H‹|$è ’üÿ„À…ÂôÿÿL‰îH�= wè3àþÿé®ôÿÿfD‹…À„þûÿÿƒø„õûÿÿ1ÿºH�5×&èÒˆüÿ‰ÞH‰Ç1ÀèößþÿéÑûÿÿ‹H$ƒùÿ„- A‰È¾‰ÑH‰ßH�”w1ÀèJ“üÿH‹ ÊD‹@,‹H(Aƒøÿ…Æõÿÿƒùÿ„ÚõÿÿH�žw¾H‰ß1Àè“üÿH‹ÔÉD‹@0E…À޽õÿÿH�=ƒwH‰Ùº ¾èÖ’üÿH‹§É‹x0…ÿŽ’õÿÿ1íL�%bwëHf„€x… €x…4€x…[H‰Þ¿ HƒÅèQŠüÿH‹RÉ9h0Ž?õÿÿH‰Ùº¾L‰çè\’üÿH‹-ÉH�DmH‰ÞL�4ÅH‹R8H‹<Â1ÒèæôH‹ÉH‹H8LñH‰ÈHƒytDH‰Ùº¾H�=¶vè’üÿH‹ÖÈ1ÒH‰ÞH‹@8J‹|0è›ôH‹¼ÈH‹H8LñH‰È€x„ ÿÿÿH‰Ùº¾H�=pvè·‘üÿH‹ˆÈH‹H8LñH‰È€x„öþÿÿH‰Ùº¾H�=Bv胑üÿH‹TÈH‹H8LñH‰È€x„ÌþÿÿH‰Ùº¾H�=vèO‘üÿH‹ ÈLp8L‰ð€x„¥þÿÿH‰Ùº¾H�=íuè‘üÿé‡þÿÿf„€zBi…vùÿÿ€zC…lùÿÿH‹BHH‹RPH‹€‹H‹€€H‹ÐH…À„Gùÿÿ€x„=ùÿÿH9h(…“øÿÿé.ùÿÿfD1Ò¾H‰Çè‰�üÿ„À„31íëDH‹}èÏ„üÿ…À„ÄH‰îL‰ÿè¬�üÿI‹4$H‰ÅH…ÀuØI‹„$ðI‰÷1ÿºH�57$H‹诅üÿL‰úH‰ÇH‰Þ1ÀèÏÜþÿéJñÿÿ1ÀƒD$ ÆAf‰A é–øÿÿƒD$ ÆAéˆøÿÿƒD$ ÆAézøÿÿ…ÀŽjùÿÿÇD$ E1öI‰Ôé7€€x$„VH‹Ê‰Þ+5‡ÆÁæH‹@`HcöHt$H‹x0H‰èH+=ÍH+ÍHÇI‹EÿPPL‹%rÆH‰ïI‹D$HJ‹t8蘂üÿI‹t$HLþH‹~H‰t$(è…üÿH‹t$(H�l€~"…—L‹fM…ä„%H‹ zÉH‹t$H‹I`H‹y0H‰éH+=ƒÌH+ „ÌHÏI‹MÿQPL‰æH‰ïHƒD$è!‚üÿH‰ï虄üÿ+»ÅHcûH�lH‹\$I‹EH‰ÞÿPhL‹%½ÅH�C‹\$ H‰D$I‹D$HB‰\8�C‰D$ IƒÆE9t$@Ž øÿÿI‹D$HK�¶L�<ÕLø‹Xƒûÿ…°þÿÿL‹%iÅëÈ€H‹AÅJ‹ðH…ÀtàH‹ 9ʼnÞ+5!ÅÁæJ‹<ñH+=«ËHcöHxXH‹@`Ht$Hx0I‹EÿPPL‹%ÅI‹t$HLþéÄþÿÿL‹&éÓþÿÿH‹5eËH…ö„ÌñÿÿèO‰üÿè /þÿ¾1ÿèŽ/þÿH‹§·ÿP@1ÒH�L$GÆD$GH‹5©¾H‹=J¶HÇŸ¸ƒœ½Æ9ÁLJ·è"vþÿH‹ÓÇH‹äÊH‰� éPñÿÿºH�5´É1ÿL‹l$(èà‚üÿL‰þH‰Ç1ÀèÚþÿH‹=”Çéõðÿÿƒùÿ„˜ïÿÿH�žq¾H‰ß1ÀèX�üÿH‹ÄévïÿÿH‹%ÄH�5 kH‰ß€x(H�üjHEð臆üÿ…À„ßôÿÿézõÿÿº¾H�= qèôŒüÿéfîÿÿ1ÿºH�5r]è<‚üÿL‰îH‰Ç1Àè_Ùþÿé¿ïÿÿ1ÿéòêÿÿI‰ïéb÷ÿÿº H‰Ù¾H�=¨q袌üÿH‹sËBX…ÀŽtïÿÿE1öL�%-që^@1ÒH‰Þè&ïHƒ}t'º¾H�=jqH‰ÙèVŒüÿH‹}1ÒH‰ÞèøîH‰Þ¿ IƒÆè„üÿH‹ÃD9rXŽ ïÿÿH‹R`K�¶H‰Ù¾L‰çH�,ºèŒüÿL‹}M…ÿt;H‹uH…öt L‰ÿè[…üÿ…Àt&1ÒH‰ÞL‰ÿèŠîH‰Ùº¾H�=`èÁ‹üÿH‹E1ÒH‰ÞH�xè_î¿.H‰ÞèrƒüÿH‹}H…ÿ…ÿÿÿ‹M H�j=H‰ß1À¾茋üÿéÿÿÿH‰Ùº¾H�=5pè^‹üÿH‹/‹H@…ÉŽ%îÿÿE1öL�%éoH‰ÂëED€}!…Ê€}"…ã€}#…üH‰Þ¿ IƒÆèÙ‚üÿH‹ÚÁD9r@Ž$H‹RHK�¶H‰Ù¾L‰çH�,ºè׊üÿH‹}1ÒH‰ÞèyíH‹}H…ÿtH‹uè'„üÿ…À…¯‹MƒùÿtH�{o¾H‰ß1À衊üÿ€} „OÿÿÿH‰Ùº¾H�=SoènŠüÿ€}!„6ÿÿÿH‰Ùº ¾H�=9oèKŠüÿ€}"„ÿÿÿH‰Ùº¾H�= oè(Šüÿ€}#„ÿÿÿH‰Ùº¾H�=oèŠüÿéæþÿÿH‰Ùº¾H�=6^èç‰üÿH‹}1ÒH‰Þè‰ìé%ÿÿÿH‰Ðé¥ìÿÿ1ÿºH�5ƒmèüÿL‰îH‰Ç1ÀèìÓþÿéšóÿÿH�¿m¾H‰ß1À衉üÿé8ëÿÿ1ÿºH�5�nèÙ~üÿ¾H‰ßH‰Â1Àèw‰üÿéFìÿÿ1ÿè �üÿH‰ÇH‹©ÆH�pI‹Eÿ�˜éšíÿÿH� 7®H9H(…vôÿÿéõÿÿD‹@,Aƒøÿ„Ûëÿÿé¹ëÿÿH�®I9U(…ÍôÿÿéõôÿÿI‹$1ÿºH�5ÍlèH~üÿH‰ÇH‰Þ1ÀèkÕþÿéæéÿÿ1ÿºH�5Pè#~üÿL‰îH‰Ç1ÀèFÕþÿéÁéÿÿH�=ºè5ÕþÿéÜôÿÿH�zHƒçüH‰=ÙÅèÌüÿH‹=­ÂHÇÂÅH‰³Åé ìÿÿI‹„$ðI‹,$1ÿºH�5üH‹è¬}üÿH‰êH‰ÇH‰Þ1ÀèÌÔþÿéGéÿÿH‹5xÅH…ö„Êëÿÿéúÿÿ1ÿºH�5Dèo}üÿL‰îH‰Ç1Àè’Ôþÿé8éÿÿè˜}üÿ„óúAWfïÀAVAUI‰ýATUH‰õSHƒìXdL‹<%(L‰|$HA‰×H�D$0fH:"ÀH‰D$¶{³)D$ƒà<„~¾$H‰ïèŽ}üÿH‰l$ H‰ÃH…Àt+I‰ÄI)ìI�|$è±~üÿL‰âH‰îI‰ÆH‰ÇH‰D$ è‹�üÿCÆ&foL$)L$0E…ÿ„p€=›Ä…©L�%~ÃH� W£M�„$ðff.„@fofH~ÇA)$foAA)D$foA A)D$ H…ÿtG1Ò1öH‰L$è93ýÿH‹L$L� ÄH…ÀI‰D$t#‹°¨…öuA‹T$‰�¨ff.„IƒÄ0HƒÁ0M9ÄuƒÆìöU²E‹e$L‰îƒà<tk€H‹¾àèÄ�üÿH‰ÆH…ÀtPHƒ~`uå‹V$‰Ð‰ÑD1à�ဃà ÈuÎH‹†àö@D@uÁH‹€ H…Àtö@`u¯D‰àƒòƒð ЃðA‰ÄëœAöÄ…ñE1À1É¿ L‰D$(H‰L$èyKýÿL�2±¿H� ìdÇ‹j±H‰ÆƒúƒÒÿI‹ÒH‰HÇ@H‰P‹L±‰Pè0¼þÿHƒìD‰úL‰ïÿt$L‹D$8I‰ÁH‹L$ H‹t$0è  ýÿZYI‰Ä¶?±ƒà<„LM‹l$M�|$M…ítEDAƒ}u-I‹E¾$L‹0L‰÷è5{üÿH…ÀtH…ÛtL‰öH‰ïè�~üÿ…Àx M‰ïM‹mM…íuÀHƒ|$0tH‹D$8L‰(H‹D$0I‰H‹D$HdH+%(…6HƒÄXL‰à[]A\A]A^A_ÃH‹|$ 1Ò1öè$1ýÿI‰ÀH…À„výÿÿI‹@HE1äH…À„†„‹@$…À„3A3E$¨„'M‹p@M�xèM;pðt+ºH�5P71ÿèÈyüÿºhH�5¯6H‰Ç1ÀèâÐþÿf�M‹?M…ÿ„M;wX…úA‹¿¼…ÿxßI‹G`M�GH…Àu‚M‰Äë”H‰t$ 1Ûé»üÿÿL�ÁA÷ÄtEIƒè0AöÄt;I�è�AöÄu.H‹|$ ºL‰D$H�5lcè¯vüÿL‹D$…ÀI�@0M�@`LDÀI‹HH…É…²ýÿÿI‹81Ò1öL‰D$èþ/ýÿL‹D$H‰ÁI‰@H…À…ŒýÿÿI�PD‰æL‰ïèj4ýÿL‹D$H…ÀHDj´H‰ÁéeýÿÿH‹|$1É1ÒL‰îL‰D$ èÜ™ýÿL‹d$ éÞýÿÿf�A¿…M…ä„ïûÿÿI�|$M‰à1É1ÒL‰îè­™ýÿé þÿÿA‹M|A¾¿(AÓæè‘HýÿL�J®Ç‹Ž®ƒúƒÒÿI‹ÒL‰pHÇ@ H‰P‹r®Ç@‰PA‹U|I‰D$xI‹D$H‰P|éJýÿÿèIxüÿf„AWƒ=?œÿAVSH‹F0H‰óÆGH‰G0H‹F(H‰G(t;H‹[H…Ût#¿èøGýÿó~¨®fH:"ÃH‰—®[A^A_Ãf„L‹vL‹º1ÿH�5‚è…wüÿL‰òL‰þH‰Ç1Àè¥Îþÿ€=r¼u‘ºH�5À21ÿèYwüÿH‰Ç1ÀèÎþÿºH�5Û21ÿèÿà@1ÀH‹T$dH+%(…IHƒÄ [A^A_ÃIcÆH�FdHÁà‹DHcðH�=ÿY‰æ”è üÿÿ· â”f�·ñH�=zZèñûÿÿ¸ëœÇ¬§· ¹”ë×Ç©”· ¦”ƒá¿f‰ œ”뺷 “”€åýf‰ ‰”ë§Æœ”· y”ë—· p”€áf‰ f”ë„· ]”€åûf‰ S”énÿÿÿ· G”€åþf‰ =”éXÿÿÿ· 1”Ç#”éBÿÿÿƒ%»¶ß· ”é/ÿÿÿÆ$”· ”éÿÿÿH‹=5ž¾è+· ä“éÿþÿÿH‹=p¶èSlüÿH‹= žHÇY¶H…ÿ„rH�539H‰<$èˆsüÿH‹<$…À„³þÿÿè—qüÿH‰(¶é¢þÿÿH�=ÝWèýÿÿ· x“é“þÿÿ· l“€åßf‰ b“é}þÿÿ· V“€å÷f‰ L“égþÿÿ· @“f�áÿf‰ 4“éOþÿÿH�5ÈWH�=ÚWè<ýÿÿ· “é0þÿÿ· “f�É€f‰ ý’éþÿÿ· ñ’€Í f‰ ç’éþÿÿ· Û’€Íf‰ Ñ’éìýÿÿ· Å’€Íf‰ »’éÖýÿÿ· ¯’€Íf‰ ¥’éÀýÿÿ· ™’€Íf‰ �’éªýÿÿ· ƒ’€É€f‰ y’é”ýÿÿ· m’ƒÉ@f‰ c’é-þÿÿÇX’· M’éhýÿÿÇB’· 7’éRýÿÿÇH’· !’é<ýÿÿÇ2’· ’é&ýÿÿÇŒ²· õ‘éýÿÿH‹=)œ¾è· Ø‘éóüÿÿǵ¤· ‘éÝüÿÿH‹=ö›H�5‹Rè vüÿH‰c¤H…À…±üÿÿH‹Ó›ºH�5Ÿ%1ÿèPmüÿH‰ÇH‰Þ1ÀèsÄþÿ· l‘é‡üÿÿ€Çʱ· O‘éjüÿÿƒ ã³ · <‘éWüÿÿǤ· &‘éAüÿÿÇÿ£· ‘é+üÿÿÇ飷 ú�éüÿÿÇó�· ä�éÿûÿÿH‹=›èÓnüÿ· Ì�H‰=±éàûÿÿÇZ³· ¯�éÊûÿÿH‹=ãš· œ�Ç6³H…ÿ„©ûÿÿ€?„ ûÿÿH�t$1Ò‰ $èáuüÿ‹ $H‰w�é‚ûÿÿÇذ· Q�élûÿÿÇê²· ;�éVûÿÿÇD�· %�é@ûÿÿÇ.�· �é*ûÿÿǬ²· ù�éûÿÿÇš²· ã�éþúÿÿLj²· Í�éèúÿÿH‹=š1öèú· ³�éÎúÿÿÇ\²· ��é¸úÿÿH‹=Ñ™èŒmüÿ· …�H‰°é™úÿÿH�5áSH�=òSè†ùÿÿ· _�ézúÿÿH‹=“™¾:H‰<$èµküÿH‹<$H…À„ÝH�L$‰Ã1ÒH‰Î)ûH�xH‰ $è�tüÿH�=éSH‰Æè.öÿÿH‹T$H‹ $¶<.„û„À…ÂH‹=+™1ÒH‰ÎèQtüÿH‹T$¶ €ù:”„É”ÁÊt H=ÿÿ†ÀùÿÿL‹=÷˜HcÛL�í]E1öH� SH‰ÚH‰ÎL‰ÿL‰$H‰L$èÙgüÿL‹$…ÀuH‹L$€<„bùÿÿI‹HIƒÀAƒÆH…ÉuÁ1ÿºH�5Ã"èjüÿL‰þH‰Ç1ÀèAÁþÿéSùÿÿ@H�= Sè¼÷ÿÿ· %Žé@ùÿÿH�=GSè¤÷ÿÿ· Žé(ùÿÿH�=\SèŒ÷ÿÿ· õ�éùÿÿH�=¼Rèt÷ÿÿ· Ý�éøøÿÿH�=êRè\÷ÿÿ· Å�éàøÿÿH�=üRèD÷ÿÿ· ­�éÈøÿÿH�=Sè,÷ÿÿ· •�é°øÿÿ¾H�= SèŸôÿÿ· x�铸ÿÿH�=òRè÷öÿÿ· `�é{øÿÿèViüÿH‹<$H�L$‰Ãé[þÿÿH�\LH‰x—H‰Çé”ùÿÿºH�5\!1ÿH‰ $èéhüÿH‰Ç1ÀèÀþÿH‹=H—H‹ $éþÿÿH‰ÎH�z1ÒèarüÿH�=ÙQH‰ÆèôÿÿH‹D$H‹ $¶é×ýÿÿèÜhüÿff.„�óúAWAVAUATUSHƒìèùòÿÿ¶âž‹ ôŒƒà…É…±<„Y‹ïŒ…Òu º@<u‹¯º…À…V‰©Œ‰ãŒH‹ (€H�ù�H9ÁƒòH‹q£H‹5€H�PH�AH‰ûH‰1Hƒ=XŒH‰á„zL�=DŒ1íë4ƒú„Oƒú…ƒI‹L‰2…íuH‰m®IƒÇ ƒÅIƒ?„4¿(Mcw è¾7ýÿH� w�ÇH‰Ã‹¸�M‰õƒøƒÐÿH‹ÁL‰sHÇC H‰C‹™�ÇC‰CM‹gA€…¬¿0èb7ýÿ¿H‰ÂÇ=H‹CH‰T$H‰B‹CH‰Z ‰BH‹ÇBL‰bÆB(è"7ýÿH‹T$Ç@HÇH‹sH‰H‰CH‰PA‹Wƒú…óþÿÿI‹fD‰*éÿþÿÿ€<…�þÿÿHƒÄ[]A\A]A^A_Ãf„è ñÿÿƒøIƒÔéCÿÿÿ€I‹D‰*éµþÿÿDH‹i~H�ê›H9ƒ.H�PøH‹@øH‰J~H‰;~‹©«9Ÿ«s…1ÿºH�5çèfüÿHƒÄ[H‰Ç]1ÀA\A]A^A_é2½þÿf�ÇrŠÇ¨ŠHƒÄ[]A\A]A^A_ÃH‹=Î}¶…É„ŒH�w1Òff.„ff.„ff.„ff.„f„‰ÈÁàȉÀHÐH‰ÂHÁêH1ÂH‰ð¶HƒÆ…ÉuÜ)ø‰ÁÁáȉÀHÐH‰ÂHÁêH1ÂHÁâ�âü„‰é ýÿÿ1ÒëñH�‹¾²H�= U賫þÿè>'þÿè©$þÿf„óúSHƒì¶p›¨…¨÷ÐH�ÞT¨t ‹õ©…ÀtYè\ïÿÿ…Àt*H‰ßèeüÿH�xè§füÿH‰ÞÆ_H�xH‰D$ècbüÿH‹\$H‰�…ö›u €=ã™tuHƒÄ[é+§þÿ‹ªˆH�kWH�`Nëf�H‹XHƒÀH…Û„�9uëéuÿÿÿfDºH�5l1ÿè=düÿH‰Ç1Àèc»þÿ¶œšé/ÿÿÿ€¿èF4ýÿH‰ßH‰ÂH‹Y™H‰T$H‰H‰J™è%füÿH‹T$Hƒ=¨šH‰B„IÿÿÿH‰Çè)ýÿé<ÿÿÿ�H�‘‰éãþÿÿ@óúAWAVI‰ÖAUI‰õATUSH‰ûHƒì8D‹ B¨H‰L$dH‹%(H‰D$(1ÀE…É…¸H‹KI‹½àH�l$$L‰îA¸H‰êècüÿM‹¥à„À„PI‹D$H‰ïÿP@I‰ÇD‹ß§E…À…ÚL‰öH‰ßL�%kRèƒ=5šH‰D$…6D‹«§E…Û…§H‹C‹”§H�=KH‹5~§H‹-Ÿ™·@fÁèƒàˆD$1Àè9:H‰îƒ_§I‰ÅH‰Çè´eüÿL‰ïH‰ÃèY_üÿH‹2§H‰ÞH‹xèælüÿH‰ßèþ_üÿ¾H‰ßè!güÿH‹ §1ÒH‰ß‹p$H‹Cÿ�˜ƒ=}™¿u¿0€=J§¸HEøÇæèdüÿºH�5ZJH‰ßH‰ ¦è ¾H‰ßH‰ÅH‹CH‹€xÿPxHƒìA¹L‰ájH‹T$ L‰æH‰ßL��‘èL ƒ=ñ˜AYAZ…›€=À¦D¶|$…XHƒìA¹L‰òL‰ájL�?‘H�5YH‰ßÆЦA¾èó _¾AXH‰ïèSgüÿ¿èIcüÿfïÀ¹H‰ßH‰… º?¾I‰ÅHÇ@èy ¹º?H‰ß¾ èb H‹CI�uL‰ÿÿPPH‹CI�u¿ÿPPH‰ïè<‹~¥H‹5o¥H‰ßèçdüÿM‰ð逿k_I�vö1É1ÒH¸__nm_thnA¸I‰Föf‰~H‹=D—èçcüÿH…Àt €x„²‹2¥H‹5#¥H�=cH1ÀH‹-;—èæ7ƒ¥H‰îI‰ÄH‰ÇèacüÿL‰çH‰Åè]üÿH‹ߤH‰îH‹xè“jüÿH‰ïè«]üÿ¾H‰ïèÎdüÿH‹·¤1ÒH‰ï‹p$H‹Eÿ�˜¿ÇޤèáaüÿºH�5âGH‰ïH‰k¤èÖ HƒìL‰òH‰ïjI‰ÀA¹H� OH�5¹GH‰D$è) A¹L‰òL�I�H� èNH�5œGH‰ïÇ$èü Y^¾H‹|$è[eüÿ¿èQaüÿ¹1öH‰ïI‰ÄH‹D$º?L‰  IÇ$è† H‹|$è| ‹¾£H‹5¯£H‰ïè'cüÿH‹t$1ÉL‰âA¸H‰ïè`üÿH‰ïèç\üÿH‹uH‰ïèËÿH‹´•Æ—�`DÿÿÿM…ÿ„E‹ó•ƒø„6L�% Nƒø„°ûÿÿH‹º1ÿH‹kH�5ÑI‹�àH‹L‹`è–^üÿH‹T$(dH+%(…~HƒÄ8M‰àH‰éL‰êH‰ÞH‰Ç[1À]A\A]A^A_鎵þÿfDH‹KL‹CL‰ú¿H�5 1ÀèÚeüÿH‹Cö@… ·PH�5òE¿1ÀfÁêƒâè®eüÿé×úÿÿf„H‹kº1ÿE1ÿH�5sèæ]üÿH‰éL‰êL‰æH‰Ç1ÀèµþÿéŒúÿÿfDH‹H‹OH�5iEL‹G¿H‹H‹P1ÀèCeüÿéúÿÿfD‹2¢H‹5#¢H�=‹E1ÀH‹-;”èæ4ƒ¢H‰îI‰ÄH‰Çèa`üÿL‰çL�%�LH‰ÅèÿYüÿH‹Ø¡H‰îH‹xèŒgüÿH‰ïè¤Züÿ¾H‰ïèÇaüÿH‹°¡1ÒH‰ï‹p$H‹Eÿ�˜¿0LJ¡èÚ^üÿºH�5EH‰ïH‰d¡èÏHƒìL‰áL‰òH‰D$A¹H‰ïL�`ŒjH�5­Dè"H‹;¡H‹T$(H�5V2A¹L�2ŒH� §DH‰ï€x(Ç$IDôèäH‹T$ L‰áL‰æL�ŒA¹H‰ïÇ$è½XZ¾H‹|$èbüÿ¿è^üÿfïÀ¹1öI‰ÁH‹D$º?H‰ïL‰L$L‰ˆ AÇAAè:¹º?H‰ï¾ è#¹º?H‰ï¾è H‹|$è ‹D H‹55 H‰ïè­_üÿH‹T$1ÉH‰ïH‹t$A¸è]üÿH‰ïèkYüÿH‹uH‰ïèOü‹•’M…ÿ„°ƒø…™üÿÿD‹ E…Û„YøÿÿH‹T$D‰ù¿1ÀH�51èÜbüÿé9øÿÿ€¾H‰ïèaüÿ¿èù\üÿL‰ÿH‰… I‰ÅHÇH‹CL‰îÿPP¹º?H‰ß¾è$H‰ïè‹^ŸH‹5OŸH‰ßèÇ^üÿA¸L‰ê1ÉH‰îH‰ßè!\üÿH‰ßè‰XüÿH‹3H‰ßènû‹˜Ÿ�P‰�Ÿ…À„×H‹D$(dH+%(…oHƒÄ8[]A\A]A^A_Ã@HƒìA¹L‰áL‰òjL�ç‰H�5­QH‰ßA¾ è¢X¾ ZH‰ïè`üÿ¿ èù[üÿ¹º?H‰ßH‰… ¾I‰ÅHÇÇ@è*¹1öH‰ßº?èH‹CI�uL‰ÿÿPPé¿øÿÿƒø…0ÿÿÿé¤öÿÿf�‹JžH‹5;žH�=èAH‹U�è1ƒ)žH‰ÞH‰ÅH‰Çè{\üÿH‰ïH‰Ãè VüÿH‹ù�H‰ÞH‹xè­cüÿH‰ßèÅVüÿ¾H‰ßèè]üÿH‹Ñ�1ÒH‰ß‹p$H‹Cÿ�˜¿Ç¨�èûZüÿºH�5iAH‰ßH‰…�èðL‰áL‰æH‰ßH‰ÅH‹}�H�{@L�ˆ€x(H�h@HEÐHƒìE1Éjè2YH‰ï^¾è“^üÿ¾¿èÄdüÿ¹1öH‰ßH‰… º?I‰ÄèÆH‰ï辋�H‹5ñœH‰ßèi\üÿ1ÉH‰ßA¸L‰âH‰îèÃYüÿH‰ßè+VüÿH‹D$(dH+%(u7H‹3HƒÄ8H‰ß[]A\A]A^A_éòøf�H�5ã?¿1Àè­_üÿH‹CéØùÿÿè?Xüÿff.„@óúéWkÿÿ€óúAWAVAUATUSH�ìˆdL‹<%(L‰|$xL‹¿�M…ÿ„JH‹¯I‰üI‹ŸðH…Ûu éff.„@H‹H…Û„ƒ{uîL‹k L;­ÐuáM‹µ M…ö„´H‹½ÈèµÿÿH‰ÇI‰ÅèYüÿH‹µÈE‰èL‰çH‰ÁH�3ÿÿÿH‰$èzÿÿfïÀ¸L‰ç)D$foñ`H‹�H�t$ÇD$ D$(H‹SH)ÈIG0H‰L$HÐH‰D$8I‹‡€H�DL‰òH‰D$@èW\üÿH‹s1ÒL‰çI·€èrcüÿ…Àt_1ÀH‹T$xdH+%(…„H�Ĉ[]A\A]A^A_ÃfDM‹M…ÿ…Ãþÿÿ1ÿºH�5ý èPVüÿH‰Ç1Àèv­þÿ¸ë£L‰â¾L‰÷èÿSüÿH‹ $Hƒøu‡¸fïÀHÇD$PRSDSI9ÅD$XHÇD$pLGèAƒýs~AöÅ…ÒE…í…¤H‰Ïè�RüÿH‹t$@1ÉL‰çH�T$PèI\üÿ…À„#ÿÿÿH‹CIG0HÇ…ÈH+D$H‰…ÀéWÿÿÿI‹}@ètWüÿI‰… H‹…ÐL‹° é)þÿÿD‰èAƒíH‹TøH‰TPAƒý‚zÿÿÿAƒåø1À‰ÂƒÀH‹4H‰tXD9èríé\ÿÿÿ¶ˆD$XAöÅ„KÿÿÿE‰íB·D)þfB‰D,Vé7ÿÿÿ‹E‰í‰D$XB‹D)üB‰D,Téÿÿÿè?Uüÿff.„@óúöV‹t ‹õ‹…Àu ÄHƒìèGßÿÿA¹¹H�I<…ÀH�A<H‹=e‹H�5‹HDÐE1Àè¢RüÿH…ÀtM€xuÆ@HÇ@(Hƒx t €HHƒÄÃH‹=ùŠH;G0tçH‰ÆH‰D$è~WüÿH‹D$ëÓ€1ÿºH�5‚Sè-TüÿHƒÄH‰Ç1ÀéO«þÿff.„@óúAWAVAUATUSH�ìˆdH‹%(H‰D$x1À覗þÿ‹=„˜…ÿ…vH‹=™šH…ÿ„H‹‘ŠH…Ûuéâ€H‹›H…Û„ËH‹Cƒxuæèqþþÿ„À„�º+AH�5–=H‰ßèERüÿH…À„Y#H‹%ŠH� ~ûÿÿó~šH‹“fH:"ÀH‰ŠÀ‚ÈHÇ@@5H‹Cƒx„t@ºH�5ü 1ÿè SüÿH‰ÞH‰Ç1Àè0ªþÿH‹¹‰H‹ƒ‹ˆwH�¸Ð¹2H�5 ˜óH¥‹5w‰�`‹”™ �¸¶w÷Ú‰�¬…öˆÃH‰ßèßH‹X‰H‰D$ H‹@H‹8è·ôH‹ø–H…À„OH‹=‰H�¯AH�5ÒÛH‹h`ÇŒ–è_YüÿHc=€–HÁçèTüÿH‹=ЈH�wAH�5:ÞH‰S–ÇQ–è$YüÿHc5E–ºH‹=1–H� JÝèEPüÿH‹f–L‹xPM…ÿ„oH‰ëff.„‹pXE1öH�C…ö#é� ff.„f�AƒÆHƒÀ(A9ö„r L98uêD9öŽd I�H‰=Εè±Süÿ¶0H‰–H‰ÇI‰À@„öt;ff.„ff.„fDH�[öpŒuAÆ_A¶pIƒÀ@„öuáH‹¢•D9pXŽîIcÆH‰\$@H�€L‰|$ÇD$H�,Ãë,�H‰ßè¨MüÿA€ý„]H‹_•AƒÆHƒÅ(D;pX�uH‹D$H9E…fH‹}D¶'èéPüÿH�xè�RüÿL‹mH‰ÃA€ü@„g ¾@L‰ïè2Qüÿ¾H‰ßM‰éI‰ÄH‹ •L�-&H� ¹HÇÂÿÿÿÿ€x(H�£?LDÀ1Àè]üÿH‹=ã†1É1ÒH�°†E1ÀH‰ÞH‰$èqSüÿH…Àt €x„H‹«”M…äL� W?HÇÂÿÿÿÿA”ÄL�lG¾H‰ß€x(H�£%H� oLEÈHƒìÿu1Àè“\üÿXZH‹$E1À1É1ÒH‰ÞH‹x(èúRüÿH…À„áD¶hE„ä„£þÿÿA€ý…ÒH‰ßèALüÿD‹l$1ÛE…í„‘óoEóoU1ÒH�|$PH‹t$ foÈflÊ)L$PH‹EH‰D$`‹E …ÀfnÈIÐE1äfH~ÀfD‰d$pH…Àf:"ÊfÖL$h‹U$”D$r„ÒˆT$s”¶Ò!ÚèQ;H‹0H‰ÇèÖïÇD$é þÿÿºH�5U1ÿèæNüÿH‰Ç1Àè ¦þÿH‹=�•è€KüÿHÇ�•H‹~…H‹Cƒx…�ûÿÿH‹ƒH…À„€ûÿÿ€xu…¤ûÿÿéqûÿÿ�ƒè‰¿’H˜HÁàHª’H‹8è"Küÿ‹¤’…ÀuØH‹=‘’è KüÿH‹Í’H…À„$H‹8H…ÿ„H‰=�’èdPüÿH� ýW¶H‰»’„Òt$ff.„@öQŒuÆ_¶PHƒÀ„ÒuëD‹ …E…Û…�‹5-r…ö…$ ¶F„ƒà<…~L‹-´‰M…íué+f.„M‹mHM…í„ I‹E0H‰D$Hƒ¸ðtàH‹€�H‰$H…ÀtÐH‰ÃE1äE1ÿ1íDL‹3H�5y5L‰÷ènQüÿºH�5Š7L‰÷…À”À¶À ÅèÀJüÿ…À”ÀD{xH‹[¶ÀA ÄH…Ûu¸ƒõD!åƒå„iÿÿÿE…ÿ…ìM‹mHM…í…`ÿÿÿL‹%ìˆM…ä„dH�-¼Xff.„�M‹l$0Iƒ½ð„mI‹]¾.H‰ßèÌMüÿH…À„SHƒÀH�mAH‰Áë#ff.„„HƒÁHƒÂ…ö„ ¶1¾:¶t59þtáH�o6ë(ff.„ff.„f�HƒÀHƒÂ…Ʉ඾2¶L 9ñtáM‹­�M…í„ÁÇD$E1öE1ÿI‹}H�54H‰<$è PüÿH‹<$ºH�5$6…À”À¶À D$è[Iüÿ…À”ÀE}xM‹m¶ÀA ÆM…íu³E…öt^‹t$A½a…ö„—H‰ßèÔKüÿH�xè{MüÿE‰é¾H� Ì5H‰ÃI‹D$0HÇÂÿÿÿÿH‰ßL‹1Àè0XüÿI‰\$ ff.„M‹d$HM…ä…rþÿÿL‹5;‡M…öu#é²ff.„fDM‹vHM…ö„”M‹n0Iƒ½ðtåI‹��H…ÛtÙE1ä1í@H‹;ºH�5)5èlHüÿ…À”À¶À ÅöC$t ‹Kx…ÉLEãH‹[H…ÛuÊM…ät•ƒåt�L‰ïèØHüÿI‹^0„À„÷‹«ÐH…í„mÿÿÿL‹«È1Ûëf�HƒÃH9Ý„SÿÿÿI‹DÝA‹L$H‹P 9JuàH‹pH‹=ý€1É1ÒA¸è–MüÿH…ÀtÁ€xu»Hƒx u´H‹Õ€H9B0t§A�L$$€ëœ@H‹D$ H‹8H‰=a޶„À„ÕûÿÿHº @ƒè/HƒÇ<-w H£ÂsH‰=0޶„ÀuáH‹="ŽéœûÿÿDH‹pH‹=]€1É1ÒA¸èöLüÿH…À„€x…H‹@(I‹U0H‹ˆàH‹’ðH‹�ðH9ЄàH…ÀH‹:HDÁL‹8L‰þèHHüÿ…À„ÃI‹E0H‹€ðH‹€ L‰x L‰çèòEüÿH‹$H‹@H‰$H…À„}ûÿÿI‹E0H‰D$H‹4$H‹|$è&TüÿH‰ÃH…ÀŽZûÿÿI‹}0è!GüÿI‹m0„À„Á H‹­ÈH‰ßèÆJüÿI‹}0H‹4$H‰éH‰ÂI‰ÄèÐRüÿ…ÀˆÙ „xÿÿÿƒèL‰ãI�lÄ€H‹H‹H‹ö@„ÍþÿÿHƒÃH9ëuäéEÿÿÿH‹D$xdH+%(…~H�Ĉ[]A\A]A^A_Ãf„‹l$H‹\$@L‹|$…ítH‹|$ è42H‹0H‰Çè éH‹=ÊŒèÝDüÿM‹?M…ÿ„¯ùÿÿH‹’ŒéEöÿÿDH‰ßè¸DüÿD‹l$»E…í…tøÿÿDH‹|$ è†.H‹0H‰Çè«èéUøÿÿfDE„ä„H�{èîGüÿH�xè•IüÿH�sI‰ÄH‰ÇèVEüÿ1ÿA€<$@¾@@”ÇLçè.HüÿH‰D$8H…ÀtÆ@H‹©‹Lcª‹H‰l$(1íH‰\$0H‰D$L‰Ãff.„H9Ýs9L�,+H‹L$L‰çIÑíL‰èHÁàL�<I‹7è9Küÿ…ÀˆÑ„ I�mH9ÝrÇH‹l$(H‹\$0A¶$ÿÿÿH‹‡€x(t 1ÀA€<$_”ÀIÄH‹5å†L‰âL‰ïèræ…À„ ÿÿÿH‹=ˆ1ÒE1ÀL‰æL�L$P¹ÿÿÿÿÆD$Pèw~H‰Â€|$P…ÙþÿÿI‹I‰ß¶@ÀèƒàƒðˆB#H9Ý…Æþÿÿf.„M‹­M…í…@þÿÿH‹a†é €=Nx?‡0ïÿÿ¶@xƒà<„- H‹-®}L�d$PH…íuéïÿÿ€H‹mHH…í„FH‹}0L‰âH�5—ÿÿÇD$Pè°Lüÿ‹L$P…ÉtÐÇ¢eH‹'xé»îÿÿ¿H�gH�5X+1ÀèèHüÿH‹=ÙwH‹_(H…Ût/„H‹SH�54+¿1Àè¹HüÿH‹[ H…ÛuàH‹=¡w1ÒH�5°•ÿÿèk?üÿH‹ÄwH…Û„eff.„H‹H�5ê*¿1ÀèjHüÿH‹›H…ÛuÞéáìÿÿ‹ W……É…‡H‹üÿH‰ïI‰ÄèŸ?üÿÆ_H‰ÅM…ä„ýÿÿé ýÿÿ<@…ÇH‹Ü�€x(„�AÆ$_L‰l$HH‰l$(H‰\$01Ûff.„�L9ës;M�|H‹D$L‰çIÑïL‰úHÁâH�,H‹uèAüÿ…ÀˆŸ„R I�_L9ërÅL‹l$HH‹l$(H‹\$0Hƒ|$8„öÿÿéìõÿÿ…É…à‹S@…Ò…!‹‹ƒ…Ò„‰Âƒâ„ÆD‹qƒE…Ò…¶D‹m�‹k�E…À„ü‹`�9ÂŽî‰Ñ)Á�A‹ «€9È�I )‰›€�BHcøHÁçéÙº1ÿH�5î‚è!<üÿH‹T$xdH+%(…H‰îH�ĈH‰Ç1À[]A\A]A^A_é“þÿL‰çè—8üÿº1ÿH�5qùèÔ;üÿH‹T$xdH+%(…ÃH�ĈH‰Ç1À[]A\A]A^A_éÕ’þÿH�œ%HÇ$H‰D$é_üÿÿL‰çA¿@è®;üÿL‰l$HH‰D$8fE‰<H‰l$(H‰\$01ÛL9ës;M�|H‹D$L‰çIÑïL‰úHÁâH�,H‹uèG?üÿ…Àˆÿ„� I�_L9ërÅL‹l$HH‹l$(H‹\$0A€<$_…–H‹�€x(„…AÆ$@H‰l$(1íH‰\$0L‰ë�H9݃bôÿÿL�|H‹L$L‰çIÑïL‰øHÁàL�,I‹uèÃ>üÿ…Àˆƒ„íôÿÿI�oH9ÝrÅé"ôÿÿ…É…·‹S@D‹%e�E…ä„Ý …ÒŽÕ 1íE1ÿff.„@H‹CHL�l­N‹$èE¶4$A€þ?tU¾@L‰çèÛ:üÿH…ÀtC1ÀA€þ@”ÀI�<èT<üÿ¾@H‰ÇI‰Äè$;üÿH…À„ ÆH‹y~A¿H‹CHN‰$è‹C@HƒÅ9èˆE„ÿ…! ‹-µ€…í„î…ÀŽg 1íL�l$PëH‰ßèh6üÿH‹)~‹C@HƒÅ9莿H‹CHL�t­ºH�5ú0N‹$ðL‰çè7üÿ…Àt̾@L‰çè:üÿH…ÀtºÆD$P1ÀA€<$@”ÀI�<èƒ;üÿ¾@H‰ÇH‰Ãèã9üÿH‹5´}1ÿH‰ÚÆè?Ý…À„gÿÿÿH‹=˜}E1ÀM‰éH‰Þ¹ÿÿÿÿH‹GHJ‹TðèDu€|$P…9ÿÿÿH‹j}HƒÅ‹C@9è�Aÿÿÿ…ÀŽy L‹{HE1äE1íL‰ýff.„AƒÅAƒÄD;c@�žL‹u(H‹uHƒÅ(L‰÷èª<üÿ…À…²IcÅH�D€ûI�Ç‹XD‹CAƒøÿ„‹Mƒùÿ„ûA9È„ò…À…e ‰KfnE fn[ L‰÷AƒÄfëØf~[ èã4üÿH‹}èÚ4üÿH‹}èÑ4üÿH‹’|D;c@ŒbÿÿÿIcýHÁçD‰k@èà9üÿH‰a|H‹j|Hcx@HÁçèÅ9üÿH‹-V|1öH‰ÇH‰2|HcU@HÁâèu9üÿD‹]@ǯ|Ç|Ç—|Çí{Ç|E…ÛŽ. E1äL�-ìmé…€H‹-á{ƒV|H]H€{"uƒ¥{H‹ª{H‹@(J�âA€ÿtH‹@H‰‹Cƒøÿt#;|~‰|;q{}‰i{ƒú{L‰÷IƒÄè®3üÿ‹E@D9àŽ H‹EHK�¤HÁãH‹lH…ít¿èýÿóA~ExfH:"ÅI‰ExH‰ïèæ6üÿH�xè�8üÿI‰ÆH‹3{€x(„¡€}@„—AÆ_H‰îI�~è/4üÿL‰÷è§8üÿ¿I‰ÇèšýÿóA~ExfI:"ÇI‰ExI‹}(1É1ÒA¸L‰öè€9üÿH…À„ŠD¶xA�Wý�âý„²þÿÿ¾.H‰ïèµ6üÿH…À„ºH‹-}zƒòzH]H€{"uƒAz‹CÆC$ƒøÿ…°þÿÿéÎþÿÿD‹-µ|E…ítC‹S@…Ò…5ûÿÿ¶*léùÿÿL‰çèÝ5üÿI�t$L‰çH‰Âè�=üÿé[øÿÿÇÂYéââÿÿL‹-RlM…í…·ñÿÿë«€H‹T$8I�|$L‰æHƒÂèZ=üÿé`úÿÿDM‰ýé(øÿÿ„I‹éòÿÿ„M‰ýéÈùÿÿL‰ûé@úÿÿI‹OH�…ZH�501À¿è¢<üÿé‘öÿÿDH‰îL‰÷è�2üÿé’þÿÿ„E9å„üÿÿóoEIcÅH�€AÇóoEADÇH‹U I‰TÇ éíûÿÿ¾.H‰ïè@5üÿH…À…‹þÿÿºH�5“ñ1ÿè„4üÿH‰îH‰Ç1Àè§‹þÿH‹-èxéaýÿÿ…À…‹Mƒùÿ…üÿÿéüÿÿºH�5æðA€ÿtµH�5 ñ1ÿè24üÿH‰îA¶×¹H‰Ç1ÀèL‹þÿH‹-�xéýÿÿºH�5Ìz1ÿèý3üÿL‰îH‰Ç1Àè ‹þÿH‹ax‹@@…À…Z÷ÿÿ¶Gjƒâ…:÷ÿÿD‹ óWE…É„óåÿÿ1ÿè'ÛH‹= xèëâéÛåÿÿL‹|$(M…ötL‰ò1öL‰çèoÜL‰÷è§4üÿL‰÷è/0üÿL‰ÿè'0üÿé‡åÿÿHcøHÁçǹw‰Sx‰¥wè05üÿH‰1xH‰Ç‹�w…À~H�…¾ÿèÚ4üÿH‹›w‹{@…ÿާH‹kHE1öE1íéÕf„D‹@Aƒøÿ„€E‰ÇD+=@wE‰ñMcÿJ� ½H »wHcƒúÿtVH�’H‹H�5õï1ÿH‹lÕºD‰D$D‰4$è£2üÿ‹t$H‰éH‰ÚH‰Ç1À迉þÿH‹wD‹ $J� ½H ]wD‰ H‹kHIìI‹|$H…ÿtaèŒ2üÿE�lA€|$$tI‹|$èu2üÿE�l‹C@IƒÆD9ð~:O�$¶H‹‰vIÁäJ�D%Jƒ<ò…ÿÿÿ€x$… ÿÿÿH‹kHIìë«f�I‹<$뙋=Lv…ÀŽôL‹ ÍvHcÇHƒÅ1ÒHÁàH‹51vA‰üM�AI)ÀëDƒ}ÿt HƒÂHƒÅ(9S@~bHƒ<Öuæ€} tæƒ}ÿuàD‰àA‰Ò)øH˜I� �ƒ9ÿt(IcÄI�€ff.„DH‰ÁHƒÀAƒÄƒxüÿuïD‰HƒÂHƒÅ(D‰eØ9S@ž‹=v�ûÿÿ A�üÿÿ~&1ÿH�5“îºè!1üÿD9ãD‰æMóH‰Ç1Àè>ˆþÿH‹=Ou‹Uuè,1üÿ¿H‰Â‹>u�D �CA�DEH˜H�DH‰uè?ØH‹=8uèàéóâÿÿH‹{HHcðº(H� »»èö.üÿH‹u‹C@é¸öÿÿH‹$H‰êE1À1ÉH‹r1ÒH‹l$(H‹x(H‹\$0è²3üÿ€x„ØêÿÿH‹‘tLc-’tH‰D$éóÿÿL‹3ºH�5¹ì1ÿè:0üÿH‰ÇL‰ö1Àè]‡þÿL‹uéÁûÿÿH�=­Uè.üÿéhïÿÿºH�5§ééáÿÿ¿ˆèØ1üÿfvÀH�xH‰ÁHÇH‰ÂHÇ€€Hƒçø1ÀH)ù�ÁˆÁéóH«ÇBÿÿÿÿHÇBÿÿÿÿHÇBhÿÿÿÿH‰tB éxêÿÿH‹$H‰êE1À1ÉH‹r1ÒH‹l$(H‹x(H‹\$0è·2üÿ€x„ÝéÿÿH‹–sLc-—sH‰D$éDôÿÿH‹fé¢ÜÿÿH‹ºs1ÿºH�5<ëH‹@HJ‹èè'/üÿH‰ÇH‰Þ1ÀèJ†þÿé õÿÿE1íE…ÿAžÅAƒÅbéVãÿÿ)Ê�BHcøHÁçé–ûÿÿH‹@(H‹�àH‰×H‰T$èù,üÿH‹T$„À„Ü‹‚Ð…ÀŽ.ðÿÿH‹ŠÈƒèH�DÁH‰D$ ëHƒÁH9L$ „ ðÿÿH‹H‹$H‰L$H‹t$H‹xH‰|$èú+üÿH‹|$H‹L$…ÀuÄD‹ sE…À…5H‹$1ÒH�4L‰çè*×é6ðÿÿ¿(è0üÿH‹5ÄEºH‰ÇI‰Æè9üÿ„À„ÓH‰ßèô/üÿI‰ÇL�` H‹ždL‹h(M…í…FïÿÿéXúÿÿ@L‹3º1ÿ‰L$H�5êD‰$èÒ-üÿ‹L$‹$L‰öH‰Ç1Àèî„þÿL‹uéRùÿÿº1ÿH�5otè¢-üÿH‹T$xdH+%(…‘H‰Þé|ñÿÿH‹=GtH…ÿ…¡Þÿÿé¬ÞÿÿD‹%ÂqE1íéüÿÿ1ÿE1íéOõÿÿ„tùÿÿ1ÿ1ÀéÞùÿÿ1ÿºH�5“Hè6-üÿH‰Ç1Àè\„þÿé ÿÿÿH‰úH�5F¿H‰L$è®4üÿH‹L$H‹H‹xé¡þÿÿè8-üÿA‰üé¥ûÿÿH‰$1ÿºH�5¦sèÙ,üÿH‹4$H‰Ç1ÀèûƒþÿéÛÞÿÿfDóú¶%cƒà<uÃDécyýÿóúAT¾.USHƒìH‹oH‰ïè“-üÿH…ÀtHHƒÀH�ÿH�5<8ë&ff.„ff.„@HƒÀHƒÂ…Ût¶¶¾ 9Ëtæ1ÀHƒÄ[]A\ÃH‹5™pH‰ï虌H‰ŠpH…Àt×HcP@…Ò޽H‹hHH�’HƒÅL�dÅH‹}è,üÿ�PƒÀ9ÚMØHƒÅ(I9ìuãHcûè«-üÿH‹ùÿÿèb"üÿHÇD$PE1ÛL‰\$`L‰\$HL‰\$@HÇD$XHÇD$8éüþÿÿL‰ïL‰óE‰â‹E ‹MDˆT$D‹eLøI‰ÍH‰Ù‹L‰æH‰$Lúè®}D¶T$…À‰D$‰JH‰\$E1öé—AºH;\$ ƒÈD‰T$E1ÉE1ÀD‰ñWH‹=ðeH‰îH�„$„PH‹T$èòaAXAY€|$|D‹T$uD‰P$ƒ=ëet9E…Ò„ªH�WRH�55¸I‰ÙI‰èPH‹L$H�jF1À¿è®(üÿY^IƒÆM9æs}H‹$ºH�5ôB‹°I�<I�,èbüÿ…ÀtÒK�/ÆD$|B‹°H;\$8ƒ'ÿÿÿH;\$XrAºH;\$@‚ ÿÿÿH;\$P“ÀE1ÒH;\$HA’ÂA!ÂéÿÿÿH�ÑéQÿÿÿD¶T$é’÷ÿÿèF\D¶$H‰âdH‰ÇéÍýÿÿDˆT$E1ÛH‰ÝëIƒÃM9ãsÆK�/H‹=¹dE‰ØB‹˜H‹$B‹˜M�4‹D$B�4H;\$8rkH;\$ sdH‰éL‰òL‰\$èH}ƒ=¥dL‹\$Ç@$tžH�L‰\$I‰ÙM‰ðH‰éARH�%E¿H�5ѶP1Àèa'üÿA[[L‹\$é_ÿÿÿH;\$XrH;\$@rŽH;\$PL‰òH‰éL‰\$(A“ÁH;\$H’ÀA!ÁDˆL$è½|¶T$L‹\$(ƒ=d‰P$„ÿÿÿH�¢„Ò„hÿÿÿé\ÿÿÿf.„f.„f.„f.„f.„f.„óúǶoUƒà<t8€=WH�yt €=ñVH�~tƒ=éUH�‚t(À€=ÌVH�-tèH�ÄH�dÄóúǶïTƒà<tP€=•VH�Bát8€=qVH�ªt(¶ÅTH�òpöÂtƒâH�#(H�tLHEÂÀ€=4VH�jÏtèH�Á½ÃóúL‹ÕTM…Àu Ãff.„@M‹€M…À„I‹@ƒxuæA‹€¨…ÀtÛI‹€ H…Àtö@`uÉI‹¸�H…ÿt½H� VNfDH‹‡ÐH‹��H‰ÐH…Òu!é–D€H(H‹€ÐH‹€�H…Àtrö@(ulH9ÈtÞH9H`uØ·p(f�æ€f�îf÷Æ€þtÃH‰O`¶B(�O$€¨tAff.„ff.„f.„ƒàýˆB(H‹‚ÐH‹��H…Òt¶B(¨ußH‹H…ÿ…BÿÿÿM‹€M…À…òþÿÿÃ�óúHƒìH‹=�S‹5RH‹ôQH‹Gÿ�˜H‹cSH‹PƒzuH‹€H� ûRH‹€˜ H‰HXHƒÄÃff.„óúH‹H‹PH‹H‹@L‹‚àH‹ˆàM‹@H‹I‹IAƒxtƒù„½‹G+FÃfDH‹’ÐL‹‚�ƒù…ÅH‹€ÐL‹ˆ�M…À„©M…É„¥USI‹h`I‹Y`I‹PXL‹U8I‹IXL‹[8IÒIËM9Úrt¸M9ÓrAD¶*RAƒâA€útM‹@@M‹I@M9ÈrKM9ÁrHU0HK0H9Êr9¸H9Ñr‹G+F[]ÃfDH‹€ÐHƒ¸�„.ÿÿÿ¸ÿÿÿÿÃD¸ÿÿÿÿëÐM…Éué¸M…À„ ÿÿÿÃff.„f�óúH‹åQH‹@ƒx•À¶ÀÃfDóúH‹H‹¸H9Êr#¸ÿÿÿÿH9Ñr‹V ‹O 1À9ÑœÀ÷Ø9ѺOÂÄóú€=&StÆeé÷^þÿ€SI‰ñH‰ûHƒìH‹wH…ötlH…ÉtWH‰ÏD‰D$ H‰$è–üÿH‹$D‹D$ …Àu0H‹sH‰ÐH ðtH…ÒtXH…ötSH‰×D‰$ègüÿD‹$…ÀuD‰À+CHƒÄ[øÿÿÿÿM…ÉtíL‰Éëš�H‹7H…Ét(¸H…öu‡HƒÄ[ÄHƒúÀHƒÄƒÈ[Ã�H‰ðL È„{ÿÿÿM…ÉtH…öu´IƒùÀƒÈë–ff.„@AVATI‰ôUH‰ÕºSHƒìH‹wH…ö„ƒH‰ûHƒÆH‰ÏE‰Æè¬üÿ‰Â…ÀukH‹sH‰ðL àt&M…ä„‘H…ö„ˆL‰ç‰T$ è|üÿ‹T$ …ÀuLH‹3H‰ðH ètH…ítTH…ötOH‰ï‰T$ èSüÿ‹T$ …Àu#D;s t �¶Ò�TÿHƒÄ‰Ð[]A\A^ÃfDHƒÄ‰Â[‰Ð]A\A^Ãf„HƒýÒƒÊëÊDIƒüÒHƒÄƒÊ[]‰ÐA\A^Ãf.„AWAVAUATUSHƒìH‹D$PÆ…ö„ÒM‰ÅI‰ÌH‰$A‰öE‰ÈH‰ÖL‰éL‰âD‰L$ I‰ÿè¼þÿÿ…ÀŽŒ»Aƒþ„—A�FÿD‹D$ H‹4$L‰éH‰ÅH�€L‰âD‰óI�<Çèþÿÿ…Àm„}E1öƒûuësD�sA9îsA�.D‹D$ H‹4$L‰éÑëL‰â‰ØH�€I�<Çè;þÿÿ…À„“yÉ�kÿëÈ@uH‹D$PÆff.„1ÛHƒÄ‰Ø[]A\A]A^A_ÃD…ÀuH‹D$PƉëëÚ„D‰ðD‹D$ H‹4$L‰éH�€L‰âA�^I�<Çè½ýÿÿ…À«uH‹D$PÆD‰óëœf.„H‹D$PÆëˆfDóúH‰úH‹H‰ðH…ÿtH‹pH…ötéOüÿ€H‹pH‹:H…öuèH‹0é4üÿ@óúAWAVAUATA‰ÔUSH‰ûHƒìHH‹—àH‹ ºMH‰4$H‹BÇD$D‹hH‹AD‹xAƒýuH‹‡Ð‹@‰D$¶3Mƒà<„ö&M…Aƒý…Aƒÿ…ú‹s$ÇD$@öÆ„íH‹‚ö€� „ÙL‹‹ÐAöA „ÇL‹õQM…ÀtYH�=ùFf„I‹@HH…Àt7H9øt2H‹�ÐöB t%D‹P$A1òA�âuA‹A,9B,„d„M‹@0M…Àu·H�ÙH‰$÷Æt*H�ÑH‰$@öÆtH�ÚƒæH�ÂHEÂH‰$H‹�€ˆ� ë‹s$@öÆ… ÇD$E…ä„J€=å_…ƒL�=?H�-!^M�·°f.„fAofH~Ç)EfAoG)EfAoG )E H…ÿt)1Ò1öè0ÌüÿH‰EH…Àt‹¸¨…ÿu ‹U‰�¨@IƒÇ0HƒÅ0M9÷u£Æ\_¶eK¨„­ƒàD‹{$<…¾A÷Ç „HAöÇ„@D‰ùƒá„ïAƒý„‰H‹<$ºH�5׉L$èüÿ‹L$…À…oH‹=U^1Ò1öè|ËüÿL�E^H…À…êH‹=E]1Ò1öè\ËüÿH…À„L�,]éÅ€H‹;º H�5Yè¬üÿ…À„pD‹{$H‰Þff.„f�H‹¾àèüÿH‰ÆH…À„ÿÿÿHƒ~`uá‹F$‰Â%€D1úƒâ ÂuÍH‹¾àöGD@uÀH‹‡ H…Àtö@`u®H‹“àH‰ÙH‰t$èêüÿH‹t$„Àt‘‹F$Aƒ÷ƒðD øƒðA‰ÇéyÿÿÿL�²]I‹PH…Ò„KHƒìH‰ÑE1ÉD‰âjH‹t$H‰ßè‰8ýÿI‰ÀXZHƒÄHL‰À[]A\A]A^A_ÃH‹<$1Ò1öè5ÊüÿI‰ÀH…À„�ýÿÿAƒýI‹pHE‰îL�%ÇC•ÂAƒÿ•À ÂH‰Ø1ÛˆT$I‰ÅH…ö„ÚfDL9æ„Ë‹F$…À„[A3E$¨uD€|$…HI‹•ÐH‹†Ð‹J,9H,u#¶=Iƒç@€ÿ…³Hƒ¸À„~�M‹x@I�hèM;xðt2ºH�5÷Ï1ÿèoüÿºhH�5VÏH‰Ç1Àè‰iþÿf„H‹mH…í„ãL;}X…ÙD‹…¼E…ÀxÝH‹u`L�EH…ö…,ÿÿÿH…öIDØëƒH‹zL‹H@öÇ€t AöÁ€…ŠL1Ï÷Çðÿ…\ÿÿÿI‹•àH‹=žHL‰éL‰D$ èüÿL‹D$ „À…CI‹pHH…öIDØé$ÿÿÿL‹mZM…À„€ýÿÿI�x1É1ÒH‰ÞL‰$èÀ2ýÿL‹$é3þÿÿE1À1ÒéþÿÿAƒý„ÙL‹4$ºH�5†L‰÷èÛüÿÇD$…À…¶ûÿÿA€~aÇD$„H�KH‰$é“ûÿÿƒ|$„‘üÿÿA÷Ç@…ÀA÷Ç…¬AöÇ„®…É„²Aƒý„èH‹<$ºH�5úèRüÿ…À…‹H‹sZL�\ZH…Ò…>ýÿÿH‹=LZH…ÿ…�H‹$€xa”D$ L‹5/LM…ö„zD‰d$4E1íE1äH‰\$81ÛD‰|$0L‰D$(HÇD$HÇD$é½M‹~@ºH�5cL‰ÿè¸ üÿ…À…©‹L$…É…{A€aH�=T”À@”ŶÀI�tèüÿ…À„S@8l$ ”ÂM…ä„÷„Ò…ïI‹FHHƒ|$„Á„Ò…¹ff.„H…Àt‹@$¨t ¨L‰t$IEÞI‹F0M‰õH…À„­I‰ÆA‹¶¤…ö‰7ÿÿÿI‹FHëÁI�x1É1ÒL‰îL‰$è�0ýÿL‹$éüÿÿ@L‰èE‰õI‰ÞA¼…H‰ÃM…ö„¹ùÿÿM‰ðI�~1É1ÒH‰Æèb0ýÿM‰ðéÖûÿÿI‹8H…ÿto1Ò1öL‰D$èÆüÿL‹D$H‰ÂI‰@H…Ò…ŠûÿÿI�PD‰þH‰ßL‰D$H‹ ¡&ètÊüÿL‹D$H…ÀHDtJH‰ÂéWûÿÿL�5XA÷Ç„6ûÿÿé–ýÿÿAƒý…þÿÿƒ|$”D$ éþÿÿ‹D$ƒøtMƒø „ÇD$Aƒÿ„ô÷ÿÿéÜøÿÿH‹€�H‹’�H‹@`H9B`…ÅûÿÿéUüÿÿL�IXéÂúÿÿH�ÿÇD$H‰$Aƒÿ„¥÷ÿÿé�øÿÿH�úþH‰$é}øÿÿH…À„`þÿÿ‹@$¨„UþÿÿL‰t$é@þÿÿM‰ôé þÿÿH‰ÙL‰çD‹|$0L‹D$(L‹L$H‹T$D‹d$4H‹\$8H…Òt I‰PéEúÿÿH…ÿt5I‰xH‰úé4úÿÿH‰ÙL‰çD‹|$0L‹D$(L‹L$H‹T$M‰îD‹d$4H‹\$8ë¸H…ÉtRI‰HH‰ÊéúùÿÿH�‚þÇD$H‰$é×þÿÿL�`VéÉùÿÿL�„Vé½ùÿÿAöÇ„âøÿÿL�ÞUé§ùÿÿM…Ét M‰HL‰Êé£ùÿÿM‰pL‰òéþÿÿIÇ@éþÿÿ‹D$ƒøtƒø u²H‹šVL�ƒVH…Ò…eùÿÿH‹=sVH…ÿ…¨ýÿÿéþÿÿDH…ÿtKUSH‰ûHƒìèÝ üÿH�xH‰Åè�üÿH‹ UH‰ÞH�xH‰üTH‰H�UèPüÿHƒÄ[]Ãf„1ÀÃff.„f�óúAWfïÀAVAUI‰ýATUH‰õSHƒìXdL‹<%(L‰|$HA‰×H�D$0fH:"ÀH‰D$¶‹B)D$ƒà<„~¾$H‰ïèž üÿH‰l$ H‰ÃH…Àt+I‰ÄI)ìI�|$èÁ üÿL‰âH‰îI‰ÆH‰ÇH‰D$ è›üÿCÆ&foL$)L$0E…ÿ„p€= X…©L�%îVH� ç6M�„$ðff.„@fofH~ÇA)$foAA)D$foA A)D$ H…ÿtG1Ò1öH‰L$èIÂüÿH‹L$L�}WH…ÀI‰D$t#‹°¨…öuA‹T$‰�¨ff.„IƒÄ0HƒÁ0M9ÄuƒÆ\W¶eAE‹e$L‰îƒà<tk€H‹¾àèÔüÿH‰ÆH…ÀtPHƒ~`uå‹V$‰Ð‰ÑD1à�ဃà ÈuÎH‹†àö@D@uÁH‹€ H…Àtö@`u¯D‰àƒòƒð ЃðA‰ÄëœAöÄ…ñE1À1É¿ L‰D$(H‰L$è‰ÚüÿL�B@¿H� üóÇ‹z@H‰ÆƒúƒÒÿI‹ÒH‰HÇ@H‰P‹\@‰Pè@KþÿHƒìD‰úL‰ïÿt$L‹D$8I‰ÁH‹L$ H‹t$0è/ýÿZYI‰Ä¶O@ƒà<„LM‹l$M�|$M…ítEDAƒ}u-I‹E¾$L‹0L‰÷èE üÿH…ÀtH…ÛtL‰öH‰ïè  üÿ…Àx M‰ïM‹mM…íuÀHƒ|$0tH‹D$8L‰(H‹D$0I‰H‹D$HdH+%(…6HƒÄXL‰à[]A\A]A^A_ÃH‹|$ 1Ò1öè4ÀüÿI‰ÀH…À„výÿÿI‹@HE1äH…À„†„‹@$…À„3A3E$¨„'M‹p@M�xèM;pðt+ºH�5`Æ1ÿèØüÿºhH�5¿ÅH‰Ç1Àèò_þÿf�M‹?M…ÿ„M;wX…úA‹¿¼…ÿxßI‹G`M�GH…Àu‚M‰Äë”H‰t$ 1Ûé»üÿÿL�ŠTA÷ÄtEIƒè0AöÄt;I�è�AöÄu.H‹|$ ºL‰D$H�5|òè¿üÿL‹D$…ÀI�@0M�@`LDÀI‹HH…É…²ýÿÿI‹81Ò1öL‰D$è¿üÿL‹D$H‰ÁI‰@H…À…ŒýÿÿI�PD‰æL‰ïèzÃüÿL‹D$H…ÀHDzCH‰ÁéeýÿÿH‹|$1É1ÒL‰îL‰D$ èì(ýÿL‹d$ éÞýÿÿf�A¿…M…ä„ïûÿÿI�|$M‰à1É1ÒL‰îè½(ýÿé þÿÿA‹M|A¾¿(AÓæè¡×üÿL�Z=Ç‹ž=ƒúƒÒÿI‹ÒL‰pHÇ@ H‰P‹‚=Ç@‰PA‹U|I‰D$xI‹D$H‰P|éJýÿÿèYüÿf„óú¶B`ƒà<t 1ÀÃfDAWAVAUATUH‰ÕSH‰óHƒìD‹5 RL‹jM‰÷E…öu8L�%: ¸ ëèëüÿE‰þI9Æs ‰ÝQA‰ÇA‰ÆI‹|$IƒÄH…ÿuÙH‹{èÀüÿL‰ïN�t0è³üÿH‹=$KI‰Ä1ÀH…ÿtè�üÿK�<4HÇèAüÿH‹sH�Æ H‰ÇI‰Äè+üÿH� öÆ/L�pëDL‹ÙJM…Àt(¾L‰÷1ÀM‰éHÇÂÿÿÿÿèÓüÿH‰îL‰ç踥þÿ„Àu;H‹KHƒÃH…ÉtG€{u¹¾L‰÷1ÀM‰èHÇÂÿÿÿÿè˜üÿH‰îL‰çè}¥þÿ„ÀtÅL‰eHƒÄ[]A\A]A^A_ÃfDL‰çèXüÿ1Àëß@óúHƒìH� àõH�Ðôè«þÿHƒÄ¶ÀÃff.„f�óúHƒìH�=áèŒ üÿº6H…Àt‹P H‹@H‰„:‹²;€ —; € ¨;%øÿȉm: €Æ+=Æ;=‰€;HƒÄÀóúé7rþÿ€óúAUI‰õATI‰ÌUHcïSH�uHcÚHƒìI‹}èÉüÿ·«4H�sHÁãI‰EHÁæf‰(¶’4ˆT(I‹<$èšüÿfoBI‰$foBDfoED foHD0foKD@foNDPfoQD`foTDpfoW„€foW„�foW„ foW„°HƒÄ[]A\A]Ã@Hc51L;5L@¶×H‹=Lt�Ff‰7‰LÄHƒì�F2ƒÆ3‰ÐKHcöf‰T$H…ÿt3èŽüÿHc5ßK·T$H‰ËKH‰Ç�Ff‰7‰ÃKHƒÄÃfDH‰÷è8üÿHc5©K·T$H‰•KH‰ÇëÈóúSHƒì dH‹%(H‰D$1À�ÿ�„sY�ÿ/„ý�ÿ„‘ƒÿzuaH‹e1H�5?ÎH‰ÇH‰Ãèóüÿ…À…«¶F9ƒà?ƒÈ€ˆ:9ë&fD�ÿ‚t81À�ÿƒu€%9ý€¸H‹T$dH+%(…HƒÄ [Ã�€ í8ë×€H‹=iBèÿûÿH‹=Í0HÇRBH…ÿt­èxüÿH…Àt£H�xèüÿH‹=£0H‰ÆH‰D$èöƒþÿH‹D$H‰BéuÿÿÿDH‹=Bè´þûÿH‹=m0HÇúAH…ÿ„ H�5”ËH‰|$èèüÿH‹|$…À„+ÿÿÿff.„èëüÿH‰¼Aéÿÿÿ€H‹=0èüüÿH‹=0H�5Dá‰ð9‰D$èþûÿ‹T$ƒúu…À„6ƒú…ÅþÿÿH‹Î/ºH�5ú 1ÿèKüÿH‰ÞH‰Ç1ÀènXþÿé™þÿÿf„H�5îàH‰ßè1üÿ…Àt%H�5âàH‰ßèüÿ…ÀuJ€ y7é^þÿÿfD¶c7ƒà?ƒÈ@ˆW7é@þÿÿH�ŠàH‰B/H‰Çé ÿÿÿf.„ºH�5ˆàH‰ßè,þûÿ…À„”ºH�5{àH‰ßèþûÿ…À„Ùº H�5qàH‰ßèôýûÿ…À„MH�5}ÓH‰ßèmüÿ…À…¶Ä6ƒàŸƒÈ ˆ¸6é�ýÿÿDºH�5„ 1ÿè%üÿH‰Ç1ÀèKWþÿ‹}8é¢þÿÿ1ÒH�t$H�{è  üÿH‹T$H‰L7€:u H�PÿH…Ât+H‹O.H�5Ø 1ÿºH�XèÈÿûÿH‰ÞH‰Ç1ÀèëVþÿ€ -6éýÿÿ1ÒH�t$H�{è? üÿH‹T$H‰ó6€:u H�PÿH…Ât+H‹î-H�5Ÿ 1ÿºH�XègÿûÿH‰ÞH‰Ç1ÀèŠVþÿ€ Ì5é®üÿÿH�5HßH‰ßèOüÿ…À…‹¶¦5ƒàŸƒÈ@ˆš5éüÿÿ1ÒH�t$H�{ è¯üÿH‹T$H‰ƒ5€:uH…ÀxH…À…PüÿÿHÇe5ÿÿÿÿé@üÿÿH‹I-ºH�5 1ÿH�X èÂþûÿH‰ÞH‰Ç1ÀèåUþÿH‹.5ë³H�5´ÞH‰ßè­üÿ…Àu € 5éíûÿÿH�5“ÞH‰ßèŽüÿ…Àu€%ì4ýéÎûÿÿè©þûÿH�5ÞH‰ßèjüÿ…ÀuH� ‹5é¦ûÿÿH�5jÞH‰ßè·›üÿ„ÀtÇy5é„ûÿÿH�5FÞH‰ßè•›üÿ„Àt 1Ò‰Y5édûÿÿH�56ÞH‰ßèu›üÿ„Àt H�5:ÞH‰ßèòüÿ…Àu,1À‰*5é1ûÿÿH�5WÞH‰ßèÒüÿ…Àu.Æá5éûÿÿH�5 H‰ßè³üÿ…Àu.Çé4éðúÿÿH�5ÞH‰ßè‘üÿ…Àu.Æ 5éÑúÿÿH�5ØÝH‰ßèrüÿ…Àu.Ǩ4é¯úÿÿH�5kÞH‰ßèPüÿ…Àu.€ ©3é�úÿÿH�5¹ H‰ßè1üÿ…Àu.Çg4énúÿÿH�5(ÞH‰ßèüÿ…Àu€%h3þéOúÿÿºH�5“ éŒûÿÿH�57ÉH‰ßèßüÿ…Àu¶63ƒàóƒÈˆ*3éúÿÿH�5ÝÝH‰ßè´üÿ…Àu¶ 3ƒàóƒÈˆÿ2éèùÿÿH�5r¼H‰ßè‰üÿ…Àu¶â2ƒàŸƒÈ@ˆÖ2é½ùÿÿH�5�ÝH‰ßè^üÿ…ÀtH�5„ÝH‰ßèKüÿ…Àu €%¤2Ÿé‹ùÿÿH‰ÞH�=·Þ1Àè:nþÿéuùÿÿDUH‰ù‰õSHƒìH‹†DHcC0�Pƒâü9Ð|;ƒÀH‹{8H‰L$ƒàüH˜H�4€HÁæH…ÿ„~èÉüûÿH‹L$H‰C8H‹ADHcC0H�@H‹C8fïÀH‰ÏH�ÐHÇCèÂýûÿH‰@öÅtÆC@öÅtÆC@öÅtÆCƒåtÆCH‹éCƒ@0HƒÄ[]ÃfDH‰÷è(ýûÿH‹L$H‰C8H‹ÀCHcC0ézÿÿÿff.„@óúHƒì¶�1‰Âƒâ€ú„“¨u/öp1t&‹2…Ò�˜Çò1ff.„¨u€%81€=11yƒÕ1èP=þÿL‹ 2H‹ ú1L9Ás¶1¨uH‰ ë1HƒÄÃfD¨uTL‰Í1HƒÄÃH� ¥1¨uœöÒ0…^ÿÿÿë‚f�1ÀH�=ˆëèblþÿ¶«0ÇE1é\ÿÿÿ@ºH�5|p1ÿH‰L$L‰$è úûÿH‹T$H‹4$HƒÄH‰Ç1Àé%QþÿDóúHƒì(¶G`H‰ù„Àxm¨@u)A¸¨tmL‹I0AöAD@…¥1ÀHƒÄ(Ãf„¨tìH‹O0öAD@tâ1ÿºH‰L$H�5/pèŠùûÿH‹t$H‰Ç1Àè«Pþÿë¹f„¨@t,¨u8A¸H‹y0öGD@t˜D‰Æè€þûÿ1ÀHƒÄ(Ãf„A¸ébÿÿÿDL‹O0AöAD@„aÿÿÿA¸ºH�5¯o1ÿH‰L$D‰D$L‰L$èùøûÿH‹t$H‰Ç1ÀèPþÿD‹D$H‹L$éyÿÿÿff.„AWAVAUATUH‰õS‰ÓHƒì€?u H‹9AH‰h‰XHƒÄ[]A\A]A^A_ÃI‰üèüûÿI‰ÅI9ÄtR…ÛH�ÚéH� s¿D‹5ñ@HEÈL‹=Þ@º1ÿH�50oH‰L$èNøûÿH‹L$M‰àD‰òH‰ÇL‰þ1ÀèfOþÿL‹%·@I‹<$èÖôûÿ¾.L‰ïè¹øûÿH…ÀtL‰ïè<úûÿI‰$éKÿÿÿ…ÛH�YèL� gàL‰ïLEÈL‰L$èøûÿH�xè¶ùûÿL‹L$M‰èH� ¸I‰$H‹D@HÇÂÿÿÿÿ¾H‹81Àèfüÿééþÿÿ�óúAWAVAUATUSHƒìD¶z`AöÇ„GL‹jH‰ýH‹~H‰ÓI‰öè™÷ûÿL‰ïI‰ÄèŽ÷ûÿIÄAƒç…ÑH‰ïèy÷ûÿI�|èùûÿHƒìM‰éHÇÂÿÿÿÿUM‹FH‰ÇI‰ÄH� ‚è¾1ÀèÓüÿXZH‰ÞL‰çè¶–þÿ‰Å„À„¼L‰cH‹{0¾èªüÿ„ÀtTH‹C0ö@D@tJ¶C`‰Â÷Òƒât-ºH�5D´1ÿè¼öûÿºÌH�5!èH‰Ç1ÀèÖMþÿ¶C`¨tnH‹{0L‰îèrüÿHƒÄ‰è[]A\A]A^A_Ã�I�|$èVøûÿM‹FM‰éH� :èI‰ÄH‰Ç¾1ÀHÇÂÿÿÿÿèüÿé9ÿÿÿf.„L‰çèèòûÿ1íë¢@H‹{è§ùûÿI‰Åé�ÿÿÿff.„@AWAVAUA‰õATUSH�ìØH‹µ,H‰|$‰T$H‹@H‹0dL‹$%(L‰¤$ÈL‹gL‰çè8õûÿH…À„�¿H‰Ãè’÷ûÿL‰çH‰Åè×÷ûÿHƒ=O3HÇEH‰E„ H‹ž5H‰(�KD€¾H‰ßH‰-…5è(üÿ‰Å„À„öCD@„H‹ ,H‹@H9C…ÿE…í…æH�t$(H‰ßè)úûÿ„À„ÁH‹D$(H…À„ÃL‹-Ì0H‰-@Æ@M…í„R1ÀAöEat9„À…@I‹}0H…ÿt öGD@…žM‹mPM…ít&AöEauÝff.„M‹mPM…íu·„À…_‹L$…ÉtGL‹l$(M…íuéH„M‹mM…í„3I‹}ºH�5êåèÞñûÿ…ÀuÚf.„H�5Ù>H‰ßè1óûÿ…À…IH‹;è±÷ûÿ€=»0I‰Å…L‹5Ú/1ÿHÇ�>M…ö„<@AöFat)H…ÿ„€M‹vPM…öt7AöFauM‹vPM…ötAöFauàM‹vPM…öuÇH…ÿ„öff.„H‹„$ÈdH+%(…H�ÄØ‰è[]A\A]A^A_ÃDH‰-)1éñýÿÿ@I‹~0H…ÿt—èBôûÿ¨t^M‹vPH‹=Ó=M…ö…Jÿÿÿë�„H‰ßè(üûÿ1íë„@€=º/tïºH�5ÐÕ1ÿ1íèóûÿL‰æH‰Ç1ÀèåGþÿéPÿÿÿI‹~0H�t$0èâñûÿ…À…úH‹s=H9D$0„ H‹I=¾/L‹`L‰çè`óûÿH…À…YÿÿÿH�52äL‰çèÿûÿH…À„AÿÿÿI‹~0L�xèRóûÿI‰ÄH…À„÷H‹÷<L‰úL‰çH‹pH)òèÍóûÿ…À…ÿÿÿH‹Ö<1ÿºH�5¸iH‹HL‹xH‰L$è>òûÿH‹T$L‰áL‰þH‰Ç1ÀèYIþÿéÆþÿÿ@1ÿºH�5¡ãè òûÿL‰âL‰îH‰Ç1ÀèÝFþÿé×ýÿÿ„1ÿºH�5*ièÝñûÿH‰ÞH‰Ç1ÀèIþÿé’ýÿÿH‰ßL‰îè�ûûÿH‹D$H‹8H…ÿtè‹òûÿ¨t¾ë¾H‰ßèÃöûÿH‹d(H�5õ'H‰ßH‰H�ƒH‰I(H‹Cÿ�È„À…¯ýÿÿ1ÿºH�5‘íèLñûÿH‰ÞH‰Ç1ÀèoHþÿéŠýÿÿf.„èëñûÿH‰D$H…À„]L‹=><M…ÿuéœ@M‹?M…ÿ„ŒI‹wH‹|$èÎïûÿ…ÀtâM‹w¾/L‰÷èyñûÿH…ÀuÌH�5OâL‰÷è5ýûÿH…Àt¸H�PH‹|$L‰öL)òè òûÿ…Àu ÆÁ;I‹EPH…À„TýÿÿL‹hPM…í„ÝAöEau߉èéÉûÿÿf„¶‰;é´ûÿÿ@1ÿºH�5bgèMðûÿH‰ÞH‰Ç1ÀèpGþÿéûÿÿH‹D$8H9Ä:…NýÿÿH…À„EýÿÿI‹FPL‰5’:L‰÷H…À„?üÿÿI‰Æö@a… üÿÿé$üÿÿ@M‹f0ºH�5á1ÿèÙïûÿH‰ÇL‰æ1ÀèüFþÿH‹=E:éðûÿÿI‹E0H‹8è4óûÿH‰D$é�þÿÿ‰èéüúÿÿ‹T$…Ò„GûÿÿI‰ÅéûÿÿI‹~èóûÿI‰Äéøüÿÿè¹ïûÿf„AWAVAUATA‰ÌU‰ÕSH‰ûH‰÷HƒìxD‰D$ dH‹%(H‰T$hH‹V€:/„H…Û„š€;„‘H‹H‰×H‰T$H‰$H‰D$Pè<ïûÿH‹T$‰l$HHƒÀD‰d$LH‰D$0H�D$PH‰D$8H‰T$@fD¾5'H‰ßèqïûÿI‰ÆH…À„…H‹D$0M‰õI)ÝI�|è�ðûÿI‰ÇH‰ÇL9ótL‰êH‰ÞèjóûÿCÆ//K�|/H‹t$@E1íè3ìûÿL‰t$(éQf„„ÒþÿÿI�^é}üÿÿDH‰Ïè€íûÿI‰Åéšýÿÿ„H‰ßèhëûÿL�4éjüÿÿL‰ÿˆ$èÔçûÿ¶$é‰þÿÿH‹D$hdH+%(uHƒÄx‰î‰Ê[]A\A]A^A_éäôÿÿè/ëûÿff.„@AWAVAUATUH‰ýS1ÛHƒìH‹=^'èñêûÿD¾%ä"H‰ïI‰Åë�H�x€?/J�+D‰æHDØè9ëûÿH…ÀuäH‰ïè¼êûÿH�|èbìûÿD¾5¥"I‰ÇI‰Äë.f�D‰öH‰ïèëûÿH…ÀtDH)èH‰îL‰çH�PM�dH�lè”çûÿ€}/uÎH‹5Ï&L‰çMìèÜçûÿD‰öH‰ïèÁêûÿH…Àu¼H‰îL‰çèÁçûÿHƒÄL‰ø[]A\A]A^A_Ãff.„@AWAVAUATUSH�ìˆH‰|$H‰÷H‰t$dH‹4%(H‰t$xH�5³èHòûÿH…À„�¿I‰Ä½A½€èwëûÿH‰Ã@I‰Þë8H‰ÇL�uÿè¬éûÿH‰ÂL‰ðL)øH9Âu?€|+þ t8HíH‰ßH‰îèYêûÿH‰ÃIÆM‰÷‰îL‰âL‰÷I)ßD)þè-ìûÿH…Àu°L9ó„�¾ H‰ßèÂéûÿH…Àtƾ#H‰ßè­éûÿH…ÀtÆI‰ßëff.„DIƒÇA¶�A÷<‡�I£ÅrçºH�5ªÚL‰ÿˆ $è@æûÿ¶ $…À…iA¶G< „—< „�L‰ø€ù=uë5D¶HHƒÀ„Éth€ù=tcƒé €ùwçI£ÍsáI9ÇuUff.„�H‹|$1Ò1ÀH‹?H…ÿuQL‹t$H�¸H‰$I‰~èêûÿIÇFH‹$I‰H‰Çë\f�HƒèI9Çt·€xÿ/tñH‹|$L)øH‰ÂH‹?H…ÿt¯H‹t$H‹FH‹vH�HL�I9ðƒ�H‹t$H‰N¶ ûˆ H‹~H>L‰þH‰$èŠìûÿH‹D$H‹$HPH‰PH‹ÆL‰çè ìûÿ…À„þÿÿH‰ßè:äûÿL‰çè"çûÿ¸H‹T$xdH+%(…gH�Ĉ[]A\A]A^A_À„ÉtªºH�5ÙL‰ÿˆ $èµäûÿ¶ $…À…ŠþÿÿA¶G< …uþÿÿff.„�M�Wff.„�E¶2A€þ „‚A€þ „xE„ö„=ÿÿÿM‰×ë"f.„E¶7A€þ „bA€þ „XL‰øIƒÇE„öuÜÆA¶„Ò„ûþÿÿHÇD$€ú/„‰H‹|$¾/L‰T$è‡çûÿL‹T$H‰$L‰×L‰T$(è‘æûÿH‹$H+T$H�|H‰$H‰D$ è%èûÿH‹$H‹t$H‰ÇH‰D$HƒÂH‰$è÷êûÿH‹$H‹D$H‹L$ H‹t$(H�<H�Qè×êûÿL‹T$H�L$01Ò1öL‰×H‰L$ è\ðûÿ…ÀuH1ÒHƒ|$0t4ff.„H‹D$8H‹|$H‰$H‹4ÐèÉûÿÿH‹$HƒÂH;T$0rÚH‹|$ èâûÿH‹|$èFâûÿE„ö„ëýÿÿM‰úE¶2A€þ …Šþÿÿff.„�IƒÂégþÿÿ€AÆA¶„ÒuIL�PéKþÿÿL‰øéÄüÿÿL‹t$H�´H‰$I‰vè)æûÿH‹$I‰H‰ÇI‹FH�Hé2ýÿÿ1ÀéŽýÿÿL�xéeþÿÿè=åûÿff.„f�óúAWH� “AVAUATUSHƒìH‹‡H‹�˜ H‹j@H‹E`H9È„0L‹°ÐL‹z8I‰üI‹^HH…Û„íH]XH‹E@H�K1öH‰ÏH‰L$L�hðL‰êè+æûÿI‹D$H‰Þ¿ÿ�˜I‹D$L‰ïH�sÿ�˜I‹D$H�s¿~þÊÿ�˜ÇC FDOL‰ÿècäûÿH‹|$L‰þH‰ÂèóèûÿH‹uX1ÒIvL‰çL‹m@èÝðûÿ…À¸tIƒ~Ht0HƒÄ[]A\A]A^A_ÃfDL‰âL‰îH‰ßèªáûÿI9Å”ÀIƒ~HuÐHƒ½ uÆH‰ßˆD$ègàûÿ¶D$ë³H‹� H…Û…ÿÿÿH‹}@èwåûÿH‰Ãéöþÿÿ€ºH�5T[1ÿèuãûÿH‰Ç1Àè›:þÿ¸édÿÿÿ�óúAWH� AVAUATUSHƒìH‹‡H‹�˜ L‹r(I‹F`H9È„@L‹¨ÐH‹OH‰ýH‹z I‹]HL‹¹xH‰<$H…Û„îI^XI‹F@H�K1öH‰ÏH‰L$L�`ðL‰âèŒäûÿH‹EH‰Þ¿ÿ�˜H‹EL‰çH�sÿ�˜H‹EH�s¿ÿ�˜H‹4$E‰àH‰ïÇC GNUI‹‡HH‹L$H‹P èàŽþÿI‹vX1ÒIuH‰ïM‹f@è:ïûÿ…À¸tIƒ}Ht-HƒÄ[]A\A]A^A_ÃH‰êL‰æH‰ßè àûÿI9Ä”ÀIƒ}HuÓIƒ¾ uÉH‰ßˆ$èÈÞûÿ¶$ë¸f�I‹ž H…Û…ÿÿÿI‹~@è×ãûÿH‰Ãéõþÿÿ€ºH�5Z1ÿèÕáûÿH‰Ç1Àèû8þÿ¸égÿÿÿ�AVUH�-SH‰ûƒ{wv‹CHcD…Hè>ÿàfDH‹S¹€:.„�D¶C(H‹=:H�5ãèþÞûÿ„ÀucL‹s1ÿºH�5ÈYèSáûÿH‰ÇL‰ö1Àèv8þÿë=@H‹[ƒ{vŠ[]A^Ã�H‹{ègÿÿÿH‹{ è^ÿÿÿH‹[(écÿÿÿDH‹{èGÿÿÿH‹[ éLÿÿÿfDH‹S1É€:.…cÿÿÿ€ztÜéXÿÿÿff.„óúƒtÃDH‹é÷þÿÿ€óúAVI‰þATUSHƒìL‹fdH‹%(H‰\$H‰óM…äuHÇCA¼H‰åë"f�H‹sH‹;H‰êH�FH‰CèÙâûÿH…ÀuÞûÿH‰ÞH‰Ç1Àèa5þÿéVÿÿÿègÞûÿ€AWAVAUATUH‰ýSHƒìD‹wxL‹¿€H‰4$E‰õE…ö„„I‹?èüáûÿ…ÀŽ´AƒþtnA�FÿH‹4$I‹<ÇH� ÅI‰ÄH‰L$èÍáûÿ…ÀIH‹L$„æE1öAƒýuéØD�sE9æƒãC�&H‹4$Ñë‰ØI‹<ÇèŽáûÿ…Àt3yØD�cÿëÖf�‹E|D‰éHÁáA9ÅsAIÏIÇH‹<$è~ßûÿI‰ƒExHƒÄ[]A\A]A^A_Ätç‹E|A9ÆrB1ÉE1ö�ƒÀ@L‰ÿH‰L$‰E|H�4ÅèÞûÿD‹mxH‹L$H‰…€I‰ÇIÏE9îtŒE)õE‰îD‰òI�L‰þHÁâèÑäûÿénÿÿÿ@…À„yÿÿÿ‹E|A9ÅsPIÏE‰æëÆD‰ðH‹4$I‹<ÇH� ÅH‰L$è£àûÿH‹L$…À~A�NI‰ÎHÁá‹E|A9År…éRÿÿÿf�„#ÿÿÿëéE‰æé@ÿÿÿóúAWAVAUI‰ýATUSH�ì˜H‹=‰t$(H�5¦‰T$,‰L$$dL‹$%(L‰¤$ˆL‹%îèÁÞûÿH…À„8L�|$`H‰ÅL‰|$I‰ÇëBfDèËÜûÿ¨u'I‹H…ÿt3A€}Ru¶Cƒà<uè¤Üûÿ¨tM‹?M…ÿ„äI‹H…ÿu»I‰îL9ýt2I‹~H…ÿt èrÜûÿ¨uI‹wI‹~è‘ßûÿ…À„‘M‹6M9þuÑH‹*L‰=Û%1ÿHÇÖ%H…Û„Øff.„f�öCa„žH…ÿ…íH‹{H…ÿ„`Hƒ{0„ H‹†%H‹pèåÙûÿ…À„�öC`t/H‹{¾/èùÛûÿH…ÀtH‹U%H�xH‹rè°Ùûÿ…À„XH‹{0èÛûÿH…ÀtH‹+%H‰ÇH‹rè‡Ùûÿ…À„/H‹=%H‹[PH…Û…KÿÿÿH…ÿtH‹0è]Ûûÿ¨„µþÿÿóAoG€=ùfH~Ã)D$PfÖD$`…®H‹Ë$H…Àt%H‹@H�|$`º¾H‰D$hèäÿÿ„À…aþÿÿH�D$PL‰d$0E1öH�½H‰D$L‰l$8H‰l$@H‹{0D‹D$$¹D‰òH‹t$èsêÿÿ„À…ž‹|$(…ÿ…?‹t$,…ö…~L‹-ÌM…í„„I‹L‰íè×ÙûÿI‰Å@€}ubH‹}èÁÙûÿI�|ègÛûÿM‹OL‹EHÇÂÿÿÿÿH‰ÇI‰Ä1À¾H� 6ËèæûÿH‹|$ºD‰öL‰d$hè8ãÿÿ„À…L‰çèèÕûÿH‹mH…íu�A�FA¾ƒø…ÿÿÿI‹_M‹wº1ÿH�5îRL‹d$0L‹l$8H‹l$@èòØûÿH‰ÚL‰öH‰Ç1Àè0þÿM‹?M…ÿ…"ýÿÿfDA€}RuH‹’H…Û…f„L‰%�IÇ$H‹„$ˆdH+%(…ŽH�Ę[]A\A]A^A_ÄH‹CPH‰å"H‰ßH…À„ÎýÿÿH‰Ãö@a„´ýÿÿff.„�H‹0èÙûÿH‹=°"¨„�ýÿÿH‹SH…Ò„ƒýÿÿH‹C0H…À„výÿÿH…ÿ„H‰ÇèÝØûÿ¨…VýÿÿH‹{é×üÿÿ@M9÷…üÿÿéiüÿÿf.„öCD@tH‹Cƒx„“ff.„�H‹›H…Û„ðþÿÿ¶CHƒà<uåëÃH‹{(H…ÿ„øèžìÿÿD‹D$$H‹t$D‰òH‰Ç¹H‰ÅèñçÿÿH‰ïA‰ÄèÔûÿE„ä…‹L$,…Ét3Hƒ{0u Hƒ{(„ûH�=%ÉèWÓûÿH…À…¿‹D$(…À„OýÿÿH‹=Ë H�5t è?ÕûÿI‰ÅH…Àu"é¤f�è›ÓûÿM‹mM…턇@„í„~I‹}½E1äèäëÿÿH‰ÇI‹GI9EuÇD‹D$$H‹t$¹D‰òH‰|$Hè+çÿÿH‹|$HD¶àƒð‰Å뛋T$,…Ò„mÿÿÿHƒ{0„<H�=fÈè˜ÒûÿH…À„MÿÿÿD‹D$$H‹t$D‰òH‰Ç¹èÕæÿÿ„À„ÿÿÿL‹d$0L‹l$8H‹l$@éiúÿÿH‹“·‚Œ fÁè¨ …_þÿÿHƒº`„QþÿÿH�5j H‰ßèâÖûÿ…À‰:þÿÿ1ÿºH�5”Oè×ÕûÿH‰Ç1Àèý,þÿéþÿÿ„H‹[PH…Û„>ûÿÿöCa…|úÿÿé ûÿÿ1ÿº)D$H�5xÇèŒÕûÿH‹t$H‰ÚH‰Ç1ÀèZ*þÿé#ûÿÿH‹[PH…Û„óúÿÿöCa…1úÿÿ1ÿé¿úÿÿE…ä…ÿÿÿ€=·tMH‹-¦L�d$pH…í„mûÿÿóAoGD‰òL‰æH‰ïD‹D$$¹)D$pè�åÿÿ„À„BûÿÿéÃþÿÿH‰×éãùÿÿH‹=‰fïÀ1É1ÀH�5zND$xL�d$pHÇD$pH�ÝÆèÖûÿL‰çH‰ÆH‰ÅèÅêÿÿ„ÀtJH‰ïèYÑûÿH‹|$pH…ÿt%èºéÿÿH‹|$pH‰öH‰Åè6ÑûÿÆïéJÿÿÿÆãH‹-Ôé)ÿÿÿH‰ïèÑûÿH‹=ð1Ò1ÀH�5bÆè˜ÕûÿL‰çH‰ÆH‰ÅèJêÿÿë‡H�=:Æè\ÐûÿH…À„ðüÿÿD‹D$$H‹t$D‰òH‰Ç¹è™äÿÿ„À„Îüÿÿé¿ýÿÿè7Ôûÿ€óúöV t H‹t ƒx@tÃDHƒìÆ@RH‰Ç¹ º¾H‰D$èL÷ÿÿH‹D$Æ@RHƒÄÃff.„óúAWAVA‰þAUATUSH�ì8‰t$‰T$dH‹%(H‰„$(1ÀèþÿL‹%é Aƒ|$@…5H‹=ö H…ÿt/èTÙûÿH‹í H‹=Þ H‹@H‹0èªÚûÿH‰Û H…À„3H‹= H…ÿ„FH‹à H…Ûu.éýff.„ff.„H‹›H…Û„ÔH‹Cƒxu拃¨…ÀtÜH‹ƒ H…Àtö@`uÊH…ÿ„„èü}þÿH…À„âHƒÀH‰Å„Õº+@H�5'•H‰ßè2ÑûÿH…À„ H‹ H� ëîÿÿó~KÇ@|H‹’fH:"ÀH‹’˜ H‰JB H‹�ÐÇBH‰h@L‹-M…í„JL‰ïè%ÒûÿºH�5™LH‰ÅH…À„L‰ïH�T$ 1öè>ØûÿH‰ÇH…À„³H‹@Hƒøÿ… º+@H�5ÍÃH‰ßèpÐûÿH‰ÁH…À„­Ç@|H‹FH��ìÿÿó~wH‹�fH:"ÁH‹’˜ H‰Z0B8H‹‘ÐÇBH�UHƒâüH‰Q@é�¶ª‰Â‰ÁÀêÀéƒâƒáƒò8Ñ„„f„H‹„$(dH+%(…H�Ä8[]A\A]A^A_úH�5L1ÿèÔÐûÿH‰Ç1Àèú'þÿH‹=ÃènÍûÿHdzH‹lH‹@H�=L�-W“H‹€xÿ�¨H‹VH…Ûtl�L‰îH‰ßèÓûÿH‰ÆH…Àt>ff.„f�H‹H‹€H‹€˜ H9p(t�N$€1ÿè7ÖûÿH‰ÆH…ÀuÏH‹Cƒx„H‹›H…Ûu•¶~ƒà<„Èþÿÿöq…†L‹=¿M…ÿ„v1íD‰t$E1íM‰æÆD$M‰üH�zA‰ïëRDL‹d$E…ÿt Aƒÿ…mM…í„h¶ A¿‰ÊˆL$ƒâçƒÊˆøM‹¤$M…䄯I‹”$ H…ÒtöB`uÜI‹¬$�H…íttL‰d$ÇD$fDH9]`tAL‹eºH�5mÁL‰çè¢Ìûÿ…À„ZÿÿÿH�5n½L‰çèÓûÿ…Àu1ÀHƒ}@—À D$H‹mH…íu°‹L$L‹d$…É…Aƒÿ„2ÿÿÿM‹¤$M…ä…QÿÿÿM‰ôD‹t$M…í„KI‹EH�5ûÀL‰ïH‹€x‹P8ƒÊèSÌûÿH…À„"Ç@|I‰„$ ff.„¶Ýƒà<„:H‹„$(dH+%(…g‹L$‹T$D‰öL‰çH�Ä8[]A\A]A^A_éÃñÿÿH‹ƒ H…Àt ö@`…éýÿÿH‹ƒH…À„Ùýÿÿ·P8fƒútfƒú…Åýÿÿö€Ž „¸ýÿÿ1ÿºH�5SIèÆÍûÿH‰ÞH‰Ç1Àèé$þÿé“ýÿÿHƒ=¬ …¬úÿÿéîüÿÿºH�5ý†1ÿèŽÍûÿH‰Ç1Àè´$þÿH‹=… è(ÊûÿHÇu é[ûÿÿ€|$„íþÿÿ1ÿºH�5gIèJÍûÿH‰Ç1Àèp$þÿéËþÿÿI‹T$ÆD$ƒzMDìé�ýÿÿ1ÿH�5‹è&Óûÿ„À…°þÿÿ1ÿºH�5hIèûÌûÿH‰Ç1Àè!$þÿéŽþÿÿè—ÉûÿHÇä é üÿÿH‹ˆ1ÿºH�5úFè½ÌûÿH‰ÇH‰Þ1Àèà#þÿé¡ùÿÿðHƒo…ëúÿÿè:ÎûÿéáúÿÿH‹”$(dH+%(…žÐèH‹=EH�Ä8H�5š¾‰Â[]ƒâA\A]ƒÊA^A_éÊûÿºH�5¤FéªþÿÿM‰ôD‹t$M‰ï1ÿºH�5îGè!ÌûÿL‰þH‰Ç1ÀèD#þÿéSýÿÿH‹ ºH�5äFè÷ËûÿH�T$|H‰ÇH‰Þ1Àè#þÿéûÿÿèÌûÿE…ÿtEAƒÿu/M…í…Cüÿÿö4tI‹T$E1íÆD$ƒzMDìA‰ÏéüÿÿM‰çM‰ôD‹t$é]ÿÿÿM…íuãëÃf.„óúº ¾¿éØ÷ÿÿ„óúAWAVAUATUH‰õSHƒìL‹7H‰|$H‰÷M…öt[èfËûÿD¶-YM‰÷H‰Ã„H‰ÚL‰þH‰ïè’Èûÿ…ÀuA¶„Àt2D8èt-A¾õL‰ÿè”ËûÿH…Àt/L�xëÉf„è ÍûÿH‹L$H‰HƒÄ[]A\A]A^A_Ã@L‰÷èèÊûÿH�|èŽÌûÿHƒìD¾ ÍHÇÂÿÿÿÿUL‹t$H‰ÃH‰ÇH� Œ¾1ÀM‹è9×ûÿI‹>è!ÇûÿI‰XZHƒÄ[]A\A]A^A_Ãff.„f�óúAWAVAUATUSHƒìXH‹ÏH‰|$H‰t$8dL‹$%(L‰d$HL�%ˆƒx@„H‹ßÆD$'E1íHÇD$HÇD$H…Û„NL‹=­M…ÿuéƒM‹¿M…ÿttI‹GƒxuêI‹‡H‹¸hH…ÿt×€?tÒèÍËûÿH�-¦I‰ÆH�D$8H‰D$0f„¾uL‰÷èÊûÿH…À„ëÆA€>…þL�pëØ„HƒìH‹ -H‰ÚH‹5 H�D$HH‹=ïÿPATÿ5L‹L$XL‹D$(èGÏûÿHƒÄ „À„ËH‹\$@H…Ût H‹=ÂH…ÿtH‰» èÉûÿHƒÀH‰C@L‹=ÊM…ÿueéàI‹D$ Æ+E1ÉE1ÀI‹O01ÒH‰ÞL‰çÿP(H‰ßèZÅûÿI‹F`H…ÀtH‹PHI‹N@H9ÊrH)ÊH‰PHA�N$€ IÇF@M‹HM…ÿ„€AöG`uìI‹0H�5¿ºèùÊûÿI‰ÆH…ÀtÔH‹h@H�}è$ÊûÿI‹01ÉI‰èH‰ÂL‰öH‰ÃèMÈûÿ„À…UÿÿÿI‹G01ÿºH�5ÓDH‰D$è ÈûÿH‹t$H‰Ç1Àè*þÿé%ÿÿÿD¶Yþƒà<tè�ýÿH‹=–þL‰æèŽÑûÿ„À„®M…ít¶D$'foD$AˆEAE(H‹D$HdH+%(…zHƒÄX[]A\A]A^A_Ãf.„A€>„¦ýÿÿH�|$8L‰öè üÿÿé”ýÿÿ@H‹|$0L‰öH‰D$(èîûÿÿH‹D$(éæýÿÿ@1ÿºH�5ÂCè-ÇûÿH‰Ç1ÀèSþÿéþÿÿfD1ÿºH�5šCèÇûÿH‰Ç1Àè+þÿé0ÿÿÿfDH‹=©ýL‰æè1Æûÿ¶Jýƒà<uSHÇD$E1íHÇD$ÆD$'H‹5ÂùH�=ÛåÿÿèÖ|üÿH‹wþH…Û…²üÿÿH�=˜¸èºÂûÿH‰Ãéžüÿÿf�H‹=ý1É1ÒA¸H�5ržè£ÉûÿH…Àt‹¶PˆT$'€úv €ú…uÿÿÿóoH(Æ@I‰ÅH�åöI‰E(IÇE0)L$éfÿÿÿèZÆûÿf.„óú1ö1ÿé³ûÿÿóúAUATE1äUSHƒìH…ÿtAH‰ûH‰õL�-Iì‹Cƒèƒø w!IcD…Lè>ÿà€H‹{H‰îè´ÿÿÿA ÄH‹H…ÛuÌHƒÄD‰à[]A\A]ÃH‹SH‹B`H…ÀtÚH‹ DüH9ˆàuÊ‹@$‰Á�á€u½öÄu ÷Щu¯H‹½˜H…ÿ„â‹O�q;„§‰ÈHÁàH‰\‰LH‹‚à‰wH‹@ƒx…jÿÿÿöB&…`ÿÿÿH‹‚ÐHƒ¸�„KÿÿÿƒGéBÿÿÿH‹=ÉH‰îèáþÿÿH‹A ÄH…Û…õþÿÿé$ÿÿÿDƒ»¤ÿ„ ÿÿÿH‹{H‰Þè¯þÿÿH‹A ÄH…Û…Ãþÿÿéòþÿÿɉ�qÿHƒÆHÁæè‡ÅûÿH‹S‹HH‰…˜H‰Ç�qé,ÿÿÿ¿‰L$ è@ÆûÿH‹S‹L$ ¾HÇ@H‰ÇÇ@H‰…˜éôþÿÿfDóúHƒì¿ˆèþÅûÿfvÀH�xH‰ÁHÇH‰ÂHÇ€€Hƒçø1ÀH)ù�ÁˆÁéóH«ÇBÿÿÿÿH‰ÐHÇBÿÿÿÿHÇBhÿÿÿÿB HƒÄÃfDóúAWAVI‰öAUI‰ýATM‰ÄUH‰ÕSHƒì8‰L$L‰ $H…Ò„‘H…ö…‘I‰ÖH‹$E‹}@I‹]HÆE…ÿ„…D‹D$L‰áH‰êL‰öH‰ß觨ÿÿ…ÀŽÏAƒÿ„ÕA�GÿD‹D$L‰áL‰ö‰D$H�€H�ÅH�ÃH‰T$H‰ÇH‰êH‰D$è]¨ÿÿD‹L$…À�(„²Aƒÿ„¨M…öD‰|$$E‰Ï”D$#H…íL‰l$(”D$E1íL‰t$H‰l$ëm@¶D$#L‰çM…ä„ŸèºÆûÿ…Àu>I‹vH‹D$H ðt"H…ö„Ÿ€|$…”H‹|$èŠÆûÿ…Àu‹D$A+F„˜…ÀyTD�}ÿE9ýƒC� /Ñé‰ÈH‰ÅH�€L�4ÃI‹vH…ö…wÿÿÿI‹6M…ä„ûL‰çH…ö…pÿÿÿff.„@D�mëªf.„H…ö„rþÿÿH…íIDîéfþÿÿA‹ED…À„,HÇC fïÀL‰÷CèñÃûÿH‰ïH‰èæÃûÿH‰CM…ät L‰çèÕÃûÿI‰Ä‹D$L‰c‰CAƒE@HƒÄ8H‰Ø[]A\A]A^A_ÃtCA‹EDA9ǃÑD‰øE1ÿD)øH�{(H‰ÞH�€HÁâèTÉûÿésÿÿÿ€…À…SH‹\$H‹$Æë f�H‹D$H ð„|þÿÿH…ö”À D$#„„À„yHƒ|$…ìþÿÿé“þÿÿ€Hƒ|$…Ôþÿÿé{þÿÿ€D‰øH�€H�ÕH‰D$A‹EDA9ÇsH�ÓéÖþÿÿf�HÇD$ƒÀ@H‰ßA‰EDH�4€HÁæè�ÁûÿI‰EHH‰ÃA‹E@H\$A9Ç… ÿÿÿé–þÿÿf�A‹EDƒø†³HƒÃ(é~þÿÿf.„D‰èL‹t$H‹l$L‰áD‹D$D‹|$$‰D$H�€HÁàH‰êL‰öL‹l$(H‰D$HØH‰ÇH‰D$èZ¥ÿÿD‹T$…À~AA�BI‰ÁH�€HÁàH‰D$A‹EDA9Çs_D‰øE‰ÏéTÿÿÿf„L‰óé�þÿÿ„E‰ÑuÎévþÿÿfDHÇD$(éûþÿÿf�HÇD$E1ÿéèþÿÿH‹|$éÖüÿÿE‰ÏéÖþÿÿff.„f�óúAWH‰ðI‰÷AVM‰ÆAUATI‰üUH‰ÕSHƒì0M…À‹wXH‹`H‹\$h‰L$$IEÀI‰ÐL‰L$L‰úA‰ÉÆH‰ÁS‰t$(H‰|$ èE¦ÿÿA‰Å‰ÀH�€XYHÁâ€;H‹|$‹t$…4A‹D$\9ƃçH�A9õ…ªM‹l$PM…íuéM‹mM…í„ I�}H‰îè¿Âûÿ…ÀuãfïÀHÇC CM…ÿt L‰ÿè»ÀûÿH‰C‹D$L‰k‰C M…ötgL‰÷èŸÀûÿH‰H‹D$H…Àt H‰ÇèŠÀûÿH‰D$H‹D$H‰CAƒD$XHƒÄ(H‰Ø[]A\A]A^A_Ã@D)îH�{(H�¶H‰ÞHÁâèÆûÿé:ÿÿÿ@H‹Cë›f.„ƒÀ@H‰T$A‰D$\H�4€HÁæèæ¾ûÿH‹T$A‹t$XH‰ÇI‰D$`H�A9õ„íþÿÿë•DH�éqÿÿÿ€H‰ïèØ½ûÿH�xè¿ûÿH‰îI‰ÅI‹D$PIÇEI�}I‰EM‰l$Pè*»ûÿéÊþÿÿDAWH�Ê­AVI‰þH‰÷AUE‰ÅATI‰ôUSHƒì(H…ÒH‰L$HEÂH‰ÃdL‹<%(L‰|$M‰ÏÆD$èU½ûÿH‰ßH‰ÅèJ½ûÿH�|èð¾ûÿI‰ÙM‰à¾H‰ÇH‰Å1ÀHÇÂÿÿÿÿH� ]¯èªÉûÿHƒìH‰êM‰ùH�D$H‹=\M‰ðD‰éPH‹t$èSýÿÿXZH‹D$dH+%(uHƒÄ(H‰ï[]A\A]A^A_éK¹ûÿèÖ¼ûÿfDAWE1ÿAVL�5ÒëAUATUS»ÈH�ìˆdH‹%(H‰„$x1ÀL�Œ$°L�d$pÇÞþÿÿÿL‰d$L‰ÍM‰ÍÇD$HÇ$ÇL‰L$H‹$Dˆ}LèH9Å‚¿H�û'„´HÛ¸'H9ÃHOØH�|ÛèœÁûÿH…À„’L)íL‰îH‰ÇL�eL‰âIÁäèšÀûÿH�KH‹t$L‰âI‰ÀH‰ØHƒÀL‰$HIÈHƒáøJ�<èoÀûÿL;l$L‹$H‰ÁtL‰ïL‰D$H‰$è0¸ûÿL‹D$H‹ $H�CÿLÅH‰$LÀH9ŃH‰L$N�d!øM‰ÅAƒÿI„¥McÇG¾<Aƒÿ«„_Hcȃúþ„'…ÒŽ~�ú„�úŽ×AƒÇ¸A�ÿ¡‡IcÏH�·ç¿J9Â…H�DæD¿ÿàM‹<$I¾ÓL‰àH�5ÒãH� ÕH)ÕH)ÈL‰xL�`H�õã¶MB¾ƒè$H˜¿FÊ�ú¡wHcÒH�5Ïæ¿4V9ñ„ÓH�LãD¶<HƒÅé¸ýÿÿfDH�¡äB¾…À…4ÿÿÿ‹t$…ö„Hƒ|$u‹C…À�‹tiH�jæH� åë�I9ítSD¶EÿHƒíIƒìC¾ƒø«täƒÀ=¡wÚH˜fƒf�㈅" ‰îH�=†©è™·ûÿH…À… ƒý t�EÞƒøw"H� ßHc�HÈ>ÿàƒKÿÇÿ‹ÿ…À„×þÿÿH‹\$ H‹l$(A‰ÂL‹D$0Ç÷þIcÒé €H‹=Áþè|¸ûÿ‰ÅéÿÿÿDH‹5áþƒæþH�Ô¨H� “t‹ÎþH�=V©L‰D$H…öHDð1Àèd þÿL‹D$é‰üÿÿf.„H�‰áD¿ÿàƒÎff.„�¶BHƒÂ„ÀuÑL‰T$(Dˆ\$ èŵÿÿD¶\$ L‹T$(éu÷ÿÿA‹4$I‹|$øL‰T$(ˆL$ èžµÿÿD¶\$ L‹T$(éN÷ÿÿˆL$ I‹t$è1Ò1ÿI‹L$øM‹ $A¸ÿÿÿÿL‰T$(èôÿÿD¶\$ L‹T$(é÷ÿÿL�=¼ é ÷ÿÿL�=T¤é÷ÿÿH¸ÿÿÿÿI!ÇéîöÿÿI‹<$1Ò1öL‰T$(ˆL$ èȺûÿD¶\$ L‹T$(HºÿÿÿÿL!ú‰ÀH ÂI‰×é³öÿÿL�=¹£é§öÿÿL�=££é›öÿÿL�=‹£é�öÿÿL�= †éƒöÿÿL�=h éwöÿÿL�=^£éköÿÿL�=> é_öÿÿL�=A£éSöÿÿL�=‘£éGöÿÿL�=ûŸé;öÿÿL�=ÙŸé/öÿÿL�=e£é#öÿÿL�=íŸéöÿÿL�=F£é öÿÿL�=èŸéÿõÿÿL�=CwéóõÿÿL�=£éçõÿÿL�=£éÛõÿÿL�=ñ¢éÏõÿÿL�=zŸéÃõÿÿI‹<$1Ò1öL‰T$(ˆL$ è½³ûÿD¶\$ L‹T$(I‰ÇéšõÿÿA‹D$ðI‹T$ØM‹$A‹L$à‰D$ I‹t$ÐH…ÒuH…öHEÖH‹=CøL�L$oL‰T$0Dˆ\$(èçëÿÿ€|$oD¶\$(L‹T$0…AõÿÿöD$ tÆ@"öD$ tÆ@!öD$ tÆ@#öD$ „õÿÿÆ@ é õÿÿA‹$I‹t$ð‰D$ H‹Ð÷H‰t$(H‹PpH…Ò„Ù H‰\$81ÛH‰l$@H‰õL‰d$HI‰ÔˆL$0L‰T$Pë@I‹$L‰ãH…À„ÀI‰ÄI‹|$H‰îè³ûÿ…ÀuA‹D$+D$ „Ô …À~ÉD¶\$0L‹T$P¿H‰\$0H‹l$@L‹d$HDˆ\$_H‹\$8L‰T$@膰ûÿH‹|$(H‰D$8èǰûÿH‹L$8‹t$ Hƒ|$0L‹T$@H‰AD¶\$_‰q„P H‹T$0H‹H‰H‰ é ôÿÿI‹$¿L‰T$8ˆL$0H‰D$ è!°ûÿH‹|$ H‰ÂH‹šöH‰T$(H‰H‰‹öèN°ûÿH‹T$(H‹|$ H‰Bè;®ûÿH‹T$(D¶\$0L‹T$8‰Bé£óÿÿfAnD$ðH‹möfA:"$fÖ@héƒóÿÿIÇÇÿÿÿÿéwóÿÿI‹4$I‹|$ø1ÒL‰T$(ˆL$ èÞ´ÿÿD¶\$ L‹T$(éNóÿÿH‹5öI‹$L‰T$@ˆL$8H‹~H‰t$0H‰D$(H‰|$ H‰Ç蟭ûÿD¶\$8L‹T$@H‰ÂH‹D$ H…À„³H‰ÇH‰T$Hèv­ûÿH‹T$HH‹|$ �tHcöè0®ûÿH‹t$0H‰FH‹¨õH‹t$(H‹xè"·ûÿD¶\$8L‹T$@é²òÿÿI‹4$I‹|$øºL‰T$(ˆL$ è´ÿÿD¶\$ L‹T$(é†òÿÿA‹4$H�=gœL‰T$(ˆL$ è­°ÿÿD¶\$ L‹T$(é]òÿÿM‹D$èˆL$@L‰T$HL‰ÇL‰D$8è¬ûÿM‹L$øH‰D$ L‰ÏL‰L$0諬ûÿI‹$I‰ÇH‰×H‰T$(è—¬ûÿH‰ÇH‹D$ J�D8HÇè2®ûÿHƒì¾H‹ ²ôH‹T$0L�xH‰¢ôH‰L‰ÿH� ,Ÿ1ÀRL‹L$@HÇÂÿÿÿÿL‹D$Hè̸ûÿZYD¶\$@L‹T$HéªñÿÿˆL$ I‹T$èA¸ÿÿÿÿI‹L$øI‹t$ØL‰T$(I‹|$ÈM‹ $è^îÿÿD¶\$ L‹T$(énñÿÿI‹t$èI‹|$؈L$ 1ÒM‹ $E‹D$ø1ÉL‰T$(è)îÿÿD¶\$ L‹T$(é9ñÿÿˆL$ M‹ $A¸ÿÿÿÿ1ÒI‹L$øI‹t$èL‰T$(I‹|$ØèðíÿÿD¶\$ L‹T$(éñÿÿI‹T$èI‹t$؈L$ 1ÉI‹|$ÈM‹ $L‰T$(E‹D$øè¸íÿÿD¶\$ L‹T$(éÈðÿÿM‹$L‰T$0ˆL$(L‰ÇL‰D$ è.«ûÿH�xèÕ¬ûÿI‰Çé_÷ÿÿH‹nóA‹$Ç@l‰PhéƒðÿÿˆL$ M‹ $A¸ÿÿÿÿ1ÿI‹L$øI‹T$èL‰T$(I‹t$Øè:íÿÿD¶\$ L‹T$(éJðÿÿH‹5ÓòL‰D$(‰T$ èŰûÿL‹D$(HcT$ éÃõÿÿƒÎé~øÿÿƒÎévøÿÿƒÎénøÿÿM‰Å»é(ñÿÿL‹L$H‹5½òH�·œH� ƒh‹±òH�=9�»H…öL‰ $HDð1ÀèCþÿL‹ $éÜðÿÿH‰\$ ‰ÓÇUòÇGòL‰D$(éEôÿÿ‰êL‹D$0f‰\$@¾úH‹\$ H‹l$(‰T$ L‰D$(ÇòèÔ¥ÿÿH‹õñ‹T$ L‹D$(D‹T$8H…À„¬H;Çñƒ#H�pD¾H‰5ÂñAƒù „šƒú@„½Aƒùÿ„�D‰T$(L‰D$0H‰\$ D‰Ëff.„¶ÃH�5³öFŒu‰ÞH�=¶›è©ûÿH…À„=¾ûè1¥ÿÿH‹RñH…À„ÑH;2ñsH�P¾H‰2ñƒû „¢ƒûÿuœH‹\$ D‹T$(L‹D$0H‹ñH‰D$Hfƒ|$@„ŠH‰\$ H�=›D‰ÓH‰l$(H�-ŠªL‰d$0I‰ÄL‰D$8ëH‹}HƒÅƒÃH…ÿ„8L‰æè¬ûÿ…ÀuàHcÃH‹l$(L‹d$0H�5GªHÁàH‹\$ L‹D$8HcTé¹óÿÿÇ‘ðéðþÿÿH‹=iðè$ªûÿ‰Ãé3ÿÿÿH‹=VðL‰D$(‰T$ èªûÿL‹D$(HcT$ ‰Çé¤ïÿÿH‹=0ðL‰D$(‰T$ èâ©ûÿL‹D$(‹T$ éòÿÿL‹D$0‰ê‰ØÇðH‹\$ H‹l$(L‰D$ ëƒúÿ„•¶ÂH�5m±·FöÄu ƒúx…&¾ú裣ÿÿH‹ÄïH…Àt(H;¨ïs\H�PH‰«ï¾ƒú u«Ç­ïë¨H‹=ˆïèC©ûÿ‰ÂëßH‹\$ H‹l$(L‹d$0L‹D$8H‹|$HL‰D$ è\šÿÿL‹D$ éËñÿÿL‹D$ H‹=VïL‰D$ è<šÿÿL‹D$ ºÇ€ïH‰qïé¬îÿÿH‹ïA‰ÙD‹T$(H‹\$ L‹D$0H…À„HƒèH‰÷îéÝýÿÿA¶ÁH�5o°·F¨u#¨„(ýÿÿH‹ÐîH…À„EHƒèH‰¼î¸@º@é.îÿÿH‹¦îL‹D$ H…À„¾HƒèH‰�îé3ÿÿÿD¶\$0L‹T$PL‰â¿H‹\$8H‹l$@H‰T$@Dˆ\$8L‹d$HL‰T$Hèê§ûÿH‹|$(H‰D$0è+¨ûÿH‹L$0D¶\$8H‹T$@L‹T$HH‰A‹D$ ‰Aék÷ÿÿÇ(îƒú@…füÿÿ· ¯¨…@ÿÿÿ¨„Oüÿÿéÿÿÿ€ƒÂL‰T$8HcúDˆ\$ èk§ûÿH‹t$0H‰FH‹îH‹t$(H‹xè£ûÿD¶\$ L‹T$8é ëÿÿ¿L‰T$@ˆL$8è*§ûÿH‹|$(H‰D$0èk§ûÿH‹L$0D¶\$8L‹T$@H‰A‹D$ ‰AH‹¡íH‹PpH‰H‰Hpé¹êÿÿD¶\$0H‹\$8H‹l$@L‹d$HL‹T$PéšêÿÿH‹=#íL‰D$0‰T$(D‰T$ èЦûÿL‹D$0‹T$(D‹T$ A‰Áé@ûÿÿH‹5óìD‰ÏL‰D$(D‰T$ èáªûÿD‹T$ L‹D$(éÅûÿÿH‹5Ëì‰×L‰D$ 迪ûÿL‹D$ éhýÿÿÇÃìé ïÿÿƒú@…�ûÿÿ·$°öÂ…Ùýÿÿ€â„wûÿÿéÀýÿÿèz¤ûÿH‹5sìD‰ÏL‰D$ èfªûÿL‹D$ é¨ýÿÿff.„�óúAWI‰ÈI‰ÿE1ÉAVAULcîATUSHƒì0H‹o`dL‹$%(L‰d$ D‹gXH�D$PH‰ïH‰L$H‰ÑD‰æèóŠÿÿZY€|$…æ‰Ã‰ÀE‰æH�€H…ít~A9ÜtyH‹|ÕH…ÿtH‹4$HƒÇH‰T$è•§ûÿH‹T$…À„¨C�D,ÿA;G\s]A)ÞH�tÕK�D­K�¶H�<ÆHÁâèO«ûÿ‰ØH‹T$dH+%(uwHƒÄ([]A\A]A^A_ÃfDC�D,ÿA;G\s D9ótÉë©fDC�D,@H‰ïH‰$A‰G\H�4€HÁæèó£ûÿE‹wXH‹$I‰G`H‰ÅD9ót�émÿÿÿf.„¸ÿÿÿÿéyÿÿÿè£ûÿ�óúAWHcöI‰×AVH�¶E‰ÆAUI‰ýATUH‰ÍSHƒìH‹G`H‹_PL�$ÐH…Ûuëx„H‹H…ÛthH�{H‰îè|¦ûÿ…ÀuèIÇD$ fïÀL‰ÿA$AD$èx¤ûÿI‰\$I‰D$I‰$L‰àE‰t$ IÇD$AƒEXHƒÄ[]A\A]A^A_ÃDH‰ïè8¢ûÿH�xèߣûÿH‰îH‰ÃI‹EPHÇCH�{H‰I‰]Pè�Ÿûÿépÿÿÿ„óúAWI‰÷AVAUATL�%Š«UHcêSHõHƒì(H‹/êH‰=(êH‰D$H9îs,fDA¶H‰ÐAöT@u€ú ”„À”ÀÂtSIƒÇL9ýuÚH‹D$H‹ÎéH‰ßéH…Ûtf�H‰ßH‹H‰³éèî�ûÿH…ÛuéHƒÄ([]A\A]A^A_Ãf.„L‰|$L9ýt¬IƒÇA½I9ïs>H‹D$¶ëD< t#IƒÇL9ý„'¶ÐA¶AöT@t<-t„ÀuÙM‰ýL+l$H�2¢¸L�5Ô“ë @L‰÷èØ ûÿHcÐL9ê0H‹|$L‰öH‰T$èžûÿ…ÀuH‹D$H‹T$¶<:t`< t\@L‹sHƒÃM…öu³I9A¶Aƺ1ÿH�5Dè? ûÿH‹t$H‰Ç1Àè`÷ýÿAˆHÇjèé�þÿÿDH‹D$L‰=DèÇ^èH�DH‰>è‹C‰MèèXãÿÿ…À…pÿÿÿHÇèI9ï‚<þÿÿé]þÿÿ€I‰íL+l$éêþÿÿºH�5Ì1ÿè�ŸûÿH‰Ç1ÀèÃöýÿHÇÐçéþÿÿóúAVAUATUH‰ýSH‰óH�5Àhèò§ûÿH‰-ÓçH‰”çÇÊçH…À„0H…Û„ÈH‰¹çǃçè’âÿÿL‹-[ç…À…£L‰ï諞ûÿH‹lçH…ÛtEff.„@‹SH‹sH‰ÝH‹=gçè ýÿÿH‹H‹}H‰4çèw›ûÿH‰ïèo›ûÿH…ÛuÊH‹#çH…Ût%ff.„H‰ßH‹H‰çè>›ûÿH…ÛuéH‹ ç[]A\A]A^Ãf„H‹ñæH…Û„­H‹;è›ûÿH‹{èÿšûÿH‹{8H…ÿtD‹s0…ö~81íff.„f�L�dmHƒÅJ‹<çèΚûÿH‹C8J‹|àèÀšûÿH‹{89k0×貚ûÿ‹K@1í…É~Rf„L�t­J�õHCHH‹PH‹8H9útH‰×è{šûÿH‹CHJ‹<ðènšûÿH‹CHHƒÅJ‹|ðè\šûÿ9k@·H‹{HE1äèKšûÿ‹SX…Ò~M@H‹C`K�,¤HÁåHèH‹H‹xH9útH‰×èšûÿH‹C`H‹|(èšûÿH‹C`IƒÄH‹|(èý™ûÿD9cX·H‹{`èî™ûÿH‹{PH…ÿt>DH‹H‰CPèÔ™ûÿH‹{PH…ÿuëë"f„H‹EH‹}H‰Cp诙ûÿH‰ïè§™ûÿH‹kpH…íuÞ‹Cx1í…ÀtDH‹ƒ€H‹<èHƒÅè|™ûÿ;kxrçH‹»€èk™ûÿH‰ßèc™ûÿL‰ïèKœûÿH‹åH…Ût&ff.„@H‰ßH‹H‰óäè.™ûÿH…Ûué1Àéðýÿÿf�¿ˆèFžûÿfvÀH�xH‰ÁHÇH‰ÃHÇ€€Hƒçø1ÀH)ù�ÁˆÁéóH«ÇCÿÿÿÿHÇCÿÿÿÿHÇChÿÿÿÿC éÙüÿÿH‰ïèé¤ûÿ1Àé€ýÿÿf�óúUH‰õSH‰ûHƒìHcVH‹6èD�ûÿ…ÀuaHcUHÓ¶€ú-t1À€ú.•À÷ØHƒÄ[]öKH�…¥öJt0H�{ff.„ff.„D¶WHƒÇ€ú.t¼„ÒuïHƒÄ¸ÿÿÿÿ[]ÃóúAUATUSHƒìdL‹,%(L‰l$I‰ýH‹=ÃH…ÿ„ÙL�% Ã1íL‰ãë'H‹{L‰îè4Ÿûÿ…Àt H‹{8HƒÃ8ƒÅH…ÿ„¤L‰îèŸûÿ…ÀuЋ¼‰D$ƒøÿtA…ÀHcí•ÀHkí8IìAˆD$(¶ÀL‰%c܉ñ»H‹D$dH+%(uHƒÄ[]A\A]Ãf�H�L$E1À1Ò1öL‰ïè ¦ûÿ‹D$ƒøÿu¢H‹D$dH+%(uEH�¼Ã¾ÚH�=”�èûàýÿºH�5´1ÿèUšûÿL‰îH‰Ç1Àèxñýÿ¿辤ûÿèyšûÿf„óúAUATA‰ôUSHƒìèJœûÿH�5OYH‰ÇI‰Åè£ûÿH…Àt\H‰Ã¿èÖ›ûÿH‰ßH‰ÅèšûÿH�xè›ûÿH‰ÞH‰EH‰Ç胗ûÿH‹¤ÞD‰e1ÿH�5ûXH‰-�ÞH‰E询ûÿH‰ÃH…Àu§HƒÄL‰ï[]A\A]éE–ûÿDóúAWAVAUATE1äUH‰ÕSH‰óHƒìH‰|$H…ÿtL‹§ðM…ät I‹<$èÖœûÿI‰ÄLc{@E…ÿtGL‹sHE1íM9ýs8K�/HÑëH�›I‹tÆH…ö„òH‰ïè*�ûÿ…ÀˆÚ„½L�kM9ýrÈ‹º…Ò…ÕH‹ÆÝH…Ûu*é„@H‹3ƒøtxH‰ïèàœûÿ…Àt}H‹[H…Û„_‹Cƒøu×M…ä„ÎH‹3L‰ç胗ûÿ…ÀtPH‹3H�=zWè�•ûÿ…Àt=H‹[H…Û„‹CƒøtÉH‹3ƒøu—ff.„@H‹D$H‹8è3—ûÿ…ÀuƒHƒÄ1À[]A\A]A^A_ÃfDI‰ßéðþÿÿI‹4Æéÿÿÿ€‹¾Ù…À…ÊM…ät]H�v˜ë@HƒÃHƒ;tFH‰ÞL‰çèëûÿÿ…Àuçë–DH‹[H…Ûtw‹Cƒø…ëþÿÿH‹[H…Ûtb‹Cƒø…ÖþÿÿëÔ@Hƒ|$…ŠH‹-ÙH‹X0H‹3H…öuéÄ@H‹sHƒÃH…ö„¯H‰ïè›ûÿ…ÀuãéÿÿÿfDHƒÄ¸[]A\A]A^A_Ã@H‹D$H‰ê¿H�5´L‹€ðH‰Á1ÀèÞûÿM…ä… ÿÿÿH‹D$H�¾–H‹8膚ûÿH�5¿‹I‰Æëf.„H‹sHƒÃH…ö„;ÿÿÿL‰÷èçšûÿ…ÀuãéþÿÿfDH�ñ•H�5ð‰ë„H‹sHƒÃH…ötHcSH‰ïè”ûÿ…Àuãé?þÿÿH‰ïH�t•诖ûÿH�5”~I‰ÇLcðf�HcCD9øL‰÷�PH)ÇHcÒHïèÓ“ûÿ…À„üýÿÿH‹sHƒÃH…öuÎéDýÿÿf„óúAV¾ATA‰üH�=W‰USHƒìè.lüÿH‹5ÇÌH�=>‰H‰Ãèø˜ûÿH‰a×H‰C0H…À„ôH‹@H‹=™ÌH‹¨˜è­œûÿH‹=†ÌI‰Æè.›ûÿH‹='×L‰ò‰ÆÿÕ„À„¸E„ätVH‹= ×H�5ûˆè0“ûÿH‰YÚH…Àt¾A H‰Çè¡ûÿ„ÀuºH�5ëTDH‹5™ÖH‹="Úè-›ûÿH‹=¶ÖH�5¬ˆèÚ’ûÿH‰ûÙH…Àt¾A H‰ÇèÁ ûÿ„Àu=ºH�5ù1ÿè •ûÿHƒÄ[H‰Ç]1ÀA\A^é&ìýÿfDºH�5,ˆëÑf�H‹=¡Ù1ö貚ûÿHƒÄH‰ß[]A\A^é€?ýÿóúAWAVAUATUSHƒì8H‹ wËH‰t$H‰T$H…É„MH‰ý�H‰ÏH‰L$裒ûÿH‹L$„À„ŠH‹™�H…Û„H‹�ÈH‰L$ H‰D$(DöC&tH�óÄH9C`„ÐL‹|$ H‰ÞH‰:ÜL‰ÿè2ŸûÿHcøèú•ûÿH‹L$(H‰ÞL‰ÿH‰ÂH‰D$èžûÿ…ÀއH‹T$ƒèL‹2L�dÂI‰ÕI‹L‹8I‹wHƒ|$„ËI‰Öë=@I‹wH‰ïIƒÅèh‘ûÿI‹>H‹L$H‰êH‰ÞèešþÿM9ìt-I‹EM‰îH‹L‹8I‹wH‹|$1É1Òèa˜ûÿH…Àu´IƒÅM9åuÓH‹|$è�ûÿH‹[H…Û… ÿÿÿH‹L$ H‹‰H…É…·þÿÿHƒÄ8[]A\A]A^A_ÄH‹L$H‰êH‰ÞL‰÷IƒÅèÙ™þÿM9åt¡M‹uI‹H‹H‹pH‰ïè—ûÿ…ÀtÊIƒÅM9ìuÝéyÿÿÿH�5­Ù1ÿºH‰L$èÔ’ûÿH‹t$HƒÄ8[H‰Ç]1ÀA\A]A^A_éçéýÿ€óúUH‰õSH‰û‰×Hƒì¶„Àt`H‰ÙL�]œI¹!ë�I£Ñs¶AHƒÁ¿„Àt2�PÞ€ú:vá¶ÐA¶RÀê<;@”Æ<,”ÀHƒÁ ð Ѓà Ƕ„ÀuÎH‰î…ÿtp¿"èF–ûÿ¶„ÀuEHƒÄH‰î¿"[]é,–ûÿ@H‰î¿\è–ûÿff.„¾;H‰îHƒÃè–ûÿ¶„Àt»<"tÎ<\uâH‰î¿\èå•ûÿëÓHƒÄH‰ß[]éò’ûÿf�óúAWAVAUATUSHƒìXdH‹%(H‰D$H1À€=èÉtÆÞÝè¹Õýÿ¶âǨu‹”µ…Ò„pL‹-ÈI‹EH‹8è}3L‰ïè…@I‹…H‹=OÙH‹€H‰yÝH…ÿ„üH�-ÉÁH9o`„ØH‹ ØÇH…É„51Òff.„f�H‹��H…Àt@PxH‹@H…ÀuôH‹‰H…ÉuØHcúHÁç蜒ûÿL‹=…ÇH‰D$0M…ÿ„NL‰l$ ÇD$(f.„L‰ÿ討ûÿ„À„èM‹·�M…ötWI‹‡ÈH‰D$L‰øM‰÷I‰Æë&DH9ètö@$t H‹X0H…Û…M‹M…ÿtI‹G`H…ÀuÖI‰o`M‹M…ÿuê�M‰÷M‹¿M…ÿu�D‹T$(L‹l$ E…Ò„¥L‹d$0IcÚºH� H‰ÞD‰T$L‰çè*ŽûÿD‹t$H‹ÜE…öŽ%H‰ØL‰æHÇÁÿÿÿÿHÁàM� ff.„ff.„f.„H‰ÏH‹H�BHƒàüHÁé HƒÀH9ùHEÐH�BHƒÂ€~HEÐHƒÆI9ñuÊH�zL‰L$IÇÇÿÿÿÿHÇÃÿÿÿÿHƒçüH‰=€Ûè‘ûÿ1ÿHÇnÛH‰_Ûë~DH�48A¾|$I‹E�áÿÁç HcÿHÏÿPhH‹9ÛH�xH‰=.ÛA€|$u)H‹5ÛI‹EHþI¿|$ ÿPhH‹ÛH�xH‰=ýÚIƒÄL;d$„H‹ßÚI‹ $H+ äÚI‰ÎI�æðÿÿI9Þ„iÿÿÿ@öÇt&H�W€H‰ÖÆDÿH‰×H�RƒæuìH‰=�ÚIƒÿÿt J�t8I‹EH‰L$L)ÿÿPPH‹tÚH‹L$HpÚH‰L$L‰÷L‰óH‰ÆI‹EÿPPL‹=TÚH‹EÚH‹L$I�H‰==ÚéØþÿÿƒà<tH‹ZÒ‹@@…À…wüÿÿ€L‹-�ÒM…í„ÕH�5ÅrL‰ïèA–ûÿH‰ÃH…À„ƒH‹ÒH…À„ Hƒ8toD‹HH‰ÙE…É…uº¾H�='|è ˜ûÿH‹ÚѺH‰ÞH‹8è¢úÿÿH‹ ÄH‹€H‹ˆH…É…�H‰Þ¿ è—�ûÿH‹˜ÑHƒxtEH‰Ùº ¾H�=Ð{è —ûÿH‹qѺH‰ÞH‹xè8úÿÿH‰Þ¿ èK�ûÿH‹LÑD‹@l‹HhAƒøÿ„\H�”{¾H‰ß1Àè]—ûÿH‹Ñƒx ÿu ‹P(ƒúÿ„b H‰Þ¿ è÷ŽûÿH‹øÐ‹H$‹P ƒùÿ…K ƒúÿt‰Ñ¾H�f{1ÀH‰ßè—ûÿH‹ÅÐD‹@,‹H(Aƒøÿ„I H�M{¾H‰ß1ÀèÖ–ûÿH‹—ÐD‹@0E…À�R ‹p@…ö��‹PX…Ò�AH‰ß蔋ûÿƒøÿ„üH‹=¤ÂH�5§{èxŽûÿH‰ÂH…Àt ‹@$ƒàïƒÈ ‰B$H‹D$HdH+%(…³HƒÄX[]A\A]A^A_Ã@öÇt&H‹ Ô×H�GH‰ÂÆDÿH‰ÇH�@ƒâuìH‰=½×IƒÿÿtH‹¨×L)ÿJ�t8I‹EÿPPH‹=jÓH‹5“×H…ö….H…ÿt¾ÀèÓ–ûÿH‹DÓH‰h`Hƒ=@Ó„§H‹=SÏèîŒûÿ‹XÏH‰ÁH‰V×H�@(D�$�H‰D$H‰ÏMcäJ� ‹1ÏH‰\$�…HcÒH�4�H‹ÏHcÛH‰t$Hó1öè^ŒûÿH‰ÁI‹…‹€¬ƒøÿ„3HcøI‹EH�qÿ�˜H‹õ΋@hƒøÿt2HcøH‹ ÃÖI‹EH�qÿPhH‹±ÖH�p H‹ÆÎHcxlI‹EÿPhH‹\ÒH‹�ÖH‹R`H�p H‹z0H‰ÚH+=oÖH)ÂI‹EH×ÿPPH‹5SÎH‰ß資ûÿH‰ßè+ŠûÿHc=LÎH‰ÅH‹BÖH�pI‹EÿPPH‹0ÖHc=!ÎH�pI‹EÿPPH‹ÖHc= ÎH�pI‹EÿPPH‹ÆÑH‹÷ÕH‹R`H�pH‹z0H‹T$H+=×ÕH)ÂI‹EH×ÿPPH‹“ÑH‹ÄÕH‹R`H�p H‹z0H‹T$H+=¤ÕH)ÂI‹EH×ÿPPH‹`ÑH‹‘ÕH‹R`H�p$H‹z0H‹T$H+=qÕH)ÂI‹EH×ÿPPL‹=…ÍE‹g@E…äŽxH�l+L�5d¿1ÛL‰úëkDAÆ$_H‹@HI�|$J‹tø耆ûÿI‹~(1É1ÒA¸L‰æèú‹ûÿH…Àt€xuH‹P0H‹ ÍH‰ØL‰çHƒÃèD…ûÿH‹Í‹B@9ØŽx H‹BHL�<›J‹|øè ˆûÿH�xèGŠûÿI‰ÄH‹ÕÌH‹PHJ‹túH‹ÝÌ€z(t €>@…VÿÿÿL‰çèæ…ûÿéaÿÿÿ�L‰þL‰÷M‹gXè1“ûÿHcøèù‰ûÿH‹L$L‰þL‰÷H‰ÂI‰Åè’ûÿ…ÀŽ�J� #L‰l$ƒèH‰L$M�dÅD‹~Ì…À…rI‹UH‹Bö@…@‹H‹GÌ;H„.;Hr 9Hƒ ;H„H‹H‹|$ E1ÉE1À1ÉH�5ð½H‹H‹Sè„…ûÿH‰Â�{€„4H‹C H9h`„®H…ÒtAH‰×H‰T$8èTÉýÿ„Àt0H‹T$8öB„±H‹[H�5¯oH‰ßè.‹ûÿ…À…Ú fDH‹5!ÏI‹EHcL$(H‹T$H‹v`HPH‰ËHÁáHL$0H‰‰Y H;V0ƒïH‹p·^‹FfÁëÁè ƒãƒà?iÓè Ð=Â]„$�–=€>„K=�>…1ÀƒD$(ÆAf‰A �IƒÅM9ì…“þÿÿL‹l$L‰ïèƒûÿé!öÿÿ�I‹EH�5§t¿H‹H‹H‹P1Àèß�ûÿéhþÿÿf.„H…Àt«¶@<„?<„ÿÿÿë•D=’e„Å=}……ƒD$(ÆAélÿÿÿ@I‹G`º1ÿH‰L$8H�5‘#H‹èÉ…ûÿH‰ÇH‰Þ1ÀèìÜýÿI‹EH‹L$8é×þÿÿfDI‹?H�5ùs詉ûÿ…À…�þÿÿé ÿÿÿ@H‹¡ÍH‹ÒÑH‰� ¶Ü»‰Â÷ÒƒâuI‹•Ç‚`L‹-½M…í„r÷ÿÿH‹-³ÉD‹]@E…Ûu¨„Z÷ÿÿL‰ïèB‹ûÿ1öL‰ï訌ûÿH‰D$H…À„4 €=”Á…1 H‹\$¾H‰ß苉ûÿ€KI H‰ß1Ûè}kL‹%¦»I‰ÆM…ä„¡H‰l$DL‹=áÌM…ÿtu@¸1ÒAƒuI‹4$I‹?èvƒûÿ…À”•ÀM‹M…ÿt„ÀuÑ„Òt>I‹„$ðH…ÀIDÄ1öH‹8èÔƒûÿI‰ÇH…À„Y Iƒ¼$ð…ÁI‰ŸøL‰ûM‹¤$M…ä…nÿÿÿH‹l$D‹U@E…ÒŽ:L‰l$E1ÿL‰t$ I‰îff.„�H‹qÈK�¿H�,ÅH‹RH€| …äI‹FHH‹=kºE1À1ÉHèH‹L‹`H‰PL‰æ1Òèö†ûÿH…Àt €xBj„i H‹0È€x(tsA€<$@tlL‰ç軃ûÿH�xèb…ûÿM‰à¾H� iZI‰ÅH‰ÇHÇÂÿÿÿÿ1Àè�ûÿH‹=ð¹1É1ÒE1ÀL‰îL‰l$脆ûÿH‹|$I‰ÅèçûÿM…ít A€}Bj„ I‹~H1ÒH‹t$Hï€#”ÂèMoI‹VHH‰˜øH‰ÃL‰d*IƒÇE9~@�ìþÿÿL‹l$L‹t$ L‹|$L‰ÿèÅlI‰žøL‰ÿL‰°øH‰Æè|�ûÿ„À„ H‹|$èš‹ûÿ„À…ÒôÿÿL‰îH�=0qèÃÙýÿé¾ôÿÿfD‹…À„þûÿÿƒø„õûÿÿ1ÿºH�5g èb‚ûÿ‰ÞH‰Ç1Àè†ÙýÿéÑûÿÿ�ƒD$(ÆAéÂûÿÿf�ƒD$(ÆAé²ûÿÿ‹H$ƒùÿ„þ A‰È¾‰ÑH‰ßH�q1À軌ûÿH‹|ÆD‹@,‹H(Aƒøÿ…·õÿÿƒùÿ„ËõÿÿH�q¾H‰ß1À脌ûÿH‹EÆD‹@0E…ÀŽ®õÿÿH�=ôpH‰Ùº ¾èGŒûÿH‹Æ‹x0…ÿŽƒõÿÿ1íL�%ÓpëIf.„€x… €x…4€x…[H‰Þ¿ HƒÅèÁƒûÿH‹ÂÅ9h0Ž/õÿÿH‰Ùº¾L‰çèÌ‹ûÿH‹�ÅH�DmH‰ÞL�4ÅH‹R8H‹<Â1ÒèVîÿÿH‹wÅH‹H8LñH‰ÈHƒytDH‰Ùº¾H�=&pèu‹ûÿH‹FÅ1ÒH‰ÞH‹@8J‹|0è îÿÿH‹,ÅH‹H8LñH‰È€x„ ÿÿÿH‰Ùº¾H�=àoè'‹ûÿH‹øÄH‹H8LñH‰È€x„öþÿÿH‰Ùº¾H�=²oèóŠûÿH‹ÄÄH‹H8LñH‰È€x„ÌþÿÿH‰Ùº¾H�=…o迊ûÿH‹�ÄLp8L‰ð€x„¥þÿÿH‰Ùº¾H�=]o莊ûÿé‡þÿÿf„€zBi…Vùÿÿ€zC…LùÿÿH‹BHH‹RPH‹€‹H‹€€H‹ÐH…À„'ùÿÿ€x„ùÿÿH9h(…ƒøÿÿéùÿÿfD1Ò¾H‰Çèùˆûÿ„À„1íëDH‹}è?~ûÿ…À„”H‰îL‰ÿèŠûÿI‹4$H‰ÅH…ÀuØI‹„$ðI‰÷1ÿºH�5§H‹èûÿL‰úH‰ÇH‰Þ1Àè?Öýÿé:ñÿÿ…ÀŽzùÿÿÇD$ E1öI‰Ôé7€€x$„VH‹÷ƉÞ+5'ÃÁæH‹@`HcöHt$H‹x0H‰èH+=ËH+ËHÇI‹EÿPPL‹%ÃH‰ïI‹D$HJ‹t8è8|ûÿI‹t$HLþH‹~H‰t$(è¢~ûÿH‹t$(H�l€~"…—L‹fM…ä„%H‹ jÆH‹t$H‹I`H‹y0H‰éH+=ƒÊH+ „ÊHÏI‹MÿQPL‰æH‰ïHƒD$èÁ{ûÿH‰ïè9~ûÿ+[ÂHcûH�lH‹\$I‹EH‰ÞÿPhL‹%]ÂH�C‹\$ H‰D$I‹D$HB‰\8�C‰D$ IƒÆE9t$@Ž0øÿÿI‹D$HK�¶L�<ÕLø‹Xƒûÿ…°þÿÿL‹% ÂëÈ€H‹áÁJ‹ðH…ÀtàH‹ ÙÁ‰Þ+5ÁÁÁæJ‹<ñH+=«ÉHcöHxXH‹@`Ht$Hx0I‹EÿPPL‹%±ÁI‹t$HLþéÄþÿÿL‹&éÓþÿÿH‹5eÉH…ö„ìñÿÿèï‚ûÿèª(ýÿ¾1ÿè.)ýÿH‹G±ÿP@1ÒH�L$GÆD$GH‹5I¸H‹=ê¯HÇ?²ƒ<·ÆÙºÇ'±èÂoýÿH‹ÃÄH‹äÈH‰� épñÿÿºH�5TÃ1ÿL‹l$ è€|ûÿL‰þH‰Ç1Àè£ÓýÿH‹=„Äéñÿÿƒùÿ„¸ïÿÿH�>k¾H‰ß1Àèø†ûÿH‹¹Àé–ïÿÿH‹ÅÀH�5«dH‰ß€x(H�œdHEðè'€ûÿ…À„ÿôÿÿéŠõÿÿº¾H�=©j蔆ûÿé†îÿÿ1ÿºH�5WèÜ{ûÿL‰îH‰Ç1ÀèÿÒýÿéßïÿÿ1ÿéëÿÿI‰ïér÷ÿÿº H‰Ù¾H�=HkèB†ûÿH‹À‹BX…ÀŽ”ïÿÿE1öL�%Íjë^@1ÒH‰ÞèÆèÿÿHƒ}t'º¾H�= kH‰Ùèö…ûÿH‹}1ÒH‰Þè˜èÿÿH‰Þ¿ IƒÆè§}ûÿH‹¨¿D9rXŽ*ïÿÿH‹R`K�¶H‰Ù¾L‰çH�,º襅ûÿL‹}M…ÿt;H‹uH…öt L‰ÿèû~ûÿ…Àt&1ÒH‰ÞL‰ÿè*èÿÿH‰Ùº¾H�=°Yèa…ûÿH‹E1ÒH‰ÞH�xèÿçÿÿ¿.H‰Þè}ûÿH‹}H…ÿ…ÿÿÿ‹M H� 7H‰ß1À¾è,…ûÿéÿÿÿH‰Ùº¾H�=Õièþ„ûÿH‹Ͼ‹H@…ÉŽEîÿÿE1öL�%‰iH‰ÂëED€}!…Ê€}"…ã€}#…üH‰Þ¿ IƒÆèy|ûÿH‹z¾D9r@Ž$H‹RHK�¶H‰Ù¾L‰çH�,ºèw„ûÿH‹}1ÒH‰ÞèçÿÿH‹}H…ÿtH‹uèÇ}ûÿ…À…¯‹MƒùÿtH�i¾H‰ß1ÀèA„ûÿ€} „OÿÿÿH‰Ùº¾H�=óhè„ûÿ€}!„6ÿÿÿH‰Ùº ¾H�=Ùhèëƒûÿ€}"„ÿÿÿH‰Ùº¾H�=Àhèȃûÿ€}#„ÿÿÿH‰Ùº¾H�=¥h襃ûÿéæþÿÿH‰Ùº¾H�=ÖW臃ûÿH‹}1ÒH‰Þè)æÿÿé%ÿÿÿH‰ÐéÅìÿÿ1ÿºH�5#gè¹xûÿL‰îH‰Ç1ÀèŒÍýÿéªóÿÿH�_g¾H‰ß1ÀèAƒûÿéXëÿÿ1ÿºH�5/hèyxûÿ¾H‰ßH‰Â1Àèƒûÿéfìÿÿ1ÿè«zûÿH‰ÇH‹©ÄH�pI‹Eÿ�˜éºíÿÿH� ×§H9H(…†ôÿÿé.õÿÿD‹@,Aƒøÿ„ûëÿÿéÙëÿÿH�®§I9U(…ÝôÿÿéõÿÿI‹$1ÿºH�5mfèèwûÿH‰ÇH‰Þ1Àè Ïýÿéêÿÿ1ÿºH�5ðèÃwûÿL‰îH‰Ç1ÀèæÎýÿéáéÿÿH�=ZèÕÎýÿéìôÿÿH�zHƒçüH‰=ÙÃèlyûÿH‹=�¿HÇÂÃH‰³Ãé,ìÿÿI‹„$ðI‹,$1ÿºH�5œH‹èLwûÿH‰êH‰ÇH‰Þ1ÀèlÎýÿégéÿÿH‹5xÃH…ö„êëÿÿéúÿÿ1ÿºH�5äèwûÿL‰îH‰Ç1Àè2ÎýÿéXéÿÿè8wûÿ„óú€uƒ¸¸Ãf„óúH‹H‹¸H9Êr#¸ÿÿÿÿH9Ñr‹V ‹O 1À9ÑœÀ÷Ø9ѺOÂÄóú€uƒ·º¸Ãf„óúÃff.„óúUSHƒìH‹-Ÿ¢H…ít/f.„‹]ƒëxHcÛDÿTÝHƒë…ÛyôH‹mH…íuÛHƒÄ[]Ã@AWAVA¾AUA‰õATUSHƒìHcw09wP„£H‰ûH‹@HÁæH‰T$I‰ÌèÔvûÿH‰C@ö…—D‹{PD;{0�©IcïA¾HÁåff.„�H‹KHH‹s8E‰èH‰ßH‹ƒ€H…ÉH�é‹4.HEÊH‹S@HƒìH‹@ ATL‹L$AƒÇHêHƒÅÿÐ÷ÐÁèA!ÆXZD9{0­D‰{PHƒÄD‰ð[]A\A]A^A_ÀHcs0H‹{HHÁæèvûÿH‰CHéOÿÿÿfDA¾ë»„óúH‹6H‹?éyûÿ�óúH‰úH‹H‰ðH…ÿtH‹pH…ötéßxûÿ€H‹pH‹:H…öuèH‹0éÄxûÿ@óúH‹6H‹?é±xûÿ�óú€t¸ÃHƒì(Hc ½µH‰úH‹H‰T$HÁáH žµH‰L$è”vûÿH‹L$¾@H‰Hc ˆµ1À‰L$HÁáH oµH‹9H‰L$€?@”ÀHÇèÉtûÿH‹L$D‹D$H…ÀH‹T$tÆ@H‹BAƒÀD‰:µH‰A¸HƒÄ(Ã@óú€t¸ÃHƒì(Hc ¸H‰úH‹H‰T$HÁáH î·H‰L$èäuûÿH‹L$¾@H‰Hc Ø·1À‰L$HÁáH ¿·H‹9H‰L$€?@”ÀHÇètûÿH‹L$D‹D$H…ÀH‹T$tÆ@H‹BAƒÀD‰Š·H‰A¸HƒÄ(Ã@óo*fïö‰ñI‰ðf:"rJH�7IÁè fpåH9ñ‰JDBfoÎfoÄH9ǃ�fo-ù|f„óofoÆfoÔfoÜHƒÇ@f8ÍfþÁ:ÌÐóoGÐfDoÂf8Å8ÈØ8ÉÈD:ÌÃóo_àfAoøfEoÈf8Ý8ÈÓfïË8ÉÃ:ÌúóoWðfDoÇf8Õ8ÊÊD8ÈÊ8ÉÚE:ÌÁ8ÈùfïÂfDoÏfAoø8ÊÁA:ÌùfïÙfEoÈ8ÊØD8ÈÈfDoÇE:ÌÁ8Èû8ÉÑfDoÏ8ÉÈfïÐfAoø8ÊÓfïËA:ÌùfEoÈ8ÊÊD8ÈÊfDoÇ8ÉÃE:ÌÁ8Èù8ÉÚfDoÏfïÂfAoø8ÊÁA:ÌùfïÙfEoÈ8ÊØfDoÇD8ÈÈ8Èû8ÉÑE:ÌÁ8ÉÈfDoÏfïÐfAoøfïË8ÊÓA:ÌùfEoÈ8ÊÊD8ÈÊfDoÇE:ÌÁ8Èù8ÉÃfDoÏ8ÉÚfïÂfAoø8ÊÁfïÙA:ÌùfEoÈ8ÊØD8ÈÈfDoÇ8ÉÑE:ÌÁ8Èû8ÉÈfDoÏfïÐfAoø8ÊÓA:ÌùfïËfEoÈ8ÊÊfDoÇD8ÈÊ8Èù8ÉÃE:ÌÁfïÂfDoÏfAoø8ÊÁ8ÉÚA:Ìù8ÉÑD8ÈÀfïËfoß8ÊÈA:ÌØfïÂ8ÊÁ8ÈùfoË:ÌÏ8ÈØfoÁ8ÈÎ:ÌÃfoñfþÄfoàH9Ç‚‚ýÿÿfpÀf:JÃf�óúAUI‰ÕATI‰ôUSH‰ûHƒì‹B…À…Iƒü?†íI‰ÛöÄÈIƒü@„M�T$¿I�m IÁêM�JIÁáIÙfDóoL‰ê¾@H‰ïHƒÃ@EóoCÐEóoCàE óoCðE0è‰üÿÿL9ËuÄI÷ÚI�[@IÁâO�dÀL)ÓA‹uD‰âH�D5AƒüƒÃAöÄ…>E…ät¶ˆAöÄ…;IôIƒü?‡“E‰eHƒÄ[]A\A]Ã�L‰æH‰ßL‰êAƒä?HƒæÀè üÿÿHóM…ä…HƒÄ[]A\A]ÉÁ¸€H�j H)ÈH�| H‰L$H9ðHGÆH‰ÞH‰ÂH‰$èÒsûÿE‹ML‹$H‹L$EÁAƒù@E‰Mw`LÃM)ÄéŸþÿÿDH‹H‰D‰âH‹LøH‰LøH�HHƒáøH)ÈA�H)Ãƒâøƒú‚*ÿÿÿƒâø1À‰ÇƒÀL‹;L‰99Ðrïéÿÿÿ@D‰ÎL‰êH‰ïL‰D$ƒæÀH‰ $è.ûÿÿH‹ $L‹D$D‰Êƒâ?J�A‰UHƒàÀHèƒúƒ—AöÁ…×…Ò„Mÿÿÿ¶AƒáAˆM „<ÿÿÿ·Dþf‰Dþé-ÿÿÿDA‹EóoI�m DóoCL�`@DóoC D óoC0D0L‰êH‰ï¾@Iƒì@è‰úÿÿI�u`L‰âH‰ïèºuûÿéEþÿÿDH‹I‰M ‰ÑH‹tøH‰t øI�M(HƒáøH)ÍêH)èƒâøƒú‚™þÿÿƒâø1ö‰÷ƒÆL‹ 8L‰ 99Örïé~þÿÿ‹A‰M ‹Dü‰Düékþÿÿ‹ ‰‹Lü‰LüéÅýÿÿD‰â·Lþf‰Lþé³ýÿÿI�m évýÿÿ€óúPXH� _+¾1ÀH�ƒJHƒìH‹=êŸè¥wûÿ¿èkwûÿff.„óú‰÷éõnûÿDóúH‰÷1À1öé uûÿóúƒùH‰÷º¶ö1À�æþÿÿ�ÆAéütûÿff.„�óúAWM‰ÇAVA‰öAUE‰ÍATUSH�ìèH‰T$H�¬$€L‹¤$8H‰L$H‰ïdH‹%(H‰œ$ØH‹œ$@ÇD$,ÿÿÿÿÇèùoûÿ…Àt=‰H�ƒbI‰$‹D$,H‹”$ØdH+%(…NH�Äè[]A\A]A^A_þ@H‰ïèkvûÿ…À„Ó‰H�FbI‰$H‰ïèÎjûÿ‹ …É”ÀE…ít"„ÀtD‰ïèÆmûÿ…À….‹…Ò”À€ƒ¼$ t9„Àt5‹¼$ è–mûÿ…À„ÖH�3bI‰$èŽhûÿÇD$,ÿÿÿÿ‹…À‰”Àƒ¼$(„'ÿÿÿ„À„ÿÿÿ‹¼$(èKmûÿ…À„ ÿÿÿH�èaI‰$èChûÿ‹‰¸ÿÿÿÿéñþÿÿDH�D$0H‰ÇH‰D$èþgûÿ…ÀubE…í…Aƒ¼$ „¬‹´$ H‹|$ºèÝuûÿ…Àty‰H�ÈèI‰$H‹|$èRjûÿé×þÿÿD‹…À”Àé?ÿÿÿ@‰H�aI‰$é°þÿÿfDH�5aI‰$è�gûÿÇD$,ÿÿÿÿ‹…À‰”Àéºþÿÿf.„‹´$ H‹|$è/uûÿ…À…$(…©‹´$0…ö‰êAöÆ…0M…ÿL‰øL‹D$H‹T$HD8˜AƒæH‹t$H‰éH�|$,I‰Á„Îè¹pûÿ…À„ÿÿÿ‰H�k`I‰$ÇD$,ÿÿÿÿéûþÿÿ€H‹|$1ÒD‰îè±tûÿ…À…ÐþÿÿH‹|$D‰îè|tûÿ…À„“þÿÿë9f�‹´$(H‹|$ºèztûÿ…À…™þÿÿ‹´$(H‹|$èAtûÿ…À„ ÿÿÿ‰H�pçI‰$é{þÿÿ€‹´$0H‹|$ètûÿ…À„ýþÿÿëÌDè rûÿ…À„Gþÿÿ‰H�ª_I‰$ÇD$,ÿÿÿÿé-þÿÿf„H‹|$º¾èÜsûÿ…À„´þÿÿéöýÿÿèêhûÿf.„óúAW‰÷I‰ÒM‰ÏAVSH‰ËH�ì°dL‹4%(L‰´$¨L‹´$ÐE…ÀuWH…ÛtsH�L$1ÒL‰ÖèCpûÿfoD$foD$ C…ÀxY1ÀH‹”$¨dH+%(u_H�İ[A^A_Ãf.„¾‰|$H‰T$è mûÿL‹T$‹|$H…Ûu�1ÒL‰Öè%pûÿë£èeûÿH�5©^‹A‰¸ÿÿÿÿI‰7ëŽèhûÿóúH‰÷éjûÿ@óú‰÷H�5ü0éînûÿff.„óúS‰ó1Àº¾‰ßèvfûÿ…Àx‰ßH�5uL[é³nûÿ1À[Ãff.„�ATUSH‰ûHƒì@dL‹$%(L‰d$8I‰ôH‰|$èZgûÿH‰Ú�hóAo$D$ I‹D$H‰D$0ë/ff.„ff.„€HƒÂH‰T$H‰Ó€zÿ%t7€:uéH‹D$8dH+%(…7HƒÄ@‰è[]A\Ãf.„HƒÃH‰\$¾3H�=t]A‰ôè5gûÿH…ÀuàA€ü*…΋D$ H�SH‰T$ƒø/‡ð‰ÁƒÀHL$0‰D$ ‹‰Ã÷ÛHضë<.„ºL�b1öfDL‰âÿà…öuC‹D$$=¯wYƒÀ‰D$$�«Ré?þÿÿH‹L$(H�AH‰D$(é–þÿÿH‹L$(H�AH‰D$(éDÿÿÿH‹D$(�«bHƒÀHƒàðHƒÀH‰D$(éøýÿÿHƒD$(ë¦�H—¿HÓçH‰ø÷ÇA�…\ÿÿÿ¨ „ÕþÿÿéµýÿÿèÉcûÿf„óúATA‰ÔUH‰ýSè aûÿD‰æ�Î H‰ÇH‰ÃèùnûÿH‹EH‰[`H‰ïÇC|ÿ�Hc¤�J‰ ¹¤H‹ ª¤H‰ÑH‹H‰X H‰PÇ@HÇ@H‰Ø[]A\Ã@óúAWAVM‰ÆAUI‰ýH‰÷ATI‰ÔUH‰ÍSHƒìD‰L$ H‰4$ècûÿL‰çI‰ÇèöbûÿH‰ïH‰ÃèëbûÿI�|HÇèŽdûÿH‹4$H‰ÃH‰ÇèO`ûÿL‰æH‰ßè¤lûÿH‰îH‰ßè™lûÿI‹EL‰ïÿ�Hcý£D‹L$ H‰X�JL‰p ‰ ç£H‹ Ø£D‰HHÇ@H‰ÑHƒÄ[]A\A]A^A_Ãf„óúUfHnÆHcéI‰øSHƒì(‹5ɯHc¾¯H‹=¯¯�Nÿ9ÁFƒÆ ‰T$‰5§¯HcöL‰D$HÁæ)$H…ÿtvèÙbûÿfo$L‹D$H‰p¯H‰Ç‹T$Hcj¯HÁà‰ÖH�L‰ÇCè$bûÿH‹ £H‰CHcB¯H� éH‰ÂHÁàH(¯ƒÂH‰‰$¯HƒÄ([]ÃDH‰÷è@cûÿ‹T$L‹D$H‰ø®H‰Çfo$Hcñ®ë…ff.„@óúH‹Í®SH‰ûH‰Gh‹Ç®‰Gx�xHcÿHÁçèåbûÿ‹ ¯®H‰CpH‰ÇHcñ…É~1HcñH‹ChH‰úH‰ñHÁáHÁff.„f�H‰HƒÀ HƒÂH9ÈuðƒK$HÇ÷[HÇP®ÇR®ÇD®ÃóúAUºH� [WATI‰üUSH�ì(H‹D‹®dL‹,%(L‰¬$I‰õH�\$¾H‹H‰ßH‹(A�@‰Õ­1ÀèîlûÿH‰ßèV`ûÿL‰êH)ƒøs+¨…Ã…ÀtO¶L$ˆ ¨tD‰À·Lþf‰Lþë6fDH‹L$H�zHƒçøH‰ ‰ÁH‹t øH‰t øH‰ÑH)ùH)ËÁH‰ÞÁéóH¥H‹EH�L$M‹L$H‰îHÇD$L‹¯§H�=–H‹€xQ¹jjjÿ�8H‹D$(HƒÄ H‹@H‹”$dH+%(u$H�Ä([]A\A]Ã�‹L$‰À‰ ‹Lü‰Lüé{ÿÿÿèv_ûÿfDóúUH‰õ¾SH‰ûH‰ïHƒìè35üÿH‰X0H‰ÇèÇ ýÿH‹CH�5l•H‰ßÿ�È„ÀtHƒÄ[]ÄH�5¾U1ÿºèÍ^ûÿHƒÄH‰îH‰Ç[1À]éêµýÿf.„óúUHcöSH‰ûHƒìdH‹,%(H‰l$H‰Õ1ÒèXkûÿ…Àt$ÆE1ÀH‹T$dH+%(u,HƒÄ[]ÀH�|$H‰Ú¾è>dûÿHƒøuÄ‹D$ëÄè}^ûÿff.„f�óú‹5:…öxJHƒìH‹GH‹€xÿPx„Àt HƒÄÀ1ÿºH�5ZÜèí]ûÿHƒÄH‰Ç1Àéµýÿ€Ã€óúAUATUSHƒìdL‹,%(L‰l$I‰ýH‹=ŠH…ÿ„ÙL�% Š1íL‰ãë'H‹{L‰îè”aûÿ…Àt H‹{8HƒÃ8ƒÅH…ÿ„¤L‰îètaûÿ…ÀuЋª�‰D$ƒøÿtA…ÀHcí•ÀHkí8IìAˆD$(¶ÀL‰%á‰}�H‹D$dH+%(uHƒÄ[]A\A]Ãf�H�L$E1À1Ò1öL‰ïèlhûÿ‹D$ƒøÿu¢H‹D$dH+%(uEH�¼�¾ÚH�=ôOè[£ýÿºH�5Ú1ÿèµ\ûÿL‰îH‰Ç1ÀèØ³ýÿ¿ègûÿèÙ\ûÿf„óúAUATA‰ôUSHƒìèª^ûÿH�5¯H‰ÇI‰ÅèheûÿH…Àt\H‰Ã¿è6^ûÿH‰ßH‰Åè{\ûÿH�xè"^ûÿH‰ÞH‰EH‰ÇèãYûÿH‹T¤D‰e1ÿH�5[H‰-@¤H‰EèeûÿH‰ÃH…Àu§HƒÄL‰ï[]A\A]é¥XûÿDóúAWAVAUATE1äUH‰ÕSH‰óHƒìH‰|$H…ÿtL‹§ðM…ät I‹<$è6_ûÿI‰ÄLc{@E…ÿtGL‹sHE1íM9ýs8K�/HÑëH�›I‹tÆH…ö„òH‰ïèŠ_ûÿ…ÀˆÚ„½L�kM9ýrÈ‹•…Ò…ÕH‹v£H…Ûu*é„@H‹3ƒøtxH‰ïè@_ûÿ…Àt}H‹[H…Û„_‹Cƒøu×M…ä„ÎH‹3L‰çèãYûÿ…ÀtPH‹3H�=ÚèðWûÿ…Àt=H‹[H…Û„‹CƒøtÉH‹3ƒøu—ff.„@H‹D$H‹8è“Yûÿ…ÀuƒHƒÄ1À[]A\A]A^A_ÃfDI‰ßéðþÿÿI‹4Æéÿÿÿ€‹Ÿ…À…ÊM…ät]H�6cë@HƒÃHƒ;tFH‰ÞL‰çèK¾ÿÿ…Àuçë–DH‹[H…Ûtw‹Cƒø…ëþÿÿH‹[H…Ûtb‹Cƒø…ÖþÿÿëÔ@Hƒ|$…ŠH‹�žH‹X0H‹3H…öuéÄ@H‹sHƒÃH…ö„¯H‰ïèß]ûÿ…ÀuãéÿÿÿfDHƒÄ¸[]A\A]A^A_Ã@H‹D$H‰ê¿H�5×L‹€ðH‰Á1Àè#aûÿM…ä… ÿÿÿH‹D$H�~aH‹8èæ\ûÿH�5NI‰Æëf.„H‹sHƒÃH…ö„;ÿÿÿL‰÷èG]ûÿ…ÀuãéþÿÿfDH�±`H�5PLë„H‹sHƒÃH…ötHcSH‰ïèwVûÿ…Àuãé?þÿÿH‰ïH�4`èYûÿH�5ô@I‰ÇLcðf�HcCD9øL‰÷�PH)ÇHcÒHïè3Vûÿ…À„üýÿÿH‹sHƒÃH…öuÎéDýÿÿf„óúAV¾ATA‰üH�=·KUSHƒìèŽ.üÿH‹5'�H�=žKH‰ÃèX[ûÿH‰ÁœH‰C0H…À„ôH‹@H‹=ùŽH‹¨˜è _ûÿH‹=æŽI‰ÆèŽ]ûÿH‹=‡œL‰ò‰ÆÿÕ„À„¸E„ätVH‹=lœH�5[Kè�UûÿH‰  H…Àt¾A H‰Çèwcûÿ„ÀuºH�5ÕëTDH‹5ù›H‹=ÒŸè�]ûÿH‹=œH�5 Kè:UûÿH‰«ŸH…Àt¾A H‰Çè!cûÿ„Àu=ºH�5YÕ1ÿèjWûÿHƒÄ[H‰Ç]1ÀA\A^醮ýÿfDºH�5ŒJëÑf�H‹=QŸ1öè]ûÿHƒÄH‰ß[]A\A^éàýÿóúAWAVAUATUSHƒì8H‹ ×�H‰t$H‰T$H…É„MH‰ý�H‰ÏH‰L$èUûÿH‹L$„À„ŠH‹™�H…Û„H‹�ÈH‰L$ H‰D$(DöC&tH�S‡H9C`„ÐL‹|$ H‰ÞH‰"¤L‰ÿè’aûÿHcøèZXûÿH‹L$(H‰ÞL‰ÿH‰ÂH‰D$èb`ûÿ…ÀއH‹T$ƒèL‹2L�dÂI‰ÕI‹L‹8I‹wHƒ|$„ËI‰Öë=@I‹wH‰ïIƒÅèÈSûÿI‹>H‹L$H‰êH‰ÞèEòþÿM9ìt-I‹EM‰îH‹L‹8I‹wH‹|$1É1ÒèÁZûÿH…Àu´IƒÅM9åuÓH‹|$èyRûÿH‹[H…Û… ÿÿÿH‹L$ H‹‰H…É…·þÿÿHƒÄ8[]A\A]A^A_ÄH‹L$H‰êH‰ÞL‰÷IƒÅè¹ñþÿM9åt¡M‹uI‹H‹H‹pH‰ïènYûÿ…ÀtÊIƒÅM9ìuÝéyÿÿÿH�5 œ1ÿºH‰L$è4UûÿH‹t$HƒÄ8[H‰Ç]1ÀA\A]A^A_éG¬ýÿ€óúATA‰ÔUH‰ýSè�RûÿD‰æ�Î H‰ÇH‰Ãè‰`ûÿH‹EH‰[`H‰ïÇC|ÿ�HcR™�J‰ I™H‹ :™H‰ÑH‹H‰X H‰PÇ@HÇ@H‰Ø[]A\Ã@óúAWAVM‰ÆAUI‰ýH‰÷ATI‰ÔUH‰ÍSHƒìD‰L$ H‰4$è‘TûÿL‰çI‰Çè†TûÿH‰ïH‰Ãè{TûÿI�|HÇèVûÿH‹4$H‰ÃH‰ÇèßQûÿL‰æH‰ßè4^ûÿH‰îH‰ßè)^ûÿI‹EL‰ïÿ�HcT$PD‹L$ H‰XH‰PHc{˜L‰p �JD‰H‰ j˜H‹ [˜H‰ÑHƒÄ[]A\A]A^A_ÄóúUfHnÆHcéI‰øSHƒì(‹59¡Hc.¡H‹=¡�Nÿ9ÁFƒÆ ‰T$‰5¡HcöL‰D$HÁæ)$H…ÿtvèiTûÿfo$L‹D$H‰à H‰Ç‹T$HcÚ HÁà‰ÖH�L‰ÇCè´SûÿH‹ ­—H‰CHc² H� éH‰ÂHÁàH˜ ƒÂH‰‰” HƒÄ([]ÃDH‰÷èÐTûÿ‹T$L‹D$H‰h H‰Çfo$Hca ë…ff.„@óúH‹= SH‰ûH‰Gh‹7 ‰Gx�xHcÿHÁçèuTûÿ‹  H‰CpH‰ÇHcñ…É~1HcñH‹ChH‰úH‰ñHÁáHÁff.„f�H‰HƒÀ HƒÂH9ÈuðƒK$HÇ÷[HÇÀŸÇŸÇ´ŸÃóúAUºH� ëHATI‰üUSH�ì(H‹D‹vŸdL‹,%(L‰¬$I‰õH�\$¾H‹H‰ßH‹(A�@‰EŸ1Àè~^ûÿH‰ßèæQûÿL‰êH)ƒøs+¨…Ã…ÀtO¶L$ˆ ¨tD‰À·Lþf‰Lþë6fDH‹L$H�zHƒçøH‰ ‰ÁH‹t øH‰t øH‰ÑH)ùH)ËÁH‰ÞÁéóH¥H‹EH�L$M‹L$H‰îHÇD$L‹ÇžH�=˜‡H‹€xQ¹jjjÿ�8H‹D$(HƒÄ H‹@H‹”$dH+%(u$H�Ä([]A\A]Ã�‹L$‰À‰ ‹Lü‰Lüé{ÿÿÿèQûÿfDóú‹5êt…öxJHƒìH‹GH‹€xÿPx„Àt HƒÄÀ1ÿºH�5êÎè}PûÿHƒÄH‰Ç1À韧ýÿ€Ã€óúH‰ðAWI‰úH‰×AVHƒàüAUATUSI�‹B óoD‹JD‹z‰D$؉ðB‰BH‰òHÁê H‰\$èH9ðWI9ÚƒH‰|$ðf~D$àE‹2‹\$Ø‹D$àA‹zA‹rE‹B A�”x¤j׉؉|$´E‹jD1ø�ŒV·Çè‰t$¸B�´>Ûp $D!ÈC�¼îνÁD‰D$¼E‹B$1ØA‹Z(ÐD‰ÊD‰D$ÌÁÀD1úDÈ!ÂA‰ÃD1úʉÁÁ D1ÉÂ!ÑA1Ó‰ÕD1ÉñD‰ÞE‹ZÁÉÑD‰\$À!Î1Í1ÆþA�¼¯|õ‰èA‹jÁÎ E‹Z<Ήl$Ä!ð1Ðø�¼*ƇG‰ÊA‹jÁÀ1òð‰l$Ü!ÂA‰Ä1Êú�¼)F0¨‰ñÁ 1ÁÂ!ÑA1Ô1ñùA�¼5•FýD‰æE‹b ÁÉÑD‰d$È!Î1ÆþA�¼ؘ€i‰ÐE‹b,ÁÎ 1ÈÎD‰d$Ð!ð1ÐøA�¼¯÷D‹‰ÊE‹B4ÁÀ1òð!Â1Êú�¼ ±[ÿÿ‰ñÁ 1ÁÂ!Ñ1ñùA�¼4¾×\‰‰ÆE‹b8ÁÉ1ÖIƒÂ@Ñ!Î1ÆþA‹zðÁÎ ‰|$Ô�¼"�k‰ÐÎ1È!ð1ÐøA�¼“q˜ý‰ÊÁÀ1òð!Â1ÊúA�¼ ŽCy¦‰ñÁ 1ÁÂ!Ñ1ñùA�¼3!´I‰ÆÁÉ1ÖÑ!Î1Æþ‹|$´ÁÎ Î�¼b%ö‰È1ð!Ð1Èø�¼@³@À‰òÁÀð1Â!Ê1òú‹|$ÐÁ Â�¼QZ^&‰Á1Ñ!ñ1ÁùA�¼6ªÇ¶é‰ÖÁÁÑ1Î!Æ1Öþ‹|$ÄÁÎ Î�¼]/Ö‰È1ð!Ð1Èø�¼SD‰òÁÀð1Â!Ê1òúA�¼ �æ¡Ø‰ÁÁ Â1Ñ!ñ1Áù‹|$À‹l$ÌÁÁÑ�¼7ÈûÓç‰Ö1Î!Æ1Öþ�¼æÍá!‰È‹l$ÈÁÎ Î1ð!Ð1ÈøA�¼Ö7ÉòÁÀð1Â!Ê1òú‹|$¼Á Â�¼‡ Õô‰Á1Ñ!ñ�´5íZE‰Õ1ÁùÁÁÑ1͉ï‹l$Ô!Ç1×÷A�´é㩉ÈÁÏ Ï1ø�¬=ŠL*�!Љl$ä1Èð‹t$¸ÁÀø�´ø£ïü‰ú1Â!ÊA�Œ Ùog1úò‰ÆÁ Â1Ö!þ1ÆΉÑÁÆÖ1ñ‰Í!ʼnï‹l$ä1×ï‹l$ÄÁÏ ÷�„B9úÿ1ùÁ‹D$ÈÁÁ�„�öq‡‰òù1ú1Ê‹D$ÐÁ �„0"a�m‰þÊ1ÎA�¼< 8åý1ÖƉÈÁÆ1ÐÖ1ðø‹|$´ÁÈ �¼D꾤‰Ñð1ñ1Áù‹|$ÀÁÁ�”©ÏÞK‰÷Á1ÇA�´5`K»ö1Ï׉Â�„p¼¿¾ÁÇ 1ÊÏ1úò‰ÎÁÂ1þú1ÖÆA�„Æ~›(‰ùÁÎ 1ÑA�¼>ú'¡êÖ1ñÁ‰ÐÁÁ1ðñ1Èø‹|$¼ÁÀ �”…0ïÔ‰÷È1Ï1Ç׋T$ÜÁÇ�”2ˆ‰ÎÇ1Æ1þÖ‹T$ÌÁÎ �Œ 9ÐÔÙ‰Âþ1ú‰õ1òÊ‹L$ÔÁÂ�„å™Ûæ‰ùò1ñ1Õ1ÑÁA�„;ø|¢‰ï‹l$ÄÁÁ Ñ1ÏÇ‹D$¸ÁÇ�´0eV¬Ä‰ÐÏ1È1øðA�´D")ô‰ÊD‹t$¼ÁÈ ÷Òø Â1úòA�´ —ÿ*C‰ùÁÂ÷ÑA�¼<§#”« ÑA‰Õ1ÁA÷Õñ‰ÆÁÁ ÷ÖÑ Î1Öþ�¼9 “üD‰èA‰ÍÁÆA÷Õ‹l$ÜÎ ð1Èø‹|$ÔÁÈ ð�¼ÃY[eD‰ê Â1òúA�¼’Ì �‰ñD‹t$ÈÁÂ÷Ñ ÑA‰Õ1ÁA÷Õù�¼3}ôïÿ‰ÆÁÁ ÷ÖÑ Î1Öþ‹|$´ÁÆÎ�¼Ñ]„…D‰èA‰Í ðA÷Õ1ÈøA�¼O~¨oD‰êD‹t$ÐÁÈ ð Â1òúA�¼ àæ,þ‰ñD‹\$ÀÁÂ÷Ñ Ñ1Áù�¼5C£‰Æ‹l$ÌÁÁ ÷ÖÑ Î1ÖþA�¼¡NA‰ÐÁÆA÷ÐÎD‰À ð1ÈøA�¼‚~S÷‰ÊÁÈ ÷Òð Â1òúA�¼5ò:½‰ñÁÂ÷Ñ Ñ1Áù‹|$¸ÁÁ �¼7»Ò×*‰ÆÑ÷Ö Î1Öþ�¼‘Ó†ë‰ÐÁÆ÷ÐÎ ðAñ1ÈøÁÈ T$àA÷L$ØAÁL;T$è‚?ùÿÿfnL$àfAnÇH‹|$ðf:"D$ØfA:"ÉflÈ[]A\A]A^A_ÃfDfoÈ[]A\A]A^A_ÃfDóúAWAVI‰ÖAUATI‰ôUSH‰ûHƒì(‹J…É…Iƒü@†ìI‰ßöÄÄI�D$¿I�nHÁèL�hH‰D$IÁåIÝ€óoL‰ò¾@H‰ïHƒÃ@EóoCÐEóoCàE óoCðE0èù÷ÿÿL9ëuÄH‹D$I�W@H÷ØHÁàH)ÂM�dÀH‰ÓD‰àAƒüƒ¼AöÄ…ÄE…ät¶AˆFAöÄ…ÁE‰fHƒÄ([]A\A]A^A_Ãf„L‰åH‰ßL‰òAƒä?HƒåÀH‰îHëèt÷ÿÿM…ä…’HƒÄ([]A\A]A^A_Ã@‰ÍA½€‰L$I)íH�|*I9õLGîH‰ÞL‰êèbLûÿJ�D-En‹L$Hƒø@w_LëM)ìéªþÿÿ@H‹I‰FD‰àH‹TøH‰TøI�V$HƒâøH)ÕA�,H)ëƒàøƒø‚2ÿÿÿƒàø1ɉ΃ÁH‹<3H‰<29ÁrïéÿÿÿH‰ÆI�nL‰ò‰L$HƒæÀH‰ïH‰D$H‰t$èœöÿÿH‹D$H‹t$‹L$ƒà?I�T6ƒøs1¨uo…Àt¶2Aˆv¨t·Tþf‰Tþ@B�)ƒà?A‰Fé1ÿÿÿH‹2I‰vH‹tøH‰tøI�v$HƒæøH)õèH)êƒàøƒørǃàø1ÿA‰øƒÇN‹ N‰ 9Çrî뮋2A‰v‹Tü‰Tüëž‹A‰V‹Tü‰Tüé?þÿÿD‰à·Tþf‰Tþé-þÿÿI�né÷ýÿÿóúAWA‰ðAVI‰þAUATUSH‰ÓH�츋D‹S‹K DCH‰|$0H‰T$XE‰ÑdL‹<%(L‰¼$¨L�<7‰D$<‰Ç‹B‹RD‰T$LI‰òIÁê ‰D$@I9ð‰T$D‰L$HD‰CL‰|$PDSM9þƒ¢fo ~OA‰øD‰Ï„L‹L$01öóAo1f8Á)D4`HƒÆHƒþ@uæD‹\$`D‰ÆD‹T$dÁÆD‹L$h‹\$lA�¼;™y‚Z‹l$pHƒD$0@÷‰ÖD‹l$tD‹t$x1ÎD‹|$|D‹¤$„!ÆÁÈ1ÎA�Œ ™y‚Zþ‰Ç1×D!Ç1×A�”™y‚ZωñÁÁùD‰ÇA‰ÀÁÏA1øA!ðÁÎA1À�„™y‚ZAЉÊÁÂDÂA‰øA1ðA!ÈÁÉA1ø�¼=™y‚ZAÀ‰ÐÁÀDÀA‰ðA1ÈA!ÐA1ðA�´5™y‚ZAø‰ÇÁÊÁÇDÇA‰ÈA1ÐA!ÀÁÈA1ÈA�Œ™y‚ZAð‰þÁÆDÆA‰ÐA1ÀA!øÁÏA1ÐA�”™y‚ZD‹¼$€AȉñÁÁDÁA‰ÀA1øA!ðÁÎA1ÀA�„™y‚ZAЉÊÁÂDÂA‰øA1ðA!ÈÁÉA1øA�¼<™y‚ZD‹¤$ˆAÀ‰ÐÁÀDÀA‰ðA1ÈA!ÐÁÊA1ðA�´4™y‚ZD‹¤$ŒAø‰ÇÁÇDÇA‰ÈA1ÐA!ÀÁÈA1ÈA�Œ ™y‚ZD‹¤$�Að‰þÁÆDÆA‰ÐA1ÀA!øÁÏA1ÐA�”™y‚ZD‹¤$”AȉñÁÁDÁA‰ÀA1øA!ðÁÎA1ÀA�„™y‚ZD‹¤$˜AЉÊÁÂDÂA‰øA1ðA!ÈA1øA�¼<™y‚ZD‹¤$œAÀ‰ÐÁÀÁÉE1ËA1ÚDÀA‰ðE1ûD3œ$”A1ÈAÑÃD3”$„D3”$˜A!ÐÁÊA1ðA�´4™y‚ZAÑÂAø‰ÇÁÇDÇA‰ÈA1ÐA!ÀÁÈA1ÈA�Œ ™y‚ZAð‰þÁÆDÆA‰ÐA1ÀA!øÁÏA1ÐA�”™y‚ZAȉñÁÁDÁA‰ÀA1øA1éD3Œ$ˆA!ðÁÎE1áA1ÀAÑÁAЉÊA�„™y‚ZÁÂDÂA‰øA1ðA!ÈÁÉA1øAÀ‰ÐÁÀDÀA‰Ø‰óE1èD3„$Œ1ËA‰ÄE1Ø!ÓAÁÄAÑÀ1óÁÊA�¼8™y‚Z߉ËAü‰ï‰ÕD1÷3¼$�D1×ÑÇ1ÓD3l$|1Ã�´7¡ëÙnÁÈÞD‰ã1ÅÁÃD1åAÁÌó‹´$”D1îA‰ÅD1ÎE1åÑÆA1Ý�Œ¡ëÙné‰ÝÁËÁÅÍD‰ñD1ù3Œ$˜A‰îD1ÁAÁÆÑÁ�”¡ëÙnDêE‰åAÖ‹T$|3”$„A1Ý3”$œ1úÑÂA1íÁÍ�„¡ëÙnDèE‰õAÁÅAÅ‹„$ˆD1øA‰ßD1ØA1ï1ðE1÷AÁÎÑÀF�¤ ¡ëÙnEçE‰ìAÁÄEüD‹¼$„D3¼$ŒD‰T$,E1×D‹T$,A1ÏAÑÇD‰|$ B�œ;¡ëÙnA‰ïE1÷E1ïAÁÍDûE‰çAÁÇAß‹œ$ˆ3œ$�D1Ë1ÓÑÉ\$�¬+¡ëÙnD‰óD1ëD1ãÝD‰ûÁÃAÁÌ달$Œ3¬$”D1Å1ÅÑʼnl$F�´5¡ëÙnD‰íD1åD1ýAÁÏDõA‰ÞAÁÆA$�3¬$˜1ý3l$ Ñʼnl$F�¬-¡ëÙnD‰åD1ý1ÝÁËDíE‰õAÁÅA틬$”3¬$œ1õ3l$Ñʼnl$F�¤%¡ëÙnD‰ý1ÝD1õDåE‰ìAÁÄA심$˜AÁÎE1ÂD1ÝE1Ë1Í3l$A1ÃD3\$ÑÅAÑÉl$ F�¼=¡ëÙn‰ÝD1õD‰\$(G�œ3¡ëÙnD1íAÁÍAïD‰åÁÅDýD‹|$,D3¼$œA1×D3|$AÑÇD‰|$$B�œ;¡ëÙnE‰÷E1ïE1çAÁÌDûA‰ïAÁÇDûE‰ïE1çA‰ÞA1ïAÁÆEûÁÍEóD3T$ D3T$ E‰æE‰×A1îA1ùD3L$AÑÇD3L$$A1ÞÁËG�”/¡ëÙnAÑÁE‰Ý1ÏEòE‰ÎA‰éAÁÅA1ÙEêA1ðD3D$E‰ÍD3D$(G�Œ&¡ëÙnE‰ÔAÑÀE1ÝAÁËEéE‰ÅA‰ØAÁÄE1ØEáE‰ÄE�„-¡ëÙnD‰ÍE1ÔÁÅEàAÁÊAè‹l$1ïD1ÿÑÇ1Ö3t$1ÁA‰üD‰ßD1ö3L$ D1×ÑÆD1é3T$ ‰ýA�¼¡ëÙnD‰ÃÑÁD1ÍAÁÉ3T$$ï‰õD‰ÖÁÃD1ÎßD1â‰óB�´¡ëÙnA‰ûD1ÃAÁÈÞ‰ËD‰ÉAÁÃD1ÁDÞA‰ËB�Œ¡ëÙnA‰ÒD‰ÂA1ûÁÏDÙA‰óAÑÂ1úAÁÃG�Œ ¡ëÙnDÙ1ò3D$3D$(AщÊ1èÁÎÁÂÑÀDÊA‰ÃF�„ܼ�A‰É‰ÐA!ñÁÀAÀ‰ÈÁÉ ð!øD ÈA‰ÑDÀD‹D$ D3D$A ÉE1øA!ñA1ØAÑÀD‰D$ A‰ÐÁÊA!ÈE ÈD‹L$ A�¼9ܼ�A‰ÁAø‰ÇÁÇDÇD‹D$D3D$E1ðE1ÐAÑÀA!ÑD‰D$E�„0ܼ�‰þÁÆAð‰ÆÁÈ Ö!ÎD ÎDÆD‹D$D3D$E1èE1ØAÑÀD‰D$A‰øA ÀE‰ÁA‰øÁÏA!ÑA!ÀE ÈD‹L$A�Œ ܼ�A‰ñDÁA‰ðA!ùAÁÀAÈ‹L$3L$ D1á3L$ ÑÁ‰L$�”ܼ�D‰ÁÁÁʉñ ù!ÁD ÉÑÁ΋T$3T$$1ê3T$щT$D‰Â òA‰ÑD‰ÂAÁÈA!ù!òD ÊD‹L$A�„ܼ�A‰É‰ÈE!ÁÁÀЋT$ 3T$(1Ú3T$щT$ �¼:ܼ�‰ÂÁÂ׉ÊD Â!òD Êú‰Ï‹L$$D‰\$,ÁÏD1ùD1Ñ3L$ÑÁ‰L$$‰Á ùA‰É‰ÁE!Á!ùD ÉD‹L$$ÁÈE1ïD3|$ D3|$ A�´1ܼ�A‰ÑAÑÇΉÑÁÁñ‰Æ‹D$(A!ñD1ðE1æD3t$D3t$$D1Ø3D$AÑÆÑÀA‰ÃF�„ܼ�‰ÈÁÀD‰\$8AÀ‰ÐÁÊ ð!øA�¼?ܼ�D ÈDÀA‰ÈA ÐE‰ÁA‰ÈÁÉA!ñA!ÐA�´6ܼ�E ÈAø‰ÇÁÇF� A‰ÀD‰ÏÁÇA1íD3l$A!ÈþE1݉ÇÁÈAÑÅ ÏA1ÜD‰l$(!×B�”*ܼ�E‰ÍA ÅD ÇE‰èE‰Í÷AÁÉA!ÅA!ÈD‰îA‰ýD ÆAÁÅÖE�\5‹t$D1æE‰ÔD1þÑÆ�”ܼ�D‰ÙÁÁʉùD ÉA‰È‰ùÁÏD!ÉA!ÀA ÈD‰ÑE‰ÚAÐ1éD‰Ý3L$D1ñ!ýA úAÁËÑÁE!ʉêD Ò�„ܼ�ÂD‰ÀÁÀD�‹T$,D‰ÕE‰Õ1Ú3T$ 3T$(ÁÅÑÂB�„ ܼ�èD‰ÅD ݉ëD‰ÅAÁÈD!Ý!ûE!Å ë‹l$$E‰éËD$ A‰ÝD1àAÁÅ1èD‰Õ1ðD ÅÑÀD!ÝA é�¼8ܼ�‹l$DÏAÁÊE�L=‹|$,E‰Í1ï3|$8AÁÅ1ÏÑÇF�œܼ�EëA‰ÝE ÕD‰íA‰ÝÁËE!ÕD!ÅD íE‰ÍDÝD‹\$ D3\$A ÝE1ûE‰ìE‰ÍAÁÉA1ÓA!ÝE!ÔAÑÃD‰\$ E‰ëE ãD‹d$ G�„ܼ�EØA‰ëAÁÃEÃD‹D$D3D$E1ðE‰ÝA1ÀAÁÅAÑÀG�”ܼ�D‰D$EêA‰íE ÍE‰èA‰íA!ØE!ÍE èE‰ÝEÐA‰ê‹l$3l$AÁÊ3l$(E Õ1ýE‰ìE‰ÝÑÅE!Õ‰l$E!ÌAÁËD‰íE‰ÅD åD‹d$AÁÅA�œܼ�ëD‰íE‰ÝÝ‹\$3\$ 1ó3\$ ÑÉ\$F�Œ ÖÁbÊD‰ÓD1ÛD1ÃAÁÈAÙ‰ëE1ÅÁÃE‰ìD‹l$(DËD‹L$D3L$$A1ÉD3L$AÑÁA1ìÁÍD‰L$G�ŒÖÁbÊA‰ÚEáAÁÂD‹d$8EÊD‹L$ E1áA1ÑD3L$AÑÁD‰L$ G�œÖÁbÊE‰ÁA1éA1ÙÁËEËE‰ÑAÁÁEÙD‹\$$E1ûA1ÃD3\$AÑÃD‰\$$G�„ÖÁbÊA‰ëA1ÛE1ÓAÁÊEØE‰ËAÁÃEÃE‰àA‰ÜE1ðE1ÔA1øD3D$E1ÌAÑÀD‰D$,D‰D$`E�„(ÖÁbÊD‰ÝEàÁÅE1ïD3|$ Aè‹l$ AÁÉA1öA1ÍA1ïD‰ÕD1ÍAÑÇA‰ìA�¬ÖÁbÊD‰ÃD‰|$dE1ÜÁÃDåAÁËE‰Ìë‹l$E1ÜE1ÄAÁÈA1î‹l$$A1îAÑÆC�¬ÖÁbÊA‰ÚD‰t$hDåAÁÂE‰ÜAê‹l$E1ÄA1ÜA1íD3l$,AÑÅC�¬ ÖÁbÊE‰ÑD‰l$lDåAÁÁE‰ÄAé‹l$ÁË1ÖA1Ü1Á3L$1ú1îE1ÔD1ñAÁÊD1þÑÁ3D$ ÑÆ‰L$tB�¬ÖÁbÊE‰Ë‰t$pDåAÁÃA‰ÜAëE1ÔB�¬ÖÁbÊE1ÌE‰ØAÁÉDåAÁÀE‰ÔAè‹l$ E1ÌE1ÜAÁË1êD1êÑÂ�¬ÖÁbÊD‰Ã‰T$xDåÁÃë‹l$$1è1ðÑÀ‰Å‰D$|D‰ÈD1؉l$(B�¬ÖÁbÊA‰ÚA‰ÄAÁÂD‰ØE1ÄAÁÈDåD1ÀAê‹l$1ï3|$,‰ÅD‰Ð1Ï1ÝÁÀÑÇÁËF�ŒÖÁbʉ¼$€Aé‰ÅD‰ÀDÍD‹L$ D3L$1ØE1ùA‰Ä‰èA1ÑE1ÔÁÀAÑÁAÁÊG�œÖÁbÊD‰Œ$„EãD‹d$D3d$E1ôA‰ÞD3d$(AÃAÑÄE1Ö‹D$A1îG�„ÖÁbÊÁÍD‰¤$ˆEðE‰ÞAÁÆEðD‹t$A1ÆE1îA1þD‰×1ïAÑÆA‰ýA�¼ÖÁbÊD‰ÃD‰´$ŒE1ÝÁÃDïD‹l$ AÁËß‹\$D1ë1óD1ËA‰éÑÃE1ÙE1ÁB�´ÖÁbÊD‹T$$AÁÈDÎA‰ù‰œ$�D1ÐAÁÁDÎA‰ÁA1ÉD‰ÙE1áD1ÁAÑÁ1ùÁÏE1úD‰Œ$”E�Œ)ÖÁbÊ‹l$(DÉA‰ñAÁÁDÉD‹L$,E1éA1ÑD‰ÂE1ñ1úAÑÁ1òÁÎD‰Œ$˜G�ŒÖÁbÊAщÊÁÂDÊE‰ÑA1éA1ÙAÑÁD‰Œ$œ‹D$ÿà�H‹aX1É1ÒL‰æH�¸€è–&ûÿH…Àt¶H‹@H…À„ÌL‹`H‹)c€x(t˜1ÀA€<$_”ÀIÄë‰@ÇD$HE1í‹cH‹5cH�=§1ÀèÊøÿÿH‰ÞƒðbI‰ÆH‰ÇèE$ûÿL‰÷L�5�H‰ÃèãûÿH‹¼bH‰ÞH‹xèp+ûÿH‰ßèˆûÿ¾H‰ßè«%ûÿH‹”b1ÒH‰ß‹p$H‹Cÿ�˜¿`Çkbè¾"ûÿºH�5æH‰ßH‰HbèC½ÿÿºH�5H‰ßH‰D$è*½ÿÿºH�5ïH‰ßH‰D$(è½ÿÿºH�5rH‰ßH‰D$èø¼ÿÿºH�5ÏH‰ßH‰D$èß¼ÿÿH�5V L‰ñH‹æaH‰D$ H‹ÒaA¹H‰ßL�ÒO¶@(„ÀH�" HEðA€<$@„vè½ÿÿE„ÿt/H‹•aL‰ñL‰âH‰ßH�5¬õL‹D$A¹€x(IDöèݼÿÿH‹ faH�L‹D$H�zõA¹H�5#H‰ß€y(L‰áHEÐ裼ÿÿ€}#t:H‹ &aH�ÕL‹D$ H�:õA¹H�5wH‰ß€y(L‰áHEÐèc¼ÿÿ‹ a…Ò…ñE„ÿtpHct$HH‹|$I‰öè%ûÿIcþè!ûÿH‹L$H‰D$@H‰� AƒþƒSAƒæ…a‹D$H…À…õH‹Ž`ƒx ‡y‹@ H� OHc‚HÐ>ÿàH‹|$1öè´$ûÿHÇD$@L‹t$(¾L‰÷è™$ûÿ¿è� ûÿ¹1öH‰ßI‰† º?ÇH‰D$8èY¼ÿÿL‰÷èQ½ÿÿL‹l$¾L‰ïèO$ûÿ¿èE ûÿI‰… I‰ÆHÇ€}"„Z·EAÆF€fA‰L‹d$¾L‰çè $ûÿ¿è ûÿI‰„$ I‰ÅHÇ€}"„µ·EAÆE€fA‰EH‹|$ 1öE1äèÈ#ûÿÇD$L‹b_H‹5S_H‰ßèË!ûÿE„ÿ…ªH‹T$8H‹t$(1ÉH‰ßA¸èûÿH‹t$1ÉL‰òA¸H‰ßèûÿH‹t$1ÉL‰êA¸H‰ßèèûÿ€}"„6H‰ßèFûÿHƒÄXH‰Ø[]A\A]A^A_Ã@1öH‰ß¹º?è »ÿÿH‹|$è¼ÿÿ€}"…1ÿÿÿH‹}H…ÿ„»èFûÿH‹|$ ƒÀ‰ÂƒâÐLcà‰D$LL‰æèØ"ûÿL‰çL‰d$0èËûÿH‹T$01öI‰ÄH‹D$ L‰çL‰  è}ûÿ·EH‹uI�|$fA‰$H…ö„Bè]ûÿéÈþÿÿ„蛹ÿÿE„ÿ…’L‹D$L‰âL‰ñH‰ßA¹H�5äèr¹ÿÿ‹^…Ò„ýÿÿL‹D$L‰ñL‰âH‰ßA¹H�5µèD¹ÿÿéêüÿÿ€LcD$LH‹t$ 1ÉL‰âH‰ßè‘ûÿé®þÿÿ@D‹D$HH‹T$@1ÉH‰ßH‹t$èoûÿé8þÿÿf.„H‰ß¹º?1ö謹ÿÿH‹|$袺ÿÿé�ýÿÿDI‹EH‹L$@H‰‹D$HI‹TøH‰TøH�QHƒâøH)Ñ�I)Íƒàøƒø‚Œüÿÿƒàø1ɉ΃ÁI‹|5H‰<29ÁrîépüÿÿDH‹uéµþÿÿ€H‹}é<þÿÿ€ÇD$H L�-QLéÇùÿÿ@¹º¾H‰ßèñ¸ÿÿH‹|$èç¹ÿÿéGüÿÿf�A¶EH‹L$@ˆéúûÿÿ€ÇD$HL�-éKéoùÿÿ@ÇD$HL�-ñKéWùÿÿ@ÇD$HL�-ùKé?ùÿÿ@ÇD$H L�-ÑKé'ùÿÿ@1öH‰ß¹ºÆèT¸ÿÿ1É1öH‰ßºÇèC¸ÿÿ¹ºÇH‰ß¾è,¸ÿÿé6ÿÿÿ€1öH‰ß¹ºþè ¸ÿÿ¹ºÿH‰ß¾èõ·ÿÿéÿþÿÿ¹º ¾H‰ßèÙ·ÿÿéãþÿÿ@L‹D$L‰ñL‰âL‰öA¹H‰ßèä¶ÿÿéMýÿÿ€1ÿºH�5˜èÅûÿL‰æH‰Ç1Àèèpýÿé¸÷ÿÿA‹EH‹L$@‰‹D$HA‹Tü‰TüéŽúÿÿH�ÔJ¾a H�=¤ è `ýÿH�¼J¾» H�=Œ èó_ýÿóúAW1ÀAVAUATUSH‰ûH�=ŒHƒì‹Ü]H‹5Í]è ðÿÿH‰ÞƒÆ]H‰ÅH‰ÇèûÿH‰ïH‰ÃèÀûÿH‹™]H‰ÞH‹xèM#ûÿH‰ßèeûÿ¾H‰ßèˆûÿH‹q]1ÒH‰ß‹p$H‹Cÿ�˜¿0ÇH]è›ûÿºH�5ÂH‰ßH‰%]è�ÃÿÿºH�5åH‰ßH‰ÅèyÃÿÿºH�5jH‰ßI‰ÆèbÃÿÿH�5iI‰èH‰ßH‰D$H‹é\A¹H� ’H‹Ý\€x(H�7HEðHƒìjè›ÃÿÿH‹´\H‰ßH�5`H‹«\L�¬GA¹H� €x(H�«íÇ$HEðèTÃÿÿ^¾_H‰ïèµûÿ¿è«ûÿD‹„\fïÀH‰… I‰ÄÇ@E…ÀtÆ@ƹº?1öH‰ßèÌÃÿÿ¹º?H‰ß¾ èµÃÿÿ¹º?H‰ß¾èžÃÿÿH‰ïè–Äÿÿ‹ \…É„è¾L‰÷èûÿ¿èûÿ‹ë[I‰† I‰ÇÇ…Ò„ãH‹|$¾èäûÿ¿èÚûÿ‹|[H‹5m[H‰ßI‰ÅH‹D$L‰¨ AÇEèÎûÿA¸1ÉL‰âH‰îH‰ßè(ûÿ‹r[…Àt^A¸1ÉL‰úL‰öH‰ßèûÿA¸H‹t$L‰êH‰ß1ÉèðûÿH‰ßèXûÿHƒÄH‰Ø[]A\A]A^A_ÃfD1öL‰÷è6ûÿéÿÿÿ�E1À1ÉL‰úL‰öH‰ßè­ûÿE1À름H‹|$1öèûÿéÿÿÿff.„@óúAW1ÀAVAUATUSH‰ûH�=< Hƒì‹ŒZH‹5}ZèPíÿÿH‰ÞƒvZH‰ÅH‰ÇèËûÿH‰ïH‰ÃèpûÿH‹IZH‰ÞH‹xèýûÿH‰ßèûÿH‰ß¾è8ûÿH‹!Z1ÒH‰ß‹p$H‹Cÿ�˜¿(ÇøYèKûÿH‰ßºH�5IýH‰ÕYè@ÀÿÿH‰ßºH�5’ I‰Çè)ÀÿÿH‰ßºH�5„ I‰ÆèÀÿÿH�5aH‰ßH‹©YI‰ÄH‹—YA¹H� ýM‰à€x(H�£êHEðHƒì1íjèKÀÿÿX¾ZL‰ÿè¬ûÿ¿è¢ûÿ¾L‰÷I‰‡ ÇH‰D$èƒûÿ¿èyûÿH‹=ÚXI‰† ÇH‰$è¬ûÿL‰ç¨@”Å�lHcíH‰îèDûÿH‰ïè<ûÿH‹5�XI‰„$ I‰ÅH‰ÇèòûÿAÆD-ÿ‹¾XH‰ßH‹5¬Xè'ûÿH‹T$L‰þH‰ßA¸1ÉèûÿH‹$L‰öH‰ßA¸1ÉèhûÿI‰èL‰êL‰æH‰ß1ÉèUûÿH‰ßè½ûÿHƒÄH‰Ø[]A\A]A^A_Ãff.„óúAWA‰×AVAUATUH‰ýSH‰óHƒìXL‹w€"t+E„ÿtvH‹Xƒx ‡Ø‹@ H�·CHc‚HÐ>ÿà�H‹J1É1ÒL‰öH�¸€è6ûÿH…Àt¶H‹@H…À„TL‹pH‹ÉW€x(t˜1ÀA€>_”ÀIÆëŠDÇD$HE1틯WH‹5 WH�=G 1ÀèjêÿÿH‰Þƒ�WI‰ÄH‰ÇèåûÿL‰çL�%!H‰ÃèƒûÿH‹\WH‰ÞH‹xèûÿH‰ßè(ûÿ¾H‰ßèKûÿH‹4W1ÒH‰ß‹p$H‹Cÿ�˜¿`Ç Wè^ûÿºH�5†H‰ßH‰èVèS½ÿÿºH�5± H‰ßH‰D$è:½ÿÿºH�5� H‰ßH‰D$(è!½ÿÿºH�5úH‰ßH‰D$è½ÿÿºH�5o H‰ßH‰D$èï¼ÿÿH�5öûH‹‰VH‰D$ H‹uV¶@(„ÀH�ÕûHEðA€>@„ºHƒìL‰áA¹jL�TAH‰ßè½ÿÿY^E„ÿt7H‹.VL‰òL‰áH‰ßH�5EçA¹€x(IDôHƒìjL‹D$ èà¼ÿÿXZH‹ ÷UH�çH‰ßH�œA¹H�5¶€y(L‰ñHEÐHƒìjL‹D$èž¼ÿÿA[X€}#tDH‹ ®UH�ÎæH‰ßH�SA¹H�5ù€y(L‰ñHEÐHƒìjL‹D$0èU¼ÿÿAYAZD‹ŠUE…À…$E„ÿt|Lct$HH‹|$L‰öèšûÿL‰÷è’ûÿH‹L$H‰D$@H‰ÂH‰� ‹D$Hƒøƒy¨…Á‹L$H…É…H‹Uƒx ‡×‹@ H�º@Hc‚HÐ>ÿà„H‹|$1öè$ûÿHÇD$@L‹t$(¾L‰÷è ûÿ¿èÿûÿ¹1öH‰ßI‰† º?ÇH‰D$8è9¼ÿÿL‰÷è1½ÿÿL‹l$¾L‰ïè¿ûÿ¿èµûÿI‰… I‰ÆÇ€}"„{·EAÆF€fA‰L‹d$¾L‰çè|ûÿ¿èrûÿI‰„$ I‰ÅÇ€}"„··EAÆE€fA‰EH‹|$ 1öE1äè:ûÿÇD$L‹ÔSH‹5ÅSH‰ßè=ûÿE„ÿ…ÔH‹T$8H‹t$(1ÉH‰ßA¸èŠûÿH‹t$1ÉL‰òA¸H‰ßèrûÿH‹t$1ÉL‰êA¸H‰ßèZûÿ€}"„`H‰ßè¸ ûÿHƒÄXH‰Ø[]A\A]A^A_ÃfD1öH‰ß¹º?èìºÿÿH‹|$èâ»ÿÿ€}"…/ÿÿÿH‹}H…ÿ„Ûè¶ûÿH‹|$ ƒÀ‰ÂƒâÐLcà‰D$LL‰æèHûÿL‰çL‰d$0è;ûÿH‹T$01öI‰ÄH‹D$ L‰çL‰  èíûÿ·EH‹uI�|$fA‰$H…ö„bèÍ ûÿéÆþÿÿ„HƒìA¹L‰áH‰ßjL�—=èb¹ÿÿA[XE„ÿ…ÆHƒìH‰ßA¹L‰ájL‹D$L‰òH�52è0¹ÿÿ_AXD‹fRE…À„ÜüÿÿHƒìH‰ßA¹L‰ájL‹D$H�5ûL‰òè÷¸ÿÿ^_é¯üÿÿLcD$LH‹t$ 1ÉL‰âH‰ßèÙûÿé„þÿÿ@D‹D$HH‹T$@1ÉH‰ßH‹t$è·ûÿéþÿÿf�H‰ß¹º?1öèl¹ÿÿH‹|$èbºÿÿéoýÿÿDI‹EH‹L$@H‰‹D$HI‹TøH‰TøH�QHƒâøH)Ñ�I)Íƒàøƒø‚düÿÿƒàø1ɉ΃ÁI‹|5H‰<29ÁrîéHüÿÿDH‹ué•þÿÿ€H‹}éþÿÿ€ÇD$H L�-!=éwùÿÿ@¹º¾H‰ß豸ÿÿH‹|$è§¹ÿÿé'üÿÿf�A¶EH‹L$@ˆéÒûÿÿ€ÇD$HL�-¹<éùÿÿ@ÇD$HL�-Á<éùÿÿ@ÇD$HL�-É<éïøÿÿ@ÇD$H L�-¡<é×øÿÿ@1öH‰ß¹ºÆè¸ÿÿ1É1öH‰ßºÇè¸ÿÿ¹ºÇH‰ß¾èì·ÿÿé6ÿÿÿ€1öH‰ß¹ºþèÌ·ÿÿ¹ºÿH‰ß¾èµ·ÿÿéÿþÿÿHƒìL‰áL‰æH‰ßjA¹L�<H�Á踶ÿÿX¹Z¾ºH‰ßèo·ÿÿé¹þÿÿf.„HƒìA¹L‰áL‰òjL‹D$ L‰æH‰ßèn¶ÿÿAYAZéýÿÿD1ÿºH�5Ú‰èÝ ûÿL‰öH‰Ç1Àèbýÿé0÷ÿÿA‹EH‰Ñ‰‹D$HA‹Tü‰Tüé0úÿÿH�n;¾a H�=¾ýè%QýÿH�V;¾» H�=¦ýè Qýÿff.„f�óúHƒ=4=H‰ùt`H‹¨6HcBƒø �p‰rH‰LÂÃHƒì¿H‰L$H‰$èÜûÿH…Àt#H‹$H‹L$H‰g6H‰H‰Â1À�p‰rH‰LÂHƒÄÃH�˜“ÿÿH‰Á<ë�óúHƒìHƒÄÃ/lib64/ld-linux-x86-64.so.2$¡P®ž2´4€D(�!"#3Ä÷nmŸÿܺtöÍ@Ûæ“˜<­¶úëNŽýŹœ@Dø¡9ò‹L>¥ Á³÷>[³¢÷~jšu§Ý£kgUa�Çà`(Œ�cÿÌ V" À aJ»¢vn ,[>U× “I³ ’½ m É ßf´    ò{Œý(]«Dï> ìz Ú\s û&Ø|7¸ x R�7}ÒxÁ ‰ûTÛG r ¡=«¬ – …| A�Ôw Ÿ{ù…R~] êï¿Ë‡1ó � öƒè uÂñ û 2 ² ó�0´Û4øÏ øF®å M„´} “¦ )w sP¥²4W éW" ¤uŒ …<È Š \ Ð í ¤ [rzÑ’¤ Šã G¡ ‚ }ÿ ” Ê ¢i À ‚+ nic½' 㬠07îFÝ·Ž y c˜-Ø×’ô ž  &ü ÑÁ•1˜c < Ð; lØ/ Ý ‡»  nuÀ, ñž¶\ªèÙI ¹W d ßj,¹r F"EÌ á CK™b B Íö ‚XF& F@¨àJ>à#}Pë& hD(Ðè#À`F²à!gKoÐêx‰ðJZ�ê7­€F7é'Â!`FùPFH0éTÿ@FSHF_ITM_deregisterTMCloneTable__gmon_start___ITM_registerTMCloneTable__cxa_finalize__libc_start_mainstderrfwrite__fprintf_chkfputcdcgettext__errno_locationfilenoisatty_sch_istablebfd_set_error__sprintf_chk__stack_chk_failfreadferrorstdinstdoutxstrdupstrtoullxmallocmemcpy_bfd_std_sectionbfd_scan_archxcallocstrcmpstrlenstrcasecmpstrcpystrncmpstrcspnstrpbrkfnmatchstrrchrstrtoulbfd_hash_newfuncbfd_hash_allocatebfd_check_formatbfd_check_format_matchesbfd_get_errorlbasenamefilename_ncmpbfd_openr_next_archived_filebfd_closefclose_sch_tolowerstrstrlrealpathfilename_cmpbfd_openwbfd_set_formatbfd_set_gp_sizebfd_iterate_over_targetsstrchrbfd_hash_lookupbfd_get_section_by_namebfd_make_section_anyway_with_flagsbfd_arch_mach_octets_per_bytebfd_link_hash_lookupbfd_link_add_undefbfd_arch_bits_per_addressqsortdcngettextbfd_scan_vmaconcatoptindopterrgetopt_long_onlygetopt_longoptargdlopencplus_demangle_name_to_stylecplus_demangle_set_stylebfd_hash_table_initxreallocfgetsfeofxexit__printf_chkputcharbfd_hash_table_init_ndlerrorbfd_target_listbfd_get_compression_algorithm_namebfd_get_archbfd_sprintf_vmabfd_link_hash_traversebfd_is_local_label__strcat_chkbfd_set_start_addressbfd_arch_get_compatiblebfd_set_error_handlerbfd_printable_namebfd_demanglebfd_reloc_type_lookupcurrent_demangling_stylehtab_findhtab_hash_stringhtab_createhtab_find_slotbfd_group_signaturebfd_get_reloc_upper_boundbfd_errmsgbfd_get_full_section_contentsbfd_set_section_contentsbfd_canonicalize_relocbfd_extract_object_only_sectionunlinkstrtolbfd_close_all_donedlcloseunlink_if_ordinaryrewindbfd_generic_link_read_symbolsbfd_map_over_sectionsobjalloc_free_blockbfd_hash_table_freebfd_new_link_orderbfd_allocbfd_putl64bfd_getb64bfd_putl32bfd_getb32bfd_putl16bfd_getb16bfd_get_unique_section_namebfd_make_section_anywaybfd_wrapped_link_hash_lookupperrorfputsbfd_octets_per_bytebfd_section_already_linked_table_initbfd_section_already_linked_table_freebfd_get_section_contentsbfd_link_check_relocsbfd_record_phdrbfd_hash_traversebfd_get_reloc_code_namesetlocalebindtextdomainxmalloc_set_program_namefseekftellmemmovebfd_initbfd_set_error_program_namebfd_set_assert_handlerbfd_set_default_targetgetenvdlsymregister_ld_plugin_object_pgetpagesizestrcatbfd_hash_set_default_sizefflushmake_temp_filefstatbfd_openrmkstempbfd_fopenbfd_get_machbfd_set_file_flagsbfd_make_section_with_flagsbfd_set_section_sizebfd_set_symtabrenamememcmp_bfd_elf_linker_x86_set_optionsbfd_emul_get_commonpagesizebfd_emul_get_maxpagesize_bfd_fix_excluded_sec_symsmmaplseekbfd_plugin_close_file_descriptorbfd_plugin_target_pbfd_createbfd_make_writablebfd_get_arch_infobfd_set_arch_infobfd_get_gp_sizebfd_plugin_open_inputbfd_make_readablemunmapbfd_elf_discard_info_bfd_elf_map_sections_to_segments__vsnprintf_chkunwrap_hash_lookupbfd_hide_sym_by_versionbfd_get_compression_algorithmmake_relative_prefixabortbfd_find_targetbfd_readbfd_seek_bfd_pex64i_swap_debugdir_outbfd_write_bfd_pex64i_write_codeview_recordbfd_get_target_infomemsetbfd_set_section_flagsbfd_set_archive_headbfd_get_current_timebfd_get_next_section_by_namestpcpy_bfd_pei_swap_debugdir_out_bfd_pei_write_codeview_record_bfd_elf_match_sections_by_typebfd_elf_set_dyn_lib_classbfd_elf_set_dt_needed_namebfd_elf_get_bfd_needed_listbfd_statbfd_elf_get_dyn_lib_classbfd_elf_get_dt_sonamegetpwdstrncpyglobglobfreebfd_elf_record_link_assignment_bfd_elf_strtab_str_bfd_elf_strtab_lenbfd_elf_get_needed_listbfd_elf_get_runpath_listbfd_elf_add_dt_needed_tagbfd_elf_parse_eh_frame_entriesbfd_elf_size_dynamic_sectionsbfd_elf_size_dynsym_hash_dynstr_bfd_elf_tls_setupfgetcungetcstrtokbfd_make_section_old_wayposix_spawnattr_initposix_spawnattr_setflagsposix_spawnattr_destroyposix_spawn_file_actions_initposix_spawn_file_actions_adddup2posix_spawn_file_actions_destroyposix_spawn_file_actions_addclose__environposix_spawnpposix_spawnwait4killwaitpidpipefcntlgetrusageobstack_alloc_failed_handler_obstack_begin_obstack_begin_1_obstack_newchunk_obstack_allocated_p_obstack_free_obstack_memory_usedremove__vsprintf_chk_xexit_cleanupctf_closectf_link_add_ctfctf_errmsgctf_link_shuffle_symsctf_errwarning_nextctf_bfdopenctf_errnoctf_link_writectf_createctf_dict_closectf_link_add_linker_symbolctf_link_add_strtabctf_linkjson_deletejson_loadslibbfd-2.44-5.el9.solibctf.so.0libjansson.so.4libc.so.6LIBCTF_1.1LIBCTF_1.0GLIBC_2.27GLIBC_2.15GLIBC_2.14GLIBC_2.33GLIBC_2.4GLIBC_2.34GLIBC_2.2.5GLIBC_2.3.4/opt/rh/gcc-toolset-15/root/usr/lib64      ¶ dÊ ¶ª0q/�Ðp/�ÛÆ‡‘– æ•‘– ñ”‘– ü³‘– ii ´‘–ui 'ti 3°ÀS¸ÀÐRÀÀÀÀàÀ‘ÖèÀ™ÖðÀ¡ÖøÀ¬ÖÁ¶ÖÁ¾ÖÁÇÖÁÏÖHÁaÝPÁ8=`Ár݈ÁiÝ�ÁnÝ Á¦æÈÁBõÐÁh=àÁÝžàÂŠÝ ÂfýP˜=`¨ݠ«ÝÈžàлÝàÂÑÝÃÀ= ÃHÃ�èPÃèÝ`ÃÞ�ÃúÝ ÃÞÐÃè=àÃ'ÞÄ> Ä@>PÄh>`ÄEÞ�ÄÀ> Ä\ÞÐÄø>àÄrÞÅuÞ Å�ÞPÅ�Þ`ūވÅÁÖ�Å0? ÅµÞÈÅÁÖÐÅ`?Æ¼Þ ÆÄÞHÆÿæPƈ?`ÆËÞˆÆÒÞ�Ƹ? ÆæÞÈÆÛÞÐÆà?àÆãÞÇ@ ÇBçHÇßPÇõÞ`Ç߈Çß�ÇP@ Ç'ßÐÇx@È®ðÈ;ß ÈIßPÈ @`ÈSß�ÈZß ÈtßÐÈÈ@àÈqßÉA ÉcàHÉžàPÉ{ß�É�ߠɥßÈÉžàÐɰßàÉÚßÊÈßÊÏß ÊáßHÊìßPÊ(A`Êðß�ÊHA ÊàÐÊxAàÊàËxA ËàP˨A`Ë#à�ËØA Ë àÐËØAàË3àÌB Ì6àPÌ B`ÌBà�ÌNààÌjàÍžàÍHB ÍwàHÍžàPÍ€B`͉àˆÍ–à�ͰB Í£àÐÍ­ààÍ¿àÎËà ÎæàPÎàB`Îãà�ÎC ÎöàÐÎüààÎÖÏžàÏ á Ï áHÏžàPÏ/á`ÏJá ÏôäÈÏæáÐÏ8CàÏMáÐæáÐhC ÐüøHÐ]áPИC`Ðhá�ÐÈC Ð`åÐÐkáÑøC Ñ…áPÑ‘á`Ñ«á�Ñ D ÑºáÐÑPDàÑÇáÒæáÒÔáHÒ PÒpD`Òíá�Òùá ÒâÐÒâàÒ âÓ D ÓâPÓàD`Ó=â Ó:âàÓKâÔE ÔHâPÔPE`ÔUâˆÔaÝ�ÔÀE Ô\âÐÔeâàÔƒâ Õ†â`Õ’â�ÕàE ÕšâàÕ�â Ö“â`Ö¨â�ÖF ÖµâÐÖ0FàÖ¿â×PF ×ÖâP×xF`×Óâ�רF ×èâÐרFà×åâØG ØÿâPØã`ØØˆØ!ã�Ø3ã Ø—äÈØCãÐØPGàØLãÙxG ÙfãPÙvã`Ù«ã�Ù�ã Ù¨ãÐÙHàÙl×ÚæáÚºã ÚÕãPÚ0H`Úéã�Ú`H ÚæãÐÚ�HàÚøãÛ¸H ÛõãPÛàH`Û ä�ÛI ÛäÐÛ@IàÛ;äÜ.ä Üf×HÜæáPÜ@ä`ÜYäˆÜ]ä�ÜpI ÜfäÐÜwäàÜ”äÝ ä ݽäPݨI`ÝÌä�ÝÐI ÝÙäÐÝJàÝèäÞ8J ÞåäPÞhJ`Þþä�Þå Þ3åÈÞIåÐÞ JàÞkåßPå ßhåPß}å`ߘå�ß§å ßÅåÐߨJàßÝåàK àîåPà8K`àæ�àæ à0æÐàhKàà?æ áNæPá˜K`áWæˆáBõ�á_æ á}æÐá‘æàá­æâ»æ âÑæPâøK`âØæ�âL âðæÐâPLàâçã€L ãçPã¸L`ã çˆãžà�ãðL ã!çÈã ÐãMàã'çä ä@M ä—×Pä2ç`äJç ägçÐäpMàäUç ådçPå M`åkçˆåwç�åØM å�çàå›çæ¨çæN æ·çHæžàPæ@N`æÍçˆæàç�æhN ææçÈæôçÐæ˜Nàæüçç èçÀN çèPçè`ç8è�çðN çDèÈçæáÐçNèàçdèèO èwèHè…èPè•è`èXˆè�è�è²è èÉèÈè�èÐèÎèàèêèé�èéðè é éHé�èPéé`é0éˆé�è�é>é éZéÈé�èÐéjéàéˆéê�èê—é ê´éPê8O`êÞéˆêÐé�êðO êÚéàêæéëžàëP ëõéHëæáPë8P`ë ê�ë P ëêÐëÈPàë4êìNê ìlêHìžàPìyê`ì‹êˆìæá�ì¡ê ì½êÈìžàÐìøPàìØêíQ íäêPí@Q`íùê íöêàí ë î#ë`î ë î5ëàî2ë ïKë`ïHë ï]ëÐïxQàïnëð Q ðxëPðÈQ`ð‹ë�ðR ð˜ëàð¬ëñ(R ñ¾ëPñ`R`ñÖë�ñˆR ñ"æÐñ°RàñïëòæáòàR òôëHòæáPòS`ò ì�ò@S òìÐòxSàò"ìó5ì óPìHó`ìPó°S`óiì�óàS ófìÐóTàó€ìôPT ô}ìPôxT`ô”ì�ô°T ô‘ìÐôàTàô¢ìõU õàTHõÝ Xõ ßhõ9ôxõ<ôˆõ?ô˜õBô¨õEô¸õIôÈõMôØõPôèõSôøõVôöYôö\ô(ö_ô8öFôHöJôXöbôhöeôxöhôˆöõô˜öqô¨ö³Û¸ö²ÛÈö­ÛØö§Ûèö¢Ûøöwô÷€ô÷�ô(÷–ô8÷BõH÷žôX÷©ôh÷­ôx÷³ôˆ÷¸ô˜÷Àô¨÷Ëô¸÷ÇôÈ÷šØ÷Ðôè÷Ùôø÷ÝôøáôøBà(øèô8øûôHøõXø#õhø*õxø1õ€ø† ø3øÀøsûàø×Úùzû ù‹û@ù¦û`ù£û€ù°û ù¹ûÀùËûàùßûúÜû úìû@úùû`úü€úüÀú3øàúsûû×Ú ûzû@û‹û`û¦û€û£û û°ûÀû¹ûàûËûüßû üÜû@üìû`üùû€üü üüàü üèü[÷ðü(üøü7üýMüý[üýhüýtü ý‚ü(ý�ü0ýS÷8ý[÷@ýa÷Hýs÷hýüxýVˆýh˜ýw¨ýV¸ýhàý¨ðý�þ•þ� þ£0þ©`þ¿€þs þÉÀþ/ àþØÿì ÿý@ÿ`ÿ)€ÿ: ÿRÀÿM àÿdn ÐÕ@`‚€• •À à?³ ìû@Ç`â€ê üÀà'> >@L`c€{ �À¡à´È ß@û`ðÕ€ 2À”à¬À Ó@ä`ù€ À*àPM ×Ú@a`v€Œ ¤À¸àËÜ ñ@`€"À3øàsû×Ú zû@‹û`¦û€£û °ûÀ¹ûàËûßû Üû@ìû`ùû€ü üà3ø sû ×Ú@ zû` ‹û€ ¦û  £ûÀ °ûà ¹û Ëû ßû@ Üû` ìû€ ùû  üÀ ü ü V( h8 wH VX h€ ¨� �  •° �À £Ð © ¿ s@ É` / € Ø  ìÀ ýà  ) :@ R` M € d  nÀ à ÐÕ ‚@P`M€• •À à?³ ìû@Ç`â€ê üÀà'> >@L`c€{ �À¡à´  ß@û` ·€ðÕ >À6à2 ¬@¤`À€¸ ÓÀËàäÜ ù@ñ`€ Àà*" ×Ú@a`v á°äÀRÐ]àZðdmp@„ Pœ `¥ p¤ €¥ÿ�· À„ ÐÇ àœ ðÓ ¥ á  ó 0 @# P3 `C pS €¥ÿ�·  d °c Ào Ðv à~ ,‹ @F Pœ `p€§ �D ÀÐ ÐØ àà ð» Å Ï  × 0ß @ç Pò €û �   ° À Ð( à3 ð> E O  W 0^ @h Pu `} €. �L  %°+À3Ð>„ ©  š0® @¬PXí`· pà €Í �r Ý °å Àî Ðk à ßð¤ö ‘ ý 0e@wôPO`{p € �kÀ×Úàzû‹û ¦û@£û€á�ä R°]ÀZÐdàmðp „ 0œ @¥ P¤ `¥ÿp·  „ °Ç À�Иàÿð¨½0— Ó0# @3 PC `S p¥ÿ€· �d  c °o Àv Ð~ @«P«€«0« p¯(P°0`°8€°@ ¡`,p‹  F °œ ÀÐà§ ðD  Ð 0 Ø @ à P » ` Å p Ï € × � ß   ç ° ò à û ð  ! !  ! 0!( @!3 P!> `!E p!O €!W �!^  !h °!u À!} 0‹Ö0 K0 M 0ÀP008S80ˆT@0 H0ÀmP0ðmX0ð`0 Dh0�Lp0À=x0ú€0ˆ0@û�0 J˜0R 0€ù¨0°ó°0¹ó¸0@ýÈ0p Ð0ðè0 ð0Ð1 (1àü01881À8`1ð¤h1Àmp1ðmx1³€1 È1Ä�1À=˜1Ð= 1PJ¨1à=°1 J¸1PëÀ1ùÈ1ÅóÐ1ÌóØ1`†è1ð1° ø1€¯2`¥2Ц2pë 2Àw(2àî02p€2à0ˆ2Àm�2ðm˜2P? 2°@¨2�A°2À=¸2Ð=À2PJÈ2à=Ð2 JØ2/à2@lè2Õóð2Ýóø2ð3ð 3Àš3Ð;(3À03P383Ðh@3õH3ÐmP3`¢ 3°ý¨3Àm°3ðm¸3ðÀ3�þÈ3ÿÐ3À=Ø3úà3pÿè3@ûð3 Jø3@ÿ4`Û4èó4òó4@ý 4ý(4p 04ðH4 P4``4@ôh4 ˆ4àü�48˜4À8À40ýÈ4ÀmÐ4ðmØ4ðà40þè4àþð4À=ø4ú5`ÿ5@û5 J5 ÿ 5€Ø(5þó05ô85@ý@5ðüH5p P5ðh5€ÿp50€50òˆ5 ¨5àü°58¸5À8à5@Uè5Àmð5ðmø5ð60V6°V6À=6ú 6 Š(6@û06 J86ðV@6PAH6ôP6ôX6@ý`6�Th6p p6ðˆ6°W�6àÞ 6Ðï¨6 È6àüÐ68Ø6À87°T7Àm7ðm7ð 7ÐU(7�V07À=87ú@7P…H7@ûP7 JX7ÐV`7p>h7^ðp7,ôx7@ý€7pTˆ7p �7ð¨7W°7€›À70DÈ7 è7àüð78ø7À8 87(8à508À488 3@8€2H8`1P8@0`8pâh8À„p8@�x8PŠ€8Йˆ8�ª�8Ðè˜8°† 8 ƒ¨8ðƒ°8@¬¸8@oÀ8ðlÈ8 ‹Ð8ÓØ8�¶è8À¶ð8pÊø8è9Y9 X9Y@9XZX9™h9Z€9Ü�9XZ¨9Œ¸9`ZÐ9Æà9dZø9³:hZ :Y0:jZH:nX:lZp:ƒ€:nZ˜:›¨:pZÀ:Ð:rZè:/ø:„Z;K ;ˆZ8;ùH;�Z`;àp;˜Zˆ;ǘ; Z°;¯À;¨ZØ;®è;†Z<ä€<x]�<™ < ]°<ÜÀ<x]Ð<Œà<€]ð<Æ=„]=³ =ˆ]0=Y@=Š]P=n`=Œ]p=ƒ€=Ž]�=› =�]°=À=’]Ð=/à=¤]ð=K>¨]>ù >°]0>à@>¸]P>Ç`>À]p>¯€>È]�>® >¦]°>äà>$ ?Ú@?jp?  ?ÿà?Ýóè?q@À@Ýó @‰ H@ÀP@š X@¢ €@@ˆ@© �@² ¸@@À@º È@É ð@@ø@× Aì (A@0A8A`A@ A$ ÐA BX0B `BÿÀB_ðBg Cn`C$ �CÚÀCjðC  Dÿ`D€dhDðª€DÌóˆDí°D ¸DÌóÀDåèD ðDš øD¢  E (E© 0E² XE `Eº hEÉ �E ˜E×  Eì ÈE ÐEØEF ˆ/ �/˜/ /:¨/_°/‰¸/ðÀ/È/à!à#@F#HF$PF!XF`F€F FàJðJK('0'8'@'H'P'X'`'h' p' x' €' ˆ' �'˜' '¨'°'¸'À'È'Ð'Ø'à'è'ð'ø'((( (! ("((#0($8(%@(&H('P((X()`(*h(+p(,x(-€(.ˆ(/�(0˜(1 (2¨(3°(4¸(5À(6È(7Ð(8Ø(9à(:è(;ð(<ø(=)>)?)@)A )B()C0)D8)E@)FH)GP)HX)I`)Jh)Kp)Lx)M€)Nˆ)O�)P˜)Q )R¨)S°)T¸)UÀ)VÈ)WÐ)XØ)Yà)Zè)[ð)\ø)]*^*_*`*a *b(*c0*d8*e@*fH*gP*hX*i`*jh*kp*lx*m€*nˆ*o�*p˜*q *r¨*s°*t¸*uÀ*vÈ*wÐ*xØ*yà*zè*{ð*|ø*}+~++€+� +‚(+ƒ0+„8+…@+†H+‡P+ˆX+Š`+‹h+Œp+�x+Ž€+�ˆ+��+‘˜+’ +“¨+”°+•¸+–À+—È+˜Ð+™Ø+šà+›è+œð+�ø+ž,Ÿ, ,¡,¢ ,£(,¤0,¥8,¦@,§H,¨P,©X,ª`,«h,¬p,­x,®€,¯ˆ,°�,±˜,² ,³¨,´°,µ¸,¶À,·È,¸Ð,¹Ø,ºà,»è,¼ð,½ø,¾-¿-À-Á- -Ã(-Ä0-Å8-Æ@-ÇH-ÈP-ÉX-Ê`-Ëh-Ìp-Íx-΀-ψ-Ð�-ј-Ò -Ó¨-Ô°-Õ¸-ÖÀ-×È-ØÐ-ÙØ-Úà-Ûè-Üð-Ýø-Þ.ß.à.á.â .ã(.ä0.å8.æ@.çH.èP.éX.ê`.ëh.ìp.íx.î€.ïˆ.ñ�.ò˜.ó .ô¨.õ°.ö¸.÷À.øÈ.ùÐ.úØ.ûà.üè.ýð.þø.ÿ//// /(/0/8/@/H/ P/ X/ `/ h/ p/x/€/Stack now %d%F%P:%pS: %s in %s %F%P:%pS: %s \%03o%F%P: EOF in comment ldlex.l in script in expressionMRI style script../../ld/ldlang.c*default*srec%F%P: unknown format type %s SANE_EXPR%X%P: unknown feature `%s' fill value%F%P: multiple STARTUP files %F%P: internal error %s %d program header typePT_GNU_EH_FRAMEPT_GNU_STACKPT_GNU_RELROPT_GNU_PROPERTYFILEHDRPHDRSFLAGSVERSION scriptgloballocalexternsection-ordering-file scriptsyntax errormemory exhausted%F: macros nested too deeply a.outPT_NULLPT_LOADPT_DYNAMICPT_INTERPPT_NOTEPT_SHLIBPT_PHDRPT_TLS*?[?*[.ctors.dtors%pI %F ALLelf32-bigelf64-bigelf32-littleelf64-little%F%P: target %s not found /DISCARD/,:CTF warningCTF error.init.finiremove input file '%s' -l$SYSROOT--shared--library=%s%P: %s: missing argument %P: unrecognized option '%s' nodefinitionsnosymbolicpure-text--defsym%F%P: invalid number `%s' Usage: %s [options] file... Options: %s-%c%s-%s%s @FILERead options from FILE %s: supported targets:%s: supported emulations: ELF emulations: gnu Report bugs to %s ignore-allreport-allignore-in-object-filesignore-in-shared-libs%P: %s: duplicated plugin %F%P: bad -plugin-opt option pass-through=%s%c%s%X%P: %s: %E %F%P: -shared not supported %F%P: -pie not supported descendingascending.text-segment.rodata-segment.ldata-segmenttypeinfo name for*typeinfo for*C++operator new*operator delete*P,placewarndiscardshare-unconflictedshare-duplicated%s%s%s%s%s%s.map*ABS*%F.init_array.fini_array.note.gnu.build-idCOMMONSHT_PROGBITSSHT_STRTABSHT_NOTESHT_NOBITSSHT_INIT_ARRAYSHT_FINI_ARRAYSHT_PREINIT_ARRAYload basesubsection alignment0x%s %W %pB %W (size before relaxing) 0x%V (local) %s BYTESHORTLONGSQUAD[unresolved]*undef*[!provide]BEFOREAFTERFail with %d SORT (CONSTRUCTORS) CONSTRUCTORS EXCLUDE_FILE(%s) SORT_BY_NAME(REVERSE(SORT_BY_ALIGNMENT(SORT_NONE(SORT_BY_INIT_PRIORITY(Address of section %s set to CREATE_OBJECT_SYMBOLS FILL mask 0x%02x0x%V %W %s 0x%v0x%V %W RELOC %s %s+ *fill*0x%V %W %s0x%V %W load address 0x%V%-34sTARGET(%s) OUTPUT(%sLOAD %s START GROUP END GROUP INSERT %s %s KEYWORDARCHSet architecturemri-scriptRead MRI format linker scriptdpdependency-fileWrite dependency fileforce-group-allocationSet start addressExport all dynamic symbolsno-export-dynamicenable-non-contiguous-regionsdisable-linker-versionenable-linker-versionEBLink big-endian objectsELLink little-endian objectsauxiliaryfilterIgnoredgpsizesonameFILENAMEPROGRAMno-dynamic-linkerSearch for library LIBNAMElibrary-pathDIRECTORYsysroot=Set emulationprint-mapnmagicDo not page align datano-omagicSet output file nameOptimize output fileout-implibGenerate import libraryPLUGINLoad named pluginplugin-optARGplugin-save-tempsfltoflto-partition=fuse-ld=no-map-whole-filesQyemit-relocsrelocatableGenerate relocatable outputjust-symbolsremap-inputs-fileremap-inputsPATTERN=FILEstrip-allStrip all symbolsstrip-debugStrip debugging symbolsno-strip-discardedtraceTrace file opensRead linker scriptdefault-scriptRead default linker scriptdTrequire-defined[=SECTION]UrPrint version informationdiscard-allDiscard all local symbolsdiscard-localsdiscard-nonetrace-symbolTrace mentions of SYMBOLstart-groupStart a groupend-groupEnd a groupno-accept-unknown-input-archno-add-neededno-as-neededassertBdynamicLink against shared librariesdycall_sharedBstaticdnnon_sharedBno-symbolicBsymbolicBsymbolic-functionsno-check-sectionsno-copy-dt-needed-entriescrefOutput cross reference tableSYMBOL=EXPRESSIONDefine a symbol[=STYLE]disable-multiple-abs-defsembedded-relocsGenerate embedded relocsTreat warnings as errorsno-fatal-warningsCall SYMBOL at unload-timeforce-exe-suffixno-gc-sectionsno-print-gc-sectionsgc-keep-exportedhash-size=Print option helpCall SYMBOL at load-timeMapFILE/DIRno-define-commonDo not define Common storageno-demangleDo not demangle symbol namesno-keep-memoryno-undefinedno-warningsno-allow-shlib-undefinedallow-multiple-definitionAllow multiple definitionserror-handling-scriptSCRIPTAllow undefined versionno-undefined-versionDisallow undefined versiondefault-symverCreate default symbol versiondefault-imported-symverno-warn-mismatchno-warn-search-mismatchno-whole-archiveTurn off --whole-archivenoinhibit-execnoinhibit_execnostdliboformatSpecify target of output fileprint-output-formatPrint default output formatprint-sysrootPrint current sysrootqmagicreduce-memory-overheadsmax-cache-size=SIZEno-relaxretain-symbols-filerpathrpath-linkCreate a shared libraryBshareablepic-executableno-piesort-common[=ascending|descending]sort_commonsort-sectionname|alignmentsection-ordering-filespare-dynamic-tagsCOUNTsplit-by-file[=SIZE]split-by-reloc[=COUNT]statsPrint memory usage statisticstarget-helptask-linkDo task level linkingtraditional-formatsection-startSECTION=ADDRESSSet address of named sectionSet image base addressTbssSet address of .bss sectionTdataSet address of .data sectionTtextSet address of .text sectionTtext-segmentSet address of text segmentTrodata-segmentSet address of rodata segmentTldata-segmentSet address of ldata segmentunresolved-symbols=[=NUMBER]dll-verboseversion-scriptversion-exports-sectiondynamic-list-datadynamic-list-cpp-newdynamic-list-cpp-typeinfoUse C++ typeinfo dynamic listdynamic-listRead dynamic listexport-dynamic-symbolExport the specified symbolexport-dynamic-symbol-listwarn-commonwarn-constructorsno-error-execstackwarn-execstack-objectsno-warn-execstackno-error-rwx-segmentsno-warn-rwx-segmentswarn-multiple-gpwarn-oncewarn-section-alignwarn-textrelwarn-shared-textrelwarn-alternate-emwarn-unresolved-symbolserror-unresolved-symbolswrapignore-unresolved-symbolpush-statepop-stateprint-memory-usageReport target memory usageorphan-handling=MODEno-print-map-discardedno-print-map-localsno-ctf-variablesctf-share-types=../../ld/ldmain.c [%B]; %D: first defined here%X%H:+%v Allocating common symbols %*s0x%-16s %10lu B%10lu GB%10lu MB%10lu KBfailed to copy private data%P%F: setup_section: %s: %s relocation count is negative%P%F: copy_section: %s: %s %P: %H: %s%s GLOBAL_using multiple gp values%P: %C: %s%s %P: %s%s %P: %pB: %s%s %P: %pB: reference to %s %P: %pB: definition of %s %X%P: cref alloc failed: %E ../../ld/ldwrite.c.stab$GDB_STRINGS$$GDB_SYMBOLS$%F%P: final link failed: %E %F%P: final link failed GNU ld version 2.44-5.el9Java.ctf__load_start_%s__load_stop_%s%s(%s)%pB (%pT) undefined-symbol%X%X%P: %s ../../ld/ldexp.c%F%P:%pS %% by zero %F%P:%pS / by zero NEXT_SECTIONMAXPAGESIZECOMMONPAGESIZE%F%P: invalid data statement endObject-only input files: .exports Set Symbol %G __start_%s__ehdr_start.stabstr.startof.%sphdr flagsphdr load addressNONEelf_x86_64$`"\ --sysroot=x86_64-redhat-linux-gnu_finiCOLLECT_NO_DEMANGLELDEMULATION%F%P: missing argument to -m -mips1-mips2-mips3-mips4-mips5-mips32-mips32r2-mips32r3-mips32r5-mips32r6-mips64-mips64r2-mips64r3-mips64r5-mips64r6-m486Supported emulations: ../../ld/plugin.c_onload%F%P: %s: plugin error: %d built in linker scriptusing internal linker script:%F%P: no input files %P: mode %s Input File Remapping Pattern: %s Maps To: %s Discarded input sections Memory Configuration AttributesLengthOriginName%-16s %-18s %-18s %s 0x%-16s 0x%*s! Cross Reference Table SymbolFile No symbols ../../ld/ldcref.c%16s: %6.2f%%%s: \ %s %s: %P: error writing file `%s' %P: error closing file `%s' .obj-only.oerror setting up sections.gnu_object_onlyerror copying sections?*]elf64bpfelf64-bpflei386pepei-i386i386peppei-x86-64elf_iamcuelf32-iamcuelf_i386elf32-i386elf32_x86_64elf32-x86-64elf64-x86-64+=-=*=/=<<=>>=&=|=^=||&&==!=<<>>LOG2CEILBLOCKSECTIONSSIZEOF_HEADERSMEMORYDEFINEDSEARCH_DIRMAPENTRYNEXTALIGNOFSIZEOFLOADADDRABSOLUTEMAXMINASSERTDATA_SEGMENT_ALIGNDATA_SEGMENT_RELRO_ENDDATA_SEGMENT_ENDORIGINLENGTHSEGMENT_STARTGNUTARGETi386:x86-64i386:x64-32%s: GNU ld %s Supported emulations: %s %F%P: please report this bug ../../ld/ldmisc.c%10s%pB: in function `%pT': %pB:%pT%u%s(%pA+0x%v)[%s]%s generated(%s)%s%s+0x%v (type %s)%s:%uno symbol%p%ld%lu%%%c%pS SYSLIB ignored %pS HLL ignored cannot find script file %s opened script file %s %P: warning: %s ignored .gnu.linkonce.t. (symbol from plugin)NULL TREE %s+0x%vPROVIDE (%s = ("", ASSERT (, %s) (%s)0x%V %pT %P: warning: %P: error: WEAKDEFWEAKUNDEFDEFAULTPROTECTEDINTERNALHIDDENunknown LTO kind value %xcomma]lbrace]quot]rbrace]space]sha1zstdsysvbothundefsmuldefsmax-page-size=common-page-size=stack-size=noexecstacknounique-symbolglobalauditnostart-stop-gcstart-stop-visibility=start-stop-visibility=defaultstart-stop-visibility=hiddennosectionheaderinitfirstinterposeloadfltrnodefaultlibnodeletenodlopennodumplazyoriginnouniquenocombrelocnocopyrelocnomemory-sealnorelronoseparate-codenocommonnotexttextoffnoextern-protected-datanoindirect-extern-accessnodynamic-undefined-weaknoreloc-overflowcall-nop=prefix-addrsuffix-nopprefix-suffix-ibtpltibtshstkcet-report=report-relative-relocx86-64-baselinex86-64-visa-level-report=usedlam-u48lam-u48-report=lam-u57lam-u57-report=lam-report=nomark-pltnopack-relative-relocs-z %s/dev/nullNUL/ldscriptsattempt to open %s failed attempt to open %s succeeded %P: cannot find %s (%s): %E %P: cannot find %s: %E %P: cannot find %s inside %s missing-libmd5uuid/dev/urandomBgrouppackage-metadatacompress-debug-sectionsno-rosegmentdepauditdisable-new-dtagsenable-new-dtagsno-eh-frame-hdrexclude-libshash-styleno-ld-generated-unwind-infoUNKNOWNPREVAILING_DEFPREVAILING_DEF_IRONLYPREEMPTED_REGPREEMPTED_IRRESOLVED_IRRESOLVED_EXECRESOLVED_DYNPREVAILING_DEF_IRONLY_EXPldscripts/elf_iamcu.xuldscripts/elf_iamcu.xrldscripts/elf_iamcu.xbnldscripts/elf_iamcu.xnldscripts/elf_iamcu.xdwldscripts/elf_iamcu.xdwerldscripts/elf_iamcu.xdweldscripts/elf_iamcu.xdcldscripts/elf_iamcu.xdcerldscripts/elf_iamcu.xdceldscripts/elf_iamcu.xdldscripts/elf_iamcu.xderldscripts/elf_iamcu.xdeldscripts/elf_iamcu.xswldscripts/elf_iamcu.xswerldscripts/elf_iamcu.xsweldscripts/elf_iamcu.xscldscripts/elf_iamcu.xscerldscripts/elf_iamcu.xsceldscripts/elf_iamcu.xsldscripts/elf_iamcu.xserldscripts/elf_iamcu.xseldscripts/elf_iamcu.xwldscripts/elf_iamcu.xwerldscripts/elf_iamcu.xweldscripts/elf_iamcu.xcldscripts/elf_iamcu.xcerldscripts/elf_iamcu.xceldscripts/elf_iamcu.xldscripts/elf_iamcu.xerldscripts/elf_iamcu.xe.debug_+%s __pei386_runtime_relocatorarelent: %s@%#lx: add=%li pcrel %d bit rel. %s_nmth%06d.o.idata$4__nm_thnk___nm_%s_fu%06d.o.idata$2_iname%s_rtr%06d.o.rdata_runtime_pseudo_reloc%s_ertr%06d.o.rdatape-x86-64ei386pep.ca.exe___ImageBase__image_base__native__size_of_heap_commit____size_of_heap_reserve____size_of_stack_commit____size_of_stack_reserve____major_subsystem_version____minor_subsystem_version____subsystem____major_os_version____minor_os_version____major_image_version____minor_image_version____file_alignment____section_alignment____dll____dll_characteristics__NtProcessStartup__head_obj%s() -%s *%s .buildid%s:%s ->%s .drectve.idata$%s.%cWinMainCRTStartupmainCRTStartup__PosixProcessStartupwindowsconsoleposixwincexbox__loader_flags__base-filefile-alignmentmajor-image-versionmajor-os-versionmajor-subsystem-versionminor-image-versionminor-os-versionminor-subsystem-versionsection-alignmentsubsystemsupport-old-codeno-leading-underscoreoutput-defexport-all-symbolsexclude-all-symbolsexclude-modules-for-implibkill-atadd-stdcall-aliasenable-stdcall-fixupdisable-stdcall-fixupwarn-duplicate-exportscompat-implibenable-auto-image-basedisable-auto-image-basedll-search-prefixno-default-excludesenable-auto-importdisable-auto-importenable-extra-pep-debugenable-runtime-pseudo-relocdisable-runtime-pseudo-relocenable-long-section-namesdisable-long-section-namesno-insert-timestampenable-reloc-sectiondisable-reloc-sectiondisable-high-entropy-vadisable-dynamicbasedisable-forceintegdisable-nxcompatdisable-no-isolationdisable-no-sehdisable-no-binddisable-wdmdriverdisable-tsaware(data)%X%P: open %s: %E %s is already loaded rel: %s .eh_frameCreating library file: %s %X%P: bfd_openr %s: %E %X%P: bfd_close %s: %E LIBRARY NAME BASE=0x%lxDESCRIPTION VERSION %d.%d VERSION %d STACKSIZE 0x%x,0x%x STACKSIZE 0x%x HEAPSIZE 0x%x,0x%x HEAPSIZE 0x%x SECTIONS CLASS READ WRITE EXECUTE SHAREDEXPORTS @%d PRIVATE CONSTANT NONAME DATA IMPORTS == ; no contents available .idatalib%s.dll.ape-i386ei386pe.cDllMainCRTStartup@12thumb-entryenable-extra-pe-debugdisable-large-address-awarelib%s.alib%s.lib%s%s.dlllib%s.dllldscripts/i386pe.xuldscripts/i386pe.xrldscripts/i386pe.xbnldscripts/i386pe.xnldscripts/i386pe.xldscripts/i386pe.xa.rela.dyn.mbind.bss.mbind.data.mbind.rodata.mbind.text.rel.dyn.rel.gnu.warning..note.plt-z dynamic-undefined-weakLIBRARY%s/lib%s%s.so../../ld/ldelf.c.so.libc.sofound %s at %s %P: %pB: bfd_stat failed: %E lib64RIGIN}IB}%.*s%s/%s%.*s%sinclude%s needed by %pB LD_LIBRARY_PATHLD_RUN_PATH/etc/ld.so.conf.note.package.note.GNU-stack.eh_frame_entry.eh_frame_hdr.gnu.warning%s.%sBASE$:-_?@$:-_?/@<>CODEconstantDESCRIPTIONDIRECTIVEEXCLUDE_SYMBOLSEXPORTSHEAPSIZEIMPORTSnonameprivateSTACKSIZEVERSION%s.%s%s%P: %s:%d: %s -heap../../ld/pe-dll.c__rtti_dll stuff%F%P: can not create BFD: %E .edata.reloc_NULL_IMPORT_DESCRIPTORDllMain_DllMainCRTStartupdo_pseudo_reloccygwin_crt0DllEntryPoint_cygwin_dll_entry_cygwin_crt0_common_cygwin_noncygwin_dll_entrycygwin_premain0cygwin_premain1cygwin_premain2cygwin_premain3_impure_ptr_fmodeenviron__dso_handle_NULL_THUNK_DATA__builtin__IMPORT_DESCRIPTOR_dllcrt1.odllcrt2.ogcrt0.ogcrt1.ogcrt2.ocrtbegin.ocrtend.olibcegcclibcygwinlibgcclibgcc_slibstdc++libmingw32libmingwexlibg2clibsupc++libobjclibgcjlibmsvcrtlibmsvcrt-oslibucrtlibucrtbasepe-bigobj-x86-64pei-shlpe-shlpei-mipspe-mipspei-arm-littlepe-arm-littlepei-arm-wince-littlepe-arm-wince-littlepei-aarch64-littlepe-aarch64-little-attr-export-aligncomm-exclude-symbolsSEGMENTS.tdata.interp.sdata.commentposix_spawnattr_initposix_spawnattr_setflagsposix_spawn_file_actions_initposix_spawnpposix_spawnclosewait-+ #0__fu%d_%X%P: add symbols %s: %E pex_get_status failedopen temporary output fileerror handling script%s_d%06d.o.idata$5.idata$7.idata$6___imp_@feat.00DllMain@12DllEntryPoint@0_cygwin_dll_entry@12_cygwin_crt0_common@8cygwin_attach_dllpe-bigobj-i386%P:%s: file format not recognized; treating as linker script out of dynamic memory in yyensure_buffer_stack()%F%s: file not recognized: %E %P:%pS: ignoring invalid character `%s'%s out of dynamic memory in yy_create_buffer()fatal flex scanner internal error--end of buffer missedfatal error - scanner input buffer overflow%F%P: read in flex scanner failed out of dynamic memory in yy_get_next_buffer()fatal flex scanner internal error--no action found%F%P: unrecognised keyword in MRI style script '%s' %F%P: cannot represent machine `%s' %F%P:%pS: nonconstant expression for %s %X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them %X%P:%pS: unknown phdr type `%s' (try integer literal) %X%P:%pS: PHDRS syntax error at `%s' %X%P: address 0x%v of %pB section `%s' is not within region `%s' %X%P: %pB section `%s' will not fit in region `%s' %P: %pB: file not recognized: %E; matching formats:%F%P: %pB: file not recognized: %E %F%P: %pB: member %pB in archive is not an object %F%P: %pB: error adding symbols: %E %F%P: input file '%s' is the same as output file %P: warning: could not find any targets that match endianness requirement %F%P: cannot open output file %s: %E %F%P: %s: can not make object file: %E %F%P: %s: can not set architecture: %E %F%P: can not create hash table: %E %F%P: failed creating section `%s': %E %F%P: illegal use of `%s' section %F%P: output format %s cannot represent section called %s: %E %P:%pS: warning: --enable-non-contiguous-regions makes section `%pA' from `%pB' match /DISCARD/ clause. %P:%pS: warning: --enable-non-contiguous-regions may change behaviour for section `%pA' from `%pB' (assigned to %pA, but additional match: %pA) CTF error: cannot get CTF errors: `%s' %F%P: bfd_link_hash_lookup failed: %E warning: INSERT statement in linker script is incompatible with --enable-non-contiguous-regions. %F%P: %s not found for insert %X%P: section %s VMA wraps around address space %X%P: section %s LMA wraps around address space %X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V] %X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V] %X%P: region `%s' overflowed by %lu bytes %X%P: region `%s' overflowed by %lu byte %F%P: invalid hex number `%s' remap input file '%s' to '%s' based upon pattern '%s' remove input file '%s' based upon pattern '%s' remap input file '%s' to '%s' %F%P: Error: unable to disambiguate: %s (did you mean -%s ?) %P: Warning: grouped short command line options are deprecated: %s %F%P: use the --help option for usage information %F%P: unrecognized -a option `%s' %F%P: unrecognized -assert option `%s' %F%P: unknown demangling style `%s' %s: emulation specific options: --ld-generated-unwind-info Generate exception handling info for PLT --no-ld-generated-unwind-info Don't generate exception handling info for PLT --build-id[=STYLE] Generate build ID note Styles: none,md5,sha1,xx,uuid,0xHEX --package-metadata[=JSON] Generate package metadata note --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi|zstd] Compress DWARF debug sections Default: %s -z common-page-size=SIZE Set common page size to SIZE -z max-page-size=SIZE Set maximum page size to SIZE -z defs Report unresolved symbols in object files -z undefs Ignore unresolved symbols in object files -z muldefs Allow multiple definitions -z stack-size=SIZE Set size of stack segment -z execstack Mark executable as requiring executable stack -z noexecstack Mark executable as not requiring executable stack --warn-execstack-objects Generate a warning if an object file requests an executable stack --warn-execstack Generate a warning if creating an executable stack (default) --no-warn-execstack Do not generate a warning if creating an executable stack --error-execstack Turn warnings about executable stacks into errors --no-error-execstack Do not turn warnings about executable stacks into errors --warn-rwx-segments Generate a warning if a LOAD segment has RWX permissions (default) --no-warn-rwx-segments Do not generate a warning if a LOAD segments has RWX permissions --error-rwx-segments Turn warnings about loadable RWX segments into errors --no-error-rwx-segments Do not turn warnings about loadable RWX segments into errors -z unique-symbol Avoid duplicated local symbol names -z nounique-symbol Keep duplicated local symbol names (default) -z globalaudit Mark executable requiring global auditing -z start-stop-gc Enable garbage collection on __start/__stop -z nostart-stop-gc Don't garbage collect __start/__stop (default) -z start-stop-visibility=V Set visibility of built-in __start/__stop symbols to DEFAULT, PROTECTED, HIDDEN or INTERNAL -z sectionheader Generate section header (default) -z nosectionheader Do not generate section header --audit=AUDITLIB Specify a library to use for auditing -Bgroup Selects group name lookup rules for DSO --disable-new-dtags Disable new dynamic tags --enable-new-dtags Enable new dynamic tags --eh-frame-hdr Create .eh_frame_hdr section --no-eh-frame-hdr Do not create .eh_frame_hdr section --exclude-libs=LIBS Make all symbols in LIBS hidden --hash-style=STYLE Set hash style to sysv/gnu/both. Default: -P AUDITLIB, --depaudit=AUDITLIB Specify a library to use for auditing dependencies -z combreloc Merge dynamic relocs into one section and sort -z nocombreloc Don't merge dynamic relocs into one section -z global Make symbols in DSO available for subsequently loaded objects -z initfirst Mark DSO to be initialized first at runtime -z interpose Mark object to interpose all DSOs but executable -z unique Mark DSO to be loaded at most once by default, and only in the main namespace -z nounique Don't mark DSO as a loadable at most once -z lazy Mark object lazy runtime binding (default) -z loadfltr Mark object requiring immediate process -z nocopyreloc Don't create copy relocs -z nodefaultlib Mark object not to use default search paths -z nodelete Mark DSO non-deletable at runtime -z nodlopen Mark DSO not available to dlopen -z nodump Mark DSO not available to dldump -z now Mark object non-lazy runtime binding -z origin Mark object requiring immediate $ORIGIN processing at runtime -z relro Create RELRO program header (default) -z norelro Don't create RELRO program header -z separate-code Create separate code program header (default) -z noseparate-code Don't create separate code program header --rosegment With -z separate-code, create a single read-only segment (default) --no-rosegment With -z separate-code, creste two read-only segments -z common Generate common symbols with STT_COMMON type -z nocommon Generate common symbols with STT_OBJECT type -z text Treat DT_TEXTREL in output as error (default) -z text Treat DT_TEXTREL in output as error -z notext Don't treat DT_TEXTREL in output as error (default) -z textoff Don't treat DT_TEXTREL in output as error (default) -z notext Don't treat DT_TEXTREL in output as error -z textoff Don't treat DT_TEXTREL in output as error -z memory-seal Mark object be memory sealed -z nomemory-seal Don't mark oject to be memory sealed (default) %F%P: bad --unresolved-symbols option: %s %F%P: %s: error loading plugin: %s %F%P: unrecognised option: %s %F%P: -r and %s may not be used together %X%P: error: duplicate retain-symbols-file %F%P: bfd_hash_table_init failed: %E %F%P: bfd_hash_lookup for insertion failed: %E %P: `-retain-symbols-file' overrides `-s' and `-S' %P: SONAME must not be empty string; keeping previous one %F%P: invalid common section sorting option: %s %F%P: invalid section sorting option: %s %P: warning: section ordering file changed. Ignoring earlier definition %F%P: invalid argument to option "--section-start" %F%P: missing argument(s) to option "--section-start" %F%P: bfd_hash_lookup failed: %E %F%P: group ended before it began (--help for usage) %F%P: malformed remap file entry: %s %F%P: failed to add remap file %s %F%P: invalid argument to option --remap-inputs %F%P: invalid cache memory size: %s %X%P: --hash-size needs a numeric argument %F%P: no state pushed before popping %F%P: invalid argument to option "--orphan-handling" %F%P: bad --ctf-share-types option: %s %P: no file/directory name provided for map output; ignored %P: cannot stat linker map file: %E %P: linker map file is not a regular file %P: SONAME must not be empty string; ignored %P: missing --end-group; added as last command line option %F%P: -r and -z nosectionheader may not be used together %F%P: -F may not be used without -shared %F%P: -f may not be used without -shared %P: warning: %s contains output sections; did you forget -T? %P:%pS: warning: redeclaration of memory region `%s' %P:%pS: warning: memory region `%s' not declared %F%P:%pS: error: alias for default memory region %F%P:%pS: error: redefinition of memory region alias `%s' %F%P:%pS: error: memory region `%s' for alias `%s' does not exist %F%P: invalid type for output section `%s' %F%P:%pS: non constant or forward reference address expression for section %s %X%P: internal error on COFF shared library section %s %F%P: error: no memory region specified for loadable section `%s' %P: warning: no memory region specified for loadable section `%s' %P: warning: start of section %s changed by %ld %P: warning: dot moved backwards before `%s' %F%P: can't relax section: %E %F%P: Output section `%pA' not large enough for the linker-created stubs section `%pA'. %F%P: Relaxation not supported with --enable-non-contiguous-regions (section `%pA' would overflow `%pA' after it changed size). SORT_BY_NAME(SORT_BY_ALIGNMENT(SORT_BY_ALIGNMENT(SORT_BY_NAME(Shared library control for HP/UX compatibilitySpecify target for following input filesForce common symbols to be definedForce group members out of groupsUndo the effect of --export-dynamicEnable support of non-contiguous memory regionsenable-non-contiguous-regions-warningsEnable warnings when --enable-non-contiguous-regions may cause unexpected behaviourDisable the LINKER_VERSION linker script directiveEnable the LINKER_VERSION linker script directiveAuxiliary filter for shared object symbol tableFilter for shared object symbol tableSmall data size (if no size, same as --shared)Set internal name of shared librarySet PROGRAM as the dynamic linker to useProduce an executable with no program interpreter headerAdd DIRECTORY to library search pathOverride the default sysroot locationPrint map file on standard outputDo not page align data, do not make text readonlyPage align data, make text readonlySend arg to last-loaded pluginStore plugin intermediate files permanentlyIgnored for GCC LTO option compatibilityIgnored for GCC linker option compatibilityIgnored for gold option compatibilityIgnored for SVR4 compatibilityGenerate relocations in final outputJust link symbols (if directory, same as --rpath)Provide a FILE containing input remapingsRemap input files matching PATTERN to FILEStrip symbols in discarded sectionsDo not strip symbols in discarded sectionsStart with undefined reference to SYMBOLRequire SYMBOL be defined in the final outputDon't merge input [SECTION | orphan] sectionsBuild global constructor/destructor tablesPrint version and emulation informationDiscard temporary local symbols (default)Don't discard any local symbolsDefault search path for Solaris compatibilityAccept input files whose architecture cannot be determinedReject input files whose architecture is unknownOnly set DT_NEEDED for following dynamic libs if usedAlways set DT_NEEDED for dynamic libraries mentioned on the command lineIgnored for SunOS compatibilityDo not link against shared librariesDon't bind global references locallyBind global references locallyBind global function references locallyCheck section addresses for overlaps (default)Do not check section addresses for overlapsCopy DT_NEEDED links mentioned inside DSOs that followDo not copy DT_NEEDED links mentioned inside DSOs that followDemangle symbol names [using STYLE]Do not allow multiple definitions with symbols included in filename invoked by -R or --just-symbolsDo not treat warnings as errors (default)Force generation of file with .exe suffixRemove unused sections (on some targets)Don't remove unused sections (default)List removed unused sections on stderrDo not list removed unused sectionsKeep exported symbols when removing unused sectionsSet default hash table size close to Write a linker map to FILE or DIR/.mapUse less memory and more disk I/ODo not allow unresolved references in object filesDo not display any warning or error messagesAllow unresolved references in shared librariesDo not allow unresolved references in shared libsProvide a script to help with undefined symbol errorsCreate default symbol version for imported symbolsDon't warn about mismatched input filesDon't warn on finding an incompatible libraryCreate an output file even if errors occurOnly use library directories specified on the command lineIgnored for Linux compatibilityReduce memory overheads, possibly taking much longerSet the maximum cache size to SIZE bytesReduce code size by using target specific optimizationsDo not use relaxation techniques to reduce code sizeKeep only symbols listed in FILESet runtime shared library search pathSet link time shared library search pathCreate a position independent executableCreate a position dependent executable (default)Sort common symbols by alignment [in specified order]Sort sections by name or maximum alignmentSort sections by statements in FILEHow many tags to reserve in .dynamic sectionSplit output sections every SIZE octetsSplit output sections every COUNT relocsDisplay target specific optionsUse same format as native linkerHow to handle unresolved symbols. is: ignore-all, report-all, ignore-in-object-files, ignore-in-shared-libsOutput lots of information during linkRead version information scriptTake export symbols list from .exports, using SYMBOL as the version.Add data symbols to dynamic listUse C++ operator new/delete dynamic listRead export dynamic symbol listWarn about duplicate common symbolsWarn if global constructors/destructors are seenWarn if the multiple GP values are usedWarn only once per undefined symbolWarn if start of section changes due to alignmentWarn if output has DT_TEXTREL (default)Warn if an object has alternate ELF machine codeReport unresolved symbols as warningsReport unresolved symbols as errorsInclude all objects from following archivesUse wrapper functions for SYMBOLUnresolved SYMBOL will not cause an error or warningPush state of flags governing input file handlingPop state of flags governing input file handlingControl how orphan sections are handled.Show discarded sections in map file output (default)Do not show discarded sections in map file outputShow local symbols in map file outputDo not show local symbols in map file output (default)Emit names and types of static variables in CTFDo not emit names and types of static variables in CTFHow to share CTF types between translation units. is: share-unconflicted (default), share-duplicated%P: %pB: warning: definition of `%pT' overriding common from %pB %P: %pB: warning: definition of `%pT' overriding common %P: %pB: warning: common of `%pT' overridden by definition from %pB %P: %pB: warning: common of `%pT' overridden by definition %P: %pB: warning: common of `%pT' overridden by larger common from %pB %P: %pB: warning: common of `%pT' overridden by larger common %P: %pB: warning: common of `%pT' overriding smaller common from %pB %P: %pB: warning: common of `%pT' overriding smaller common %P: %pB and %pB: warning: multiple common of `%pT' %P: %pB: warning: multiple common of `%pT' %X%H: dangerous relocation: %s %X%H: reloc refers to symbol `%pT' which is not being output %P: %C: warning: multiple definition of `%pT'%X%P: %C: multiple definition of `%pT'%P: disabling relaxation; it will not work with multiple definitions additional relocation overflows omitted from the output relocation truncated to fit: %s against undefined symbol `%pT' relocation truncated to fit: %s against symbol `%pT' defined in %pA section in %pB relocation truncated to fit: %s against `%pT'%X%P: different relocs used in set %s %X%P: different object file formats composing set %s %P: warning: global constructor %s used %F%P: --gc-sections requires a defined symbol root specified by -e or -u %F%P: %s: can't set start address %F%P: can't set start address %P: warning: cannot find entry symbol %s; defaulting to %V %P: warning: cannot find entry symbol %s; not setting start address %X%P: %s architecture of input file `%pB' is incompatible with %s output %X%P: failed to merge target specific data of file %pB %F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported %F%P: could not define common symbol `%pT': %E Common symbol size file %X%P: error: unplaced orphan section `%pA' from `%pB' %P: warning: orphan section `%pA' from `%pB' being placed in section `%s' %F%P: BFD backend error: BFD_RELOC_CTOR unsupported failed to create output section%F%P: %pB: could not read relocs: %E %P%F: cannot extract object-only section from %B: %E %P: %s: error in plugin cleanup: %d (ignored) %F%P: %pB: could not read symbols: %E %F%P: bfd_hash_allocate failed creating symbol %s %X%P: bfd_hash_table_init of cref table failed: %E %X%P: cref_hash_lookup failed: %E %F%P: bfd_new_link_order failed: %E %F%P: cannot create split section name for %s %F%P: clone section failed: %E %F%P: invalid character %c (%d) in flags %X%P:%pS: section has both a load address and a load region %X%P: unknown language `%s' in version information %X%P: anonymous version tag cannot be combined with other version tags %X%P: duplicate version tag `%s' %X%P: duplicate expression `%s' in version information %X%P: unable to find version dependency `%s' %P: warning: CTF section emission failed; output will have no CTF section: %s %F%P:%pS: error: output section '%s' must already exist %F%P:%pS: error: align with input and explicit align specified %pI: no new IR symbols to claim Archive member included to satisfy reference by file (symbol) %P: About to run error handling script '%s' with arguments: '%s' '%s' %P: Failed to run error handling script '%s', reason: %X%P: %H: undefined reference to `%pT' %P: %H: warning: undefined reference to `%pT' %X%P: %D: more undefined references to `%pT' follow %P: %D: warning: more undefined references to `%pT' follow %X%P: %pB: undefined reference to `%pT' %P: %pB: warning: undefined reference to `%pT' %X%P: %pB: more undefined references to `%pT' follow %P: %pB: warning: more undefined references to `%pT' follow %P: warning: address of `%s' isn't multiple of maximum page size %F%P:%pS can not PROVIDE assignment to location counter %F%P:%pS invalid assignment to location counter %F%P:%pS assignment to location counter invalid outside of SECTIONS %F%P:%pS cannot move location counter backwards (from %V to %V) %F%P:%s: hash creation failed %F%P: bfd_hash_lookup failed creating symbol %s %X%P:%pS: unresolvable symbol `%s' referenced in expression %F%P:%pS: undefined symbol `%s' referenced in expression %F%P:%pS: undefined section `%s' referenced in expression %F%P:%pS: undefined MEMORY region `%s' referenced in expression %F%P:%pS: unknown constant `%s' referenced in expression %F%P: invalid reloc statement %P: invalid origin for memory region %s %P: invalid length for memory region %s %F%P: %s: plugin reported error after all symbols read As-needed library included to satisfy reference by file (symbol) %P: warning: CTF section in %pB not loaded; its types will be discarded: %s %P: warning: CTF output not created: `%s' %X%P: unable to read .exports section contents %X%P: %s does not support reloc %s for set %s %X%P: special section %s does not support reloc %s for set %s %X%P: unsupported size %d for set %s %F%P: bfd_merge_sections failed: %E %P: warning: CTF section in %pB cannot be linked: `%s' %P: warning: CTF linking failed; output will have no CTF section: %s %F%P: no sections assigned to phdrs %F%P: bfd_record_phdr failed: %E %X%P: section `%s' assigned to non-existent phdr `%s' %P: warning: --enable-non-contiguous-regions discards section `%pA' from `%pB' %X%P: required symbol `%s' not defined /opt/rh/gcc-toolset-15/root/usr/share/locale%s: error: too many @-files encountered %s: error: @-file refers to a directory %F%P: fatal error: libbfd ABI mismatch %X%P: can't set BFD default target to `%s': %E %P: unrecognised emulation mode: %s using external linker script: %s ================================================== %F%P: --no-define-common may not be used without -shared %F%P: cannot open map file %s: %E There are no discarded input sections Linker script and memory map %P: symbol `%pT' missing from main hash table Memory region Used Size Region Size %%age Used %F%P: cannot open dependency file %s: %E %P: link errors found, deleting executable `%s' %F%P: %s: final close failed: %E %F%P: unable to open for source of copy `%s' %F%P: unable to open for destination of copy `%s' %P%F: Failed to create hash table %P%F:%s: final close failed on object-only output: %E %P%F:%s: cannot open object-only output: %E %P%F:%s: cannot stat object-only output: %E %P%F:%s: read failed on object-only output: %E error copying private header datacan't create object-only sectioncan't set object-only section sizeerror adding object-only sectionerror copying private BFD data%P%F: failed to finish output with object-only section %P%F: failed to rename output with object-only section %P%F: failed to add object-only section: %s %s: total time in link: %ld.%06ld /* Script for -Ur */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) /* 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 { /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id 0: { *(.note.gnu.build-id) } .interp 0 : { *(.interp) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.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) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ldata 0 : { *(.rela.ldata) } .rela.lbss 0 : { *(.rela.lbss) } .rela.lrodata 0 : { *(.rela.lrodata) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } /* Start of the Read Only Data region. */ .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RO { *(.sframe) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* Exception handling. */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RW { *(.sframe) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections. */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ } .lbss 0 : { *(.lbss) } /* Start of the Large Data region. */ .lrodata 0 : { *(.lrodata) } .ldata 0 : { *(.ldata) } /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } /* 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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -r */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) /* 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 { /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id 0: { *(.note.gnu.build-id) } .interp 0 : { *(.interp) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.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) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ldata 0 : { *(.rela.ldata) } .rela.lbss 0 : { *(.rela.lbss) } .rela.lrodata 0 : { *(.rela.lrodata) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } /* Start of the Read Only Data region. */ .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RO { *(.sframe) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* Exception handling. */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RW { *(.sframe) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections. */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ } .lbss 0 : { *(.lbss) } /* Start of the Large Data region. */ .lrodata 0 : { *(.lrodata) } .ldata 0 : { *(.ldata) } /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } /* 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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -N */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = .; /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -n */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z separate-code -z relro -z now --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc -z separate-code -z relro -z now --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Default linker script, for normal executables */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -Ur */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) /* 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 { /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id 0: { *(.note.gnu.build-id) } .interp 0 : { *(.interp) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.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) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ldata 0 : { *(.rela.ldata) } .rela.lbss 0 : { *(.rela.lbss) } .rela.lrodata 0 : { *(.rela.lrodata) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } /* Start of the Read Only Data region. */ .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RO { *(.sframe) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* Exception handling. */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RW { *(.sframe) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections. */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ } .lbss 0 : { *(.lbss) } /* Start of the Large Data region. */ .lrodata 0 : { *(.lrodata) } .ldata 0 : { *(.ldata) } /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } /* 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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -r */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) /* 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 { /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id 0: { *(.note.gnu.build-id) } .interp 0 : { *(.interp) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.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) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ldata 0 : { *(.rela.ldata) } .rela.lbss 0 : { *(.rela.lbss) } .rela.lrodata 0 : { *(.rela.lrodata) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } /* Start of the Read Only Data region. */ .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RO { *(.sframe) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* Exception handling. */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RW { *(.sframe) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections. */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ } .lbss 0 : { *(.lbss) } /* Start of the Large Data region. */ .lrodata 0 : { *(.lrodata) } .ldata 0 : { *(.ldata) } /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } /* 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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -N */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = .; /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -n */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z separate-code -z relro -z now --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc -z separate-code -z relro -z now --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Default linker script, for normal executables */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64", "elf32-x86-64") OUTPUT_ARCH(i386:x64-32) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } -z noextern-protected-data Do not treat protected data symbol as external -z indirect-extern-access Enable indirect external access -z noindirect-extern-access Disable indirect external access (default) -z dynamic-undefined-weak Make undefined weak symbols dynamic -z nodynamic-undefined-weak Do not make undefined weak symbols dynamic -z noreloc-overflow Disable relocation overflow check -z call-nop=PADDING Use PADDING as 1-byte NOP for branch -z ibtplt Generate IBT-enabled PLT entries -z ibt Generate GNU_PROPERTY_X86_FEATURE_1_IBT -z shstk Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK -z cet-report=[none|warning|error] (default: none) Report missing IBT and SHSTK properties -z report-relative-reloc Report relative relocations -z x86-64-{baseline|v[234]} Mark x86-64-{baseline|v[234]} ISA level as needed -z isa-level-report=[none|all|needed|used] (default: none) Report x86-64 ISA level -z lam-u48 Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U48 -z lam-u48-report=[none|warning|error] (default: none) Report missing LAM_U48 property -z lam-u57 Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U57 -z lam-u57-report=[none|warning|error] (default: none) Report missing LAM_U57 property -z lam-report=[none|warning|error] (default: none) Report missing LAM_U48 and LAM_U57 properties -z mark-plt Mark PLT with dynamic tags -z nomark-plt Do not mark PLT with dynamic tags (default) -z pack-relative-relocs Pack relative relocations -z nopack-relative-relocs Do not pack relative relocations (default) no emulation specific options. Copyright (C) 2025 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or (at your option) a later version. This program has absolutely no warranty. %P: internal error: aborting at %s:%d in %s %P: error: unsupported option: %s %X%P: %H: prohibited cross reference from %s to `%pT' in %s %F%P: %s: non-ELF symbol in ELF BFD! %F%P: unknown ELF symbol visibility: %d! %F%P: unsupported input file size: %s (%ld bytes) %F%P: plugin_strdup failed to allocate memory: %s %F%P: could not create dummy IR bfd: %E %F%P: plugin failed to allocate memory for input: %s %F%P: %s: plugin reported error claiming file %X%P: .eh_frame/.stab edit: %E %F%P: %pA has both ordered and unordered sections %F%P: map sections to segments failed: %E %F%P: failed to strip zero-sized dynamic sections %F%P: looping in map_segments %F%P: %s: plugin symbol table corrupt (sym type %d) unknown LTO visibility value %x%P: %pB: symbol `%s' definition: %s, visibility: %s, resolution: %s %F%P: --compress-debug-sections=zstd: ld is not built with zstd support %F%P: invalid --compress-debug-sections option: `%s' %F%P: invalid hash style `%s' %F%P: invalid maximum page size `%s' %F%P: invalid common page size `%s' %F%P: invalid stack size `%s' start-stop-visibility=internalstart-stop-visibility=protected%F%P: invalid visibility in `-z %s'; must be default, internal, hidden, or protected%F%P: invalid number for -z call-nop=prefix-: %s %F%P: invalid number for -z call-nop=suffix-: %s %F%P: unsupported option: -z %s %F%P: invalid option for -z cet-report=: %s %F%P: invalid x86-64 ISA level: %s %F%P: invalid option for -z isa-level-report=: %s %F%P: invalid option for -z lam-u48-report=: %s %F%P: invalid option for -z lam-u57-report=: %s %F%P: invalid option for -z lam-report=: %s %F%P: error: linker script file '%s' appears multiple times /opt/rh/gcc-toolset-15/root/usr/lib/opt/rh/gcc-toolset-15/root/usr/bin%F%P: cannot open linker script file %s: %E %F:includes nested too deeply %F%P: invalid BFD target `%s' %P: skipping incompatible %s when searching for %s %F%P: attempted static link of dynamic object `%s' %P: have you installed the static version of the %s library ? %P: note to link with %s use -l:%s or rename it to lib%s /* Script for -Ur */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) /* 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 { /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id 0: { *(.note.gnu.build-id) } .interp 0 : { *(.interp) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.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.init 0 : { *(.rel.init) } .rel.text 0 : { *(.rel.text) } .rel.fini 0 : { *(.rel.fini) } .rel.rodata 0 : { *(.rel.rodata) } .rel.data.rel.ro 0 : { *(.rel.data.rel.ro) } .rel.data 0 : { *(.rel.data) } .rel.tdata 0 : { *(.rel.tdata) } .rel.tbss 0 : { *(.rel.tbss) } .rel.ctors 0 : { *(.rel.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rel.got 0 : { *(.rel.got) } .rel.bss 0 : { *(.rel.bss) } .rel.ifunc 0 : { *(.rel.ifunc) } .rel.plt 0 : { *(.rel.plt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } /* Start of the Read Only Data region. */ .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RO { *(.sframe) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* Exception handling. */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RW { *(.sframe) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections. */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ } /* Start of the Large Data region. */ /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } /* 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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -r */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) /* 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 { /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id 0: { *(.note.gnu.build-id) } .interp 0 : { *(.interp) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.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.init 0 : { *(.rel.init) } .rel.text 0 : { *(.rel.text) } .rel.fini 0 : { *(.rel.fini) } .rel.rodata 0 : { *(.rel.rodata) } .rel.data.rel.ro 0 : { *(.rel.data.rel.ro) } .rel.data 0 : { *(.rel.data) } .rel.tdata 0 : { *(.rel.tdata) } .rel.tbss 0 : { *(.rel.tbss) } .rel.ctors 0 : { *(.rel.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rel.got 0 : { *(.rel.got) } .rel.bss 0 : { *(.rel.bss) } .rel.ifunc 0 : { *(.rel.ifunc) } .rel.plt 0 : { *(.rel.plt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } /* Start of the Read Only Data region. */ .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RO { *(.sframe) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* Exception handling. */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RW { *(.sframe) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections. */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ } /* Start of the Large Data region. */ /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } /* 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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -N */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rel.dtors : { *(.rel.dtors) } .rel.got : { *(.rel.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rel.ifunc : { *(.rel.ifunc) } .rel.plt : { *(.rel.plt) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = .; /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -n */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rel.dtors : { *(.rel.dtors) } .rel.got : { *(.rel.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rel.ifunc : { *(.rel.ifunc) } .rel.plt : { *(.rel.plt) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z separate-code -z relro -z now --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rel.dtors : { *(.rel.dtors) } .rel.got : { *(.rel.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rel.ifunc : { *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rel.dtors : { *(.rel.dtors) } .rel.got : { *(.rel.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rel.ifunc : { *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rel.dtors : { *(.rel.dtors) } .rel.got : { *(.rel.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rel.ifunc : { *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc -z separate-code -z relro -z now --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rel.dtors : { *(.rel.dtors) } .rel.got : { *(.rel.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rel.ifunc : { *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rel.dtors : { *(.rel.dtors) } .rel.got : { *(.rel.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rel.ifunc : { *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rel.dtors : { *(.rel.dtors) } .rel.got : { *(.rel.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rel.ifunc : { *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -shared -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_end = .); PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ifunc) } .rel.plt : { *(.rel.plt) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Default linker script, for normal executables */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rel.dtors : { *(.rel.dtors) } .rel.got : { *(.rel.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rel.ifunc : { *(.rel.ifunc) } .rel.plt : { *(.rel.plt) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Start of the Read Only Data region. */ .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rel.dtors : { *(.rel.dtors) } .rel.got : { *(.rel.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rel.ifunc : { *(.rel.ifunc) } .rel.plt : { *(.rel.plt) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/i386-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; /* Place the build-id as close to the ELF headers as possible. This maximises the chance the build-id will be present in core files, which GDB can then use to locate the associated debuginfo file. */ .note.gnu.build-id : { *(.note.gnu.build-id) } .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rel.dtors : { *(.rel.dtors) } .rel.got : { *(.rel.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rel.ifunc : { *(.rel.ifunc) } .rel.plt : { *(.rel.plt) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .relr.dyn : { *(.relr.dyn) } /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the executable code region. */ .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); /* Align the text segment. */ . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Start of the Read Only Data region. */ /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Various note sections. Placed here so that they are always included in the read-only segment and not treated as orphan sections. The current orphan handling algorithm does place note sections after R/O data, but this is not guaranteed to always be the case. */ .note.build-id : { *(.note.build-id) } .note.GNU-stack : { *(.note.GNU-stack) } .note.gnu-property : { *(.note.gnu-property) } .note.ABI-tag : { *(.note.ABI-tag) } .note.package : { *(.note.package) } .note.dlopen : { *(.note.dlopen) } .note.netbsd.ident : { *(.note.netbsd.ident) } .note.openbsd.ident : { *(.note.openbsd.ident) } /* Start of the Read Write Data region. */ /* 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_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling. */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections. */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that in the common case of there only being one type of .bss section, the 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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); /* Start of the Large Data region. */ . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Start of the Tiny Data region. */ /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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 .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .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) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } --base_file Generate a base file for relocatable DLLs --dll Set image base to the default for DLLs --file-alignment Set file alignment --heap Set initial size of the heap --image-base
Set start address of the executable --major-image-version Set version number of the executable --major-os-version Set minimum required OS version --major-subsystem-version Set minimum required OS subsystem version --minor-image-version Set revision number of the executable --minor-os-version Set minimum required OS revision --minor-subsystem-version Set minimum required OS subsystem revision --section-alignment Set section alignment --stack Set size of the initial stack --subsystem [:] Set required OS subsystem [& version] --support-old-code Support interworking with old code --[no-]leading-underscore Set explicit symbol underscore prefix mode --[no-]insert-timestamp Use a real timestamp rather than zero (default) This makes binaries non-deterministic --add-stdcall-alias Export symbols with and without @nn --disable-stdcall-fixup Don't link _sym to _sym@nn --enable-stdcall-fixup Link _sym to _sym@nn without warnings --exclude-symbols sym,sym,... Exclude symbols from automatic export --exclude-all-symbols Exclude all symbols from automatic export --exclude-libs lib,lib,... Exclude libraries from automatic export --exclude-modules-for-implib mod,mod,... Exclude objects, archive members from auto export, place into import library instead --export-all-symbols Automatically export all globals to DLL --kill-at Remove @nn from exported symbols --output-def Generate a .DEF file for the built DLL --warn-duplicate-exports Warn about duplicate exports --compat-implib Create backward compatible import libs; create __imp_ as well --enable-auto-image-base Automatically choose image base for DLLs unless user specifies one --disable-auto-image-base Do not auto-choose image base (default) --dll-search-prefix= When linking dynamically to a dll without an importlib, use .dll in preference to lib.dll --enable-auto-import Do sophisticated linking of _sym to __imp_sym for DATA references --disable-auto-import Do not auto-import DATA items from DLLs --enable-runtime-pseudo-reloc Work around auto-import limitations by adding pseudo-relocations resolved at runtime --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for auto-imported DATA --enable-extra-pep-debug Enable verbose debug output when building or linking to DLLs (esp. auto-import) --enable-long-section-names Use long COFF section names even in executable image files --disable-long-section-names Never use long COFF section names, even in object files --[disable-]high-entropy-va Image is compatible with 64-bit address space layout randomization (ASLR) --[disable-]dynamicbase Image base address may be relocated using address space layout randomization (ASLR) --enable-reloc-section Create the base relocation table --disable-reloc-section Do not create the base relocation table --[disable-]forceinteg Code integrity checks are enforced --[disable-]nxcompat Image is compatible with data execution prevention --[disable-]no-isolation Image understands isolation but do not isolate the image --[disable-]no-seh Image does not use SEH; no SE handler may be called in this image --[disable-]no-bind Do not bind this image --[disable-]wdmdriver Driver uses the WDM model --[disable-]tsaware Image is Terminal Server aware --build-id[=STYLE] Generate build ID %P: %H: cannot get section contents - auto-import exception import of 0x%lx(0x%lx) sec_addr=0x%lxcreating runtime pseudo-reloc entry for %s (addend=%d) %X%P: %H: variable '%pT' can't be auto-imported; please read the documentation for ld's --enable-auto-import for details %P: warning: .buildid section discarded, --build-id ignored %F%P: invalid hex number for PE parameter '%s' %F%P: strange hex info for PE parameter '%s' %F%P: cannot open base file %s %P: warning: bad version number in -subsystem option %F%P: invalid subsystem type %s %P: warning, file alignment > section alignment %P: warning: --export-dynamic is not supported for PE+ targets, did you mean --export-all-symbols? %P: warning: unrecognized --build-id style ignored %P: warning: cannot create .buildid section, --build-id ignored %F%P: cannot perform PE operations on non PE output file '%pB' Info: resolving %s by linking to %s (auto-import) %P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs warning: resolving %s by linking to %s Use --enable-stdcall-fixup to disable these warnings Use --disable-stdcall-fixup to disable these fixups %P: warning: overwriting decorated name %s with %s %X%P: cannot export %s: invalid export name %X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d) %P: warning, duplicate EXPORT: %s %X%P: cannot export %s: symbol not defined %X%P: cannot export %s: symbol wrong type (%d vs %d) %X%P: cannot export %s: symbol not found %X%P: error: ordinal used twice: %d (%s vs %s) %X%P: error: export ordinal too large: %d %X%P: unable to process relocs: %E use-nul-prefixed-import-tablesenable-runtime-pseudo-reloc-v2/* Script for -Ur */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT(pe-x86-64) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-pep/lib"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { .text : { *(.text) . = ALIGN(8); } /* The Cygwin32 library uses a section to avoid copying certain data on fork. This used to be named ".data". The linker used to include this between __data_start__ and __data_end__, but that breaks building the cygwin32 dll. Instead, we name the section ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ .data : { *(.data) KEEP(*(.jcr)) } .rdata : { *(.rdata) . = ALIGN(4); /* .ctors & .dtors */ . = ALIGN(8); /* Note: we always define __CTOR_LIST__ and ___CTOR_LIST__ here, we do not PROVIDE them. This is because the ctors.o startup code in libgcc defines them as common symbols, with the expectation that they will be overridden by the definitions here. If we PROVIDE the symbols then they will not be overridden and global constructors will not be run. See PR 22762 for more details. This does mean that it is not possible for a user to define their own __CTOR_LIST__ and __DTOR_LIST__ symbols; if they do, the content from those variables are included but the symbols defined here silently take precedence. If they truly need to be redefined, a custom linker script will have to be used. (The custom script can just be a copy of this script with the PROVIDE() qualifiers added). In particular this means that ld -Ur does not work, because the proper __CTOR_LIST__ set by ld -Ur is overridden by a bogus __CTOR_LIST__ set by the final link. See PR 46. */ ___CTOR_LIST__ = .; __CTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.ctors)); KEEP (*(.ctor)); KEEP (*(SORT_BY_NAME(.ctors.*))); LONG (0); LONG (0); /* See comment about __CTOR_LIST__ above. The same reasoning applies here too. */ ___DTOR_LIST__ = .; __DTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.dtors)); KEEP (*(.dtor)); KEEP (*(SORT_BY_NAME(.dtors.*))); LONG (0); LONG (0); /* .CRT */ /* ___crt_xl_end__ is defined in the TLS Directory support code */ } .eh_frame : { KEEP (*(.eh_frame)) } .pdata : { KEEP(*(.pdata)) } .xdata : { KEEP(*(.xdata)) } .bss : { *(.bss) *(COMMON) } .edata : { *(.edata) } /DISCARD/ : { *(.debug$S) *(.debug$T) *(.debug$F) } .idata : { /* This cannot currently be handled with grouped sections. See pep.em:sort_sections. */ } /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be at the end of the .tls section. This is important because _tls_start MUST be at the beginning of the section to enable SECREL32 relocations with TLS data. */ .tls : { *(.tls) } .endjunk : { /* end is deprecated, don't use it */ } .rsrc : SUBALIGN(4) { *(.rsrc) } .reloc : { *(.reloc) } .stab : { *(.stab) } .stabstr : { *(.stabstr) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section. Unlike other targets that fake this by putting the section VMA at 0, the PE format will not allow it. */ /* DWARF 1.1 and DWARF 2. */ .debug_aranges : { *(.debug_aranges) } .zdebug_aranges : { *(.zdebug_aranges) } .debug_pubnames : { *(.debug_pubnames) } .zdebug_pubnames : { *(.zdebug_pubnames) } /* DWARF 2. */ .debug_info : { *(.debug_info) } .zdebug_info : { *(.zdebug_info) } .debug_abbrev : { *(.debug_abbrev) } .zdebug_abbrev : { *(.zdebug_abbrev) } .debug_line : { *(.debug_line) } .zdebug_line : { *(.zdebug_line) } .debug_frame : { *(.debug_frame*) } .zdebug_frame : { *(.zdebug_frame*) } .debug_str : { *(.debug_str) } .zdebug_str : { *(.zdebug_str) } .debug_loc : { *(.debug_loc) } .zdebug_loc : { *(.zdebug_loc) } .debug_macinfo : { *(.debug_macinfo) } .zdebug_macinfo : { *(.zdebug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames : { *(.debug_weaknames) } .zdebug_weaknames : { *(.zdebug_weaknames) } .debug_funcnames : { *(.debug_funcnames) } .zdebug_funcnames : { *(.zdebug_funcnames) } .debug_typenames : { *(.debug_typenames) } .zdebug_typenames : { *(.zdebug_typenames) } .debug_varnames : { *(.debug_varnames) } .zdebug_varnames : { *(.zdebug_varnames) } /* DWARF 3. */ .debug_pubtypes : { *(.debug_pubtypes) } .zdebug_pubtypes : { *(.zdebug_pubtypes) } .debug_ranges : { *(.debug_ranges) } .zdebug_ranges : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types : { *(.debug_types) } .zdebug_types : { *(.zdebug_types) } /* DWARF 5. */ .debug_addr : { *(.debug_addr) } .zdebug_addr : { *(.zdebug_addr) } .debug_line_str : { *(.debug_line_str) } .zdebug_line_str : { *(.zdebug_line_str) } .debug_loclists : { *(.debug_loclists) } .zdebug_loclists : { *(.zdebug_loclists) } .debug_macro : { *(.debug_macro) } .zdebug_macro : { *(.zdebug_macro) } .debug_names : { *(.debug_names) } .zdebug_names : { *(.zdebug_names) } .debug_rnglists : { *(.debug_rnglists) } .zdebug_rnglists : { *(.zdebug_rnglists) } .debug_str_offsets : { *(.debug_str_offsets) } .zdebug_str_offsets : { *(.zdebug_str_offsets) } .debug_sup : { *(.debug_sup) } /* For Go and Rust. */ .debug_gdb_scripts : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts : { *(.zdebug_gdb_scripts) } } /* Script for -r */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT(pe-x86-64) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-pep/lib"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { .text : { *(.text) } /* The Cygwin32 library uses a section to avoid copying certain data on fork. This used to be named ".data". The linker used to include this between __data_start__ and __data_end__, but that breaks building the cygwin32 dll. Instead, we name the section ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ .data : { *(.data) KEEP(*(.jcr)) } .rdata : { *(.rdata) . = ALIGN(4); /* .ctors & .dtors */ /* .CRT */ /* ___crt_xl_end__ is defined in the TLS Directory support code */ } .eh_frame : { KEEP (*(.eh_frame)) } .pdata : { KEEP(*(.pdata)) } .xdata : { KEEP(*(.xdata)) } .bss : { *(.bss) *(COMMON) } .edata : { *(.edata) } /DISCARD/ : { *(.debug$S) *(.debug$T) *(.debug$F) } .idata : { /* This cannot currently be handled with grouped sections. See pep.em:sort_sections. */ } /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be at the end of the .tls section. This is important because _tls_start MUST be at the beginning of the section to enable SECREL32 relocations with TLS data. */ .tls : { *(.tls) } .endjunk : { /* end is deprecated, don't use it */ } .rsrc : SUBALIGN(4) { *(.rsrc) } .reloc : { *(.reloc) } .stab : { *(.stab) } .stabstr : { *(.stabstr) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section. Unlike other targets that fake this by putting the section VMA at 0, the PE format will not allow it. */ /* DWARF 1.1 and DWARF 2. */ .debug_aranges : { *(.debug_aranges) } .zdebug_aranges : { *(.zdebug_aranges) } .debug_pubnames : { *(.debug_pubnames) } .zdebug_pubnames : { *(.zdebug_pubnames) } /* DWARF 2. */ .debug_info : { *(.debug_info) } .zdebug_info : { *(.zdebug_info) } .debug_abbrev : { *(.debug_abbrev) } .zdebug_abbrev : { *(.zdebug_abbrev) } .debug_line : { *(.debug_line) } .zdebug_line : { *(.zdebug_line) } .debug_frame : { *(.debug_frame*) } .zdebug_frame : { *(.zdebug_frame*) } .debug_str : { *(.debug_str) } .zdebug_str : { *(.zdebug_str) } .debug_loc : { *(.debug_loc) } .zdebug_loc : { *(.zdebug_loc) } .debug_macinfo : { *(.debug_macinfo) } .zdebug_macinfo : { *(.zdebug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames : { *(.debug_weaknames) } .zdebug_weaknames : { *(.zdebug_weaknames) } .debug_funcnames : { *(.debug_funcnames) } .zdebug_funcnames : { *(.zdebug_funcnames) } .debug_typenames : { *(.debug_typenames) } .zdebug_typenames : { *(.zdebug_typenames) } .debug_varnames : { *(.debug_varnames) } .zdebug_varnames : { *(.zdebug_varnames) } /* DWARF 3. */ .debug_pubtypes : { *(.debug_pubtypes) } .zdebug_pubtypes : { *(.zdebug_pubtypes) } .debug_ranges : { *(.debug_ranges) } .zdebug_ranges : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types : { *(.debug_types) } .zdebug_types : { *(.zdebug_types) } /* DWARF 5. */ .debug_addr : { *(.debug_addr) } .zdebug_addr : { *(.zdebug_addr) } .debug_line_str : { *(.debug_line_str) } .zdebug_line_str : { *(.zdebug_line_str) } .debug_loclists : { *(.debug_loclists) } .zdebug_loclists : { *(.zdebug_loclists) } .debug_macro : { *(.debug_macro) } .zdebug_macro : { *(.zdebug_macro) } .debug_names : { *(.debug_names) } .zdebug_names : { *(.zdebug_names) } .debug_rnglists : { *(.debug_rnglists) } .zdebug_rnglists : { *(.zdebug_rnglists) } .debug_str_offsets : { *(.debug_str_offsets) } .zdebug_str_offsets : { *(.zdebug_str_offsets) } .debug_sup : { *(.debug_sup) } /* For Go and Rust. */ .debug_gdb_scripts : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts : { *(.zdebug_gdb_scripts) } } /* Script for -N */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT(pei-x86-64) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-pep/lib"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Make the virtual address and file offset synced if the alignment is lower than the target page size. */ . = SIZEOF_HEADERS; . = ALIGN(__section_alignment__); .text __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) : { KEEP (*(SORT_NONE(.init))) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) . = ALIGN(8); KEEP (*(SORT_NONE(.fini))) /* ??? Why is .gcc_exc here? */ *(.gcc_exc) PROVIDE (etext = .); KEEP (*(.gcc_except_table)) } /* The Cygwin32 library uses a section to avoid copying certain data on fork. This used to be named ".data". The linker used to include this between __data_start__ and __data_end__, but that breaks building the cygwin32 dll. Instead, we name the section ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ .data BLOCK(__section_alignment__) : { __data_start__ = . ; *(.data) *(.data2) *(SORT(.data$*)) KEEP(*(.jcr)) __data_end__ = . ; *(.data_cygwin_nocopy) } .rdata BLOCK(__section_alignment__) : { *(.rdata) *(SORT(.rdata$*)) . = ALIGN(4); __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; /* .ctors & .dtors */ . = ALIGN(8); /* Note: we always define __CTOR_LIST__ and ___CTOR_LIST__ here, we do not PROVIDE them. This is because the ctors.o startup code in libgcc defines them as common symbols, with the expectation that they will be overridden by the definitions here. If we PROVIDE the symbols then they will not be overridden and global constructors will not be run. See PR 22762 for more details. This does mean that it is not possible for a user to define their own __CTOR_LIST__ and __DTOR_LIST__ symbols; if they do, the content from those variables are included but the symbols defined here silently take precedence. If they truly need to be redefined, a custom linker script will have to be used. (The custom script can just be a copy of this script with the PROVIDE() qualifiers added). In particular this means that ld -Ur does not work, because the proper __CTOR_LIST__ set by ld -Ur is overridden by a bogus __CTOR_LIST__ set by the final link. See PR 46. */ ___CTOR_LIST__ = .; __CTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.ctors)); KEEP (*(.ctor)); KEEP (*(SORT_BY_NAME(.ctors.*))); LONG (0); LONG (0); /* See comment about __CTOR_LIST__ above. The same reasoning applies here too. */ ___DTOR_LIST__ = .; __DTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.dtors)); KEEP (*(.dtor)); KEEP (*(SORT_BY_NAME(.dtors.*))); LONG (0); LONG (0); /* .CRT */ ___crt_xc_start__ = . ; KEEP (*(SORT(.CRT$XC*))) /* C initialization */ ___crt_xc_end__ = . ; ___crt_xi_start__ = . ; KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */ ___crt_xi_end__ = . ; ___crt_xl_start__ = . ; KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */ /* ___crt_xl_end__ is defined in the TLS Directory support code */ ___crt_xp_start__ = . ; KEEP (*(SORT(.CRT$XP*))) /* Pre-termination */ ___crt_xp_end__ = . ; ___crt_xt_start__ = . ; KEEP (*(SORT(.CRT$XT*))) /* Termination */ ___crt_xt_end__ = . ; ___crt_xd_start__ = . ; KEEP (*(SORT(.CRT$XD*))) /* Dynamic TLS Initializer */ ___crt_xd_end__ = . ; } ___RUNTIME_PSEUDO_RELOC_LIST_END__ = __rt_psrelocs_end; __RUNTIME_PSEUDO_RELOC_LIST_END__ = __rt_psrelocs_end; ___RUNTIME_PSEUDO_RELOC_LIST__ = __rt_psrelocs_start; __RUNTIME_PSEUDO_RELOC_LIST__ = __rt_psrelocs_start; .eh_frame BLOCK(__section_alignment__) : { KEEP (*(.eh_frame*)) } .pdata BLOCK(__section_alignment__) : { KEEP(*(.pdata*)) } .xdata BLOCK(__section_alignment__) : { KEEP(*(.xdata*)) } .bss BLOCK(__section_alignment__) : { __bss_start__ = . ; *(.bss) *(COMMON) __bss_end__ = . ; } .edata BLOCK(__section_alignment__) : { *(.edata) } /DISCARD/ : { *(.debug$S) *(.debug$T) *(.debug$F) *(.drectve) *(.note.GNU-stack) *(.gnu.lto_*) *(.gnu_object_only) } .idata BLOCK(__section_alignment__) : { /* This cannot currently be handled with grouped sections. See pep.em:sort_sections. */ KEEP (SORT(*)(.idata$2)) KEEP (SORT(*)(.idata$3)) /* These zeroes mark the end of the import list. */ LONG (0); LONG (0); LONG (0); LONG (0); LONG (0); . = ALIGN(8); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; SORT(*)(.idata$5) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be at the end of the .tls section. This is important because _tls_start MUST be at the beginning of the section to enable SECREL32 relocations with TLS data. */ .tls BLOCK(__section_alignment__) : { ___tls_start__ = . ; KEEP (*(.tls$AAA)) KEEP (*(.tls)) KEEP (*(.tls$)) KEEP (*(SORT(.tls$*))) KEEP (*(.tls$ZZZ)) ___tls_end__ = . ; } .endjunk BLOCK(__section_alignment__) : { /* end is deprecated, don't use it */ PROVIDE (end = .); PROVIDE ( _end = .); __end__ = .; } .rsrc BLOCK(__section_alignment__) : SUBALIGN(4) { KEEP (*(.rsrc)) KEEP (*(.rsrc$*)) } .reloc BLOCK(__section_alignment__) : { *(.reloc) } .stab BLOCK(__section_alignment__) (NOLOAD) : { *(.stab) } .stabstr BLOCK(__section_alignment__) (NOLOAD) : { *(.stabstr) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section. Unlike other targets that fake this by putting the section VMA at 0, the PE format will not allow it. */ /* DWARF 1.1 and DWARF 2. */ .debug_aranges BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_aranges) } .zdebug_aranges BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_aranges) } .debug_pubnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubnames) } .zdebug_pubnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubnames) } /* DWARF 2. */ .debug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_info .gnu.linkonce.wi.*) } .zdebug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_info .zdebug.gnu.linkonce.wi.*) } .debug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_abbrev) } .zdebug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_abbrev) } .debug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line) } .zdebug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line) } .debug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_frame*) } .zdebug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_frame*) } .debug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str) } .zdebug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str) } .debug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loc) } .zdebug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loc) } .debug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) } .zdebug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_weaknames) } .zdebug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_weaknames) } .debug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_funcnames) } .zdebug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_funcnames) } .debug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_typenames) } .zdebug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_typenames) } .debug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_varnames) } .zdebug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_varnames) } /* DWARF 3. */ .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } .debug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_ranges) } .zdebug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_types .gnu.linkonce.wt.*) } .zdebug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_types .gnu.linkonce.wt.*) } /* DWARF 5. */ .debug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_addr) } .zdebug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_addr) } .debug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line_str) } .zdebug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line_str) } .debug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loclists) } .zdebug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loclists) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } .debug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_names) } .zdebug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_names) } .debug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_rnglists) } .zdebug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_rnglists) } .debug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str_offsets) } .zdebug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str_offsets) } .debug_sup BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_sup) } /* For Go and Rust. */ .debug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_gdb_scripts) } } /* Script for -n */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT(pei-x86-64) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-pep/lib"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Make the virtual address and file offset synced if the alignment is lower than the target page size. */ . = SIZEOF_HEADERS; . = ALIGN(__section_alignment__); .text __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) : { KEEP (*(SORT_NONE(.init))) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) . = ALIGN(8); KEEP (*(SORT_NONE(.fini))) /* ??? Why is .gcc_exc here? */ *(.gcc_exc) PROVIDE (etext = .); KEEP (*(.gcc_except_table)) } /* The Cygwin32 library uses a section to avoid copying certain data on fork. This used to be named ".data". The linker used to include this between __data_start__ and __data_end__, but that breaks building the cygwin32 dll. Instead, we name the section ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ .data BLOCK(__section_alignment__) : { __data_start__ = . ; *(.data) *(.data2) *(SORT(.data$*)) KEEP(*(.jcr)) __data_end__ = . ; *(.data_cygwin_nocopy) } .rdata BLOCK(__section_alignment__) : { *(.rdata) *(SORT(.rdata$*)) . = ALIGN(4); __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; /* .ctors & .dtors */ . = ALIGN(8); /* Note: we always define __CTOR_LIST__ and ___CTOR_LIST__ here, we do not PROVIDE them. This is because the ctors.o startup code in libgcc defines them as common symbols, with the expectation that they will be overridden by the definitions here. If we PROVIDE the symbols then they will not be overridden and global constructors will not be run. See PR 22762 for more details. This does mean that it is not possible for a user to define their own __CTOR_LIST__ and __DTOR_LIST__ symbols; if they do, the content from those variables are included but the symbols defined here silently take precedence. If they truly need to be redefined, a custom linker script will have to be used. (The custom script can just be a copy of this script with the PROVIDE() qualifiers added). In particular this means that ld -Ur does not work, because the proper __CTOR_LIST__ set by ld -Ur is overridden by a bogus __CTOR_LIST__ set by the final link. See PR 46. */ ___CTOR_LIST__ = .; __CTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.ctors)); KEEP (*(.ctor)); KEEP (*(SORT_BY_NAME(.ctors.*))); LONG (0); LONG (0); /* See comment about __CTOR_LIST__ above. The same reasoning applies here too. */ ___DTOR_LIST__ = .; __DTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.dtors)); KEEP (*(.dtor)); KEEP (*(SORT_BY_NAME(.dtors.*))); LONG (0); LONG (0); /* .CRT */ ___crt_xc_start__ = . ; KEEP (*(SORT(.CRT$XC*))) /* C initialization */ ___crt_xc_end__ = . ; ___crt_xi_start__ = . ; KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */ ___crt_xi_end__ = . ; ___crt_xl_start__ = . ; KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */ /* ___crt_xl_end__ is defined in the TLS Directory support code */ ___crt_xp_start__ = . ; KEEP (*(SORT(.CRT$XP*))) /* Pre-termination */ ___crt_xp_end__ = . ; ___crt_xt_start__ = . ; KEEP (*(SORT(.CRT$XT*))) /* Termination */ ___crt_xt_end__ = . ; ___crt_xd_start__ = . ; KEEP (*(SORT(.CRT$XD*))) /* Dynamic TLS Initializer */ ___crt_xd_end__ = . ; } ___RUNTIME_PSEUDO_RELOC_LIST_END__ = __rt_psrelocs_end; __RUNTIME_PSEUDO_RELOC_LIST_END__ = __rt_psrelocs_end; ___RUNTIME_PSEUDO_RELOC_LIST__ = __rt_psrelocs_start; __RUNTIME_PSEUDO_RELOC_LIST__ = __rt_psrelocs_start; .eh_frame BLOCK(__section_alignment__) : { KEEP (*(.eh_frame*)) } .pdata BLOCK(__section_alignment__) : { KEEP(*(.pdata*)) } .xdata BLOCK(__section_alignment__) : { KEEP(*(.xdata*)) } .bss BLOCK(__section_alignment__) : { __bss_start__ = . ; *(.bss) *(COMMON) __bss_end__ = . ; } .edata BLOCK(__section_alignment__) : { *(.edata) } /DISCARD/ : { *(.debug$S) *(.debug$T) *(.debug$F) *(.drectve) *(.note.GNU-stack) *(.gnu.lto_*) *(.gnu_object_only) } .idata BLOCK(__section_alignment__) : { /* This cannot currently be handled with grouped sections. See pep.em:sort_sections. */ KEEP (SORT(*)(.idata$2)) KEEP (SORT(*)(.idata$3)) /* These zeroes mark the end of the import list. */ LONG (0); LONG (0); LONG (0); LONG (0); LONG (0); . = ALIGN(8); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; SORT(*)(.idata$5) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be at the end of the .tls section. This is important because _tls_start MUST be at the beginning of the section to enable SECREL32 relocations with TLS data. */ .tls BLOCK(__section_alignment__) : { ___tls_start__ = . ; KEEP (*(.tls$AAA)) KEEP (*(.tls)) KEEP (*(.tls$)) KEEP (*(SORT(.tls$*))) KEEP (*(.tls$ZZZ)) ___tls_end__ = . ; } .endjunk BLOCK(__section_alignment__) : { /* end is deprecated, don't use it */ PROVIDE (end = .); PROVIDE ( _end = .); __end__ = .; } .rsrc BLOCK(__section_alignment__) : SUBALIGN(4) { KEEP (*(.rsrc)) KEEP (*(.rsrc$*)) } .reloc BLOCK(__section_alignment__) : { *(.reloc) } .stab BLOCK(__section_alignment__) (NOLOAD) : { *(.stab) } .stabstr BLOCK(__section_alignment__) (NOLOAD) : { *(.stabstr) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section. Unlike other targets that fake this by putting the section VMA at 0, the PE format will not allow it. */ /* DWARF 1.1 and DWARF 2. */ .debug_aranges BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_aranges) } .zdebug_aranges BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_aranges) } .debug_pubnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubnames) } .zdebug_pubnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubnames) } /* DWARF 2. */ .debug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_info .gnu.linkonce.wi.*) } .zdebug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_info .zdebug.gnu.linkonce.wi.*) } .debug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_abbrev) } .zdebug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_abbrev) } .debug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line) } .zdebug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line) } .debug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_frame*) } .zdebug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_frame*) } .debug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str) } .zdebug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str) } .debug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loc) } .zdebug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loc) } .debug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) } .zdebug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_weaknames) } .zdebug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_weaknames) } .debug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_funcnames) } .zdebug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_funcnames) } .debug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_typenames) } .zdebug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_typenames) } .debug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_varnames) } .zdebug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_varnames) } /* DWARF 3. */ .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } .debug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_ranges) } .zdebug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_types .gnu.linkonce.wt.*) } .zdebug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_types .gnu.linkonce.wt.*) } /* DWARF 5. */ .debug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_addr) } .zdebug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_addr) } .debug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line_str) } .zdebug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line_str) } .debug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loclists) } .zdebug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loclists) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } .debug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_names) } .zdebug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_names) } .debug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_rnglists) } .zdebug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_rnglists) } .debug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str_offsets) } .zdebug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str_offsets) } .debug_sup BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_sup) } /* For Go and Rust. */ .debug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_gdb_scripts) } } /* Default linker script, for normal executables */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT(pei-x86-64) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-pep/lib"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Make the virtual address and file offset synced if the alignment is lower than the target page size. */ . = SIZEOF_HEADERS; . = ALIGN(__section_alignment__); .text __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) : { KEEP (*(SORT_NONE(.init))) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) . = ALIGN(8); KEEP (*(SORT_NONE(.fini))) /* ??? Why is .gcc_exc here? */ *(.gcc_exc) PROVIDE (etext = .); KEEP (*(.gcc_except_table)) } /* The Cygwin32 library uses a section to avoid copying certain data on fork. This used to be named ".data". The linker used to include this between __data_start__ and __data_end__, but that breaks building the cygwin32 dll. Instead, we name the section ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ .data BLOCK(__section_alignment__) : { __data_start__ = . ; *(.data) *(.data2) *(SORT(.data$*)) KEEP(*(.jcr)) __data_end__ = . ; *(.data_cygwin_nocopy) } .rdata BLOCK(__section_alignment__) : { *(.rdata) *(SORT(.rdata$*)) . = ALIGN(4); __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; /* .ctors & .dtors */ . = ALIGN(8); /* Note: we always define __CTOR_LIST__ and ___CTOR_LIST__ here, we do not PROVIDE them. This is because the ctors.o startup code in libgcc defines them as common symbols, with the expectation that they will be overridden by the definitions here. If we PROVIDE the symbols then they will not be overridden and global constructors will not be run. See PR 22762 for more details. This does mean that it is not possible for a user to define their own __CTOR_LIST__ and __DTOR_LIST__ symbols; if they do, the content from those variables are included but the symbols defined here silently take precedence. If they truly need to be redefined, a custom linker script will have to be used. (The custom script can just be a copy of this script with the PROVIDE() qualifiers added). In particular this means that ld -Ur does not work, because the proper __CTOR_LIST__ set by ld -Ur is overridden by a bogus __CTOR_LIST__ set by the final link. See PR 46. */ ___CTOR_LIST__ = .; __CTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.ctors)); KEEP (*(.ctor)); KEEP (*(SORT_BY_NAME(.ctors.*))); LONG (0); LONG (0); /* See comment about __CTOR_LIST__ above. The same reasoning applies here too. */ ___DTOR_LIST__ = .; __DTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.dtors)); KEEP (*(.dtor)); KEEP (*(SORT_BY_NAME(.dtors.*))); LONG (0); LONG (0); /* .CRT */ ___crt_xc_start__ = . ; KEEP (*(SORT(.CRT$XC*))) /* C initialization */ ___crt_xc_end__ = . ; ___crt_xi_start__ = . ; KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */ ___crt_xi_end__ = . ; ___crt_xl_start__ = . ; KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */ /* ___crt_xl_end__ is defined in the TLS Directory support code */ ___crt_xp_start__ = . ; KEEP (*(SORT(.CRT$XP*))) /* Pre-termination */ ___crt_xp_end__ = . ; ___crt_xt_start__ = . ; KEEP (*(SORT(.CRT$XT*))) /* Termination */ ___crt_xt_end__ = . ; ___crt_xd_start__ = . ; KEEP (*(SORT(.CRT$XD*))) /* Dynamic TLS Initializer */ ___crt_xd_end__ = . ; } ___RUNTIME_PSEUDO_RELOC_LIST_END__ = __rt_psrelocs_end; __RUNTIME_PSEUDO_RELOC_LIST_END__ = __rt_psrelocs_end; ___RUNTIME_PSEUDO_RELOC_LIST__ = __rt_psrelocs_start; __RUNTIME_PSEUDO_RELOC_LIST__ = __rt_psrelocs_start; .eh_frame BLOCK(__section_alignment__) : { KEEP (*(.eh_frame*)) } .pdata BLOCK(__section_alignment__) : { KEEP(*(.pdata*)) } .xdata BLOCK(__section_alignment__) : { KEEP(*(.xdata*)) } .bss BLOCK(__section_alignment__) : { __bss_start__ = . ; *(.bss) *(COMMON) __bss_end__ = . ; } .edata BLOCK(__section_alignment__) : { *(.edata) } /DISCARD/ : { *(.debug$S) *(.debug$T) *(.debug$F) *(.drectve) *(.note.GNU-stack) *(.gnu.lto_*) *(.gnu_object_only) } .idata BLOCK(__section_alignment__) : { /* This cannot currently be handled with grouped sections. See pep.em:sort_sections. */ KEEP (SORT(*)(.idata$2)) KEEP (SORT(*)(.idata$3)) /* These zeroes mark the end of the import list. */ LONG (0); LONG (0); LONG (0); LONG (0); LONG (0); . = ALIGN(8); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; SORT(*)(.idata$5) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be at the end of the .tls section. This is important because _tls_start MUST be at the beginning of the section to enable SECREL32 relocations with TLS data. */ .tls BLOCK(__section_alignment__) : { ___tls_start__ = . ; KEEP (*(.tls$AAA)) KEEP (*(.tls)) KEEP (*(.tls$)) KEEP (*(SORT(.tls$*))) KEEP (*(.tls$ZZZ)) ___tls_end__ = . ; } .endjunk BLOCK(__section_alignment__) : { /* end is deprecated, don't use it */ PROVIDE (end = .); PROVIDE ( _end = .); __end__ = .; } .rsrc BLOCK(__section_alignment__) : SUBALIGN(4) { KEEP (*(.rsrc)) KEEP (*(.rsrc$*)) } .reloc BLOCK(__section_alignment__) : { *(.reloc) } .stab BLOCK(__section_alignment__) (NOLOAD) : { *(.stab) } .stabstr BLOCK(__section_alignment__) (NOLOAD) : { *(.stabstr) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section. Unlike other targets that fake this by putting the section VMA at 0, the PE format will not allow it. */ /* DWARF 1.1 and DWARF 2. */ .debug_aranges BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_aranges) } .zdebug_aranges BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_aranges) } .debug_pubnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubnames) } .zdebug_pubnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubnames) } /* DWARF 2. */ .debug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_info .gnu.linkonce.wi.*) } .zdebug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_info .zdebug.gnu.linkonce.wi.*) } .debug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_abbrev) } .zdebug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_abbrev) } .debug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line) } .zdebug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line) } .debug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_frame*) } .zdebug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_frame*) } .debug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str) } .zdebug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str) } .debug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loc) } .zdebug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loc) } .debug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) } .zdebug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_weaknames) } .zdebug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_weaknames) } .debug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_funcnames) } .zdebug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_funcnames) } .debug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_typenames) } .zdebug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_typenames) } .debug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_varnames) } .zdebug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_varnames) } /* DWARF 3. */ .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } .debug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_ranges) } .zdebug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_types .gnu.linkonce.wt.*) } .zdebug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_types .gnu.linkonce.wt.*) } /* DWARF 5. */ .debug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_addr) } .zdebug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_addr) } .debug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line_str) } .zdebug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line_str) } .debug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loclists) } .zdebug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loclists) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } .debug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_names) } .zdebug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_names) } .debug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_rnglists) } .zdebug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_rnglists) } .debug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str_offsets) } .zdebug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str_offsets) } .debug_sup BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_sup) } /* For Go and Rust. */ .debug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_gdb_scripts) } } /* Script for --enable-auto-import */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT(pei-x86-64) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/x86_64-pep/lib"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Make the virtual address and file offset synced if the alignment is lower than the target page size. */ . = SIZEOF_HEADERS; . = ALIGN(__section_alignment__); .text __image_base__ + ( __section_alignment__ < 0x1000 ? . : __section_alignment__ ) : { KEEP (*(SORT_NONE(.init))) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) . = ALIGN(8); KEEP (*(SORT_NONE(.fini))) /* ??? Why is .gcc_exc here? */ *(.gcc_exc) PROVIDE (etext = .); KEEP (*(.gcc_except_table)) } /* The Cygwin32 library uses a section to avoid copying certain data on fork. This used to be named ".data". The linker used to include this between __data_start__ and __data_end__, but that breaks building the cygwin32 dll. Instead, we name the section ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ .data BLOCK(__section_alignment__) : { __data_start__ = . ; *(.data) *(.data2) *(SORT(.data$*)) *(.rdata) *(SORT(.rdata$*)) KEEP(*(.jcr)) __data_end__ = . ; *(.data_cygwin_nocopy) } .rdata BLOCK(__section_alignment__) : { . = ALIGN(4); __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; /* .ctors & .dtors */ . = ALIGN(8); /* Note: we always define __CTOR_LIST__ and ___CTOR_LIST__ here, we do not PROVIDE them. This is because the ctors.o startup code in libgcc defines them as common symbols, with the expectation that they will be overridden by the definitions here. If we PROVIDE the symbols then they will not be overridden and global constructors will not be run. See PR 22762 for more details. This does mean that it is not possible for a user to define their own __CTOR_LIST__ and __DTOR_LIST__ symbols; if they do, the content from those variables are included but the symbols defined here silently take precedence. If they truly need to be redefined, a custom linker script will have to be used. (The custom script can just be a copy of this script with the PROVIDE() qualifiers added). In particular this means that ld -Ur does not work, because the proper __CTOR_LIST__ set by ld -Ur is overridden by a bogus __CTOR_LIST__ set by the final link. See PR 46. */ ___CTOR_LIST__ = .; __CTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.ctors)); KEEP (*(.ctor)); KEEP (*(SORT_BY_NAME(.ctors.*))); LONG (0); LONG (0); /* See comment about __CTOR_LIST__ above. The same reasoning applies here too. */ ___DTOR_LIST__ = .; __DTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.dtors)); KEEP (*(.dtor)); KEEP (*(SORT_BY_NAME(.dtors.*))); LONG (0); LONG (0); /* .CRT */ ___crt_xc_start__ = . ; KEEP (*(SORT(.CRT$XC*))) /* C initialization */ ___crt_xc_end__ = . ; ___crt_xi_start__ = . ; KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */ ___crt_xi_end__ = . ; ___crt_xl_start__ = . ; KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */ /* ___crt_xl_end__ is defined in the TLS Directory support code */ ___crt_xp_start__ = . ; KEEP (*(SORT(.CRT$XP*))) /* Pre-termination */ ___crt_xp_end__ = . ; ___crt_xt_start__ = . ; KEEP (*(SORT(.CRT$XT*))) /* Termination */ ___crt_xt_end__ = . ; ___crt_xd_start__ = . ; KEEP (*(SORT(.CRT$XD*))) /* Dynamic TLS Initializer */ ___crt_xd_end__ = . ; } ___RUNTIME_PSEUDO_RELOC_LIST_END__ = __rt_psrelocs_end; __RUNTIME_PSEUDO_RELOC_LIST_END__ = __rt_psrelocs_end; ___RUNTIME_PSEUDO_RELOC_LIST__ = __rt_psrelocs_start; __RUNTIME_PSEUDO_RELOC_LIST__ = __rt_psrelocs_start; .eh_frame BLOCK(__section_alignment__) : { KEEP (*(.eh_frame*)) } .pdata BLOCK(__section_alignment__) : { KEEP(*(.pdata*)) } .xdata BLOCK(__section_alignment__) : { KEEP(*(.xdata*)) } .bss BLOCK(__section_alignment__) : { __bss_start__ = . ; *(.bss) *(COMMON) __bss_end__ = . ; } .edata BLOCK(__section_alignment__) : { *(.edata) } /DISCARD/ : { *(.debug$S) *(.debug$T) *(.debug$F) *(.drectve) *(.note.GNU-stack) *(.gnu.lto_*) *(.gnu_object_only) } .idata BLOCK(__section_alignment__) : { /* This cannot currently be handled with grouped sections. See pep.em:sort_sections. */ KEEP (SORT(*)(.idata$2)) KEEP (SORT(*)(.idata$3)) /* These zeroes mark the end of the import list. */ LONG (0); LONG (0); LONG (0); LONG (0); LONG (0); . = ALIGN(8); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; SORT(*)(.idata$5) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be at the end of the .tls section. This is important because _tls_start MUST be at the beginning of the section to enable SECREL32 relocations with TLS data. */ .tls BLOCK(__section_alignment__) : { ___tls_start__ = . ; KEEP (*(.tls$AAA)) KEEP (*(.tls)) KEEP (*(.tls$)) KEEP (*(SORT(.tls$*))) KEEP (*(.tls$ZZZ)) ___tls_end__ = . ; } .endjunk BLOCK(__section_alignment__) : { /* end is deprecated, don't use it */ PROVIDE (end = .); PROVIDE ( _end = .); __end__ = .; } .rsrc BLOCK(__section_alignment__) : SUBALIGN(4) { KEEP (*(.rsrc)) KEEP (*(.rsrc$*)) } .reloc BLOCK(__section_alignment__) : { *(.reloc) } .stab BLOCK(__section_alignment__) (NOLOAD) : { *(.stab) } .stabstr BLOCK(__section_alignment__) (NOLOAD) : { *(.stabstr) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section. Unlike other targets that fake this by putting the section VMA at 0, the PE format will not allow it. */ /* DWARF 1.1 and DWARF 2. */ .debug_aranges BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_aranges) } .zdebug_aranges BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_aranges) } .debug_pubnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubnames) } .zdebug_pubnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubnames) } /* DWARF 2. */ .debug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_info .gnu.linkonce.wi.*) } .zdebug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_info .zdebug.gnu.linkonce.wi.*) } .debug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_abbrev) } .zdebug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_abbrev) } .debug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line) } .zdebug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line) } .debug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_frame*) } .zdebug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_frame*) } .debug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str) } .zdebug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str) } .debug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loc) } .zdebug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loc) } .debug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) } .zdebug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_weaknames) } .zdebug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_weaknames) } .debug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_funcnames) } .zdebug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_funcnames) } .debug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_typenames) } .zdebug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_typenames) } .debug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_varnames) } .zdebug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_varnames) } /* DWARF 3. */ .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } .debug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_ranges) } .zdebug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_types .gnu.linkonce.wt.*) } .zdebug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_types .gnu.linkonce.wt.*) } /* DWARF 5. */ .debug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_addr) } .zdebug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_addr) } .debug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line_str) } .zdebug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line_str) } .debug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loclists) } .zdebug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loclists) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } .debug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_names) } .zdebug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_names) } .debug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_rnglists) } .zdebug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_rnglists) } .debug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str_offsets) } .zdebug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str_offsets) } .debug_sup BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_sup) } /* For Go and Rust. */ .debug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_gdb_scripts) } } %X%P: %s: this doesn't appear to be a DLL %s %s: 0x%08lx-0x%08lx (0x%08lx) %s dll-name: %s sym: %s addr: 0x%lx %s --thumb-entry= Set the entry point to be Thumb --[no-]insert-timestamp Use a real timestamp rather than zero (default). export, place into import library instead. --compat-implib Create backward compatible import libs; create __imp_ as well. --enable-auto-image-base[=
] Automatically choose image base for DLLs (optionally starting with address) unless specifically set with --image-base --disable-auto-image-base Do not auto-choose image base. (default) --enable-runtime-pseudo-reloc Work around auto-import limitations by adding pseudo-relocations resolved at runtime. --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for auto-imported DATA. --enable-extra-pe-debug Enable verbose debug output when building or linking to DLLs (esp. auto-import) --large-address-aware Executable supports virtual addresses greater than 2 gigabytes --disable-large-address-aware Executable does not support virtual addresses greater than 2 gigabytes --[disable-]no-seh Image does not use SEH. No SE handler may be called in this image %P: base relocation for section `%s' above .reloc section %X%P: error: %d-bit reloc in dll %X%P: can't open .lib file: %s %X%P: %s(%s): can't find member in non-archive file%X%P: %s(%s): can't find member in archive%X%P: bfd_set_archive_head: %E %P: can't open output def file %s %P: warning: resolving %s by linking to %s %P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols? enable-runtime-pseudo-reloc-v1/* Script for -Ur */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-bpfle", "elf64-bpfbe", "elf64-bpfle") OUTPUT_ARCH(bpf) /* 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.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.init 0 : { *(.rel.init) } .rela.init 0 : { *(.rela.init) } .rel.text 0 : { *(.rel.text) } .rela.text 0 : { *(.rela.text) } .rel.fini 0 : { *(.rel.fini) } .rela.fini 0 : { *(.rela.fini) } .rel.rodata 0 : { *(.rel.rodata) } .rela.rodata 0 : { *(.rela.rodata) } .rel.data.rel.ro 0 : { *(.rel.data.rel.ro) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rel.data 0 : { *(.rel.data) } .rela.data 0 : { *(.rela.data) } .rel.tdata 0 : { *(.rel.tdata) } .rela.tdata 0 : { *(.rela.tdata) } .rel.tbss 0 : { *(.rel.tbss) } .rela.tbss 0 : { *(.rela.tbss) } .rel.ctors 0 : { *(.rel.ctors) } .rela.ctors 0 : { *(.rela.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rela.dtors 0 : { *(.rela.dtors) } .rel.got 0 : { *(.rel.got) } .rela.got 0 : { *(.rela.got) } .rel.sdata 0 : { *(.rel.sdata) } .rela.sdata 0 : { *(.rela.sdata) } .rel.sbss 0 : { *(.rel.sbss) } .rela.sbss 0 : { *(.rela.sbss) } .rel.sdata2 0 : { *(.rel.sdata2) } .rela.sdata2 0 : { *(.rela.sdata2) } .rel.sbss2 0 : { *(.rel.sbss2) } .rela.sbss2 0 : { *(.rela.sbss2) } .rel.bss 0 : { *(.rel.bss) } .rela.bss 0 : { *(.rela.bss) } .rel.iplt 0 : { *(.rel.iplt) } .rela.iplt 0 : { *(.rela.iplt) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .sdata2 0 : { *(.sdata2) } .sbss2 0 : { *(.sbss2) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .got 0 : { *(.got) } /* 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) } .sbss 0 : { *(.sbss) } .bss 0 : { *(.bss) } /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -r */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-bpfle", "elf64-bpfbe", "elf64-bpfle") OUTPUT_ARCH(bpf) /* 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.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.init 0 : { *(.rel.init) } .rela.init 0 : { *(.rela.init) } .rel.text 0 : { *(.rel.text) } .rela.text 0 : { *(.rela.text) } .rel.fini 0 : { *(.rel.fini) } .rela.fini 0 : { *(.rela.fini) } .rel.rodata 0 : { *(.rel.rodata) } .rela.rodata 0 : { *(.rela.rodata) } .rel.data.rel.ro 0 : { *(.rel.data.rel.ro) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rel.data 0 : { *(.rel.data) } .rela.data 0 : { *(.rela.data) } .rel.tdata 0 : { *(.rel.tdata) } .rela.tdata 0 : { *(.rela.tdata) } .rel.tbss 0 : { *(.rel.tbss) } .rela.tbss 0 : { *(.rela.tbss) } .rel.ctors 0 : { *(.rel.ctors) } .rela.ctors 0 : { *(.rela.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rela.dtors 0 : { *(.rela.dtors) } .rel.got 0 : { *(.rel.got) } .rela.got 0 : { *(.rela.got) } .rel.sdata 0 : { *(.rel.sdata) } .rela.sdata 0 : { *(.rela.sdata) } .rel.sbss 0 : { *(.rel.sbss) } .rela.sbss 0 : { *(.rela.sbss) } .rel.sdata2 0 : { *(.rel.sdata2) } .rela.sdata2 0 : { *(.rela.sdata2) } .rel.sbss2 0 : { *(.rel.sbss2) } .rela.sbss2 0 : { *(.rela.sbss2) } .rel.bss 0 : { *(.rel.bss) } .rela.bss 0 : { *(.rela.bss) } .rel.iplt 0 : { *(.rel.iplt) } .rela.iplt 0 : { *(.rela.iplt) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .sdata2 0 : { *(.sdata2) } .sbss2 0 : { *(.sbss2) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .got 0 : { *(.got) } /* 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) } .sbss 0 : { *(.sbss) } .bss 0 : { *(.bss) } /* 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -N */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-bpfle", "elf64-bpfbe", "elf64-bpfle") OUTPUT_ARCH(bpf) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/bpf-unknown-none/lib"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00400000)); . = SEGMENT_START("text-segment", 0x00400000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) } .rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) } .rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) } .rela.sbss : { *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) } .rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) } .rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) } .rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) } .rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } .sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = .; /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } /* 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.* .gnu.linkonce.s.*) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .sbss : { *(.dynsbss) *(.sbss .sbss.* .gnu.linkonce.sb.*) *(.scommon) } .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -n */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-bpfle", "elf64-bpfbe", "elf64-bpfle") OUTPUT_ARCH(bpf) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/bpf-unknown-none/lib"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00400000)); . = SEGMENT_START("text-segment", 0x00400000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) } .rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) } .rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) } .rela.sbss : { *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) } .rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) } .rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) } .rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) } .rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } .sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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(0x1000) + (. & ( - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } /* 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.* .gnu.linkonce.s.*) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .sbss : { *(.dynsbss) *(.sbss .sbss.* .gnu.linkonce.sb.*) *(.scommon) } .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z separate-code */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-bpfle", "elf64-bpfbe", "elf64-bpfle") OUTPUT_ARCH(bpf) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/bpf-unknown-none/lib"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00400000)); . = SEGMENT_START("text-segment", 0x00400000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) } .rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) } .rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) } .rela.sbss : { *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) } .rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) } .rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) } .rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) } .rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(0x1000) + (. & ( - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } .sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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(0x1000) + (. & ( - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } /* 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.* .gnu.linkonce.s.*) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .sbss : { *(.dynsbss) *(.sbss .sbss.* .gnu.linkonce.sb.*) *(.scommon) } .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z separate-code --rosegment */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-bpfle", "elf64-bpfbe", "elf64-bpfle") OUTPUT_ARCH(bpf) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/bpf-unknown-none/lib"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00400000)); . = SEGMENT_START("text-segment", 0x00400000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) } .rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) } .rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) } .rela.sbss : { *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) } .rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) } .rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) } .rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) } .rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(0x1000) + (. & ( - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } .sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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(0x1000) + (. & ( - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } /* 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.* .gnu.linkonce.s.*) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .sbss : { *(.dynsbss) *(.sbss .sbss.* .gnu.linkonce.sb.*) *(.scommon) } .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Default linker script, for normal executables */ /* Copyright (C) 2014-2025 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf64-bpfle", "elf64-bpfbe", "elf64-bpfle") OUTPUT_ARCH(bpf) SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/bpf-unknown-none/lib"); SEARCH_DIR("=/opt/rh/gcc-toolset-15/root/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00400000)); . = SEGMENT_START("text-segment", 0x00400000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) } .rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) } .rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) } .rela.sbss : { *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) } .rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) } .rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) } .rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) } .rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } .sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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(0x1000) + (. & ( - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. 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 (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section 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 */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } /* 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.* .gnu.linkonce.s.*) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .sbss : { *(.dynsbss) *(.sbss .sbss.* .gnu.linkonce.sb.*) *(.scommon) } .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(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. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } %F%P: common page size (0x%v) > maximum page size (0x%v) %F%P: %pB: --just-symbols may not be used on DSO %s:%d: Warning: path components stripped from %s, '%s' %F%P: %pB: bfd_elf_get_bfd_needed_list failed: %E %F%P: %pB: bfd_stat failed: %E %P: warning: %s, needed by %pB, may conflict with %s unrecognised or unsupported token '%s' in search path %P: warning: .note.package section discarded, --package-metadata ignored %P: warning: .note.gnu.build-id section discarded, --build-id ignored %F%P: failed to record assignment to %s: %E %F%P: warning: CTF strtab association failed; strings will not be shared: %s %F%P: warning: CTF symbol addition failed; CTF will not be tied to symbols: %s %F%P: warning: CTF symbol shuffling failed; CTF will not be tied to symbols: %s /opt/rh/gcc-toolset-15/root/usr%F%P: failed to add DT_NEEDED dynamic tag %P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link) %F%P: %s: can't open for writing: %E %P: warning: cannot create .note.gnu.build-id section, --build-id ignored %P: warning: --package-metadata is empty, ignoring %P: warning: --package-metadata=%s does not contain valid JSON, ignoring: %s %P: warning: cannot create .note.package section, --package-metadata ignored %F%P: cannot use executable file '%pB' as input to a link %F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB %P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored %F%P: failed to parse EH frame entries %F%P: failed to set dynamic section sizes: %E %F%P: %pB: can't read contents of section .gnu.warning: %E Warning: .drectve `%s' unrecognized Warning: corrupt .drectve at end of def file %X%P: unsupported PEI architecture: %s considering exporting: %s, abfd=%p, abfd->my_arc=%p %X%P: can not create .edata section: %E %X%P: can not create .reloc section: %E posix_spawn_file_actions_adddup2posix_spawn_file_actions_addclose%X%P: error: can't use long section names on this arch PEX_STDERR_TO_PIPE used in the middle of pipelinecould not create temporary file%P: error: NULL decorated name for %s _cygwin_noncygwin_dll_entry@12§ÖéÿòÏéÿÐéÿÏéÿ½Îéÿ©Îéÿ•Îéÿ�ÎéÿmÎéÿYÎéÿEÎéÿ1ÎéÿÎéÿ ÎéÿõÍéÿáÍéÿÍÍéÿ¹Íéÿ¥Íéÿ‘Íéÿ}ÍéÿiÍéÿUÍéÿAÍéÿ-ÍéÿÍéÿÍéÿñÌéÿÝÌéÿÉÌéÿµÌéÿ¡Ìéÿ¾ÐéÿªÐéÿ–Ðéÿ‚ÐéÿnÐéÿZÐéÿFÐéÿ$ÛéÿÛéÿÛéÿíÚéÿÙÚéÿÅÚéÿ¨Ùéÿ”Ùéÿ€Ùéÿ)ÌéÿøÙéÿäÙéÿlÙéÿÌéÿQÌéÿ�ÌéÿŸÔéÿ‹ÔéÿÐÙéÿ¼ÙéÿyÌéÿ=ÌéÿC×éÿ/×éÿ×éÿ×éÿËÖéÿeÌéÿóÖéÿßÖéÿã×éÿÏ×éÿ»×éÿ§×éÿ“×éÿ×éÿk×éÿW×éÿRÖéÿ>Öéÿ*ÖéÿÖéÿÖéÿîÕéÿÚÕéÿÆÕéÿƒØéÿoØéÿ[ØéÿGØéÿ3ØéÿØéÿ Øéÿ÷×éÿ²ÕéÿžÕéÿŠÕéÿvÕéÿbÕéÿNÕéÿ:Õéÿ^ÑéÿJÑéÿ6Ñéÿ"ÑéÿÑéÿúÐéÿæÐéÿÒÐéÿæÐéÿ^ÓéÿJÓéÿ6Óéÿ"ÓéÿÓéÿúÒéÿæÒéÿÒÒéÿ¾ÒéÿšÑéÿ†ÑéÿrÑéÿ)Ìéÿ)ÌéÿÌéÿÌéÿÖÑéÿÂÑéÿ®ÑéÿXÙéÿDÙéÿ0ÙéÿÙéÿÙéÿôØéÿàØéÿÌØéÿ¸Øéÿ ÚéÿpÔéÿ§Ééÿ§Ééÿ\Ôéÿ=ÌéÿÔéÿQÌéÿ®ÓéÿšÓéÿ†ÓéÿrÓéÿ°ÛéÿœÛéÿˆÛéÿtÛéÿ`ÛéÿLÛéÿ8Ûéÿ&ÕéÿÕéÿ\Ôéÿ=ÌéÿÔéÿQÌéÿ®ÓéÿšÓéÿ†ÓéÿrÓéÿ°ÛéÿœÛéÿˆÛéÿtÛéÿ`ÛéÿLÛéÿeÌéÿ8Ûéÿ&ÕéÿÕéÿøËéÿøËéÿøËéÿ—ØéÿøËéÿøËéÿ£ÏéÿfÖéÿ Úéÿ§Ééÿ§ÉéÿÚéÿ'Úéÿ;ÚéÿeÌéÿOÚéÿlÚéÿ‰Úéÿ¢Úéÿ³ÔéÿÂÔéÿØÔéÿúÔéÿÂÓéÿÔéÿêÑéÿ�Ëéÿ�Ëéÿ�Ëéÿ�Ëéÿ�Ëéÿ�Ëéÿ�Ëéÿ�Ëéÿ�Ëéÿ°êÿfÝéÿp êÿÙêÿ„Ýéÿ„Ýéÿ„Ýéÿ„Ýéÿ êÿ êÿ„Ýéÿ„ÝéÿA êÿ± êÿ> êÿ êÿä êÿà êÿw êÿW êÿ7 êÿ êÿ÷ êÿ„Ýéÿ„ÝéÿÓ êÿ¦ êÿP êÿõ êÿ„Ýéÿ„Ýéÿ„Ýéÿå êÿ„Ýéÿ· êÿ„Ýéÿ˜ êÿWçéÿ„Ýéÿ9çéÿçéÿüæéÿ«íéÿ�íéÿ„Ýéÿ„ÝéÿLíéÿûìéÿ«æéÿ‚æéÿfÝéÿ„Ýéÿ„Ýéÿ„Ýéÿ„Ýéÿ„Ýéÿ„Ýéÿ„Ýéÿ„Ýéÿ„Ýéÿ„Ýéÿ„Ýéÿ„ÝéÿAæéÿ1æéÿ æéÿïåéÿ¯åéÿ�åéÿ’èéÿ†èéÿžèéÿ„Ýéÿ|èéÿJèéÿ/èéÿèéÿ„Ýéÿèçéÿ*êÿêÿfÝéÿ®êÿ[êÿ¿êÿÑêÿ–êÿfÝéÿÆêÿ‹êéÿxêéÿhêéÿÚëéÿØíéÿþßéÿ§öéÿþßéÿˆöéÿþßéÿøüéÿ„Ýéÿ„Ýéÿ„Ýéÿ„ÝéÿÊüéÿ„Ýéÿ¡üéÿôûéÿæûéÿ°ûéÿyûéÿ„Ýéÿ.ûéÿ„Ýéÿöêÿ«êÿ`êÿ„ÝéÿêÿÚÿéÿ—ÿéÿTÿéÿÿéÿÎþéÿ‹þéÿHþéÿýýéÿ²ýéÿxýéÿ>ýéÿýéÿuêÿRêÿêÿÐêÿ†êÿ<êÿ%êÿâêÿÆêÿœêÿ„Ýéÿ�êÿ„êÿ„Ýéÿ„ÝéÿUêÿ&êÿðêÿ„Ýéÿ›êÿ�êÿLêÿBêÿêÿlêÿ\êÿ„Ýéÿ„Ýéÿ„Ýéÿ„Ýéÿ„ÝéÿNêÿ@êÿ2êÿ$êÿêÿoêÿaêÿSêÿFêÿ9êÿúéÿúéÿ÷ùéÿêùéÿÝùéÿÐùéÿÃùéÿ„Ýéÿ„Ýéÿ¢ãéÿ®âéÿâéÿ‚áéÿOäéÿ„Ýéÿ„Ýéÿ„Ýéÿ„Ýéÿ„Ýéÿ„Ýéÿ„Ýéÿ5äéÿ„Ýéÿåäéÿ„ÝéÿnáéÿJáéÿ„Ýéÿ„Ýéÿ„Ýéÿ„Ýéÿ3áéÿáéÿÉàéÿ„Ýéÿ¸àéÿ¥àéÿ’àéÿ„Ýéÿàéÿ„Ýéÿ„Ýéÿ„ÝéÿsåéÿPåéÿ+åéÿåéÿõéÿØôéÿ¯ôéÿ—ôéÿ‰ôéÿoôéÿWôéÿIôéÿ1ôéÿôéÿùóéÿÝóéÿÁóéÿ¥óéÿ‰óéÿmóéÿQóéÿ5óéÿóéÿýòéÿáòéÿÅòéÿ©òéÿ�òéÿqòéÿüñéÿàñéÿÄñéÿwñéÿñéÿËðéÿ~ðéÿ1ðéÿäïéÿ—ïéÿJïéÿ2ïéÿïéÿûîéÿÜîéÿŠîéÿrîéÿIîéÿfÝéÿèíéÿhêÿêÿüêÿÝêÿ‹êÿ>êÿñêÿÙêÿÃêÿ}êÿoêÿUàéÿaêÿUàéÿTìéÿcàéÿvçéÿUàéÿõäéÿ¶êÿ©êÿcàéÿ€êÿêÿfÝéÿÛ êÿ„Ýéÿ² êÿfÝéÿS êÿ‹êÿ„Ýéÿ_öéÿ¾õéÿ„Ýéÿ®õéÿ„ÝéÿŸõéÿïßéÿïßéÿïßéÿïßéÿ˜êÿ�õéÿvõéÿ„ÝéÿpàéÿpàéÿÊíéÿ àéÿ*õéÿeõéÿWõéÿ àéÿIõéÿ;õéÿÌëéÿ»ëéÿ­ëéÿêëéÿ„ÝéÿõèéÿfÝéÿÓèéÿ„Ýéÿ„Ýéÿ„Ýéÿ„ÝéÿªèéÿfÝéÿ´øéÿÚ÷éÿÀ÷éÿ:÷éÿ÷éÿ àéÿ÷éÿÆöéÿ.àéÿ„Ýéÿ„Ýéÿ„Ýéÿžêéÿìéÿ.àéÿ¦ìéÿfÝéÿ„Ýéÿ„Ýéÿ”ìéÿ}ìéÿaìéÿæìéÿÏìéÿ-êéÿòééÿrëéÿ7ëéÿïêéÿÑêéÿÇçéÿ§çéÿ„çéÿûéÿÞúéÿÂúéÿ¦úéÿ…úéÿbúéÿAúéÿúéÿbêÿ?êÿ„Ýéÿ„Ýéÿþêÿ.àéÿ„Ýéÿ„Ýéÿ„Ýéÿ²êÿƒêÿ !"#$%&&&&'()*+,-./01234##56789#:;<#=#####>###########?##@######ABCDEF‹HIJKÚLMNÛ"#‹ëçáìâèãïéÄðÄäí�åæòûîóõöøzýùüÖþú÷ÿEFŒHIJKLMNÅÅ8Ú%&6n9"#7' 'o'':0^./<u;Ö=v>_OPQRSTUVWXYZ[\]^_`aabcdefghijklmm]no]]pqrst]uvw]]]]]]O]Ox]mmmmmm]]]]]]]]]]]]]]yz{|}~€�‚ƒ !"„…†‡ˆˆ‰'Š‹Œ�Ž��‘’“”„„•„„–„—˜™„„𛄄„„„„œ„�ž„Ÿ ¡’¢£„„„„¤„¥¦§„¨©„„AªC«¬¬­®¯¬°¬±¬¬¬¬¬¬()²³¬´µ¶¬·¸¬¹º¬»¼¬¬¬½¾¿À¬¬¬¬¬¬¬Á¬Â쬬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ABC¬ÆÇÆÄÇÇÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÈÉ­®Ç%&ÄÇÇN‹1'I'2'N'Ai‹BjI3CÙDFËYÌRN§ÍZcvwyIzÎÏÙ{ÇŽ‹ÄÇÇSNF²€|³TNN�IÜÜÜÜÜ«IIUNW¬ÜÜÜÜܦVI…ÝNÝËØ̆Ù‡ÍÛIÝÞÝ}ÜNÎÏÕÕÕÕÕI~ÝhÝÕÕÕÕÕÕÞ¥ÝfÝÒ¦ÓagNN»§¼‹¨b½II‹ÕÕÕÕÕÕÜÜÜÜÜdeà''€ÝáÝ‹N#‹"I‹Ý�Ý'Ý'ÝÝ ÝskþN‚t!m!̃lIí'ÝÍÝÝ Ý‹„!''''''‹'N'(')''*‹IN+NÔNï…,-I¨I*„Ið†‹…''''''‡*'ˆ'ՉЋ*JJJJJ>ŒJJJJJJ'�'Ž'�'?n�]‘’“U”•–—JJJJJJNNNNN˜™š›œ�NONNNNžPŸ ¡Q¢£¤¥¦§¨©ª«¬P­®¯‹‹°±NNNNNN²P³´µ¶·¸¹º»¾¿PÕÕÕÕÕ¼ÀÁÂýÕÕÕÕÕÕÄÅÆÇ�È�ÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÕÕÕÕÕÕÛÜÝ�Þ�ßàáâãäåæçèÊéÊêëìíîïðñòóôõö÷øùúûüýþÊÿÊJJJJJJJJJJJ  ìì   JJJJJJì ìôô!ôôô"ôôôôô#ô$%&'()*+,ôôôôô-./0123456789:;<=>?@ABCDEFGHIôJKLMNOPQRSTUVWXYZ[\]^ôôôÿÿ_ÿÿÿ`ÿÿÿÿÿaÿbcdefghijÿÿÿÿÿklmnopqtuvrwxyz{~€|�‚ƒs„…†‡ˆÿ‰Š}‹Œ�Ž��‘’“”•–—˜™š›œÿÿÿôô�ôôôžôôôôôŸô ¡¢£¤¥¦§¨ôôôôô©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅôÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרyxôôôÿÿwÿÿÿtÿÿÿÿÿsÿrqpo‹jihgÿÿÿÿÿfedcba`_^]\[ZYXWVUTSRQPONMLKJÿIHGFEDCBA@=<;:9876543ÿÿÿGGGGGGGGGGGGÊÊÊÊÊÊÊÊÊÊÊÊÑÑÑÑÑÑÑÑÑÑÑÑÓ2ÓÓÓÓÓÓÓÓÓÓÔÔÔÔÔÔÔÔÔ10/.-,+GGGGGGGGGGGGII*IIIIIIK)KKKKKKKKKKM(MMMMMMMMMMqqqqqqqqqq‰'‰‰‰ŠŠ&%ŠŠ$ŠŠŠ��ÇÇÇÇÇÇÇÇÇÈÈÈÈÈÈÈÈÈõ#õõõõõõõõõõ"ô!ôôôôôôôôôôÿ ÿÿÿÿÿÿÿÿÿÿ     þýüûúùø÷öóòñðïîíìëêéèçæåäãâáàßÞÝÜÛÚÙØ×ÖÕÔÓÒÑÐÏÎÍÌËÊÉÈÇÆÅÄÃÂÁÀ¿¾½¼»º¹¸·¶µ´³²±°¯®­¬«ª©¥¤£¢¡ Ÿž�œ›š™˜—–•”“’‘��Ž�Œ‹Š‰ˆ‡†ƒ‚�€~}|{zyxwvurqponmlkjihgfedcba`_^\[ZYXWVTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$Š‹      ÿýüûúùø÷öõôóòñîHëêéèçæåäãâßÞÝÚ×ÖÑÐÏÎ’‘ËÉÆÅÄÃÂÁÀ¿¾º¹¸·¶µ´±°¯ª©¤£¢¡ Ÿž�œ›š™˜—–•”“’‘ÒЋÚˆ„ƒ‚~}|{xàutsrÖpmlk `]\[X$LH E@?54$ÙØ×ÒÐÚÒÐ    ôñêàßÙØ×ÖÒÐÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÌ$$eeË  /-,/,-,1- 1,0ÌV,,3703556&9867V865889Ë` ;q^;gg‡p¨q;`‹‹;;^pk;k¨^‚jkjrkš‡jkkjsr‚sjjsš øzø��’aa"bbbbll’llam mv¤lÍv¤m llvbªmmvza–��"–a ´´¶�¶ba'Í!‘‘ªü¼)ü‘“”¼‘%%%%%÷“”“£”÷&&&&&!“£À%¢%5À5À7¢&%&*7ŸŸ+%£%%ô&¢&0ô0Ÿ¢¡Nô�ôŸ¡N-ŽTTTTTÜÜÜÜÜ¡TTTTTT¡;'~'v.Ü;Ü'ŒaŽ~�''vaTTTTTT_____¦Ü/Ü_______(_(_�_�îa(O0î_Œ((1O______O_)_)_�_�#¦2)_iiiii))1¨1Riiiiii1i§RSic11dR3iiS#ciÿd«S4ÿiiiiii5i262«2¨§7:;2i€€€€€22c×<d€€€€€€Í=Í>Õ?Õ×AÍÕBCÕEÍÍÍGHÕÕIK€€€€€€�����MNOPQR������S�TUX�Z[\`bcdfghi�jklmnoq������r�suvxyz{|~�‚�ÕÕÕÕÕƒ„…†ÕÕÕÕÕÕ‰‹Œ�Õ�Õ�‘”•–—™š›œžŸ ¢£¤¥¦ÕÕÕÕÕÕ§¨ªÕ«Õ¬®¯±³´µ¶·º»¼½¾¿ÀÂÃÅÆÈÊÍÎÏÑÒÚÛÜÝÞßJJJJJáâãäàåJJJJJJàæçèJàJéêëìíîïðéóôõ÷øùúöûJJJJJJöüýJþJ{{ÿ{{{{{{{{{  {{{{{ !"#$%&'()*,-./{0123456789:;<=>?@ABCD{{{‹‹E‹‹‹F‹‹‹‹‹G‹IJKLMNOPR‹‹‹‹‹TUVWXZ[\]^[_acdefgiejkl[mnopq‹rsetuvz{|}�‚…†‡ˆ‰Š‹Œ�‹‹‹õõŽõõõ�õõõõõ�õ‘’“”•—™š›õõõõõœž ¡¢£¤¥¦§¨©ª«¬­¯±²³´¶·¸¹º»¼½õ¾¿ÁÂÃÄÅÆÇÈÉÊËÌÍÑÓÖ×$"õõõ!     þýüúù÷óòñðîíìëêéèçæåäãâáàßÞÜÛÚØÖÕÔÓÒÑÐÏÎÍÌÚÚÚÚÚÚÚÚÚÚÚÚÛÛÛÛÛÛÛÛÛÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÝÝÝÝÝÝÝÝÝÝÝÝÞÞÞÞÞÞÞÞÞÞÞÞßËßßßßßßßßßßàààààààààáÊÉÈááÆááâÅÄÃâââââããããããããããããääÂääääääåÁååååååååååæÀææææææææææççççççççççè¿èèèéé¾½éé¼éééêêëëëëëëëëëìììììììììíííî»îîîîîîîîîîï¹ïïïïïïïïïïð¸ððððððððððñ·ññññññññññµ³±°¯­¬©¥¤£¢ žœ›š˜—–”“’‘�ŽŠ‰…„ƒ‚�~zyxtsrponmlkjihgfdcb`_^]\ZYWVTSRQPONMLKJIHGFEDCBA@?=<;:9876543210/.-,+)('&$      þýüûúùø÷öõôóñðïíëêéèçæåäãâáàßÜÛÚÙØ×ÖÔÓÒÑÐÏÎÌËÉÄÃÂÁÀ¿¾½¼»º¹¸·¶µ´³²±¯¬«ª©¨§¦¥£¢¡ Ÿž�œ›š™˜—–•”“‹Š‡†…„ƒ‚�€}|{zyxponmlkjihgfeb`_^]\[ZYXWVUTQGEDCBA@?>=<:98643/.,+&"    ÿþýûúùöõóòñðïîíìëêéèçåäãâáàßÑÐÊÄÿ¾½»º¹¸·µ³±°¯®­©§¦¥ž›™˜—•Œ…ƒ~xwutonf\ZYRQPNLKFEB@?>=<:42.+)" ÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙS¥÷J�suðC–­®®ª®®¦Ø�®®�Ž®�W¬¸®®�®Š_[y]^Zukxtypot€£ƒ~„]Q®�®˜”®®®R‹g®“zŽ®‚®®xw®v»8�NQ®®Yu¯®v¹JOic«©ÂÁ^jOUo®0®®®n„´®Ôlk—¸j8®äi•Aœ�Y_eSOÄQ®®dÇPè¶©-A1-�/c_^]\[Y^>d>LKEM‘?;J®P]®®®®Q]C\®®ea®"®®®®® ®KJ4B1;0<311*7('+')3*Ý&¦&$–$&((#ë#&$®öû®®X®®AÀ ®® ®®®@^  Öqœ¸Àýû   òù®!®ŽéKþtýðñÿîÿòúûùúåÑ�„ÐÔÅÆÄÓÇÎÏÍλØÝåæÜãá×ÖÔáËÑÍÉâá!ôü;®®ÌÈÔÑÒÇÑÑÀÑȾÊÍʷǾÀ³ÂÀ¾À˳­®³¥¶¬©¨£¯¥¢¨¯° °¤¨›Ÿ™œ¹£¤¤¤“Œ£½ ž•‘˜š¥ˆ‰‹€‘…€‘‡Ž��‹€H‰ˆ|†}}tƒ�€xopsSo[ZOXPIVTSLDEGilk\ma`g^TX\_O`^PM_�KlSLOJIOE9I=C@NBL;M:;G7IF687&;.6.70;47,1%,.1,/0&#$%&## Õ þæßâÞì'ÜâØæíôñðîýììúõëèÜö9„yä‚äòõâïåÓÙׯ¯¦œŸ˜nhrVPIXRGL0ð÷ûæñ÷äèñôߣßñÞëáêåèæ×äÞØäàÕÔÛßÖÉÐÎÇÖyÖ×¥«©£Ë±²½¾Êʿȧ³À°H%™Ç­º¨°·²Í­˜—w}ˆ²Î×þ2/6[tt��ž˜£¡¨¸©¶ÂÄÅÊÆ¿ÍÆÛÕÎÄØäÙßêÝÁÆÃà×òóæÛöøåðýúöþüðûÿõö %''%* '"1,688>9*E645GBJKP]O]RTX`]aXgiy[cl`kapbux|{zŒ„‚†y‡’’�šŒ–—�Ž¢®�¡¡�Ÿ•©œ£¬¢¦³´¸Çª¼¼¼À»ÇÃÒÖ×Õ»ÍÉÙÝÛÎÜÖÚÑáÝÞÛàÖÝÍàÏîìÞàïìâØôçõèùøïöüúîþöæçùúþ þ  % -.$#$&"&6)+'0242.88B=>,7A@J=KMA@LRKLJYL[f`Tbagj`dqntjp}kqss€ƒyxx†‚xl‹yp�~‰Ž€Œ““�†�“Ž�‘�ˆž”–‘¢™Ÿšœ®)5AMYbkt€‰•¡«°º½ÅÎÑÝéõ        ÚÚÙÛÛÙÙ Ù ÜÜÙÝÝÙÙÙÙÙÙÞßàÙÙÙÙÙÙÙààÙÙÙÙÙÙÙààààààààààààààààààÙààÙÙÙàÙÞàÙÙÙÙàáàÙÙÙÞßâÙÙÙÙÙÙÙÙâÙÙ__aÙÙÙÙÙÙâiiiiââââââââââÙÙÙÙÙÙÙãäÙÙåää__abæÙÙÙÙä�����äääääääÙÙÙ�����ääääääÙäçÙçççççÙççççççççççççççççÙÙèÙÙÙééééÙÙÙÞÙßààÙÙÙÙÙàÙÙêÙÙàààààààààààààààààààààààààààààààààààààààààààÙààÙëìàÙââÙÙÙ_abíííÙÙêÙÙÙÙÙiiiâââââââiiâââââââââââââââââââÙãÙääååæ��ää��äääääääääääää�ä��ääääääääääääççççççççççççççççççççççççèéÙéééàêÙÙààààààààààààààààààààààààààààààààààààààààààààààààààààëìàâÙâiâââââââiââââââââââââââââââââââääääääääääääääääääääääääääääääääääçççççççççççççççççççéééàààààààààààààààààààààààààààààààààààààààààààààààÙââââââââââââââââââââââââââââââäääääääääîäääääääääääääääïäääääääçççççççççççççççççççéééààààààààààààààààààààààààààààààààààààààààààààÙââââââââââââââââââââââââääääääðîäääääääääñïääääççççççççççççççéééààààààààààààààààààààààààààààààààààààààÙâââââââââââââââââââââââäääääääääääääççççççççççççééàààààààààààààààààààààààààààààÙââââââââââââââââââäääääääççççççççççààààààààààààààààààààààÙâââââââââââââääääääççççççççààààààààààààààààÙâââââââççççççççççààààààààààààààààââââââââçççççççççààààààààààààââââââçççççççççàààààààààààââââââçççççççççààààààààààââââââççççççààààààààààâââââââççççççàààààààââââççççàààààààââââççççàààààââççççàààààââçççààààâçççààààâççààààâççààààâààààÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙ¶¶ÉÈÆ¹¸ƺ±Æ*)Æ !±±+,Æ&±±±±±±±±±±±±±±±±±±Æ{y(Æ'¹È±*)ȱȱǹǺ´#*) !´"+,$&´´´´´´´´´´´´´´´%('Љ°#°",$&°°°°°°°°°°°°°%°°°°°°°°°°°¶¶¶¶¶&ƶ¶¶¶¶¶¶¶¶¶¶¶¶¶ÆÁÀ»Âÿ¿¿¿ÄŹ·º±±±±±±€±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±²± ´ ´´´´´€´´´´´´´´´´´´´´´´´´´´´´´´ ‰‰°‹Œ°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°¶¶€¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶À¿¿¿¿±±±±±±±±±±±±±±±±±\±±±±±±±±F=±>±±±±±±±±±±±±±±±±±±±±|z³²±´´´´´´´´´´´´´´´´´=>´´´´´´´´´´´´´°°°°°�°°°°°°°°°°°°°°°°ž°°°°°°°°°°¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¿¿¿±9±±±±3±±±±±±±±±±±±±±±±±±±C±±±±±±±±±±±±±±±±±±±±´9´´3´´s´´´´´t´´´C´´´´´´´´´´´u°°°’š‘°°°œ•˜°°�°°°°°£«¢°°®¦©°°¯°°¶¶c¶¶¶X¶¶¶†¶a¶_¶¶l¶¿¿¿±V5±±2±±±A±^±L±±±K±±±±±±±±±±±±±±±±±±±±±±±±±´5´2´´´r´´´´´´´´´´´´´´´´°“�°°°œœ—°›°°¤¡°°®®¨°­°d¶¶¶¶¶¶¶¶¶¶b¶`¿¿½±±±@W±±±B±ƒ±±U±4±±-±±±0J±±±±±±G±±±]H±±´´´@´´´ƒ´4´´´p´0´´´´G´´°°B™°–°°°¬ª§°@¶¶¶ƒ¶¶¶¶¶¶¶¾¼±;±±±N±±~±±±±±f±±i„±±±±±xY±1±´;´´´N~´´´´i„´´´x´°°~°°°°¶¶¶~¶¶„o¶¶<±ˆ±±±±±:?±±±±±±±T±±‚±<´ˆ´:?´´´q´´‚Ž�”Ÿ ¥¶¶¶¶¶¶¶¶±±±±±±±±±±±±±±±Mµ´´´´´´´¶¶¶¶¶¶¶¶¶n±±±±±/±vw±±±±I±±´´´vw´´´¶¶¶¶¶¶¶¶¶±±±±±g[±±±±±´´g´´´¶¶¶¶¶¶¶¶¶±±±±±±±±.±±´´´´´´P¶‡¶¶¶¶¶j±±±±±±Z±E±´´´´E´¶¶¶¶¶¶±±±±±±±h…D´´´´h…D¶¶e…¶¶±±±±±±±´´´´¶¶¶¶�±8±±±±�´8´¶¶¶¶±±±±±´´¶¶k¶6±±±±6´¶¶¶±±±±´¶}¶±±±±´¶¶±±±±´Om7±R±7Q±±S   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSyylexuv€�Šwpop_stat_ptrˆ aÃÂÀËÍ A–åþùúw#®qBßV˜GŠŒH ˆ <„   …FlœD“Eèéê_ÅnáÄFGôHõI÷†Ñ ,<`¡×ÙW¼"8O¾þ$K¿eZd7@.5HRJàZÀ¨h¦"#~KLºuv5´3 {O˜òüòü´ÿòüòüòüòüòüòüòüòüòüòü$òüòüEòüòüòüòü(òüÑþòüòüòüòü^þñÿòüÏþÓýþ’òüòüòüáýžòüòü#òüòüòü”ýòüéÿóüòüöýóÿÿòüjòüÍòüòüòüòüòüòüòüòüòüòüòüòüÿúòü£ÿòü°ÿòüòüøÿÒòüòücòüòüòüòüòüòüòüòüòüòüòüòüòüòüùý|òüòüûüòüòüòüòüòüòüòüòüòüòüzýòüòüòüòüòüòüòüòüòüSçÿòüÇæÿòüòüÅòüòüòüòüòüòü£¤¤¤¤¤¤¥§¦©¨ªª««««««««««««««««««««««««««¬«««­­­®®¯¯°°°±±±³²´´µµµµµµµµµµµµµµµµµµµµ¶µµ·µµµ¸µµµµµº¹»»»»»»¼»½»¾»¿ÀÀÀÁÁÂÁÃÄÄÅÅÆÆÆÆÇÇÇÇÇÇÇÇÇÇÇÈÈÉÊÊËËÌÌÌÌÌÌÍÎÍÏÏÏÏÏÏÏÏÏÏÐÏÑÏÒÒÓÓÔÔÔÔÔÕÖÖ××××××××רØÙÙÙÙÙÚÚÛÜÜÝÝßÞàÞáâããääååæççèèéêêëëìììîíðïñññññññññññññññññññññññññññññññññññññññòóñññññññññôôõõöö÷÷øøùùùùûüýþúÿúúú          ! ""###$$%%%%%&&&&'&(&&&&&&&))+*,,,./-   : d„^=ˆ; oeh…_`NPOÞßRsG<?E>ABCD@F/4³´µ¶å·¸¹º»åu€t|~oi‡†|~apSUÇÝàà_Y½¼r)ãããããã2 0!"%&5'7(+ ¾¿p‰c[\=ÊÄÉØÚÄÄà_ëçêì.8æåååzjw�v}b'm,1onURTKMfÐÌÅÃ^HITqÖ×ÛàáWXQad`J,èÿþüûúôõøùö÷òóðñíîï31-$#69qrmk©?4?VÇÈÙÜâgcfSZg*  éÀÁ‚xnl�«¬­®¯¢›œ£™vxz–ž¨ª?pFG2XYÔÒ]kbeäýƒ ¥å—u~�Ä‘§Šåš6789:<@BEH\VÕÑÓÄÍit   {‚©°‰�’ÄÄÄ>A 5"pYLåhs�{|y¡u‹ŒŽ”“Ä‹Ÿ=?"-ZWÎËly¦˜Šw€�†•&3]YåjC#$%(.[Ï};!M¤ƒ‚„…‡ˆ?©NJD)J©IK²KOå/²K±LÄ*²0ÄP+ÄQ½cŸQxC‡Ð]ǃlnÒ?zFø@@@¸tu8:ÿ?ÜfÓæ%&XÌÍ”ÌÍ–@RSTUVWXD:ÿ1LbGE’PîïMñó!€�w¸üABCDEöbìÍJmF»¹FnÌÍY@ƒoíç~ƒ„�5@@a½2p<‚ÎÌÍ�[p\A\YøƒævgK…÷Kø÷pø'b†ÎÁÂÎ`~ÃÆÇȇòF‚€ÉF@ÊÒz¿k}~€�9@ƒ„…†‡FGŠÏ0¬ÏŒ�  Ž��ù>Î’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§±²³Îo«¬ÿÊILp@Ï⾊ ‰Ú@q½rst/01‹%bÏk‹bImqš›r|}ŒbÈÌÉ­®/$%&�ŽÄÅ��~+,-./01'()*+~,-./‘­-./01’0123“”C•456789:Àb—ö;<=™xž ¾¿ÁyÄ>ÅÆÈJÉÏKLMÊÌã?¡¢ÎÓ)šþ«*+ÔÕÖë./Ù×@Ø1ÚÝÞéáJ£¤KLêâ㥦§:Ϩ©ªQäëìíð«öûýÿ3¬Q  RSTUVWX­  ®¯°±²³´67µ¶¢=>>BCDEHR™P·ˆN]dS¸¹eafgT‰‹¡¢‘S3h�3i¨©Tjqªrsy3º¯|}YU°»¼£¤·¯¥¦§Uµ¶»Á>ÃÇ˺¨©ªÐÛÞ>ëÜ«äæçè ¬$(Ò0ß"Ô4678­Û9Ý;®¯°±²³´=>-2NO?µQ¶IS¡¢^P[i_:cjom·rswz‡¸¹{‰@�ûŽ�£¤�‘‹ÿ•—¥¦§š›¡¢œžŸ¤ ¥º§4¨©ªª»¼© b«°²Ø¶¬£¤³Ñ´µ·¦§­¹!ÐÕ®¯°±²³´¨©ªàÖÞåµç¶«pÿéêìí¬ïðîôñõ÷ò·óý­¸¹®¯°±²³´ ¡¢µ¶-\4369:º;;?B·»¼¸¹£¤C&J'¥¦§()¡¢*+{xM˼¨©ª^ºIN!Æ«»¼lA£¬£¤ü€=Û¥¦§±­®¯°±²³´¨©ª|µ¶«¬·­¸¹®¯°±²³´îµ¶bcdefghijkºÜ·»¼¸¹ïðñòóôõö÷øº»¼ù !"#$%&'()*+,-./01úûübcdefghijkýÂbcdefghijk$%&þÿ'()*+‹ÿ,-./0123456789:;<=ÕÖ>'()*+,-./01? !"#$%&'()*+,-./01@ !"#$%&'()*+,-./01 !"#$%&'()*+,-./01 !"#$%&'()*+,-./01 !"#$%&'()*+,-./01 !"#$%&'()*+,-./01 !"#$%&'()*+,-./01‚ !"#$%&'()*+,-./01× !"#$%&'()*+,-./01Ú !"#$%&'()*+,-./01Ý !"#$%&'()*+,-./01á !"#$%&'()*+,-./01ã !"#$%&'()*+,-./01t !"#$%&'()*+,-./01u !"#$%&'()*+,-./01v !"#$%&'()*+,-./01x !"#$%&'()*+,-./01y !"#$%&'()*+,-./01Ó !"#$%&'()*+,-./01ä !"#$%&'()*+,-./01ú !"#$%&'()*+,-./01 !"#$%&'()*+,-./01 !"#$%&'()*+,-./01 !"#$%&'()*+,-./01  !"#$%&'()*+,-./01# !"#$%&'()*+,-./01,Q#$%&'()*+,-./012 !"#$%&'()*+,-./01Ñ !"#$%&'()*+,-./01ØÿMSTÙ3MßNUà>ÔNO !"#$%&'()*+,-./01\âOPèQRSTUÔÿVWXYZ[\]P^_`QRSTUVWXYZ[\]^_`å !"#$%&'()*+,-./01b !"#$%&'()*+,-./01 !"#$%&'()*+,-./01!"#$%&'()*+,-./01"#$%&'()*+,-./01$%&'()*+,-./01%&'()*+,-./01 QéO!f[9ôõl ”„%¦>?IL>KLMNOPQ ?GœA M�ŽH�‘>78>Œ—9:;<=œ£¤Œ &I�L&  ?‘&�G=34»¼>¾Œ?öÆ>—Œ�œžÑ&ž(²pqr¶sn9&;9=;=sœ&s9:sç=�Ž��ž“9•9—œ<ž™™ýžž¡œ¡œ    רœ-žœ™ôõÓ9s !"#$%&'()*+,-./01234BCDsœ:;™—o™œŸœ#Ÿœ™žžìí&ïð>¤™Š™S�Ž�!"#?œœžž&œžŠœ��Ž�&œlžn,012&&9:&&= !"#ABCDE=GHIJ&q !"#&STUV&&^”•–&^_`abcdŒœ&žijk&|pqrl¼¾¿À}Šy�Ž�®ŠÕ�nØÙ™¿ßà?�å�?™�´Š �Ž�&'(†‡ˆ°±²ù»µ¶˜‘’678›@&&>VF&&&KLMNOPQR&&&&WXYZ[\]œpqr&œ&e&g%œ&&}&œ >�?P�w&?žœG}~ž ?žžO&GVž[ žOžžžžžVš45žj¡¢ pqrw&'(j��>}pqr&&‡678ž}>œž@žžžžF&›ªžŸ&&R¥&§&WXYZ[\]&&ž�K?&eOg&R&&n c%„ew&žœž&}~?&Õ&& &&&&&&'(& ž&>'&š&œ678 ¡¢ž÷œ@�&oý&F žQžžž&'()Rž ž&WXYZ[\]678g˜�?e%g@žž&&F&&ž&ž& žwž&R ž}~WXYZ[\]&>žežg>ž&?ž>šnœ?wž¡¢žž}~ žžž&'(žžžž-þû“ˆ678åš9D Åc@¡¢=dF ׿"8w&'(}RÿÿÿÿÿÿÿÿWXYZ[\]678ÿÿÿÿÿÿÿeÿÿg@ÿÿÿÿÿÿÿÿÿÿFÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿwÿÿÿÿRÿÿÿÿ}~WXYZ[\]ÿÿÿÿÿÿÿÿÿÿÿÿeÿÿg šÿÿÿÿÿÿwÿÿ¡¢ÿÿÿÿ}~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ*+,-./ÿÿÿÿÿÿÿÿÿÿ5ÿÿÿÿÿÿ9ÿÿ;ÿÿ=šÿÿÿÿÿÿÿÿÿÿÿÿ¡¢Gÿÿ !"#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿfÿÿhÿÿÿÿÿÿlÿÿÿÿÿÿpqr }ÿÿÿÿÿÿÿÿÿÿÿÿ% 012ÿÿ“ÿÿÿÿÿÿ—ÿÿ™ÿÿÿÿÿÿ�ÿÿŸABCDE&GHIJÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿSTUVÿÿÿÿÿÿÿÿÿÿÿÿÿÿ^_`abcdÿÿÿÿÿÿÿÿijkÿÿÿÿÿÿÿÿpqrÿÿÿÿœÿÿžÿÿÿÿÿÿÿÿÿÿ} !"#Š !"#�ÿÿ !"#ÿÿ !"#ÿÿ !"#ÿÿ !"#ÿÿ !"#ÿÿ !"#ž !"#ÿÿž !"#ž !"#ž !"#ž !"#ž !"#ž !"#ž !"#ÿÿž !"#ž !"#ž !"#ž !"#ž !"#ž !"#ž !"#ÿÿž !"#ž !"#ž !"#ž !"#ÿÿž !"#œ !"#œ !"#ÿÿÿÿœ?ÿÿÿÿÿÿÿÿÿÿÿÿGÿÿÿÿÿÿÿÿÿÿÿÿÿÿOÿÿÿÿœÿÿÿÿÿÿVÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿœÿÿ'ÿÿjÿÿÿÿÿÿÿÿÿÿpqrÿÿÿÿÿÿÿÿÿÿÿÿÿÿœÿÿÿÿ}ÿÿ%ÿÿ'ÿÿÿÿÿÿÿÿÿÿG !"#ÿÿÿÿ&ÿÿÿÿœGÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿmÿÿÿÿÿÿÿÿÿÿœtuvwxyz{|ÿÿÿÿ€ÿÿ‚ƒ„ÿÿmÿÿÿÿ‰Š‹ÿÿtuvwxÿÿz{|ÿÿÿÿ€ÿÿ‚ƒ„ÿÿÿÿÿÿÿÿ‰Š‹ !"# !"#ÿÿ !"# !"# !"# !"# !"#¡#&ž!œ "� Ÿ >?¢ $%'()*+,-./0123456789:;<=@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›!òüòüòüòüòüòü=òüòüòüòüòüòüðÿòüòüòüòüö¨â27?òü{ ðÿòümŽòü/96gòüpòüòü�ÃØîø"òüòü'(-òü7òü<òüòüòüòü}òüòüòüòüòüòüòüíÿòü`�aòüefiòüòünpqruyzòüòüòüòüòüòüòüòüòüòüòü€†ˆòü‰òü�ƒRù{òü{òüòüòüòüXüòüòüòü—žŸ´òüòü µ¶·��¹�òü»»òüš�›òüòüòüòü„TòüWòüòü ¡¢«¬òüòü­®òüòüòüòüº¼òüòü¾ÂÃÅàòü@òüEòüòüieKòüòüPòüòüòüòüòüãä岎ŽTí¸òüWí³#òüòüâÿZòüòü�Àùÿòü]_bclosòüòütyMtvwòüxzðÿòüòüòüMÐÿòüÞòüòüòüòüòüòüòüe  òüe òüeòüòüòüòü��òüòü"òüòüòü¾ÿðòüâòü�òüòüòüòüòüòüòü+òüòüÔòüòüòü 1òüòüòüòüòüòüòü�òü�»òüòüòüòüòüòü'�òüô äÿeeÁeeòü­b v8£Š91Ežk²¥=v†W”¡99$$êêòüòüòüeeeòüòüòüeeòüòüòüòü¦§¨ŽíòüòüÉÿu‘òüñ‘¤òü6 òü°òüòüòüòüòüòü#!òüFòüòüòüòüòüòüòüòüòüÄòüHòüòüòüòüòüÆ?òüòüòüôòüòüòüòüòüMòü,-0�2òüòüòü:;@òüòüòüòüDSòüòüòüu&I}~JÞ]òüòüQòüemòüqòüQòüòüòüòüTÝÆÚïàòüßeíBŽŽòüÿ+kòüòüXòü~òü^`adeòüòüŸÿfghòüòüòüòüòüòüòüòüòül‰òüøåÿ†òürsÁòüòü[uwòüòüòüòü˜ òü$òüòüòüòüòüòüòüòüòü Æ…ˆuòüVòü]òü_ò++mòüƒ+¶ÿ  bòü+òü™3òü=òü/òüòücòü[?íŽòüòüòüòüªòü45Ðòüòü¯°<²³>ACµ·òüòüòüÀòüòüÔe\Sòü=¼òüggòü|òüòüÚòüòüuòüòüGòüëòüòüòü++òü++òüòüòüòüÊàòü�¼´òüòüòüòüUY\_knot¤òüòüòüòüòüòü¸òüòüòüòü}vx|}€�òüÌ»òüòüòüòüòüòüòüòüòüÕu5í½òüåòüòüÂý–åuòüìòü–È-òüòüòüòüòü-òüòüòü òü-òü òüòü òüžéÿ€žéÿžéÿžéÿžéÿžéÿ°žéÿ¹´éÿ¹´éÿ¹´éÿ¹´éÿ­´éÿ¹´éÿì´éÿ¹´éÿ¹´éÿ¤´éÿ¹´éÿ¹´éÿ¹´éÿ¹´éÿ­´éÿÌ´éÿ¹´éÿȶéÿ@·éÿè¶éÿð¶éÿѶéÿѶéÿѶéÿÛ¶éÿè¶éÿÑÒéÿlÒéÿ„ÒéÿœÒéÿ¬Òéÿ$ÒéÿîØéÿ9õéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿóéÿ.óéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿróéÿîØéÿ¨ïéÿîØéÿîØéÿîØéÿ�ÝéÿýóéÿôéÿîØéÿ«ÝéÿîØéÿîØéÿÅôéÿøéÿ©ôéÿêéÿîØéÿîØéÿ¼äéÿ-øéÿÚ÷éÿîØéÿ‘ôéÿîØéÿZòéÿtòéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿ·òéÿãòéÿr÷éÿ–÷éÿ¤÷éÿÝôéÿê×éÿÇÝéÿúÝéÿîØéÿîØéÿgôéÿê×éÿYßéÿußéÿîØéÿKßéÿúÝéÿ‘ßéÿKïéÿYïéÿ|ôéÿ{ÞéÿJîéÿXîéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿîØéÿ³îéÿ=ïéÿ]÷éÿ†íéÿ¾íéÿ«Ýéÿòíéÿê×éÿîéÿîéÿ+îéÿ<îéÿ�Ýéÿ»ïéÿVÿéÿê×éÿÉïéÿÞïéÿìïéÿúïéÿðéÿðéÿ$ðéÿ2ðéÿ@ðéÿUðéÿfðéÿGøéÿwðéÿÛÜéÿQåéÿ×åéÿÇÝéÿ;æéÿŠæéÿðæéÿÓæéÿVøéÿáæéÿ_ÜéÿƒÝéÿcçéÿ}çéÿ¹æéÿƒÝéÿIçéÿ!çéÿ;çéÿfÜéÿúñéÿêÿÝééÿcèéÿxèéÿËèéÿbééÿqøéÿ—çéÿßçéÿèéÿ+èéÿ9èéÿGèéÿ{ÞéÿUèéÿSäéÿaäéÿoäéÿ•äéÿxíéÿ\íéÿjíéÿ×ìéÿåìéÿóìéÿNíéÿAêéÿOêéÿ]êéÿkêéÿyêéÿ‡êéÿ®êéÿ¼êéÿÊêéÿäêéÿùêéÿëéÿGìéÿÄìéÿ�ìéÿªìéÿåéÿåéÿ'åéÿ5åéÿCåéÿ§ñéÿµñéÿÏñéÿìñéÿ&àéÿ4àéÿIàéÿWàéÿeàéÿsàéÿ�àéÿºàéÿÈàéÿáéÿâéÿ$âéÿáéÿáéÿFáéÿxáéÿ>âéÿ·âéÿÅâéÿÚâéÿ(ÿéÿèâéÿãéÿ%ãéÿLãéÿZãéÿhãéÿÞãéÿ äéÿäéÿ)äéÿ7äéÿEäéÿöÞéÿ àéÿçßéÿüßéÿŸßéÿ­ßéÿÙßéÿàéÿßéÿ ßéÿ;ßéÿÀ÷éÿQõéÿ_õéÿmõéÿ{õéÿ‰õéÿ—õéÿüõéÿêÿPêÿêÿêÿØêÿêÿêÿèêÿêÿÀêÿêÿêÿêÿ êÿXêÿøêÿø'êÿÈ'êÿˆ'êÿh'êÿ¸*êÿH'êÿx*êÿh'êÿH'êÿ8*êÿH'êÿh'êÿh'êÿH'êÿ@(êÿ0'êÿh'êÿt-êÿ4-êÿÄ,êÿd-êÿ,-êÿš/êÿ—-êÿ.êÿè-êÿˆ-êÿš/êÿ0.êÿt2êÿ|3êÿÔ2êÿ´2êÿD2êÿt6êÿ”7êÿt2êÿt2êÿ$5êÿt2êÿü4êÿ¤4êÿt2êÿD2êÿt4êÿT4êÿ NêÿOêÿØOêÿ@PêÿðPêÿÀPêÿWêÿxQêÿ¨QêÿÀUêÿ€TêÿÐTêÿøQêÿÀRêÿSêÿTêÿhNêÿxZêÿgZêÿVZêÿ¶Yêÿ‰Zêÿb\êÿ@Xêÿ(XêÿxXêÿXXêÿXêÿ8Wêÿlang_size_sections_1print_data_statementcompare_sectioncmdline_on_object_only_archive_list_pload_symbolsÿÿÿÿÿÿÿÿ÷ÿÿÿÿÿÿÿþÿÿÿÿÿÿÿ€=®²Â‡Êë…±y7žOëÔ'=®²Âùy7ž±gVc®²ÂwÊë…wÊë…ÅgV/ëÔ'±y7ž€#Eg‰«Íïþܺ˜vT2ðáÒà   € êÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿp êÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿ0 êÿèŸêÿèŸêÿ0 êÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿ@ êÿèŸêÿèŸêÿèŸêÿèŸêÿ` êÿP êÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿp êÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿ0 êÿèŸêÿèŸêÿ0 êÿèŸêÿèŸêÿèŸêÿèŸêÿèŸêÿ@ êÿèŸêÿèŸêÿèŸêÿèŸêÿ` êÿP êÿ�ËêÿhÌêÿÀÌêÿ ÍêÿÐÊêÿÐÊêÿÐÊêÿ@ËêÿpÍêÿ¸Íêÿ ÓêÿõÒêÿ°Óêÿ�ÓêÿjÓêÿGÓêÿÇÕêÿ€Õêÿ0Ðêÿ0ÐêÿêÕêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ˜ÔêÿéÓêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0Ðêÿ0ÐêÿÚÓêÿÁÓêÿºÐêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿXÐêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿˆÏêÿˆÏêÿúÏêÿxÑêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿŒÎêÿ)ÑêÿŒÎêÿ Ñêÿ<×êÿ#×êÿ”Îêÿ”Îêÿ”ÎêÿÿÖêÿöÖêÿ”ÎêÿÓÖêÿ”Îêÿ¢Öêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”ÎêÿÖêÿ”Îêÿ\Öêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”Îêÿ”ÎêÿCÖêÿ­åêÿTèêÿ¼çêÿ­åêÿ”åêÿ„çêÿôèêÿ­åêÿ­åêÿ„æêÿ­åêÿ\æêÿäåêÿ­åêÿ”åêÿÄèêÿ­åêÿÇ éÿ2éÿÇ éÿéÿÇ éÿñ éÿâ éÿÓ éÿÄ éÿµ éÿ¦ éÿ— éÿˆ éÿy éÿj éÿ[ éÿL éÿ@ éÿ1 éÿÇ éÿÇ éÿÇ éÿÇ éÿÇ éÿÇ éÿ" éÿÇ éÿÇ éÿÇ éÿÇ éÿÇ éÿÇ éÿÇ éÿÇ éÿÇ éÿ éÿbuild_link_orderreloc_overflowmultiple_definition #   cmdline_get_object_only_input_files@@@Bcmdline_object_only_list_appendcmdline_load_object_only_sectioncmdline_check_object_only_sectionpush_stat_ptrcmdline_remove_object_only_filesprint_cmdline_listlang_do_assignments_1Y@ÿÿÿÿÿÿÿÿÔAëÿÐ7ëÿ¸6ëÿ¸6ëÿ¸6ëÿp7ëÿÙ9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿÜ9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿ:ëÿ:ëÿ <ëÿ-<ëÿ:ëÿ:ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿ¹<ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿÑ<ëÿ=ëÿZ=ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿj=ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿh9ëÿH9ëÿh9ëÿh9ëÿh9ëÿ�=ëÿh9ëÿh9ëÿj<ëÿh9ëÿ‹<ëÿ;<ëÿh9ëÿ=ëÿ„9ëÿ„9ëÿ8ëÿ8ëÿ„9ëÿ„9ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ:ëÿ:ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿT<ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿ8ëÿÄ;ëÿ8ëÿ8ëÿ8ëÿô;ëÿ8ëÿ8ëÿâ<ëÿ8ëÿT<ëÿ:ëÿ8ëÿT<ëÿ;>ëÿø=ëÿ†;ëÿ†;ëÿ†;ëÿ†;ëÿ†;ëÿ†;ëÿ´=ëÿ†;ëÿ†;ëÿ†;ëÿ†;ëÿ†;ëÿ†;ëÿ†;ëÿ†;ëÿt=ëÿž;ëÿž>ëÿž;ëÿPOëÿøNëÿèNëÿ�NëÿxOëÿôaëÿ|bëÿÌbëÿ cëÿìÿ»ìÿÒìÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿ³ìÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿüÿëÿ–ìÿ~ìÿfìÿNìÿ6ìÿ„ìÿìÿðìÿØìÿfìÿœìÿDìÿ�ìÿ ìÿìÿiìÿSìÿ=ìÿ'ìÿìÿûìÿåìÿÏìÿ¹ìÿšìÿ„ìÿnìÿXìÿBìÿjìÿ,ìÿüÿëÿüÿëÿüÿëÿjìÿIìÿ3ìÿìÿìÿñìÿÛìÿÏìÿ¸ìÿ ìÿˆìÿpìÿXìÿ@ìÿ(ìÿìÿÌìÿüÿëÿ¹ìÿ}ìÿ‡ìÿ'ìÿìÿ÷ìÿßìÿýìÿåìÿÍìÿÁìÿ¨ìÿpep_find_data_importspep_fixup_stdcallsgldi386pep_after_openmainCRTStartupgldi386pep_set_symbolsset_pep_nameis_underscoringz:P:z:P:Õoìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ�oìÿdoìÿ£qìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿwnìÿ1pìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿ0nìÿÐuìÿ¸uìÿ uìÿˆuìÿpuìÿXuìÿ@uìÿ(uìÿíuìÿtìÿçsìÿwnìÿÈsìÿ²sìÿ˜sìÿ‚sìÿlsìÿVsìÿ@sìÿ*sìÿsìÿþrìÿ¶rìÿ rìÿ�rìÿkrìÿUrìÿ?rìÿrìÿ–nìÿ)rìÿrìÿ>oìÿ�qìÿ–nìÿpqìÿZqìÿDqìÿ.qìÿqìÿqìÿìpìÿÖpìÿÀpìÿªpìÿ”pìÿ~pìÿhpìÿPpìÿQoìÿÙnìÿ0nìÿ(oìÿ©nìÿ³nìÿénìÿoìÿÆnìÿünìÿpìÿíoìÿpìÿpe_implied_import_dllpe_find_data_importspe_fixup_stdcallsgldi386pe_after_openmainCRTStartupgldi386pe_set_symbolsset_pe_nameis_underscoringpep_implied_import_dll øìÿ€øìÿpøìÿzøìÿ¸øìÿøìÿøìÿÔíÿüíÿãíÿãíÿãíÿÌíÿãíÿãíÿãíÿãíÿÔíÿ¤íÿ�+íÿb,íÿÆ+íÿ 'íÿì&íÿÃ&íÿŽ,íÿíÿíÿíÿw.íÿq+íÿ+íÿ*íÿíÿíÿíÿíÿz)íÿ&íÿ(íÿé$íÿé$íÿ]%íÿ]%íÿD%íÿD%íÿ+%íÿ+%íÿíÿíÿj-íÿ.íÿÛ-íÿ¦-íÿ‘.íÿÆ'íÿíÿíÿŸ'íÿ8'íÿ&íÿ‚%íÿíÿíÿ‚%íÿ&íÿé$íÿ]%íÿD%íÿ+%íÿ,'íÿµ(íÿ©(íÿ�(íÿ‘(íÿ…(íÿy(íÿm(íÿa(íÿE)íÿ9)íÿ-)íÿ!)íÿ)íÿ )íÿý(íÿñ(íÿå(íÿÙ(íÿÍ(íÿÁ(íÿ(íÿü'íÿ íÿL.íÿž%íÿ6&íÿ6&íÿ íÿv%íÿ íÿ»&íÿ‚%íÿ&íÿ íÿ»&íÿ íÿ‘+íÿ íÿž%íÿ·,íÿ%íÿ%íÿ%íÿ íÿv%íÿ íÿv%íÿ&(íÿQ)íÿÁ!íÿ!íÿ!íÿ!íÿ!íÿÁ!íÿ!íÿ!íÿ!íÿ!íÿ8#íÿ!íÿ8#íÿ!íÿ!íÿ!íÿ!íÿ!íÿ!íÿ!íÿ!íÿ!íÿ!íÿ!íÿ!íÿ!íÿ!íÿ@íÿa%íÿú,íÿp%íÿp%íÿp%íÿò,íÿê,íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿp%íÿa%íÿú,íÿp%íÿp%íÿp%íÿò,íÿê,íÿpep_dll_id_target<=‡ˆ@A:;6VS7*+,{m\PEGr~0v«ÿ«ÿƒ«ÿX«ÿ«ÿS«ÿ[ýÿ¬ÿlAqùÿ–Äÿ«ÿ«ÿtôÿ«ÿ«ÿ«ÿûÿ«ÿ$%%&&&&&&&&&&&&&&&'''())********++,,,,,,--..//0011222233333333333333333333333444445566778899:::;;;<<==>?TTD=KB8;NS\\g223456 . * Z "]`OP/,+)X!^daRQ1-Y0Vcfbh[W(e_ 00UVVVV'%&VV#$1F>C8DB]^.x !"#$%&'M(I)/9 �Ž>Xy ze2345€CfDdg�‚ƒ„?i�‘’“…†kbcHt—˜pyKs�w NÐÿÐÿÐÿÐÿ ‹/O[ŒU2345•/R`WahylbnoU–qu}|‰ŠJ_ZY”j-LTQ  "  m)   ‡ˆ<9 G K !NRŠ‹Œ�[ !d•–` c  l  "|!! "# !� @<:ŽVÿÿ)ÿÿÿÿ1ÿÿÿÿÿÿ-! "# ]ò&&.åå9$««««««««««««««««««««««««=L«ff««__««««W«Wd««Tç.«a«e5g%«««L«b«««««&«W««cjk««måg««n«««io««p«g«««8rs«U««««««««««ii«h?hh8«`««««hh««z:7jíÿ7jíÿ7jíÿ7jíÿ7jíÿi¶íÿ4µíÿLµíÿµíÿ¬´íÿ¬´íÿµíÿe¶íÿÀµíÿ¨´íÿHµíÿ¨´íÿ¨´íÿ�µíÿÅíÿ¬ÃíÿÄÃíÿ”Ãíÿ$Ãíÿ$Ãíÿ|ÃíÿÅíÿ8Äíÿ ÃíÿÀÃíÿ Ãíÿ ÃíÿÄíÿ�‘@ùÖÀŸåðœå<�Ð`+@ ÿ%��make_onepe_dll_id_target�‘@ùÖÀŸåðœå<�Ð`+@ ÿ%��make_one;ˆÐü¹èÿ¼ÌÊèÿäœÛèÿ *ÑÛèÿÌDÖÛèÿ@lôÛèÿ˜lüÛèÿ�3Ìéÿ¤Ü éÿü éÿD\ éÿXÌ éÿ€Ü éÿ”¬ éÿÌì éÿøéÿìéÿ<ìéÿp¼éÿ�,éÿ¼ìéÿàŒéÿ0<éÿTÌéÿtÜ+éÿÀüjéÿp,léÿ¬œléÿÌ,méÿà\méÿôŒméÿ¼méÿüméÿ06ëÿd>¬6ëÿ„><7ëÿ¤>¼7ëÿà>ì;ëÿ,?¼@ëÿ”?Ì@ëÿ¨?�×ëÿ(Eƒb°8>¤×ëÿá F�BŽB �B(ŒA0†A8ƒGÐU 8D0A(B BBBI qØMà^ØAÐxØMà^ØAÐtØTàXØBÐÎØSàLØBÐjØNàYØAÐ0ØTàIØAÐì>ààëÿ!EƒL?ôèëÿÈF�BŽB �B(ŒA0†A8ƒD�â 8A0A(B BBBA \X?tìÿGF�FŽB �E(ŒA0†D8ƒD�8˜J X˜A�™ 8D0A(B BBBA ,¸?dìÿÚB�IŽA ƒF BBJ Hè? ìÿlZ�BŽB �B(ŒA0†D8ƒG@# 8A0A(B BBBG 4@8 ìÿ#HW L@P ìÿÇAƒD w AC Hp@ü ìÿîB�BŽE �I(ŒD0†A8ƒD@° 8A0A(B BBBA P¼@  ìÿžPŽE�I ŒD(†A0ƒS (A KBBJ A(C BBBAÃÆÌÍÎAì ìÿfH]$(AD ìÿlE†DƒS MAA PAŒ ìÿ‹AƒF S AE 0tAø ìÿpAƒG [ AD a DK RA0¨A4 ìÿ¤F�HŽA ƒD@G  ABBA |ÜA°ìÿwF�BŽB �B(ŒA0†A8ƒDPÚ 8A0A(B BBBJ z 8A0D(D BBBG X 8A0A(B BBBA \B°ìÿLEƒD v AH Ô€BÜìÿÁ F�BŽE �E(ŒA0†A8ƒGp§xK€`xBp]xN€dxGp™xH€OxAp  8P0C(B BBBK }x]€rxApÜ 8A0A(B BBBE DxN€]xFp_xE€FxDp‰ 8D0A(B BBBG XCÔ$ìÿ LlCÐ$ìÿáF�BŽB �B(ŒA0†A8ƒGÀJ 8A0A(B BBBG ¼Cp'ìÿÑd ` D �ÜC0(ìÿJ'F�BŽB �B(ŒA0†A8ƒGÀÈCÐHÈAÀ] 8A0A(B BBBJ ] 8F0A(B BBBE v 8F0A(B BBBE pDìNìÿ0„DøNìÿcFŒF†A ƒD0_  AABD °¸D4Rìÿá F�BŽB �B(ŒA0†A8ƒGÐP 8D0A(B BBBF yØMà^ØAÐxØMà^ØAÐtØTàXØBÐÎØSàLØBÐjØNàYØAÐ0ØTàIØAÐlE [ìÿx€E \ìÿ€”Ex\ìÿ?¨E¤]ìÿUHL0ÀEì]ìÿ3€†AƒoAGÃÆ`ƒ†GÃÆôEø^ìÿF_ìÿ8F0_ìÿ40F<_ìÿÑAƒJ ` AD f AI J DB XhFä_ìÿöBŽBŒD †I(ƒD@” (C ABBG D (C CBBJ Z(D ADBHÄFˆ`ìÿjB�BŽB �B(ŒA0†A8ƒDPè 8C0A(B BBBF G¬aìÿ<\$GØaìÿ[ F�BŽB �B(ŒD0†A8ƒG€—ˆK�QˆA€D 8D0A(B BBBA („GØkìÿSF†AƒG vAAJÃÆ\°G lìÿGF�FŽB �E(ŒA0†D8ƒD�8˜J X˜A�™ 8D0A(B BBBA HHüpìÿlZ�BŽB �B(ŒA0†D8ƒG@# 8A0A(B BBBG \H rìÿ#HWtH8rìÿiH`ŒH�rìÿ 4 HŒrìÿ F�EŒD †D(ƒK0ç(A ABBØHdsìÿ t E G ôHèsìÿ+EƒD0´ AB (IôzìÿáA†FƒD0¬ AAG $DI¸{ìÿ+H ‘ G O A q lIÀ|ìÿH0n J f J H�I¼}ìÿ/B�BŽB �B(ŒA0†D8ƒFPW 8A0A(B BBBD TÜI ~ìÿ�F�BŽB �B(ŒA0†A8ƒD@SHKP^HA@ƒ 8C0A(B BBBB L4JØìÿ—B�BŽB �E(ŒA0†A8ƒG�j 8C0A(B BBBF „„J(†ìÿ�B�BŽB �B(ŒD0†C8ƒJ°ó¸NÀU¸A°Æ 8A0A(B BBBH |¸NÀd¸A°² 8E0A(B BBBE D K0ŠìÿáB�BŽB �B(ŒA0†D8ƒF@À8D0A(B BBBLTKØŠìÿóB�BŽB �B(ŒA0†A8ƒGÀ} 8A0A(B BBBH H¤Kˆ�ìÿ�F�IŽB �B(ŒA0†A8ƒDPÞ 8A0A(B BBBG HðKÌ�ìÿŸF�IŽB �B(ŒA0†A8ƒDPñ 8A0A(B BBBD ,íÿ½F�EŽB �B(ŒA0†D8ƒG�£ 8D0A(B BBBE X¼_GíÿAF�DŽB �B(ŒA0†A8ƒNPXB`MXFPi 8D0A(B BBBG T`ôIíÿEF�DŽB �B(ŒA0†A8ƒNPXD`FXFPû8D0A(B BBBàp`ìKíÿC F�EŽB �B(ŒA0†D8ƒG�ߘK P˜A�n˜B K˜A�t˜B L˜A�z˜B L˜B�  8D0A(B BBBG ´˜N N˜A�M˜N U˜B�T˜N U˜A�˜K Z˜F�e˜N R˜B�TaXTíÿ�q  GNUÀ€ÀGNUSÐRÀÀ‘Ö™Ö¡Ö¬Ö¶Ö¾ÖÇÖÏÖaaÝ8=rÝAAiÝnݦæbbBõh=ÝccžàŠÝfýdd˜=¨Ýd«Ýžà»ÝÑÝÀ=ee�èèÝÞ¢EúÝÞ£è='Þ>@>h>EÞ,À>\Þ+ø>rÞŸuÞ�Þ �Þ«ÞffÁÖ0?µÞFFÁÖ`?g¼ÞÄÞGGÿæˆ?ËÞ¶hÒÞ¸?æÞ›IÛÞà?ãÞœ@BçllßõÞßLLßP@'ß�x@m®ð;ßIßMM @SßnnZßtßNNÈ@qßüAcàoožà{ßO�ߥߞžà°ßÚß ÈßÏßáß ìß(Aðß HAà¥xAà¥xA२A#à¥ØA à¥ØA3à¥B6àqq BBàrrNàijàRRžàHBwà.žà€B‰à-–à°B£àss­à¿àSSËàæàýàBãàþCöàttüàÖTTžà á á žà/áJá ôäuuæá8CMáæáhCüøî]á˜CháÆÈC`åÈvkáVøC…áxx‘á«áXX DºáøPDÇáyyæáÔáY pDíá((ùáâ))â âÿ DâàD=âÜ:âÝKâÞEHâßPEUâ–aÝÀE\â—eâƒâ—†â—’â¬àEšâ¬�⬓⬨â±Fµâ»0F¿â¼PFÖâèxFÓâé¨FèâÜØFåâÝGÿâ˜ãØ™!ã3ã—äšCãPGLãxGfã¡vã«ãÓ�ã¨ãÔHl×ìæáºãÕãá0Héãâ`Hæãã�Høãä¸HõãåàH äæIäç@I;ä¤.äf×ëæá@äYä¦]äpIfäúwä”ä§ ä½ä¨¨IÌäêÐIÙäÕwJèäð8JåäñhJþäòå3åóIå JkåôPåhåõ}å˜åö§åÅå÷ØJÝå©Kîåª8Kæ­æ0æ«hK?æ«Næû˜KWæ®Bõ_æ}æ‘æ­æ»æÑæ¥øKØæLðæ PL節Lç°¸L 粞àðL!ç³ M'ç´ @M—×µ2çJçµgçpMUçdç Mkç·wçØM�緛縨çN·ç¹žà@NÍçùàçhNæçÚôç˜NüçÙ èÀNèºè8èïðNDè½æáNèdèÅOwèí…è•èX¾�è²èÉè¿�èÎèêèÀ�èðè éÁ�èé0éÂ�è>éZéÃ�èjéˆéÄ�è—é´é8OÞéÇÐéðOÚéÇæéÉžàPõéÊæá8P êΠPêÌÈP4êÍNêlêËžàyê‹êÏæá¡ê½êОàøPØêÑQäêÒ@Qùê"öê# ë$#ë% ë&5ë)2ë*Kë'Hë(]ëÖxQnë× QxëØÈQ‹ëR˜ë¬ë(R¾ë`RÖëˆR"æÛ°RïëàæáàRôëæáS ì@SìxS"ì5ìPì`ì°SiìàSfìT€ìPT}ìxT”ì°T‘ì àT¢ì!UàTÝ  ß9ô<ô?ôBô Eô Iô Mô Pô SôVôYô\ô_ôFôJôbôeômhôõôqô³Û²Û­Û§Û¢Û!wô/€ô7�ôA–ôBBõCžôD©ôE­ôF³ôH¸ôGÀôIËôJÇô‰šfÐôKÙôLÝôláôtBà'èô(ûô)õT#õV*õ51õ†3ø€sû{×Ú/zû‹û�¦û‚£ûƒ°ûP¹ûyËûzßû|Üû}ìû0ùû~ü@üA3ø€sû{×Ú/zû‹û�¦û‚£ûƒ°ûP¹ûyËûzßû|Üû}ìû0ùû~ü@üA ü[÷(ü7üMü[ühütü‚ü�üS÷[÷a÷s÷üVhw Vh¨�•�£ ©¿1s�Éž/ §ØŸì ý¡¢)£:¤R¥M >d¦n¨ÐÕÁ‚Õ©•© ª?«³¬ìû0ÇÀâ­ê®ü¯°'±>²>²L³c´{µ�¶¡·´¸È¹ßºû»ðÕ¿Ä2ŔܬÆÀÇÓÈäÉùÊËÌ*ÍPÎMÏ×Ú/aÑvҌۤӸÔËÕÜÖñרÙ"Ú3ø€sû{×Ú/zû‹û�¦û‚£ûƒ°ûP¹ûyËûzßû|Üû}ìû0ùû~ü@üA3ø€sû{×Ú/zû‹û�¦û‚£ûƒ°ûP¹ûyËûzßû|Üû}ìû0ùû~ü@üAüVhw Vh¨�•�£ ©¿1s�Éž/ §ØŸì ý¡¢)£:¤R¥M >d¦n¨=ÐÕÁ‚ÃPÎMÏ•©•© ª?«³¬ìû0ÇÀâ­ê®ü¯°'±>²>²L³c´{µ�¶¡·´¸ ¹ßºû» ·¾ðÕ¿>¼6½Ä2ŬƤÓÀǸÔÓÈËÕäÉÜÖùÊñ×ËØÌÙ*Í"Ú×Ú/aÑvÒáäR]Zdmp„ œ ¥ ¤ ¥ÿ· „ Ç  œ Ó  ¥ á ó  # 3 C S ¥ÿ· d  c  o v ~  ,‹ F œ  § D Ð Ø à »  Å  Ï × ß ç  ò û       (  3  > E  O W ^  h  u }  . L % + 3>„ © š® ¬Xí · à Í rÝ  å î  k  ߤö ‘ý ewô O {   k×Ú/zû‹û�¦û‚£ûƒáäR]Zdmp„ œ ¥ ¤ ¥ÿ· „ Ç  � ˜ÿ¨½0—Ó# 3 C S ¥ÿ· d  c  o v ~  @«P«€«0«p¯P°`°€° ¡,‹ F œ  § D Ð Ø à »  Å  Ï × ß ç  ò û       (  3  > E  O W ^  h  u }  •ª¶Æ? < $°À¸Àõþÿo P,Ø e ' H»àAhy ûÿÿoþÿÿoAÿÿÿoðÿÿo¶>ùÿÿoúà$p€� °ÀÐàð 0@P`p€� °ÀÐàð 0@P`p€� °ÀÐàð 0@P`p€� °ÀÐàð 0@P`p€� °ÀÐàð 0@P`p€� °ÀÐàð  0 @ P ` p € �   ° À Ð à ð  0 @ P ` p € �   ° À Ð à ð  0 @ P ` p € �   ° À Ð à ð  0 @ P ` p € �   ° À Ð à ð  0 @ P ` p € �   ° À Ð à ð  0@P`p€� °ÀÐàð 0@P`p€� °ÀÐàð 0@P`p€� °ÀÐàð 0@P`p€� °ÀÐàð 0@P`p€� °ÀÐàð 0@P`p€� °ÀÐàð ‹Ö K MÀP 8SˆT Àmðmð D�LÀ=ú@û JR€ù°ó¹ó@ýp ð Ð àü8À8ð¤Àmðm³ ÃÄÀ=Ð=PJà= JPëùÅóÌó`†° €¯`¥ЦpëÀwàîpà0ÀmðmP?°@�AÀ=Ð=PJà= J/@lÕóÝóðð ÀšÐ;ÀP3ÐhõÐm`¢°ýÀmðmð�þÿÀ=úpÿ@û J@ÿ`Ûèóòó@ýýp ð `@ô àü8À80ýÀmðmð0þàþÀ=ú`ÿ@û J ÿ€Øþóô@ýðüp ð€ÿ00ò àü8À8@UÀmðmð0V°VÀ=ú Š@û JðVPAôô@ý�Tp ð°WàÞÐï àü8À8°TÀmðmðÐU�VÀ=úP…@û JÐVp>^ð,ô@ýpTp ðW€›0D àü8À87à5À4 3€2`1@0pâÀ„@�PŠЙ�ªÐè°† ƒðƒ@¬@oðl ‹Ó�¶À¶pÊèY XY`ÿÿÿÿÿÿÿÿXZ@™ZÜXZ@Œ`ZÆdZ³hZYjZnlZƒnZ›pZrZ/„ZKˆZ ù�Zà˜ZÇ Z¯¨Z®†Z`ä@ÿÿÿÿPaÿÿÿÿÿÿÿÿx]@™ ]Üx]@Œ€]Æ„]³ˆ]YŠ]nŒ]ƒŽ]›�]’]/¤]K¨] ù°]à¸]ÇÀ]¯È]®¦]@ä$ Ú+j+ #ÿÝóq ÀÝó‰  Àš ¢ ÿÿÿÿÿÿÿÿ@© ² "ÿÿÿÿÿÿÿÿ@º É  ÿÿÿÿÿÿÿÿ@× ì @ O@$  +X# #ÿ+_+g#@n$ Ú+j+ #ÿ€dðªÌóí  Ìóå  š ¢ ÿÿÿÿÿÿÿÿ © ² "ÿÿÿÿÿÿÿÿ º É  ÿÿÿÿÿÿÿÿ × ì   O GA$3a1<VRGA$3a1`R1ld.bfd-2.44-5.el9.x86_64.debug ˜Éý7zXZæÖ´F!t/å£àh§£]?‘E„h=‰¦ÚŠáƒ2NÙ•ŽÏx<ÁAÐZÿ³ÇqO=ñËd¥jç‘Àq¤­”ólª^°Jfná;®#ï}çCšÁÊx±ßR©È{\ÊÀ“yp}jNû~þÖA²nlŽ£=a¤lR¶´áÿ£\p<˜è<4mÝBòH‘g8­%écPâÿâVߣ@dŒòÚF߀Þ�¿«ê–®J^@ pK m¦)@#b8‡¶ÈmÏ0­�äLo+ˆ¢¢@½§ÖÞO—ãZ£Ÿ6p› Yë®ÔfM$„¦­ ëï¸4ÿDËGHd²½³Pâ3Š´˜ãj`± »ÜzÄa„š�è3H»¼7À„ü”–SU¬N�0ÏY´ßûo«È�@0 Q ª¢DšúŒØ¼ô§ð´²@Ý™Yci8Ü✉0ÿiQ&�÷nqïèù¾·T(á/^øšç †Ã�•á3³{0j”‡W6Aä/àÒÔÿX<šNdŒe§kE)fí®8¥Ü åáé øU`"»/¹2¶I>¾zë/WÆAÁõǦÃEq–ÏôyÛfÿ ªÈ•†‹ñei<¥‰ ¸¾éà;–4” ,KY?º¶ÆWÙÏty×½¹¤‚î–Åá±v¦P'"i�¸ äs™ *Eà{%ëVrºi È´ÌÜ ÄvÞµ“‰ºC�v`•—([‹I=Œ` 7‡úÄ }"N%iHåÆƒß}Ziþy<òº,„WVFªG4ähtŽ00–qÕÉuÀ6v[Æk©úÇîQ`týÏÅzC¬bO¼Å5¸×Ž(¼‰à…ŸÞ'$ê=דÆùi×�@ O›‹Ò \m—]=×b÷§ú„ІwÊýÍÉŒôõƒa¶Âg²$ÛÀýÓëéäQA͆[¥­]ÙÔÑ  Dáý–SßÉ”ë±pÕ½‰"k†¤å–¡Î"ìcӳͻ�Ò>¯YÑ­!,"’Oýß@á“.@êgI¥KÁP�o`Ö:†¬�ä@Tñìuíúß:^(ÐiýK­t¦¨ ¡ÝK€»ªIO}Õp4·Ù<:ý$„¤iâ5ß=B½ÉêÌp²õØæÁÓ¾(b#ðÔ{`�Þ+Î(]� ¾På³"1äñAà] 2y¼¨±>ÚvŒqrQîÌ®ð5ÿN6fçoÜû«S†‹1LT>™“ÖC“NÈ>Kª4³%Y‚€Ï2P UÖÐyàô$57+»´å×õÓmôÈ´Ž^—‘ºævý íj!øì˧ª¦UÐuÄr ¥ùn«>4×å´ïM|†YgLªŒJ3Èpcf§Œ¬ÞTÎ?�vFétŒè”Ñ£N?%RD¿:Ñ Ô`¾ð¬X.^ÑÞu]µ>F7¥C¾¤÷0̼È^‹+(Ñ…§x5v‘u•éFÍn¡ã“ VÁÀÔÜz–jógb·=ŽÉÊ:®ÖUÎJý'ÜØ‘ '¡îAT–ŽumQIDeRÒe½¸‡Ök H÷ÐÓ’¡^•‡¬_M?D¬0·Ïã&u·=¬Ã.<Šq1¸_| °®“�Ѿè«%Èß)ÜNA½ e$kTåbJì¦Òõ˜`$�§öˆ]ò; ÈeD(hvQœÕO,0(+»Á˜n¸”´AlÝÆþÆ>p½±TWxZ€1éSRª·¹ab)†IW6Ü@¡Ð48‹•åWUúï‹+B•iWºš¦ÔÚ:OgÜÏ;RŽ~e Â,Xè[½êñŸÙ€X êð"cƒû]ÎúÔ`l¥Ïš²éÍ7ò0îTŠÇðË�‚?˜vÈ43­�-‚̆ÓX>Ç—ãrʾñþŸ?¨ ãÀ´Ãzd(H¹„ƒ†‰S )=ÏlDYþW˜»/²?Éíl‡O'V0»éR뫬]gÉ ] Hc:t:“�…w:Ìm$?è9!)à#4ÙXAåß#ð)äº+CCËô´È€ý�È;ÉH"Žh�Óo  QIo™�ï/¡Ô7C&]®•ßýsÃîñþæ�¨%ÓLö‡ ¦¤:âu¨ ck)À ÖãàË—”¶ZVuc°I!_ÕesOT¯h:0þ/ÝRfÒG�æ1Å3-)HC²”˜Cã#{Æ�;+A$ÜÄù@Ç�oÇ(»� £?•<_-à›íÌxá¦Åh¦)ƒIÆør^�¨¢ès{ÐeF.¸Ãs³[—£S˜ìYÂ3sLæoó&½¤‹pÅ=)-€"¨ðÈC{œÞýÀ —|¦¾�¸ŠÌŸBÂùvzsÇά‹±rW| c0�±ý£ý­ÕIYZ:<~º Ó¸=¬¢Ró»§Q?Äü›<å#`‘ÏRÙ»IºRcÃû.ˆ·"wËñ; 0öo?YwA?Tõèi³6Õ–ˆ­ú� å‘`rÆ›/’àVˆ8áŸ2ã¯F·«ÊžERâßõc“Yj-ÿ%¦çR�oN¤ß—‚g‡öK�ï%$¿óQ2¾/ÍÔ� •º§9—®£u ¥![éàZ×zÇž£ì‘òÔ¸©ÓèØ‰I= À‡xQ*�5ߢٯÿT÷ýq„ ¯Ç"än¦•‘¸4?By¶�¶(gBª/µãÀj2ðÄò(›k÷9—¹¸ˆ Í_  &ç'p°ŒWk$ÄÚ¾¡:9Å#ˆ¦°Ü)¢t*ñÁ$µ‚ŒIšº+Û~iàù<U»SÌ `{rÝÊT[ùuÜ\]ã%vÁ¶qÀgÔgÁZbæ”1@.zô´úrœ;åµ.z·÷¼y}0u³WîôvT� –ÞI5Mp&q:ÁÀ>½æ §á!û¥âíÇ1€÷§=ÝMÍ´ËýݸH•=4˦ý “�ÌZ€žÕ è²1ÜÙI¹óÔDÎY%1Ó²øD•‘V>C_èÄëÁæ÷3d¦ÑT\Õ—“à 9‡·×L$öcMÄÌôb²ÌÓ$Gm�0skˆ­…*)¯.Mw2Å3CólCIP£µ+Ú¯PH€Š0%hú\\ôO!4YÓŸˆ¥*C Öô(fünqñº9EnîGºXé«�°+¤U®˜Ž(w‰­ynf*G|©¥õ¦¤8+­‹kýˆl�%ê`zv“üÏ ÀêN ëxõ*i¹%S?&Z¢Ì布D¹Âd@ªÑ0{þä­)#Çk¯5>$br�*yÔLuOŠûôí¢xXò‰£X¾Ç)©ŽÂu†se‰WЏïÀ«pÉ3†h4¶¯÷û»ðÞ×Nd”P�è³±sc½÷×–€BX,þdßVk�¤r Ô/PqÙ¥’h¼Ä�0N{ŸÝk¢ø£M®`“Ÿ”!Çî�e÷9ò,•ð«¾UØiK`¥¥Ÿ,ô©=®cŠàßøŠ>RK€à7Ðqì <ÃàYÖãăà3t˜îCK×0‰� ™^ÈÝèc‘© DÂò"QJa!Ëì{Ö¦óæ}æµ6É×&ø²÷y³>L5moõ›¹~^¢Îq“Mý%¨ŒÑ�È�—6/§IIêbe+!íÕöqŽí\]™[t? $Ü«i»Pzëûnˆäâ&& ÷ÑØ‘÷l€æ�ÍŒCPR‰ý�iç¿v–Nzú¶¼»ë†VzÁ¯º§ÉQ1dÕP6ÝâÑkš�BUˆD¬·7ðyÞ2P:¹_-®ì�dê¸G"ÆÛIJqÐS/C0‚ëV�äQLJ2üà)€±³â_‡ëÇ_@(œêcŠÂ)žšWØ.I6ÝÖ¶&�T5õd.olU‹¥‘Úô®&�¦»Æ,ƒÈÙêk æ:`αÛÙ�·¨%a(€ë¡-æýÔ)“?»ê±G;§tŠû6äûÐY&tM¼È}³õ<IüD—›üì,É:QÍ ¢K¶}Æ‰Š“¶¹ë6é¿LpðjxåN5á×TÚÅæ5zÀÉ13i‚|¡·€ 諸â#*ƒÞÓ¡†î&Ã"ÉHEZü�áa¥C½ o~¶TóŒ5ëÿ´Š_RŒ�$Ùn…?÷‘ž™?¸™¡_ù­ #m��p¼Ç2v0Rbñ#õÎý7xt<¶TÚÍñ%ÖP¸ ‹ÃƒIÖëÖ-s— �ãQ�y˜ºÞ’ \€�‚“O¹Ø§­ùy$;¯)­‡»šØ WªéÝ46( é\ð$Þ kY‰|�6L&Õ#,*#7 ­úQzíØïþùMŒv,g"¨gͱÛ,«²ö)ßÞ”¼‚·“# \¯yÚ¤œ‘@(Fð½^bïX‡ wŠÐQ™¥•Ãk <Ùͽª¹•´³Ð0Éê"²FÎŽƒ2ž Ô­ì(&—)ÂÇ1JÈHvøo+'”ñúWWi}Ð`0q0±(‚>ˆk\ò¯‘®ä^œàúËÖ¶ˆuX²M/À™UÉr¾ÄÌþ¸{`¨J!ÓD/LŒ»XSl�]9î·j߆‰9ËçóÐXƒcr´ÿÂéÓIÂ[‚þã§Å}ÉÇm„Õ2Lö¿xç‘ öähdMçÎW}j«ŸŒ>LNîÙó"ð9•К SsEß³ «ÇAÒ#ŒáM~#*[B¡ýò^ 7 ¤ôyØà:½üøô|�Œt²B~ÐÁy¡õ\ž‡ã^f9«¾È�ºBFÍWýD|Nud-Jhƒ¤Ì§˜Ú¦ ÛØe2Ĥåô³Ç5,4 ±€œE’ œËâþr"±[ ÌÑGsšv 3�Š"qù¤$¶Qß«*”ö£†FµBAÀ™¾Z;2Å컪'àl7;؉ %ÍÆ¤Î±=š`›¹Ga“�†Äa°rÐÃg‹«U˜>˜!”Ó–¯f p5ž.îüsùÔ,6²\ �>ÆF‚©&É¿‚SÓù¸DHƒZÄöy�؆²=zŽ€K= € R½?¤=wA ¡6ÌTùÿ»·{ûOòâ –Â}Øœb£Q©‹œè [κm/ ’fó|ÇpqÔ:‡û:ä¼^€Ÿ “�¿Ì‹ç|C�ÿø•‚£p;Ñ×0J·CÓy½ŸÿǾנdÛøÛ€qœ™&4`)¶b#G_qüŒ¦ž,àDèQšLírEþQäÙìè´•³hi±q¥™bà _©×y„:)¶+L„Òa kUÇåWkr|U_}Ò%‰‰ ÈiÆ÷Gxyùm‘ÏÎç!±œÞÓ|’ðe˜ ?�©ÃL'�jå‹cD½è0Qe¥¢Ý ×³Ð[¨ž~`ª%¥ï?‘–©—yà óØ´™B8ö邾«òKø™/oübù ¥q ÐØV“·¦"Øö¼èõ:¾á *=æ¶”ãtI?Ãúx�¸ÕžÂ‘*¦�ôPéâŽ0ù«Êæ u).ÙüQ° 7zÒÔ“ˆÌ Â4µþÑä´øöòë?ß$w)!ËKÀêgKOê3XeM çŽ:ú} ~™H4i¹K,Ó>ÿ[h0zÍ…�_˜Û:/ö1š‚Tqü£:d� c† ¦Ñl×ìÁ³5qÿ¼Ä%KÒà Jzhµp»Ûi~Ý=�êÏ;=SÂ+5‚óvdɸ]|ûx»êŽíN/~Î ¥‹Ú>Å\z/K¸N#JMé�à4{ð#û„Òöþs4¿æJ`#+Ê¡«ÔÅóB9Ê8Qò'Kc×Âõâa†t®ê£CØ{‘k{É5LK¤Þ;—[9Ý8…Tʤz ¿ija±>•ß“n?šVIEm¼W0S/wCe©Pœ6á2 0±dý.é�‚–®ô^ÙÑä}ð±>9›IÖ˜l9'ŽôÿÝü×kó«¢Hëz54Ûg5+ß3ÞÑüǪٸØmSk¯í9Jl2Ïû×jáÝ÷Ëqû¼ú¹YûP×#ñÆÃ´}Ránß_!•.õîâóÖ²²«Ø9&è�RB†$*þÌÙµêÀ�q/ÊÉ¡Oy< ¡ñŸOúþ}yýÌ+b¡zú[©Ýƶ-„“å³mÛ½Nô BW©„€œ� ¼!bëh9C%‘ ]±9@”áÚ2JјOÈ: ŒŠÃ g)¬,âÿ4Ù¶Ï�U¼„!<ŠŒ”Ù9ÊL'™˜HFM T²ô`7Ó¬x¶0dÀaØU6­žUŠL’¹náÝ¡»ÂWeb‹–YµßטÏ�&‹Õá*‹ÑÜ"õñ‹Ž-ËD¿v�™³¿4 íˆ.½õ$Ùèwq†)étÅÔ£5¥W:3¬¾—"6,õJÎ$!¨w 儆yž^”,v•K&¾’�ÕÞÿð qÌ9<Àµ¶N x(\óH²¶àÚÊÇçh2ê8&¯†RÚ1±e€“M¬ÞêÏLÚŸz3g¥éM·Æ¶P¢}K™Û™) ,“3Ì”ߊVEI ÷XÝž ¶FFkåÌ HPËdß½As´­~¿Æpø—È“ªy=c૨ œñ5ú.ò3EFðÀq�áh°Œ°O^Š×ݨ7‘.Ä.ÉAØö+—1‡÷Àœ¯w0Î{;jLÙX rÈ2ç!–ªÃ@¥CWñ�;•{÷”;ð® Ùa”Hz<Éì•°(±:,”Ý"©z?³V€²Üž4"\'%�©˜õ^0¾5QdcZš5b\zfÜ >æè¹¢€ÚE :ݦÁå"!a‡W•¯]ëÉÑ}gn¢0Ç4”ý"(høøÂ¤áÚdÿÀ àŠjàÓ�DØ.N®;l<%á]å@±|16&"Ïc¨ƒ£Í÷ksÓP¥ø`ÃÕ¿Š÷älã@ÃViSˆT©ay.¯/\ÞåÄÎéÌ�~Ä ôLG\�øF-Ø„*W ¼¼Þ…,ÀPýPü¼È;EÓb&oñ4€á]]àÜe ^päil‹ÔTöF2SEZÙÿ5R–ý¡¡åÕ#»U¬à²™¾¢ßwÇ9Î!¸.¤ô“²î×e,˜Ë$ÊSh°�ÅIDDä€�𽟠"Ä h_|'Ä›{Ìæ0Òù>ÄŒv‰óÄR¾Ê}!®å ¥ Hw½þ·“s9#Ôm<˜e®Âw4ø— ›y§ûÅÐËÔ�]ÊøòÓ«ãõ\aZÒæ×qw€é=éóN|Bé nHäY´ ‹NIùׯœ|ª|#¢Z®K#[f–tòðæ�o%B�ÈA1×ðR±K-@�¿º™JÙ¥�P�´uågbpê‚ñ¢Ë..­_þLﬧ:TÒª2í' |v-Ò©Ì�/³¥P¶‡<’¤ò}‘ …O¬SUtsü~厾G]Ò[Ræ3<2ÊDy™T údÆ®Ù|ŸLŒ«ÓH•I—Sz‘ȵJr‡g#¿Rÿ:/6Ô«`;Ö4²jÅ!%úñAტ`¿3¨Ñ‡èÇÓ±ÄgûYZ.shstrtab.note.gnu.build-id.init.plt.sec.text.fini.interp.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.rodata.eh_frame_hdr.eh_frame.note.gnu.property.note.ABI-tag.init_array.fini_array.data.rel.ro.dynamic.got.data.bss.gnu.build.attributes.gnu_debuglink.gnu_debugdata $<<†``Ð$00À-%%!é@3$$ 9Aöÿÿo  ´ K ØØx SP,P,e[ÿÿÿo¶>¶>J hþÿÿoAAà wàAàAhy �BH»H»  ‹€Ô€Ôát@“dIdIŒ¡ðWðWla«`¹`¹0¾�¹�¹ ̰À°ÀظÀ¸ÀäÀÀÀÀ d@ñà$à$0 ú''Àÿ00@ @F@Fˆ È…@FH ˆF$/¬Fä�`>