Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
ELF>ðû@ØD@8 @@@@hh¨¨¨À�À� °”°”:°”:˜‰(³  ö ö: ö:  ÈÈÈ èèèDDSåtdÈÈÈ Påtd@ç@ç@çQåtdRåtd°”°”:°”:PkPk/lib64/ld-linux-x86-64.so.2GNUÀGNUGNUˆ"›99c율å$Ý6`ôz¦î¤¡®ž*´ˆE�îïðóôöùüþÿ3Ä÷ÙqXºã’|nmŸÿÍ@Ûæ“˜<­¶úëOŽýBEÕìDø¡9ò‹L>¥ h �HÁ³÷>[³¢÷jšugUa�Çà`(Œ�cÿï š^Aˆ æx¼í ä õ l æ È œ�  o i - ™¼ 3}¬Ï¥& æS É„k} Ôq¾I ëÎ :¸ Š6C Õ ¶š - C­ Žžvr  ̇© "Á » 'Ò2 } aQ 4í®Ž7 ½ ýà « d Oj ¨ !ƒ L= r JK®K T –˜X  ‘ >¬ ‘‚  2 7 zÓ @ Ç ²ˆ�øÐ é a åîI Ê5 ì ¯}b Z`ëDMJ qO: À  üo} »; ˆ! Š … Èp Bâ)àí«e ­Ò‚�£ — ± ù±  Š© }'Õ Äð «g1úÉ Ý PZŠ @„X ¤ }– T .F ØY£ šà �ÕÖ C WÈ" 8 ,í] P  |×⢠x;pH;|ØG;  ;`  õ:h )«8;õ iH;¼  ó: #;[° mª#;#;ö p 7 €; @ û p;1` ¤ `;ëh;libbfd-2.30-128.el8_10.so_ITM_deregisterTMCloneTable__gmon_start___ITM_registerTMCloneTablebfd_get_next_section_by_namebfd_getb32bfd_record_phdrbfd_get_arch_infobfd_use_reserved_idbfd_openrbfd_openwbfd_cache_close_allbfd_group_signaturebfd_errmsgbfd_set_archive_headbfd_scan_vmabfd_check_format_matchesbfd_find_targethtab_findbfd_set_section_sizebfd_elf_record_link_assignmentbfd_getb64bfd_make_readablebfd_emul_set_maxpagesizebfd_putl16bfd_arch_mach_octets_per_bytebfd_arch_get_compatiblecplus_demangle_name_to_stylebfd_hash_table_freebfd_get_section_contentsbfd_get_section_by_namemake_temp_filegetpwdbfd_fopenxreallocbfd_elf_get_bfd_needed_listbfd_generic_link_read_symbolsbfd_i386linux_size_dynamic_sectionsbfd_putl32bfd_closebfd_bwritexstrdupbfd_set_error_handlerbfd_set_arch_infobfd_set_symtabbfd_elf_size_dynamic_sectionsbfd_make_section_anyway_with_flagsbfd_set_errorbfd_make_writablexmallocbfd_get_reloc_sizebfd_emul_get_maxpagesizebfd_putl64bfd_arch_bits_per_addresshtab_hash_stringbfd_elf_get_runpath_listbfd_elf_set_dt_needed_namebfd_elf_discard_infobfd_target_listbfd_iterate_over_targetsbfd_alloccplus_demangle_set_stylebfd_scan_archbfd_link_hash_traversefilename_ncmp_bfd_pex64i_write_codeview_recordbfd_get_reloc_upper_boundbfd_get_archbfd_set_error_program_nameunlink_if_ordinarybfd_section_already_linked_table_freebfd_wrapped_link_hash_lookupbfd_get_target_infobfd_link_hash_lookupbfd_statbfd_elf_get_dyn_lib_classbfd_hash_traversebfd_close_all_donexcallocobjalloc_free_blockconcatbfd_openr_next_archived_filebfd_link_add_undefbfd_emul_get_commonpagesizebfd_extract_object_only_sectionbfd_get_reloc_code_namebfd_hash_lookupbfd_printable_namebfd_set_section_flagsbfd_elf_parse_eh_frame_entriesbfd_hash_table_initbfd_hash_table_init_nbfd_get_errorbfd_make_section_anywaybfd_set_assert_handler_bfd_elf_tls_setuphtab_create_bfd_fix_excluded_sec_symsmake_relative_prefixbfd_set_file_flagsbfd_set_formatbfd_seekcurrent_demangling_stylebfd_map_over_sections_bfd_elf_match_sections_by_type_bfd_pei_write_codeview_recordbfd_set_start_addressbfd_get_machbfd_hash_set_default_sizelbasenamebfd_get_unique_section_nameregister_ld_plugin_object_pbfd_new_link_orderbfd_hash_newfunc_bfd_pex64i_swap_debugdir_outbfd_hide_sym_by_versionbfd_set_section_contentsbfd_initbfd_check_formatbfd_demanglebfd_elf_get_dt_sonamebfd_get_section_by_name_ifxexitbfd_plugin_target_pxmalloc_set_program_namebfd_link_check_relocs_bfd_pei_swap_debugdir_out_sch_tolowerbfd_make_section_old_waybfd_make_section_with_flagslrealpathbfd_set_default_targetbfd_elf_get_needed_listhtab_find_slotbfd_hash_allocatebfd_breadbfd_reloc_type_lookupbfd_section_already_linked_table_initbfd_elf_set_dyn_lib_classbfd_emul_set_commonpagesizebfd_plugin_open_inputbfd_getb16bfd_octets_per_bytebfd_get_full_section_contentsbfd_createfilename_cmpbfd_set_gp_size_bfd_elf_map_sections_to_segments_sch_istablebfd_canonicalize_relocbfd_get_gp_sizebfd_elf_size_dynsym_hash_dynstr_bfd_std_section_xexit_cleanuplibdl.so.2dlclosedlsymdlopendlerrorlibc.so.6fflushstrcpy__printf_chkfnmatchsetlocalestrncmpdcngettextoptindstrrchrperrordcgettextftellstrncpytime__stack_chk_failunlinkputcharabortstdinstrpbrkmkstemprewindstrtokstrtolisattymmapfeoffgetcfgetsstrlenungetcmemsetglobstrstrstrcspn__errno_locationfseekmemcmpgetpagesize__fprintf_chkstdoutfputcgetrusagefputslseekmemcpyfclosestrtoulstrcatstrcasecmpgetenv_obstack_allocated_poptargstderrmunmap_obstack_begin_1_obstack_newchunkgetopt_long__fxstatstrtoullfileno_obstack_memory_usedfwritefreadrename__memcpy_chkstrchrqsortobstack_alloc_failed_handler__cxa_finalize__sprintf_chk__xstatmemmove_obstack_beginbindtextdomainopterrstrcmp__libc_start_mainferrorstpcpyglobfreegetopt_long_only_obstack_free_edata__bss_start_endGLIBC_2.2.5GLIBC_2.27GLIBC_2.14GLIBC_2.3.4GLIBC_2.4/usr/lib640  ui �X ‡‘–�”‘–˜ti £ii ¯ui �°”:Ðü¸”:�üÀ”:À”:à”:Ûè”:ãð”:ëø”:ö•:•:•:•: •: (•:d0•:%8•:0@•:¨éH•:4P•::X•:A`•:Ih•:Pp•:Vx•:Z€•:cˆ•:l�•:r˜•:w •:{¨•:°•:„¸•:‹À•:�È•:“Е:oØ•:là•:—è•:›ð•:×!ø•:Ÿ–:¢–:©–:°–:´ –:¸(–:¼0–:À8–:Ä@–:¥H–:ÊP–:ÎX–:Ö`–:Üh–:âp–:áx–:瀖:숖:ò�–:÷˜–:, –:¨–: °–:¸–:À–:)È–:@Ж:QØ–:^à–:pè–:zð–:�ø–:”—:˜—:§—:µ—:Í —:Ù(—:ó0—: 8—:@—: H—:'P—:4X—:?`—:Fh—:Lp—:Qx—:V€—:^ˆ—:f�—:o˜—:z —:~¨—:„°—:‰¸—:�À—:œÈ—:˜З:¡Ø—:§à—:­è—:µð—:¹ø—:˜:À˜:Ș:Ô˜:ã ˜:ê(˜:ï0˜:ö8˜:x@˜: H˜:P˜:X˜:&`˜:²h˜:/p˜:Hx˜:8€˜:@ˆ˜:O�˜:Y˜˜:™ ˜:G¨˜:^°˜:A¸˜:gÀ˜:oȘ:wИ:}ؘ:†à˜:�è˜:®ð˜:˜ø˜:Ÿ™:©™:.™:®™:· ™:»(™:È0™:Ù8™:æ@™:ëH™:P™:òX™:û`™: h™:p™:x™:!€™:6ˆ™:;�™:F˜™:Q ™:Y¨™:m°™:~¸™:„ÛÀ™:‹È™:žЙ:¢Ø™:¦à™:ªè™:®ð™:²ø™:¶š:ºš:·îš:š:Ë š:×(š:Û0š:ë8š:ï@š:Hš:Pš:Xš:%`š:8hš:Jpš:Vxš:g€š:kˆš:ß�š:�˜š:… š:�¨š:™°š:�¸š:¡Àš:¬Èš:°К:¼Øš:¿àš:Ãèš:&ðš:Çøš:×›:ê›:ï›:ý›: ›:"(›:40›:C8›:N@›:`H›:rP›:�X›: `›:¥h›:¯p›:´x›:¹€›:Ȉ›:Û�›:☛:ë ›:ô¨›:!°›:þ¸›: À›:ïÈ›:Л:(Ø›:9à›:Eè›:Jð›:Oø›:[œ:gœ:vœ:†œ:˜ œ: (œ:³0œ:Ð8œ:â@œ:þHœ:Pœ:%Xœ:0`œ:,hœ:5pœ:Dxœ:K€œ:Uˆœ:j�œ:w˜œ:Òò œ:‡¨œ:Œ°œ:‘¸œ:–Àœ:›Èœ: М:¥Øœ:ªàœ:¯èœ:´ðœ:¹øœ:¾�:Ã�:Ø�:È�:Î �:à(�:õ0�:8�:@�:H�:*P�:/X�:4`�:9h�:?p�:Ix�:N€�:Sˆ�:X��:b˜�:r �:{¨�:�°�:’¸�:¥À�:·È�:ÈÐ�:ÜØ�:¥ïà�:áè�:æð�:ñø�:ûž:ž: ž:ž: ž:hž:tèpž:XÁ€ž:€è¨ž:Ô°ž:|èÀž:»ðèž:×(ðž:8ÓŸ:�è(Ÿ:Þæ0Ÿ:˜è@Ÿ:¶èpŸ:hÓ€Ÿ:¹èÀŸ:¼èðŸ:�Ó :–$( :qò0 :Óè@ :ép :å耠:é° :¸ÓÀ :éð :é¡:¸0¡:-é@¡:Héh¡: p¡:àÓ€¡:R騡: °¡:Ôð¡:Yé¢:aé(¢:(0¢:8Ô@¢:héh¢:oép¢:hÔ€¢:ƒé¨¢:xé°¢:�ÔÀ¢:€éð¢:ÀÔ£:Cñ(£:¥é0£:’é@£:­éh£:ºép£:Õ€£:Äé°£:(Õè£:è!ð£:Øé¤:æé0¤:PÕ@¤:ðép¤:÷逤:ê°¤:xÕÀ¤:êð¤:°Õ¥:ë(¥:Þæ0¥:êp¥:-ꀥ:Bꨥ:Þæ°¥:MêÀ¥:wêè¥:eêð¥:lê¦:~ê(¦:‰ê0¦:ØÕ@¦:�êp¦:øÕ€¦:Ÿê°¦:(ÖÀ¦:¤êð¦:(Ö§:´ê0§:XÖ@§:Àêp§:ˆÖ€§:½ê°§:ˆÖÀ§:Ðêð§:°Ö¨:Óê0¨:ÐÖ@¨:ßêp¨:ëêÀ¨:ëè¨:Þæð¨:øÖ©:ë0©:ë@©:0ëp©:<뀩:Wë°©:0×À©:Tëð©:Xת:gë0ª:më@ª::hª:Þæpª:~뀪:‘먪:Þæ°ª: ëÀª:»ë«:&(«:^ì0«:ˆ×@«:¾ëh«:^ìp«:¸×€«:Î먫:Õë°«:è×À«:àëð«:ج:¥ï0¬:ãëp¬:HØ€¬:ýë°¬: ìÀ¬:#ìð¬:pØ­:2ì0­: Ø@­:?ìh­:^ìp­:L쨭:í1 °­:ÀØÀ­:eìð­:qì®:ì0®:‰ì@®:˜ìp®:ðØ€®:•ì°®:0ÙÀ®:µì¯:²ì@¯:Ãìp¯:hÙ€¯:Àì°¯: ÙÀ¯:Íìè¯:tèð¯:Ú°:Ôì0°:Ýì@°:~€°:ûìÀ°:íð°:0Ú±:í@±:퀱:íÀ±:íð±:XÚ²:'í0²:xÚ@²:>íp²: Ú€²:;í°²:ÐÚÀ²:Píð²:Û³:Mí0³:8Û@³:gíp³:l퀳:Žæ¨³:‰í°³:›íÀ³:íîè³:«íð³:xÛ´:´í0´:Äí@´:ùíp´:Ý퀴:öí°´: ÛÀ´:è´:^ìð´:îµ:#î0µ:ÐÛ@µ:7îpµ:Ü€µ:4î°µ:0ÜÀµ:Fîðµ:Xܶ:Cî0¶:€Ü@¶:Xîp¶:¨Ü€¶:iî°¶:àÜÀ¶:‰îð¶:|î·:(·:^ì0·:Žî@·:§îh·:Þæp·:«î€·:¼î°·:ÍîÀ·:êîð·:öî¸:ï0¸:Ý@¸:"ïp¸:8Ý€¸:2ï°¸:pÝÀ¸:/ïð¸: Ý¹:Hï0¹:bï@¹:}ïp¹:’:­ï°¹:¼ïÀ¹:Úïð¹:ØÝº:òï0º:Þ@º:ðpº:8Þ€º:ð°º:,ðÀº:Eððº:hÞ»:Tð@»:cðp»:˜Þ€»:lð¨»:×(°»:tðÀ»:’ðð»:¦ð¼:Âð0¼:Ðð@¼:æðp¼:øÞ€¼:íð°¼:ßÀ¼:ñð¼:Pß½:ñ0½:ˆß@½:ñh½:Þæp½:À߀½:"ñ¨½:í1 °½:èßÀ½:(ñè½:í1 ð½:à¾:3æ0¾:3ñ@¾:Kñ€¾:*æ°¾:@àÀ¾:Vñ¿:eñ(¿:qñ0¿:pà@¿:‰ñ€¿:•ñ¨¿:¢ñ°¿:¨àÀ¿:±ñè¿:Äñð¿:ØàÀ:Êñ(À:Øñ0À:á@À:àñhÀ:ïñpÀ:0á€À:øñ°À:þñÀÀ:òðÀ:`áÁ:(ò(Á:^ì0Á:2ò@Á:HòpÁ:€á€Á:[ò¨Á:iò°Á:yòÀÁ:–òèÁ:qòðÁ:›òÂ:·ò(Â:qò0Â:½ò@Â:ÚòhÂ:qòpÂ:àò€Â:ýò¨Â:qò°Â: óÀÂ:'óèÂ:qòðÂ:7óÃ:Uó(Ã:qò0Ã:dó@Ã:�ópÃ:¨á€Ã:«ó¨Ã:�ó°Ã:`âÀÃ:§óÄ:³ó(Ä:Þæ0Ä:ˆâ@Ä:ÂóhÄ:^ìpÄ:¨â€Ä:Úó°Ä:ãÀÄ:ìóðÄ:8ãÅ:ô0Å:ô@Å:9ôhÅ:ÞæpÅ:Fô€Å:Xô°Å:hãÀÅ:dôðÅ:�ãÆ:vô0Æ:Èã@Æ:‡ôpÆ:ðã€Æ:‘ô°Æ:äÀÆ:¤ôðÆ:PäÇ:¸ô0Ç:xä@Ç:ÊôpÇ:°ä€Ç:âô°Ç:ØäÀÇ:7ððÇ:åÈ:ûô(È:^ì0È:0å@È:õhÈ:^ìpÈ:Xå€È:õ°È:�åÀÈ:$õðÈ:ÈåÉ:.õ0É:Aõ@É:\õhÉ:lõpÉ:æˆÉ:ƒ˜É:¨é¨É:H(¸É:K(ÈÉ:N(ØÉ:Q(èÉ:T(øÉ:X(Ê:\(Ê:_((Ê:b(8Ê:e(HÊ:h(XÊ:k(hÊ:U(xÊ:Y(ˆÊ:n(˜Ê:q(¨Ê:�¸Ê:2ÈÊ:ÖØÊ:âèÊ:áøÊ:çË:ìË:ò(Ë:÷8Ë:˜HË: XË:^hË:×(xË:oˆË:z˜Ë:~¨Ë:„¸Ë:�ÈË:‰ØË:œèË:˜øË:„ÛÌ:^Ì:t((Ì:x(8Ì:|(HÌ:ßêXÌ:hÌ:)xÌ:@ˆÌ:ã˜Ì:ï¨Ì: ÀÌ:l0 àÌ:�3 Í:ú2 Í:–3 @Í:®3 `Í:·3 €Í:É3  Í:Ý3 ÀÍ:Ú3 àÍ:ê3 Î:÷3 Î:4 @Î:4 €Î:l0  Î:�3 ÀÎ:ú2 àÎ:–3 Ï:®3 Ï:·3 @Ï:É3 `Ï:Ý3 €Ï:Ú3  Ï:ê3 ÀÏ:÷3 àÏ:4 Ð:4 @Ð:l0 `Ð:�3 €Ð:ú2  Ð:–3 ÀÐ:®3 àÐ:·3 Ñ:É3 Ñ:Ý3 @Ñ:Ú3 `Ñ:ê3 €Ñ:÷3  Ñ:4 ÀÑ:4 Ò:l0 Ò:�3 @Ò:ú2 `Ò:–3 €Ò:®3  Ò:·3 ÀÒ:É3 àÒ:Ý3 Ó:Ú3 Ó:ê3 @Ó:÷3 `Ó:4 €Ó:4 ÀÓ:l0 àÓ:�3 Ô:ú2 Ô:–3 @Ô:®3 `Ô:·3 €Ô:É3  Ô:Ý3 ÀÔ:Ú3 àÔ:ê3 Õ:÷3 Õ:4 @Õ:4 €Õ:l0  Õ:�3 ÀÕ:ú2 àÕ:–3 Ö:®3 Ö:·3 @Ö:É3 `Ö:Ý3 €Ö:Ú3  Ö:ê3 ÀÖ:÷3 àÖ:4 ×:4 H×:û]X×:é]h×:j_x×:y_ˆ×:é]˜×:j_À×:*_Ð×:-_à×:�_ð×:—_Ø:ž_Ø:§_ Ø:ª_@Ø:¸_`Ø:­_€Ø:Â_ Ø:ÍÐÀØ:aaàØ:Ñ_Ù:å_ Ù:ö_@Ù:``Ù:"`€Ù:3` Ù:K`ÀÙ: 3 àÙ:]`Ú:g` Ú:�"@Ú:x``Ú:{`€Ú:Ž` Ú:Ž`ÀÚ:™`àÚ:¬`Û:¼` Û:ê3 @Û:Ð``Û:ë`€Û:ó` Û:aÀÛ:aàÛ:0aÜ:Ga Ü:Ga@Ü:Ua`Ü:la€Ü:„a Ü:–aÀÜ:ªaàÜ:½aÝ:Ña Ý:èa@Ý:b`Ý:°"€Ý:!b Ý:;bÀÝ:VbàÝ:fbÞ:rb Þ:}b@Þ:†b`Þ:“b€Þ:šb Þ:¢bÀÞ:¬bàÞ:·bß:´b ß:ú2 `ß:^pß:Èb€ß:Ðb�ß:Øb ß:Þb°ß:äbèß:û]øß:é]à:j_à:y_(à:é]8à:j_`à:*_pà:-_€à:�_�à:—_ à:ž_°à:§_Àà:ª_àà:¸_á:­_ á:Â_@á:ÍÐ`á:aa€á:Ñ_ á:å_Àá:ö_àá:`â:"` â:3`@â:K``â: 3 €â:]` â:g`Àâ:�$àâ:�"ã:x` ã:{`@ã:·b`ã:´b€ã:Ž` ã:Ž`Àã:™`àã:¬`ä:¼` ä:ê3 @ä:Ð``ä:ë`€ä:ó` ä:aÀä:aàä:0aå:Ga å:Ga@å:Ua`å:la€å:„a å:–aÀå:ªaàå:½aæ:œ$ æ:èa@æ:b`æ:X΀æ:°" æ:º$Àæ:²$àæ:!bç:;b ç:fb@ç:rb`ç:}b€ç:†b ç:“bÀç:šbàç:¢bè:¬b è:ú2 `è:^pè:Èb€è:Ðb�è:Øb è:Þb°è:äbàè:©ðè:NÐé:„Ûé:SÐ é:–Û0é:Íÿ@é:\ÐPé:hÐ`é:\Ûpé:rЀé:zÐ�é:ƒÐ é: аé:¨éÀé:ŽÛÐé:‹Ðàé:{Ûðé:’Ðê:OÛê:÷ ê:ÃÐ0ê:eÛ@ê:šÐPê:¤Ð`ê:UÛ€ê:hÚ�ê:ÌÜÀê:`ÚÐê:ÝÜàê:¤Úðê:¨]ë:èÜë:m2 @ë:ÝPë:Ý`ë:!Ýpë:üÜ€ë:Ý�ë:Ý ë:ݰë: ÝÀë:(ÝÐë:3Ýì:WÚì:<Ý ì:FÝ0ì:MÝ@ì:VÝPì:`Ý`ì:kÝpì:vÝ€ì:}Ý�ì:‡Ý ì:�ݰì:–ÝÀì: ÝÐì:­Ýí::Þí:RÞ í:^Þ0í:fÞ@í:/ßPí:tÞ`í:†Þpí:šÞ€í:¶Þ�í:ÆÞ í:ÖÞ°í:æÞÀí:ÍÛÐí:öÞàí:ßðí:ßî:ßî:ß î:!ß@î::ÞPî:^Þ`î:/ßpî:.߀î:ÍÛ�î:öÞÀî:hÚÐî:ÌÜï:`Úï:ÝÜ ï:¤Ú0ï:¨]@ï:èÜPï:m2 €ï:Ý�ï:Ý ï:!ݰï:üÜÀï:ÝÐï:Ýàï:Ýðï: Ýð:(Ýð:3Ý@ð:WÚPð:<Ý`ð:FÝpð:MÝ€ð:VÝ�ð:`Ý ð:kݰð:vÝÀð:}ÝÐð:‡Ýàð:�Ýðð:–Ýñ: Ýñ:­Ý@ñ::ÞPñ:RÞ`ñ:åpñ: å€ñ:{$�ñ:å ñ:1å°ñ:`åÀñ:GåÐñ:¶Þàñ:ÆÞðñ:ÖÞò:æÞò:ÍÛ ò:öÞ0ò:ß@ò:ßPò:ß`ò:ßpò:!ß ò::Þ°ò:^ÞÀò:/ßÐò:.ßàò:ÍÛðò:öÞ;@$;;ø&;;C2 ;Ð';(;€';0;cò@;ð_H;0eP;€lX;àk`;ðih;gp;�px;pc€;^ˆ;À]�;`^˜;Р;¨;İ;ðð¸;+#À;;È; ;Ð;@;Ø;à ;à;À ;è;`;ð;;ø;;;`;;¸);; G; ;EÛ(;(+;@;C2 p;52  ;p3 Ð;)2 ;2 `;w3 �;3 À;†3 ;P(;`¯;�¯;°' ;0:(; ®0;�08;¯@;ЭH;P;X;†!`;4 h;ðx;P€;°(˜;  ; °;¸;pà;C2 ;52 @;p3 p;)2  ;2 ;w3 0;3 `;†3  ;°h¨;`¯°;�¯¸;hÀ;�zÈ; ®Ð;ðpØ;¯à;Эè;pYð;°Dø;¥% ;²% ;PY;°W ;i8;W@;€IP;°GX;G€;C2 °;52 à;p3 ;)2 @;2  ;w3 Ð;3 ;†3 @;°¨H;`¯P;�¯X;¨`;�ºh; ®p;ð°x;¯€;Эˆ;p™�;…˜;œé ;¥é¨;P™¸;°—À;©Ø;—à;°‰ð;ˆø;p‡ ;C2 P ;52 € ;p3 ° ;)2 à ;2 @ ;w3 p ;3   ;†3 à ;€áè ;`¯ð ;�¯ø ;àà ;ðî ; ® ;Àé ;¯ ;Э( ;0Ø0 ;Å8 ;m—@ ;w—H ;ØX ;pÖ` ;àáx ;ÀÕ€ ;�É� ;Ș ;pÇÀ ;`ûÈ ;`¯Ð ;�¯Ø ;®à ;�®è ; ®ð ;°®ø ;¯ ;Э ;@ý ; û ;3˜ ;=˜( ;à®0 ;Pû8 ;ü  ;C2 Ð ;52 ;p3 0 ;)2 ` ;2 À ;w3 ð ;3 ;†3 `; h;`¯p;�¯x;€€;2ˆ; ®�;`(˜;¯ ;Э¨;à°;Àý¸;qzÀ;zzÈ;ÀØ; à;€ ø;p;@;À; @;C2 p;52  ;p3 Ð;)2 ;2 `;w3 �;3 À;†3 ;à^;`¯;�¯;@^ ;Àp(; ®0; g8;¯@;ЭH; OP;€<X;Ñ\`;Ú\h;€Ox;àM€;@_˜;0M ;A°;€?¸;à>;C2 0; ]`;±_�;)2 À;2 ;8<;;^](;è;;@; _P;8<;h;^x;@<;�;] ;H<;¸;÷^È;P<;à;�^ð;R<;;²^;T<;0;Ç^@;V<;X;ß^h;X<;€;W^�;Z<;¨;s^¸;€<;Ð;�^à;ˆ<;ø;m];�<; ;>^0;˜<;H;‡]X; <;p;&^€;¨<;˜;ñb¨;‚<;À;_;€œ;`¯;�¯;€› ;Ð�(; ®0;°®8;¯@;ЭH;°�P;0‹X;éb`;4]h;�x;€ª€;0„ˆ;`¨˜;Àƒ ;@Ÿ¨; �°;`{¸;àœÀ;@{;C2 0; ]`;±_�;)2 À;2 ;X>;;^] ; >;0; _@;X>;P;^`;`>;p;]€;h>;�;÷^ ;p>;°;�^À;r>;Ð;²^à;t>;ð;Ç^;v>;;ß^ ;x>;0;W^@;z>;P;s^`; >;p;�^€;¨>;�;m] ;°>;°;>^À;¸>;Ð;‡]à;À>;ð;&^;È>;;ñb ;¢>;0;_`;PÖh;`¯p;�¯x;PÕ€;àȈ; ®�;°®˜;¯ ;Э¨;À¿°;Ðø;Î$À;`$È;¿Ø;`äà;»è; âø;�º;ÀØ;Æ;à±;PÄ ;À±@;ÌÐP; 3 `;ÒÐp;ØÐ€;àÐÀ;4]È;?]à;í:è;4]ð;¹Ý;í:;ÊÝ;ÒÝ0;@î:8;ÙÝ@;âÝX;@î:`;ïÝh;Þ€;@î:ˆ;êÝ�;þݨ;@î:°;Þ¸;&ÞÐ;@î: ;`$(;i$@;@ñ:H;ÊÝP;ÒÝh; ò:p;ÙÝx;âÝ�; ò:˜;ïÝ ;Þ¸; ò:À;êÝÈ;þÝà; ò:è;Þð;&Þ; ò:8; @;`B;°ÿ:÷˜ÿ: ÿ:¨ÿ:/¸ÿ:QÀÿ:]Èÿ:wÐÿ:¤Øÿ:Óàÿ:âèÿ:åðÿ:ø ó:÷ õ:ò #;ø`;h;p;ÿx;î€;ý ;ñ#;ú#;ûXø:`ø:hø:pø:xø:€ø:ˆø:�ø:˜ø:  ø: ¨ø: °ø: ¸ø: Àø:Èø:Ðø:Øø:àø:èø:ðø:øø:ù:ù:ù:ù: ù:(ù:0ù:8ù:@ù:Hù: Pù:!Xù:"`ù:#hù:$pù:%xù:&€ù:'ˆù:(�ù:)˜ù:* ù:+¨ù:,°ù:-¸ù:.Àù:/Èù:0Ðù:1Øù:2àù:3èù:4ðù:5øù:6ú:7ú:8ú:9ú:: ú:;(ú:<0ú:=8ú:>@ú:?Hú:@Pú:AXú:B`ú:Chú:Dpú:Exú:F€ú:Gˆú:H�ú:I˜ú:J ú:K¨ú:L°ú:M¸ú:NÀú:OÈú:PÐú:QØú:Ràú:Sèú:Tðú:Uøú:Vû:Wû:Xû:Yû:Z û:[(û:\0û:^8û:_@û:`Hû:aPû:bXû:c`û:dhû:epû:fxû:g€û:hˆû:i�û:j˜û:k û:l¨û:m°û:n¸û:oÀû:pÈû:qÐû:rØû:sàû:tèû:uðû:vøû: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ÿ:ê€ÿ:ëˆÿ:ì�ÿ:íóúHƒìH‹A-:H…ÀtÿÐHƒÄÃÿ5¢%:òÿ%£%:óúhòéáÿÿÿ�óúhòéÑÿÿÿ�óúhòéÁÿÿÿ�óúhòé±ÿÿÿ�óúhòé¡ÿÿÿ�óúhòé‘ÿÿÿ�óúhòé�ÿÿÿ�óúhòéqÿÿÿ�óúhòéaÿÿÿ�óúh òéQÿÿÿ�óúh òéAÿÿÿ�óúh òé1ÿÿÿ�óúh òé!ÿÿÿ�óúh òéÿÿÿ�óúhòéÿÿÿ�óúhòéñþÿÿ�óúhòéáþÿÿ�óúhòéÑþÿÿ�óúhòéÁþÿÿ�óúhòé±þÿÿ�óúhòé¡þÿÿ�óúhòé‘þÿÿ�óúhòé�þÿÿ�óúhòéqþÿÿ�óúhòéaþÿÿ�óúhòéQþÿÿ�óúhòéAþÿÿ�óúhòé1þÿÿ�óúhòé!þÿÿ�óúhòéþÿÿ�óúhòéþÿÿ�óúhòéñýÿÿ�óúh òéáýÿÿ�óúh!òéÑýÿÿ�óúh"òéÁýÿÿ�óúh#òé±ýÿÿ�óúh$òé¡ýÿÿ�óúh%òé‘ýÿÿ�óúh&òé�ýÿÿ�óúh'òéqýÿÿ�óúh(òéaýÿÿ�óúh)òéQýÿÿ�óúh*òéAýÿÿ�óúh+òé1ýÿÿ�óúh,òé!ýÿÿ�óúh-òéýÿÿ�óúh.òéýÿÿ�óúh/òéñüÿÿ�óúh0òéáüÿÿ�óúh1òéÑüÿÿ�óúh2òéÁüÿÿ�óúh3òé±üÿÿ�óúh4òé¡üÿÿ�óúh5òé‘üÿÿ�óúh6òé�üÿÿ�óúh7òéqüÿÿ�óúh8òéaüÿÿ�óúh9òéQüÿÿ�óúh:òéAüÿÿ�óúh;òé1üÿÿ�óúh<òé!üÿÿ�óúh=òéüÿÿ�óúh>òéüÿÿ�óúh?òéñûÿÿ�óúh@òéáûÿÿ�óúhAòéÑûÿÿ�óúhBòéÁûÿÿ�óúhCòé±ûÿÿ�óúhDòé¡ûÿÿ�óúhEòé‘ûÿÿ�óúhFòé�ûÿÿ�óúhGòéqûÿÿ�óúhHòéaûÿÿ�óúhIòéQûÿÿ�óúhJòéAûÿÿ�óúhKòé1ûÿÿ�óúhLòé!ûÿÿ�óúhMòéûÿÿ�óúhNòéûÿÿ�óúhOòéñúÿÿ�óúhPòéáúÿÿ�óúhQòéÑúÿÿ�óúhRòéÁúÿÿ�óúhSòé±úÿÿ�óúhTòé¡úÿÿ�óúhUòé‘úÿÿ�óúhVòé�úÿÿ�óúhWòéqúÿÿ�óúhXòéaúÿÿ�óúhYòéQúÿÿ�óúhZòéAúÿÿ�óúh[òé1úÿÿ�óúh\òé!úÿÿ�óúh]òéúÿÿ�óúh^òéúÿÿ�óúh_òéñùÿÿ�óúh`òéáùÿÿ�óúhaòéÑùÿÿ�óúhbòéÁùÿÿ�óúhcòé±ùÿÿ�óúhdòé¡ùÿÿ�óúheòé‘ùÿÿ�óúhfòé�ùÿÿ�óúhgòéqùÿÿ�óúhhòéaùÿÿ�óúhiòéQùÿÿ�óúhjòéAùÿÿ�óúhkòé1ùÿÿ�óúhlòé!ùÿÿ�óúhmòéùÿÿ�óúhnòéùÿÿ�óúhoòéñøÿÿ�óúhpòéáøÿÿ�óúhqòéÑøÿÿ�óúhròéÁøÿÿ�óúhsòé±øÿÿ�óúhtò顸ÿÿ�óúhuò鑸ÿÿ�óúhvòé�øÿÿ�óúhwòéqøÿÿ�óúhxòéaøÿÿ�óúhyòéQøÿÿ�óúhzòéAøÿÿ�óúh{òé1øÿÿ�óúh|òé!øÿÿ�óúh}òéøÿÿ�óúh~òéøÿÿ�óúhòéñ÷ÿÿ�óúh€òéá÷ÿÿ�óúh�òéÑ÷ÿÿ�óúh‚òéÁ÷ÿÿ�óúhƒòé±÷ÿÿ�óúh„òé¡÷ÿÿ�óúh…òé‘÷ÿÿ�óúh†òé�÷ÿÿ�óúh‡òéq÷ÿÿ�óúhˆòéa÷ÿÿ�óúh‰òéQ÷ÿÿ�óúhŠòéA÷ÿÿ�óúh‹òé1÷ÿÿ�óúhŒòé!÷ÿÿ�óúh�òé÷ÿÿ�óúhŽòé÷ÿÿ�óúh�òéñöÿÿ�óúh�òéáöÿÿ�óúh‘òéÑöÿÿ�óúh’òéÁöÿÿ�óúh“òé±öÿÿ�óúh”òé¡öÿÿ�óúh•òé‘öÿÿ�óúh–òé�öÿÿ�óúh—òéqöÿÿ�óúh˜òéaöÿÿ�óúh™òéQöÿÿ�óúhšòéAöÿÿ�óúh›òé1öÿÿ�óúhœòé!öÿÿ�óúh�òéöÿÿ�óúhžòéöÿÿ�óúhŸòéñõÿÿ�óúh òéáõÿÿ�óúh¡òéÑõÿÿ�óúh¢òéÁõÿÿ�óúh£òé±õÿÿ�óúh¤òé¡õÿÿ�óúh¥òé‘õÿÿ�óúh¦òé�õÿÿ�óúh§òéqõÿÿ�óúh¨òéaõÿÿ�óúh©òéQõÿÿ�óúhªòéAõÿÿ�óúh«òé1õÿÿ�óúh¬òé!õÿÿ�óúh­òéõÿÿ�óúh®òéõÿÿ�óúh¯òéñôÿÿ�óúh°òéáôÿÿ�óúh±òéÑôÿÿ�óúh²òéÁôÿÿ�óúh³òé±ôÿÿ�óúh´òé¡ôÿÿ�óúhµòé‘ôÿÿ�óúh¶òé�ôÿÿ�óúh·òéqôÿÿ�óúh¸òéaôÿÿ�óúh¹òéQôÿÿ�óúhºòéAôÿÿ�óúh»òé1ôÿÿ�óúh¼òé!ôÿÿ�óúh½òéôÿÿ�óúh¾òéôÿÿ�óúh¿òéñóÿÿ�óúhÀòéáóÿÿ�óúhÁòéÑóÿÿ�óúhÂòéÁóÿÿ�óúhÃòé±óÿÿ�óúhÄòé¡óÿÿ�óúhÅòé‘óÿÿ�óúhÆòé�óÿÿ�óúhÇòéqóÿÿ�óúhÈòéaóÿÿ�óúhÉòéQóÿÿ�óúhÊòéAóÿÿ�óúhËòé1óÿÿ�óúhÌòé!óÿÿ�óúhÍòéóÿÿ�óúhÎòéóÿÿ�óúhÏòéñòÿÿ�óúhÐòéáòÿÿ�óúhÑòéÑòÿÿ�óúhÒòéÁòÿÿ�óúhÓòé±òÿÿ�óúhÔòé¡òÿÿ�óúhÕòé‘òÿÿ�óúhÖòé�òÿÿ�óúh×òéqòÿÿ�óúhØòéaòÿÿ�óúhÙòéQòÿÿ�óúhÚòéAòÿÿ�óúhÛòé1òÿÿ�óúhÜòé!òÿÿ�óúhÝòéòÿÿ�óúhÞòéòÿÿ�óúhßòéññÿÿ�óúhàòéáñÿÿ�óúháòéÑñÿÿ�óúhâòéÁñÿÿ�óúhãòé±ñÿÿ�óúhäòé¡ñÿÿ�óúhåòé‘ñÿÿ�óúhæòé�ñÿÿ�óúhçòéqñÿÿ�óúòÿ%:Dóúòÿ%:Dóúòÿ% :Dóúòÿ%:Dóúòÿ%ý:Dóúòÿ%õ:Dóúòÿ%í:Dóúòÿ%å:Dóúòÿ%Ý:Dóúòÿ%Õ:Dóúòÿ%Í:Dóúòÿ%Å:Dóúòÿ%½:Dóúòÿ%µ:Dóúòÿ%­:Dóúòÿ%¥:Dóúòÿ%�:Dóúòÿ%•:Dóúòÿ%�:Dóúòÿ%…:Dóúòÿ%}:Dóúòÿ%u:Dóúòÿ%m:Dóúòÿ%e:Dóúòÿ%]:Dóúòÿ%U:Dóúòÿ%M:Dóúòÿ%E:Dóúòÿ%=:Dóúòÿ%5:Dóúòÿ%-:Dóúòÿ%%:Dóúòÿ%:Dóúòÿ%:Dóúòÿ% :Dóúòÿ%:Dóúòÿ%ý:Dóúòÿ%õ:Dóúòÿ%í:Dóúòÿ%å:Dóúòÿ%Ý:Dóúòÿ%Õ:Dóúòÿ%Í:Dóúòÿ%Å:Dóúòÿ%½:Dóúòÿ%µ:Dóúòÿ%­:Dóúòÿ%¥:Dóúòÿ%�:Dóúòÿ%•:Dóúòÿ%�:Dóúòÿ%…:Dóúòÿ%}:Dóúòÿ%u:Dóúòÿ%m:Dóúòÿ%e:Dóúòÿ%]:Dóúòÿ%U:Dóúòÿ%M:Dóúòÿ%E:Dóúòÿ%=:Dóúòÿ%5:Dóúòÿ%-:Dóúòÿ%%:Dóúòÿ%:Dóúòÿ%:Dóúòÿ% :Dóúòÿ%:Dóúòÿ%ý:Dóúòÿ%õ:Dóúòÿ%í:Dóúòÿ%å:Dóúòÿ%Ý:Dóúòÿ%Õ:Dóúòÿ%Í:Dóúòÿ%Å:Dóúòÿ%½:Dóúòÿ%µ:Dóúòÿ%­:Dóúòÿ%¥:Dóúòÿ%�:Dóúòÿ%•:Dóúòÿ%�:Dóúòÿ%…:Dóúòÿ%}:Dóúòÿ%u:Dóúòÿ%m:Dóúòÿ%e:Dóúòÿ%]:Dóúòÿ%U:Dóúòÿ%M:Dóúòÿ%E:Dóúòÿ%=:Dóúòÿ%5:Dóúòÿ%-:Dóúòÿ%%:Dóúòÿ%:Dóúòÿ%:Dóúòÿ% :Dóúòÿ%:Dóúòÿ%ý:Dóúòÿ%õ:Dóúòÿ%í:Dóúòÿ%å:Dóúòÿ%Ý:Dóúòÿ%Õ:Dóúòÿ%Í:Dóúòÿ%Å:Dóúòÿ%½:Dóúòÿ%µ:Dóúòÿ%­:Dóúòÿ%¥:Dóúòÿ%�:Dóúòÿ%•:Dóúòÿ%�:Dóúòÿ%…:Dóúòÿ%}:Dóúòÿ%u:Dóúòÿ%m:Dóúòÿ%e:Dóúòÿ%]:Dóúòÿ%U:Dóúòÿ%M:Dóúòÿ%E:Dóúòÿ%=:Dóúòÿ%5:Dóúòÿ%-:Dóúòÿ%%:Dóúòÿ%:Dóúòÿ%:Dóúòÿ% :Dóúòÿ%:Dóúòÿ%ý:Dóúòÿ%õ:Dóúòÿ%í:Dóúòÿ%å:Dóúòÿ%Ý:Dóúòÿ%Õ:Dóúòÿ%Í:Dóúòÿ%Å:Dóúòÿ%½:Dóúòÿ%µ:Dóúòÿ%­:Dóúòÿ%¥:Dóúòÿ%�:Dóúòÿ%•:Dóúòÿ%�:Dóúòÿ%…:Dóúòÿ%}:Dóúòÿ%u:Dóúòÿ%m:Dóúòÿ%e:Dóúòÿ%]:Dóúòÿ%U:Dóúòÿ%M:Dóúòÿ%E:Dóúòÿ%=:Dóúòÿ%5:Dóúòÿ%-:Dóúòÿ%%:Dóúòÿ%:Dóúòÿ%:Dóúòÿ% :Dóúòÿ%:Dóúòÿ%ý:Dóúòÿ%õ:Dóúòÿ%í:Dóúòÿ%å:Dóúòÿ%Ý:Dóúòÿ%Õ:Dóúòÿ%Í:Dóúòÿ%Å:Dóúòÿ%½:Dóúòÿ%µ:Dóúòÿ%­:Dóúòÿ%¥:Dóúòÿ%�:Dóúòÿ%•:Dóúòÿ%�:Dóúòÿ%…:Dóúòÿ%}:Dóúòÿ%u:Dóúòÿ%m:Dóúòÿ%e:Dóúòÿ%]:Dóúòÿ%U:Dóúòÿ%M:Dóúòÿ%E:Dóúòÿ%=:Dóúòÿ%5:Dóúòÿ%-:Dóúòÿ%%:Dóúòÿ%:Dóúòÿ%:Dóúòÿ% :Dóúòÿ%:Dóúòÿ%ý:Dóúòÿ%õ:Dóúòÿ%í:Dóúòÿ%å:Dóúòÿ%Ý:Dóúòÿ%Õ:Dóúòÿ%Í:Dóúòÿ%Å:Dóúòÿ%½:Dóúòÿ%µ:Dóúòÿ%­:Dóúòÿ%¥:Dóúòÿ%�:Dóúòÿ%•:Dóúòÿ%�:Dóúòÿ%…:Dóúòÿ%}:Dóúòÿ%u:Dóúòÿ%m:Dóúòÿ%e:Dóúòÿ%]:Dóúòÿ%U:Dóúòÿ%M:Dóúòÿ%E:Dóúòÿ%=:Dóúòÿ%5:Dóúòÿ%-:Dóúòÿ%%:Dóúòÿ%:Dóúòÿ%:Dóúòÿ% :Dóúòÿ%:Dóúòÿ%ý:Dóúòÿ%õ:Dóúòÿ%í:Dóúòÿ%å:DH‹% º1ÿH�5Ð4èsôÿÿH‰ÞH‰Ç1ÀèöÒ·% €äþf‰%  è òÿÿèòÿÿ€óúAWAVAUATUSHƒì8‰|$H‰t$dH‹%(H‰D$(1Àè`H�5ë¿H‰D$è ûÿÿH�5øê1ÿèüúÿÿH�561H�=1;è¹óÿÿH�=%;èMóÿÿH‹D$H‹8H‰=.V:èÉõÿÿH�t$H�|$èzèµöÿÿH‹=V:èùúÿÿH�=Òlè½üÿÿH�=ælH‰�8:èêöÿÿH�=crH‰t8:èÇH�=À\軋T$H‹L$ƒúŽfƒêH�AL� ž0L�TÑë@HƒÀI9„@L‹¹ L‰ÏL‰Æó¦—€ڄÒuÙI�x A€x H‰=AT:…H‹=lU:¸ÿÿÿÿH…ÿtè óÿÿH�=D0‰S:èËñÿÿ…Àu.H�5€-º1ÿè´òÿÿH�50H‰Ç1Àè3Ñ¿è‰úÿÿHƒËÿH¸H�= 0ÇfT:H‰»T:‰åR:ˆßS:ƈT::Ç–T:ÿÿÿÿH‰/T:ÇUT:H‰®S:è)ïÿÿH�=7éHº0H‰!S:H…À‰ S:”ÀÆyR::ÇüR:¶À‰?R:H�ô :H‰mR:H�¦R:H‰§R:H�r/H‰¹R:H�j/H‰³R:H¸ÿ÷ÿ÷ÏúþÿH#R:ǸR:H ÐH‰þQ:èYáH�=8/H‹l$‹\$ètîÿÿI‰ÄH…À„¸L�-/ƒûŽ��Kÿ‰L$ë.f.„;D$�AN‹d D�xDD‰øD9ûŽJHcйD�xL‰ïL‹tÕL� ÕL‰öó¦—Á€Ù„ÉuÉA€~tª¹L‰öH�=¾.ó¦—À„Àt¨H�5³.L‰÷è¡ôÿÿ…Àt•H�5§.L‰÷èŽôÿÿ…Àt‚H�5›.L‰÷è{ôÿÿ…À„kÿÿÿH�5‹.L‰÷èdôÿÿ…À„TÿÿÿH�5{.L‰÷èMôÿÿ…À„=ÿÿÿH�5l.L‰÷è6ôÿÿ…À„&ÿÿÿH�5_.L‰÷èôÿÿ…À„ÿÿÿH�5R.L‰÷èôÿÿ…À„øþÿÿH�5C.L‰÷èñóÿÿ…À„áþÿÿH�56.L‰÷èÚóÿÿ…À„ÊþÿÿH�5).L‰÷èÃóÿÿ…À„³þÿÿM�féªþÿÿL‰çèÊ»H‹t$‹|$èL¹H‰ÇH‰*R:èÍîÿÿH‹=R:H‰R:èºìÿÿ1ÿH‰R:èüß1ÿè¶èà¶‹|$H‹t$Çm1:èXH‹=ÁQ:H…ÿ…2è£è·è逃=ÊQ:„½Hƒ=44:ºH�5l-„H1ÿè+ïÿÿH‰Ç1ÀèáÌ1ÀH�=*èÓÌHƒ=û3:„¿ H�-" èÔðÿÿH‹=Ý3:H‰ÃèÅïÿÿëÆH‰ÞH‰ï1Àè�ÌH‹ ¸3:º ¾H‰ßèÖíÿÿH…ÀuÑH‹=š3:è…ïÿÿH‰ßèýëÿÿH�=†)1ÀèÕ=P:¸u¶ÚN:ƒà<•ÀÁà‰Â¶ÇN:ƒàß Ðƒ=âO:ˆµN:…"è ƒ|$„ööŸN:t¶ŽN:ƒà<…Ѓ= 0:us‹TN: –O:tH1ÿèõõÿÿ1ÿºH�5¬+èòíÿÿH‰Ç1ÀèxÌé«üÿÿH�= H‰=O:è€íÿÿH‰IP:éÑúÿÿ1ÿºH�5&,è±íÿÿH‰Ç1Àè7̃=(P:…rèÕ´H‹¾O:H…Ût%H�5´: H‰ßèJñÿÿ…À…„H‹‹':H‰œO:èŸ1¶¸M:ƒà<H‹üM:„ƒHD@‹5¨M:@öÆt8H‹=ßM:‹GD‰Â%þÁê�âÿÿ‰Ñ€Î@�É@ÁâÁá Á ЃþDÁ‰GDèy…Hƒ=)O:„Úè–æƒ=KN:tH‹=O:H…ÿ„ÉèhéHƒ=`L:tè‰íƒ=>N:…´1ÿ襳èÊ‹~N: t1:…°ƒ=O:„ÞùÿÿH‹ò:H�5(º1ÿègìÿÿH‰Þé²ùÿÿL�%ž)éÛúÿÿ1ÿºH�5m'è@ìÿÿH‰Ç1ÀèÆÊéþÿÿƒ`D¿éæþÿÿ1ÿºH�5 *èìÿÿL‰æH‰Ç1ÀèÈÉéiþÿÿH�|$$è´H‰Ç1Àè¯ÉéMýÿÿH�55*é¬üÿÿH‹=‡L:èòóÿÿ…À„1¶#L:HÇhL:ƒà<„;ƒ=M:„.H‹:HƒÉÿ1ÀH‰×ò®H‰ËH÷ÓH�kÿƒý~6HcÅH�5BeH�\üH‰ßèéÿÿ…À„îH�5ÅfH‰ßèéÿÿ…À„׿èíÿÿ�}HcÿH‰ÃèíÿÿH‹-¢:H‰ÇI‰ÅH‰îè ëÿÿH‰ïH�5³òÇ.exeÆ@èãòÿÿH�5»úL‰ïH‰ÅèÑòÿÿI‰ÄH…í„`M…ä„2L�5†)ëIc×L‰á¾H‰ßèPôÿÿA9Ç…ÇH‰éº¾H‰ßèÂéÿÿI‰Ç…ÀÈH‰ïècêÿÿL‰çè[êÿÿƒÀ„³L‰ïèÚçÿÿH‰ßèÒçÿÿöÐJ:@…kƒ=rL:…ëHÇÅ:é<üÿÿƒ=�J:„ýûÿÿé*üÿÿèqõÿÿéÄúÿÿèçðH�=‰/H‰Æ1ÀèÖÇéÃûÿÿƒ=vK:„<ýÿÿH‹=$:é+ýÿÿèsEéBýÿÿH�5¦ùH‰ßè¿ñÿÿH‰L:H…À…küÿÿ¿èµëÿÿH‹îK:1ÿºH�5%è«éÿÿH‰ÞH‰Ç1Àè.Èé5üÿÿH‹BJ:1ÿºH�5(èéÿÿH‰ÇH‰Þ1ÀèÈé£ýÿÿè¸H‹=�#:H+D$H‰Ãèôîÿÿ1ÿºH�5v%H‹-¯K:è:éÿÿ¾@BH‰ÇH‰ØH‰éH™H÷þ¾I‰ÑH‰úH‹=õ':I‰À1Àè«òÿÿH‹=ä':èŸîÿÿé¢þÿÿè…Eé‹þÿÿL‰ö1ÿºèáèÿÿL‰îH‰Ç1ÀèdÇéþÿÿ1ÿºH�5�'è¼èÿÿL‰îH‰Ç1Àè?Çé(þÿÿ1ÿºH�5”$è—èÿÿL‰îH‰Ç1ÀèÇé©ýÿÿL‹5ö:1ÿºH�58$èkèÿÿH‰ÇL‰ö1ÀèîÆétýÿÿf„óú1íI‰Ñ^H‰âHƒäðPTL�öH� H�=èóÿÿÿ¢:ô�H�=!":H�":H9øtH‹f:H…Àt ÿà€Ã€H�=ñ!:H�5ê!:H)þHÁþH‰ðHÁè?HÆHÑþtH‹]:H…ÀtÿàfDÀóú€=�&:u+UHƒ=::H‰åt H�=˜9è9òÿÿèdÿÿÿÆe&:]ÃÀóúéwÿÿÿ€ATH‹ 7&:º UH‰õ¾SH‰ûH�="èÉðÿÿH9ëw6H)ÝHÑíL�dkH�-f�¿ H‹=ö%:H‰ê1À¾HƒÃè£ðÿÿL9ãuÞH‹5×%:[¿ ]A\é9éÿÿf„�þœH�ËH� ¾SHcÖHMÈH‰û¾H�•—9L‹ÐH�¨1ÀèCðÿÿH‰Þ¿)[éåèÿÿD‹ÎE:…ÀuÃDSH‰ùH‹=U%:‰óH�{¾1ÀèðÿÿH‹=9%:‰ÞèrÿÿÿH‹5+%:¿ [é�èÿÿóúUSH‰ûHƒì‹•+:…ÀuY‹#%:ƒèƒøw+H˜H�2%:1öH‹ ÂHƒÄH‰Ú1À[H�=]é…ÄDHƒÄH‰Ú1ö1À[H�=ö]égÄ€è+M1ÿºH�5­H‰ÅèµåÿÿH‰îH‰Ç1Àè8ÄézÿÿÿóúAWAVAUATUSH�ìHƒ $H�ì dH‹%(H‰„$1À‹ªD:…À…žH�l$p1ÛL�¬$Ç…D:ǃD:þÿÿÿI‰ïHÇD$ÈL‰l$H‰l$ÇD$(‰$·$H‹L$fA‰H� H�TþI9ׂÃM‰ýI)íIÑýIƒÅH�ù'‡ÊH='º'HFÐH‰ÐH‰ÓH‰T$HÁàHÐH�|è6êÿÿI‰ÄH…À„“O�|-H‰îH‰ÇIÁåL‰úèéÿÿH�H‹t$L‰êL�pH‰ÃIƒæàMæL‰÷èñèÿÿH;l$tH‰ïèÂáÿÿ‹ C:O�|<þO�l.àI�lþ…À…ÝI9ïƒÙ L‰t$L‰å‹$ƒø„/LcàH�TF¿`D‰ÃA�øqýÿÿ„Á‹KC:‹AC:ƒøþ„ä…ÀŽœA¾=ƒH˜H� 6]D¶4C�0…Ò…µ�û¨wuHcÛH�S,¿XD9ðubH�£;¿X‰$…ÀŽì‹D$(ƒøƒÐÿ‰D$(‹ÄB:…À…óo-ÐB:óo5ØB:IƒÅ Ç¢B:þÿÿÿAmAué0H�áLB·`…Û…�HcuB:‰Æƒøþt¾=ƒ†F‹|$(…ÿ„Tƒ|$(u…À�{„H�Ž+L�5#ëDH�ÙRF¿`A�øqýÿÿtAƒÀA�ø¨wMcÀfBƒÿàI‹]À¹I‹EH�= óAo}H‰ÞH‰D$@ó¦)|$0—À„À…PIƒ}à„ð¹H�=× H‰Þó¦—À„À…ÙI‹Eà¹H�=ðH‰Þó¦—€ڄÒ…ÝH‰D$@�H‹ $H�åD‹ â?:·HK�6I)ÇL‰ðHÁàI)ÅM‰ìE…É…5�ƒdÿÿÿA¿7H�ìHfo\$0H˜fod$@M�l$ ¿BA\$ ‰ñAd$0ò�ú¨wHcÒH�5Ó(f; V„ÉH�‚G¿B‰$IƒÇéøúÿÿf�H‰,$M‰üA½HcD?:ƒøþt¾=ƒ†H�=< èKùÿÿ‹?:…À…5H�-"H�9 L‹4$L9$$t DI¿$H‰ßIƒì·tEè ùÿÿM9ôuåH‹L$H9 $t H‹<$èáÜÿÿH‹Œ$dH3 %(D‰è…[H�Ä[]A\A]A^A_ÃDÇŽ>:E1ö…Ò„vûÿÿH‹ :º¾H�=› D‰$èªèÿÿD‹$éLûÿÿ�…Òu|D‰$è#(‹A>:D‹$‰;>:éúúÿÿH‰,$M‰üA½�H�9X¶4ééþÿÿ‹|$(HcÐH� "X¶4…ÿ…¬ûÿÿH�=Ì D‰$ƒä=:è_øÿÿD‹$é¡ûÿÿfDH‹ i:º¾H�=Þ D‰$èÿçÿÿD‹$éZÿÿÿfDH�Y6¿P‰$é2þÿÿDH‹=!:H� O H�Bû1À¾èÇçÿÿH‹=:‰Þè9÷ÿÿH‹5ò:¿ èXàÿÿD‹E=:E…À„{ýÿÿL‰þH‰ïè�öÿÿékýÿÿ„H‹$H�5T�Kÿ¾H‹=¦:D·P1ÀH�èèSçÿÿE…ö„NüÿÿAƒîH‰l$ I�NE¶ôA¼‰\$,L‰ðL‰ãH‰ÍH÷ØI�GI‰Ä@H‹=Q:‰Ù¾1ÀH� èüæÿÿI¿\HƒÃH� ŒH‹=%:·4Aè\öÿÿH‹5:¿ è{ßÿÿH9Ýu®H‹l$ ‹\$,éÀûÿÿ„H‹=é:¾1ÀD‰$H� …H�ÿùè‹æÿÿH‹=Ä:D‰öèüõÿÿH‹5µ:¿ èßÿÿD‹$éýøÿÿf�H‹ ™:º¾H�=Îè3æÿÿé@÷ÿÿfDH‹<$L‰æè,õÿÿéºüÿÿ€H�=£D‰$èàõÿÿD‹$Ǫ;:þÿÿÿéhùÿÿH‹=6:H� ëH�Wù1À¾èÜåÿÿH‹=:D‰öèMõÿÿH‹5:¿ èlÞÿÿéŸøÿÿH�=[H‰,$M‰üA½è¾õÿÿéöûÿÿH‰,$M‰üE1íéçûÿÿè%Cé0ûÿÿè»Bé&ûÿÿǤ:éûÿÿ¶ ;:‰ÂƒÈ€Àꈒ;:¶ÒH‰T$0éõúÿÿHÇD$0éçúÿÿèÒBèmBéØúÿÿHÇD$0éÊúÿÿèµBè0Aé»úÿÿÇ9:é¬úÿÿè—Bƒ-P:é›úÿÿÇD$0éŽúÿÿHÇD$0é€úÿÿI‹EH‰D$0érúÿÿè]BI‹}ÀI‹uè0šH‰Çè éSúÿÿHÇD$0éEúÿÿHÇD$0é7úÿÿI‹uÀ1Ò1ÿèÚé%úÿÿI‹} I‹uàºè3šH‰ÇèË éúÿÿI‹} I‹uà1ÒèšH‰Çè¯ éêùÿÿI‹} I‹uàºèX™H‰Çè� éËùÿÿI‹uÀI‹]¿èé˜A‹}àH‰ÚH‰ÆèJ—I‹}À1ÒH‰Æè™H‰ÇèT é�ùÿÿI‹}ÀI‹u1Òè™H‰Çè8 ésùÿÿI‹}ÀI‹u¹H‹Ï:èêH‰D$0éPùÿÿ1ö1ÿè·H‰D$0é=ùÿÿI‹E H‰D$0é/ùÿÿèAI‹MÀI‹UàI‹u I‹}èÅ éùÿÿI‹}ÀH‹u:1ÉI‹uèŠH‰D$0éðøÿÿH‹Y:1ÉH�5ž1ÿèiH‰D$0éÏøÿÿI‹EàH‰D$0éÁøÿÿè,?I‹}èÉ鮸ÿÿè™@I‹u1ÒH�=y' è˜H‰ÇèO éŠøÿÿH‹ó:I‹u¹1ÿèH‰D$0éiøÿÿèT@I‹M I‹½ þÿÿM‹MÀM‹EàI‹UA‹µ€þÿÿèÑé<øÿÿI‹}ÀI‹uèOIé*øÿÿH�& H‰ü::éøÿÿI‹]1ÿºH�5 è°ØÿÿH‰ÇH‰Þ1Àè3·éî÷ÿÿèÙ?èdCƒ-�:éØ÷ÿÿè£>‹}:ƒûŽNƒÃ‰k:é¶÷ÿÿI‹EƒxH‰D$0…£÷ÿÿ�8…—÷ÿÿH‹XE1äH�Ùˆ9J‹4âH‰ßèýÛÿÿH�ƈ9…À„$IƒÄIƒüuÛH�5˜H‰ßèÕÛÿÿ…À„HH�5ÍH‰ßè¾Ûÿÿ…À…þ¿Qåtdèl“H‰D$0é"÷ÿÿf�ÇD$0|é÷ÿÿI‹}à1öèxH‰D$0éþöÿÿHÇD$0éðöÿÿH�fH‰D$0éßöÿÿI‹EÀH‰D$0éÑöÿÿI‹uÀI‹}€1Òèré½öÿÿÇD$0€é°öÿÿI‹}à1öèH‰D$0é›öÿÿÇD$0~éŽöÿÿÇD$0}é�öÿÿèl>I‹uàI‹}è�éjöÿÿH‹Ó:1ÉH�5 1ÿèãH‰D$0éIöÿÿè´<I‹}è«é6öÿÿ¿è¼ØÿÿI‹UH‰D$0H‰PI‹UÀÇ@H‰é öÿÿI‹EóAoEH‰D$@I‹EÀ)D$0H‰D$8éêõÿÿH‹S:I‹u1É1ÿèfH‰D$0éÌõÿÿA‹MÄA‹UÀI‹u I‹½`ÿÿÿM‹MÐM‹EÈèì é§õÿÿI‹uà¿PèÉ”H‰D$0é�õÿÿI‹uà¿Nè±”H‰D$0éwõÿÿI‹uàI‹} èÚ•H‰D$0é`õÿÿÇÞ:éQõÿÿI‹u1ÿè†.H‰D$0é<õÿÿI‹}àI‹uèo.H‰D$0é%õÿÿI‹EàH‰D$0éõÿÿA‹E€M‹�@ÿÿÿM‹E I‹�`ÿÿÿI‹µ ÿÿÿI‹½àþÿÿPA‹Eà‹p:Pè’øAZA[éÙôÿÿI‹EàH‰D$0éËôÿÿHÇD$0é½ôÿÿI‹EH‰D$0é¯ôÿÿI‹uà¿gèQ“H‰D$0é—ôÿÿI‹EàH‰D$0é‰ôÿÿI‹… ÿÿÿH‰D$0éxôÿÿI‹uà¿&è“H‰D$0é`ôÿÿI‹U I‹uà¿%èî‘H‰D$0éDôÿÿI‹UàI‹u ¿$èÒ‘H‰D$0é(ôÿÿI‹UàI‹u ¿è¶‘H‰D$0é ôÿÿI‹uà¿è®’H‰D$0éôóÿÿI‹uà¿`è–’H‰D$0éÜóÿÿI‹uà¿‚èþ’H‰D$0éÄóÿÿI‹uà¿Dèæ’H‰D$0é¬óÿÿI‹uà¿CèÎ’H‰D$0é”óÿÿI‹uà¿Aè¶’H‰D$0é|óÿÿI‹uà¿Bèž’H‰D$0édóÿÿ1ö¿+舒H‰D$0éNóÿÿI‹uI‹}èÑ�H‰D$0é7óÿÿI‹uà¿;èY’H‰D$0éóÿÿI‹uÀI‹U¿ è­�H‰D$0éóÿÿI‹uÀI‹U¿è‘�H‰D$0éçòÿÿI‹UÀI‹u€¿?I‹Mèñ�H‰D$0éÇòÿÿI‹uÀI‹U¿|èU�H‰D$0é«òÿÿI‹uÀI‹U¿^è9�H‰D$0é�òÿÿI‹uÀI‹U¿&è�H‰D$0ésòÿÿI‹uÀI‹U¿>è�H‰D$0éWòÿÿI‹uÀI‹U¿<èå�H‰D$0é;òÿÿI‹uÀI‹U¿èÉ�H‰D$0éòÿÿI‹uÀI‹U¿è­�H‰D$0éòÿÿI‹uÀI‹U¿è‘�H‰D$0éçñÿÿI‹uÀI‹U¿èu�H‰D$0éËñÿÿI‹uÀI‹U¿èY�H‰D$0é¯ñÿÿI‹uÀI‹U¿è=�H‰D$0é“ñÿÿI‹uÀI‹U¿-è!�H‰D$0éwñÿÿI‹uÀI‹U¿+è�H‰D$0é[ñÿÿI‹uÀI‹U¿%èéŽH‰D$0é?ñÿÿI‹uÀI‹U¿/èÍŽH‰D$0é#ñÿÿI‹uÀI‹U¿*豎H‰D$0éñÿÿI‹u¿~è©�H‰D$0éïðÿÿI‹EH‰D$0éáðÿÿI‹u¿!èƒ�H‰D$0éÉðÿÿI‹uàA‹} èl�H‰D$0é²ðÿÿI‹EàH‰D$0é¤ðÿÿI‹u¿-èF�H‰D$0éŒðÿÿèw8I‹EH‰D$0éyðÿÿH‹â:H‰D$0I‹EàH‰Ò:é]ðÿÿ¿èãÒÿÿI‹UÀH‰D$0H‰PI‹UH‰é:ðÿÿ¿èÀÒÿÿI‹UàH‰D$0H‰PI‹UH‰éðÿÿHÇD$0é ðÿÿ1ÿè¢éýïÿÿ¿è“éîïÿÿI‹}èÅ—éàïÿÿI‹}è§—éÒïÿÿI‹}è™—éÄïÿÿ1ÿè�—é¸ïÿÿI‹}àèÿéªïÿÿI‹uH‹=:ºèEàé�ïÿÿI‹uH‹=:1Òè.àéyïÿÿI‹}ÀH‹Þ:1ÉH�5#üèð H‰D$0éVïÿÿI‹UH‹Ë:H‰P0éBïÿÿH‹»:I‹UH‰PH‹P H‰P8é&ïÿÿèQ6‹Ë:ƒûŽD ƒÃ‰¹:éïÿÿèo5I‹}èF¿éñîÿÿI‹}¾è­H‰\:é×îÿÿI‹}ÀH‹<:1ÉH�5tûèN H‰D$0é´îÿÿI‹uÀI‹½`ÿÿÿè´éŸîÿÿI‹EÀH‰D$0I‹E H‰û:é†îÿÿHÇD$@fïÀ)D$0éoîÿÿÇD$0|ébîÿÿÇD$0&éUîÿÿÇD$0éHîÿÿÇD$0é;îÿÿÇD$0/é.îÿÿÇD$0*é!îÿÿÇD$0-éîÿÿÇD$0+éîÿÿHÇD$0éùíÿÿI‹EH‰D$0éëíÿÿI‹UàI‹u I‹½`ÿÿÿè‡éÒíÿÿè=4I‹}è¾é¿íÿÿIcEH‰D$0é±íÿÿIcEH‰D$0é£íÿÿI‹}H� ú1öè¡’H‰D$0é‡íÿÿIcEH‰D$0éyíÿÿIcEH‰D$0ékíÿÿIcEH‰D$0é]íÿÿèH5I‹}€I‹uÀè»�H‰Çèþé>íÿÿI‹MÀH‰ÈëH‰ÐH‹H…ÒuõI‹•ÿÿÿH‰L$0H‰I‹E H‰€ :é íÿÿI‹}àè’üéýìÿÿI‹uàA‹} èÐüéëìÿÿÇÁ-:¿èçýéÒìÿÿ¿èØýéÃìÿÿ¿èÉýé´ìÿÿÇ" :é¥ìÿÿÇ :é–ìÿÿI‹E€I‹uàI�} ‹ü :I‰E¸è÷évìÿÿI‹uà‹ä :I�} è÷é^ìÿÿI‹E I‹uàH�|$PHÇD$P‹º :ÇD$`HÇD$XH‰D$hèÇöé"ìÿÿI‹uà‹� :1ÿè±öé ìÿÿI‹E‹z :H�|$P1öHÇD$XH‰D$PI‹EàÇD$`H‰D$hèwöéÒëÿÿI‹E‹@ :H�|$P1öHÇD$XH‰D$PÇD$`HÇD$hè=öé˜ëÿÿ¿(èÎÿÿóAo}óAoEHÇx@H‰D$0éiëÿÿ¿(èïÍÿÿI‹UÀóAo}óAoEH‰D$0H‰x@é:ëÿÿ¿èÀÍÿÿI‹UH‰D$0H‰HÇ@éëÿÿ¿è�ÍÿÿI‹UH‰D$0H‰I‹UàH‰Péôêÿÿ¿èzÍÿÿI‹UàH‰D$0H‰PÇ@HÇéÊêÿÿ¿ èPÍÿÿI‹U€:!„ ÇH‰PI‹UÀÇ@H‰D$0H‰Pé�êÿÿ¿ èÍÿÿI‹U€:!„äÇH‰PÇ@HÇ@H‰D$0éVêÿÿóAo}àóAoEð)|$0)D$@ÇD$@é3êÿÿ¶¼*:A¶UÀƒàÁâ Ј©*:éêÿÿI‹uàI‹½`ÿÿÿèt H‰D$0éúéÿÿI‹}1Ò1öèM§éèéÿÿI‹}1Ò¾è8§éÓéÿÿI‹}1Ò¾è#§é¾éÿÿI‹}1Ò¾è§é©éÿÿI‹}àèð#é›éÿÿè60é‘éÿÿI‹}àèØ$éƒéÿÿI‹uàI‹} èÆ·éqéÿÿóAo}ÀóAoEÐ)|$0)D$@ÇD$@éNéÿÿóAo}ÀóAoEÐ)|$0)D$@ÇD$@é+éÿÿóAo}ÀóAoEÐ)|$0)D$@ÇD$@ééÿÿóAo}àóAoEð)|$0)D$@ÇD$@éåèÿÿóAo}àóAoEð)|$0)D$@ÇD$@éÂèÿÿóAo}àóAoEð)|$0)D$@ÇD$@éŸèÿÿI‹}1Ò1öèò¥é�èÿÿI‹}1Ò1öèà¥é{èÿÿ¶):A¶UÀƒàÁâ Јñ(:é\èÿÿI‹uà1ÿèÁH‰D$0éGèÿÿI‹EàH‰D$0é9èÿÿ¶Â(:A¶UÀƒàÁâ Ј¯(:éèÿÿóAo}ÀóAoEÐ)|$0)D$@ÇD$@é÷çÿÿóAo}àóAoEð)|$0)D$@ÇD$@éÔçÿÿóAo}àóAoEð)|$0)D$@ÇD$@é±çÿÿI‹EÇD$@HÇD$HH‰D$0I‹EÀH‰D$8é‰çÿÿI‹EÇD$@HÇD$8H‰D$0HÇD$HéaçÿÿH�ÊóH‰D$0éPçÿÿH�mæH‰D$0é?çÿÿI‹EH‰D$0é1çÿÿè/I‹} I‹uàè�‡H‰Çè×÷éçÿÿH‹{:H‰D$0I‹EàH‰k:éöæÿÿI‹}à1öèËõéææÿÿèA.éÜæÿÿI‹}ÀH‹A:1ÉH�5€óèSH‰D$0鹿ÿÿI‹}èÐ1髿ÿÿI‹}èÂ1é�æÿÿI‹}è”5é�æÿÿI‹}è†5é�æÿÿI‹}è˜5ésæÿÿI‹}èŠ5éeæÿÿI‹}à1ö說éUæÿÿI‹}àèlõéGæÿÿH‹°:1ÉH�5ïò1ÿèÀH‰D$0é&æÿÿèá-éæÿÿI‹}1öè±Ñé æÿÿI‹}1öè¡ÑéüåÿÿI‹}1öè‘Ñéìåÿÿèç,éâåÿÿI‹}¾èôüéÏåÿÿI‹}1öèäüé¿åÿÿI‹}àè†ÿé±åÿÿI‹}àè8ÿé£åÿÿèÎ,‹H:ƒûŽ ƒÃ‰6:é�åÿÿèì+I‹}èõénåÿÿI‹}àèÕôé`åÿÿè[ýéVåÿÿèÑüéLåÿÿ€ ]&:é@åÿÿÇv':é1åÿÿÇ7':é"åÿÿI‹}à1öè÷µéåÿÿI‹UàI‹u ¹I‹½`ÿÿÿèÉûéôäÿÿI‹}à¹1Ò1öè²ûéÝäÿÿI‹}à¾èOèéÊäÿÿI‹}1öèŸóéºäÿÿè%+I‹}èü´é§äÿÿA‹}èž6é™äÿÿI‹}è0é‹äÿÿI‹}ÀA‹U1öèì3éwäÿÿI‹}ÀI‹u1ÒèØ3écäÿÿI‹}èŠ4éUäÿÿI‹}ÀI‹uèè5éCäÿÿI‹}ÀI‹uèÖ5é1äÿÿI‹}ÀI‹uèd5éäÿÿI‹}ÀI‹uèR5é äÿÿI‹}ÀI‹uèÀ.éûãÿÿI‹}àI‹uè®.ééãÿÿI‹}ÀI‹uèœ.é×ãÿÿI‹}è4éÉãÿÿI‹}àI‹uèÜ4é·ãÿÿI‹}ÀI‹uèÊ4é¥ãÿÿI‹UàI‹u ¿Fè3�H‰D$0é‰ãÿÿI‹UàI‹u ¿Eè�H‰D$0émãÿÿI‹u¿è�‚H‰D$0éUãÿÿI‹uà¿è÷�H‰D$0é=ãÿÿI‹u ¿è_‚I‹uà¿1H‰Âè¾€H‰D$0éãÿÿH‹=�:1ÀD‰$I‰ÝH�¼àH� Bï¾è<ÍÿÿHc$H� ÑH‹=j:·4Aè¡ÜÿÿH‹5Z:¿ èÀÅÿÿÇD$(éHãÿÿL‰àM‰üA½I‰ÇHc•":L‰<$ƒøþ…IãÿÿénãÿÿL‰àA½M‰üH‰$é#ãÿÿºH�5Éî1ÿèÃÿÿHcÓH� ):H‰ÑéŒêÿÿ¹H�=ôH‰Þó¦—À„Àu I‹EàH…À…#âÿÿ1ÿºH�5“úèÆÂÿÿH‰Ú1öH‰Ç1ÀèG¡éâÿÿ¹H�=’îH‰Þó¦—À„Àu˜I‹EàH…À…¶áÿÿÇD$4éÎáÿÿºH�5}Ò1ÿèkÂÿÿHcÓH� �:H‰Ñé–òÿÿHƒÂÇH‰PéìöÿÿHƒÂÇH‰Pé÷ÿÿºH�5î1ÿèÂÿÿHcÓH� 5:H‰ÑéÍûÿÿèGÂÿÿÇD$0éJáÿÿL‰çè‚}H‰D$0é8áÿÿºH�5lù1ÿèÕÁÿÿH‰Ú1öH‰Ç1ÀèV 1ÿèO}H‰D$0éáÿÿ¿Påtdè;}H‰D$0éñàÿÿ�L‹!:‹/:AWAVAUATUSH‹*:H‰\$øI9ÛƒÇD‹5:L‹-ö:E1äH�-�L� 5€L�nBL�=ZL� qH�™Žf„A¶¾„Òt H�=ÜŽ¶4HcÈ¿fƒ|MMEëDEðDEçë@A¿J=~‰ö¶43HcÈA·IòHcÒA¿ø9Hƒ=’ö9„2Hƒ=|ö9„@H‹7ø9H…À„ÒH‹7ø9H‹ÐH…À„¾‹P‰ ø9H‹PH‹H‰Ë:H‰<ö9¶H‰â÷9ˆè÷9‹¶:…À…FH�ÿtL�=Ø„H�-17L�%jfL�5cƒL‹-¤÷9¶5©÷9‹‹÷9AˆuL‰,$HcÊD‹ u÷9L‹f÷9E1À·KA»f„fAƒÿàf.„Ç^:ƒø‡;H�º5Hc‚HÐ>ÿàHcMö9L‹->ö9A¿Gé{ÿÿÿè?õÿÿH‹`ö9¾@H‹Dö9H‹=}ô9H�Ðèì÷ÿÿH‹=ö9H‰H‹#ö9H‹ÐéþÿÿH‹‹î9Hƒ=Cô9H‰Dô9…ÀýÿÿH‹_î9H‰(ô9H‹éõ9H…À…²ýÿÿë‚»ƒHƒÄ‰Ø[]A\A]A^A_ûzëè»pëá»oëÚ»qëÓƒy:éåýÿÿÇ>:t»të¶H‹=P:»uèöµÿÿH‰:ëœH‹=6:»vèܵÿÿH‰:ë‚H‹:Ç.õ9ÇØó9¾é_ÿÿÿÇÖ:x»xéKÿÿÿÇÂ:w»wé7ÿÿÿH‹Ñ:¾é(ÿÿÿ¶öô9L‰êH‹ õ9H+±:AˆEH‹Þô9ƒêH‹ È‹A8…À„,Hc½ô9HAH9ªô9†‚H‰<$‰T$ è�÷ÿÿH�5ˆ0H‹<$ƒø„8ƒø„ðHcT$ …À…ÂüÿÿH>:I‰ÕH‰\ô9èñÿÿH‹=(:H‰<$A¶u‰Âé±üÿÿH‹:º1ö»H�xèü¯ÿÿHÇÙ:H‰Ê:éDþÿÿÇ»:=»=é0þÿÿH‹=Ê:»èp´ÿÿH‰™:éþÿÿÇŠ:+»+éÿýÿÿÇv:-»-éëýÿÿH‰ùH‹=‚:€?/…«€*…¡¶œó9AˆEH�AH‰ Y:Ç_:H‰pó9¶AÆAˆnó9è5úÿÿé­ûÿÿ¶]ó9Hc :ó9AˆEL‹-'ó9é`üÿÿH‹ :Çó9¾éXýÿÿÇÏ:»éDýÿÿÇ»:»é0ýÿÿǧ:»éýÿÿÇ“:»éýÿÿÇ:»éôüÿÿÇk:»éàüÿÿÇW:»éÌüÿÿÇC:»é¸üÿÿÇ/:»é¤üÿÿÇ: » é�üÿÿÇ: » é|üÿÿÇó: » éhüÿÿÇß:[»[éTüÿÿÇË:]»]é@üÿÿH‹=Ú:1Ò€?$u HƒÇº1öèíÿÿH‹¼:Hc Å:HÇ’:H‰ƒ:¶L ÿƒá߀ùM„_€ùK„A€:0»…Úûÿÿ¶Bƒàß»>éóøÿÿÇj :»éßøÿÿÇV : » éËøÿÿÇB : » é·øÿÿÇ. :»飸ÿÿÇ :N»Né�øÿÿH‹5) :H�=Ý)èýëÿÿé•öÿÿH‹ :H�x踮ÿÿH‰ÇH‰ÃH‰Û :覬ÿÿ‹= :�WþHcÒH9ÂHGÐÆ»é4øÿÿH‹Î :»H�xèp®ÿÿH‰™ :éøÿÿH‹=­ :»èS®ÿÿH‰| :éö÷ÿÿH‹� :»H�xè2®ÿÿH‰[ :éÕ÷ÿÿH‹=o :»è®ÿÿH‰> :é¸÷ÿÿH‹=R :»èø­ÿÿH‰! :é›÷ÿÿH‹=5 :»èÛ­ÿÿH‰ :é~÷ÿÿH‹= :»è¾­ÿÿH‰ç :éa÷ÿÿÇØ :`»`éM÷ÿÿÇÄ :_»_é9÷ÿÿǰ :^»^é%÷ÿÿÇœ :t»té÷ÿÿLj :s»séýöÿÿÇt :r»rééöÿÿÇ` :h»héÕöÿÿÇL :e»eéÁöÿÿÇ8 :d»dé­öÿÿÇ$ :i»ié™öÿÿÇ :a»aé…öÿÿÇü :m»méqöÿÿÇè :l»lé]öÿÿÇÔ :k»kéIöÿÿÇÀ :]»]é5öÿÿǬ :»é!öÿÿǘ :V»Vé öÿÿÇ„ :c»céùõÿÿÇp :`»`éåõÿÿÇ\ :_»_éÑõÿÿÇH :^»^é½õÿÿÇ4 :l»lé©õÿÿÇ :‚»‚é•õÿÿÇ :�»�é�õÿÿÇø:{»{émõÿÿÇä:[»[éYõÿÿÇÐ:Z»ZéEõÿÿǼ:Y»Yé1õÿÿǨ:X»XéõÿÿÇ”:€»€é õÿÿÇ€:W»WéõôÿÿÇl: » éáôÿÿÇX:2»2éÍôÿÿÇD:»é¹ôÿÿH‹S:¾éªôÿÿÇ!:P»Pé–ôÿÿH‹0:ƒùè9¾é€ôÿÿÇ÷:V»VélôÿÿÇã:r»réXôÿÿÇÏ:h»héDôÿÿÇ»:e»eé0ôÿÿǧ:d»déôÿÿÇ“:i»iéôÿÿÇ:a»aéôóÿÿÇk:m»méàóÿÿ‹Oè9ƒè‰Fè9…´Çn:1ÛéºóÿÿÇ1:k»ké¦óÿÿÇ:]»]é’óÿÿÇ :»é~óÿÿƒ$:»bÇé:bécóÿÿÇÚ:c»céOóÿÿÇÆ:~»~é;óÿÿDz:}»}é'óÿÿÇž:|»|éóÿÿH‹5­:H�=l$è�æÿÿéñÿÿÇr:9»9éçòÿÿÇ^:8»8éÓòÿÿÇJ:7»7é¿òÿÿÇ6:6»6é«òÿÿÇ":)»)é—òÿÿÇ:*»*éƒòÿÿƒ-íæ9y Ç-è9H‹ :¾éaòÿÿÇØ:(»(éMòÿÿÇÄ:'»'é9òÿÿǰ::»:é%òÿÿÇœ:M»MéòÿÿLj:L»LéýñÿÿÇt:K»KééñÿÿÇ`:»éÕñÿÿÇL:»éÁñÿÿÇ8:»é­ñÿÿÇ$:»é™ñÿÿÇ:»é…ñÿÿÇü:J»JéqñÿÿÇè:I»Ié]ñÿÿÇÔ:H»HéIñÿÿÇÀ:.».é5ñÿÿǬ:,»,é!ñÿÿǘ:G»Gé ñÿÿÇ„:O»OéùðÿÿÇp:#»#éåðÿÿÇ\:"»"éÑðÿÿÇH:!»!é½ðÿÿÇ4:»é©ðÿÿÇ :/»/é•ðÿÿÇ :0»0é�ðÿÿÇø:-»-émðÿÿÇä:U»UéYðÿÿÇÐ:Q»QéEðÿÿǼ:;»;é1ðÿÿǨ:\»\éðÿÿÇ”:S»Sé ðÿÿÇ€:R»RéõïÿÿÇl:T»TéáïÿÿÇX:=»=éÍïÿÿÇD:<»<é¹ïÿÿÇ0:A»Aé¥ïÿÿÇ:>»>é‘ïÿÿÇ:1»1é}ïÿÿHc5':H‹ €ã9ºH‹=:è­ÿÿéwíÿÿÇÐ:+»+éEïÿÿǼ:@»@é1ïÿÿǨ:s»séïÿÿÇ”:?»?é ïÿÿÇ€:f»féõîÿÿÇl:g»géáîÿÿÇX:F»FéÍîÿÿÇD:E»Eé¹îÿÿÇ0:B»Bé¥îÿÿÇ:D»Dé‘îÿÿÇ:C»Cé}îÿÿÇô:&»&éiîÿÿÇà:%»%éUîÿÿÇÌ:$»$éAîÿÿǸ:»é-îÿÿèy¤ÿÿ»H‰�:éîÿÿH�qã9»H‹<Âèƒãÿÿ‹qâ9H�¶â9‹‚‰™:H�fâ9‹‚ƒà�ŶÒ:ƒà÷ ЈÇ:éÁíÿÿH‹£ã9H‹Œã9Lc-}ã9H‹ÐLhL‰-fã9èàÿÿH‹=2:H�5KHcÈéqìÿÿH‹:¹H‰8ã9‹&ã9ƒè™÷ùËé{ìÿÿHcÒHð:I‰ÕH‰ã9èÁßÿÿH�5úHcÈfAƒÝ9ÃDóúUSHƒìH‹-÷Þ9H…íuë-„è+ßÿÿHÇèoýÿÿH‹àÞ9H�\ÅH‹;H…ÿuÛH‰ïècšÿÿ1ÀHÇ®Þ9HdzÞ9HÇ Þ9HÇ}Þ9ÇkÞ9Ç]Þ9HÇ®Ü9HÇ›Ü9HƒÄ[]Ã@óúé¢ÿÿ€óúég£ÿÿ€óúé×™ÿÿ€óú‹ºÜ9ATI‰ôUH‰ýS‰Óƒø ‡¡‰ÁH�(Ý9‹5Îû9L‰$ÊH�×Ü9‰4ж ü9H�5†Ü9Àêƒâ‰ŽH‹ÎÝ9H…Òt H‹5ÒÝ9H‹òH�5?Ý9ƒãH‰ïƒÀH‰Î¶Ëû9Áã¾@H‰-ÔÛ9ƒâ÷‰'Ü9ÇUû9 Úˆ¡û9è,ßÿÿ[]H‰ÇA\éÝÿÿºH�5œ1ÿè�›ÿÿH‰Ç1Àè#z‹áÛ9é7ÿÿÿ„óúAUI‰ýATUH‰õS‰ÓHƒì‹¸Û9ÇúÜ9ƒø ‡á‰ÁH�(Ü9‹5Îú9H‰,ÊH�×Û9‰4ŠH‹åÜ9H…Òt H‹5éÜ9H‹òH�5VÜ9L‰ïƒÀ‰–ú9H‰ΉTÛ9è+›ÿÿ¿@H‰Åèn ÿÿ�}‰hH‰ÃHÇèY ÿÿH�UL‰îH‰CI‰ÄH�xÆ è?ŸÿÿAÆD,H‹CH‰ßAÆD,ƒÅHƒÀ‰kH‰CHÇC ÇC(HÇC4HƒÄ[]A\A]éØÛÿÿ„ºH�5×1ÿè]šÿÿH‰Ç1Àèãx‹¡Ú9é÷þÿÿ„óúH‹ýµ9H�PH‰òµ9‹ÀÛ9ǶÛ9‰Ã€óúH‹͵9H�PH‰µ9‹�Û9džÛ9‰Ã€óúH‹�µ9H�PH‰’µ9‹`Û9ÇVÛ9 ‰Ã€óúH‹mµ9H�PH‰bµ9‹0Û9Ç&Û9‰Ã€óúH‹=µ9H�PH‰2µ9‹Û9ÇöÚ9‰Ã€óúH‹ µ9H�PH‰µ9‹ÐÚ9ÇÆÚ9 ‰Ã€óúH‹Ý´9H�PH‰Ò´9‹ Ú9Ç–Ú9‰Ã€óúH‹­´9H�PH‰¢´9‹pÚ9ÇfÚ9 ‰Ã€óúH‹}´9H�Pü‹@üH‰o´9‰=Ú9Ãóú‹êØ91Ò…À•Â)ÐH�fÙ9H‹ÂÃ�AUºATI‰üUSH‰óH‰ßHƒìdH‹%(H‰D$1ÀH‰æèЕÿÿI‰ÅH‹$€8… H‹�û9I�l$H…Ûuë-DH‹H…Ût H‹{H‰îèä›ÿÿ…ÀuèL‰kë7f.„¿ ènH‰ÃH‰hL‰hÇ@H‹%û9H‰H‰û9L‰ïè[SH‰ÚL‰çH‰Æè�ÅH‹D$dH3%(u2HƒÄ[]A\A]Ãf�1ÿºH�5Štè�—ÿÿH‰ÞH‰Ç1Àèvé;ÿÿÿè¶—ÿÿfDóúAWA‰ÿ¿ AVI‰öAUATUSH�ì(dH‹%(H‰„$1Àè™ÿÿ¿ÀH‰D$`è ™ÿÿ¿ÀH‰D$hèšœÿÿE1Ò¾aE1ÀH‰D$pH‹D$`1ÒL�<|9¿Æ-I�ƒÀÔÿÿL‹L$`ë6fDL‹T$hfoƒÂA2foHAL2HƒÆ HƒÀ@I9Ãty¶p L‹HcÏLÉ@„öt$@ˆ1D‹H�wHcÎA�Yÿƒû† L‹L$`‰÷LÉIcØHcòHÁãHÁæM…Òt®ƒx8uˆfoL‹T$pHƒÀ@AƒÀAfoXÐA\HƒÃ I9Ãu‡ÆH‹D$hH�L$hL�L$pHÇ0H‹D$pH�t$`HÇè�^Aƒÿ†ßI�^I‹vA¸L� Ü—L�Ø—L�À¤9ëfD‰ÂI‹4ÖA‰À¹L‰ÏA�@ó¦—€ڄÒuA9Çv‰ÂI‹4Ö¶AöSuÐO‰ÆA9ÇwÁA�GþH�-ˆ—M�dÆë€HƒÃI9ÜtSH‹;€?-uï€lué€tã莕ÿÿHƒÃH�xè1—ÿÿL‹CøH‰éHÇÂÿÿÿÿI‰ÅH‰Ç¾1ÀIƒÀè} ÿÿL‰køI9Üu­ÇD$»ÿÿÿÿL�d$\L�-?¦HÇD$Ç$9*Ï9tL‰öD‰ÿèÕ]…Àué‹Ï9H‹L$hH‹T$`M‰àL‰öÇ‘Ó9D‰ÿè™—ÿÿ‰Åƒý?„ž‰ïèg]…Àu«ƒýÿ„±�ý ‡ZIcT­Lê>ÿâH‹t$`Æ:�wHcÎAƒù…ÜýÿÿH‹t$`ƒÇÆ:L‹L$`HcÏLÉéÊýÿÿ€ ©ô9¶�ô9¨t7ƒàH�-–º<H�–H�5€HDè1ÿè”ÿÿH‰ÇH‰î1Àè’r¶[ô9ÇÝõ9ÇÇõ9ƒàü€%½ó9ßÇãõ9ƒÈˆ*ô9éÍþÿÿHcÃH�ƒx9‰\$ I‹<ÆH�ªÕÿÿL‰d$(¸H‰ëI‰ÔH‰|$H‰ýëf�L9ã„ùA‹$Iƒì@ƒøuêI‹t$8H…ötàA‹|$pHïè3—ÿÿ…ÀuÏ‹\$ L‹d$(ºH�5Q•1ÿèC“ÿÿH‹t$H‰Ç1ÀèÄq1ÿºH�5npè!“ÿÿH‰Ç1Àè§qéþÿÿf�H‹L$pM‰àL‰öD‰ÿH�-à‰-Í9èp“ÿÿ‰Åé;þÿÿH‹Šô9H…Àt €8„ô‹ $‹$…Étf.„è ʃëuöH‹D$H‰ÃH…ÀuëE€Æ€;…6H�X¾:H‰ßè3“ÿÿH…ÀuÞ€;t ¾H‰ßè vH‹|$èÂ�ÿÿ¶½ò9¨Àu¶T$ƒà?Áâ Ј¦ò9¶ ò9¨„ñ¶ Žò9‰Èƒà<„þ‹³ó9ƒú„ƒú„+‹Ÿó9ƒú„+ƒúu€ Tò9<tNHƒ=¢ó9t1ÿºH�5j€èÍ‘ÿÿH‰Ç1ÀèSpHƒ=ƒó9t1ÿºH�5s€覑ÿÿH‰Ç1Àè,p·õñ9f%Àf=À„ÔH‹„$dH3%(…©$H�Ä([]A\A]A^A_þH‰ßH‰$èítH‹$é°þÿÿ¶ �ñ9ƒàü D$ˆ“ñ9‰Èƒà<…ÿÿÿ€=”ò9‰õþÿÿ‹¨ò9Æ�ò9ƒú…îþÿÿƒá…¨‹�ò9ƒútƒú„îþÿÿéôþÿÿƒátâÇkò9€ )ñ9éÎþÿÿH‹5üÊ9H�”$€¿èÊ•ÿÿ…À‰H‹ÛÊ9H‰D$8H‹?ò9H‹|$8H‰D$@H…À„ßè§�ÿÿ¾˜ò9H‹l$@‰\$ L‰t$(I‰ÆL‰d$0‰ÓI‰ìH‹l$8H‰D$HˆT$ëDHƒÀI‰Ät8L‰òL‰æH‰ïè9Žÿÿ…ÀuC¶4„À„½:D$„m‰ÞL‰çè´�ÿÿH…Àu¿H‹|$@‹\$ L‹t$(L‹d$0è�ÿÿH‹T$HH�|踑ÿÿHƒìÿ5Ê9D¾ îñ9L‹oñ9HÇÂÿÿÿÿH‰ÇH‰ÅH� “¾1ÀèïšÿÿH‹=Hñ9èóŒÿÿXZH‰-:ñ9é�úÿÿÇñ9é~úÿÿH‹=Wï9H…ÿ„©óo'%;ï9è¶ŒÿÿéYúÿÿº¾H�= ï9è+¹H‰ï9é7úÿÿH‹5hÉ9H�=�ï9è¬éúÿÿÇ•ð9éúÿÿH‹AÉ9H‰Òð9éýùÿÿÇWò9éîùÿÿH‹=É9èz¤…À„Úùÿÿ1ÿºH�5’迎ÿÿH‰Ç1ÀèEmé¸ùÿÿH‹=éÈ9è$£é§ùÿÿ€ üî9@Hƒ=àð9…’ùÿÿHÇÏð9ýé‚ùÿÿ€ Ùî9@évùÿÿ€ Ëî9éjùÿÿ¶½î9‰ÂƒâÀ€ú€„_¶©î9ÇD$‰Âƒâ€ú…8ùÿÿƒÈˆŠî9é*ùÿÿ¶}î9‰ÂƒâÀ€úÀ„ì¶iî9ÇD$‰Âƒâ€ú…øøÿÿƒàüƒÈˆGî9éçøÿÿH‹-È9¹ H�=Ý�H‰îó¦—À„À„¤¹ H�=Ê�H‰îó¦—À„À…T¶T$¶òí9ƒâƒà?‰ÑÁá Ȉßí9¶Ùí9ƒàü ЈÎí9énøÿÿ€%Àí9÷ébøÿÿ€ ´í9éVøÿÿÇTï9Çï9é=øÿÿÇGï9é.øÿÿǘî9éøÿÿljî9éøÿÿ‹=êî9…ÿ„·¶Sí9ƒà<„T¶Aí9ƒàüƒÈˆ5í9éØ÷ÿÿH‹= Ç9èäéÇ÷ÿÿD‹ î9E…À„Ÿ¶í9ƒà<„+¶øì9€ ïì9¨Àu ƒà?ƒÈ@ˆáì9¶Ûì9¨…x÷ÿÿƒàüƒÈˆÇì9ég÷ÿÿH‹=î9H‹-‘Æ9H…ÿ„wèsŒÿÿH‰ïH‰D$èfŒÿÿH‹T$H�|èŽÿÿHƒìÿ5]Æ9D¾ =î9L‹Æí9H‰ÇH‰Å1ÀH� q�HÇÂÿÿÿÿ¾è>—ÿÿH‹=Ÿí9èB‰ÿÿAYAZH‰-�í9éÚöÿÿÇ`í9éËöÿÿÇÍí9é¼öÿÿH‹-íÅ9¹H�=‰‘H‰îó¦—À„À„£¹ H�=àªH‰îó¦—À„À…&Çãí9éjöÿÿH‹-›Å9H…í„r¹ H�=öŽH‰îó¦—À„À„T¹ H�=ãŽH‰îó¦—À„À…ÆÇí9éöÿÿH‹5@Å9H�=ÜŽètòÿÿé÷õÿÿH‹5(Å9H�=´Žè\òÿÿéßõÿÿH‹5Å9H�=ŽŽèDòÿÿéÇõÿÿH‹5øÄ9H�=´Øè,òÿÿé¯õÿÿH‹5àÄ9H�=‚Øèòÿÿé—õÿÿH‹5ÈÄ9H�=_ØèüñÿÿéõÿÿÇì9épõÿÿÇbì9éaõÿÿÇGì9éRõÿÿÇ@ì9éCõÿÿÇ9ì9é4õÿÿÇ*ì9é%õÿÿÇì9éõÿÿÇøë9éõÿÿƒ=�ë9ÇŠë9…ðôÿÿÇvë9éáôÿÿèÔãƒ=ië9t Ç]ë9ƒ=Rë9…¼ôÿÿÇBë9é­ôÿÿèðãƒ=5ë9t Ç)ë9ƒ=ë9…ˆôÿÿÇë9éyôÿÿH‹-ZÎ9H‹=£Ã9èþxH‰-GÎ9ÇÕè9訣ÿÿƒ=Ýê9t ÇÑê9ƒ=Æê9…0ôÿÿǶê9é!ôÿÿH‹RÃ9H‰Ûê9éôÿÿH‹-ïÍ9H‹=8Ã9è“xH‰-ÜÍ9Çjè9è=£ÿÿéàóÿÿ¿èÞVH‹=Ã9Çýè9Ç+ë9Ç¡¤9þÿÿÿH…ÿ„¨óÿÿ1ÒH�t$xè$‘ÿÿH‰D$H‹D$x€8…Ž1Àƒ|$ŸÀ‰Ùë9étóÿÿ€ Éè9€éhóÿÿ€ Áè9é\óÿÿH‹=�Â91Ò1öèÔ�ÿÿ‰Né9éAóÿÿ¶”è9ƒàüƒÈˆˆè9é)óÿÿ€ è9éóÿÿ€ nè9 éóÿÿ€%hè9þéóÿÿ€ [è9 éùòÿÿ¶Mè9ƒàü D$ˆ@è9éàòÿÿ¶4è9ƒàüƒÈˆ(è9éÈòÿÿH‹=ÙÁ9è„T1ÿè-‘ÿÿH‹=æÁ9H…ÿ„À è¸àé›òÿÿH‹-ÌÁ9¾=H‰ïè/ˆÿÿH‰ÁH…À„¬H�A€}H‰D$t€yu$ºH�5ºt1ÿèK‡ÿÿH‰Ç1ÀèÑeH‹-zÁ9H‹T$H)êHcÊH‰T$(H‰ÏH‰L$ èýˆÿÿH‹T$(H‹5QÁ9H‰ÇH‰ÅƒêHcÒ耋ÿÿH‹L$ H‹|$H�t$xºÆD ÿèb„ÿÿH‰ÁH‹D$x€8…E H‰ÏèYB1ÒH‰ïH‰ÆèŒ´é¿ñÿÿH‹ðÀ9H‰™ç9é¬ñÿÿH‹ÝÀ9H‰~ç9é™ñÿÿ¶ìæ9¶T$ƒà?Áâ ЈÙæ9ézñÿÿÆãç9énñÿÿÆ×ç9ébñÿÿH‹=“À91Ò1öèÚŽÿÿH…À„º H‰Šè9é=ñÿÿ€ Žæ9€é1ñÿÿ€%ˆæ9ßé%ñÿÿ€ |æ9 éñÿÿ€%jæ9¿é ñÿÿ€ ^æ9@éñÿÿÇWç9éòðÿÿH‹=#À9èNéáðÿÿ€%²å9éÕðÿÿ€ ¦å9€éÉðÿÿ€%šå9¿é½ðÿÿ€ Žå9@é±ðÿÿ€ ƒå9é¥ðÿÿH‹=Ö¿9H…ÿ„¿1Ò1öèƒÿÿH‰Åç9é€ðÿÿH‹=±¿9H…ÿ„ª1Ò1öèï�ÿÿ‰™ç9é\ðÿÿÇÂå9éMðÿÿdzå9é>ðÿÿH‹=o¿91É1Ò1öèD»é'ðÿÿ€%ùä9þéðÿÿ€%ìä9ßéðÿÿÇÝÉ9éðÿÿÇbæ9éñïÿÿÇOæ9éâïÿÿ€%6å9÷éÖïÿÿÇå9éÇïÿÿH‹ø¾9H‰áæ9é´ïÿÿ€%å9ïé¨ïÿÿÇúå9é™ïÿÿÇæ9éŠïÿÿÇ æ9é{ïÿÿH‹=¬¾9è—†ÿÿH‰àå9écïÿÿÇáå9éTïÿÿ€ ¬ä9€éHïÿÿH‹=y¾9Çsä9H…ÿ„.ïÿÿèa�ÿÿ‰Å…À„ñ ‰ï考ÿÿéïÿÿ‹ÕÅ9H‹=>¾9H�5C†�PH‰=ÍÃ9‰·Å9èbèÿÿÇ`ã9è3žÿÿHǨÃ9éËîÿÿÇ%å9€ ä9éµîÿÿ€ †ã9 é©îÿÿH‹-Ú½9¹ H�=¿ŽH‰îó¦—À„À„„îÿÿ¹H�=™…H‰îó¦—À„À„fîÿÿ¹ H�=‰…H‰îó¦—À„À„Hîÿÿ¹ H�=v…H‰îó¦—À„À„*îÿÿ1ÿºH�5¼`èƒÿÿH‰îH‰Ç1Àè’aéîÿÿDH‹=1½9èÌ éïíÿÿ€ Bã9éãíÿÿ1ÿèäPÇ ã9éÍíÿÿH‹=þ¼9¾è¤�é·íÿÿÇ-å9é¨íÿÿ€ úâ9Àéœíÿÿ€ ðâ9é�íÿÿH‹=Á¼91öèJ¥é}íÿÿÇKä9€%Dâ9ßégíÿÿH‹=˜¼9è³�éVíÿÿH‹=‡¼91Ò1öèî^éAíÿÿ9k¼9„¹¶†â9¨t7ƒàH�-„º<H�üƒH�5ûmHDè1ÿèø�ÿÿH‰ÇH‰î1Àè{`¶Dâ9ÇÆã9ǰã9ƒàü€%¦á9ßÇÌã9ƒÈˆâ9é¶ìÿÿH‹ç»9€8uH‹Cã9H…Òt €:…€H‰.ã9é‰ìÿÿ¶Ûá9ƒà?ƒÈ@ˆÏá9éqìÿÿÇ¿â9ébìÿÿH‹=“»9èîpÇÌà9蟛ÿÿéBìÿÿH‹=s»9螯é1ìÿÿH‹-b»9¹H�=�H‰îó¦—À„À„â¹H�=ë‚H‰îó¦—À„Àt¹H�=ÿ‚H‰îó¦—À„À…ဠ¥à9 éÈëÿÿH‹-ùº9¹H�=Ÿ„H‰îó¦—À„Àu HƒÅH‰-Ôº9H‹D$H…ÀtH‰Çèâ}ÿÿH‰ï誂ÿÿH‰D$éxëÿÿ¶Ëà9ƒàüƒÈˆ¿à9é`ëÿÿ¿è^NÇ„à9éGëÿÿH‹(Å9H‹=qº9H‰Å9èÅoÇ£ß9èvšÿÿHÇóÄ9éëÿÿH‹=Çá9H…ÿ„GHƒ?H‰úué½ „‰ÈHƒÂ�HHƒ:uñ�pHcöHÁæH�VðH�nøH‰T$èµ€ÿÿH‹ î¹9H‹T$H‰já9H‰ HÇ(é™êÿÿH‹=ʹ9¾è°­éƒêÿÿH‹-´¹9H�5bƒH‰ïè}ÿÿ…À„bH�5QƒH‰ïèþ|ÿÿ…À…lÇ8á9é?êÿÿH‹p¹9H‰éà9é,êÿÿ€ }ß9é êÿÿH‹=Q¹9èÌnéêÿÿ‹4$…ö„—èG¶ƒ,$éöéÿÿè¹µƒ$éèéÿÿH� ÌH‰á9éÕéÿÿH‹=¹9¾è\bé¿éÿÿH‹ð¸9€%ß9H‰Bà9é¥éÿÿH‹=Ö¸91ÒH�t$xè‡ÿÿ‰€š9H‹D$x€8„~éÿÿH‹-¯¸91ÿºH�5¶€è\~ÿÿH‰ÇH‰î1Àèß\éRéÿÿH‹=ƒ¸91Ò1öèʆÿÿH…À•ÀÁà‰Â¶ŽÞ9ƒàï ЈƒÞ9é éÿÿÇà9Çäß9€%ÝÝ9ßééÿÿH‹=1¸91Ò¾è•ZéèèÿÿºH�5wÿÿ1ÿºH�5pXè‹mÿÿ¾H‰ßH‰Â1Àèwÿÿ1ÿºH�5›Xèfmÿÿ¾H‰ßH‰Â1ÀèôvÿÿH‹=m§9è:¿ èÞjÿÿºH�50p1ÿè+mÿÿ¿H�ŸXH‰Æ1ÀèEtÿÿ1ÿèþtÿÿ1ÿºH�5¨XèûlÿÿH‰îH‰Ç1Àè~Kéñ×ÿÿ1ÿºH�5 [èÖlÿÿH‰Ç1Àè\KéÏ×ÿÿèmÿÿf�óúHƒ:tÇB¸Ãf„H‰21ÀÃf.„H‹E1ÀH9=ƒÌ9H‰øA”ÀH…Òtb1ÿH�5î�ƒzwS‹JHc ŽHñ>ÿáH…ÿtSE1ÀH‰ÐH‹H…Òu×Ã@H‰ÐH‹1ÿH…ÒuÅëì�H…ÿtH‹R8H…Òt HƒºuH‰øÃ@öB HEÇÀH‹Jƒyt£H‹I€9.uš€yu”E…Àu�H‰ÇëŠff.„f�óúH‹H‹¸ÿÿÿÿH‹R0H9Q0r—À¶ÀÃóúH‹H‹¸ÿÿÿÿH‹r0H9q0r¸w¸ÿÿÿÿ‹R9Qr—À¶ÀÃff.„�óúH‹H‹¸ÿÿÿÿH‹r(H9q(r¸w¸ÿÿÿÿ‹R9Qr—À¶ÀÃff.„�óúÃff.„óú‹G(…Àt�J Ãff.„f�óúSH‰óHƒìH…ÿ„»H‰Þè£jÿÿH‰ÂH…À„ÊH�pH�x HÇ@HƒçøH‰ñHÇ€¨1ÀH)ù�Á˜ÁéóH«ÇB H¸ÿÿÿÿH‰‚�H�B(H‰B0H‹]†9Ç‚˜ÿÿÿÿH‹HHÇB(H‰1Hƒ=\Ê9H‰pH‹YÊ9tH�HàH‰J@H‰0H�B8H‰AÊ9HƒÄH‰Ð[ÃH‰ß¾°H‰T$èÎmÿÿH‹T$H…ÀH‰Ç…"ÿÿÿHƒÄ1À[ÃDóúHƒìH‹?èÀmÿÿ…À”ÀHƒÄ¶ÀÃóúHƒìH‹vH‹è›mÿÿ…À”ÀHƒÄ¶ÀÃff.„S‰ûƒçuöÃu&öÃu4öà uBƒãuP[Ãf�1ÀH�={äèBIöÃtÚ1ÀH�=3è/IöÃtÌ1ÀH�=qèIöà t¾1ÀH�= yè Iƒãt°H�=˜‡1À[éõHDAWAVAUATUSHƒìH‰L$H…ÿtdI‰ÿH‰õI‰ÔL‰ÃL�5Å~L�-.‚fDAƒ‡uA‹GIc†Lð>ÿà€I‹0H‹L$I‰ØL‰âH‰îè‘ÿÿÿH‰D$M‹?M…ÿu¼H‹D$HƒÄ[]A\A]A^A_ÃI‹Gö@!€uÚH‹@8‹ ¬«9M‹?HÓèHD$M…ÿu„ëÆf.„I‹ë–f.„H‹L$I‰ØL‰âH‰îH‹=kÈ9èÿÿÿM‹?H‰D$M…ÿ…=ÿÿÿé|ÿÿÿI‹GL‰=­ª9ƒx… H‹u8H� ˆ£9H�T$H‰ÇH…öHDñè|$M‹?M…ÿ…øþÿÿé7ÿÿÿ¶ƒàÁà‰ÂA¶‡�ƒàß ÐI‹W8Aˆ‡�H…Ò„¨…üöB tL‰=7ª9Ǫ9H‹J(H‰L$éÜ€I‹0H�T$H�5¤9èó#‹EÊ9…À…Eƒ=þÉ9„wI‹èŸgÿÿ‹ iª9M‹?ÓèHD$M…ÿ…>þÿÿé}þÿÿ�I‹G‹ Fª9M‹?HÓèHD$M…ÿ…þÿÿéYþÿÿDI‹H�T$H�5ˆ£9ès#‹ÅÉ9…Ò…•ƒ=~É9„ÕA‹G-ƒø‡‹ à©9A‹T…¸M‹?Óà9ÐBÂÓèHD$M…ÿ…¤ýÿÿéãýÿÿ€M‹gM‹?M…ÿ…ˆýÿÿéÇýÿÿ¾H�= �èçEM‹?M…ÿ…cýÿÿé¢ýÿÿfDH‹ É9H‹É9I‰G H…Ò„]ÿÿÿHB(I‰G éPÿÿÿ„H‹ÙÈ9I‰G8é¸þÿÿH‹pH9-ÕÅ9¶„Ç€ú_u€HƒÆ€>_t÷¹H�=¼’ó¦—€ڄÒ…°ýÿÿÇI‹Gé¡ýÿÿ@H‹L$I‹WPI‹I‰ØL‰þèpüÿÿAö‡�…ÖüÿÿI‹W8H…Ò„Äüÿÿ‹B %=tcH‹B8‹ Œ¨9HÓèHD$I‹hH…ÿ„›üÿÿH�T$H�5Û¡9èÆ!M‹?M…ÿ…Büÿÿé�üÿÿ€ú.…0ÿÿÿ€~…;ÿÿÿǘ§9é,ÿÿÿ¶lÅ9ƒà<u¡ë�1ÿºH�5 €èðdÿÿH‰Ç1ÀèvCé þÿÿ1ÿºH�5Ã…èÎdÿÿH‰Ç1ÀèTCégýÿÿH�¾ËH�=àè4€SH‰þH‹=Å91ÉA¸ºèƒgÿÿH‰ÃH…Àt;€{u-H‹=öÄ9ÆCHÇC(ƒ@u€Kd@H‰Þ[é?gÿÿ€[ÃfD1ÿºH�5B…è-dÿÿH‰Ç1Àè³Bë¦�UH‰õSHƒìè"oÿÿH…Àt2H‰ïH‰Ãè2dÿÿHض„Òt„HƒÀHƒÃˆSÿ¶„ÒuîÆHƒÄ[]Ã@AUI‰ýATUH‰õSHƒìèëcÿÿH�xè’eÿÿH‰ïH‰Ãè×cÿÿH�xè~eÿÿA¶UI‰Ä„Ò„îI�}H‰ÙH�`t9¶HƒÁHƒÇˆQÿ¶Wÿ„Òué¶UÆH�}L‰á„ÒtH�0t9¶HƒÁHƒÇˆQÿ¶Wÿ„ÒuéÆH�5�H‰ßèÿÿÿH�5�H‰ßèøþÿÿH�5ä€L‰çèéþÿÿH�5é€L‰çèÚþÿÿ¶A:$ua„Àt]ºëfDHƒÂ„Ét0‰Õ¶ A: tìH‰ßè$`ÿÿL‰çè`ÿÿHƒÄ‰è[]A\A]À�l­íëÔH‰Ùé/ÿÿÿ„1íëÀff.„�L‹M…Ét3‹wL‰Ê1ɶBH‹A‰ÀAƒàA€øHƒÙÿÀèƒà ÆH…Òu݉wH…ÉuL‰OÃAWH�WøÿÿH�5AVAUATUSH‰ûL�sHƒìH‰|$H�< 1ÉèmkÿÿH‰$H‰CH‹H…ÛuëNI‰I‰ÞL‰ãM…ät=L‹#öCtéH‹D$ºH‰ÞH‹xèËeÿÿL‹8M…ÿuCH‰H‹$H‰$H‰L‰ãM…äuÃH‹D$H‹ $IÇH‹@H‰HƒÄ[]A\A]A^A_ÀD¶kë%f„I‹/H…ít0H‹sH‹}è+eÿÿ…ÀuI‰ïA¶GD1è¨8uØH‰ßè ^ÿÿéIÿÿÿH‰+I‰é;ÿÿÿff.„f�óúH‹éƒ^ÿÿAWAVAUATUSHƒìH‹ £9H…Û„¯f�öCI …–H‹k ‹XÂ9H‹5…Á9H‰ïè�bÿÿI‰Ä¶#Á9ƒà<„ˆöÁ9uM…ä„拵¨…ötL‹ Â9E1ä…É„‹H‹4Á9H�5ÝÀ9H‰ïH‹@ÿ�@…À…(‹ÒÁ9…Ò…úL‰çèÂcÿÿf�H‹[0H…Û…SÿÿÿHƒÄ[]A\A]A^A_Ã@M…ä„L‹-ÐÀ9H‹EI‹U‹J9H„fÿÿÿöED „\ÿÿÿL‹:1ÿL‹0ºH�5&�èé_ÿÿM‰èL‰ùH‰êH‰ÇL‰ö1Àèc>M…ä…$ÿÿÿf.„‹=*Á9…ÿ„bÿÿÿH‹=[À9èöbÿÿH‰ïI‰ÅèëbÿÿºH�5/�1ÿI‰Äè…_ÿÿL‰éH‰êL‰æH‰Ç1Àè>H‹[0H…Û…uþÿÿéÿÿÿH�5I�1ÿºèM_ÿÿH‰îH‰Ç1ÀèÐ=‹ªÀ9…À„ØþÿÿH‹[0H…Û…5þÿÿéÝþÿÿöED „VÿÿÿL‹-¿¿9H‹EI‹Uéÿÿÿf�H�=ÉóÿÿèdbÿÿI‰Äéaþÿÿff.„�H‹‰¿9SH‰òH‰þH�=+¿9H‹@ÿ�(H…Àt)H‹5%¡9H;5¡9H‰ÃH‹¡9tH�VH‰ðH‰¡9[Ã�HƒÆH‰ÇH�6HÁæH‰â 9èu_ÿÿH‹5Þ 9H‰ß 9ëÃDAWAVAUATUSHƒì8H‹=û¾9èFiÿÿº�HÿH‹ç¾9HÓâH‹˜�H…Ût`H�lÿL�%|€@öC t:H‹K(H‹C8H�H!êt H!éH9чmH‹S0HÐH!ètH!êH9‡}DH‹[H…Ûu·H‹x¾9‹€¨ƒø†‰Ç1íHÁçèŒ_ÿÿI‰ÅH‹R¾9H‹€�H…À„Êf�‹P öÂt-�â�útHƒx8tH‰êHƒÅHÁâLêH‰ÇBH‹@H…ÀuÂH‰D$Hƒý†{H� ŒñÿÿH‰îL‰ïL‰ëºE1ÿèö[ÿÿI‰êH‹D$E1ÉIÁâMê@L‹#AöD$ t8‹  9I‹T$8M‹t$0HÓêM�\ÿH…ÀtM9þ†�M9ù‡†M‰ßM‰ñL‰àHƒÃI9Úu´H� MñÿÿH‰îºL‰ïè}[ÿÿI‹u¸L‹N(L‰ÉDH‰ÂHÁâI‹TH‹R(H9ÊtuHƒÀH‰ÑH9Åuß‹ ‘Ÿ9H‹F8I�]E1öHÓèM�|ÿëE@L‹#‹ oŸ9‹{I‹D$8M‹T$(HÓèM�\ÿ…ÿuM9ú†}M9Ï‚tHƒÃM‰ßM‰ÑL‰æIƒÆL9õu¶L‰ïL�%è_YÿÿH‹°ž9H…Ûu ëV�H‹[H…ÛtL‹CP…ÀtðH‹k8H‹C(A¸1ÿHC L‹+L‰âH�5H)ÅH‰éè´cÿÿH‰êL‰îH‰Ç1Àè4:H‹[H…Ûu´HƒÄ8[]A\A]A^A_Ã@L‹+ºH�5¡}1ÿèr[ÿÿL‰îH‰Ç1Àèõ9éˆýÿÿL‹+ºL‰æëÚL‹I‹$º1ÿH�5Ó}L‰\$(L‰T$ L‰L$L‰D$H‰D$è[ÿÿHƒìL‰òAWL‹\$8H‰Ç1ÀL‹D$ L‹L$(H‹t$L‰ÙL‰\$ è~9ÇCAXL‰àAYL‹\$M‰ñL‹T$ M‰ßéþýÿÿHƒÄ8L‰ï[]A\A]A^A_éXÿÿf�L‹I‹$º1ÿH�5s}L‰\$(L‰T$ L‰L$L‰D$H‰D$è}ZÿÿHƒìAWL‹\$8H‰Ç1ÀL‹T$0L‹L$(L‹D$ H‹t$L‰ÙL‰ÒL‰\$(L‰T$ èÔ8ZYL‹\$L‹T$éþÿÿATUSHƒìdH‹%(H‰D$1À¶qº9‰ÂƒâC€ú„£ƒà»<„“€úB„™H‹5ë›9H…ö„ŠH‹=[º91É1ÒA¸èÄ\ÿÿH…Àt¶H�Qý€ú†ÿH‹=°›91ÒH‰æèWÿÿH‹$€:u}H‹=>º9H‰Æè–cÿÿ…À„¨H‹D$dH3%(…ŠHƒÄ[]A\Ã�‹¹9€úB…gÿÿÿ‹÷¸9 í¸9…Uÿÿÿ1ÿºH�5©|è,YÿÿH‰Ç1Àè²7é3ÿÿÿDH‹5ét9H‹=º¹9èu[ÿÿH‰ÅH…À„ùL‹`(…Û…µH‹=–¹9L‰æèîbÿÿ…À…Xÿÿÿ1ÿºH�5°|èÃXÿÿH‰Ç1ÀèI7é6ÿÿÿ@H‹H(H‹QhH…Ò„ðþÿÿH‹=H¹9H‹q`Hp0Hr(è—bÿÿ…À…ÿÿÿH‹€š9ºH�5,|1ÿèeXÿÿH‰ÞH‰Ç1Àèè6éÕþÿÿH‹59t91ÛH‰5Hš9éaþÿÿH‹9š9ºH�5-|1ÿèXÿÿL‰âH‰ÇH‰Þ1Àèž6L‹e(éÿÿÿD…Û„zþÿÿH‹ù™9ºH�5-|étÿÿÿèXÿÿff.„óúAWAVI‰þ¿ÿÿÿÿAUI‰ÕATM‰ìUSHƒì8‹Ò‘9H‰t$dH‹%(H‰D$(1ÀèWÿÿH‹=9¸91ÒL‰îè_ÿÿ‰ßH‰ÅH…ÀIDíèÞVÿÿA‹F¨…ʨ…šL‰ëI‹~H…ÿt8H‹D$H…À„à¶@¨„LÀèƒà<„f„À„¾<„öH‹D$H…Àt ö@„M‹~ë*@A¶GH‰Þƒà8< t <H‰îIDô1ÒèiXÿÿ…Àt%M‹?M…ÿ„ùI‹H…ÿtë€?*uÀu½DL9ítH‰ïèTÿÿM9ìtL‰çèöSÿÿL9ëtH‰ßèéSÿÿH‹L$(dH3 %(L‰ø…ÃHƒÄ8[]A\A]A^A_ÃA‹F¨…E¨…਄.ÿÿÿI‹~H�t$H‰\$èQ_ÿÿI‰ÇH…Àu%éÿÿÿ@A¶Gƒà8< „`ÿÿÿM‹?M…ÿ„îþÿÿI‹H‰ÞèÈYÿÿ…ÀtÔéÙþÿÿ€H‹D$L‹8M…ÿ…ÿÿÿ€E1ÿéÿÿÿ„H‹=i¶9ºL‰îèL]ÿÿH‰ÃH…À…IþÿÿéAþÿÿH‹=A¶9ºL‰îè$]ÿÿI‰ÄA‹FM…ä…þÿÿM‰ìé þÿÿI‹~H�t$L‰d$èy^ÿÿI‰ÇH…Àu!ë/€A¶Gƒà8<„ˆþÿÿM‹?M…ÿtI‹L‰æèôXÿÿ…ÀtØA‹F¨„þýÿÿéËþÿÿH�t$H‰l$è ^ÿÿI‰ÇH…Àu ë6fDA¶Gƒà8<„0þÿÿM‹?M…ÿtI‹H‰îèœXÿÿ…ÀtØ„A‹F¨„hþÿÿéCÿÿÿèêTÿÿf.„óúAWAVAUATUSHƒì(dH‹%(H‰D$1ÀH9· t]‹B…ÀuVH‰óöF#uML‹f8H‹nhM…ät@H…ít;I‰ÿL‹*L‹rè$^ÿÿH…ÀxO…ñI‹E1É1ÒH‰îL‰ïÿ�xöC!uw€H‹D$dH3%(…<HƒÄ([]A\A]A^A_ÃDHƒøÿ„†è¡Uÿÿ‰ÇèÊ\ÿÿH‰ÅH‹1ÿºH�5 oèÁSÿÿH‰îH‰ÇH‰Ú1ÀèA2ë—€H�T$H‰ÞL‰ÿHÇD$è¯Vÿÿ…Àt¥H‹T$1ÉM‰àH‰îL‰ïèöTÿÿ…ÀtŒH‹|$èÈPÿÿéKÿÿÿèUÿÿƒø…lÿÿÿéÿÿÿDH‰Çè UÿÿL‰ñH‰ÞL‰ÿH‰ÂH‰D$è*\ÿÿH…ÀxBI‹UL‹Šxu L‰ï1É1ÒH‰îAÿÑH‹|$èaPÿÿé×þÿÿ@‰ÁH‹T$H‰îL‰ïAÿÑé¾þÿÿºH�5n1ÿèÐRÿÿH‰ÅéñþÿÿèSÿÿóúH9· t‹B…ÀtÃAWAVAUI‰ÕATI‰üUSH‰óHƒìL‹:L‹6H‹B‹V L‰ÿL‰öH‰D$è´QÿÿH‰ÅH…À„øH‹C8H‰E8H‹C(H‰E(H‹C0H‰E0‹Cp‰Ep‹ƒÄ‰…ÄH‰khHÇC`öC#u,I‹GH‰éL‰úH‰ÞL‰çÿ�P…ÀtJHƒÄ[]A\A]A^A_ÃH‹t$H‰ßèCOÿÿH…ÀtÂI‹T$ƒH ƒzu³H‹“àH‰‚°ë£€ºH�52m1ÿèµQÿÿH‰ÃAÇEºH�50m1ÿè—QÿÿHƒÄL‰òH‰ÞH‰Ç[1À]A\A]A^A_é 0f„ºH�5ôu1ÿè]QÿÿH‰Ã름1À¶8u ¶V8WtÃD¶V8Wuñ¶N8Ouè¸ë€¶ HƒÀ8Ñu¶€ú*uë¸ÃD1ÀÃDóúH‰ñöBHu[‹GD¶9±9Áèƒâ%ÿÿ€út©u‹V �†�ú€tA¨@uH‹GH�±9H‰ÎH‹€ÿàfDÀH‹GH�5ݰ9H‰ÏH‹€Èÿà�H�5ùŒ9H‰qh벉ø¶¸°9Áèƒà÷Çt ö ¹EÁƒâ@t�ç ºEÂÃf.„óúH‹BhH…ÀtH‹ ¼°9H9ˆðtÃf�ö@!€u÷‹B ¨tð%=täHƒz8tÝAÇÄH‰ú÷Çÿÿÿ?tE÷Çÿÿt%÷ÇÿuUHÁê H�5kk¿1ÀéÎVÿÿfDHÁêH�5Ek¿1Àé±Vÿÿ�HÁêH�5$k¿1Àé™Vÿÿf„H�5#k¿1Àé}Vÿÿff.„f�AUATUSHƒìH‹^8H‹F L‹F(H9Ãr I‰ÙI)ÁM9ÁvaLÀH9ØuH…ÉuTH…ÒtHH‹L‹.º1ÿH�5¤sL‹ H‹¨ðèåNÿÿHƒÄM‰èH‰ÞL‰á[H‰êH‰Ç]1ÀA\A]éU-D‹FP…ÀtHƒÄ[]A\A]ÃfDH‹L‹&º1ÿÇFPH�5…sH‹(H‹˜ðè~NÿÿHƒÄL‰áH‰êH‰ÞH‰Ç[1À]A\A]éñ,�‹Ö°9…À„ºƒøwUATL�%jUH�-jSH‰ûH…ÿt3‹Cƒø„—vEƒø txƒøuH‹=4®9è¯ÿÿÿ€H‹H…ÛuÍ[]A\Ã¾Ü H�= iég-€…ÀuÔH‹S0¹H‰ïH‰Öó¦—À„Àtº¹H‰ÖL‰çó¦—À„Àt¤@H‹{è?ÿÿÿë•DÀH‹C ‹ °9H…À„uÿÿÿ‹Pƒút1D…ÒtDƒúuƒùu Ç@H‹H…À„Dÿÿÿ‹PƒúuÔƒùuçÇ@H‹H…Àuäé#ÿÿÿ‰HH‹H…ÀuÑéÿÿÿ„óú¶Gƒè<v ¸ÃH9w(uñUH‰ýS»Hƒì@èûƒëuöH‹E(H�=ªhH‹p`H‹@hHu0Hp(1Àèt,H‹u1ÀH�=Žhèb,HƒÄ¸[]ÃfDUSHƒìdH‹%(H‰D$1ÀöÛ¬9…�¶Ƭ9ƒà<„›‹a®9H‹=Ö¬9…À„–ƒø„�ÇD$H�\$H�-9ë€H‹=¡¬9H‰ÚH‰îè¾Rÿÿ‹D$ƒÀ‰D$ƒøvÞÇD$ÿÿÿÿH‹=w¬9H‰ÚH�5õè�RÿÿH‹D$dH3%(unHƒÄ[]Ãf„‹­9…À…WÿÿÿëÐ1ÒH�5·èRRÿÿëÀÇD$H�\$H�-œëf.„H‹=¬9H‰ÚH‰îèRÿÿƒl$uçélÿÿÿè�Kÿÿff.„f�HƒìH‹5�®9‹=�®9èêIÿÿÇPŽ9ƒøvº¨të ‰ÊÑè�J¨tõ‰/Ž9ƒøu HƒÄÃD¾· H�=(fHƒÄék*ff.„AWAVA‰öAUATUH‰ýSHƒìL‹g8èsÿÿÿèÞH‹uH�=Üg1Àèl*H‹}èÓJÿÿ�Xƒû�€è«ƒÃƒûuóH‹EhH…ÀtH‹#«9H9�ð„¦E…ö¸L‹-Ž9LDàH‹�ð1ÀL‰âL‰îH�=5fèø)H‹E@H…ÀtL9àu*H‹EhH…ÀtH‹5ʪ9H9°ðtaHƒÄ[]A\A]A^A_Ãf�»#èƒëuöH‹]@1ÿºH�5àeè×IÿÿH‰ÇH‰Þ1ÀèŠ)ëž„L‹m`Lh(é`ÿÿÿö ª9@…'H‹�¨H…Û„-H‹CH‹=ˆ�9H‹sHÇH‹n�9H‰úL�4õH)ÂI9Ö‡HL‹=H�9J�0L9ú„ZH‹ T�9I‰øH� H÷ÑH‹�9H!ÈH‰ÁI)ÐH‰�9H)ÑL9Á‡ñH‰�9H‹1ÒH…ÀtfDH‹8H‹@‰ÑƒÂI‰<ÏH…ÀuëH� ÝÿÿºL‰ÿE1öè¤Gÿÿ1ÀHƒ{tI‹<ÇH‰îè¬ûÿÿA�FI‰ÆH;CrçL;=�Œ9voL;=ŸŒ9sfL‰=†Œ9L‰=‡Œ9ë'DèÃ1ÛéìýÿÿH‹=ý¨9H‰êH�5[ûÿÿèOÿÿ‹ €‹9IÓìMìL;%Œ9†<þÿÿL‰%ö‹9HƒÄ[]A\A]A^A_ÃL‰þH�= Œ9è˜pëÀH‰=Œ9H‰øéÿÿÿL‰öH�=í‹9è(oH‹ù‹9H‹=ú‹9H‹sé’þÿÿ€ Œ9éšþÿÿDAWAVAUATUSHƒì‹oƒý‡H�¿]H‰ûI‰ôHcªHÐ>ÿà€½è»ƒíuöH‹CI‹t$8‹PH‹xƒú„�€?.„Ä H‰=ª91íH…öH� ñƒ9H‹x HDñƒú…pǪ9ƒx„  H�=›d1Àèî&H�= d1Àèà&H�=Šd1ÀHǼ©9èÇ&H‹{ëY�H‹OH…É„èH‹G H…Àt ö@F…ÕH�qdéç@H‹oºH�5hc1ÿè¹FÿÿH‰ÇH‰î1Àèl&H‹{è³HƒÄ[]A\A]A^A_éÐè«H‹C@H…ÀtOH‹0H�=Êb1ÀL�-Iè*&H‹C@H‹hH…ítDH‹uL‰ï1Àè &H‹mH…íuéH�=œb1Àèó%‹s…ö…ÈH‹sH…ö„ãH�==c1ÀèÍ%‹K…É…: H�=õ‰1ÀL�5‰Hè­%H‹k H…턃}‡Ö‹EH� \Hc�HÈ>ÿàf�H‹HƒÄ1ö[]A\A]A^A_éÇúÿÿ€H‹ ѧ9º ¾H�=fbH�-mbè OÿÿH‹CH‹H�XL�dH…Òt)€¶ H‹=ާ9H‰ê1À¾HƒÃèãNÿÿL9ãuÞH‹5o§9HƒÄ¿ []A\A]A^A_éoGÿÿ€èÃùÿÿ½fDè#ƒíuöH‹C(L‹c0H…ÀtL`(‹C-ƒø‡ H�1[Hc‚HÐ>ÿàH�=‡aHƒÄ1À[]A\A]A^A_él$@èSùÿÿ½fD賃íuöH‹C@L‹cHH…ÀtL`(H‹{èÄDÿÿ‹ އ9L‰æH�=ea‰ÅH‹CH‰êH‹@(HÓêH‰Á1Àè $H‹s(H…ö„õ1ÀH�=Gaèï#H‹{0è6èa‹ ;‡9H‰èHÓèLàH‰»‡9HƒÄ[]A\A]A^A_Ã@H‹OH�oaH‹=¦9HƒÄ¾1À[]A\A]A^A_élMÿÿ@H‹ ù¥9º ¾H�=Qaè;MÿÿH‹[H…Ûtf�H‰ßL‰æèµûÿÿH‹H…ÛuíH‹ ¾¥9HƒÄº ¾[H�=a]A\A]A^A_éòLÿÿf�‹GH�5%qH‹WH�=a…ÀH� qHDðHƒÄ1À[]A\A]A^A_éé"f„Hƒ=8£9„ÿÿÿ‹=<£9…ÿ„$H�=*_1Àè¶"H‹£9H…Û„ÛþÿÿfDH‰ßL‰æèõúÿÿH‹H…Ûuíé½þÿÿ„H;=‰¢9„¾L‹g8H‹w01ÀH�=Ê_è]"M…䄚I‹D$(H‹{0H‰4†9è¯Bÿÿ‰Åƒø�4@苃Ńýuó‹ }…9I‹T$8H�=}_1ÀI‹t$(HÓêè"I‹l$0I9l$(t H�5c_1ÿºè#BÿÿH‰îH‰Ç1ÀèÖ!H‹{hH…ÿtH�¶…9H�5�~9èzþè5H‹kH…í„Ýýÿÿ„H‰ïH‰ÞèõùÿÿH‹mH…íuìé¼ýÿÿ€H‹w1ÀH�=A_èn!H‹5Ÿ¡9H…ötH�=2D1ÀèT!H�=ÿºéÇüÿÿ„è+öÿÿH�=‹^1À½ è(!„è{ƒíuöH‹C L‹cH…ÀtL`(‹ _„9H‹S1ÀL‰æH�=N^HÓêèç H‹C(H‹H…Òt6H�hL�tL�-÷]¶MH‹=5£9L‰ê1À¾HƒÅèŠJÿÿL9õuÝè H‹C‹ öƒ9HÓèLàH‰y„9é¹üÿÿ@ºH�5Ó\1ÿè­@ÿÿH‹=Þ¢9‰é¾H‰Â1Àè5JÿÿHƒÄ¾ÐH�=¹[[]A\A]A^A_éöfDH�=ï\1ÀA½è @H‹EH…À…H‹uH…ö„öH�=`]1ÀèðE…ít"1ÀH�=“½èÝAƒýtH�=�½1ÀèÉHƒ}t"H�=Ù_1Àè´H‹mH…í…úÿÿ€H�=J½1Àè’è H‹[0H…Û„µûÿÿH‰ßL‰æèÕ÷ÿÿH‹H…Ûuíé�ûÿÿ„H�=*\1ÀA½èLé/ÿÿÿ€H�=Éd1ÀA½è,éÿÿÿ€H�=‰d1ÀA½è éïþÿÿ€H�=¬[1ÀA½èìéÏþÿÿ€H�=~[1ÀA½èÌé¯þÿÿ€E1íé þÿÿ„1íH�w{9H…öHDðH�‰‚9èTû‹¦¡9H‹C…Ò„|÷ÿÿƒx„/…í…CHƒ=X¡9„„H‹k¡9L‹%T¡9H…À„WL`(1ÀL‰æH�=½[è6…í„N÷ÿÿL‰%‚9éB÷ÿÿf�H�=¾Z1Àèé%øÿÿDH‹C H‹0éÿùÿÿ@H�=¥\1ÀèêéøÿÿDH�5»k¸@‹ *�9½L‹C H�=ëZÓåH9ÅHBè1ÀH‰êHÓêH‰ñL‰æèžH‹Cƒxtèï H‹{èÖýè ‹ Û€9HÓíLåH‰-^�9éžùÿÿf„H�5Kk¸ë‚f�H�55k¸éoÿÿÿ€H�5k¸éWÿÿÿ€H�5új¸é?ÿÿÿ€H�=µ[1ÀèúéýÿÿDH‹0H�=xY1ÀèßH‹EL‹xM…ÿtf�I‹7L‰÷1ÀèÃM‹M…ÿuêH�=UY1Àè¬éœüÿÿ€H�=Y1Àè’é×ùÿÿDH�=2º1Àèzé³öÿÿD€½„6õÿÿé(õÿÿH�=ðY1ÀèNé[õÿÿH‹RŸ9L‹%;Ÿ9H…À…çýÿÿéæýÿÿH‹6Ÿ9L‹%Ÿ9H…À…ËýÿÿL‰æH�=ŽY1ÀèéÒýÿÿè{ 1íéÄùÿÿL‰æH�=lY1ÀèãéþôÿÿH‹pH‹=›œ91É1ÒA¸è?ÿÿH…Àt*H‹H(H�=;YH‹Q`HP0H‹AhHP(1ÀH‰ÖèšéµôÿÿH�=Y1Àè‡é¢ôÿÿH�›V¾ÝH�=ãVè f.„USHƒìH…ÿtQH‰ûH�-">ëf„H‹sH‰ï1Àè2H‹H…Ût&‹C…Àtãƒøu.H‹sH�=Y1Àè H‹H…ÛuÚHƒÄH�==21À[]éðH�iU¾n"H�=QVèx „óú‹šœ9ATUH‰õSH‰ûƒú„ãƒú„‹E9C…«L‹ ¹ H�=œXL‰Îó¦—€ڄÒ„‰¹ H�=‡XL‰Îó¦—€ڄÒtn¹ H�=vXL‰Îó¦—€ڄÒtS¹ H�=hXL‰Îó¦—€ڄÒt8Hƒ= }9t'H‹uL‰Ïè…ÖÿÿH‹uA‰ÄH‹ï|9H‹8èoÖÿÿA9Ä~H‰Û|9[1À]A\Ã@ƒ „4ÿÿÿ[1À]A\À‹G …ÀuÖ‹E9CuÎéÿÿÿff.„�óúAUATUSHƒìHdH‹%(H‰D$81À€…‚H‹G(‹Ê›9H‰û‹ƒú„�ƒú„—H‹=Pš9H‹hH‰ÚH�5ò™9L‹c0H‹Gÿ� …À„ôHƒ=¬›9„(‹ˆ{9…À„`H‹sH‹=š9ºèë@ÿÿI‰ÅH…À„�H‰ÆH�=^V1ÀèîL‰ïèV9ÿÿL‰ï‰Ãè|6ÿÿƒû�»è+ƒÃƒûuó1ÀH�=ãUH‰ã貸ÿÿÿÿM‰àH� úVI9ÄvH� òVº2¾H‰ß1ÀèDÿÿH‰ÞH�=âU1ÀèrH‰Ú‹ HƒÂ��ÿþþþ÷Ñ!È%€€€€té‰ÁÁé©€€DÁH�JHDщÆ@ÆHƒÚH)Ú‰ÓHƒúw€èƒƒÃƒûuóH‹µðH�=MT1ÀèH‹|$8dH3<%(¸…áHƒÄH[]A\A]Ãf�;ƒqþÿÿëÐfD;†aþÿÿëÀfDºH�5ïU1ÿèí7ÿÿH‰Ç1À裺H�5w]1ÿèÐ7ÿÿH‰Ç1Àè†ÇÜy9éWþÿÿ€H‹sH�=ÎT1Àè^H‹{èÅ7ÿÿ‰ÃérþÿÿfDL‹k1ÿºH�5æ\èq7ÿÿH‰ÇL‰î1Àèôéãýÿÿ€è“1Ûé<þÿÿè‡7ÿÿ€UH‰õH�5WUSH‰ûHƒìè˜=ÿÿH…ÀuHƒÄH‰îH‰ß[]éâ:ÿÿf�HƒÄH‰îH‰ß1Ò[]é�8ÿÿff.„f�ATI‰ÌUH‰ýS€~H‰óu]I‹$H9ë”À1ÉH…Òt HƒºØ•Á8ÈtM¸H9ët&H‹‚ØH‰ïH‹0Æè^ÿÿÿ¶—9…Àˆ”À¶À[]A\ÄH�~H‰Öè4ÿÿÿ…Àt“[1À]A\Ãf„H…ÿ„ªAVAUL�n ATI‰ôUSH‰ûë!L‰éL‰òH‰ÆH‰ïè?ÿÿÿ…Àu^H‹[H…Ûtj¾5†–9H‹+M‹t$@„öt H‰ïè¶6ÿÿH…ÀuÁL‰öH‰ïè¶þÿÿ…Àt%I‹D$ H…Àt½H‹€ØH…Àt±H‹0H‹;è‘þÿÿ…Àu¢[¸]A\A]A^À[1À]A\A]A^Ã1ÀÃf.„AWM‰ÏAVI‰ÖAUM‰ÅATI‰üUH‰õSH‰ËHƒìH‹yèÿÿÿ…Àu+I‹L$xHƒÄM‰ùI‰èL‰òH‰ÞL‰ç[L‰è]A\A]A^A_ÿà@HƒÄ[]A\A]A^A_Ãf„óúAWAVAUATUSHƒìH‹F H‹oPH‹˜�H…ÛtKI‰ýI‰ôI‰×I‰Îë @H‹[H…Ût0H‹}H‹3è“ãÿÿ…ÀtçH‰ÚM‰ñM‰øH‰éL‰æL‰ïè(ÿÿÿH‹[H…ÛuÐHƒÄ[]A\A]A^A_ÃóúAWAVAUATUSHƒìH‹F H‹¨�H…ít\I‰üI‰õI‰×I‰Îf�I‹\$ H…ÛtVfDH‹{H…ÿt H‹uèýÿÿ…ÀuM‰ñM‰øH‰ÙH‰êL‰îL‰çè£þÿÿH‹H…ÛuËH‹mH…íu²HƒÄ[]A\A]A^A_ÃH‰êI‹L$xM‰ñM‰è1öL‰çAÿ×H‹mH…íu�ëÍff.„@óúAWAVAUATUH‰õSH‰ûHƒìXL‹`H‰T$H‹WXL�l$0H‰L$H‹OhdH‹%(H‰D$H1ÀH‹GPH‹~ H‰T$H‰L$ H�ÔÆÿÿL‰éH‹pH‰D$(HÇD$0ÇD$8è¢0ÿÿ‹T$8L‹d$0…Ò…9H‹D$H‹} L‰éH�ŽÆÿÿH‹pHÇD$0èl0ÿÿ‹D$8L‹l$0…À…H‹E L‹°�M…öuOH‹D$HdH3%(…öHƒÄX[]A\A]A^A_ÃDL‹L$L‹D$L‰ùL‰òH‰îH‰ßè5ýÿÿM‹vM…öt´M9ôtwM9õtJM‹I‹L‰Æècáÿÿ…Àu¿H‹D$ H‹xèQáÿÿ…ÀtÈL‹L$L‹D$L‰òH‰îH‹L$ H‰ßèàüÿÿë©fDL‹L$L‹D$L‰êH‰îH‹L$H‰ßè»üÿÿë„f„L‹L$L‹D$L‰âH‰îH‹L$(H‰ßè“üÿÿéYÿÿÿfDH‹L$H‹T$H‰îH‰ßècýÿÿéöþÿÿèI2ÿÿf„óúAWAVAUATI‰ôUH‰ýSHƒìHL‹oXL‹`H‰T$H�ÅÿÿH‰L$H�L$ dH‹%(H‰D$81ÀH‹GPH‹~ HÇD$ H‹pH‰D$ÇD$(èÃ.ÿÿ‹D$(H‹\$ …À…ÚI‹D$ L‹°�M…öu-ëw€L‹L$L‹D$L‰éL‰òL‰æH‰ïè­ûÿÿM‹vM…ötLL9ótoM‹I‹}L‰Æèàßÿÿ…ÀuÄI‹èÓßÿÿ…ÀtÒL‹L$L‹D$L‰òL‰ùL‰æH‰ïèdûÿÿM‹vM…öu·H‹D$8dH3%(uWHƒÄH[]A\A]A^A_Ãf„L‹L$L‹D$H‰ÚL‰æH‹L$H‰ïèûÿÿéaÿÿÿfDH‹L$H‹T$L‰æH‰ïèãûÿÿë™èÌ0ÿÿff.„�óúAWI‰ÏAVAUI‰õATI‰üUSHƒì8H‹oXH‰$H�L$H�‘ÃÿÿdH‹%(H‰D$(1ÀH‹GPH‹~ HÇD$H‹pH‰D$ÇD$èJ-ÿÿ‹D$H‹\$…À…™I‹E L‹°�M…öu"ëH€H‹}I‹6è”Þÿÿ…ÀuPM‹vM…öt(L9óuâL‹$H‹L$M‰ùH‰ÚL‰îL‰çèúÿÿM‹vM…öuØH‹D$(dH3%(uCHƒÄ8[]A\A]A^A_ÃL‹$M‰ùH‰éL‰òL‰îL‰çèØùÿÿë–fDH‹$L‰ùL‰îL‰çè®úÿÿë­è—/ÿÿ€óúAVI‰ÎAUI‰ÕH�{ÂÿÿATUH‰õSH‰ûHƒì L‹gPH‹~ dH‹%(H‰D$1ÀH‰áHÇ$I‹t$ÇD$è(,ÿÿ‹D$H‹$…ÀuÿàfDA‹+u@I‹4$H‹}HƒÄ[]A\é$0ÿÿ@H‹1H‹}L‰D$H‰$è 0ÿÿH‹$L‹D$…ÀuA‹+HƒÄ[]A\ÃH‹}èwþÿÿI‹<$H‰ÃèkþÿÿH…Ût�H…Àt˜)ÉØuÒë�H�"F¾¿H�=GèAû�óúAVAUI‰ýH‰×ATI‰ôL‰ÎUH‰ÕSè0ýÿÿ…Àt []A\A]A^ÿI�]pè‚-ÿÿA‹UI‰ÆHÇ@HÇ@H‰(…ÒuM…ät_A‹D$…ÀtVL�mpH‹H…Àt*H‹A‹|$L‰êH‰îL�Apè³þÿÿH‹…ÀxHƒÃH‹H…ÀuÖL‰3[]A\A]A^Ã@HƒÃë¸f.„I‹UpH…Òu ëÕDH‰ÂH‹BH…ÀuôH�Zë¾ff.„PXH�ïE¾H�=FHƒìè2úf�PXH�¿E¾ H�=ïEHƒìèúf�AVI‰ÎAUI‰ÕATI‰üUSH‹@H‰óè3ôÿÿ…À…‡H‹{ H…ÿt¾è(4ÿÿ…Àu$öCHujI‹D$HL‰ñL‰êH‰ÞL‰ç[]A\A]A^ÿàH‹{ 1öè4ÿÿH‰ÅH…Àt9DH‹µH…ötöFHuL‰ñL‰êL‰çAÿT$HH‹{ H‰îèÌ3ÿÿH‰ÅH…ÀuÌ[]A\A]A^Ãff.„óúH‹ En9SH‰ûH‹=2n9H‰ÈH)øH9ÃwWH‹n9H�4H9ÆttH‹(n9H‰ËH�<H÷ÒH!×H‹ìm9H‰þH‰=òm9H)ÖH)ÓH9Þv H‰ àm9H‰ÏH‰=Îm9[Ã@H‰ÞH�=®m9è‰PH‹=ºm9H‹«m9H‹ ´m9H�4H9ÆuŒ€ Ôm9ëƒf�óú¶Gƒè<v ¸ÃH‹W(H‹‚ðH9Ɖ9tãH…ÀtÞUSH‰ûHƒìH‹ª¨H…í„ÞHƒ}„H‹=äl9H‹Õl9H‰øH)ÐHƒø†}H‹¶l9H�JH9Á„‘H‹5Âl9I‰øH�1H÷ÖH‹ ‰l9H!òH‰ÖI)ÈH‰‰l9H)ÎL9Æv H‰=zl9H‰úH‰hl9H‹UH‰H‰HƒÀH‰E¸HƒEHƒÄ[]ÃDH�=)l9¾è_OH‹0l9H‹=1l9é_ÿÿÿ@€ Ql9écÿÿÿ@¿èþÿÿH‰ÅH‹C(H‰¨¨H‰mHÇEéÿÿÿ€H‰méôþÿÿff.„@AVM‰ÆAUI‰ÍATI‰ôUH‰ýSH‰ÓH…ÿtH�=k9H9Çt ƒ „~H‹EH…Àtƒx tg¿0è•ýÿÿH‹UM…äH‰H�¤i9LDâH‰EÇ@ L‰h L‰`(‹ wj9I‹u(H‰XL‰òHÓëH)òLóH‰PH)óHÓãI‰]8[]A\A]A^Ã@L9h u“ëÃH‰øH9O …uÿÿÿë´�SH‰û¿èýÿÿH‹Ó‡9H‰XH‰[H‰ć9Ãff.„AVÇÄh9AUI‰ÕATI‰üU‰õS…É„~L‹5—B9¿Xè½üÿÿH‰ÃHÇÇ@I‹FH‰I‰^fïÀ·f†9HÇCPC@·CHf�âèC f%þC0 ÐL‰k@f‰CHƒý‡ÒH�×<HcªHÐ>ÿà�¿XèFüÿÿH‰ÃÇ@HÇë’f�KHL‰cL‰cH‹Ó…9H‰H�C8H‰Å…9H‰Ø[]A\A]A^Ã�L‰cL‰c€KIëÐf�A€<$:tyL‰c1ÒL‰æH�=#D1Àè"'ÿÿf�KHH‰Cë¤fDL‰cL‰cf�KHëŽL‰cL‰c€KHë€f�L‰cL‰céqÿÿÿ¾qH�=¨@èïéXÿÿÿf.„A€|$„{ÿÿÿI�D$€KHH‰Cémÿÿÿf�UH‰ýSHƒìèb)ÿÿH‰ÃH…Àt:¿è0ûÿÿH‹h9Ç@HÇH‰XH‰H‰õg9HƒÄH‰Ø[]Ã1ÿºH�5²JèÝ$ÿÿH‰îH‰Ç1Àè`ë¤ff.„óúH…ö„³ATI‰üUH�-J;SH‰óH‰ßAÿÔƒ{wv‹CHcD…Hè>ÿà„H‹5™„9L‰çè±ÿÿÿH‹H…ÛuÇ[]A\Ã@ƒ»„ÿtæH‹sL‰çè‹ÿÿÿH‹H…Ûu¡ëØ�H‹s0L‰çètÿÿÿH‹H…ÛuŠëÁf.„¾ëH�=H?è�H‹H…Û…aÿÿÿë˜�Ãff.„@óúH‹5ug9é ÿÿÿóúHÇH‰ÃóúH‹­?9H�Ng9H9ÐsH�PH‰–?9H‹‡?9H‰H‰=}?9ÃPè¦øÿÿfDóúH‹m?9H�¾f9H9ÐvH�PøH‹@øH‰R?9H‰C?9ÃPèŒøÿÿff.„�óúATH‰øUS‰óH…ÿt%€?=t9¹H‰ÆH�=‡A󦾗Á€Ù„Ét‰Þ¹[H‰Ç]A\é&üÿÿfD¾H‹=<„9H‰ÕHÆ1Ò1ÀèE$ÿÿ¶¾‚9‰Þ¹H‰ÇA‰Ôƒâ÷ˆ¨‚9H‰êAÀìèÜûÿÿ¶•‚9Aƒä[AÁä]ƒâ÷D âA\ˆ}‚9Ãff.„�óúH�=Ee9é #ÿÿóúAUATUSHƒìH…ÿ„QL‹-e9A‰ôH‰ýM…ít,L‰ë@H‹;H‰îè&ÿÿ…À„ÝH‹[H…ÛuäM‹mM…íuÔE…äu<¹ H�=çMH‰îó¦—À„Àt"ºH�5@H1ÿèù!ÿÿH‰ê1öH‰Ç1Àèz¿Xèð÷ÿÿH‰ïI‰Åè$ÿÿIÇEI‰EH‹’=9IÇEIÇEIÇE IÇE(ÿÿÿÿIÇE0IÇE8IÇE@IÇEHAÇEPL‰(I�EH‰<=9ëf.„E…äuHƒÄL‰è[]A\A]ÃDºH�5DG1ÿè5!ÿÿH‰ê1öH‰Ç1Àè¶ÿHƒÄL‰è[]A\A]ÃE1íë¸AWAVAUATUSHƒìXH‹H‰$H‰L$8D‰L$ dH‹%(H‰D$H1ÀH…ÛtdH�D$@I‰ÿI‰ôM‰ÆH‰D$H�D$8H�-¡7H‰D$„ƒ{w‹CHcD…Hè>ÿà@¾²H�=À;èI‰ß@H‹H…ÛuÈH‹t$HdH34%(H‹D$8…: HƒÄX[]A\A]A^A_ÃI‹T$8H‹D$8H‹{H+B(H‰CHI‹D$8H‰C@è| ÿÿ‹ Fc9ÓøH˜I‹T$8HD$8I‰ßH‰D$8H+B(HÓàH‰B8ëƒI‹T$8H‹D$8H�5\9H‹{H+B(H‹T$H‰C0I‹D$8H‰C(èPÜ‹C-ƒø‡‚ ‹ Ùb9H�5â8‹†¸Óà9ÐBÂÓèézÿÿÿ@I‹D$8I‰ßH‰C H‹CH‰$éÿþÿÿ€I‹D$8I‰ßH‰9€9éäþÿÿ@M…öt8H‹sH‹L$H�«9H‹¾ðH‹Gÿ�°…À„R‹D$@…ÀtAÇI‹L‹D$8M‹L$8L‹hA·E$f%€f=„ßAöE!€…$Aö„$�…A‹L$|ƒùÿ„¬ A‰MpA9IpsA‰IpA‹MpºHÓâ‹ ×a9I�DÿH÷ÚH!ÐH‰ÂL)Â…~ I‹Q(L‰ÀH)ÐI‰E`I‹E8HÓèIÀL‰ÀH)ÐHÓàI‰A8ébfDH�{0D‹L$ H‹L$8M‰ðL‰æH‹$I‰ßè@ýÿÿH‰D$8éÆýÿÿfDƒ»„ÿI‰ß„°ýÿÿH‹{XH…ÿ„£€£�þH‹T$H�5 Z9è‹ÚD‹Ü€9E…À…‹ƒ=”€9t2H‹C0L‹kXº1ÿH�5TDH‰D$ èÒÿÿH‹T$ L‰îH‰Ç1ÀèPüH‹C8H‰ÂH…À„0ýÿÿH‹ Y~9H‹I‹Iƒéƒù†^H�Z9L‹T$8H9„0Hƒ{X„D‹«€L‰ÐE…íŽSD‰éAºIÓâI�LÿI÷ÚI!ÊL‰ÑH)ÁH‰L$ …X€J$L‰R0L‰R(HÇB`H‹SPD‹L$ H�{H‰ÞM‰ðL‰Ñèüûÿÿ¶ƒ�H‹S8H�5ŠY9H‹=»Y9ƒÈˆƒ�H9ò„áH‹z8¨…ÕL‹B(D‹Kx‹ ç_9K�tÿI÷ÙL‰D$8HÓïH�>L!ÈL)ÀHÓàH‰B8L‹C@M…À„XH‹{`H…ÿ„ÄH�ë:1öL‰D$ è)âH‹S8L‹D$ H‰B0‹B ‰Æƒæ€‹�…ötA‰Á�á�ùt1Hƒz8…I‹H@H…É„÷H‹I8H‹t$8H9q(†òfDH�5¡X9H9ò„ˆûÿÿöƒ�…{ûÿÿ%=„µL‹j8‹ _9IÓíH‹{hLl$8H…ÿtH‹T$H�5TX9è?ØH‹s@H…ö„2ûÿÿH‹C8ö@ „$ûÿÿH‹T$8‹L$ H‰V8…É…<H‹sHH…ö„ûÿÿH;s@„øúÿÿH‹C8ö@ u öƒ�@„áúÿÿH‹H0‹T$ IÍL‰n8…Ò„ÊúÿÿH�{81ÒèÿËÿÿéºúÿÿf.„HÇCI‹T$8I‰ßH‹D$8H+B(H‰CéŽúÿÿfDD‹L$ H‹L$8M‰ðL‰æH‹$H�= {9I‰ßèÕùÿÿH‰D$8é[úÿÿH‹D$8I‹t$8H‹T$H‰D$@L‹kÇæ}9L‰ïè.׋Ø}9ƒø„Ÿƒø„ÞǼ}9A‹EƒàýƒøuI‹E€8.„A€Œ$�I‰ßAö„$�…ØùÿÿL9%!z9„LH‹T$@L‹D$8L9Âu|L‰D$8é²ùÿÿf�H�{é»ûÿÿ€I‹E(I+A(I‰E`L‰D$8I‰ßé‡ùÿÿ€H‹1}9H…À„ªH9Ø„Qÿÿÿ¾ŽH�=5èVùé;ÿÿÿ�L‰ÀI+A(I‰E`믋 Ú\9L)ÂH‹4$H‰ßHÓâI‹L$8èÓñÿÿA‹„$ŒH‹ƒø„5I‰ßƒø„3I‹D$8ƒH L‹D$@é4ÿÿÿH‹)|9H‹2|9H‰D$8H…Ò„”ûÿÿHB(H‰D$8é†ûÿÿH‰w|9é¤þÿÿH‹r0H9r(„ýÿÿHƒ{H… ýÿÿ¶ zy9ƒá€ù„öüÿÿI‰X@éíüÿÿDH…ÿ„Qüÿÿ¾TH�=4èføé;üÿÿ�1ÿºH�5AèÍÿÿH‰Ç1ÀèS÷éŒùÿÿfDH‹ñ{9H…À„[H9Ø„ þÿÿ¾—H�=Ç3èøéóýÿÿf„¶Ùx9ƒà<…®úÿÿH‹y9H‹@ƒx…™úÿÿèäÓH‰ÇH‰CXH…À„„úÿÿéúÿÿ€ö@#„˜úÿÿH‹SH…Òt Hƒ:uƒzt,ºL‹k0H�5Ñ>1ÿèÿÿH‰ÇL‰î1Àè…öH‹SH‹C8H‹RH‹J(€H$H‹R8H‰H0H‰H(H‰P8éL÷ÿÿ@H‹S8H‹KH‹B ‰ÆƒæH…É„ÁH‹y8öƒ�@…-H;K@tD‹«€E…í~D‰éA¹IÓáL‰ÉI�|9ÿH÷ÙH!ÏH‰z0éûÿÿf„€x„ìüÿÿéÞüÿÿH‹T9E1íH‰D$ H…À„úÿÿ¾öH�=a2L‰T$(è£öL‹T$(HÇD$ ééùÿÿHÇD$ I‰ÂéÄùÿÿ1öH�=ÃBèqôÿÿL‹D$@L‰@8é§üÿÿ‹5áx9…öu Hƒ{X„“ùÿÿƒ=gy9„†ùÿÿH‹C0H‹L$ 1ÿL‰T$0A¸H�4>H�5e>H‰D$(è“ÿÿH‹T$ H‹t$(H‰Ç1ÀèõH‹S8L‹T$0é6ùÿÿH|$ éõþÿÿL‹k@‹B M…í„W¨t I‹u€>*„*öƒ�…Ò‹B ¨„Ç%=„·¶wv9ƒà<„¥‹|$ …ÿ„™I‹uH�ÂA¹ H‰Çó¦—Á€Ù„ÉuzH‹ ’X9H…ÉtnH‹9H‰ÆH‰T$(H‰L$ è�ÿÿH‹T$(…Àu H‹L$ HƒytDƒ=Dx9t;€=w9L‹*H�5‘<ºuH�5Ë<1ÿè|ÿÿL‰îH‰Ç1ÀèÿóL‹k@H‹S8I‹E8D‹jpéî÷ÿÿL‹D$@I‰ßéûÿÿH‰†x9é«úÿÿ1öH�=Aè³òÿÿI‰Àé’øÿÿA‹MpéOöÿÿH‹4$HÓâL‰ÿL‰ÉH‰D$(L‰L$ è6íÿÿH‹D$(‹ X9L‹L$ I‰ÀéNöÿÿI‹H@H…É„}øÿÿ…ö„zL‹I8L‹T$8I‹y(M‹Y0L9׆H‹r8H…ö„‹ ÌW9HÓîH‰ñLÑH9Ï‚íL9ß„&ºL‹k01ÿL‰D$ H�5z<èuÿÿL‰îH‰Ç1ÀèøòH‹S8L‹D$ ‹B ‰Æƒæéî÷ÿÿf�H‹ùt9H‹@ƒx…Áúÿÿé³úÿÿ¶�t9E1íƒà<…Cøÿÿé1øÿÿ¹ H�=Ý?ó¦—Á€Ù„É…ºýÿÿ‰Æ‰ÁL‹-­V9ƒæƒÉ ƒþDÁM…ít@A…EHtA…ELtM‹mM…íuë1öH�=�?è=ñÿÿH‹S8I‰ÅL‰k@égýÿÿK�4H)þƒ»ŒuI‹q8‹ ³V9HÓîLÞE…í~D‰é¿HÓçH‰ùH�t7ÿH÷ÙH!ÎH‰r0€‹�é÷ÿÿ€‹�é;÷ÿÿH‹H(H‹SXH�{8èÄÿÿé®÷ÿÿH�¶-¾H�=^.è…âè`ÿÿAWI‰÷1öAVE‰ÎAUI‰ÕATI‰üH‰ÏUD‰ÅSH‰ËHƒìèvðÿÿH…Û•ÃAƒæI‰u?„Ût;¹ H�=¤>L‰îó¦—Á€Ù„Éu ƒåI‰$t„Ûu#HƒÄ[]A\A]A^A_Ã@1öL‰ïèðÿÿëÔ@H�5á:1ÿºè…ÿÿHƒÄ1ö[H‰Ç]1ÀA\A]A^A_éûðff.„óúAWH� >¹ AVAUATI‰üH‰×USHƒìH‰t$ó¦—À„À„̹ L‰æH‰×ó¦—À„À„²L‹-¿T9M…í„Ñ1íL�5½:DL‰ëë H‹[H…ÛtBL‹;H…í„ÛL‰æL‰ÿè˜ÿÿ…ÀuܺL‰ö1ÿèµÿÿL‰â1öH‰Ç1Àè6ðH‹[H…Ûu¾M‹mM…íu¤H…ítb¿è•çÿÿL‰çH‰ÃèªÿÿH‰H‹EH‰CH‰]HƒÄ[]A\A]A^A_úH�5à91ÿèIÿÿ1öH‰Ç1ÀèÍïL‹-îS9M…í…/ÿÿÿºH�5):1ÿ1íèÿÿH‹T$L‰á1öH‰Ç1Àè”ïépÿÿÿ€H‹t$L‰ÿè»ÿÿ…ÀIDíé ÿÿÿóúH‹‡¨Ã@óúAV1ÉA‰ÖAUI‰ýATU‰õH‰þH�=qS9Sè;ÿÿH‰ÃH…À„§L‹`HM…ät?E…ötr�ý~uj1ÿL‰âH�5=S9èx¥ÿÿH…À„žóoM‰åH‹SH‰PH‰H‰ÃL‰kH‰«œHƒÃH‰Ø[]A\A]A^ÃD…Àx…ítãH‹H…ÀtL;`HuH‰Ã‹ƒœ9èuÝëÆE…öu‚1ÛH‰Ø[]A\A]A^ÃDE…ötª1ÿºH�559èàÿÿL‰îH‰Ç1Àècî눺H�591ÿ1Ûè¼ÿÿL‰æH‰Ç1Àè?îéaÿÿÿf.„óúHƒì…ÿ„ H�S9¹=º°H�5x¤ÿÿH�=1R9H‰J+9è•ÿÿ…À„H�fR9¹1Ò1ÿH‰^R9H�?R9¾H‰;R9H�R9H‰R9H‹þ*9HÇH‰@H�Ìn9H‰Ín9H�þn9H‰ÿn9H�Q9HÇ¥n9HÇÚn9HÇßP9H‰àP9èãçÿÿº1öH�=%-H‰VR9èÙýÿÿH� 2K9HÇ¿Q9H‰`n9H‰H8H�­Q9H‰.n9HƒÄÃf„L‹Á)9H‹ Ú)91Ò¾èH�=”R9è/5éºþÿÿf.„1ÿºH�5ª7è-ÿÿH‰Ç1Àè³ìéÁþÿÿff.„UH�-,%SH‰ûHƒìƒ{w‹CHcD…Hè>ÿà@H‹[ƒ{väHƒÄ[]ÀH‹{è·ÿÿÿH‹[ ëÁ�H‹{è§ÿÿÿH‹{ èžÿÿÿH‹[(먄‹�ˆ¿þÿÿƒùwµ¸HÓਠt©H‹{1Ò1öèªüÿÿH…Àt—Hƒx8u�HƒÄ1öH‰Ç[]ë�ATL�%}+¹ U‰õSH‹w0H‰ûL‰çó¦—À„À„å�»„~uYH‹C8H…ÀtiH‹{XH‰@hHÇ@`H‰˜¨H…ÿtèïþÿÿH‹{`H…ÿtèáþÿÿ‹ƒ€ƒøÿtH‹S8‰Bp[]A\Ãf.„H‹s0H‹=um9è0ÿÿH‰C8H…Àu—H‹s0H‹=\m9‰êèå ÿÿH‰C8H…À…xÿÿÿH‹Am9L‹c0º1ÿH�5G6H‹@H‹(ès ÿÿL‰âH‰ÇH‰î1ÀèóêH‹C8é:ÿÿÿf.„1ÿºH�5â5è= ÿÿL‰æH‰Ç1ÀèÀêéöþÿÿff.„óúATU‰õSH�_èL‹g0L9gðt¾îH�=0'èwë€H‹H…ÛtL9cHu"‹ƒœ9èt…Àxä…íuàHƒÃH‰Ø[]A\Ã@1ÛH‰Ø[]A\ÃfDóúAW‰ðA‰÷AV%I‰ÎAUI‰ýATUSHƒìH‰$‰D$ fDH�yk9H‹H‹X H…Û„yH‰ÝE1äH‹u8H…ö„?D‹F M…öt&D‰D$I‹•ðL‰éH‹=äk9AÿÖD‹D$…À„$E1øH‹E A�à@„àH‰ÅH…íu¨M…ä…=D‰øƒàƒø„_D‰øƒà ƒø „'D‰ø%=„D‰ø%@=@„sD‰ø%=„ AöÇ„ôE1äH…Û„Âf�H‹s8H…ö„¯‹n M…ötI‹•ðL‰éH‹=k9AÿÖ…À„·D1ýH‹C ƒå„_H‰ÃH…Ûu·M…ä•ÂM…öHÇ$”ÀE1öЄ¨þÿÿL‰åHƒÄH‰è[]A\A]A^A_Ën M…ötI‹•ðL‰éH‹=§j9AÿÖ…À„,D‰ø1è© @t% �å@ è… H‹C H…À„YI‰ÜH‰ÃH‹s8H…öu¡‹«ˆë½f„H…À„0I‰ÜH‰ÃH‹s8H…ötH‹n M…ötI‹•ðL‰éH‹=j9AÿÖ…À„ÌD1ýH‹C �å@tµH‰ÃH…Û„ÿÿÿH‹s8H…öu¸‹«ˆëÔ„H…À„hI‰ìH‰ÅH‹u8H…ö…ÁýÿÿD‹…ˆéäýÿÿ„H‹m éêýÿÿ€H…À„€I‰ÜH‰ÃH‹s8H…ö…Qþÿÿ‹«ˆéjþÿÿf„H‹C H…À…öþÿÿégþÿÿfDH‹[ éSþÿÿ€H‹[ é=ÿÿÿ€H…Û„¯E1äH‹s8H…ötD‹n M…ötI‹•ðL‰éH‹= i9AÿÖ…ÀtSD1ýH‹C �å@t*H‰ÃH…Û„ñýÿÿH‹s8H…öu¼‹«ˆH‹C D1ý�å@uÖH…À„ªI‰ÜH‰Ãë�f„H‹[ ë¹f.„D‰øƒàƒøtD‰øƒà ƒø …õüÿÿfD1ÒE1äé…ýÿÿfDH…Û„ID‰ùE‰ú1ö1í�ÉAƒâë#�¨u E…Ò…nýÿÿH‰Ý¾H‹[ H…Û„YýÿÿH‹S8‹ƒˆH…Òt‹B ‰Â1Ê÷ÂtÀ…ö…3ýÿÿ�âHDëëÁ@H…Û„oÿÿÿE1äëYf.„‹n M…ötI‹•ðL‰éH‹=Çg9AÿÖ…Àt@D‰ø1è©t�å@t,‹D$ …Àu$H‹C H…À„€I‰ÜH‰ÃH‹s8H…öu¨‹«ˆëÀH‹C H…Àuãé{üÿÿL‰åH‹$H…À„�üÿÿH‰(é…üÿÿ1íH…Û„züÿÿ€H‹S8‹ƒˆH…Òt‹B D1øöÄ HDëH‹[ H…ÛuÛéIüÿÿ1íéBüÿÿH‰Ýé:üÿÿff.„@óúAUATUSHƒìxH‹-KH9dH‹%(H‰D$h1ÀH…턲1ÉL�%�$ë€H‹m0H…í„“H‹U ‹BDÁè©@uâöEHuÜH‹š�H…Ûu#ëÎfD¾H‰ßèëºÿÿ¹H‹[H…Ût­H‹ChH…ÀtH‹=]f9H9¸ðtÞ÷C 0uÕ…Éu¿L‰æ1ÿºèˆÿÿH‹=¹g9¾H‰Â1Àèÿÿ똺H�5ö#1ÿè]ÿÿH‰Ç1ÀèåºH�5ñ#1ÿè@ÿÿºH�5é#1ÿI‰Äè*ÿÿºH�5Ú#1ÿH‰ÅèÿÿºH�5Ë#1ÿH‰ÃèþÿÿHƒìI‰éI‰ØATH‹=#g9H‰Á¾H�¤#1ÀèuÿÿH‹-†G9Y^H…í„ñI‰äL�-—#f„H‹MH‹=Ýf9L‰ê1À¾è6ÿÿL‹E ºd1ÀH� Ÿ"¾L‰çèÇÿÿL‰æH�=R#1Àè&äL‰â‹ HƒÂ��ÿþþþ÷Ñ!È%€€€€té‰ÁÁé©€€DÁH�JHDщÆ@ÆHƒÚL)â‰ÓHƒúwè;ӃÃûuóH‹u(1ÀH�=H!èÁãHƒ}Ht‹UH…Ò…ß‹EL…À…´èÓH‹mH…í…"ÿÿÿ1ÿºH�5Ì-è¿ÿÿH‹=ðe9¾H‰Â1ÀèI ÿÿöd9@„žH‹%G9ƒnE9H‹-Wc9H…Ûtf�H‰ßH‰îè•»ÿÿH‹H…ÛuíH‹že9H‹=d9H�5¸c9è3ÑH‹D$hdH3%(…|HƒÄx[]A\A]Ã@H�="1Àèââ‹}Lèj™ÿÿé1ÿÿÿDè+Ò‹}HèS™ÿÿéÿÿÿL‹O9H‹ h91Ò¾èH�=ÂF9è½)H‹=^c91ÒH�5�Ùÿÿèx ÿÿé'ÿÿÿèþÿÿff.„óúAUI‰ÍI‰ÐATI‰üUSH‰óHƒì‹n ‰ïè,²ÿÿI‹u0¹ H�=¢ ó¦—€څÀu@¾Ò…Òt9M…Àt"H‹ c9H‰ÚL‰ÆH�=°b9H‹@ÿ�ø…ÀtHƒ{ht+HƒÄ[]A\A]ÃHƒ{huîH�²>9H‰ChHƒÄ[]A\A]Éè%=„^¶Wb9‰ê�åûýñÿ€æýƒà<DêA‹…Œƒø„T‰êƒâþƒøDêI‹M8H…Ʉĉè¶Q$ƒÈ÷#A ‰A ö„´‰ê‰Æƒâ÷1Ö�怄/%ÿÿþ�å÷ÿþ è‰A �å…SI‹E8‹Sp;Ppv‰Pp‹E9H‰Ch…Òu0H‹�H‰˜HǃH‰“H…Ò„MH‰š¿è,×ÿÿÇ@HÇI‹T$H‰I‰D$H‰XHƒÄ[]A\A]Ãf�ƒÊ èL�Da9H‰ÞˆQ$H‹‡a9‰A H‹»ðH‹Bÿ�H÷Å€„8ÿÿÿ‹“ÄI‹E8‰�Äé#ÿÿÿf�‰è�åûýóÿ%ûýñÿöí`9 Eèé þÿÿ@H‹)a9H‹@ƒxt7ƒåü�Íé˜þÿÿ�÷Å€t‹³Ä9±Ä…·þÿÿ‰Õé»þÿÿ€�åýþÿÿ�Íé^þÿÿ€H‹»ðè$ÿÿƒø-…˜þÿÿAÇEx€é‹þÿÿfD‰îL‰ïèŽòÿÿI‹M8é)þÿÿDH‰˜é®þÿÿ@óúAWAVAUI‰ýH‰×ATM‰ÄUH‰õL‰ÎSHƒìXH‰T$H‰L$ L‰L$(dH‹%(H‰D$H1ÀèûÐÿÿ…Àt'H‹D$HdH3%(…FHƒÄX[]A\A]A^A_Ã@A‹MI�]0…ÉuH…í„‹U…Ò„M‹}0M…ÿ…ÓéþfDH‹€ØH…À„ÕL‹0A¸I‹GH‹ˆðH‹�ØH…À„äH‹AºH‰ÎL‰÷D‰T$ D‰D$H‰L$è!þþÿ…Àe…åD‹D$D‹T$ D‰ÀD Ðt5E…À„lE…ÒM‹t$H‹L$…YH‰ÎL‰÷èÞýþÿ…À"…¢@H…ít‹}…ÿt ƒÿuo€M‹?M…ÿt0AƒuñA‹E…ÀtÑI‹D$ H…À…ÿÿÿM‹t$E1Àé'ÿÿÿfDH‹L$(H‹T$ H‰ßH‹t$èiûÿÿé�þÿÿ@H‹ E1ÒéÿÿÿDI‹OH‹t$L�ApH�VpèJÑÿÿ…À‰zÿÿÿH‹L$(H‹T$ H�|$0HÇD$0H‹t$H‰|$8è ûÿÿH‹D$0H…À„&þÿÿHƒ8t¾: H�=ÏèÝI‹E0L9øt=H�-ºë@H‹H‹L9øt%H…Àuð¾? H‰ïèãÜH‹H‹L9øuã„H‹D$0L‰8H‰é¹ýÿÿI‹GH‹€ðH‹é”þÿÿèhýþÿ„ATI‰ÔUH‰ýSH‰óH‹vH…ötèåÿÿÿH‹3H�}0L‰á1ÒèDúÿÿH‹sH…öt L‰âH‰ïèÀÿÿÿH‰ß[]A\é4úþÿ@AWAVAUATUSHƒìH‹-Ë>9H…ítoL�-�L�%899„H‹E H‹˜�H…Ûuë>fDH‹[H…Ût/Hƒ{huðöEHtBH‹E H‰ßH�5Ä\9H‹@ÿ�ÈH‹[H…ÛuÒ�H‹m0H…íu§HƒÄ[]A\A]A^A_Ä‹{ èÈ«ÿÿ…Àt L‰chë–fDL‹3¹L‰ïL‰öó¦—À„Àu?¶X\9ƒà<„ÍH‹ ž?9H…É„ÛH�y1ÒH‰ÞèùÿÿéBÿÿÿf.„‹¶]9ƒø„êƒø„4‹º]9…À„º¹~‰ÊL‰öH‰ß‰L$èäËL$H…ÀI‰Ç„/ƒ=i]9…ßþÿÿI‹O01ÿL‹»ðºH�5®%H‰L$èDûþÿH‹L$L‰úH‰ÞH‰Ç1Àè¿Ùé¢þÿÿf.„‹z\9…Ò„ŠþÿÿH‹ Ã>9H…É…%ÿÿÿº1öH�=ÒHèêÿÿH‰ÁH‰�>9éÿÿÿ1öH‰ßèFÌÿÿ‰Á…À…2ÿÿÿé2ÿÿÿ1öºH�=ßèäéÿÿHƒxXH‰Á…Éþÿÿ¶ÿZ9ƒà<t öC …±þÿÿ1ÿH‰L$è¶H‹L$H‰AXé—þÿÿL‹»ð1ÿºH�5‡$èZúþÿH‰ÞH‰ÇL‰ú1ÀèÚØé�þÿÿº‰ÎL‰÷èféÿÿHƒxXI‰ÇtI�L‰ù1ÒH‰Þèk÷ÿÿé¢þÿÿ¶oZ9ƒà<töC uÖ1ÿ苵I‰GXëÉDóú€?„œAVL�5ÏAUATUH‰ýSë\€¿I‰Ýè›ûþÿI)íI‰ÄH‹^<9I�}I‰D$è€ûþÿL‰êH‰îH‰ÇI‰$èþþÿ€;L‰%4<9BÆ(t-€{H�kt#L‰öH‰ïèØÿþÿH‰ÃH…Àu˜H‰ïèˆùþÿH�\ë‰�[]A\A]A^ÃÃfDóúH‹-Y9H…ÀtÀH‹Á<9H‹‚[9H…ÀtH9ÐuàSH‹;9H…Ûu ëa�H‹[0H…ÛtGƒ{uñöCItëH‰ßè#çH‹{ H…ÿtÚ¾è€ÿÿ…ÀtÌH‹C H‹@H‹H…Àt¼[Ãf.„H‹[9[ÀH‰Ð[Ãff.„óú‹Gƒø „pƒø …_USH‰ûHƒìHƒ=Y9t¾‘ H�=ŒèÓ×H‹[è ÿÿÿ‹=ØY9H‰ÆH‰2X9…ÿ…òH‰ßèJÿþÿH‰ÓX9H…À„’¾H‰ÇÇì99èCüþÿ…À„“H‹=¤X9H‹E[9‹57[9H‹Gÿ��…À„EH‹=~X9H‹Gÿ�¸H‰EX9H…À„‹5ª9H‹=WX9è’þþÿè=¿‹ wY9H‹5@X9…É…ˆ‹FDÁè%ÿÿ%ÿþ‰Â‰Á‹FDÁâ%þ ЉFD‹nY9…Ò„š€É€‰Ê%þÁâ ЉFD€=¡W9ˆ‡�áÿû%þÁá ȉFDHƒÄ[]ÃDÀH‹GH‰¥:9Ã@‹VD¶ VW9‰ÐƒáÁè%ÿÿ€ù„cÿÿÿ€Ì‰Ç‰Á‰ÐÁç%þ ø‰FD‹ÔX9…Ò…fÿÿÿ�áÿé^ÿÿÿ�€Í%þ�áÿÿÁá ȉFDHƒÄ[]Ã1ÿºH�5Ò!è}öþÿH‰ÞH‰Ç1ÀèÕé–þÿÿ1ÿºH�5‚!èUöþÿH‰ÞH‰Ç1ÀèØÔéHþÿÿH�=9ŒÿÿèDüþÿH…Àto1Òƒ=ºW9•Â9P t^H‹ˆXH…Ét 9Q „éH‰ÆH�=ïºÿÿè üþÿH‹›89H…ÀtH‹0H‰5ÜU9é­ýÿÿ1ÿºH�5� èÌõþÿH‰Ç1ÀèRÔf�H‹5±U9é‚ýÿÿ@1ÿºH�5è�õþÿH‰Ç1Àè#ÔéÚýÿÿfDèC÷þÿƒøt.ºH�5r 1ÿèkõþÿH‰ÞH‰Ç1ÀèîÓH‹V9é8ýÿÿf�H‹-AU91ÿºH�53è6õþÿH‰ÇH‰î1Àè¹Óë©€H‹1H‰5U9éßüÿÿ�óúU1ÀH‰ý¿SHƒì 5žT9•À‰•T9èøÊÿÿH‰ïH‰ÃH‹Û69H‰H‰Ñ69èüöþÿHƒ=tU9H‰CtHƒÄH‰Ç[]é�ÿÿHƒÄ[]Ãf„óúU¾H‰ýSHƒìèyÿÿÿ¿è�ÊÿÿH‰ïH‰ÃH‹ 79H‰Cè™þþÿH‰ú69H‰HƒÄ[]Äóú‹ 89…ÉuNH‹;T9H…Àt8fD‹�„…ÒxH‹P8H…ÒtHÇ‚HÇ‚H‹@ H…ÀuÎÇ´79ÃóúH‹Å29ATL‹%V9UH‰ V9SH‰û…öxDH…ÿt.�nÿƒýÿuë$DƒíƒýÿtH‹5yS9H‰ßèÁ«ÿÿH‹H…Ûuá[]L‰%ÈU9A\ÃDH‹-QS9H…ÿtã@H‰ßH‰îè�«ÿÿH‹H…Ûuí[]L‰%”U9A\Ãf„óú¸E…ÀulH…ÒteH…Ét`‹5VU9…öt ‹r 3q ƒæuMUH‰Ð1ö1ÒSH‰ËHƒìH‹8è;âÿÿH‹;1Ò1öH‰Åè,âÿÿH…ít'H…Àt"H‹@@H9E@•ÀHƒÄ¶À[]ÃD1ÀÃDHƒÄ1À[]Àóúƒ•49A‰ñI‰ø1ÉH‹5vR91ÒH�=-69éˆÑÿÿ„óúHƒìH‹5QR91É1ÒdH‹%(H‰D$1À‰=U9L�D$H‹=ë59ƒ449ÇD$HÇÑ49Ç·49è‰ÿÿH‹D$dH3%(uHƒÄÃèXòþÿ„óúH‹=•49H…ÿ„”‹ v49…É…†H‹5—R9H‹G8H…Àuéif„H‹@H…À„S‹P ‰Ñ�ᄃùuãH‹HH…É„H9AuÐ�âƒúué�‹P �âƒú„^H‹@H…ÀuåH�þ-9ÃDH‹é39H…Àué€H‹H…À„ô‹P…ÒuíH‹5æQ9I‰ðö€� t*éíDH;Qt;H‹@ H…À„Äö€� …ÈH‹P8H…ÒtÝöB!€u×H‹JH…ÉuÈH;–˜uÅH…ÿ…¿H‹@8f�H…À„Rÿÿÿ‹P �âƒúuëz€‹P �âƒú„†H‹@H…ÀuåéÿÿÿH9†˜„ãþÿÿH‹@H…À…³þÿÿfDH‹†�H…À„ëþÿÿ‹P é¸þÿÿ„L‹ùP9I‹€˜émÿÿÿÃ@H…ÿ…AþÿÿH‹@8éVÿÿÿfDÀÃö€� …#þÿÿH‹@8é1ÿÿÿÃóúAWH�GLAVAUL�oHATUSHƒì¶…ÒLEè„ÛtMI‰ÿH‰õL�%A‰Öf„�Cßÿà„AƒMHƒÅ¶]„ÛuÌHƒÄ[]A\A]A^A_ÃDAƒM ëÙ�AƒMëÑf„AƒMëÁf„AƒMë±f„E…öu;M�oLA¾ë—€1ÿºH�5’èïþÿ¾óH‰Ç‰ò1Àè–Íéiÿÿÿ�M�oHE1öé\ÿÿÿ@óúUSHƒìH‹ŸN9H…ÛtH‰ý€H‰ßÿÕH‹[8H…ÛuòHƒÄ[]Ãff.„óúUSHƒìH‹¯09H…ÛtH‰ý€H‰ßÿÕH‹[0H…ÛuòHƒÄ[]Ãff.„óúH‹}09SH‰ûH‰8H�G0H‹ H‰g09Hƒ¿øtH�=r ¾ÿè´ÍH‹{ H9=ÙN9tGH‹èN9‹5 9H‰8H�‡øH‰ŸH‰ÊN9èíôþÿH‹{ H‰Ú[H�5þœÿÿéÙ÷þÿf„H�= ¾èOÍH‹{ ë¢f„óúAWAVAUATUSHƒì8dH‹%(H‰D$(1ÀöGIt0A¼H‹L$(dH3 %(D‰à…™HƒÄ8[]A\A]A^A_Ã@H‰ûH‰õè�ÛöCIu¿H‹{ ¾èùöþÿ…À„¡H‰ß艶…Àu�L‹k A¶EDƒà<„<…&H‹-Â/9H…턊L�5P ë H‹mH…í„CH‹}èíþÿI‹}I‰ÄèðþÿL‹E¹L‰÷I‰ÇL‰Æó¦—À„Àt9McäL‰þL‰ÇL‰âè îþÿ…Àu¬C¶'„Àt<.uŸC€|'au—C€|'u�€A€MG L‹k öCI„‚H�D$ A¼1íH‰D$ë\�€=¾L9ˆÃH‹ÌL9H‰l$ H‰îH�2øH‹L$H�=‘L9ÿ…À„JH‹|$ H�5{L9H‹Gÿ�À…À„IL‹k H‰îL‰ïèºõþÿH‰ÅH…À„&¾H‰Çè‘õþÿ…À…yÿÿÿL‹c ºH�5‘1ÿèÂëþÿH‰êL‰æH‰Ç1ÀE1äè?ÊéJÿÿÿf.„H‹{ H�T$¾è ôþÿ…À…Dþÿÿè@íþÿH‰ßA‰Äè•´…À…ÕýÿÿL‹k Aƒü „õAƒü …ÂH…턹L‰ïèdóþÿH‹{HÇC D¶5K9L‹% K9L‹- K9è½ÚH‹þ9AÀîH�›.9AƒæH9Ѓ>H�PI�äÿ÷ÿÿH‰Ô9H‹Å9H‰·»J9·SHH‰-°9Ç.09f%þÇ@J9f�âà Ðf‰ŠJ9èÿÿ¶J9H�×-9Çõ/9L‰-nJ9ÀèL ðƒàHÁà L àH‰OJ9H‹P9H9ІšH�PøH‹=L*9H‹@øH‰19H‰"9è êþÿHÇ**9€KIé‘üÿÿf„öCI„v‹˜L9 ‚L9tH‰ÞH�=H 1Àè·ÇL‹k I‹EH�5HJ9L‰ïÿ�À…À„×€KIA¼é6üÿÿ„ºH�5¬1ÿE1äèªéþÿH‰îH‰Ç1Àè-Èé�ýÿÿ„H‹‰,9L‹uXH‹•ØH…À„lýÿÿƒxuPH‹H‰$„L‹hL‹8H‹<$I‹…ØH‹0èíþÿ…ÀuM;uX„åüÿÿ‚)ýÿÿM…ÿ„ ýÿÿAƒL‰øt¿H�¸¾‡"H�=@èg¸€H‹k ºH�5è1ÿèéèþÿH‰ÇH‰î1ÀèlÇD¶cIAÐìAƒäé9ûÿÿ¶CIC�$ƒàý ЈCIé!ûÿÿL‹k é(üÿÿ€H‰ßè(úÿÿé}þÿÿºH�5/1ÿè€èþÿL‰îH‰Ç1ÀèÇL‹k éýÿÿºH�5q1ÿèWèþÿL‰îL�-äêH‰Ç1ÀèÓÆL‹c º1ÿH�5aè,èþÿL‰æH‰Ç1Àè¯ÆL‹d$I‹4$H…öt�L‰ï1ÀIƒÄè’ÆI‹4$H…öuéH�=81Àè{ÆL‹k é–üÿÿèèþÿH�ž¾B H�=þè%·èð¼ÿÿè˼ÿÿff.„UH‰ýSHƒìH‹`G9H…Ût!H‹{H…ÿt H‰îè׿þÿ…Àt"H‹[8H…ÛuâH‹ÛI91ɾH‰ïè„ÀÿÿH‰Ã¶CIƒà<tHƒÄH‰Ø[]Ã@1öH‰ßè~ùÿÿ…À¸HDØHƒÄH‰Ø[]Ãf„AWAVAUI‰ÕATI‰ôUH‰ýSHƒìL‹wM…ö„ܾ5`G9@„ötpL‰÷è˜çþÿI‰ÇH…Àt`H‹é(9H…Ûu ë·ÿÿUH‰õSH‰ûë@ƒøt;H‹H…Ût%‹Cƒø tKƒøuæH‹=E9H‰îè·ÿÿÿö…�uÓ[]A\Ãf„H‰êL‰æH‰ßè¢ýÿÿö…�u®[]A\Ã@H‹{H‰îètÿÿÿö…�u�[]A\ÃÃDH…ÿ„‡AWL�=&ýAVA¾AUL�-[ATI‰ôUH‰ÕSH‰ûHƒìƒ{wV‹CIc‡Lø>ÿàf„H‹{è'Öÿÿ‹…Œƒø„˜1öƒø@•Æ�´vH‹E8H…À„a p „H‹H…ÛuœHƒÄ[]A\A]A^A_Ãf„H‹=ùC9H‰êL‰æè>ÿÿÿH‹H…Û…fÿÿÿëÈL‹cH‹H…Û…Tÿÿÿë¶fDH‹{H‰êL‰æè ÿÿÿH‹H…Û…1ÿÿÿë“H‹CPH…Àt ƒx„}H‰êH�5›ãÿÿH‰ßèCüÿÿHƒ='9…UÿÿÿH‹C H…À„Hÿÿÿ„H‹pH…öt¹L‰ïó¦—€ڄÒ„»H‹H…Àu×éÿÿÿf�H‹C H…Àt ‹@…À…üþÿÿH‹{º1öèÒÿÿH‹SHƒx8H‰PX…Ùþÿÿ1öH‰ÇèoÕÿÿéÊþÿÿf.„H…í„·þÿÿHƒ}8…¬þÿÿ1öH‰ïèBÕÿÿH‹H…Û…:þÿÿé™þÿÿ�‹ƒ„…À„Ò-|ƒø‡tþÿÿ€‹�H‹{H‰Þè1ýÿÿ¶ƒ�Àèƒà�»„|”Â8Є�ǃ„ÿÿÿÿé0þÿÿH…ít Hƒ}8„­H‹{èÔÿÿH‹H…Û…¯ýÿÿéþÿÿfDÀ‹S…Ò…xþÿÿH�5¶ÿÿH‰êH‰ßè»úÿÿH‹spH…ö„kþÿÿH‰êH‰ßè£äÿÿHÇCpéSþÿÿfDH‹{H‰ÚL‰æèýÿÿH‹H…Û…9ýÿÿé˜ýÿÿH‹9B9¾H‹@ƒxADöé[ýÿÿ1öH‰ïè ÔÿÿéDÿÿÿH‰-%9éXýÿÿ„‹…À…–ATUSH‰ûH…ÿtKH;=sD9tBH‰õL�%‘ÿÿ‹CƒøtWv=ƒø t<ƒøuH‹=,A9H‰îè´ÿÿÿ@H‹H…Ût H91D9uÈ[]A\Ãf.„…ÀuÜH‹{H‰îè€ÿÿÿëÎfDH‰êL‰æH‰ßèšùÿÿ븄Ãff.„@AWAVAUATUSHƒì8dH‹%(H‰D$(1ÀH…ÿtUH�D$A‰öA‰õI‰ÿH‰D$‰õAƒæAƒÍH�AùAƒw"A‹GHcƒHØ>ÿà@I‹ƒtèáœ�M‹?M…ÿuÏö@9…ûH‹D$(dH3%(…ÌHƒÄ8[]A\A]A^A_ÄH‹= @9‰îèBÿÿÿM‹?M…ÿu�ë°„H‹Q@9L‹`0I‹D‰îèÿÿÿH‹:@9H‹@0L9à„uÿÿÿI‰ÄëÛI‹GM‹?H‰2#9M…ÿ…0ÿÿÿé\ÿÿÿ@E…öu!M‹gM…ätH�5�ýL‰çèÓåþÿH…À„êI‹0‰îè¯þÿÿM‹?M…ÿ…êþÿÿéÿÿÿfDA¶GI¨„»H‹Ä"9I‰W@…ítE…ö„ Hƒ=«!9„ýDH‹D$L‰ÿL‹%ù>9HÇD$H‰ÆH‰D$èñÿÿ…Àu DZ@9Hƒ|$tUL9%Æ>9„0ºM‹gH�5À 1ÿè¡ÞþÿH‰ÇL‰æ1Àè$½H‹mú8H‹t$H‹PH‰2H‹T$H‰P„L9= !9…3þÿÿHÇø 9M‹?M…ÿ…óýÿÿéþÿÿ€I‹‰îè•ýÿÿM‹?M…ÿ…Ðýÿÿéüýÿÿ@H�=´.1À袼éòýÿÿD¨„ÿÿÿI‹w H…ö„óþÿÿ¶VDƒâ€ú„Ÿ€ú…ÚþÿÿöFE„ÐþÿÿA€H‰ÅþÿÿH‹Fƒx…·þÿÿH‹†ö€Œ @„£þÿÿA¶GIƒàíƒÈAˆGIé�þÿÿ€H‹D$I‹H‰H‹D$I‰éÿÿÿ¶Ô=9„Àt¾ðL‰çè ÞþÿH…À…÷ýÿÿL‰çè™õÿÿéêýÿÿ¨t�é;þÿÿèvÝþÿfDóú‹9…Àt…öuH‰=�ù8Çù9Ãff.„�óúAWI‰÷AVA‰ÖºAUM‰ÅATI‰ÌUL‰ÍSHƒì‹t$@èÌÿÿHƒxXH‰ÃH‰R9„\1ÀAƒþH�? 9D‰³Œ”ÀÇCxH�KÁà ‰ƒˆH‹rø8H9Ѓ;H�P�|$H€H‰Vø8H‹Gø8H‰”ÀÁàH‰ 7ø8‰Â¶ƒ�ƒà¿ Јƒ�¨@t M…ä…–H��û¾ÿÿÿÿL‰ïèb …ÀˆÊ1Ò¹ë�ƒÂɃú „’9Èwî‰S|¾ÿÿÿÿL‰çH�Aûè' …Àˆˆ1Ò¹ëfDƒÂɃú tN9Èwò‰“€H‰ØH‰k`HƒÄ[]A\A]A^A_ÃfD1ÿºH�5êè�Ûþÿ1öH‰Ç1ÀèºéFÿÿÿ@1Òë²@1Òékÿÿÿf„L‰xXé›þÿÿºÿÿÿÿ뎺ÿÿÿÿéHÿÿÿèQ°ÿÿ�óúS¿H‹÷8è:±ÿÿÇ@ HÇH‹SH‰H‹†÷8H‰CH‰P[Ã@óúH‹­9H…ÀtH‹P HÇ@@H‰P8H‹@H…ÀuçH‹Ð:9H…Àt€ �üH‹@ H…ÀuðH‹a;9H‹€�H…ÀtDH‹P8HÇ@8H‰P@H‹@H…ÀuçÃfDóúHƒìƒ==9t"Ç=91ö1ÿÇO=9è’çÿÿèMÿÿÿH‹F:9H…ÀtZD¶œ:9L‹â:9AƒâfD‹�„…Òx.H‹P8H…Òt%Hƒz@u‹J ÷Á uH‹rH…ötH9Vt@H‹@ H…Àu¿HƒÄÃf�I9�˜uçH‹ºH…ÿuC¶¸�@öÇu ƒÏ@ˆ¸�€Í€‰J H‹RH…Òt]H‰rH…ötDH‰VAƒ¨¨ëžfDD‹O A÷Á€uA�áu‚E„Ò…yÿÿÿH‹¿H…ÿuÕë�I‰�˜ë·€I‰°�ëžff.„@óúAVAUATU‰õSH‰ûǵ;9Ç<9èFæÿÿƒ=÷;9tÇë;9[]A\A]A^Ãf.„¶<99L‹-Ò;9H‹ë;9ƒà tH‹ Ï;9H…É…¦H�rÿL‰éH‹=À;9I‰ðH÷ÙI!øH!ñtJM…ÀtEH‰ÖI1ýH÷ÞI…õt7LÁH9Êr/Çm;9èpýÿÿ‰îH‰ßè¦åÿÿ¶Â89ƒà ëf.„Ç>;9„À„KÿÿÿH‹G;9H…À„;ÿÿÿH‹';9H‰P99H‰A99é!ÿÿÿ@H‹¹89L�d ÿH÷ÚI!ÔH‹ÿ:9H‹€˜M‰æI)ÖH…Àt^H)Ñ‹=ü9A¸H‰Î‹P öÂt8H‹H(L9ér/H9ñs*�â�út H‹P8‰ùHÓêI)Ö‹HpL‰ÂHÓâH÷ÚI!Ö�H‹@H…Àu·Çu:9M9õw8L‰5q:9èlüÿÿ‰îH‰ßè¢äÿÿL9%k:9†ïþÿÿL‰-N:9éÔþÿÿf„¾,H�=hò诶ëµff.„f�óúATUSHƒìdH‹%(H‰D$1Àƒ=u79v+…ÿ…šH‹D$dH3%(…¦HƒÄ[]A\ÃfD‹Â79H�\$dz79A¼ÿÿÿÿ�hÿ…ÀtUfDD‰àë ‹–79ƒÀ¿‰ˆ79è÷ãÿÿè‚ûÿÿ1öH‰ßÇD$è@ýÿÿ‹D$…ÀuȃíƒV79ƒýÿu±¿è¿ãÿÿèJûÿÿ¾1ÿèýÿÿéFÿÿÿètÖþÿ@óúH…ÿté¯ÿÿf�Ãff.„@óúAWAVA‰ÖAUATI‰üUSH‰óHƒì(H…öt1Éë@H‰ÃH‹H‰ H‰ÙH…ÀuïL‹-°ñ8M…ä„I‹$H…Àt'¹H�=&ôH‰Æó¦—€ڄÒ…7IÇ$¿€è�«ÿÿH‰ÅHÇÇ@I‹EH‰(I‹$I‰mH‰E1ÀAƒ|$”À‰EI‹D$H‰ExI‹D$H‰E@H�E0H‰] H‰E8H�† ÿÿD‰u(HÇE0H‰EHHÇEPHÇEXHÇE`HÇEhHÇEpH…Û„RH‹CH‰D$H…ÀtDÇD$ I‰ÇI‰ÞA¼L�-îò@L‰îL‰ÿè-ÛþÿH…Àt@H�5ôL‰ÿè ×þÿHƒøwHƒÄ([]A\A]A^A_Ã@A€<*uæA€|uÞƒD$ @M‹6M…öt M‹~AƒÄM…ÿu›HƒÄ([]A\A]A^A_Ã@Aƒü§H‰ØL‹8L‰|$M…ÿ„õH‹@H�5MòH‰ÇI‰ÆH‰$è|ÖþÿL�hA€<LEè€M‹wH�5òL‰÷èUÖþÿH‹<$L‰öA€<HƒÐI9ÅIFÅH‰ÂèvÖþÿ…À„+ÿÿÿM‹?M…ÿu¾H‹D$éuÿÿÿ@¿€è¾©ÿÿH‰ÅHÇÇ@I‹EH‰(I‰mHÇEÇEHÇExHÇE@é%þÿÿfDH�5ƒñH‰ÇèÉÙþÿH…À…¹ýÿÿÇ69éªýÿÿ‹D$ AÁäDà=„×b=„º=…pþÿÿH�Ü�ÿÿH‰EHH‹|$I‰ÜE1íL�5ñë@M‹$$M…ät?I‹|$L‰öèJÙþÿH…ÀuåIcÅAƒÅL‰dÅPë×=t|=…þÿÿH�¾žÿÿH‰EHë L�%Ãðë€H‹CH‰D$H‹|$L‰æèòØþÿH…Àt IcÅAƒÅH‰\ÅPH‹H…ÛuÑéÁýÿÿH� £ÿÿH‰EHéLÿÿÿH�Í¡ÿÿH‰EHé<ÿÿÿH�= ÿÿH‰EHé,ÿÿÿ@óúAUI‰ý¿(ATI‰ôUH‰ÕSHƒìH‹íí8è¨ÿÿÇ@HÇH‹SH‰H‰CL‰hL‰`H‰h HƒÄ[]A\A]ÄóúHƒ=Ì9t…öu ‹d19…Àu H‰=µ9‰5S19ÃfDóúH‰=…í8Ã@óúUH‰ý¿SHƒìH‹Wí8è‚§ÿÿÇ@ HÇH‹SH‰H‰CH‰hHƒÄ[]Ãff.„óúëf.„HƒÇ€?u÷ÃfDóúUH‰ý¿(SHƒìH‹çì8è§ÿÿÇ@HÇH‹SH‰H‰CH‰hHƒÄ[]Ãff.„óúATI‰ôU‰ý¿8SH‹—ì8è¦ÿÿÇ@HÇH‹SH‰H‰CL‰`‰h[]A\Ãff.„f�óúAWA‰ÿ¿PAVI‰öAUI‰ÕATI‰ÌUL‰ÅSHƒìH‹3ì8è^¦ÿÿÇ@ HÇH‹SH‰H‰CD‰xL‰pL‰h L‰`(H‰h0HÇ@8HÇ@@HÇ@HHƒÄ[]A\A]A^A_Ãf.„óúUH‰ý¿SHƒìH‹·ë8èâ¥ÿÿÇ@HÇH‹SH‰H‰CH‰hHƒÄ[]Ãff.„óúU‰ý¿SHƒìH‹hë8è“¥ÿÿ‰hHÇH‹SH‰H‰CHƒÄ[]ÀóúH‹ý9SH‰ûHƒxt$ºH�5©î1ÿè7ÏþÿH‰Ç1Àè½­H‹Î9H‰XH‰X€HI[Äóú‰=î9ÃDóúUH‰ýE1ÉH‰ðSH‰ÓH‰ÂHƒìH‹=p9HƒXH�wHA•ÁE1ÀHƒ`A•ÀHƒÇ@èž»ÿÿH‹G9H�ð9H‰hPH‰XpH‹‰ê8H9ÐvH�PøH‹@øH‰uê8H‰fê8HƒÄ[]Ã誣ÿÿf.„óúAWI‰ÿAVI‰öL‰ÎAUATM‰ÄUSH‰ËHƒì8dH‹%(H‰D$(1ÀH‹l$pH…ÉtFH‹ ê8H�D$H�=²9HÇD$H‰D$H9ùƒH�yH‰=èé8H‹=Ùé8H‰9H‰Ïé8¶ H.9ƒá€ù„ÜAöG „Ñj1ÉL‰÷E1ÉRE1À1ÒL‹-Â-9èµðÿÿH…íY^I‰ÆH�@L‰þHDèL‰ñ1ÒH‰ïèåÊÿÿH…Û„ÌAöG „¡H‹C@H�5CùH…ÀtH‹0H‹KHH…ÉtH‹ H‹Sp1ÿèWþÿÿH‹8é8H�‰9H9ІAH�PøH‹@øH‰é8H‰ é8I‹F8H…À„ôI‹T$H…Ò„¿H‹H…Ò„[H9ÐtEH;Bt?H‹HH‹pH…É„�H‰qH…ö„jH‰NH‹JH‰PH‰HH‰BH…É„5H‰AHƒÀHƒ|$I‰D$tI‹D$ L‹L$H…À„åH‹I‹\$(I‰H‹T$H‰H‹[è8H‹|$H‹PH9:„©I‹EH�SàM‰L$ IÇEH‰P(H‹H‰P H…ÒtH‰B(H‰HƒÀ Iƒ}I‰D$(„YH‹\$(dH3%(L‰ð…HƒÄ8[]A\A]A^A_Ã1ÿ‰T$ è…‡‹T$ H‰Æéþÿÿf„1É1ÒH�5¢÷1ÿèÎüÿÿérþÿÿf„1É1ÒH�5‚÷1ÿè®üÿÿëƒ@H‹HH‹pH…É„WH‰qH‹<,9H…ö„sH‰NH‹Š˜HÇ@H…É„?H‰HH‰AH‰‚˜éšþÿÿH9I+9tWH‹S8H…ÒtH9ÐtIHƒÂI‰T$éþÿÿH‹K(H…Ét/€‹‘„…ÒxH‹Q8H…Òt Hƒºðu½H‹I(H…ÉuÚf�H‹™+9H�Â�I‰T$éÉýÿÿ„L‰-Ñ*9é›þÿÿ@L‰HL‹L$éIþÿÿf�H‰ßHƒÃ è^ÿÿH‹I‰H‹T$H‰I‰\$(é þÿÿ@H‹1+9H‰‚�é¼ýÿÿDH‹5+9H‰Ž˜é‡ýÿÿDH‹=+9H‰·�ébýÿÿDH‹é*9H‰²�é¡þÿÿDHÇ@H‰‚�éµþÿÿ@H‰Š˜é…þÿÿè?Êþÿè*ŸÿÿèŸÿÿDóúH‹GH‰0H‰WÃóúHƒ=Ì)9t …ÉtÃD‹V+9ƒøtƒøu H…ÒtH‰¤)9ÃH…öHEþH‰úëé@H‰úëàóúATI‰ü¿ U‰õSH‹Wå8肟ÿÿHÇÇ@H‹SH‰H‰CL‰`‰hH‹39[]H‰29A\Ãff.„@óúS¿ H‹ÿä8è*ŸÿÿH� £ 9Ç@ HÇH‹SH‰H�PH‰CHÇ@H‰PH‹Ëä8H9ÈsH�HH‰ »ä8H‹ ¬ä8H‰[H‰¡ä8ÃèË�ÿÿff.„óúH‹�ä8H�Þ 9H9ÐvH�PøH‹@øH‰rä8H‰cä8ÃPè¬�ÿÿff.„�óúAWI‰ÿ¿0AVM‰ÆAUM‰ÍATA‰ÔUS‰ËHƒìH‰t$èQžÿÿH‹|$H�¾ç1öHÇH‰ÅL‰xè`ŒD‰eH˜‰]H‰EL‰u L‰m(Hƒøt-Hƒ=í'9…ÍH�à'9H‰+HƒÄ[]A\A]A^A_ÃfDA ÜtÎH‹¼'9H…ÀtÐHƒxH�«'9tf„H‹H‹H…ÀtµHƒxuîHƒxuçºH�5#ô1ÿè„Çþÿ1öH‰Ç1Àè¦H‹H‹H…Ût;H‹H…À„qÿÿÿH‰ÃH‹H…À„bÿÿÿHƒ8H‰Ã„UÿÿÿH‹H‰ÃH‹H…ÀuåéBÿÿÿH‰Ãé:ÿÿÿH�'9ëÜ�óúSH‰û¿èîÈþÿH‹§&9€ a'9H‰XH‰Ç@[H‰Š&9Ãf„óúSH‰û¿è®ÈþÿH‹g&9€ !'9H‰XH‰Ç@[H‰J&9Ãf„óúUH‰ýSH‰óHƒìHƒ=è9t&¾ðH�=®áèõ¥H‰-Î9H‰¿9HƒÄ[]ÃHƒ=°9uÐHƒ=ž9uÆëÕf.„óúSL‹Œ9E1É1ÉjH‹5†9ºH‰ûjèéÿÿHƒ=W9XZt[¿èáÇþÿH‹Š9H‰Þ¿AH‰PH‹/9H‰(9H‰èX„H‹5!9H…öt H‰Â¿E诂H‰9[ÃfDH‰Þ¿Cè#„H‰ü9ë�f.„óúAUH‰ò1ÉH�5KñATUSHƒìH‹ÿ9H‹h0èföÿÿH‰ïèŽÅþÿH�xè5ÇþÿH‰Ã¶E„À„H‰êH‰ÙH�=Ô8f„¶ðöwŒu<_uˆHƒÁHƒÂ¶„ÀuâÆH‰ßè7ÅþÿH�xèÞÆþÿI‰Ø¾H� ŒäI‰ÄHÇÂÿÿÿÿH‰Ç1Àè+ÐþÿH‰î¿DèNƒ1ÒL‰çH‰Æè1„H‰ÇèÉôÿÿH‰ßèáÄþÿH�x èˆÆþÿI‰Ø¾H� FäHÇÂÿÿÿÿI‰ÄH‰Ç1ÀèÕÏþÿH‰î¿Aèø‚H‰î¿DI‰Åèè‚L‰ê¿+H‰ÆèH�L‰ç1ÒH‰Æè»ƒH‰ÇèSôÿÿHƒÄH‰ß[]A\A]é‘Áþÿ�H‰Ùéÿÿÿ„óúAWAVAUA‰õATM‰ÄE1ÀUH‰ÕH‰ÊL‰ÉSHƒì8H‰|$dH‹4%(H‰t$(1öH…ÿH�t$ H�|$A•ÀE1Éè®°ÿÿH‹9H…À„H‹@H‹9¿+H‹59€ˆ�è‹€H‹Ü9H�=ºH‰ÆH‹Z1ÒèO‚H‰ChH‹¼9H…Û„ÃE1öëfDH‰ßL‰ûèµÀþÿM…ÿtvH‹CH…ít HƒxP„ H‹T$L‹;H‰P@H‹T$ H‰PHM…ÿ„ÆM…ät Hƒxp„ÎE…ít©¿èßÄþÿH‹SL‹;H‰ßH‹R0L‰0L‰ûI‰ÆH‰Pè?ÀþÿM…ÿuŠM…öt-¿è«ÄþÿH‹d"9€ #9L‰pH‰Ç@H‰H"9HÇý9HÇÚ9HÇ×9HÇÔ9H‹D$(dH3%(uEHƒÄ8[]A\A]A^A_ÃDÇ€ŒH‹L$H‰H`é"ÿÿÿL‰`pé)ÿÿÿ€H‰hPéëþÿÿèbÂþÿf�óúAVI‰þ¿AUA‰ÍATI‰ôUH‰ÕSèÞÃþÿH‰ÃL‰0¶@ƒàøƒÈˆCE…í„’L‰cM…ä„%H…ítH�5&òH‰ïèq¿þÿ…Àu¶CH‰ßƒàǃȈC[]A\A]A^éP�H�5UáH‰ïèA¿þÿ…À„éH�5BáH‰ïè*¿þÿ…À…ò¶CH‰ßƒàÇƒÈ ˆC[]A\A]A^é�DL‰çèxÁþÿH�xèÃþÿA¶$„Ò„ÚE1ÉL‰æH‰ÁE1ÀIº ëf.„HƒÆˆQÿE‰ÁE1À¶„Òt0E…ÀuçD�BÖA€ø1wM£Âr/E1À€ú\ˆA”ÀHƒÆ¶HƒÁ„ÒuÐE…ÉtoÆH‰CéæþÿÿH‰Çè¾þÿL‰c€cþéÎþÿÿ¶CH‰ßƒàǃȈC[]A\A]A^é3Ž1ÿºH�5bíèmÀþÿH‰îH‰Ç1ÀèðžéžþÿÿH‰Çè°½þÿL‰àë‡ff.„óúUH‰ý¿SH‰ó¾pHƒìèáÊþÿH�JhÿÿH‰hH‰X8H‰PhÇ@`ÿÿÿÿHƒÄ[]ÃóúAWAVAUATUSHƒìH‹'!9H‰4$H‰T$H…ÿ„åI‰ýH…Û„…€?tH‹{H�-)í€?u\ºH�5Ðì1ÿè¡¿þÿH‰Ç1Àè'žH‹<$HƒÄ[]A\A]A^A_éà¼þÿºH‰î1ÿèq¿þÿL‰îH‰Ç1Àèô�H‹H…ÛtH‹{L‰îè Ãþÿ…ÀtÌH‹H…ÛuèH‹$H�{è·\ÿÿH�{8è®\ÿÿL‹{H‹c 9M…ÿ„¹L�%«ìH…Û„ï€A¶GH‹{@ƒàH…ÿ„Ó„À…SL‹sHM…öuëX„M‹6M…ötHI‹oI‹vH‰ïèˆÂþÿ…ÀuäA¶GA2F¨8u׺L‰æ1ÿ蘾þÿH‰îH‰Ç1Àè�M‹6M…öu»H‹H…Û…tÿÿÿH‹­9M‹?M…ÿ…QÿÿÿH‹$L‹x8M…ÿ„¿L�%áëf„H…Û„€A¶GH‹{ ƒàH…ÿ„ã„À…L‹s(M…öuëX„M‹6M…ötHI‹oI‹vH‰ïè¸Áþÿ…ÀuäA¶GA2F¨8u׺L‰æ1ÿèȽþÿH‰îH‰Ç1ÀèKœM‹6M…öu»H‹H…Û…tÿÿÿH‹Ý9M‹?M…ÿ…QÿÿÿH‹ $H‹D$L‰iH‰AXA€}…nH‹$Ç@H…Ûué…H‰ÃH‹H…ÀuõH‹$H‰HƒÄ[]A\A]A^A_À„À„ÿÿÿH‹H…Û…ôþÿÿé{ÿÿÿ€„À„-þÿÿH‹H…Û…þÿÿé‹þÿÿ€L‰þèÆþÿI‰ÆH…Àué3ÿÿÿM‹6M…ö„$ÿÿÿI‹oI‹vH‰ïè”Àþÿ…À… ÿÿÿA¶GA2F¨8uÏL‰æ1ÿºè ¼þÿH‰îH‰Ç1Àè#›ë±�L‰þè¨ÅþÿI‰ÆH…ÀuéûýÿÿM‹6M…ö„ìýÿÿI‹oI‹vH‰ïè,Àþÿ…À…ÔýÿÿA¶GA2F¨8uÏL‰æ1ÿºè8¼þÿH‰îH‰Ç1À軚ë±M‹?M…ÿ…€þÿÿé‡þÿÿM‹?M…ÿ…Ÿýÿÿé¦ýÿÿ‹Aþ8ƒÀ‰8þ8‰Aé†þÿÿL�-î²H…Û„œüÿÿé'üÿÿH�9ézþÿÿff.„@óúAWAVAUATUSHƒì(H‹=ß9dH‹%(H‰D$1ÀH…ÿtè YÿÿH‹î9H‹5ÿ8H�=èÂÿÿH‰ÿ8謖ÿÿèpÿÿèRƒH‹[ý8H…ÛtfDH‹{è§VÿÿH‹H…ÛuïèŠÅþÿ…À„bH‹“9H‹=´þ81öƒûü8H‰´þ8èoÚÿÿöi9…Z¶[9ƒà<„Ð Hƒ=À9t¾FH�=ÖèUšH�Îü8Hƒ=Îü8H‰—9„™H‹=š9H…ÿt蘓ÿÿH‹=‘9H…ÿt臓ÿÿèò�Hƒ=Â9„­Hƒ=¤ý8„ŸºH�5šè1ÿècºþÿH‰Ç1ÀèšH‹-zý8H…ítvL�%o×fDH‹uL‰ç1Àèò™H‹}èYºþÿH‰ÃHƒø‡ü @è3‰HƒÃHƒûuñH‹uH…ötH�=ÙÙ1Àè²™H‹uH�=ËÙ1Àè ™H‹mH…íu—èrÄþÿè½XÿÿHƒ=•9„L‹%Èû8E1íM…䄦L�=�ÙëM‹d$0M…䄌I‹|$ L‰þèõ»þÿI‰ÆH…ÀtÝH‹h8H‰ïèQ»þÿI‹|$ 1ÉI‰èH‰ÂL‰öH‰Ãèy¹þÿ…À„A HÝH9ës-f„H‰ÞL‰ï1É1Òè÷ÿÿH‰ßI‰ÅèV¹þÿH�\H9ërÜM‹d$0A�N € M…ä…tÿÿÿ1É1ÒH�5o×1ÿèÔöÿÿ¾p¿H‰Ãè¢ÃþÿH� aÿÿH‹=¤91ÒL‰hH‰ÆH‰X8H‰HhÇ@`ÿÿÿÿè·øÿÿè’,‹˜9…À…Ä ¿H�-@çèÆÿÿH‹Dû8H…ÛuBéªf�H‹99H‰C H‰C8H‹{0H…ÿtèu‹59…ÀtQH‹9H‰C(H‹[H…ÛtmH‹{H…ÿtËèçt‹ 9…Àu­L‹#H‰î1ÿºè¸þÿH‰ÇL‰æ1Àèž–ë›@L‹#ºH�5Ñæ1ÿèò·þÿH‰ÇL‰æ1Àèu–H‹[H…Ûu—@Çn9è9kÿÿH‹=Rû8è Òÿÿ¶59‰ðƒà<„i ƒæ@tH‹=M9H�5ö9H‹Gÿ�ðöì9…èê~H‹=û8E1ä1Ûè iÿÿH‹=òú81Ò1öƒ7ù8èÂÒÿÿL‹5K9¹þÿÿÿëN@I‰ïM…ät I;l$ t¾²H�=YÒè –I‹.¹þÿÿÿ‰ÈA+…„M‰üA‰…„I‰íH…Û„‘M‰îI‹.I‰íH…턇‹E…Àt ƒøuâH‹}1Ò1öèþ¥ÿÿH…ÀtnD‹}¹þÿÿÿE…ÿuWM…ä… H‰ÇèJÿÿI‹>¹þÿÿÿH‹›9H‹?H‹2H‰:H‹H…ÒI‰„3 H‰0E1äL‹-v9éxÿÿÿ�D‹¨„E…íy©H‹@(H…ÀuëH‹]H�5æ1ÿºèD¶þÿH‰ÇH‰Þ1ÀèÇ”€è[¹ÿÿD¶%ƒ9AƒäA€ütYH‹=Â9H�5k9H‹Gÿ�H‹=ª9H�5öè^¸þÿH…À„«D‹î9‹P E…Ò„’ƒÊD¶%'9‰P AƒäH‹¹9H…Àu釀H‹@ H…ÀtwH‹P(H…ÒtîHƒxHuçHƒx`uàHƒxXuÙH‹J@H9H@uÏH‹RHH‰PHëÅDL‰ûégþÿÿH…Û„'ÿÿÿºþÿÿÿë H‹[ H…Û„ÿÿÿ‰Ð+ƒ„‰ƒ„I9ÜuàéûþÿÿD‹ 9E…É…p A€ü…&è™|¿P1íèݶþÿL‹=æ9Ç$ I‰ÄM…ÿ„­H�Ù91ÛL‹0M…ö„E‹†„E…ÀˆèM‹npM…ítoIƒ~8L‰í„ÑL‰íë%@I‹v8‰ØƒÃI‰4ÄÇEH‹mH…í„�I‹wH‹}è:¸þÿ…Àuâ;$rÉÑ$$‹4$L‰çHÁæèOµþÿI‰Äë²f.„Aƒ¾ŒtfI‹F8H…Àt]ö@ tWIƒtPH…ít I‰íérÿÿÿL‰ðë H‹hpH…íuäH‹@ H…ÀuîºH�5zã1ÿ1íèá³þÿH‰Ç1Àèg’€M‹v M…ö…ûþÿÿI‹(1ÉH…ÿtH�°Ó1öè:w‰ÁI‹ E1ÉH…ÿtH�ŸÓ1ö‰L$èwI‹ ‹L$I‰ÁE1ÀH…ÿI‹wH‹=9A•À1ÒIƒ(ATSA‹G•ÂPA‹GPèî·þÿHƒÄ …À„rM‹?M…ÿ…VþÿÿL‰çL�%aá臰þÿH‹- 9H…í„”€‹½„…ÿxvHƒ}8toH‹]pH…Ûuëd@H‹H…ÛtX‹s…öuñL‹k¹L‰çL‰îó¦—À„Àt×L‹u0ºH�5çá1ÿè°²þÿL‰êH‰ÇL‰ö1Àè0‘H‹H…Ûu°„H‹m H…í…sÿÿÿöß9 …Æ1öƒ=å9@—Æ1ÿè2ÙÿÿèÝyH‹Æô8H…Ò„­H‹¾ô8L‹ï9L�Èî8‹ Rõ8L�ÐëE@I‹RL‹N(€zM‹Ih•¶ÒL‰N(ƒÂHcÒ€<ouI‹Q8HÓêH‰V0€HƒÀL9ÀtGH‹0·Vf�âÿfƒúuåH‹~€?.u¤€iuÖH‹V(HƒÀH‹R8L‰^(HÓêH‰V0L9ÀuÃf.„¿è¿ÿÿèAyèlx€=ý9…OH‹ô8H�-ÙàH…ÛtU@H‹3H‹=æ91É1ÒA¸èO´þÿH…Àt ¶@ƒè<vL‹#H‰î1ÿºè-±þÿH‰ÇL‰æ1Àè°�H‹[H…Ûu¯èâVÿÿH‹D$dH3%(…ƒ HƒÄ([]A\A]A^A_ÀM‹v L‰íM…ö…üÿÿéýÿÿ1ÿºH�5Êßè½°þÿH‰Ç1ÀèC�élýÿÿfDH‹s(I‹T$ H‰V H…Ò„BH‰r(H‹P I‰T$ H‹P H…Ò„ˆL‰b(H‰C(1ÿ1öH‰X „‰Ê+“„‰“„H‹S8H…ÒtHƒºðt H…öH‰×HDòI9Üt H‹[ H…ÛuÇ1ÛH…ÿ„jùÿÿH‹P8H…Ò„¼1ÛH9ú„RùÿÿL‹NL‹GM…É„M‰AL‹GM…À„|M‰HL‹BL‰GM…À„TI‰xH‰V1ÛH‰réùÿÿf.„¶ 9ƒà<„(ýÿÿH‹=Ï9H�t$ÇD$è5Îÿÿ‹L$…É…ýÿÿ€%Õ9ßé÷üÿÿDH‹!9H…Û„Ù÷ÿÿH�-±9�H‰îH‰ßèŹþÿ…Àu Ç9H‹›øH…ÛuÛé§÷ÿÿfDH‹Ù9H…Òtg·JH¸fÁéƒáÓਅ2‰Áƒáƒù„$¾ë,D·JH‰ófÁéƒáÓã Ø¨…ÿ‰Áƒáƒù„ñH‹’øH…ÒuÍ‹9…À„¯óÿÿHƒ=§ñ8„¬ºH�5JÎ1ÿè~®þÿH‰Ç1Àè4ŒH‹=}ñ8èÈrÿÿH‹=añ8è¼rÿÿégóÿÿ€HƒÆ H‰5M9é²ýÿÿƒâ÷‰P D¶%’9Aƒäéiøÿÿf„è[}1Ûéüóÿÿ@1ÿºH�5zÜèý­þÿL‰öH‰Ç1À而éšôÿÿH‹‘9H‹˜�H…Û„ÃøÿÿL�%½Íf.„L‹+L‰ïèå­þÿH�x 茯þÿM‰èL‰á¾H‰ÅHÇÂÿÿÿÿH‰Ç1ÀèݸþÿH‰ÞH‰ïè¢NÿÿH�}ÇE.sizH‰ÞÆGeè‹NÿÿH‰ïèêþÿH‹[H…ÛušéGøÿÿDL‰5áð8éÁöÿÿ@H‹ Iï8H…Éué†õÿÿ€H‹I0H…É„rõÿÿöAI uíH‹A H‹€�H…ÀtÝD‹P öÆ u€æ‰P H‹@H…Àuéë¿€H‹‰ 9L‹5’ 9H‹@D¶hM…ö„ôÿÿA€ýL�=•»8HÀHƒÀH‰$f.„I‹®�H…ítG@L‹eA¶$„ÀtK¶ÐAöWŒu<_uL‰àf�HƒÀ¶„Òt-¶ÊAöOŒuë€ú_tæH‹mH…íu½M‹¶øM…öu¡é˜óÿÿ@L‰çè`¬þÿH�x è®þÿ1ÿE„íM‰àDˆ(@•ÇH‰Ã¾H� %ÌHÇ1ÀHÇÂÿÿÿÿèH·þÿH‰îH‰ßè MÿÿH‹$DˆkH‰îºopH�{HØÇ__stf‰PèçLÿÿH‰ßè©þÿH‹mH…í…"ÿÿÿé`ÿÿÿDH‹�Ç8L‹5ªí8L‹%«í8L‹-L 9L‹8H‹XH‹-F 9èIÆ…À…É€ Ë 9H‹;1öèÀÊÿÿH‹9Ç8L;8t¾‹H�=|ÆH‰$迊H‹$H‹HL‹;H‰XHÇL;52í8H‰ $t¾‹H�=DÆ苊M‹ $L‹5í8L‰%í8IÇ$L9-ª 9t¾‹H�=ÆL‰L$èRŠL‹L$L‹eH‹Š 9H‰-ƒ 9HÇEM…ÿ„ºïÿÿH‹³ì8H‹\ 9H…Àu%ë5DH‹H H…Ét Hƒ¹ØHDÐH‹@0H…Àt¶HIöÁ tÙƒá@„£H‰ùì8H…Ò„®H‹)Æ8H‹ H‹4$H‰L‰:H;P„lH‹B8H‰H�B8H9è 9L‰b8„DHƒzH‹"ì8„õH‹J0HƒÂ0I‰L‰ H9Є?H‹=ví8¾ƒºë8è5Éÿÿéàîÿÿ1ÿºH�5’×轩þÿH‰Ç1ÀèCˆé|îÿÿfDH‹ì8H…À„€ôÿÿH‹ ì8L‹5: 9L�,Ãë@ÆEHÇE(HƒÃL9ë„OôÿÿH‹+öEuêH‹U(H‹BhH…ÀtÑL9°ðuÈH‹0H‹:è ­þÿ…ÀtÅë·€èËJÿÿé§÷ÿÿfDH‹ë8H‹=Å8H‰ã 9H…ÿ„Iîÿÿèí�ÿÿé?îÿÿ„I�T$ H‰ì9ékøÿÿL‹ˆ 9M‰‚�éáøÿÿ@‹: 9€ 9@…À„ÃíÿÿéúÿÿfDèó¼1ÿºH�5�ÖH‰$茨þÿH‹4$H‰Ç1Àè‡éýÿÿL‹" 9I‰¸˜é�øÿÿL‹ 9M‰ˆ˜éuøÿÿH‹X(H…Û„”ñÿÿfDD‹›„E…ÛxH‹S8H…ÒtHƒºð…øÿÿH‹[(H…ÛuÔé]ñÿÿH‹ê8I‰H�ê8L‰ ê8H9Ð…þÿÿL‰péøýÿÿHƒ=Ýê8…FùÿÿéâìÿÿH‰“9é°ýÿÿH‰pé‹ýÿÿH‰Vê8H‰Âé^ýÿÿL‰5¿é8éµýÿÿ¾H�=ÊÂL‰L$è ‡H‹%ê8L‹L$é+ýÿÿè¶§þÿfDóúATUH‰õSH‰û¿è8©þÿH‰H‹Ž9I‰ÄH…Ûuë,@H‹H…Ût H‹{H‰îèüªþÿ…ÀuèI‰\$L‰à[]A\úH�5äÖ1ÿè§þÿH‰îH‰Ç1À舅L‰à[]IÇD$A\ÀóúUH‰ýSHƒìH‹üé8H…Ûuë%DH‹H…ÛtH‹{H‰îè|ªþÿ…ÀuèHƒÄ[]Ã�¿èv¨þÿH‰ïH‰Ã軨þÿH‰CH‹°é8H‰©é8H‰HƒÄ[]Ãff.„@óúH‹ �9H…Ét H‰úëH‰ÂH‹H…ÀuõH‹H‰H‰9ÃS¾(H‰û¿èݰþÿH�5FNÿÿH‰H‰p [H‰?9ÃfDóúHƒì1ÉH�«Å1ÿH�5 ÆèÁãÿÿ1ÉH�”ÅH�5 ÆH‰Çè©ãÿÿHƒÄH‰Çé]ÿÿÿff.„f�óúHƒì1ÉH�[Å1ÿH�5ÞÅèqãÿÿ1ÉH�DÅH�5×ÅH‰ÇèYãÿÿHƒÄH‰Çé ÿÿÿff.„f�óúAVL�5ºÅAUL�-*´8ATUH‰ýS¶„Ûué}€HƒÅ¶]€û,tó¶ÃAöDE@uè„ÛtZ¶]L�e€û,t$„Ûuë�IƒÄA¶$„Ût€û,t ¶ÃAöDE@tãAÆ$L‰öH‰ï胢þÿ…ÀuÇå9Aˆ$L‰å„Ûu’[]A\A]A^Ã�1ÿºH�5Åè�¤þÿH‰îH‰Ç1Àè ƒëÉff.„óúAT1ÀH�5yÔ¿USè•«þÿH‹-ç8Hƒ}„ÓL�%ÙÄëVf.„fïÀòH*ÃH‹E(òY›ÖH…Àˆ‚fïÉòH*Èò^Á¿¸H�5˜Äè/«þÿH‹mHƒ}ttH‹UH‹]8L‰æ¿H+] 1Àè «þÿH‰ßèTÿÿH‹}(èøSÿÿH…ÛyƒH‰ØƒãfïÀHÑèH ØòH*ÀòXÀénÿÿÿDH‰ÂƒàfïÉHÑêH ÂòH*ÊòXÉéiÿÿÿf�[]A\Ãff.„óúAWH�=ÄAVAUATUSH�ìdH‹%(H‰„$ø1ÀH‹²¿8H‰D$è¬þÿ¿Ç å8H‰’¿8H�Ó9H‰Ô9HÇÁ9è\“ÿÿ¿èbiè}4è¨ÇÿÿH‹5qæ8H�=Jªÿÿè~ÿÿèÀjè­þÿ…À„³H‹Ìå8€ –9€ 9€H…Ûu!ëX€H‹{1Ò¾è@ÿÿH‹H…Ût9‹C…Àtáƒø…»H‹CHƒ¸Ø…ÏH‹81Ò¾èÿÿH‹H…ÛuÇH‹Hå8H…Û„Ÿƒ{…|H‹CH‹¨ØL‹mfDH‹1Ò¾L‰ïè¾~ÿÿH…Ûtiƒ{…çH‹H…ÛtWL‹eë�ƒú…ÏH‹H…Ût?H‹CL‰çH‹¨ØL‹mL‰îè•¥þÿ‹S…Àt΃út™H�²»¾7#H�=Ú¼èq�H‹=)å81öèòÀÿÿèíhè(¬þÿès@ÿÿèîTÿÿH‹=å8èSÿÿH‹=ûä81Ò1öèÒ¼ÿÿè�¤ÿÿèèh1öƒ=Ç9@—Æ1ÿèÈÿÿè¿hèêh€=«9…­èøFÿÿè£9¿èhH�=Òã8è-¢þÿH‹=¶9è!©þÿ…À„IH‹=j½81ö1À蹨þÿA‰Å…ÀˆnH�T$`D‰î¿èì¦þÿ…À…ÜH‹œ$�E1ÿH‰ßè‘¢þÿH‰ÅH…Ûuëc€MçL9ûtTH‰ÚJ�t=D‰ïL)úè£þÿI‰ÄH…ÀyÝ¿Mçè`¢þÿL‹5á¼8º1ÿH�5;ÑèV þÿL‰öH‰Ç1ÀèÙ~L9ûu¬D‰ïè\¢þÿH‹=­¼8èžþÿH‹D$H‹59H‰ÇH‰’¼8赟þÿI‰ÄH…À„iH�T$8¾H‰Çèw¨þÿ…À„OL‹5`¼8H‹Ùÿ8¾/L‰÷H‰D$èß þÿH…À„–L)ðH�x I‰Åè—¡þÿL‰êL‰öI‰ÇH‰Çè&¤þÿCÆ//K�D/H¹ldXXXXXXÆ@L‰ÿH‰èã¥þÿƒøÿ„ÚH‹t$‰ÁH�+¯L‰ÿèô¤þÿI‰ÅH…À„¸H‹8耡þÿ¾L‰ïI‰Æè€£þÿ…À„øI‹´$°L‰çE‹|$DH‰t$AÁïè*¤þÿL‰çA�çÿÿ‰D$è—¥þÿH‹t$L‰ïH‰D$è©þÿ…À„­D‰þL‰ïè2¥þÿ…À„šI‹E‹T$L‰ï‹t$ÿ��…À„}I‹D$L‰çÿ�ðH…ÀˆfH‰Çè~ þÿL‰çH‰ÆH‰D$I‹D$ÿ�øH‰D$H…ÀˆzH‹D$H�5®KÿÿL‰çL‰l$@ÇD$PH‰D$HH�D$@H‰ÂH‰D$è7¨þÿ‹T$P…Ò…–I‹EL‰îL‰çÿ�`…À„Aº(H�5Þ¾L‰ïè_œþÿºH�5;ÏH‰D$ H…À„H‹t$ H‰ÚL‰ïè•£þÿºH�59Ï…À„ûM‹¼$ M…ÿ„wH‹D$L�ÅL‰ÇL‰D$(膟þÿHƒ|$I‰Ç„ëH‹L$L‹D$(1ÒM‹Œ$ H‰ÈIÈH‹0H� ÕI�<L9N t H‰7HƒÂI�|HƒÀL9ÀuÖHÇL‰þL‰ïè¡þÿH‹T$H�5•HÿÿL‰çè§þÿ‹D$P…À…¢H‹t$ 1ÉI‰ØH‰êL‰ï茞þÿ…À„I‹EL‰îL‰çÿ�8…À„¹L‰ïè¥þÿ…À„ÁH‹|$è2šþÿM…ÿtL‰ÿè%šþÿH‹56¹8L‰÷è¥þÿ…À…ØL‰÷èšþÿë3@è[žþÿ‰Çè„¥þÿH‰ÃH�5ÊÎ1ÿºè~œþÿH‰ÞH‰Ç1Àè{H‹„$ødH3%(…¸H�ÄH‰ï[]A\A]A^A_é¡™þÿ�èû�þÿ‰Çè$¥þÿH‰ÃL‰ïèI¤þÿL‰÷èšþÿL‰÷èy™þÿéƒÿÿÿ@1ÿºH�5ÒÉèý›þÿH‰Ç1Àèƒzé+ùÿÿfD¿èÎ�þÿH‹O¸81ÿºH�5yÌèÄ›þÿH‰ÞH‰Ç1ÀèGzéîúÿÿf�H‹!¸81ÿºH�5ãËè–›þÿH‰ÇH‰Þ1Àèzé‹úÿÿ@è=ÿÿéIúÿÿfD¿èV�þÿH‹×·81ÿºH�5ÑËèL›þÿH‰ÞH‰Ç1ÀèÏyé\úÿÿf.„¿ è�þÿI‰Çé‚ûÿÿfDH�µ¾I#H�=9¶è`j軜þÿ‰Çèä£þÿH‹|$H‰ÃèG˜þÿé±þÿÿºH�5æË1ÿèÏšþÿH‹|$H‰Ãè"˜þÿéŒþÿÿH�¶´¾%#H�=ÞµèjºH�5F»ëÁH��´¾-#H�=¸µèßiºH�5K»1ÿèlšþÿH‰ÃH‹|$è¿—þÿM…ÿ„%þÿÿL‰ÿè®—þÿéþÿÿ‹T$H‹t$L‰ïèø�þÿéòüÿÿºH�5×Ë1ÿè šþÿH‰Ãë²L‰÷èó—þÿ1ÿºH�5ÕËèšþÿH‰Ç1Àè†xéýÿÿºH�5mË1ÿèÞ™þÿH‰ÃémÿÿÿL‰÷è®—þÿ1ÿºH�5ÈËè»™þÿH‰Ç1ÀèAxéþüÿÿH‰Ç1ÒéOüÿÿèÝ™þÿff.„f�óú€=êù8x ¶GDƒà<tÀAWAVAUATUSH‰ûHƒì…öt;·GHfÁèƒà„H<v4ètÿÿHƒÄ1Ò¾[H‰Ç]A\A]A^A_éÔuÿÿ@¶yù8ƒà<tHƒÄ[]A\A]A^A_÷GHfÁèƒà<t߇«<…ùL‹¯Ø¿M…í„ÈèÙnÿÿH‹-ÂÛ8E1öH‰D$Ç@HÇH‰XH…í„A€ƒ}…¼H‹ƒØM‹eL‹}H‹0L‰çèDœþÿ…ÀtxI‰îL‰ýM…ÿuÍH‹fÛ8H‹L$H‰H‰ WÛ8é8ÿÿÿf.„èûrÿÿ¿H‰Ãè>nÿÿÇ@H‹8Û8H‰XHÇH‰H‰#Û8éôþÿÿènÿÿÇ@ëÑH‹EH‹[XH;XX‚£M…ÿ„ÒAƒ…I‹OH;YXv.ë{fDI‹H…À„†ƒx…ðH‹HL‰ýI‰ÇH;YXwOH‹�ØL‰çH‹0èX›þÿ…ÀtÄH‹ML‰øI‰ïH‹5{Ú8H;tDH‹L$H‰I‰éLþÿÿH‰WÚ8H‰XÚ8é9þÿÿI‹H‰ÁëÉH‹D$H‰(M…ötI‰éþÿÿ1Éë°H‹L$H‰ &Ú8ë®H‹D$H‰Ú8éùýÿÿ1É1ÀI‰ïëˆH�»°¾Ç%H�=#²èJfH�£°¾Ú%H�= ²è2fH�k°¾Í"H�=ó±èfH�S°¾é"H�=Û±èff�óú‹ú8…Òu2SH‹zÙ8H…ÛtD‹C…ÀuH‹{èP”þÿH‹H…Ûuè[ÃfDÃH�¸¯¾ú%H�=€±è§e€ATI‰üUH‰õSH‹ë�H‰UH‰ÓH…ÛtH‹sL‰çèè™þÿH‹…ÀtáH‰Ýëà@¿8èÞ—þÿH‰EH‰è[]A\Ãf�óúUH‰õH�5™Ú8SH‰ûHƒìè”ÿÿÿH‹HÇH‹H‰ZH‰jÇ@0HÇ@HÇ@ HÇ@(HƒÄ[]Ãf„óúSH�5DÚ8H‰ûè<ÿÿÿH‹HÇH‹H‰ZHÇBÇ@0HÇ@HÇ@ HÇ@([Ãf�óúH‰=Ú8Ã@óú‹5¾Ù8…ö…AWAVAUATUSHƒìL‹-ÁÙ8H‹-ÊÙ8M…턹H…í„L�5±Ù8ë€I‹EM‹mH‰CM…í„‹M‹eH‰ëH…ít€H‹sL‰çè|˜þÿ…ÀtÈH‹H…ÛuèL‰öL‰çI‹]èQþÿÿH‹-RÙ8H‹HÇH‹M‹mL‰bH‰ZÇ@0HÇ@HÇ@ HÇ@(M…í…~ÿÿÿf„L‹-ùØ8M…í„!H…í„`€M‹eH‰ëf„H‹{L‰æèÔ—þÿ…ÀuÇC0H‹H…ÛuáM‹mM…íuÈE1äDH‹�Ø8H…Û„°L‹mE1öf„H‹{L‰îè„—þÿ…ÀuL‹s H‹H…ÛuäH‹=Ø8H…Û„dL‹mE1ÿDH‹{L‰îèL—þÿ…ÀuL‹{(H‹H…ÛuäH‹55Ø8H…ö„‹E0H‹}1ÒjjM‰øL‰ñ…À”ÂE1ÉÒè:¶ÿÿZY¿(L‰%ü×8è•þÿH‹U1ÿHÇH‰ÆH‰P1ÒHÇ@Ç@HÇ@ èå¼ÿÿH‹ž×8H…Ûuëd€H‹H…ÛtUH‹uH‹{è›–þÿ…Àuç¿(è�”þÿH‹S1ÿHÇH‰ÆH‰P1ÒHÇ@Ç@HÇ@ è{¼ÿÿH‹H…Ûu«1É1ÒH�5E¾1ÿèqÃÿÿH‹mH…í…„þÿÿÇòÖ8HƒÄ[]A\A]A^A_ÃH‹uH…ötSH‰5×8é×þÿÿE1ÿé¼þÿÿ„E1öétþÿÿ„ÃH‰èH…ít£€Ç@0H‹H…ÀuñéþÿÿH�5à¿è[PH‰Æë—L‰-—Ö8L‰íé×üÿÿL‰-ˆÖ8L‰íé˜ýÿÿ„óú1Ò¾HÇjÖ8éEnÿÿDóúSH�5LÖ8H‰ûè<ûÿÿH‹HÇH‹H‰ZHÇBÇ@0HÇ@HÇ@ HÇ@([Ãf�óúUH‰ýSH‰óHƒì(dH‹%(H‰D$1ÀH…öt[H�5ÄÕ8H‰ßèÌúÿÿH‹HÇH‹H‰ZHÇBÇ@0H‰hHÇ@ HÇ@(H‹D$dH3%(u7HƒÄ([]Ã�H‰ãA‰Ð¾ºH‰ßH� •»èñ›þÿH‰ßèÉ’þÿH‰ÃévÿÿÿèÌ�þÿff.„�óú¾éB³ÿÿf�óúSH‰û¹H�=N¿H‰Þó¦—À„Àtn¹H�=¿ÂH‰Þó¦—À„Àt4¹H�=¯ÂH‰Þó¦—À„ÀuZ¹1Ò1ö[H�=•Âé$Æÿÿ@¹1Ò1ö[H�=qÂé Æÿÿf.„¹1Ò1ö[H�=GÂéêÅÿÿf.„H�5OÂ1ÿºè­�þÿH‰Þ[H‰Ç1Àé/nff.„@óúHƒì1ÒèQNHƒÄH‰Çé…¿ÿÿDóúUH‰õH�5 Ô8SH‰ûHƒìèùÿÿH‹HÇH‹H‰ZHÇBÇ@0HÇ@H‰h HÇ@(HƒÄ[]Ãf„óúUH‰õH�5¡Ó8SH‰ûHƒìè´øÿÿH‹HÇH‹H‰ZHÇBÇ@0HÇ@HÇ@ H‰h(HƒÄ[]Ãf„óúÃf.„�€?_H‰øu„HƒÀ€8_t÷¹H�=/ÁH‰Æó¦—€ڄÒuB¶p @8pu8¶P€úIt€úDu*¶H H�)�8öJtHƒìH�x º 1öè’þÿHƒÄøÿÿÿÿÃ@óúAUATI‰üUH‰õSHƒìH‹H‹H‹xH‹ZH�ü„H…ÿHDøH…ÛHDØèDÿÿÿH‰ßA‰Åè9ÿÿÿºA9Å| I9ìr—¶ÒHƒÄ‰Ð[]A\A]ÃDHƒÄºÿÿÿÿ[‰Ð]A\A]Ãff.„óúAVM‰ÆAUI‰ÕATI‰ÌUH‰ýSHƒìH‹}í8H…ÛuéãH‹H…Û„ÔH9kuî9s…•H‹C H…Àt8I‹”$ðH…Òt+H‹@H‹€ðH…ÀtH‹HH‹BH‹1H‹8èÜ�þÿ…À…Ï¿ èÚŽþÿHÇH‹K L‰hL‰`L‰pH…Éué›f„H‰ÑH‹H…ÒuõH‰HƒCHƒÄ[]A\A]A^ÃH‹]ºH�5€¿1ÿ虌þÿHƒÄH‰ÞH‰Ç[1À]A\A]A^ék¿(‰t$ èRŽþÿ‹t$ H‰ÃH‹tì8H‰kH‰‰sH‰cì8HÇCHÇC é:ÿÿÿH�K épÿÿÿH‹]ºH�5-¿ëƒóú‹îÐ8…Ò…AWAVAUATUSHƒì‹*ì8ÇÈÐ8…À…­H�=ì8E1ÿèùgÿÿH�=òë8èýgÿÿH‹-Öë8H…í„NDH‹E¶@ƒè<†)‹uH‹=Kì8L�-ôë8èŒþÿI‰ÆH…Àu>¶àë8‹uƒà<„tH‹E H‹@H‹¸ðH…ÿ„Êèå‹þÿI‰ÆH…À„íL‰÷è‘‹þÿ‰Ãƒø„,†@A¼ƒøt%ƒø…;E1äAƒ~A”ÄA�Äf„HcûèˆF¿H‰ÆèëH1ÒH�=ÙH‰ÆèªIH‰ÇèâºÿÿH�5øØ¿èAIH‹UH‰ÆH‹z1ÒèIH‰Çè·ºÿÿH‹}è.FD‰çH‰ÆèùÿÿH‹] H…ÛuQé÷DH‹{H�Ç8H9Çt�O A¶EH‹sƒà<„�è€FD‰çH‰Æèu¹ÿÿH‹H…Û„«Hƒ=iì8t¯E…ÿ„ÞH‹EH�=D§H‹p1ÀèÐiH‹EH‹xè3ŠþÿA‰Çƒø�Ÿ€è YAƒÇAƒÿuñH‹sH…ö„´H�=Á¥1ÀA¿è€ié;ÿÿÿH‰÷è@EH‹KH‹SL‰ö‹}I‰Àè¹ÿÿH‹H…Û…Uÿÿÿ1ÿèED‰çH‰Æè¬¸ÿÿH‹mH…í…·ýÿÿHƒÄ[]A\A]A^A_éÌeÿÿ@è“XE1ÿé[ÿÿÿ1ÿºH�5ö»è5‰þÿH‰Ç1ÀèëhéÿÿÿfDH‹SH‹K1ÀA¿H�=ã»H‹²ðè½héxþÿÿ„A¼ƒø„áýÿÿH‹EL‰÷H‹@H‰D$è‰þÿºH�5p¼1ÿA‰Ä趈þÿH‹T$D‰æA¼H‰Ç1Àè.gé™ýÿÿf„H‹E‰÷L‹hè�…þÿºH�5å»I‰ÄH‹E H‹@H‹1ÿè`ˆþÿL‰éL‰âH‰ÞH‰Ç1ÀèÝfH‹mH…í…ˆüÿÿéÌþÿÿL‹%Dè8M…ä„CüÿÿI‹D$ 1ÛH…Àué©€HcÞH‹�sH…ÀuòHcîH�<íèÒ‰þÿI‹T$ I‰ÅH‰ÁH…Òtf�H‰H‹HƒÁH…ÒuñH� ªùÿÿºH‰îL‰ï芆þÿI‹EI‰D$ L‰è…Ût*�CÿL‰êI�|Å€H‹ H‹rHƒÂH‰1H9×uíI�DÝH‹L‰ïHÇè΄þÿM‹$$M…ä…9ÿÿÿétûÿÿH‹U H‹E‹uH‹RL‹hHƒºð„¯þÿÿ‰÷è4„þÿºH�5hºI‰ÄH‹E H‹@H‹€ðH‹@H‹é£þÿÿA¼éÿûÿÿÃH‹E‰÷L‹hèïƒþÿºH�5#ºI‰ÄH‹‰ç8H‹@H‹éfþÿÿf.„óúÇ–è8ÿ%¼Ë8ff.„�óú‹žè8…Àt Çlè8ÿ%ŠË8f�óúAU1ÿI‰õH�5FºATM‰ÄUH‰ÍSH‰ÓºHƒìèS†þÿHƒÄM‰èL‰áH‰êH‰ÞH‰Ç[1À]A\A]éÃdóúAU1ÿI‰õH�56ºATM‰ÄUH‰ÍSH‰ÓºHƒìè†þÿHƒÄM‰èL‰áH‰êH‰ÞH‰Ç[1À]A\A]ésdóúH…ö„£AUM‰ÅATUH‰ÍSL‰ËHƒìH‹8L‹fH…ÿtG1É1ÒL‰æè7ŠþÿH…Àt6H�Á8ºH�5âÁI9ÅtH�5ëÁ1ÿè|…þÿL‰âH‰îH‰Ç1Àèüc‹Òæ8…Àu Hƒ=úä8tH‰ÙL‰êH‰îL‰çèÇ|HƒÄ¸[]A\A]À‹–æ8…Òu Hƒ=¾ä8t D‰ÎH‰Ïé!~�¸Ãf.„ATI‰üH‰×UH‰õSH‰ÓHƒì0dH‹%(H‰D$(1Àèwƒþÿ…ÀtSH‹ƒ¸H‰âH�5 H‰ßÇ$H‰D$L‰d$H‰l$蔎þÿ‹$H‹L$(dH3 %(u3HƒÄ0[]A\Ä1ÿºH�5ª¸èm„þÿH‰ÞH‰Ç1Àèðbë‹è™„þÿf„óúAVI‰ÎAUI‰ý¿ATI‰ÔUH‰õ¾XSHƒì`dH‹%(H‰D$X1ÀèÕŽþÿH‰ÃÇ@H‹Eóoóo[0H‰k óoc@óoS H‰CH‰CH‹CPóoK)$)T$ )L$)\$0)d$@H‰D$Pöä8„}H‰ßè ž¶CI¨ t%‹¿É8…Ò…§ƒÈ@ˆCIH‹C I‰f.„H‰ßè•ÿÿHƒ=¨å8„àI‹}(A¸1É1ÒL‰æE1öèQ†þÿI‰ÅH…Àt1€x‡¶@H�4ÂHc‚HÐ>ÿàf.„M‹u(@‹ È8…À„ZH‹…ØH‹uH…Àt ö@H„�H�= 1Àè¢bH‹}è ƒþÿ‰Ãƒû�fDèãQƒÃƒûuóM…ötL‰öH�=Œ¢1ÀèebM…í„I‹uH�=u¢1ÀèJb‹ å8 öä8»u'H‹L$XdH3 %(‰Ø…IHƒÄ`[]A\A]A^Ã@H‰æH�=�¡1Àèÿ_ëÆD1öH‰ïèžèÿÿé©þÿÿf„I‹E(H‹@L‹°ðéôþÿÿ@I‹E(L‹°ðéàþÿÿ„‹rä8 \ä8tH‰æH�=8¶1Àè‘_€cIß1ÛéOÿÿÿfDèûP1Ûéìþÿÿ@ºH�5,¶1ÿè��þÿH‰Ç1ÀèSaÇ�Æ8ézþÿÿ@L‰æH�=þž1Àè/aéàþÿÿf.„H‰òH‹0H�=ѽ1Àè aH‹…ØH‹8èm�þÿH‹}H‰Ãèa�þÿ�\éQþÿÿ„E1öéþÿÿèS�þÿóúHƒìèÈþÿè>œH‹=o�8H…ÿt ‹ÐÂ8…ÀuHƒÄÃHƒÄé·†þÿ€óúƒ=½œ8ÿAVI‰ÖAUATI‰ÌUSH‹T$0H‹L$8„71ÀI‰ýH‰óL‰ÎH�=½L‰Åè_‹œ8…Àx�Pÿ‰rœ8„H…Ûu31ÿºH�5¶è\€þÿL‰òL‰æH‰Ç1ÀèÜ^ëMf.„H‹[(¶C�Pú€úvð„À„ñ<wDH‹[ºH�5µ1ÿè €þÿL‰æH‰ÇH‰Ú1Àè�^H…íumH�=õv[1À]A\A]A^ér^f�<‡¡L‹s(H�]¼8I9Æ„„M‹®ð1ÿH‹[ºH�5ó´è¦þÿM‰èL‰ñL‰æH‰ÇH‰Ú1Àè ^H…ít“H‰îH�=¼1Àè ^뀄[]A\A]A^À1ÿºH�5´èMþÿH‰ÇéTÿÿÿDM‹mPézÿÿÿH�h¾¾~H�=¯»èNff.„@óúöG …2AWM‰ÇAVAUATUH‰ÕSH‰ËHƒì¶F<„×<…†L�%x¼8L9á„­H‹м8E1íE1öH�C»8H…Òt H9„‹H‹ShH9”ÁH…Ò•„ÑtH9ÃurL‹Fº1ÿH�5J´L‰D$H…í„Üèg~þÿL‹D$L‰ùH‰ÚH‰ÇH‰î1Àèß\M…ít&ºH�5غ1ÿè7~þÿL‰ñL‰âL‰îH‰Ç1Àè´\‹–Þ8…ÀtRHƒÄ[]A\A]A^A_ÃL‹f(H��º8L‹v0M‹¬$ðI9Ä„€I‹T$hH…Ò…,ÿÿÿé0ÿÿÿDÀºH�5´³1ÿèµ}þÿH‰Ç1Àè;\ÇÞ8HƒÄ[]A\A]A^A_Ãf�è‹}þÿL‹D$L‰ñL‰âH‰ÇL‰î1Àè\éJÿÿÿfDM9ð…ºþÿÿL9á…±þÿÿé7ÿÿÿH�j¼¾¨H�=ɹè™Lf„óúAWI‰ÿAVAUATI‰ôUH‰ÍSHƒì‹ß8…Àu¹H�=±¹ó¦—Á€Ù„É„ßM‰ÎL‰ÃI‰ÕM…ÀtAºH�5|Í1ÿèÎ|þÿHƒÄM‰áL‰ñI‰ÀH‰ÚH‰î[H�=~¹]1ÀA\A]A^A_é3[H…í„—H…ÒtEH‰êL‰îL‰çè„÷ÿÿ…ÀupI‹_`H…Ût*€H9ÝtH‰ÚL‰îL‰çè]÷ÿÿ…ÀuIH‹›øH…ÛuݺH�5èÌ1ÿè:|þÿHƒÄL‰áH‰î[H‰Â]1ÀA\H�=ÿ¸A]A^A_é¥ZDHƒÄ[]A\A]A^A_Ã�ºH�5›Ì1ÿèí{þÿHƒÄL‰âH�=´¸[H‰Æ]1ÀA\A]A^A_é[Zff.„óú‹…ÀtÃDAWAVAUI‰ýATI‰ÔUSHƒìH‰t$èr…þÿH‰ÃH…Àxu8HƒÄ[]A\A]A^A_Ãf„H�5©±1ÿºè]{þÿL‰îH‰Ç1ÀèàYH‰ßè(}þÿI‹L$H‹t$L‰ïH‰ÂI‰Çè0„þÿH‰ÃH…ÀxhM�4ßM9÷sCI‹/H…ít;L‰ûë f�H‹+H…ít,H‹EH…ÀtH‹H…ÀtI‹t$H‹xè¹~þÿ…ÀtMHƒÃI9ÞwÌHƒÄL‰ÿ[]A\A]A^A_é&xþÿfD1ÿºH�5ò°è­zþÿL‰îH‰Ç1Àè0YésÿÿÿI‹\$ºH�5.Ë1ÿè€zþÿH‹ML‰îH‹T$I‰ÀI‰ÙH�=2·1ÀèðXAÇ$éwÿÿÿóúAWA‰÷AVM‰ÎAUM‰ÅATI‰ÔUH‰ÍSH‰ûHƒì(‹=Ü8dH‹%(H‰D$1À…ÿ…Þ‹5ôÛ8…öu$H‹D$dH3%(…ŠHƒÄ([]A\A]A^A_Ã�H‹{P¾,èbzþÿH…À„ùH‹E¶@„À„ÙH�t$ ˆD$ H�FE…ÿ„›H¹__CTOR_LÇ@IST_H‰¹_f‰H H‹{(A¸¹ºèm|þÿH‰ÃH…À„Ù€{uÆCH‰k(M‰ðL‰éL‰â¾,H‰ßè­ëÿÿé4ÿÿÿ„1ÿºH�5НèyþÿL‰æH‰Ç1Àè WéýþÿÿH¹__DTOR_Lº_Ç@IST_H‰f‰P é`ÿÿÿfDH�t$ H‰ðé'ÿÿÿ¶ƒà<t¾,H‰ïèIyþÿH…À…çþÿÿ1ÿºH�5:¯è�xþÿH‰Ç1Àè#WéÅþÿÿfD1ÿºH�5Š™èuxþÿH‰Ç1ÀèûVéÿÿÿè¡xþÿ�óúAVAUI‰ÍATM‰ÄU‰ÕSH‰óHƒì‹/Ú8…ÒuK‹!Ú8…ÀuHƒÄ[]A\A]A^Ã@1ÒM‰ÈL‰á‰îH‰ßè~êÿÿ€{u×L‰k(ÆCHƒÄ[]A\A]A^ÃL‹vº1ÿL‰L$H�5A®èÔwþÿL‰öH‰Ç1ÀèWVL‹L$ë…óú‹ªÙ8…À„AU�AýATUSH‰ÓHƒìƒø¶VH‹n–Àƒù@”Ç øƒú„–�zýƒÿ†Z„À…âE1íE1äƒú…ƒù„¢E1ä¾ H�=γè¾V1ÿºH�58®è+wþÿH‰êH‰ÞH‰Ç1Àè«UM…ätuºH�5´1ÿèwþÿHƒÄL‰æ[H‰Ç]1ÀA\A]é|U@H‹V(H‹RL‹¢ð„ÀteºH�5™­1ÿèÂvþÿH‰êH‰ÞH‰Ç1ÀèBUºH�5�³M…äu—HƒÄ[]A\A]ÃfDÀE1ä¾H�=³èôUë�f�L‹n0ƒù…#ºM9ŇÕscH�5ô­1ÿèEvþÿH‰êH‰ÞH‰Ç1ÀèÅTºH�5 ®M…ä…ÿÿÿézÿÿÿH‹V(L‹¢ð„À…€ÿÿÿƒù„¾þÿÿé¨þÿÿ€H�5ñ­1ÿèâuþÿH‰êH‰ÞH‰Ç1ÀèbTºH�5ö­M…ä…³þÿÿéÿÿÿ„ºH�5¬¬1ÿè�uþÿHƒÄH‰êH‰ÞH‰Ç[1À]A\A]éTH�5¹¬1ÿèruþÿH‰êH‰ÞH‰Ç1ÀèòSºH�5Ö¬M…ä…Cþÿÿé§þÿÿ„¾H�=¿±L‰D$èªTL‹D$é½þÿÿóúSH‰ûH‹=©Õ8H…ÿt¹ºH‰ÞèŠyþÿH…ÀtE[ÿ(èÆvþÿ¹=ºH‹5=�8H‰ÇH‰cÕ8èöwþÿ…Àt2H‹=SÕ8ë­f„1ÿºH�5"­è�tþÿ[H‰Ç1Àé"Sf�1ÿºH�5Ú¬è}tþÿH‰Ç1ÀèSë¯�óúUH‰õSH‰ûHƒìH‹HH…ÿt'¹ºH‰îèÕxþÿH…ÀtHHƒÄ[]Ãf„¿(èvþÿ¹=ºH‹5}�8H‰CHH‰Çè9wþÿ…Àt5H‹{H먀1ÿºH�5j¬èåsþÿHƒÄH‰Ç[1À]éeRD1ÿºH�5¬è½sþÿH‰Ç1ÀèCRë¬�óúAWI‰ÿAVM‰ÆAUI‰ÕATE‰ÌUH‰ÍSH‰óHƒìH‹HH…ÿt#1É1Òè xþÿH…ÀtHƒÄ[]A\A]A^A_ÃfD‹RÕ8…À…ŠL‹=K¸8M…ÿ„•L‰þH‰ßèwþÿ…À…'‹%¸8ƒÀ‰¸8H…í„’ƒø‡ÖºH�5ª«E…äuH�5Æ«1ÿèïrþÿHƒÄI‰ØL‰ñ[H‰êL‰î]H‰ÇA\1ÀA]A^A_é[QL‰ÿH‰ÞèMþÿÿL‹=¶·8M…ÿ…kÿÿÿÇŸ·8H‰ßèËtþÿH‰”·8‹Š·8H…í…nÿÿÿƒø‡ŒºH�5Ø«E…äuH�5ô«1ÿè]rþÿHƒÄH‰ÚL‰î[H‰Ç]1ÀA\A]A^A_éÏP€ƒøtsE…䄵þÿÿHƒÄH�=¿Â1À[]A\A]A^A_éžPfDÇú¶8L‰ÿèVoþÿéNÿÿÿ�ƒøu¸ºH�5Ÿ«E…ä…rÿÿÿH�5¿«éfÿÿÿf.„ºH�5´ªE…ä…µþÿÿH�5Ôªé©þÿÿff.„@óúSH‰ûH‹=!Ò8H…ÿt¹ºH‰ÞèúuþÿH…ÀtE[ÿ(è6sþÿ¹=ºH‹5­Œ8H‰ÇH‰ÛÑ8èftþÿ…Àt2H‹=ËÑ8ë­f„1ÿºH�5’©è qþÿ[H‰Ç1Àé’Of�1ÿºH�5J©èípþÿH‰Ç1ÀèsOë¯�óúAWAVAUATUSH‰ûHƒì¶%Ñ8ƒàÀ<€„óH�5SxH‰ßèŠxþÿH‰ÅH…À„ú¿(ètrþÿH‹5õ‹8ºH‰ÇH‰Ñ8èIzþÿ…À„‰¿dèGrþÿH‰ïI‰Åè,{þÿ‰Ãƒøÿt>L�%.8¶ÀHÇD$dA·D¨@t`f„H‰ïèøzþÿ‰Ã¶ÀAöD@uìƒûÿu>öqÐ8À…L‰ïèbmþÿ¶\Ð8H‰ïƒà?ƒÈ€ˆMÐ8HƒÄ[]A\A]A^A_é©oþÿE1öë%@H‰ïè˜zþÿK�L5‰Ã¶ÀI‰ÇAöD@u/ƒûÿtaCˆ\5IƒÆL;t$rÏHÑd$H‹D$L‰ïH‰ÆèŠpþÿI‰ÅëµÆº¹L‰îH‹=þÏ8èùsþÿH…Àt;ƒûÿ„DÿÿÿMcÇC·Déÿÿÿƺ¹L‰îH‹=ÇÏ8èÂsþÿH…À…ÿÿÿ1ÿºH�5s©èoþÿH‰Ç1ÀèœMë¦1ÿºH�5„©è÷nþÿH‰Ç1Àè}MéÞþÿÿ1ÿºH�52§èÕnþÿH‰Ç1Àè[MéUþÿÿ1ÿºH�5à¨è³nþÿH‰Ç1Àè9Méëýÿÿ¿èŠpþÿHƒÄH‰Þ1À[H�=ª«]A\A]A^A_é Mff.„óúSHƒìdH‹%(H‰D$1ÀHƒ=?³8tH‹D$dH3%(…¥HƒÄ[ÃH‹=Ð8H…ÿt$è¿]Ç�Í8èpˆþÿHƒ=ø²8u¹fDH�|$è6H‰Ã‹D$…Àt+H‰ßè“]ÇaÍ8è4ˆþÿHÇ©­8éwÿÿÿ@1ÿºH�5áªH‰‹­8è¦mþÿºH‰ßH‰ÆèÒþÿë±èÏmþÿf.„DóúAWAVAUATUH‰ýSHƒì‹_dH‹%(H‰D$1Àƒû„ïv}ƒû „4ƒû uGH‹_ H‹äÍ8H9ƒðt¾!H�=f¬èšL‹C öÄ…~%=„nfDH‹D$dH3%(…!HƒÄ[]A\A]A^A_ÃDƒûuÓH‹_·C$f%€f=tÁöC!€u»H‹khH‹XÍ8H9…ðt¾øH�=Ú«èL‹E öÄu %=u‚H‹=#Í8H‰îèkvþÿI‰ÄH…À„z‹C %"=„DAÇD$I‰\$ H9kht¾H�=s«è§KH‹C8I‰D$H‹C`I‰D$éÿÿÿH‹_@H‹µÌ8H9ƒðt¾ÅH�=7«èkK‹C öÄu%=…ÛþÿÿH‹=|Ì8H‰ÞèÄuþÿH‰ÃH…À„`H‹EHH‹}H‰Cè÷kþÿ¿‰ÀH‰Cèwmþÿ‹UH‹M8H‰C ‰H‹U(H‰HH…Ò„ÁÇCH‰Péqþÿÿf„L‹o(H‹Ì8I9…ðt¾3H�=‡ªè»JA‹E öÄu%=…*þÿÿH‹=ËË8L‰îèuþÿI‰ÄH…À„‡H‹E0¿AÇD$I‰D$èËlþÿH‹”Ë8L‹u I‰D$(H‹Bƒx ‡-I9•ðt¾‹H�=ÿ©è3J‹U�êƒú‡ãH� ªªHc‘HÊ>ÿâH‹=9Ë8H‰Þè�tþÿH‰ÃH…À„EH‹EÇCH‰CH‹EH‰CH‹E(H�PH‹H‰S(‰C éOýÿÿ€H‹éÊ8I‹t$(L‰÷»H‹@ÿP`IÇD$A‰\$ éýÿÿf�H‹¹Ê8I‹t$(L‰÷»H‹@ÿPHIÇD$ëÎf.„H‹‰Ê8I‹t$(L‰÷H‹@ÿP0IÇD$룀I‹D$(»Dˆ0IÇD$ë„‹.Ë8ƒø„Äþÿÿƒøt@…À…·þÿÿH‹ �«8H…Éué¦þÿÿH‹I0H…É„–þÿÿH‹A H…ÀtêH‹@ƒx …þÿÿ‹E-ƒø‡•H� X©Hc�HÈ>ÿàI‰çL‰÷L‰þè¼qþÿL‰ÿètnþÿH‹½É8I‰Æé8þÿÿI‰çL‰÷L‰þè'nþÿL‰ÿè_qþÿH‹˜É8I‰ÆéþÿÿI‰çL‰÷L‰þè"pþÿL‰ÿèjiþÿH‹sÉ8I‰ÆéîýÿÿH‹U ÇCH‹5VÉ8H9²ð„'ýÿÿH‹rhHJ`H‰HH‰péŒûÿÿ@1ÿºH�5 ¨èmhþÿH‰Ç1ÀèóFéWýÿÿfD1ÿºH�5â§èEhþÿH‰Ç1ÀèËFé~üÿÿfD1ÿºH�5º§èhþÿH‰Ç1Àè£Fé™ýÿÿfDAÇD$H�ý^I‰D$(AÇD$ é¾ûÿÿ1ÿºH�5o§èÒgþÿH‰Ç1ÀèXFédûÿÿèþgþÿH�÷§¾¶H�=ò¦è7H�ß§¾†H�=Ú¦èî6ff.„óúAW1ÿAVAUATUSHƒìXdH‹%(H‰D$H1ÀèGiþÿèsÿÿH�=ËùÿÿèVCÿÿƒ=É8ÿL‹5èÇ8uHƒ=vÉ8ÿ„A‹†¨I‹ž�‰D$,H‰\$…À„äH…Û„ÛL‰t$H‹D$ÇD$DH‹p(L‹¸H‰t$ M…ÿ„‚L‹d$E1öE1í1ÛHÇD$@H�=Ç8A‹G¶7‰ò@ˆ4$ƒâƒø„(€ú„HÇ$‰Ú1í1ÛHƒ|$„ã‹ ¯È89Ñv#B�D-9ÁvH‹4$J� 6H; ›È8‚ÇDM‹$¹H�=‰¥L‰Æó¦—À„À…vL‰Ç‰T$8L‰D$0èEfþÿL‹D$0¹H�=[¥�pý‹T$8LÆó¦—À„À„YH‹D$L‹0L‰÷è fþÿ�PH‰D$8H‰×H‰T$0è¦gþÿH‹T$0L‰öH‰ÇI‰Åè3jþÿH‹L$8…ÉtE�QÿH�=€t8H‰ÐA¶TöWu(éT@�HÿH�5^t8H‰ÊA¶L öN„;‰Ð…ÀuÝH‹D$H‹@‹@ƒèƒàýuOL‰ïèyeþÿHƒøvA¹L‰öH�=…¤ó¦—À„À„5¹L‰öH�=¤ó¦—À„À„AÆEH‹|$H�T$DL‰îè0kþÿH…À„H‹|$H‰ÆH‰D$0èlþÿI‰ÆH…À„éL‹T$0H‹=EÅ8E1À¹ºL‰Öè¨gþÿH…ÀH‰D$0„ºL‰ïèòaþÿH‹D$0L‰ñL‰æH‹|$Æ@HÇ@0L‰p(A‹D$ A‰F I‹D$(I‰F(A¶F$A¶T$$ƒàþƒâ ÐH‰úAˆF$I‹D$0IÇF8I‰F0I‹D$`M‰vhI‰F`A‹D$pIdž€A‰FpH‹GAdžˆÿ�PI‹„$I‹OM‰¾HL$ I‰†H‹D$H‰ÊI‰„$HÇI‹D$8H)ÈI‰F8H‹D$ I‰L$8I‰F(I‰F0L‰øéH‹PH)ʃxH‰Pu H‹p L‰vhH‰V`H‹H…ÀuÛM‰ô„I‹L‰|$H…ÀtL‹4$A‰íI‰Çéœüÿÿ@H‹D$ƒl$,H‹X‹D$,H‰\$H…Ût…À…4üÿÿL‹5ÕÃ8I‹FH�5zÃ8L‰÷ÿ�Ø…À„AH‹D$HdH3%(…XHƒÄX[]A\A]A^A_ÃfD1ÿºH�5¢èÍbþÿH‰Ç1ÀèSAL‰<% f„¹L‰ÆH�=ü¡ó¦—À„À…§üÿÿH‹ $B�D-LñH‰ $‰Ó‰Åé ÿÿÿf„I‹O 1íöÄÂ8@u‹©À1À€úu‹�ˆÃH‹y8‰Ú‰ÃH‰<$éºûÿÿ‰ÈfDƒø„ÂüÿÿƒèLè€8.…³üÿÿÆé«üÿÿƒèHÇ$ƒø–À1í¶À�‰Ãéoûÿÿ1ÿºH�5¢¡èÝaþÿL‰öH‰Ç1Àè`@éÿÿÿèƒcþÿ…Àt'1ÿºH�5(¡è¬aþÿH‰Ç1Àè2@é”þÿÿèØaþÿ¿è~iþÿf.„@óúH‰øH…ÿt f�g þÃDSH‰÷¾(H‰ÓèeþÿH…À„Èlþÿf�` þ[ÃfDH‹)Ä8H�Â�8H9Ðt 1ÀH‰ôÃ8Ë:Ã8…ÒºHEÂH‰ØÃ8ÀóúUH�-„�8SHƒìH9ot(H‰ûH‹wH‹=cÁ81É1ÒA¸èÌcþÿH…Àt€xtHƒÄ¸[]ÃDH9h(uéH‹SH‹J(H‰P(H)H0ëׄU‰ù‰õH�ÔE8Sº1ÛHƒìëfDƒÃƒû3th‹HƒÀ9ÑuîH‹5�Â8…íu#HÁãH�ˆE8H‹|èŽaþÿ…íu"HƒÄ[]ÿ èvbþÿH‹5WÂ8ëÊDH‹5IÂ8HƒÄ¿ []éQbþÿ�H‹=1Â8…íu*ƒù~H‰þ‰Ïè6bþÿë¦@H�F£¾1Àèmiþÿë�H‰þ¿ ‰L$ è bþÿH‹=ëÁ8‹L$ ë¸ff.„f�ƒt 1ÀÀ�?uîSH‹wH‰û1É1ÒH�=•¤8èdþÿH…Àtc¶@ 8A¡8uWH‹SH‹=À8E1À1ÉA¹H�5¢¿8èÍ]þÿH…Àt0·Pf�âÿf�úu H�±›8H9P(uHƒx0[”À¶ÀÃfD1À[Ã@AUATUH�-8£SH‰ûHƒìH…ÿt(‹Sƒú w‰ÐHcD…Hè>ÿàf�¾ÈH�=E¢è?>fïÀtÁ8}Á8HƒÄ[]A\A]Ãf�H‹{è—ÿÿÿƒ=0Á8uáHƒ=FÁ8u×H‹s H�=ð¡HƒÄ1À[]A\A]éø<„D‹ ùÀ8E…Ét•H‹CH‹PhH‹@`HC ÇÁ8H‰óÀ8HÇðÀ8H‰ñÀ8éoÿÿÿ@H‹{èÿÿÿ‹-áÀ8…í„‘ �;1„% H‹{ L‹-ªÀ8L‹%³À8èÞþÿÿ!-°À8„%ÿÿÿH‹ ›À8L9át=H…É„Õ M…ä„Ì H‹A(HiÀ8H�2š8H‰kÀ8Ml$(I‰ÄÇ1À8‹ �ù„j�mƒù/„Å�ƒù*„…�σù%„vƒù&…]L!-þ¿8L9%À8…„þÿÿHƒÄ[]A\A]éâûÿÿf�H‹{L‹%Í¿8èþÿÿ‹â¿8L‰%»¿8…À„NþÿÿH‹C(Hƒ=¯¿8HEC H‰ÃH…À…÷ýÿÿéþÿÿf„H‹{èÇýÿÿD‹˜¿8E…À„ þÿÿ‹=„”Ž4=@„ÁŽc=`„=g…(H‹6¿81ÿHÇÁÿÿÿÿA¸ëD¨AEøH‰ÐH‰ñH‰ÂH�qHÑêHƒøwäH…ÒuåHÇ¿8HƒÁ…ÿHEñH‰5ã¾8éqýÿÿfDfïÀ;8Ö¾8‹=BŽy=N„Î �ø=C„- =D…~‹=l¾8…ÿ„ýÿÿH‹{1Ò1öèçJÿÿH…À„õö€�„ôüÿÿH‹x`H…ÿ„Úè�üÿÿƒ=`¾8„Õüÿÿf�H‹I¾8H…Àt H‹@(H)¾8H�ò—8Ǿ8H‰!¾8éŸüÿÿ@H‹s€>.„31íƒú„H‹{ H‰5Õ½8HÇÒ½8èüÿÿƒ=®½8tlHƒ=´½8ubHǧ½8éEüÿÿf�H�y—8H9Ò½8„|H‹CǦ½8HÇ“½8H‰|½8H‹C H‰y½8HƒÄ[]A\A]ÃfDƒ{„žH…í„%D‹%^½8E…ä…=€}…qÿÿÿHÇ(½8Ç6½8H‹G½8H‰ ½8L‹k1ɺH�=^Ÿ8L‰îèÆ^þÿI‰ÄH…À„j öEu¶Eƒè<wA€L$!‹í›8H�––8ƒ=Ÿ¼8I‰T$AˆD$ H‹¾¼8„P D‹SH‹�¼8H‰E(E…ÒH‰U0”À�…¶Eƒàû ЈE·EH‹i¼8f%÷f f‰EH…Ò„šþÿÿHƒúÈ„�þÿÿH‹=;º8H‰îH‹Gÿ�Ðéwþÿÿf„ƒø-„ƒø~„Vƒø!„-¾ŸHƒÄH�=Æœ[]A\A]éº8f.„=&uÔ‹ û8…ÉtH�¨•8H9¼8„=ÇÖ»8éLúÿÿf„=P„õ=‚…†H‹k¹ H�=tœH‰îó¦—À„À„¹H�=bœH‰îó¦—À„À…nÇh»8H‹éº8é @=A��=+„"=;„?=„¼¾�éúþÿÿf.„Hƒ=»8…âýÿÿéÏýÿÿD1ÀHƒ=Þº8”ÀH‰Ôº8ébùÿÿ€H÷Áº8éOùÿÿ@ÇCéVýÿÿ@H÷¡º8é/ùÿÿ@‹5rº8…ö„ÂþÿÿH‹“º8H…Àt H‹@(Hsº8H‹ lº8H�5”8ÇCº8H‰dº8H‹mº8HƒùvH�Dÿ1ÒH÷ñH¯ÁH‰2º8éÀøÿÿDH‹sH‹=å·81ɺA¸èKZþÿH‰ÅH…À…²üÿÿL‹c1ÿºH�5õ˜è(WþÿH‰ÇL‰æ1Àè«5é‰üÿÿ‹=°¹8…ÿ„þÿÿH‹ Á¹8H‹Ú¹8HƒùvH�Dÿ1ÒH÷ñH¯ÁH‹Ϲ8Ç}¹8Ç£¹8H+B(H‰�¹8H‰y¹8HÇv¹8éü÷ÿÿH‹ú¸8Çp¹8H‰Q¹8éß÷ÿÿ@ƒù+„ç ƒù-…Ž L+-/¹8L9%8¹8L‰-!¹8…®÷ÿÿé%ùÿÿfDƒù^„Š �™ƒù<„X ƒù>…G HÇô¸81ÀL9-Û¸8’ÀH‰Ѹ8é_÷ÿÿ@�ù„Å �Æ�ù„m x�ù„< �ù…è HÇ•¸81ÀL9-|¸8•ÀH‰r¸8é÷ÿÿDƒù|„O �ù …« HÇX¸81ÀL -?¸8•ÀH‰5¸8éÃöÿÿ�ù„T �ù…p H‹ ¸8IÓåL9%¸8L‰-¸8…�öÿÿéøÿÿD�ù%„ž �Þ�ù„Ú�ù$… Ç,¸8‹–·8…À„æûÿÿH�w‘8H9з8…ÒûÿÿH‹ “·8H‹=¬·8Iƒý†ÙI�D=ÿ1ÒI÷õI¯Å‹5¦·8H‰g·8ƒþ„ ƒþ„àI�UÿH!úHÐH‰D·8ƒþ„Îõÿÿ…ö…kûÿÿÇa·8H‰b·8H‰ {·8L‰-|·8HÇY·8é—õÿÿ@�ùE„„ �ùF…@ L9-á¶8†nõÿÿL‰-Ô¶8ébõÿÿ€€~…Ãøÿÿƒút H�5Ê”1ÿºèæSþÿH‰ÞH‰Ç1Àèi2‹s¶8…À„ õÿÿÇe¶8H‹{ è¸ôÿÿƒ=Q¶8ÇK¶8„º‹s¶8…À…!ºH�5—”1ÿè€SþÿH‰ÞH‰ÇéüôÿÿDH‹{ ègôÿÿéZúÿÿf�D‹yµ8E…Ò…tøÿÿH‹SH‰¶8Ƕ8H‰ôµ8ésøÿÿ€H‹=©³8A¸1É1ÒèVþÿH‰ÅH…À„Yôÿÿ€xv ö@„IôÿÿH‹sé½÷ÿÿDH…É…VõÿÿL‰%¨µ8E1äéGõÿÿH‹C H‹ ¶8H‹hH…Ûué ôÿÿ€H‹H…Û„÷óÿÿH‹{H‰îèhVþÿ…Àuä‹S…Ò…‹c´8H‹K…ÀtH‰È1ÒH÷5Ç´8H…Ò…ËH‹Oµ8ÇCÇö´8ǵ8H+H(H‰ ù´8HÇö´8H‰÷´8éuóÿÿf�‹º´8…Ò„eóÿÿH‹{1öè‡/ÿÿH…À„( H‹@ éûÿÿD‹ Š´8…É„5óÿÿH‹{1öèW/ÿÿH…À„øH‹@(ǘ´8H‰y´8HÇv´8HÇs´8éñòÿÿfDH‹=A´8H‹kH…ÿtH‰îèPUþÿ…À„u€}.…€}…ûH‹M´8H‹6´8Çô³8Ç´8H+B(H‰´8H‰ð³8HÇí³8ésòÿÿH‹SH‹=ű81ÉE1ÀA¹H�5c±8èŽOþÿ1ÉH…Àt¶p�Vý€úwö@…¡¹Çª³8H‰ ‹³8HLj³8HÇ…³8éòÿÿD‹I³8E…À„óñÿÿH‹{1Ò1öèÃ?ÿÿH…À„Ñö€�„ÐñÿÿHÇ2³8H‹@8HÇ+³8Ç1³8H‰"³8é ñÿÿD‹â²8…À„�ñÿÿ1ÒƒøtH‹=ܰ8H�5…°8H‹Gÿ� HcÐÇæ²8H‰Dz8HÇIJ8HÇÁ²8é?ñÿÿ@‹5‚²8…ö„-ñÿÿH‹{1Ò1öèý>ÿÿH…À„8H‹@8H…À„[�;A„| ‹Hp¸HÓàéÑýÿÿD‹9²8E…Û„ õÿÿH9Ð…—õÿÿèj]ÿÿI‰D$H‹>²8é�õÿÿH‹=°8H‰êA¹E1À¹H�5ª¯8èÕMþÿH‰ÅH…À„A¶@�Pý€ú†É‹ñ8ƒútƒú„šD‹ ²±8E…É„ŠL‹cºH�5U‘1ÿèîNþÿL‰âH‰ÞH‰Ç1Àèn-Hƒ=ޱ8„ÁHÇ}±8Èÿÿÿéðÿÿ1ÿºH�5š�è­NþÿL‰îH‰Ç1Àè0-éqôÿÿH�5$�1ÿºèˆNþÿH‰îH‰Ç1Àè -H‹Ké üÿÿH‹[±8H�܉8H9ЄÈúÿÿH‹ <±8ºH�5ˆ�H…É„¸úÿÿƒ=ذ8H�ÁŠ8v H9Ð…yïÿÿH‹5ï°8H‹-ذ8H…ö„ŒHn(L‹%ä°8H9Ðt I9ì‡|H‰-ϰ8H‰)é:ïÿÿH‹а8H�iŠ8‹ «°8H9Є¯H�ªèþÿÿH9脟…É„fHƒ=j°8…XH‹{ ƒ„qèñíÿÿ…À„È‹[°8…À…kƒ=°8„ÁîÿÿéÖùÿÿf„H‹U(H‹BhH…À„ÃH� ؉8H9È„DHÇü¯8H‹R`HU0H‰õ¯8Çó¯8H‰Ô¯8é1þÿÿH‰-À¯8éVîÿÿH‹=¬­8E1À1ÉH‰êA¹H�5G­8èrKþÿH…Àt¶p�Vý€ú†zHÇr¯8H‹kéAûÿÿƒ=R¯8…ÿíÿÿH‹kºH�54�1ÿè•LþÿHƒÄH‰êH‰ÞH‰Ç[1À]A\A]é +„À…•ýÿÿHƒ} ÆEHÇE(…~ýÿÿH‹=ݬ8H;o0„mýÿÿH‰îè3Oþÿé`ýÿÿfDH‹ ñ®8Hƒù† øÿÿI�D ÿ1ÒH÷ñH¯ÁI‰Åéö÷ÿÿM…ítE1íHƒ=Á®8A•ÅL‰-¶®8HÇ»®8é9íÿÿfDHÇ¥®81ÀL9-Œ®8—ÀH‰‚®8éíÿÿL1-v®8L9%®8…üìÿÿésîÿÿ@HÇe®81ÀL9-L®8”ÀH‰B®8éÐìÿÿHÇB®81ÀL9-)®8“ÀH‰®8é­ìÿÿf.„L - ®8L9%®8…�ìÿÿéîÿÿH‹ ð­8IÓíL9%ö­8L‰-ß­8…lìÿÿéãíÿÿ@HÇÕ­81ÀL9-¼­8–ÀH‰²­8é@ìÿÿD¾—éŽñÿÿfDH‹ ‘­8H…É„ÄL‰èH™H÷ùH‰y­8L9%‚­8…ÿëÿÿévíÿÿH‹ `­8H…É„ìL‰èH™H÷ùH‰H­8ëÍH‹ ?­8‹­8ÇŸ­8H‰ p­8…À„XñÿÿH�é†8H9B­8…Dñÿÿ‹>­8ƒú�zü”Àƒú@”ƃÿ†b„À„ñÿÿJ�)H‰*­8ƒú…0H‹*­8H�rÿH…ð„âõÿÿHðH÷ÚH!ÐH‰ý¬8H)ÈH‰£¬8é1ëÿÿfDL¯-�¬8L9%™¬8L‰-‚¬8…ëÿÿé†ìÿÿ€L9-i¬8ƒöêÿÿéƒõÿÿfDL-Q¬8éÓþÿÿƒ=%¬8u'H‹kºH�5 Œ1ÿèlIþÿH‰ÞH‰ÇH‰ê1Àèì'Ç*¬8HǬ8HǬ8HǬ8éêÿÿºH�50Œéüÿÿ…É„fêÿÿH�„„8H9ЄVêÿÿé£úÿÿfD1ÿºH�5úièåHþÿH‰Ç1Àèk'éøùÿÿH‹kºH�5–‹é%üÿÿH‹S ƒz„4ƒzuZ�:H‹�«8uRH‹JƒyuHH‹Qƒzu>�:u6H‹rƒ~u,�>u$H‹v€>.u€~uH‹B ƒx„>H‹<«8�H é·úÿÿH‹s1É1ÒH�=Q�8è¼LþÿH…À„B÷ÿÿö@!…8÷ÿÿ1ɶ5ð‰8@8p ”Áé(÷ÿÿƒ=�ª8„>ýÿÿH‹[ ºH�5p‹1ÿèàGþÿH‰ÞH‰Ç1Àèc&éýÿÿ‹Àª8�Pÿƒú†pƒèƒø†éÿÿé£îÿÿƒ=Dª8„åüÿÿH‹[ ºH�5(‹륃=%ª8‡oHÇ<ª8H‹E0Ç>ª8H‰ª8H‰(ª8éuøÿÿH�܃8H9P(…uúÿÿH‹s1É1ÒH�=SŒ8è¾KþÿH…À„Xúÿÿ¶@ 8ûˆ8…HúÿÿéNúÿÿH‹ù©8H9è„…ùÿÿé øÿÿH9ä©8„óHÇ«©8H‹B`HE0Ç©©8H‰Š©8HÇ�©8éÜ÷ÿÿH‹@8H�5?ƒ8HÇl©8H‹@0H‰5i©8Çg©8H‰H©8éÖçÿÿHh(éoøÿÿºH�5ö‡1ÿègFþÿA]H‰éL‰âH‰ÞH‰Ç[1À]A\A]éÜ$H‹©8Ç3©8H‰L©8é‚çÿÿH‹=ئ8H‹X8èJþÿ1Ò‰ÁH‰ØH÷ñéFôÿÿL‹cºH�5 ˆé÷ÿÿƒ=¨8„¯øÿÿéûþÿÿH‰øé-ñÿÿL‰-š¨8ÇȨ8éçÿÿ„À…žûÿÿ@„ö„Ÿñÿÿé�ûÿÿL9éƒÿæÿÿH�T9ÿI)ÍL!êHÐH‰W¨8éåæÿÿH‹‹¨8H‰D¨8éÒæÿÿƒ:+…#ýÿÿH‹Bƒx…ýÿÿ�8… ýÿÿH‹@€8.…üüÿÿ€x…òüÿÿH‹z ƒtOè–åÿÿ…À…¥÷ÿÿH‹S érüÿÿHƒ…„÷ÿÿéºöÿÿHƒx…·üÿÿH‹A(ƒx…©üÿÿHƒx…žüÿÿéc÷ÿÿHƒuªéW÷ÿÿSH‰ûH�e�8H‰¾§8Çl§8HÇ™§8HÇ–§8è©åÿÿ‹{§8…Àt H‹X§8ÇHÇC H‰CÇC[Ãff.„f�óúUH‰ý¿(SHƒìèiÿÿÇH‰Ãè««þÿH‰kH‰C‹É£8HÇC ‰CH‰ØÇCHƒÄ[]Ã�óúATI‰ü¿(UH‰õSèÿÿÇH‰ÃèZ«þÿL‰cH‰C‹x£8H‰k ‰CH‰ØÇC[]A\ÃfDóúATI‰ü¿(UH‰õSèÈÿÿÇnH‰Ãè «þÿÇC H‰C‹%£8L‰c‰CH‰ØH‰k []A\ÃfDóúǦ8H‹H‰P¦8H‰A¦8H‰5J¦8éUäÿÿDóúH�Õ8Çã¥8HǦ8HÇ ¦8H‰¦8éäÿÿf„óúATA‰ü¿(UH‰ÕSH‰óHƒìèÿÿH‹SD‰ H‰P‹SÇ@ƒ{‰PH‰XH‰h t HƒÄ[]A\Ãf�ƒ}uïA�”$ÜþÿÿƒúvâA�ütÙH‰ÇH‰D$è·ýÿÿH‹D$ëÅóúAUA‰ý¿0ATI‰ÌUH‰ÕSH‰óHƒìè|ÿÿH‹SD‰(H‰P‹SÇ@ƒ{‰PH‰h H‰XL‰`(tHƒÄ[]A\A]Àƒ}uèAƒ|$uàH‰ÇH‰D$è5ýÿÿH‹D$ëÌff.„óúU‰ý¿(SH‰óHƒìè÷ÿÿH‹S‰(H‰P‹SÇ@ƒ{‰PH‰XtHƒÄ[]À�ýtê‰êƒâß�ú@tÝ�ý&tÕH‰ÇH‰D$è®üÿÿH‹D$ëÁ€óúATA‰ü¿ UH‰õSèxÿÿD‰ H‰Ã轨þÿH‰kH‰C‹Û 8ÇC‰CH‰Ø[]A\Ãff.„f�óúATI‰ü¿0U‰ÕSH‰óè&ÿÿH‹SÇ=H‰P‹SÇ@‰PH‰X L‰`‰h([]A\Ãff.„óúUH‰ý¿0SH‰óHƒìèÖÿÿH‹SÇ=H‰P‹SÇ@‰PH‰X H‰hÇ@(HƒÄ[]ÃDóúATI‰ü¿0U‰ÕSH‰óè†ÿÿH‹SÇ=H‰P‹SÇ@‰PH‰X L‰`‰h([]A\Ãff.„óúUH‰õSH‰û¿(Hƒìè6ÿÿH‹SÇ!H‰P‹SÇ@‰PH‰XH‰h HƒÄ[]Ãff.„�óúUH�-P„SH‰ûHƒìHƒ= ¢8t"H…Û„9ƒ{ ‡O‹CHcD…Hè>ÿà�H‹‰~8H‰Ú¡8ëÎH‹ Ñ¡8º¾H�={ƒèIþÿH‹{èŠÿÿÿH‹K H�kƒH‹= ¡8HƒÄ¾1À[]éöHþÿfDH‹CH‹°ðH…öt1ÀH�=ƒèòH‹CH‹S H‹0HƒÄ1À[H�=í‚]éÓ‹;��éþÿÿƒù/w&Hº`À¸HÓàH…Ð…˜©…åH‹5¡8¿(èAþÿH‹{èÓþÿÿ‹;¾è'ÞÿÿH‹{ ëv�H‹{è·þÿÿH‹5Ø 8¿?èæ@þÿH‹{ è�þÿÿH‹5¾ 8¿:èÌ@þÿH‹[(é—þÿÿ‹;1öè×ÝÿÿHƒ{„äH‹ � 8º¾H�==‚èÏGþÿH‹{èFþÿÿH‹5g 8HƒÄ¿)[]éo@þÿ€‹;�ÿ„b1öèsÝÿÿH‹KH…É„~H�ñ�é{þÿÿf.„H‹= 8H‹K¾1ÀH�£�èbGþÿH‹{ ë�@H‹sHƒÄH�=¥Z1À[]é`H‹{H‹5ÍŸ8èà>þÿ‹;¾èôÜÿÿH‹[ éŸýÿÿHƒÄ[]Ã�HƒÄ¾ÞH�=á€[]éÙf„1öè¹ÜÿÿH‹5zŸ8¿ èˆ?þÿH‹5iŸ8¿(èw?þÿH‹{è.ýÿÿºH‹ JŸ8¾H�=ö€è‘FþÿéEþÿÿ@1öèaÜÿÿºH‹ Ÿ8¾H�=Ä€èdFþÿH‹{ èÛüÿÿºH‹ ÷ž8¾H�=¢€éjþÿÿfDH‹{H‹5Õž8HƒÄ[]éâ=þÿf�HƒÄH�=J€1À[]é<ff.„�óúATUSH‰óH…ÿtQH�éx8H‰ýI‰ÔÇñž8H‰2Ÿ8HÇŸ8HÇŸ8è'Ýÿÿ‹ùž8…ÀuM…ät ƒ=±ž8uH‰Ø[]A\À[H‹¸ž8]A\Ã@1ÿºH�5*èÝ;þÿL‰âH‰îH‰Ç1Àè]ë¼ff.„óúHƒìHcöè@ÿÿÿHƒÄÃff.„óúATUSH‰óH…ÿ„¼H�x8H‰ýI‰ÔÇž8H‰^ž8HÇCž8HÇ@ž8èSÜÿÿ‹%ž8…ÀtAH‹= ž8H…ÿt èh;þÿH‰ÃH…Àup¿è=þÿ‹à�8HÇʉP[]A\ÀM…ät3ƒ=œ�8t*ºH�56~1ÿèç:þÿL‰âH‰îH‰Ç1Àèg€H‰Ø[]A\ÄH�hHÑíH�}è�<þÿH‹5q�81ÒH‰(L�@HƒÆ¶~ÿ�OЃù v�OɃáÁâHƒëÊöÃuÜAˆH…Ût§HƒÆ¶~ÿIƒÀ1Ò�OЃù vÔëÌff.„�óúATUS‰óH…ÿtQH�Êv8H‰ýI‰ÔÇÒœ8H‰�8HÇøœ8HÇõœ8èÛÿÿ‹Úœ8…ÀuM…ät ƒ=’œ8u8HcÃ[]A\ÄH‹©œ8H‹’œ8H…ÒtàHB([]A\H‰~œ8ÃD1ÿºH�5ò|è¥9þÿL‰âH‰îH‰Ç1Àè%ë£óú…ÿtÀHƒì¹ º(H�5ë×ÿÿH�=„~8è�<þÿ…Àt HƒÄÃfD1ÿºH�5ºbè=9þÿHƒÄH‰Ç1Àé¿ff.„@óú1ÒH�5ØÿÿH�=,~8é÷7þÿ€óú…ÿtÀH�= ~8é:þÿ@óúH‹~8ÿ`f�óúH‹ ~8ÿ`f�óúH‹ý}8ÿ`f�óúH‹í}8ÿ óúH‹Ý}8ÿ` f�óúH‹Í}8ÿ`(f�óúH‹½}8ÿ`0f�óúH‹­}8ÿ`Hf�óúH‹�}8ÿ`8f�óúH‹�}8ÿ`hf�óúH‹}}8H‹€ˆH…Àt ÿà€Ãff.„@óúH‹M}8H‹@pH…Àt ÿàf.„Ãff.„@óúH‹}8ÿ`Pf�óúH‹ }8H‹@xH…Àt ÿàf.„1ÀÃff.„f�óúH‹Ý|8H‹€€H…Àt ÿà€1ÀÃff.„f�óúH‹­|8H‹€˜H…Àt ÿà€Ãff.„@óúH‹}|8H‹€ H…Àt ÿà€1ÀÃff.„f�óúH‹M|8H‹€�H…Àt ÿà€1ÀÃff.„f�óúH‹|8H‹€¨H…Àt ÿà€1ÀÃff.„f�óúH‹í{8H‹€¸H…Àt ÿà€1ÀÃff.„f�óúH‹½{8ÿ`@f�óúHƒìH�=õzèL3þÿH…Àu H‹˜{8H‹@`HƒÄÀóúHƒìH‹=9x8dH‹%(H‰D$1ÀH…ÿt‹5•8öo–8u%…öu%èô@ÿÿH‹D$dH3%(u2HƒÄÀ…ötà1ÒH‰æèZ3þÿH‹$€8tÍ‹5w•8H‹=Ìw8ë¹èý5þÿff.„f�óúÃff.„óúÃff.„óú1ÿée^ÿÿDóú¶Õ•8ƒà<uÃDéãZÿÿóú¶µ•8ƒà<uÃDH‹=ñ•8H�5š•8é•?þÿDóúHƒìH‹=Ñ•8‹5k˜8H‹l˜8H‹Gÿ��H‹5[—8H‹=ô”8è·=þÿH‹5P—8H‹=á”8HƒÄép8þÿóúHƒìH�5oy1ÿºèÅ4þÿ1öHƒÄH‰Ç1ÀéuDóúHƒìH�5Ry1ÿºè•4þÿ1öHƒÄH‰Ç1ÀéEDóúH‹õP8H…ÀtPUH‰ýSH�äP8HƒìH‹xXH‰îHƒÃè 5þÿHƒ;tH‰î¿ è�6þÿH‹ëØ„HƒÄ[]Ãf„Ãff.„@óúATI‰üUS€?g„¬H‹uP8H�-nP8H…Ûuë7€HƒÅH‹]H…Ût#H‹sXL‰çè—7þÿ…ÀuãH‰y8[]A\ÀºH�5„x1ÿè�3þÿL‰æH‰Ç1Àè ºH�5Ex1ÿè}3þÿH‰Ç1ÀèH‹=Lr8èçþÿÿ[H�=¥R]1ÀA\éåD€l…Jÿÿÿ€d…@ÿÿÿIƒÄé7ÿÿÿóúAU1ÀL�-ùwATI‰üUH�-”O8SHƒìH‹ˆO8H…ÛtSHƒ»°t$H‹KXL‰ê¾L‰ç1Àè€<þÿL‰çÿ“°¸HƒÅH‹]H…ÛuÅ…ÀtHƒÄ[]A\A]ÃfDºH�5¬w1ÿè�2þÿHƒÄL‰ç¾[H‰Â]1ÀA\A]é!<þÿ�óúH‹½w8H‹€ÀH…Àt ÿà€1ÀÃff.„f�óúH‹�w8H‹�ÈH…Òt ÿâ€H‰øÃff.„�óúH‹]w8H‹€ÐH…Àt ÿà€Ãf.„DóúUºH�5 wS‰û1ÿHƒìèÑ1þÿH‹=êk8¾H� óvH‰Â1ÀèT;þÿöÃuƒãuSHƒÄ[]ú1ÿH�5wè�1þÿ¿H‰Æ1Àè®8þÿ1ÿºH�5wèk1þÿ¿H‰Æ1ÀèŒ8þÿƒãt­ºH�5˜v1ÿèD1þÿ¿H‰Æ1Àèe8þÿH‹®M8H…À„{ÿÿÿH�žM8H�-}v€H‹PXH‰î¿1ÀHƒÃè)8þÿH‹H…ÀuáHƒÄ[]Ãf.„óúH‹5 “8¿ é3þÿff.„óúH‹5í’8¿ éû2þÿff.„óúATA‰ôUH‰ýSH…ÒtPH‰ÓH�5óvº1ÿèw0þÿH‰ÙD‰âH‰îH‰Ç1ÀèôºH�5w1ÿèQ0þÿH‰Ç1Àè׿è-8þÿ1ÿºH�5Ïvè*0þÿD‰âH‰îH‰Ç1Àèªë´„óúAWAVAUATUH‰ýH‰÷SH�ìØ‰L$L�„$€I�ˆØdH‹%(H‰„$È1ÀL‰À@ÇHƒÀH9Áuñ¶7H‰ùE1ÉL�%‰>8H�"w‰ð„Àte<%t „HƒÁ¶<%t„Àuñ<%uÝD¶AL�i<0„€ D¶ØD¾ðE‰ÊCö\…«I�MAÿãE…Ét[A�AÿH� ƒxH�@I�tÀfDAƒ8‡/ A‹Hc�HÈ>ÿà�‹ƒø/‡mA‰ÁƒÀLJ‰I‹I‰IƒÀI9ðu¶7‰ðH�t$PE1öÇ$H‰t$H�t$HL�=)xH‰t$„ÀtZ@H‰ûI‰ý<%ué)f„„ÀtL‰ë¶CL�k<%uíL9ïtL‰êH‰é¾H)úèõ7þÿ¶C<%„éL‰ï„Àuª‹L$…É…‚‹$…À…î H‹„$ÈdH3%(…É H�ÄØ[]A\A]A^A_Ãf�D‹ Aƒù/‡ L‹ZE‰ÊA�A‰O‹M‰ƒø/‡‚ A‰ÂA�A‰O‹M‰Pƒø/‡v AƒÁLØD‰ H‹I‰@éÓþÿÿfD‹ƒø/‡•A‰ÁƒÀLJ‰A‹A‰é«þÿÿfDL‹JI�AH‰BéŽþÿÿ€A¾MI�]‰È€ù0„ê¶ñH�=2<8D‰òöwtA€}$u�QÏA¾MI�]‰È@L�kÿà€L‹JI�AH‰Béfÿÿÿ€H‹BI‰ÁHƒÀH‰BM‹ M‰I‰ÁHƒÀH‰BM‹ M‰HL�HL‰Jéÿÿÿ‹ÆŽ8…Ò„pþÿÿÇ�Ž8éaþÿÿ€y$…KýÿÿE�VÏL�i¶Aé:ýÿÿI‰ÝH‰î¿%è\0þÿA¶EéþÿÿIƒÅ¹0H�¼s¾H‰ï1Àèó5þÿ¶Céñýÿÿ¸Aƒú‡‹ O�RAƒÁB‰„Ô€¶éƒüÿÿ¸ë׸ëÐA¶EÿÿÿL‰çèþÿé1ÿÿÿ�¶CH¨ uH‹S öBE…¨…¢H‹{ éþýÿÿf„¾è& þÿ…ÀujH‹{ éõýÿÿf„H‹{ 1öè þÿI‰ÄéþÿÿDèþÿE1äƒø…ÐýÿÿH‹[@1ÿºH�5�bè þÿH‰ÇH‰Þ1Àè£ôÿÿé§ýÿÿfDH‰ßA¼èZ0éŽýÿÿD‹fw8H‹5“v8L‰çè«þÿH…À…@ÿÿÿI‹D$ƒxuH‹pv8H‹@ƒx„ ‹ w8…Ò…ÓH‹{ E1äè¸þÿHÇC é$ýÿÿºH�5Lb1ÿE1äèrþÿH‰îH‰Ç1ÀèõóÿÿH‹{ è|þÿHÇC éèüÿÿ€ŒÂýÿÿA�ìuAƒü‡±ýÿÿH‹=Št8è…þÿé ýÿÿè[|þÿH‹= U8ÇrZ8èÕþÿHÇòT8E…í„_þÿÿ‹ _v8…Éu]H‹{ èþþÿHÇC éjüÿÿL‹c1ÿºH�5WaèºþÿH‰îH‰ÇL‰â1Àè:óÿÿéÿÿÿH‹{ ¾èGþÿ…À…ýýÿÿéØþÿÿL‹k1ÿºH�5aèsþÿH‰îH‰ÇL‰ê1ÀèóòÿÿéwÿÿÿL‰÷è¶þÿéÑüÿÿèl]þÿA‰Ä=tL‰÷èšþÿé½üÿÿE1ÿL‰÷E1äé)ýÿÿL‹=€s8è;]þÿA‰Äƒø,uè.]þÿA‰Ä=t9L‰÷è\þÿL‰ÿèTþÿéwüÿÿE1äè§ÿÿL‰÷H‰Æè¬þÿ…ÀuvL‰÷è0þÿéýÿÿL‹%$s8èß\þÿƒø)…Úüÿÿ‹Du8ƒøtL‰÷ƒø…¡üÿÿL‰çM…ä…•üÿÿé\ÿÿÿM…ÿt�èDÿÿL‰ÿH‰ÆèIþÿ…Àt&L‰÷A½èÇþÿé“üÿÿL‰÷A½è´þÿéˆüÿÿL‰÷è§þÿésüÿÿf�óúAWI‰ÏAVAUI‰ýATUH‰õSHƒì¶FHH‰T$¨u.H‹~¨t €?/„H‰îèßùÿÿ…À…ÓH‹E€8/„ÚH‹Cv8L�% 1H…Ûu=éÂf�1ÉL‰æ1Àè$þÿH‰îI‰ÆL‰÷è–ùÿÿ…À…†L‰÷èþÿH‹H…Û„Š¶EH¨ t%¶ër8ƒâ€útH‰êH‰ÞL‰ïè¥Úÿÿ…ÀuM¶EHƒàH‹UH‹{<uŽHƒìH‰ÑL‰æ1ÀjH‹T$M‰ùM‰èè þÿH‰îI‰ÆXZL‰÷èùÿÿ…À„zÿÿÿL‰u¸HƒÄ[]A\A]A^A_ÃHƒÄ1À[]A\A]A^A_ÃH‰þH‹==s81Ò1ÀèLþÿH‰îH‰ÇH‰Ãè¾øÿÿ…Àt H‰]¸ë°H‰ßè'þÿéËþÿÿf�óúHƒ tÃ@ATUH‰ýS¶GH¨„µH‹W8H…ÛtUL�%}Œë „H‹;H‰îèõÞÿÿ…Àu"H‹[H…Ût(H‹;L‰áH�µŒH‰îèþÿÿ…ÀtÏ€eHû[]A\ÃfD¶EHH‹]¨tL‹%ur8M…ät €;/„¤ºH�5F]1ÿè þÿH‰ÞH‰Ç1Àè�ïÿÿ€MI[€ Ôp8]A\ÀH‹H‰îè¼÷ÿÿ…Àu�H‹uH‹}èþÿ…Àt7L‹eH‹]ºH�5“\1ÿè¬þÿL‰âH‰ÞH‰Ç1Àè,ïÿÿë›f.„H‹]ºH�5}\éhÿÿÿºH�5„\ëºff.„f�óú1öéµôÿÿDóú¾é¢ôÿÿf�óúUH‰ýSHƒìè^þÿ¿H‰Ãèþÿ¶H‰-÷,8H‰HÇ@„ÒtH� á 8�¶HƒÃˆSÿ¶„ÒuîH‹·,8H‰HƒÀH‰©,8HƒÄ[]Ãf�óúU‰õSH‰ûHƒìèlþÿH…Àt'‹P ‰þr8H‹PH‹@ H‰÷r8H‰x,8HƒÄ[]Ã�…ít‰-Ör8HƒÄ[]ÀH�5y\1ÿºèeþÿHƒÄH‰ÞH‰Ç[1À]éâíÿÿf�óúSH‰óHƒìH…ÿt/H‰Þè÷þÿH…ÀtHƒêT8HÇ@HÇ@ HƒÄ[Ã@¾(H‰ßH‰T$è®þÿH‹T$H…ÀtÚH‰Çë°ff.„@óúUH‰õSH‰ûHƒìHƒt¾KH�=ê[è8îÿÿH‹sH‹=]o8ºèCþÿH‰CH…Àt"H‹EH‰HƒÀH‰EHƒÄ¸[]ÀH‹CH‰CëÔff.„AVI‰þH‰ÏAUA‰õATI‰ÔUL‰ÅSH‰ËHƒì0dH‹%(H‰D$(1ÀèÍ þÿ…ÀtQH‹ƒ¸H‰âH�5ØH‰ßL‰4$H‰D$D‰l$ L‰d$H‰l$èèþÿH‹D$(dH3%(u2HƒÄ0[]A\A]A^Ã1ÿºH�5BèÅ þÿH‰ÞH‰Ç1ÀèHìÿÿë�èñ þÿ�óúAWAVAUATUSHƒìL‹o M…í„áL‰ïè) þÿ…À„êI‹…¸L‹ H‰D$M…äu$鸄HƒD$H‹D$L‹ M…ä„™A‹D$©puÝ©tÖI‹T$ H‹RhH…ÒtÈH‹*E1ööÄt|H‹¶l8H…Ût±�L‹{M…ÿuëED‹C…Àu9M‹?M…ÿt1I‹H‰îèµþÿ…ÀuáI‹T$ I‰ØL‰é1öL‰÷èlþÿÿ‹C…ÀtÌDH‹H…Ûu¨éSÿÿÿHƒÄ[]A\A]A^A_ÃM‹t$ézÿÿÿ1ÿºH�5Á@è„ þÿL‰îH‰Ç1Àèëÿÿéñþÿÿf�óúAWI‰ÿ1É1ÒAVA¸AUATUSHƒìH‹wH‹=Îl8èAþÿH…À„ÅH‰Å¶@ƒè<‡ŸH‹E(H‹@hH…À„ŽL‹-®k8L‹0M…ítfDM‹eM…äuëeDA‹E…ÀuXM‹$$M…ätOI‹|$L‰öè¢þÿ…ÀuÞI‹_ H…ÛtÕDH‹KH‹U(M‰è¾H‹}èGýÿÿH‹H…ÛußA‹E…Àt¯€M‹mM…íu‡HƒÄ¸[]A\A]A^A_ÃI‹_1ÿºH�5éXè\ þÿH‰ÇH‰Þ1ÀèßéÿÿëÆff.„f�óúAWAVAUI‰õATI‰ÔUSHƒìHH‹FhH‰|$H‹H‹BH‹@hH‰ßL‹0L‰öèÖþÿ…ÀtTI‹D$H‹hH…íu ëDf�H‹mH…ít9H‹uH‰ßè«þÿ…ÀuçI‹$H‹|$L‰îH‰D$A‹D$ ‰D$ è˜þÿH‰ÅH…Àxu8HƒÄH[]A\A]A^A_ÀH�5Ñ@1ÿºè… þÿH‹t$H‰Ç1ÀèéÿÿH‰ïèN þÿI‹L$H‹|$L‰îH‰ÂH‰D$èTþÿH‰ÅH…ÀˆFH‹D$L�èL9ЃL‹8H‰ÅM…ÿ„ H‰\$(H‹\$L‰t$0L‰l$D‹l$ L‰d$ M‰Ôë>@A÷FtH‹D$ H‹@I9F tW€HƒÅI9솹L‹}M…ÿ„¬I‹H…ÀtÞL‹0M…ötÖE…ít±I‹F H� E8H9Ètö@!u AöF‚t´@H…Û„¯I‹~H‰ÞèK þÿ…À”À„Àt’M‹Nº1ÿM‹H�5WHƒÅL‰L$8èN þÿHƒìL‰ùÿt$8L‹L$HH‰Ç1ÀL‹D$8H‹T$(H‹t$èµçÿÿXZI9ì‡GÿÿÿH‹|$HƒÄH[]A\A]A^A_ébþÿ1ÿºH�54?èïþÿH‹t$H‰Ç1Àèpçÿÿé“þÿÿA‹FÁèƒàéSÿÿÿf„óú‹ úh8H‹H‹…ÉtH‹rH‹xéo þÿ€H‹rH‹xé[ þÿff.„óúAUI‰ÕATUH‰õSH‰ûHƒì‹+N8…À„»1ɺH‰ÞH�=*N8èÕ þÿI‰ÄH…À„ÙI‹\$ H…ÛtH;kuëG€H9kt:H‹H…Ûuò¾H�=æM8è± þÿH‰ÃH…À„ÜI‹D$ H‰I‰\$ €cøH‰kH�QC8I9ÅtdAöE!u€KHƒÄ[]A\A]ÃfD€KHƒÄ[]A\A]Ãf„º(H�5DøÿÿH�=mM8èXþÿ…ÀtLÇBM8éÿÿÿD€KHƒÄ[]A\A]Ã�1ÿºH�5zUèMþÿH‰Ç1ÀèÓåÿÿéÿÿÿfD1ÿºH�5Uè%þÿH‰Ç1Àè«åÿÿë•1ÿºH�5ATèþÿH‰Ç1ÀèŒåÿÿéÿÿÿ€óú‹®L8…Ò„@AUATU‰õSHƒì…ö…“D‹»L8H‹LL8L‹%=L8E…Ò„H‹…L8A�RÿH‰ß1ÉD‹•L8E1íL�HM�ÑL‰â€H‹0H…ö„zLÇ�H‹F H…ÀtHƒÂë�H‰ÊH‹H�JH…Àuñ¹H‹6I�8H…ö„<H‰Çëǃþtƒþ„ú1ÀHƒÄ[]A\A]ÃH‹5½K8H…ö„‰‹ºK8H‹—K81íL�%ÖK8H‹=§K8H‹xK8‰ÚK8‹ŒK8L�,H‰=±K8Lë‰ÄK8èC þÿH‹H�Ï;8I9Ðt A÷Æ „½€x„+öEE…AA€L$€H€‹ªD8…Àu-I‹}8L‰L$L‰$H…ÿtdH‹s1É1ÒèWþÿL‹$L‹L$H…ÀtIH‹jD8H‰éL‰âH‰ÞD‰t$@L‰ïH‹@PHƒÄ[]A\A]A^ÿà€H‹F(H…í…GÿÿÿéHÿÿÿfDHƒÄ¸[]A\A]A^ÃfDA÷Æ…[ÿÿÿH�¼88I9Є›AöEt<¶P�Jý€ù†¥€úu'H‹P(H‹RH‹’ðH…ÒtöBF t Æ@H‰P(DAö@!„ýþÿÿöEEu-éçþÿÿf�A€|$…äþÿÿöEEtA€L$éÓþÿÿA€L$€HéÁþÿÿ�A€L$éµþÿÿD¶H�Qÿ€úw§H‹P(H…ÒtöBF t˜H‰h(ë’H‹P(H‹’ðH…Ò…`ÿÿÿénÿÿÿfDóúHƒ=$C8SH‰ût‹{(ƒÿÿt èaþýÿÇC(ÿÿÿÿ1À[ÃfD¾lH�=£LèŸÛÿÿëÏff.„f�óúUH‰ýSH‰óHƒìHƒ=ÈB8t&H‹E H‰H‹E0H‰CH‹E8H‰k H‰CHƒÄ1À[]Ãf�¾ H�=CLè?ÛÿÿëÇff.„f�óúH‹uB8SH‰ûH…Àt H‰X81À[Ã@¾ãH�=LèÿÚÿÿH‹HB8H‰X81À[ÃóúH‹5B8SH‰ûH…Àt H‰X01À[Ã@¾ÚH�=ÃKè¿ÚÿÿH‹B8H‰X01À[ÃóúH‹õA8SH‰ûH…Àt H‰X(1À[Ã@¾ÑH�=ƒKèÚÿÿH‹ÈA8H‰X(1À[ÃóúHƒ=´A8SH‰ûtH‰ßèýýÿ1öH‰ÇèlÞÿÿ1À[ľPH�=3Kè/ÚÿÿëÏff.„f�óúHƒ=dA8SH‰ût&H‰ßè¶üýÿ1Ò1öH‰Çè*×þÿH…Àt%€HI€1À[ÃD¾BH�=ÛJè×ÙÿÿëÇD¸[Ãf„óúHƒ=A8SH‰ût.H‰ßèVüýÿ1Ò¾H‰ÇèÇÖþÿH…Àt*€HI€1À[Ãf.„¾3H�=sJèoÙÿÿë¿D¸[Ã�óúAWAVI‰öAUATUSH‰ûHƒìHƒ=�@8H‹o8L‹o0t~H‹CH…Àt H9k„»L‰èH‰kD‹C(1ÿH™L‰k¹H÷=¬?8I)ÕHÕI‰ÔºM‰éH‰îèÛùýÿHƒøÿ„‘ÇC,IÄL‰c1ÀM‰&HƒÄ[]A\A]A^A_À¾!H�=«Iè§ØÿÿL‹c8L9å„dÿÿÿL‹{ 1ÿºH�5�GèùýÿL‰âH‰ÇL‰þ1Àèƒ×ÿÿé8ÿÿÿfDL9k…;ÿÿÿI‰1À뉀ÇC,‹{(1ÒL‰îèüùýÿH…ÀxQH‹;H‰îè¼øýÿI‰ÄH…Àt>I‰Åë€IÅH)ÅH…í„2ÿÿÿ‹{(H‰êL‰îè ûýÿH…À„ÿÿÿØè;öýÿƒ8tÔ¸éÿÿÿff.„�óúAWAVAUI‰ÕATUSHƒì8Hƒ=?8L‹?‰t$$„6Hc|$$H‰ûHÁçèõùýÿH‰D$(…ÛŽ‹D$$H‹L$(H�-8IƒèH‰ËH�DÁH‰D$„I‹GL‰ÿÿ�I‹UH‰I‰ÄL‰8H…Ò„ýI‹}1ÉH�5²ã1Àè ùýÿAƒ}I‰D$IÇD$‡`A‹EHcD…Hè>ÿà�I‹u A¾H…ö„�1ÒH�=ìG1Àè½øýÿL‰ÿH‰ÆH‰D$è½ùýÿL‹D$H…ÀH‰D$„êL‰Çè’ôýÿI‹WH‹D$‹RE‰t$I‰D$ ƒú„šHƒÃIƒÅ0H;\$… ÿÿÿ‹T$$H‹t$(L‰ÿè¯úýÿ1ÀHƒÄ8[]A\A]A^A_ÃfDI‹EI‰D$I‹Gƒx„¡AÇD$H�18I‰D$ ë—f.„I‹GA¾€‹PH�28E‰t$I‰D$ ƒú…fÿÿÿI‹$H…ÀtH‹Pƒz„²M‹d$ºH�5E1ÿèJöýÿH‰ÇL‰æ1ÀE1äèÊÔÿÿA‹Mƒù‡˜A¶D$IH�5ÜGƒàü AˆD$IéýþÿÿI‹GE1ö‹PH�w18éÔþÿÿf.„I‹u A¾‚H…ö…pþÿÿH�5ÙCL‰ÿè>øýÿI‹W‹Réœþÿÿf�I‹Eéþÿÿ€Hƒ¸„@ÿÿÿA‹Mƒù†hÿÿÿºH�5qD1ÿ‰L$è~õýÿ‹L$H‰Ç1À‰ÎèþÓÿÿHƒÄ8¸[]A\A]A^A_Ãf.„º�"L‰ÆL‰ÿè€ôýÿH…À…iÿÿÿ€¸é9þÿÿfDAÇD$LòÿÿÿH�p/8IÇD$0AÇD$I‰D$ é{þÿÿ@¾ñH�=cEè_Ôÿÿé´üÿÿf.„óúSH�ìÐH‰T$0H‰L$8L‰D$@L‰L$H„Àt7)D$P)L$`)T$p)œ$€)¤$�)¬$ )´$°)¼$ÀdH‹%(H‰D$1ÀH�„$àÇ$H‰D$H�D$ ÇD$0H‰D$…ÿ„—ƒÿ„¶ƒÿH�ÂDH�=¶DH‰òHEøH� ëE1À1ÀH�5´Dè^õýÿH‹=.8H‰Ãè�ùýÿH‰â¹H‰ÞH‹=½28èÈÃÿÿH‹=±28èlùýÿH‰ßè$ñýÿ1ÀH‹\$dH3%(uxH�ÄÐ[Ãf„H‹=¹-8H‰â1ÉèÃÿÿH‹5¨-8¿ è^÷ýÿë¸@1ÉH�sêH�= D1ÀèÁôýÿH‹=z-8H‰â¹H‰ÃH‰Æè7ÃÿÿH‰ßèŸðýÿévÿÿÿèuóýÿDAWAVAUATU‰õSH‰ÓHƒìHƒ=å98L‹'‰L$ „ø…펫�EÿH�@HÁàH�l0éÒH‹=iS8A¸1É1ÒèÒõýÿI‰ÆM…ö„çE¶~A¹A�Gÿ<v{A�Gý<‡ŸI‹F(A€ÿuH‹@H‹�ð‹CH‹58S8ƒèƒø‡<A¹H9Öt9I9Ô„ H…Òt+‹BDA¹Áè%ÿÿ©uE1ɨ@A•ÁAƒÁfDD‰K(‹–U8…À…†HƒÃ0H9Ý„ă{H‹3…$ÿÿÿH‹=µR8H‰òE1À1ÉA¹H�5PR8è{ðýÿI‰ÆM…ö…ÿÿÿ‹Kƒù‡ó¸HÓਅC¨ „ÛA¹D‰K(‹U8…Àt�€D‹sD‹{º1ÿL‹+H�5×@D‰L$HƒÃ0èyñýÿD‹L$E‰ðD‰ùH‰ÇL‰êL‰æ1ÀèîÏÿÿH9Ý…<ÿÿÿHƒÄ1À[]A\A]A^A_Ã@A¹H9Ö„ùþÿÿI9ÔtdH…Ò„ëþÿÿE1ÉöBF A•ÁAƒÁé×þÿÿ€H‹Ñ78ºH�5 @1ÿL‹hèêðýÿA¶×H‰ÇL‰î1ÀèiÏÿÿE¶~é(þÿÿ€A¶FA¹¨…}þÿÿ¶Q8‰Öƒæ@€þ„…ƒàƒâÐt%I‹vH‹=ÊQ8è…õýÿ…ÀtI�A¹é=þÿÿD@€þtÕL�-c28I‹}H…ÿt I‹vèôýÿ…Àt0M‹mM…íuáë¿€H‹áP8H‹@ƒxt-1Àƒ{–À…ÀtšD‹L$ éØýÿÿ¾­H�=ƒ@èÏÿÿéòüÿÿA¶Fa‰Âƒâ”Àƒú” Ð¶ÀëÂH�™A¾ÃH�=L@è(¿ÿÿ„óú¹ é‚üÿÿf�óú¹érüÿÿf�óúAWAVAUATUSHƒìXdH‹%(H‰D$H1ÀöGF u@¶WHH‰ûƒâ0t<€úuH‹GPH‹@H‹L$HdH3 %(…“HƒÄX[]A\A]A^A_Ã@1ÀëÕ@L‹/H‹H‰ÝÇÜ-8èw÷ýÿH�5Ë?L‰ï…ÀA‰ÄHE-°O81Ò1ÀèWðýÿH‰îH‰Çè¼ñýÿH‰ÅH…À„Ð�HD"H‰ÇèÑìýÿ…À„¹E…äu=H‰ßèòýÿH‰ïH‰Æè¡ùýÿH‰ßèéðýÿH‰ï‰Æè�õýÿH‹EH‰îH‰ßÿ�8…À„wº� H�5~<H‰ïè³íýÿH…À„Z¾@H‰ïèmîýÿI‰ÄH…À„L�l$ H‰ßL‰îèqùýÿ…À„ÿÿÿH‹t$ H;3„‹|$(L‰d$@èMïýÿ‰D$(…ÀˆÙþÿÿA‰D$(H‹3H‰ïH‹D$0I‰,$IÇD$I‰D$0H‹D$8IÇD$IÇD$AÇD$,I‰D$8èÕîÿÿL‹=¦48ÇD$I‰D$ M…ÿ„ÀH�D$H‰$ë8DHÇ]48E…Àt I‹GH‰E48M‹?M…ÿ„‰‹L$…É…}Iƒ(tá‹|$(º1öL‰=48è‡îýÿH‹4$L‰ïI‰ÆAÿW(‹t$A‰À…öu–‹|$(1ÒL‰ö‰D$ è\îýÿD‹D$ ézÿÿÿf�ºH�5œ<1ÿ1íèûìýÿH‰Ç1Àè�Ëÿÿé‚þÿÿ@L‹-©38M…ít H�5Í<1ÿºèÉìýÿL‰îH‰Ç1ÀèLËÿÿAƒ|$(ÿtH‹{è õýÿ…À„«‹T$…Òt+¶CHH‰kPH‰ïƒàσȈCHèâêýÿH‹Eéýÿÿf„A‹D$,…À…ƒ¶CHH‰ïƒàÏƒÈ ˆCHèñýÿ1Àéèüÿÿ€èûíýÿ1ÿºH�5í;A‰Åè%ìýÿD‰îH‰Ç1Àè¨ÊÿÿéÂýÿÿH‰ïèíÿÿH‰D$ éÓýÿÿfDA‹|$(èîýÿAÇD$(ÿÿÿÿé=ÿÿÿI‹D$I‹|$I‹t$H™H÷=ð18HÖH)×è½òýÿéUÿÿÿèóëýÿóúH‹m28H…ÀtÀºH�5]<1ÿé…ëýÿDóúAUATI‰ü¿HUSHƒìH‹K28è>íýÿfïÀ¾L‰çH‰ÅHÇ@@L‰`@@ @0èoðýÿH‰EH…À„ŠH…ÛtH‹EH;Cu ëA�H9Ct:H‹H…ÛuòH‹ã8H‰-Ô18H‰-Õ8H‰(HƒÅH‰-·18HƒÄ[]A\A]Ã@ºH�5¡;1ÿè½êýÿL‰æH‰Ç1Àè@ÉÿÿHƒÄH‰ï[]A\A]éþçýÿfDè³õýÿ1ÿºH�5­:I‰Åè}êýÿL‰êL‰æH‰Ç1ÀèýÈÿÿéFÿÿÿ„óúHƒ=418Stf€?-H‰ûu(€-H�wtH�w¹ H�=';ó¦—À¾À…Àt4¿è÷ëýÿH‹è08H‰XHÇH‰Ö08H‰H‹Ô08Hƒ@ 1À[úH�5°:1ÿèØéýÿ[H‰˜08¸ÿÿÿÿÃf.„óúH‹�08H…À„AW1ÒAVAUATUSHƒì@H‹H ‰ÖH‹H9ñGÑH…Àuì�zL�%^;HƒÇM�t$@L�-¾:HÁçL�=ïÿÿè:ëýÿH� cîÿÿH�¬îÿÿH�hH‰Ã¸ ‰EøƒøwA„IcD…Lè>ÿàDH�YùÿÿH‰EDHƒÅM9æt?A‹$IƒÄ‰EøƒøvǾÈH�=j9HƒÅèbÈÿÿH�;îÿÿH� äíÿÿM9æuÈ€L‹-©/8L�£H�-º9M…í„…f.„I‹}H‰îè$óýÿI‰ÆH…À„ˆI‹UL‰àH…Òt@H‹JH‹ÇHƒÀH‰HøH…ÒuæÇH‰ßÇ@L‰-/8AÿÖHÇ /8A‰Æ…À…þM‹mM…íu…¶H8H�=wøÿÿ‰ÐƒÊƒà‰É.8H‹‚H8óoH‰¯.8ˆRH8)*.8óoH) ..8óoP )2.8óoX0)6.8óo`@)%:.8óohP)->.8óop`)5B.8H‹@pH‰G.8H� éÿÿH‰.8H�Â-8H‰ûG8èåýÿè±ðýÿH˜H‰�-8HƒÄ[]A\A]A^A_Ãf„H�iíÿÿH‰Eé0þÿÿÇEæé$þÿÿ@H‰Méþÿÿ€H‹‘8H‰EéþÿÿH‰Ué÷ýÿÿ€H�™êÿÿH‰EéàýÿÿH�ÙêÿÿH‰EéÐýÿÿH� òÿÿH‰EéÀýÿÿL‰}é·ýÿÿ€H� ÷ÿÿH‰Eé ýÿÿH�YîÿÿH‰Eé�ýÿÿH�éêÿÿH‰Eé€ýÿÿH�ëÿÿH‰EépýÿÿH�IëÿÿH‰Eé`ýÿÿ¶ÉF81öƒà<t¾„Àt 1ö<@”ƃƉué4ýÿÿ@ÇEé$ýÿÿ@M‹}1ÿºH�5,7èæýÿD‰òH‰ÇL‰þ1Àè™ÄÿÿéÖýÿÿ@I‹}H�5û6è€ðýÿI‰ÆH…À…\ýÿÿèÿðýÿ1ÿºH�5ù5I‰ÇI‹EH‰D$èÀåýÿH‹t$L‰úH‰Ç1Àè>Äÿÿé!ýÿÿÄóúUSH‰ûHƒìƒt¾¹H�=6èüÄÿÿH‹{ èÓõÿÿH…Àt(H‹{ ¾H‹oPèÌKÿÿH‹{ Hƒ¿Øt€KI H‰k HƒÄ[]ÀèSíýÿëã�óúSH‹ ,8Ç:+8H…Ût9DH‹C0H…Àt#H‰Ð+8ÿÐHÇÃ+8…Àt H‹CH‰¬+8H‹H…ÛuÌ1ÀHƒ=š+8[•À÷ØÃff.„óúAUATUSHƒìH‹“+8H…ÛtZL�%ï4€H‹C8H…Àt;‹K@…Éu4‹îG8…Òu!ÇC@H‰@+8ÿÐHÇ3+8‰Å…ÀuH‹{è$ëýÿH‹H…Ûu´HƒÄ[]A\A]Ã�L‹kL‰æ1ÿºè-äýÿ‰êH‰ÇL‰î1ÀèÞÁÿÿë¿f.„f�@¶×H�åò7·P¨u%¨€uHƒì¨„œïýÿ�G©HƒÄÃD�GÉÃ@�GÐÃ@óúI‰ø¹H�=á5¸L‰Æó¦—€ڄÒtT¹H�=Å5L‰Æó¦—€ڄÒt9¹H�=¯5L‰Æó¦—€ڄÒt¹H�=PL‰Æó¦—À„À”À¶ÀÃ@óúH‰ú¹H�=a5¸H‰Öó¦—Á€Ù„ÉtX¹H�=J5H‰Öó¦—Á€Ù„Ét=¹H�=*5H‰Ö¸ó¦—Á€Ù„Ét¹H�=ËÿH‰Öó¦—Á€Ù1À„ÉtÃH�JH�=¥ñ7¶Rë!€¶qöDwtHƒÀHƒÁ¶„Òt¶òöDwuÜ€ú-t€ú:uHƒÁëß@À1ÀÃDóúAWH‰ðAVAUI‰ÍATUH‰ýH�=w4SH‰ÓH�ìÈdH‹ %(H‰Œ$¸1ɹó¦—€ڄÒ„X¹H�=<4H‰Æó¦—€ڄÒ„¹H�="4H‰Æó¦—ÀÛ¾Û…Û„W¹H�=¼þH‰Æó¦—€ڄÒ…ˆH�XE1ä¶@H�-Žð7ë@<-t<:…dHƒÃ¶„ÀtY¶Ð¾øöDUtܶSöDUtÑèdýÿÿO�|%IƒÄÁàAˆ¾{A‰ÆH�CH‰D$è@ýÿÿH‹\$A ÆEˆ7¶„Àu­fD»H‹Œ$¸dH3 %(‰Ø…ÝH�ÄÈ[]A\A]A^A_ÄL�d$L‰çè£åL‰âH�5¹ùH‰ïÿӉÅÀt«L‰îL‰ç»èNøë™@L�d$L‰çè[ØL‰âH�5ñàH‰ïÿӉÅÀ„oÿÿÿL‰îL‰ç»è"àéZÿÿÿD1öH�=±21ÀD‰D$èCèýÿ‰Å…Àˆ6ÿÿÿHcT$L‰î‰Çèêâýÿ‰ïH‰ÃèpâýÿD‹D$A9؞öÛé ÿÿÿèxàýÿèóÝýÿóúǶ@8ƒâ€ú„›‹5B8H�n]…ö„‚‹ ØA8H��…É„mH‹5B@8H¹@H¸@H!ñH9Á„‚H¿ H¸ H!÷H9Ç„JI¸H�aI¹I!ðM9È„ÿD‹ Ô?8H�E3A�á@A�ù@„ÝH�ÊX€ú„ÍH¸@H9Á„H¸ H9Ç„“H¹H�ÒâI9È„�H�òA�ù@t}H�ª'€útqH¸@H‰òH!ÂH9„ÎH¸ H!ÆH9Æ„ÒH�Gµö?8u2ö ?8@H�ÀýH�!ØHDÂÃ@H�©žöš?8„YÿÿÿË=^@8H�SFH�¤0…ÿHDÂÃDH�áÇöb?8„¢þÿÿÃöQ?8H�z£H�K�HEÂÃfDö1?8H�Â{H�3¿HEÂÃö?8H�hêH� IHDÂÃH�5möö>8„ÿÿÿÀóúATUH‰ýS¾_H‰ØÁë‰Âƒâ¨@u#ƒËL‹g „ÒtAöD$EuHAöD$Eu([1À]A\Ã�„Òt L‹g AöD$Eu(…ÛtäL‹e AöD$Et؉ÞL‰çèFâýÿ[1À]A\À1ÿH�5§ ºèEÝýÿL‰æH‰Ç1ÀèÈ»ÿÿ…Ûtœë¶f�óúSºH‰ûH�5¬ 1ÿèÝýÿH‰ß¾H‰Â1Àè£æýÿºH�5× 1ÿèðÜýÿH‰ß¾H‰Â1Àè~æýÿºH�5B!1ÿèËÜýÿH‰ß¾H‰Â1ÀèYæýÿºH�5e!1ÿè¦ÜýÿH‰ß¾H‰Â1Àè4æýÿºH�5ˆ!1ÿè�ÜýÿH‰ß¾H‰Â1ÀèæýÿºH�5k"1ÿè\ÜýÿH‰ß¾[H‰Â1Àééåýÿf„AWAVAUATUH‰õSHƒìL‹7H‰|$H‰÷M…ö„»èFÜýÿD¾%6>8M‰÷H‰ÃE‰åë HƒÀI‰Çt0H‰ÚL‰þH‰ïèùÙýÿ…ÀuA¶„ÀtiD8ètdD‰æL‰ÿè|ÜýÿH…ÀuÇL‰÷èïÛýÿH�|è•ÝýÿHƒìD¾ Ñ=8HÇÂÿÿÿÿUL‹t$H‰ÃH� ß¾H‰ß1ÀM‹èÐæýÿI‹>èØØýÿI‰XZHƒÄ[]A\A]A^A_Ã@è‹ÝýÿH‹L$H‰HƒÄ[]A\A]A^A_Ã@óúUSHƒìdH‹%(H‰D$1À�ÿ’„úŽ´�ÿ–„Žâ�ÿ˜„–Œ°�ÿ™…lH‹8H�5ÐâH‰ßè~Øýÿ…À„&H�5{&H‰ßègØýÿ…À„WH�5i&H‰ßèPØýÿ…À…»Çú:8¸f„H‹\$dH3%(…æHƒÄ[]ÃD�ÿ-„„~b�ÿ�„¶�È�ÿ.…¼€ ’:8¸ë¦fD�ÿ”„¤�¶¶k:8ƒàüƒÈˆ_:8¸éqÿÿÿ�ƒÿP„§ƒÿz…^ÿÿÿH‹8¹H�=³%H‰Þó¦—À„À„1¹H�=‹%H‰Þó¦—À„À…“¶ö98ƒà?ƒÈ@ˆê98¸éþþÿÿfD1Àéñþÿÿ�€%Í98ü¸éßþÿÿ€H‹=‘8è\ßþÿ¸éÂþÿÿf�H‹5y8H�="8èíüÿÿ¸é£þÿÿHƒ 8:8¸f� l98Àé…þÿÿD¶]98H‹28¹H�=º$ƒàÏH‰Þˆ>98ó¦—€ڄÒ„¹H�=„$H‰Þó¦—€ڄÒ…kƒÈ ˆ98¸éþÿÿ„€%î88û¸éÿýÿÿ€€ Ö88¸éçýÿÿ€H‹5™8H�=:!8è üÿÿ¸éÃýÿÿH‹=!8H…ÿtè�ÕýÿHÇü 8H‹]8H…Ò„¤¹H�=àH‰Ö¸ó¦—Á€Ù„É„pýÿÿH‰×èÚýÿH‰¹ 8¸éWýÿÿ€€%.88÷¸é?ýÿÿ€ƒÈˆ88¸é%ýÿÿDÇ88¸é ýÿÿ@€ ã78À¸é÷üÿÿ€H�‘)H‰¢8émÿÿÿDǺ78¸éÄüÿÿ@¹H�= #H‰Þó¦—€ڄÒ…ƒÈ0ˆ|78¸éŽüÿÿfD¹H�=á"H‰Þó¦—À„ÀuR€ L78 ¸é]üÿÿH�5 "H‰ßè~ÔýÿºH�5…À„bÿÿÿ1ÿè³ÖýÿH‰ÞH‰Ç1Àè6µÿÿ¸éüÿÿ¹H�=}"H‰Þó¦—À„À„ˆ¹H�=n"H‰Þó¦—À„À„Ź H�=b"H‰Þó¦—À„À„&¹ H�=R"H‰Þó¦—À„À…Ͷƒ68ƒàóƒÈˆw68¸é‡ûÿÿºH�5‹é<ÿÿÿ1ÒH‰æH�{èxÞýÿH‹$H‰588€:u H�PÿH…„žûÿÿH‹8ºH�5hH�X1ÿè­ÕýÿH‰ÞH‰Ç1Àè0´ÿÿénûÿÿ1ÒH‰æH�{èÞýÿH‹$H‰â78€:u H�PÿH…„CûÿÿH‹©8ºH�55H�X룹 H�=e!H‰Þó¦—À„À…‹¶˜58ƒàóƒÈˆŒ58¸éœúÿÿ1ÒH‰æH�{ èžÝýÿH‹$H‰s58€:u#H…ÀxHƒ=a58…¾úÿÿHÇP58ÿÿÿÿé®úÿÿH‹81ÿºH�5ÆH�X è½ÔýÿH‰ÞH‰Ç1Àè@³ÿÿëµH�5Í H‰ßèoØýÿ…ÀuH� °58¸éúÿÿèÁÔýÿH�5{H‰ßèBØýÿ…ÀuHƒ †58¸éÜùÿÿH�5‡ H‰ßèØýÿ…ÀuHƒ a58 ¸é·ùÿÿH�5l H‰ßèø×ýÿ…ÀuH� 958¸é�ùÿÿH�5N H‰ßèÐ×ýÿ…ÀuHƒ 58¸éjùÿÿH�52 H‰ßè«×ýÿ…ÀuH� ì48¸éBùÿÿH�5 H‰ßèƒ×ýÿ…ÀuHƒ Ç48¸éùÿÿH�5ûH‰ßè^×ýÿ…ÀuHƒ ¢48@¸éøøÿÿH�5ßH‰ßè9×ýÿ…ÀuH� z48¸éÐøÿÿH�53þH‰ßè×ýÿ…ÀuHƒ M48¸Hƒ H48飸ÿÿH�5‘H‰ßèäÖýÿ…ÀuHƒ% 48÷¸Hƒ%48þévøÿÿH�5iH‰ßè·Öýÿ…ÀuHƒ ó38¸H� ë38€éFøÿÿH�5BH‰ßè‡Öýÿ…Àu€ 38¸é"øÿÿH�5H‰ßècÖýÿ…Àu€%í28þ¸éþ÷ÿÿH�5H‰ßè?Öýÿ…Àu€ Ä28¸éÚ÷ÿÿH�5îH‰ßèÖýÿ…Àu€ £28 ¸é¶÷ÿÿH�5ÈH‰ßè÷Õýÿ…Àu€%28߸é’÷ÿÿH�5®H‰ßèÓÕýÿ…Àu€ [28@¸én÷ÿÿH�5ˆH‰ßè¯Õýÿ…Àu€%728¿¸éJ÷ÿÿH�5IÜH‰ßè‹Õýÿ…Àu¶28ƒàóƒÈˆ28¸é÷ÿÿH�5DH‰ßè[Õýÿ…Àu¶â18ƒàóƒÈˆÖ18¸éêöÿÿH�5ªÓH‰ßè+Õýÿ…Àu€ ´18¸éÆöÿÿH�5ùH‰ßèÕýÿ…Àu€%�18÷¸é¢öÿÿH�5ÜH‰ßèãÔýÿ…ÀtÜH�5ÑH‰ßèÐÔýÿ…ÀuÇò18¸éhöÿÿH�5ÄH‰ßè©Ôýÿ…ÀuÇÏ18¸éAöÿÿH�5›H‰ßè‚Ôýÿ…ÀuǨ18¸éöÿÿH�5�H‰ßè[Ôýÿ…Àu€ è08¸éöõÿÿº H�5uH‰ßèrÎýÿ…Àu6H�k H�5hH‰ïèÔýÿ…ÀuC·¨08f%ý€Ìgf‰š08¸é¨õÿÿH�5]H‰ßèéÓýÿ…ÀuD€ u08¸é„õÿÿH�5H‰ïèÅÓýÿ…ÀuH·R08f%ýf �f‰C08¸éQõÿÿH�5 H‰ßè’Óýÿ…À…€ 08¸é)õÿÿºH�5ÉH‰ïè¥Íýÿ…À„‚ºH�5µH‰ïè‰Íýÿ…ÀuY1ÒH‰æH�{è÷×ýÿˆÊ/8H‹$€8t+H‹‘ 8H�5¢1ÿºH�Xè:ÏýÿH‰ÞH‰Ç1Àè½­ÿÿ€ Ž/8¸éœôÿÿºH�5 éQøÿÿ1ÒH‰æH�{è�×ýÿˆ`/8H‹$€8t+H‹' 8H�51ÿºH�XèÐÎýÿH‰ÞH‰Ç1ÀèS­ÿÿ€%$/8ý¸é2ôÿÿH�5òH‰ßèsÒýÿ…Àu€ ÿ.8¸éôÿÿº H�5ÏH‰ßèŠÌýÿ…Àu(HƒÃ H�5eÖH‰ßè3Òýÿ…Àu5€%¿.8Ÿ¸éÎóÿÿH�5 H‰ßèÒýÿ…ÀuA€ ›.8¸éªóÿÿH�5ÚH‰ßèëÑýÿ…Àu.¶w.8ƒàŸƒÈ ˆk.8¸ézóÿÿºH�5Né/÷ÿÿH�5úH‰ßèªÑýÿ…Àu¶6.8ƒàŸƒÈ@ˆ*.8¸é9óÿÿºH�5eéîöÿÿ„óúAUI‰õATI‰ÌUHcïSH�uHcÚHƒÃHÁãHƒìI‹}èqÎýÿ‹sH‰ÞI‰E‰(¶fˆT(I‹<$èMÎýÿH�5Ƶ7I‰$H�Œ@þÿÿH‹³µ7H�yH‰H‹]·7HƒçøH‰�¸H)ùH)Î�ÁÀÁéóH¥HƒÄ[]A\A]Ãff.„f�óúAW1ÀAVAUATUSHƒìD¶zHAöÇ„åL‹jI‰þH‹~H‰ÓH‰õèçÌýÿL‰ïI‰ÄèÜÌýÿIÄAƒç…ÏL‰÷èÇÌýÿI�|èmÎýÿHƒì¾M‰éAVL‹EH‰ÇI‰ÄHÇÂÿÿÿÿ1ÀH� âè°×ýÿXH‰ÞZL‰çè3³ÿÿ…À„¿L‰cH‹{ ¾èéÕýÿ‰Â¸…ÒtFH‹S öBEt<¶CH‰Âƒâ€út¾ôH�=•è…«ÿÿ¶CH¨„‘H‹{ L‰îèÍÔýÿ¸HƒÄ[]A\A]A^A_Ãf„I�|$è¦ÍýÿL‹EM‰é¾H‰ÇI‰Ä1ÀHÇÂÿÿÿÿH� GèïÖýÿH‰ÞL‰çèt²ÿÿ…À…AÿÿÿL‰ç‰D$ èàÈýÿ‹D$ HƒÄ[]A\A]A^A_ÃDH‹{èŸÎýÿI‰Åé^ÿÿÿ€óúöª+8@t Ç 8éÔ•ÿÿ@óúAWAVAUE1íATL�%z+8USHƒìhdH‹%(H‰D$X1ÀH‹…+8ƒx@„ëH‹-œ,8H…í„H‹œ+8H…Û„£L�5¬8ëf.„H‹›øH…Û„€H‹CƒxuæH‹ƒH‹¸H…ÿtÓ€?tÎè¹ÌýÿI‰Çë@ÆA€?…‹HƒÀI‰Çtª¾5‹,8L‰ÿè ËýÿH…ÀuÖA€?t�L‰þL‰÷èîÿÿH‹›øH…Ûu‰f„HƒìL‹ 8L‹8H‰êH�D$ H‹ Ï+8H‹5°+8PH‹=°*8ATÿ5À+8èãÏýÿHƒÄ …À„�H‹=€+8H…ÿtH‹\$H…ÛtH‰»°èõÉýÿHƒÀH‰C8L‹=Æ 8M…ÿ„íL�%Xëf@H‹*8Æ+E1É1ÒI‹O E1ÀH‰ÞH�=ß)8ÿP(H‰ßèÔÆýÿI‹FhH…ÀtH‹P@I‹N8H9ÊrH)ÊH‰P@A�N € IÇF8M‹0M…ÿt~AöGHuðI‹ L‰æè›ËýÿI‰ÆH…ÀtÜH‹h8H�}èöÊýÿI‹ 1ÉI‰èH‰ÂL‰öH‰ÃèÉýÿ…À…WÿÿÿI‹G 1ÿºH�5ýH‰$èÜÈýÿH‹4$H‰Ç1Àè^§ÿÿé)ÿÿÿf„è;“ÿÿH‹=d)8H�5 )8èXÑýÿ…ÀttM…ít¶D$foD$@AˆEH‹D$PAE I‰E0H‹D$XdH3%(…žHƒÄh[]A\A]A^A_À1ÿºH�52èEÈýÿH‰Ç1Àè˦ÿÿéOþÿÿfD1ÿºH�5 èÈýÿH‰Ç1À裦ÿÿéjÿÿÿfDH‹=±(8L‰æè‰Çýÿ¶R(8ƒà<u;E1íH�=!èì£þÿH‹-…)8H…í…éüÿÿH�=kè°ÄýÿH‰ÅéÕüÿÿ„H‹=1(8A¸1É1ÒH�51è“ÊýÿI‰ÅH…Àt ¶@<v<u”H‹((8ºL‰îH�=É'8H‹@H‹€`ÿ�°A¶Ea‰Âƒâ€út ƒàüƒÈAˆEaI‹E0óAoUIÇE0óAo] óAoMH‰D$PA¶E)L$ ˆD$H�—8)T$0)\$@AÆEI‰E(éÿÿÿ€L‰þL‰÷H‰$è™êÿÿH‹$é]üÿÿè Çýÿff.„AUATL�%âUH�-™SH‰ûHƒìƒ{w6‹CHcD…Hè>ÿà�E1ÉH‹S¹L‰çH‰Öó¦—À„ÀucH‹[ ƒ{vÊHƒÄ[]A\A]ÃfDH‹[ë­f�H‹{è‡ÿÿÿH‹{ è~ÿÿÿH‹[(ë“„H‹{ègÿÿÿë²DA¹ë‹„D‹C(H‹=µ&8D‰ÉH�5[&8èÄýÿ…À…{ÿÿÿL‹k1ÿºH�5,è×ÅýÿH‰ÇL‰î1ÀèZ¤ÿÿéRÿÿÿDóúƒtÃDH‹éçþÿÿ€óúAWAVAUATUSHƒìH‹‡H‹WH‹€˜ L‹²`L‹`0H‹H(I‹D$hH‰L$H� ì8H9È„ L‹¸àH‰ýM‹l$8I‹_HH…Û„·I\$`H‰Þ¿Iƒíÿ’�H‹EL‰ïH�sÿ��H‹EH�s¿ÿ��E‰èH�KH‰ïÇC GNUI‹†øH‹t$H‹P èfâÿÿI‹t$`1ÒIwH‰ïM‹l$8èÐýÿ1Ò…ÀtHƒÄ‰Ð[]A\A]A^A_ÀH‰êL‰îH‰ßèÉýÿ1ÒI9Å”ÂëЄI‹œ$°H…Û…=ÿÿÿL‰ïèGÆýÿM‹l$8H‹UH‰ÃI‰„$°éÿÿÿfDºH�5¼ 1ÿè5ÄýÿH‰Ç1À転ÿÿºéiÿÿÿ�AWAVAUATUH‰ýS1ÛHƒìH‹=N%8è1ÄýÿD¾%!&8H‰ïI‰Åë�H�x€?/J�+D‰æHDØè‰ÄýÿH…ÀuäH‰ïèüÃýÿH�|è¢ÅýÿD¾5â%8I‰ÇI‰Äë-f�D‰öH‰ïèUÄýÿH…ÀtCH)èH‰îL‰çH�XH‰ÚIÜHÝèuÁýÿ€}/uÏH‹5À$8L‰çMìè­ÁýÿD‰öH‰ïèÄýÿH…Àu½H‰îL‰çè’ÁýÿHƒÄL‰ø[]A\A]A^A_ÃAWAVAUATUSH�ì˜H‰|$H‰÷H‰t$(H�5¼ÊdH‹%(H‰„$ˆ1ÀèãÊýÿI‰Ç1ÀM…ÿ„뿽I½:è¼ÄýÿI‰Äf„M‰æë6H‰ÇL�uÿèìÂýÿL‰òH)ÚH9Ðu?A€|,þ t7HíL‰çH‰îè›ÃýÿI‰ÄIÆL‰ó‰îL‰úL‰÷L)ã)Þè@ÅýÿH…Àu³M9ô„S¾ L‰çèÃýÿH…Àtƾ#L‰çèÃýÿH…ÀtÆA¶$L‰ã< †g„¹H‰ÞH�=àó¦—À„Àu¶C< „J< „B¶H‰Ú<=wH¹: H£Ás ëIfDH‰Â¶JH�B€ù=wðH¿: H£ÏsàH9Øt€:/téñ�€xÿ/…æHƒèH9ØuíH‹L$E1ö1ÀH‹9H…ÿ„ÞH‹L$H‹AH‹IH�PJ�42H9΃èH‹L$H‰Q¶�#8ˆH‹yH9L‰òH‰ÞèÄÅýÿH‹D$LpL‰pH‹BÆ0L‰ÿèGÅýÿ…À„OþÿÿL‰çèw¾ýÿL‰ÿèßÀýÿ¸H‹Œ$ˆdH3 %(…¯H�Ę[]A\A]A^A_Ã�HƒÃ¶< ‡¡þÿÿI£Årë„Àt˜é’þÿÿf�H�D$@L�KH‰D$ f�A¶€ú „s€ú „j„Ò„cÿÿÿL‰ËëDH‰ÃD¶sH�CA€þ „RA€þ „HE„öuÛH�CH‰D$„Ò„#ÿÿÿ€ú/„IH‹|$(¾/L‰L$0èEÁýÿL‹L$0H‰D$L‰ÏL‰L$8èNÀýÿH‹L$H+L$(H�|H‰ÃH‰L$èâÁýÿH‹L$H‹t$(H‰ÇH‰D$HƒÁH‰ÊH‰L$0è_ÄýÿH‹L$0H‹D$H�SL‹L$8H�<L‰Îè@ÄýÿH‹L$ 1Ò1öH‹|$èÉýÿ…ÀuTHƒ|$@„J1ÛH‰l$0H‰ÝH‹\$fDH‹D$HH‰ßH‹4èHƒÅè3üÿÿH;l$@räH‹|$ H‹l$0è}¼ýÿHƒ|$t H‹|$諼ýÿL‹L$E„ö„þÿÿA¶€ú …�þÿÿIƒÁéwþÿÿ€ÆA¶H�KH‰L$„ÒtÁéµþÿÿ€H‹L$ 1Ò1öL‰Ïè_Èýÿ…Àu HÇD$Hƒ|$@…9ÿÿÿH‹|$ èì»ýÿé|ÿÿÿ€H‹L$H)ØI‰ÆH‹9H…ÿ…"ýÿÿH�¸H‰yèyÀýÿH‰ÇH‹D$H‰8HÇ@é2ýÿÿH‹D$J�´1H‰pèk¿ýÿH‰ÇH‹D$H‰8H‹@H�PéêüÿÿH‹|$ èi»ýÿéïþÿÿè¾ýÿff.„@óúATUSH�ì dH‹%(H‰„$˜1ÀHƒ=8t$H‹„$˜dH3%(…WH�Ä []A\Ã�H‰ûH‹ H…ÿtÐ迾ýÿ¨uÇH‹{ H‰æè½ýÿ…À…çH‹Ð8H9$„®H‹O8¾/H‹hH‰ïè>¾ýÿH…Àu…H�5I H‰ïèŠÈýÿH…À„mÿÿÿH‹{ H�hè4¾ýÿI‰ÄH…À„±H‹8H‰êL‰çH‹pH)ò课ýÿ…À…3ÿÿÿH‹à81ÿºH�5êH‹hH‹Xè½ýÿL‰áH‰ÇH‰êH‰Þ1Àè’›ÿÿéùþÿÿDH‹D$H98…@ÿÿÿH…À„7ÿÿÿH‰Ö8éÍþÿÿ�H‹[ 1ÿºH�5 è¹¼ýÿH‰ÇH‰Þ1Àè<›ÿÿé£þÿÿH‹{èÞ¿ýÿI‰Äé>ÿÿÿèѼýÿ�óú¶å8ƒà<u H� “8H¸€Hº€H#¸8H9Ðt é†ÿÿfD‹F8…ÀÇ88éï…ÿÿ€HƒìºH�51ÿè¼ýÿH‰Ç1Àè—šÿÿÇ8HƒÄé´…ÿÿ@óúHƒì¾ H�=¨ è¬ÿÿ€ °8 H¸ Ǥ8ÇÖ8H  8Æ 8gHƒÄÃff.„@óúAWAVA‰ÖAUATUSH‰ûHƒì(H‹‡ðH‰4$H‹@ÇD$ ‹hH‹8H‹@ƒý”D$D‹`uH‹‡à‹@‰D$ ¶�8ƒà<„Aƒü”Àö|8…áÇD$€|$„â„À„Ú‹S ö„ÎH‹»àöG „½L‹=Ò8M…ÿtVH�5V÷7fDI‹G8H9ðt7H…Àt2H‹ˆàöA t%D‹P A1ÒD‰Ð©u‹G,9A,„ø„M‹ M…ÿu·H�HH‰$÷ÂtHH�@H‰$öÂt8ƒâH�GH�2HDÂH‰$ëf„‹S öÂ…´ÇD$E…ö„«‹=Ý8…ÿ…|L�-8L�=÷Ö7M�¥°fAofAoOfAoW I‹?A)EA)MA)U H…ÿt(1Ò1öèï¨þÿI‰EH…Àt‹°ˆ…öu A‹U‰�ˆf�IƒÅ0IƒÇ0M9åu£ÇY8¶â8¨u.H‹3¹ H�=�ó¦—€ڄÒuL‹=Œ8M…ÿ…ÃàD‹c <„‘H‹»ðI‰Ý€L‰îèè¾ýÿI‰ÅH…ÀtpIƒ}hI‹½ðuâA‹E ‰Â%€D1âƒâ ÂuÍöGEuÇH‹‡H…Àt»ö@HuµH‹“ðH‰ÙL‰îè³Ãýÿ…ÀtA‹E AƒôƒðA ÄAƒôI‹½ðë„@A÷Ä uOL�-@8I‹EH…À„yHƒìD‰òE1ÉM‰èjH‹t$H‰ÁH‰ßèêþÿI‰ÇXZHƒÄ(L‰ø[]A\A]A^A_ÃDAöÄ„ÔD‰àƒàtAƒ|$ u€|$L�-s8u‘ƒýt'H‹4$¹H�=KL�-U8ó¦—€ڄÒ„eÿÿÿL�-Þÿ7A÷Ä„QÿÿÿI�Å�A÷Ä@…=ÿÿÿI�íðA÷Ä…)ÿÿÿIƒÅ0AöÄ„ÿÿÿƒý„ÞH‹4$¹H�=¾ó¦—€ڄÒuL�-Ÿÿ7…À…çþÿÿL�-Ðþ7AöÄI�EÐLEèéÏþÿÿ€H‹<$1Ò1ö苦þÿI‰ÇH…À„<ýÿÿE1íëxf.„‹F …À„¥3C ¨uFƒý…•Aƒü…‹H‹“àH‹†à‹J,9H,u¶ ^8ƒá€ùuAHƒ¸Àt(@L‰ÿ1ö辪þÿI‰ÇH…À„ I‹w8H…öu‰M‰ýëÜH‹@H3B©€uÍH‹“ðH‹=W8H‰ÙèÁýÿ…Àu Iƒ8MDïë¨I�L‰ù1ÒH‰Þèϳþÿé þÿÿE1í1ÀéÝýÿÿƒý„ÆH‹4$¹H�=sÇD$ó¦—À„À…$üÿÿH‹4$ÇD$€~a„×H�6H‰$éþûÿÿM‹]M…Û„Ê1Ò1öL‰ßè1¥þÿI‰EH…À…aýÿÿH‹ •Ñ7I�UD‰æH‰ßè.ªþÿH…À…BýÿÿH‹Î8é6ýÿÿA¾~M…í„§ûÿÿI�}L‰é1ÒH‰Þèù²þÿM‰ïé2ýÿÿ‹L$ ƒùt-‰È1Ƀø H��HE$”Á‰L$H‰$Aƒü„†úÿÿéOûÿÿH� mÇD$H‰ $éJúÿÿH�UH‰$é'ûÿÿH‹H‹98€xa”D$ ¶L$ H…Ò„.ÿÿÿ1öD‰d$ E1É1íL‰l$L‰ØD‹l$I‰ôH‰\$L�=‰Ëé¡L‹B0¹L‰ÿL‰Æó¦—Á€Ù„É…�A€xaA”ÂE…í…ÔA¶ÊH�5éI�|¹ó¦—Á€Ù„É„¯D8Ó@”ÆM…Ûtb@„öu]H‹J8H…ÀtB@„öu=H…Ét‹I öÁt ƒáI‰ÔHEêH‹J I‰ÑH…Ét.H‰Ê‹Š„…ɉTÿÿÿH‹J8ëÆH…ÉtØ‹I öÁtÐH‰ÐëÁI‰ÓëžL‰áL‹l$D‹d$ H‹\$H…Àt I‰Eé þÿÿL‰ØM…ÛuïH‰èH…íuçH‰ÈH…ÉHDÂëÛL‰áL‹l$D‹d$ L‰ÊH‹\$ë¿‹L$ ƒù„1üÿÿƒù …7üÿÿé#üÿÿf„óúATH‹=S8H�5ü8USèE¶ýÿºH�5¹ü…Àˆí‰Ç» L�%Ó8ë?�H‹8H‹€H‹�˜ H‹B8H9ńڃû H9Ńȿƒë„’è ÜþÿH‹=Ö8H‹Gƒx…¤A¶$ƒà<„”H‹‡Hƒ=é8H‹€˜ H‹h8tè7虞ýÿÇ7è7éØýÿÿL‰ï肞ýÿH‹=c81Ò1ÀH�50ðèk¢ýÿH‹|$H‰ÆI‰Åè»ÝÿÿëŽH‹r81ÿºH�5Ôêèß ýÿH‰ÇH‰Þ1Àèbÿÿé0÷ÿÿºH�5ëékøÿÿAƒøºH�5LëIEÜ1ÿè¡ ýÿH‰ÇH‰Þ1Àè$ÿÿé¬ùÿÿèÊ ýÿf.„óú‹fé7…ÀuH‹G H…Àtö@EuÃf�AUATUSH‰ûH‰ÇHƒìè¡ýÿI‰ÄH…À„�H‹0é7H…ÛtqL�-óíëf.„H‹H…ÛtVH‹sL‰çè\Ÿýÿ…ÀtèH‹k¾/H‰ïè§ ýÿH…ÀuÒL‰îH‰ïè÷ªýÿH…ÀtÂH�PH‰îL‰çH)êè@¡ýÿ…Àu¬Ç²è7HƒÄ[]A\A]ÀH‹C H‹8èä¢ýÿI‰Äé]ÿÿÿf.„f�óúǶßÿ7ƒâ€ú„›‹5}8H�ž…ö„‚‹ 88H�1>…É„mH‹5¢ÿ7H¹@H¸@H!ñH9Á„‚H¿ H¸ H!÷H9Ç„JI¸H�¡ÍI¹I!ðM9È„ÿD‹ 4ÿ7H�…ðA�á@A�ù@„ÝH� €ú„ÍH¸@H9Á„H¸ H9Ç„“H¹H� I9È„�H�2ÁA�ù@t}H�êä€útqH¸@H‰òH!ÂH9„ÎH¸ H!ÆH9Æ„ÒH��r öuþ7u2öjþ7@H�» H�i• HDÂÃ@H�é[öúþ7„YÿÿÿË=¾ÿ7H�ƒH�Ôí…ÿHDÂÃDH�…öÂþ7„¢þÿÿÃö±þ7H�²`H�“M HEÂÃfDö‘þ7H�9H�s|HEÂÃöwþ7H� §H�I HDÂÃH�}* öVþ7„ÿÿÿÀóúATUH‰ýS¾_H‰ØÁë‰Âƒâ¨@u#ƒËL‹g „ÒtAöD$EuHAöD$Eu([1À]A\Ã�„Òt L‹g AöD$Eu(…ÛtäL‹e AöD$Et؉ÞL‰ç覡ýÿ[1À]A\À1ÿH�5àº襜ýÿL‰æH‰Ç1Àè({ÿÿ…Ûtœë¶f�óúSºH‰ûH�5 à1ÿèuœýÿH‰ß¾H‰Â1Àè¦ýÿºH�57à1ÿèPœýÿH‰ß¾H‰Â1ÀèÞ¥ýÿºH�5¢à1ÿè+œýÿH‰ß¾H‰Â1Àè¹¥ýÿºH�5Åà1ÿèœýÿH‰ß¾H‰Â1À蔥ýÿºH�5èà1ÿèá›ýÿH‰ß¾[H‰Â1Àén¥ýÿff.„AWAVAUATUH‰õSHƒìL‹7H‰|$H‰÷M…ö„»èÆ›ýÿD¾%¶ý7M‰÷H‰ÃE‰åë HƒÀI‰Çt0H‰ÚL‰þH‰ïèy™ýÿ…ÀuA¶„ÀtiD8ètdD‰æL‰ÿèü›ýÿH…ÀuÇL‰÷èo›ýÿH�|è�ýÿHƒìD¾ Qý7HÇÂÿÿÿÿUL‹t$H‰ÃH� „ž¾H‰ß1ÀM‹èP¦ýÿI‹>èX˜ýÿI‰XZHƒÄ[]A\A]A^A_Ã@è �ýÿH‹L$H‰HƒÄ[]A\A]A^A_Ã@óúUSHƒìdH‹%(H‰D$1À�ÿ’„úŽ´�ÿ–„Žâ�ÿ˜„–Œ°�ÿ™…lH‹�Ô7H�5P¢H‰ßèþ—ýÿ…À„&H�5ûåH‰ßèç—ýÿ…À„WH�5éåH‰ßèЗýÿ…À…»Çzú7¸f„H‹\$dH3%(…æHƒÄ[]ÃD�ÿ-„„~b�ÿ�„¶�È�ÿ.…¼€ ú7¸ë¦fD�ÿ”„¤�¶¶ëù7ƒàüƒÈˆßù7¸éqÿÿÿ�ƒÿP„§ƒÿz…^ÿÿÿH‹—Ó7¹H�=3åH‰Þó¦—À„À„1¹H�= åH‰Þó¦—À„À…“¶vù7ƒà?ƒÈ@ˆjù7¸éþþÿÿfD1Àéñþÿÿ�€%Mù7ü¸éßþÿÿ€H‹=Ó7èÜžþÿ¸éÂþÿÿf�H‹5ùÒ7H�=Rä7èíüÿÿ¸é£þÿÿHƒ ¸ù7¸f� ìø7Àé…þÿÿD¶Ýø7H‹²Ò7¹H�=:äƒàÏH‰Þˆ¾ø7ó¦—€ڄÒ„¹H�=äH‰Þó¦—€ڄÒ…kƒÈ ˆ†ø7¸éþÿÿ„€%nø7û¸éÿýÿÿ€€ Vø7¸éçýÿÿ€H‹5Ò7H�=zã7è üÿÿ¸éÃýÿÿH‹=Qã7H…ÿtè•ýÿHÇ<ã7H‹ÝÑ7H…Ò„¤¹H�=‚ŸH‰Ö¸ó¦—Á€Ù„É„pýÿÿH‰×蘙ýÿH‰ùâ7¸éWýÿÿ€€%®÷7÷¸é?ýÿÿ€ƒÈˆ“÷7¸é%ýÿÿDÇ‚÷7¸é ýÿÿ@€ c÷7À¸é÷üÿÿ€H�éH‰"Ñ7émÿÿÿDÇ:÷7¸éÄüÿÿ@¹H�=�âH‰Þó¦—€ڄÒ…ƒÈ0ˆüö7¸éŽüÿÿfD¹H�=aâH‰Þó¦—À„ÀuR€ Ìö7 ¸é]üÿÿH�5 âH‰ßèþ“ýÿºH�5šÜ…À„bÿÿÿ1ÿè3–ýÿH‰ÞH‰Ç1Àè¶tÿÿ¸éüÿÿ¹H�=ýáH‰Þó¦—À„À„ˆ¹H�=îáH‰Þó¦—À„À„Ź H�=âáH‰Þó¦—À„À„&¹ H�=ÒáH‰Þó¦—À„À…Ͷö7ƒàóƒÈˆ÷õ7¸é‡ûÿÿºH�5 Üé<ÿÿÿ1ÒH‰æH�{èø�ýÿH‹$H‰µ÷7€:u H�PÿH…„žûÿÿH‹„Ï7ºH�5èÛH�X1ÿè-•ýÿH‰ÞH‰Ç1Àè°sÿÿénûÿÿ1ÒH‰æH�{è��ýÿH‹$H‰b÷7€:u H�PÿH…„CûÿÿH‹)Ï7ºH�5µÛH�X룹 H�=åàH‰Þó¦—À„À…‹¶õ7ƒàóƒÈˆ õ7¸éœúÿÿ1ÒH‰æH�{ è�ýÿH‹$H‰óô7€:u#H…ÀxHƒ=áô7…¾úÿÿHÇÐô7ÿÿÿÿé®úÿÿH‹”Î71ÿºH�5FÛH�X è=”ýÿH‰ÞH‰Ç1ÀèÀrÿÿëµH�5MàH‰ßèï—ýÿ…ÀuH� 0õ7¸éúÿÿèA”ýÿH�5û¿H‰ßè—ýÿ…ÀuHƒ õ7¸éÜùÿÿH�5àH‰ßè�—ýÿ…ÀuHƒ áô7 ¸é·ùÿÿH�5ìßH‰ßèx—ýÿ…ÀuH� ¹ô7¸é�ùÿÿH�5ÎßH‰ßèP—ýÿ…ÀuHƒ ”ô7¸éjùÿÿH�5²ßH‰ßè+—ýÿ…ÀuH� lô7¸éBùÿÿH�5—ßH‰ßè—ýÿ…ÀuHƒ Gô7¸éùÿÿH�5{ßH‰ßèÞ–ýÿ…ÀuHƒ "ô7@¸éøøÿÿH�5_ßH‰ßè¹–ýÿ…ÀuH� úó7¸éÐøÿÿH�5³½H‰ßè‘–ýÿ…ÀuHƒ Íó7¸Hƒ Èó7飸ÿÿH�5ßH‰ßèd–ýÿ…ÀuHƒ% ó7÷¸Hƒ%›ó7þévøÿÿH�5éÞH‰ßè7–ýÿ…ÀuHƒ só7¸H� kó7€éFøÿÿH�5ÂÞH‰ßè–ýÿ…Àu€ ‘ò7¸é"øÿÿH�5œÞH‰ßèã•ýÿ…Àu€%mò7þ¸éþ÷ÿÿH�5„ÞH‰ßè¿•ýÿ…Àu€ Dò7¸éÚ÷ÿÿH�5nÞH‰ß蛕ýÿ…Àu€ #ò7 ¸é¶÷ÿÿH�5HÞH‰ßèw•ýÿ…Àu€%ÿñ7߸é’÷ÿÿH�5.ÞH‰ßèS•ýÿ…Àu€ Ûñ7@¸én÷ÿÿH�5ÞH‰ßè/•ýÿ…Àu€%·ñ7¿¸éJ÷ÿÿH�5É›H‰ßè •ýÿ…Àu¶’ñ7ƒàóƒÈˆ†ñ7¸é÷ÿÿH�5ÄÝH‰ßèÛ”ýÿ…Àu¶bñ7ƒàóƒÈˆVñ7¸éêöÿÿH�5*“H‰ßè«”ýÿ…Àu€ 4ñ7¸éÆöÿÿH�5yÝH‰ß臔ýÿ…Àu€%ñ7÷¸é¢öÿÿH�5\ÝH‰ßèc”ýÿ…ÀtÜH�5QÝH‰ßèP”ýÿ…ÀuÇrñ7¸éhöÿÿH�5DÝH‰ßè)”ýÿ…ÀuÇOñ7¸éAöÿÿH�5ÝH‰ßè”ýÿ…ÀuÇ(ñ7¸éöÿÿH�5 ÝH‰ßèÛ“ýÿ…Àu€ hð7¸éöõÿÿº H�5õÜH‰ßèò�ýÿ…Àu6H�k H�5èÜH‰ï蛓ýÿ…ÀuC·(ð7f%ý€Ìgf‰ð7¸é¨õÿÿH�5ÝÜH‰ßèi“ýÿ…ÀuD€ õï7¸é„õÿÿH�5žÜH‰ïèE“ýÿ…ÀuH·Òï7f%ýf �f‰Ãï7¸éQõÿÿH�5�ÜH‰ßè“ýÿ…À…€ šï7¸é)õÿÿºH�5IÜH‰ïè%�ýÿ…À„‚ºH�55ÜH‰ïè �ýÿ…ÀuY1ÒH‰æH�{èw—ýÿˆJï7H‹$€8t+H‹É7H�5"Ö1ÿºH�X躎ýÿH‰ÞH‰Ç1Àè=mÿÿ€ ï7¸éœôÿÿºH�5 ÖéQøÿÿ1ÒH‰æH�{è —ýÿˆàî7H‹$€8t+H‹§È7H�5€Õ1ÿºH�XèPŽýÿH‰ÞH‰Ç1ÀèÓlÿÿ€%¤î7ý¸é2ôÿÿH�5rÛH‰ßèó‘ýÿ…Àu€ î7¸éôÿÿº H�5OÛH‰ßè Œýÿ…Àu(HƒÃ H�5å•H‰ß賑ýÿ…Àu"€%?î7Ÿ¸éÎóÿÿºH�5"Ûéƒ÷ÿÿH�5mÛH‰ßè~‘ýÿ…Àu¶ î7ƒàŸƒÈ ˆþí7¸é�óÿÿH�5ª¹H‰ßèN‘ýÿ…Àu¶Úí7ƒàŸƒÈ@ˆÎí7¸é]óÿÿºH�5 Õé÷ÿÿff.„�óúAUI‰õATI‰ÌUHcïSH�uHcÚHƒÃHÁãHƒìI‹}èŽýÿ‹§Î H‰ÞI‰E‰(¶šÎ ˆT(I‹<$èí�ýÿH�5&w7I‰$H�Œ@þÿÿH‹w7H�yH‰H‹½x7HƒçøH‰�¸H)ùH)Î�ÁÀÁéóH¥HƒÄ[]A\A]Ãff.„f�óúAW1ÀAVAUATUSHƒìD¶zHAöÇ„åL‹jI‰þH‹~H‰ÓH‰õ臌ýÿL‰ïI‰Äè|ŒýÿIÄAƒç…ÏL‰÷ègŒýÿI�|è ŽýÿHƒì¾M‰éAVL‹EH‰ÇI‰ÄHÇÂÿÿÿÿ1ÀH� ‚ÙèP—ýÿXH‰ÞZL‰çèÓrÿÿ…À„¿L‰cH‹{ ¾艕ýÿ‰Â¸…ÒtFH‹S öBEt<¶CH‰Âƒâ€út¾ôH�=óÌ è%kÿÿ¶CH¨„‘H‹{ L‰îèm”ýÿ¸HƒÄ[]A\A]A^A_Ãf„I�|$èF�ýÿL‹EM‰é¾H‰ÇI‰Ä1ÀHÇÂÿÿÿÿH� çÙè�–ýÿH‰ÞL‰çèrÿÿ…À…AÿÿÿL‰ç‰D$ 耈ýÿ‹D$ HƒÄ[]A\A]A^A_ÃDH‹{è?ŽýÿI‰Åé^ÿÿÿ€óúöJë7@t ÇiÖ7étUÿÿ@óúAWAVAUE1íATL�%ë7USHƒìhdH‹%(H‰D$X1ÀH‹%ë7ƒx@„ëH‹-<ì7H…í„H‹<ë7H…Û„£L�5 Ö7ëf.„H‹›øH…Û„€H‹CƒxuæH‹ƒH‹¸H…ÿtÓ€?tÎèYŒýÿI‰Çë@ÆA€?…‹HƒÀI‰Çtª¾5+ì7L‰ÿ諊ýÿH…ÀuÖA€?t�L‰þL‰÷è%îÿÿH‹›øH…Ûu‰f„HƒìL‹ eÕ7L‹fÕ7H‰êH�D$ H‹ oë7H‹5Pë7PH‹=Pê7ATÿ5`ë7èƒ�ýÿHƒÄ …À„�H‹= ë7H…ÿtH‹\$H…ÛtH‰»°è•‰ýÿHƒÀH‰C8L‹=fË7M…ÿ„íL�%øÖëf@H‹¹é7Æ+E1É1ÒI‹O E1ÀH‰ÞH�=é7ÿP(H‰ßèt†ýÿI‹FhH…ÀtH‹P@I‹N8H9ÊrH)ÊH‰P@A�N € IÇF8M‹0M…ÿt~AöGHuðI‹ L‰æè;‹ýÿI‰ÆH…ÀtÜH‹h8H�}è–ŠýÿI‹ 1ÉI‰èH‰ÂL‰öH‰Ã迈ýÿ…À…WÿÿÿI‹G 1ÿºH�5�ÐH‰$è|ˆýÿH‹4$H‰Ç1Àèþfÿÿé)ÿÿÿf„èÛRÿÿH‹=é7H�5­è7èø�ýÿ…ÀttM…ít¶D$foD$@AˆEH‹D$PAE I‰E0H‹D$XdH3%(…žHƒÄh[]A\A]A^A_À1ÿºH�5ÒÏèå‡ýÿH‰Ç1ÀèkfÿÿéOþÿÿfD1ÿºH�5ªÏ轇ýÿH‰Ç1ÀèCfÿÿéjÿÿÿfDH‹=Qè7L‰æè)‡ýÿ¶òç7ƒà<u;E1íH�=!èŒcþÿH‹-%é7H…í…éüÿÿH�= ÕèP„ýÿH‰ÅéÕüÿÿ„H‹=Ñç7A¸1É1ÒH�5ÑÔè3ŠýÿI‰ÅH…Àt ¶@<v<u”H‹Èç7ºL‰îH�=iç7H‹@H‹€`ÿ�°A¶Ea‰Âƒâ€út ƒàüƒÈAˆEaI‹E0óAoUIÇE0óAo] óAoMH‰D$PA¶E)L$ ˆD$H�7Ã7)T$0)\$@AÆEI‰E(éÿÿÿ€L‰þL‰÷H‰$è¹êÿÿH‹$é]üÿÿ諆ýÿff.„AUATL�%‚ÔUH�-ÍÇ SH‰ûHƒìƒ{w6‹CHcD…Hè>ÿà�E1ÉH‹S¹L‰çH‰Öó¦—À„ÀucH‹[ ƒ{vÊHƒÄ[]A\A]ÃfDH‹[ë­f�H‹{è‡ÿÿÿH‹{ è~ÿÿÿH‹[(ë“„H‹{ègÿÿÿë²DA¹ë‹„D‹C(H‹=Uæ7D‰ÉH�5ûå7趃ýÿ…À…{ÿÿÿL‹k1ÿºH�5ÌÍèw…ýÿH‰ÇL‰î1ÀèúcÿÿéRÿÿÿDóúƒtÃDH‹éçþÿÿ€óúAWAVAUATUSHƒìH‹‡H‹WH‹€˜ L‹²`L‹`0H‹H(I‹D$hH‰L$H� ŒÁ7H9È„ L‹¸àH‰ýM‹l$8I‹_HH…Û„·I\$`H‰Þ¿Iƒíÿ’�H‹EL‰ïH�sÿ��H‹EH�s¿ÿ��E‰èH�KH‰ïÇC GNUI‹†øH‹t$H‹P è¢ÿÿI‹t$`1ÒIwH‰ïM‹l$8è¾�ýÿ1Ò…ÀtHƒÄ‰Ð[]A\A]A^A_ÀH‰êL‰îH‰ß袈ýÿ1ÒI9Å”ÂëЄI‹œ$°H…Û…=ÿÿÿL‰ïèç…ýÿM‹l$8H‹UH‰ÃI‰„$°éÿÿÿfDºH�5\Ì1ÿèÕƒýÿH‰Ç1Àè[bÿÿºéiÿÿÿ�AWAVAUATUH‰ýS1ÛHƒìH‹=îä7èуýÿD¾%Áå7H‰ïI‰Åë�H�x€?/J�+D‰æHDØè)„ýÿH…ÀuäH‰ï蜃ýÿH�|èB…ýÿD¾5‚å7I‰ÇI‰Äë-f�D‰öH‰ïèõƒýÿH…ÀtCH)èH‰îL‰çH�XH‰ÚIÜHÝè�ýÿ€}/uÏH‹5`ä7L‰çMìèM�ýÿD‰öH‰ï貃ýÿH…Àu½H‰îL‰çè2�ýÿHƒÄL‰ø[]A\A]A^A_ÃAWAVAUATUSH�ì˜H‰|$H‰÷H‰t$(H�5\ŠdH‹%(H‰„$ˆ1À胊ýÿI‰Ç1ÀM…ÿ„뿽I½:è\„ýÿI‰Äf„M‰æë6H‰ÇL�uÿ茂ýÿL‰òH)ÚH9Ðu?A€|,þ t7HíL‰çH‰îè;ƒýÿI‰ÄIÆL‰ó‰îL‰úL‰÷L)ã)Þèà„ýÿH…Àu³M9ô„S¾ L‰ç赂ýÿH…Àtƾ#L‰çè ‚ýÿH…ÀtÆA¶$L‰ã< †g„¹H‰ÞH�=€Ïó¦—À„Àu¶C< „J< „B¶H‰Ú<=wH¹: H£Ás ëIfDH‰Â¶JH�B€ù=wðH¿: H£ÏsàH9Øt€:/téñ�€xÿ/…æHƒèH9ØuíH‹L$E1ö1ÀH‹9H…ÿ„ÞH‹L$H‹AH‹IH�PJ�42H9΃èH‹L$H‰Q¶!ã7ˆH‹yH9L‰òH‰Þèd…ýÿH‹D$LpL‰pH‹BÆ0L‰ÿèç„ýÿ…À„OþÿÿL‰çè~ýÿL‰ÿè€ýÿ¸H‹Œ$ˆdH3 %(…¯H�Ę[]A\A]A^A_Ã�HƒÃ¶< ‡¡þÿÿI£Årë„Àt˜é’þÿÿf�H�D$@L�KH‰D$ f�A¶€ú „s€ú „j„Ò„cÿÿÿL‰ËëDH‰ÃD¶sH�CA€þ „RA€þ „HE„öuÛH�CH‰D$„Ò„#ÿÿÿ€ú/„IH‹|$(¾/L‰L$0èå€ýÿL‹L$0H‰D$L‰ÏL‰L$8èîýÿH‹L$H+L$(H�|H‰ÃH‰L$è‚�ýÿH‹L$H‹t$(H‰ÇH‰D$HƒÁH‰ÊH‰L$0èÿƒýÿH‹L$0H‹D$H�SL‹L$8H�<L‰ÎèàƒýÿH‹L$ 1Ò1öH‹|$轈ýÿ…ÀuTHƒ|$@„J1ÛH‰l$0H‰ÝH‹\$fDH‹D$HH‰ßH‹4èHƒÅè3üÿÿH;l$@räH‹|$ H‹l$0è|ýÿHƒ|$t H‹|$èK|ýÿL‹L$E„ö„þÿÿA¶€ú …�þÿÿIƒÁéwþÿÿ€ÆA¶H�KH‰L$„ÒtÁéµþÿÿ€H‹L$ 1Ò1öL‰Ïèÿ‡ýÿ…Àu HÇD$Hƒ|$@…9ÿÿÿH‹|$ èŒ{ýÿé|ÿÿÿ€H‹L$H)ØI‰ÆH‹9H…ÿ…"ýÿÿH�¸H‰yè€ýÿH‰ÇH‹D$H‰8HÇ@é2ýÿÿH‹D$J�´1H‰pè ýÿH‰ÇH‹D$H‰8H‹@H�PéêüÿÿH‹|$ è {ýÿéïþÿÿè~ýÿff.„@óúATUSH�ì dH‹%(H‰„$˜1ÀHƒ=fÉ7t$H‹„$˜dH3%(…WH�Ä []A\Ã�H‰ûH‹ H…ÿtÐè_~ýÿ¨uÇH‹{ H‰æè¿|ýÿ…À…çH‹0É7H9$„®H‹¯É7¾/H‹hH‰ïèÞ}ýÿH…Àu…H�5éÊH‰ïè*ˆýÿH…À„mÿÿÿH‹{ H�hèÔ}ýÿI‰ÄH…À„±H‹aÉ7H‰êL‰çH‹pH)òèO~ýÿ…À…3ÿÿÿH‹@É71ÿºH�5ŠÅH‹hH‹Xèµ|ýÿL‰áH‰ÇH‰êH‰Þ1Àè2[ÿÿéùþÿÿDH‹D$H9tÈ7…@ÿÿÿH…À„7ÿÿÿH‰6È7éÍþÿÿ�H‹[ 1ÿºH�5ÀÊèY|ýÿH‰ÇH‰Þ1ÀèÜZÿÿé£þÿÿH‹{è~ýÿI‰Äé>ÿÿÿèq|ýÿ�óú¶…Ü7ƒà<u H� 3Ý7H¸€Hº€H#XÜ7H9Ðt é®EÿÿfD‹æÜ7…ÀÇØÜ7é�Eÿÿ€HƒìºH�5¸Ä1ÿè±{ýÿH‰Ç1Àè7ZÿÿÇ¡Ü7HƒÄéTEÿÿ@óúHƒì¾ H�=Õ¼ è§kÿÿ€ PÛ7 H¸ ÇDÝ7ÇvÝ7H «Û7Æ­Û7gHƒÄÃff.„@óúAWAVA‰ÖAUATUSH‰ûHƒì(H‹‡ðH‰4$H‹@ÇD$ ‹hH‹§Û7H‹@ƒý”D$D‹`uH‹‡à‹@‰D$ ¶0Û7ƒà<„Aƒü”ÀöÛ7…áÇD$€|$„â„À„Ú‹S ö„ÎH‹»àöG „½L‹=rÚ7M…ÿtVH�5ö¶7fDI‹G8H9ðt7H…Àt2H‹ˆàöA t%D‹P A1ÒD‰Ð©u‹G,9A,„ø„M‹ M…ÿu·H�èÇH‰$÷ÂtHH�àÇH‰$öÂt8ƒâH�çÇH�ÒÇHDÂH‰$ëf„‹S öÂ…´ÇD$E…ö„«‹==Å7…ÿ…|L�-~Ã7L�=7™7M�¥°fAofAoOfAoW I‹?A)EA)MA)U H…ÿt(1Ò1öè�hþÿI‰EH…Àt‹°ˆ…öu A‹U‰�ˆf�IƒÅ0IƒÇ0M9åu£Ç¹Ä7¶‚Ù7¨u.H‹3¹ H�=0Çó¦—€ڄÒuL‹=ìÂ7M…ÿ…ÃàD‹c <„‘H‹»ðI‰Ý€L‰îèˆ~ýÿI‰ÅH…ÀtpIƒ}hI‹½ðuâA‹E ‰Â%€D1âƒâ ÂuÍöGEuÇH‹‡H…Àt»ö@HuµH‹“ðH‰ÙL‰îèSƒýÿ…ÀtA‹E AƒôƒðA ÄAƒôI‹½ðë„@A÷Ä uOL�- Ã7I‹EH…À„yHƒìD‰òE1ÉM‰èjH‹t$H‰ÁH‰ß褩þÿI‰ÇXZHƒÄ(L‰ø[]A\A]A^A_ÃDAöÄ„ÔD‰àƒàtAƒ|$ u€|$L�-ÓÂ7u‘ƒýt'H‹4$¹H�=ëÅL�-µÂ7ó¦—€ڄÒ„eÿÿÿL�->Â7A÷Ä„QÿÿÿI�Å�A÷Ä@…=ÿÿÿI�íðA÷Ä…)ÿÿÿIƒÅ0AöÄ„ÿÿÿƒý„ÞH‹4$¹H�=^Åó¦—€ڄÒuL�-ÿÁ7…À…çþÿÿL�-0Á7AöÄI�EÐLEèéÏþÿÿ€H‹<$1Ò1öè+fþÿI‰ÇH…À„<ýÿÿE1íëxf.„‹F …À„¥3C ¨uFƒý…•Aƒü…‹H‹“àH‹†à‹J,9H,u¶ þÖ7ƒá€ùuAHƒ¸Àt(@L‰ÿ1öè^jþÿI‰ÇH…À„ I‹w8H…öu‰M‰ýëÜH‹@H3B©€uÍH‹“ðH‹=÷Ö7H‰Ùè�ýÿ…Àu Iƒ8MDïë¨I�L‰ù1ÒH‰Þèosþÿé þÿÿE1í1ÀéÝýÿÿƒý„ÆH‹4$¹H�=ÄÇD$ó¦—À„À…$üÿÿH‹4$ÇD$€~a„×H�ÖÃH‰$éþûÿÿM‹]M…Û„Ê1Ò1öL‰ßèÑdþÿI‰EH…À…aýÿÿH‹ 5‘7I�UD‰æH‰ßèÎiþÿH…À…BýÿÿH‹nÕ7é6ýÿÿA¾~M…í„§ûÿÿI�}L‰é1ÒH‰Þè™rþÿM‰ïé2ýÿÿ‹L$ ƒùt-‰È1Ƀø H�=ÃHE$”Á‰L$H‰$Aƒü„†úÿÿéOûÿÿH� ÃÇD$H‰ $éJúÿÿH�õÂH‰$é'ûÿÿH‹H‹ÙÔ7€xa”D$ ¶L$ H…Ò„.ÿÿÿ1öD‰d$ E1É1íL‰l$L‰ØD‹l$I‰ôH‰\$L�=¶Â‰Ëé¡L‹B0¹L‰ÿL‰Æó¦—Á€Ù„É…�A€xaA”ÂE…í…ÔA¶ÊH�5‰ÂI�|¹ó¦—Á€Ù„É„¯D8Ó@”ÆM…Ûtb@„öu]H‹J8H…ÀtB@„öu=H…Ét‹I öÁt ƒáI‰ÔHEêH‹J I‰ÑH…Ét.H‰Ê‹Š„…ɉTÿÿÿH‹J8ëÆH…ÉtØ‹I öÁtÐH‰ÐëÁI‰ÓëžL‰áL‹l$D‹d$ H‹\$H…Àt I‰Eé þÿÿL‰ØM…ÛuïH‰èH…íuçH‰ÈH…ÉHDÂëÛL‰áL‹l$D‹d$ L‰ÊH‹\$ë¿‹L$ ƒù„1üÿÿƒù …7üÿÿé#üÿÿf„óúATH‹=óÓ7H�5œÓ7USèåuýÿºH�5Y¼…Àˆí‰Ç» L�%sÓ7ë?�H‹¹Ó7H‹€H‹�˜ H‹B8H9ńڃû H9Ńȿƒë„’è­›þÿH‹=vÓ7H‹Gƒx…¤A¶$ƒà<„”H‹‡Hƒ=‰Ò7H‹€˜ H‹h8tÿÿé¬ùÿÿèj`ýÿf.„óú‹Æ«7…ÀuH‹G H…Àtö@EuÃf�AUATUSH‰ûH‰ÇHƒìè»`ýÿI‰ÄH…À„�H‹�«7H…ÛtqL�-“­ëf.„H‹H…ÛtVH‹sL‰çèü^ýÿ…ÀtèH‹k¾/H‰ïèG`ýÿH…ÀuÒL‰îH‰ïè—jýÿH…ÀtÂH�PH‰îL‰çH)êèà`ýÿ…Àu¬Ç«7HƒÄ[]A\A]ÀH‹C H‹8è„býÿI‰Äé]ÿÿÿf.„f�óúǶ¿7ƒâ€ú„›‹5Á7H�ŽÉ …ö„‚‹ ØÀ7H�©ê …É„mH‹5B¿7H¹@H¸@H!ñH9Á„‚H¿ H¸ H!÷H9Ç„JI¸H�±q I¹I!ðM9È„ÿD‹ Ô¾7H��’ A�á@A�ù@„ÝH�ªµ €ú„ÍH¸@H9Á„H¸ H9Ç„“H¹H�b7 I9È„�H�ŠV A�ù@t}H�Êw €útqH¸@H‰òH!ÂH9„ÎH¸ H!ÆH9Æ„ÒH�ý ö¾7u2ö ¾7@H�0A H� HDÂÃ@H�!÷ öš¾7„YÿÿÿË=^¿7H�›³ H� Ÿ …ÿHDÂÃDH�- öb¾7„¢þÿÿÃöQ¾7H�ª H�Ú HEÂÃfDö1¾7H�*Ö H�³ HEÂÃö¾7H�¨M H�±– HDÂÃH�í¸ öö½7„ÿÿÿÀóúATUH‰ýS¾_H‰ØÁë‰Âƒâ¨@u#ƒËL‹g „ÒtAöD$EuHAöD$Eu([1À]A\Ã�„Òt L‹g AöD$Eu(…ÛtäL‹e AöD$Et؉ÞL‰çèFaýÿ[1À]A\À1ÿH�5§ŸºèE\ýÿL‰æH‰Ç1ÀèÈ:ÿÿ…Ûtœë¶f�óúSºH‰ûH�5¬Ÿ1ÿè\ýÿH‰ß¾H‰Â1Àè£eýÿºH�5ן1ÿèð[ýÿH‰ß¾H‰Â1Àè~eýÿºH�5Š 1ÿèË[ýÿH‰ß¾H‰Â1ÀèYeýÿºH�5­ 1ÿè¦[ýÿH‰ß¾[H‰Â1Àé3eýÿAWAVAUATUH‰õSHƒìL‹7H‰|$H‰÷M…ö„»è–[ýÿD¾%†½7M‰÷H‰ÃE‰åë HƒÀI‰Çt0H‰ÚL‰þH‰ïèIYýÿ…ÀuA¶„ÀtiD8ètdD‰æL‰ÿèÌ[ýÿH…ÀuÇL‰÷è?[ýÿH�|èå\ýÿHƒìD¾ !½7HÇÂÿÿÿÿUL‹t$H‰ÃH� T^¾H‰ß1ÀM‹è fýÿI‹>è(XýÿI‰XZHƒÄ[]A\A]A^A_Ã@èÛ\ýÿH‹L$H‰HƒÄ[]A\A]A^A_Ã@óúUSHƒìdH‹%(H‰D$1À�ÿ’„úŽ´�ÿ–„Žâ�ÿ˜„–Œ°�ÿ™…lH‹m”7H�5 bH‰ßèÎWýÿ…À„&H�5Ë¥H‰ßè·Wýÿ…À„WH�5¹¥H‰ßè Wýÿ…À…»ÇJº7¸f„H‹\$dH3%(…æHƒÄ[]ÃD�ÿ-„„~b�ÿ�„¶�È�ÿ.…¼€ â¹7¸ë¦fD�ÿ”„¤�¶¶»¹7ƒàüƒÈˆ¯¹7¸éqÿÿÿ�ƒÿP„§ƒÿz…^ÿÿÿH‹g“7¹H�=¥H‰Þó¦—À„À„1¹H�=Û¤H‰Þó¦—À„À…“¶F¹7ƒà?ƒÈ@ˆ:¹7¸éþþÿÿfD1Àéñþÿÿ�€%¹7ü¸éßþÿÿ€H‹=á’7è¬^þÿ¸éÂþÿÿf�H‹5É’7H�=â¦7èíüÿÿ¸é£þÿÿHƒ ˆ¹7¸f� ¼¸7Àé…þÿÿD¶­¸7H‹‚’7¹H�= ¤ƒàÏH‰Þˆޏ7ó¦—€ڄÒ„¹H�=Ô£H‰Þó¦—€ڄÒ…kƒÈ ˆV¸7¸éþÿÿ„€%>¸7û¸éÿýÿÿ€€ &¸7¸éçýÿÿ€H‹5é‘7H�= ¦7è üÿÿ¸éÃýÿÿH‹=á¥7H…ÿtèßTýÿHÇÌ¥7H‹­‘7H…Ò„¤¹H�=R_H‰Ö¸ó¦—Á€Ù„É„pýÿÿH‰×èhYýÿH‰‰¥7¸éWýÿÿ€€%~·7÷¸é?ýÿÿ€ƒÈˆc·7¸é%ýÿÿDÇR·7¸é ýÿÿ@€ 3·7À¸é÷üÿÿ€H�á¨H‰ò�7émÿÿÿDÇ ·7¸éÄüÿÿ@¹H�=]¢H‰Þó¦—€ڄÒ…ƒÈ0ˆ̶7¸éŽüÿÿfD¹H�=1¢H‰Þó¦—À„ÀuR€ œ¶7 ¸é]üÿÿH�5ð¡H‰ßèÎSýÿºH�5jœ…À„bÿÿÿ1ÿèVýÿH‰ÞH‰Ç1Àè†4ÿÿ¸éüÿÿ¹H�=Í¡H‰Þó¦—À„À„ˆ¹H�=¾¡H‰Þó¦—À„À„Ź H�=²¡H‰Þó¦—À„À„&¹ H�=¢¡H‰Þó¦—À„À…Ͷӵ7ƒàóƒÈˆǵ7¸é‡ûÿÿºH�5Û›é<ÿÿÿ1ÒH‰æH�{èÈ]ýÿH‹$H‰…·7€:u H�PÿH…„žûÿÿH‹T�7ºH�5¸›H�X1ÿèýTýÿH‰ÞH‰Ç1Àè€3ÿÿénûÿÿ1ÒH‰æH�{èm]ýÿH‹$H‰2·7€:u H�PÿH…„CûÿÿH‹ùŽ7ºH�5…›H�X룹 H�=µ H‰Þó¦—À„À…‹¶è´7ƒàóƒÈˆÜ´7¸éœúÿÿ1ÒH‰æH�{ èî\ýÿH‹$H‰ô7€:u#H…ÀxHƒ=±´7…¾úÿÿHÇ ´7ÿÿÿÿé®úÿÿH‹dŽ71ÿºH�5›H�X è TýÿH‰ÞH‰Ç1Àè�2ÿÿëµH�5 H‰ßè¿Wýÿ…ÀuH� µ7¸éúÿÿèTýÿH�5ËH‰ßè’Wýÿ…ÀuHƒ Ö´7¸éÜùÿÿH�5ןH‰ßèmWýÿ…ÀuHƒ ±´7 ¸é·ùÿÿH�5¼ŸH‰ßèHWýÿ…ÀuH� ‰´7¸é�ùÿÿH�5žŸH‰ßè Wýÿ…ÀuHƒ d´7¸éjùÿÿH�5‚ŸH‰ßèûVýÿ…ÀuH� <´7¸éBùÿÿH�5gŸH‰ßèÓVýÿ…ÀuHƒ ´7¸éùÿÿH�5KŸH‰ßè®Výÿ…ÀuHƒ ò³7@¸éøøÿÿH�5/ŸH‰ßè‰Výÿ…ÀuH� ʳ7¸éÐøÿÿH�5ƒ}H‰ßèaVýÿ…ÀuHƒ �³7¸Hƒ ˜³7飸ÿÿH�5ážH‰ßè4Výÿ…ÀuHƒ%p³7÷¸Hƒ%k³7þévøÿÿH�5¹žH‰ßèVýÿ…ÀuHƒ C³7¸H� ;³7€éFøÿÿH�5’žH‰ßè×Uýÿ…Àu€ a²7¸é"øÿÿH�5lžH‰ßè³Uýÿ…Àu€%=²7þ¸éþ÷ÿÿH�5TžH‰ßè�Uýÿ…Àu€ ²7¸éÚ÷ÿÿH�5>žH‰ßèkUýÿ…Àu€ ó±7 ¸é¶÷ÿÿH�5žH‰ßèGUýÿ…Àu€%ϱ7߸é’÷ÿÿH�5þ�H‰ßè#Uýÿ…Àu€ «±7@¸én÷ÿÿH�5Ø�H‰ßèÿTýÿ…Àu€%‡±7¿¸éJ÷ÿÿH�5™[H‰ßèÛTýÿ…Àu¶b±7ƒàóƒÈˆV±7¸é÷ÿÿH�5”�H‰ßè«Týÿ…Àu¶2±7ƒàóƒÈˆ&±7¸éêöÿÿH�5úRH‰ßè{Týÿ…Àu€ ±7¸éÆöÿÿH�5I�H‰ßèWTýÿ…Àu€%à°7÷¸é¢öÿÿH�5,�H‰ßè3Týÿ…ÀtÜH�5!�H‰ßè Týÿ…ÀuÇB±7¸éhöÿÿH�5�H‰ßèùSýÿ…ÀuDZ7¸éAöÿÿH�5ëœH‰ßèÒSýÿ…ÀuÇø°7¸éöÿÿº H�5éœH‰ßèæMýÿ…Àu6H�k H�5ÜœH‰ïè�Sýÿ…ÀuC·°7f%ý€Ìgf‰°7¸éÌõÿÿH�5ÑœH‰ßè]Sýÿ…ÀuD€ é¯7¸é¨õÿÿH�5’œH‰ïè9Sýÿ…ÀuH·Ư7f%ýf �f‰·¯7¸éuõÿÿH�5�œH‰ßèSýÿ…À…€ ޝ7¸éMõÿÿºH�5=œH‰ïèMýÿ…À„‚ºH�5)œH‰ïèýLýÿ…ÀuY1ÒH‰æH�{èkWýÿˆ>¯7H‹$€8t+H‹‰7H�5–1ÿºH�Xè®NýÿH‰ÞH‰Ç1Àè1-ÿÿ€ ¯7¸éÀôÿÿºH�5–éuøÿÿ1ÒH‰æH�{èWýÿˆÔ®7H‹$€8t+H‹›ˆ7H�5t•1ÿºH�XèDNýÿH‰ÞH‰Ç1ÀèÇ,ÿÿ€%˜®7ý¸éVôÿÿH�5f›H‰ßèçQýÿ…Àu€ s®7¸é2ôÿÿº H�5C›H‰ßèþKýÿ…Àu(HƒÃ H�5ÙUH‰ßè§Qýÿ…Àu"€%3®7Ÿ¸éòóÿÿºH�5›é§÷ÿÿH�5a›H‰ßèrQýÿ…Àu¶þ­7ƒàŸƒÈ ˆò­7¸é±óÿÿH�5žyH‰ßèBQýÿ…Àu¶έ7ƒàŸƒÈ@ˆ­7¸é�óÿÿºH�5ý”é6÷ÿÿóúAUI‰õATI‰ÌUHcïSH�uHcÚHƒÃHÁãHƒìI‹}èNýÿ‹—R H‰ÞI‰E‰(¶ŠR ˆT(I‹<$èíMýÿH�5æ87I‰$H�Œ@þÿÿH‹Ó87H�yH‰H‹}:7HƒçøH‰�¸H)ùH)Î�ÁÀÁéóH¥HƒÄ[]A\A]Ãff.„f�óúAW1ÀAVAUATUSHƒìD¶zHAöÇ„åL‹jI‰þH‹~H‰ÓH‰õè‡LýÿL‰ïI‰Äè|LýÿIÄAƒç…ÏL‰÷ègLýÿI�|è NýÿHƒì¾M‰éAVL‹EH‰ÇI‰ÄHÇÂÿÿÿÿ1ÀH� ‚™èPWýÿXH‰ÞZL‰çèÓ2ÿÿ…À„¿L‰cH‹{ ¾è‰Uýÿ‰Â¸…ÒtFH‹S öBEt<¶CH‰Âƒâ€út¾ôH�=úP è%+ÿÿ¶CH¨„‘H‹{ L‰îèmTýÿ¸HƒÄ[]A\A]A^A_Ãf„I�|$èFMýÿL‹EM‰é¾H‰ÇI‰Ä1ÀHÇÂÿÿÿÿH� ç™è�VýÿH‰ÞL‰çè2ÿÿ…À…AÿÿÿL‰ç‰D$ è€Hýÿ‹D$ HƒÄ[]A\A]A^A_ÃDH‹{è?NýÿI‰Åé^ÿÿÿ€óúöJ«7@t Ç)™7étÿÿ@óúAWAVAUE1íATL�%«7USHƒìhdH‹%(H‰D$X1ÀH‹%«7ƒx@„ëH‹-<¬7H…í„H‹<«7H…Û„£L�5̘7ëf.„H‹›øH…Û„€H‹CƒxuæH‹ƒH‹¸H…ÿtÓ€?tÎèYLýÿI‰Çë@ÆA€?…‹HƒÀI‰Çtª¾5+¬7L‰ÿè«JýÿH…ÀuÖA€?t�L‰þL‰÷èUîÿÿH‹›øH…Ûu‰f„HƒìL‹ %˜7L‹&˜7H‰êH�D$ H‹ o«7H‹5P«7PH‹=Pª7ATÿ5`«7èƒOýÿHƒÄ …À„�H‹= «7H…ÿtH‹\$H…ÛtH‰»°è•IýÿHƒÀH‰C8L‹=f‹7M…ÿ„íL�%ø–ëf@H‹¹©7Æ+E1É1ÒI‹O E1ÀH‰ÞH�=©7ÿP(H‰ßètFýÿI‹FhH…ÀtH‹P@I‹N8H9ÊrH)ÊH‰P@A�N € IÇF8M‹0M…ÿt~AöGHuðI‹ L‰æè;KýÿI‰ÆH…ÀtÜH‹h8H�}è–JýÿI‹ 1ÉI‰èH‰ÂL‰öH‰Ãè¿Hýÿ…À…WÿÿÿI‹G 1ÿºH�5��H‰$è|HýÿH‹4$H‰Ç1Àèþ&ÿÿé)ÿÿÿf„èÛÿÿH‹=©7H�5­¨7èøPýÿ…ÀttM…ít¶D$foD$@AˆEH‹D$PAE I‰E0H‹D$XdH3%(…žHƒÄh[]A\A]A^A_À1ÿºH�5Ò�èåGýÿH‰Ç1Àèk&ÿÿéOþÿÿfD1ÿºH�5ª�è½GýÿH‰Ç1ÀèC&ÿÿéjÿÿÿfDH‹=Q¨7L‰æè)Gýÿ¶ò§7ƒà<u;E1íH�=!èŒ#þÿH‹-%©7H…í…éüÿÿH�= •èPDýÿH‰ÅéÕüÿÿ„H‹=ѧ7A¸1É1ÒH�5Ñ”è3JýÿI‰ÅH…Àt ¶@<v<u”H‹ȧ7ºL‰îH�=i§7H‹@H‹€`ÿ�°A¶Ea‰Âƒâ€út ƒàüƒÈAˆEaI‹E0óAoUIÇE0óAo] óAoMH‰D$PA¶E)L$ ˆD$H�7ƒ7)T$0)\$@AÆEI‰E(éÿÿÿ€L‰þL‰÷H‰$èéêÿÿH‹$é]üÿÿè«Fýÿff.„AUATL�%‚”UH�-½K SH‰ûHƒìƒ{w6‹CHcD…Hè>ÿà�E1ÉH‹S¹L‰çH‰Öó¦—À„ÀucH‹[ ƒ{vÊHƒÄ[]A\A]ÃfDH‹[ë­f�H‹{è‡ÿÿÿH‹{ è~ÿÿÿH‹[(ë“„H‹{ègÿÿÿë²DA¹ë‹„D‹C(H‹=U¦7D‰ÉH�5û¥7è¶Cýÿ…À…{ÿÿÿL‹k1ÿºH�5Ì�èwEýÿH‰ÇL‰î1Àèú#ÿÿéRÿÿÿDóúƒtÃDH‹éçþÿÿ€óúAWAVAUATUSHƒìH‹‡H‹WH‹€˜ L‹²`L‹`0H‹H(I‹D$hH‰L$H� Œ�7H9È„ L‹¸àH‰ýM‹l$8I‹_HH…Û„·I\$`H‰Þ¿Iƒíÿ’�H‹EL‰ïH�sÿ��H‹EH�s¿ÿ��E‰èH�KH‰ïÇC GNUI‹†øH‹t$H‹P èbÿÿI‹t$`1ÒIwH‰ïM‹l$8è¾Oýÿ1Ò…ÀtHƒÄ‰Ð[]A\A]A^A_ÀH‰êL‰îH‰ßè¢Hýÿ1ÒI9Å”ÂëЄI‹œ$°H…Û…=ÿÿÿL‰ïèçEýÿM‹l$8H‹UH‰ÃI‰„$°éÿÿÿfDºH�5\Œ1ÿèÕCýÿH‰Ç1Àè["ÿÿºéiÿÿÿ�AWAVAUATUH‰ýS1ÛHƒìH‹=î¤7èÑCýÿD¾%Á¥7H‰ïI‰Åë�H�x€?/J�+D‰æHDØè)DýÿH…ÀuäH‰ïèœCýÿH�|èBEýÿD¾5‚¥7I‰ÇI‰Äë-f�D‰öH‰ïèõCýÿH…ÀtCH)èH‰îL‰çH�XH‰ÚIÜHÝèAýÿ€}/uÏH‹5`¤7L‰çMìèMAýÿD‰öH‰ïè²CýÿH…Àu½H‰îL‰çè2AýÿHƒÄL‰ø[]A\A]A^A_ÃAWAVAUATUSH�ì˜H‰|$H‰÷H‰t$(H�5\JdH‹%(H‰„$ˆ1ÀèƒJýÿI‰Ç1ÀM…ÿ„뿽I½:è\DýÿI‰Äf„M‰æë6H‰ÇL�uÿèŒBýÿL‰òH)ÚH9Ðu?A€|,þ t7HíL‰çH‰îè;CýÿI‰ÄIÆL‰ó‰îL‰úL‰÷L)ã)ÞèàDýÿH…Àu³M9ô„S¾ L‰çèµBýÿH…Àtƾ#L‰çè BýÿH…ÀtÆA¶$L‰ã< †g„¹H‰ÞH�=€�ó¦—À„Àu¶C< „J< „B¶H‰Ú<=wH¹: H£Ás ëIfDH‰Â¶JH�B€ù=wðH¿: H£ÏsàH9Øt€:/téñ�€xÿ/…æHƒèH9ØuíH‹L$E1ö1ÀH‹9H…ÿ„ÞH‹L$H‹AH‹IH�PJ�42H9΃èH‹L$H‰Q¶!£7ˆH‹yH9L‰òH‰ÞèdEýÿH‹D$LpL‰pH‹BÆ0L‰ÿèçDýÿ…À„OþÿÿL‰çè>ýÿL‰ÿè@ýÿ¸H‹Œ$ˆdH3 %(…¯H�Ę[]A\A]A^A_Ã�HƒÃ¶< ‡¡þÿÿI£Årë„Àt˜é’þÿÿf�H�D$@L�KH‰D$ f�A¶€ú „s€ú „j„Ò„cÿÿÿL‰ËëDH‰ÃD¶sH�CA€þ „RA€þ „HE„öuÛH�CH‰D$„Ò„#ÿÿÿ€ú/„IH‹|$(¾/L‰L$0èå@ýÿL‹L$0H‰D$L‰ÏL‰L$8èî?ýÿH‹L$H+L$(H�|H‰ÃH‰L$è‚AýÿH‹L$H‹t$(H‰ÇH‰D$HƒÁH‰ÊH‰L$0èÿCýÿH‹L$0H‹D$H�SL‹L$8H�<L‰ÎèàCýÿH‹L$ 1Ò1öH‹|$è½Hýÿ…ÀuTHƒ|$@„J1ÛH‰l$0H‰ÝH‹\$fDH‹D$HH‰ßH‹4èHƒÅè3üÿÿH;l$@räH‹|$ H‹l$0è<ýÿHƒ|$t H‹|$èK<ýÿL‹L$E„ö„þÿÿA¶€ú …�þÿÿIƒÁéwþÿÿ€ÆA¶H�KH‰L$„ÒtÁéµþÿÿ€H‹L$ 1Ò1öL‰ÏèÿGýÿ…Àu HÇD$Hƒ|$@…9ÿÿÿH‹|$ èŒ;ýÿé|ÿÿÿ€H‹L$H)ØI‰ÆH‹9H…ÿ…"ýÿÿH�¸H‰yè@ýÿH‰ÇH‹D$H‰8HÇ@é2ýÿÿH‹D$J�´1H‰pè ?ýÿH‰ÇH‹D$H‰8H‹@H�PéêüÿÿH‹|$ è ;ýÿéïþÿÿè>ýÿff.„@óúATUSH�ì dH‹%(H‰„$˜1ÀHƒ=&Œ7t$H‹„$˜dH3%(…WH�Ä []A\Ã�H‰ûH‹ H…ÿtÐè_>ýÿ¨uÇH‹{ H‰æè¿<ýÿ…À…çH‹ð‹7H9$„®H‹oŒ7¾/H‹hH‰ïèÞ=ýÿH…Àu…H�5éŠH‰ïè*HýÿH…À„mÿÿÿH‹{ H�hèÔ=ýÿI‰ÄH…À„±H‹!Œ7H‰êL‰çH‹pH)òèO>ýÿ…À…3ÿÿÿH‹Œ71ÿºH�5Š…H‹hH‹Xèµ<ýÿL‰áH‰ÇH‰êH‰Þ1Àè2ÿÿéùþÿÿDH‹D$H94‹7…@ÿÿÿH…À„7ÿÿÿH‰öŠ7éÍþÿÿ�H‹[ 1ÿºH�5ÀŠèY<ýÿH‰ÇH‰Þ1ÀèÜÿÿé£þÿÿH‹{è~?ýÿI‰Äé>ÿÿÿèq<ýÿ�óú¶…œ7ƒà<u H� 3�7H¸€Hº€H#Xœ7H9Ðt é®ÿÿfD‹æœ7…ÀÇØœ7é�ÿÿ€HƒìºH�5¸„1ÿè±;ýÿH‰Ç1Àè7ÿÿÇ¡œ7HƒÄéTÿÿ@óúHƒì¾ H�=ç@ è§+ÿÿ€ P›7 H¸ ÇD�7Çv�7H «›7Æ­›7gHƒÄÃff.„@óúAWAVA‰ÖAUATUSH‰ûHƒì(H‹‡ðH‰4$H‹@ÇD$ ‹hH‹§›7H‹@ƒý”D$D‹`uH‹‡à‹@‰D$ ¶0›7ƒà<„Aƒü”Àö›7…áÇD$€|$„â„À„Ú‹S ö„ÎH‹»àöG „½L‹=rš7M…ÿtVH�5öv7fDI‹G8H9ðt7H…Àt2H‹ˆàöA t%D‹P A1ÒD‰Ð©u‹G,9A,„ø„M‹ M…ÿu·H�è‡H‰$÷ÂtHH�à‡H‰$öÂt8ƒâH�ç‡H�Ò‡HDÂH‰$ëf„‹S öÂ…´ÇD$E…ö„«‹=ý‡7…ÿ…|L�->†7L�=×[7M�¥°fAofAoOfAoW I‹?A)EA)MA)U H…ÿt(1Ò1öè�(þÿI‰EH…Àt‹°ˆ…öu A‹U‰�ˆf�IƒÅ0IƒÇ0M9åu£Çy‡7¶‚™7¨u.H‹3¹ H�=0‡ó¦—€ڄÒuL‹=¬…7M…ÿ…ÃàD‹c <„‘H‹»ðI‰Ý€L‰îèˆ>ýÿI‰ÅH…ÀtpIƒ}hI‹½ðuâA‹E ‰Â%€D1âƒâ ÂuÍöGEuÇH‹‡H…Àt»ö@HuµH‹“ðH‰ÙL‰îèSCýÿ…ÀtA‹E AƒôƒðA ÄAƒôI‹½ðë„@A÷Ä uOL�-`†7I‹EH…À„yHƒìD‰òE1ÉM‰èjH‹t$H‰ÁH‰ßè¤iþÿI‰ÇXZHƒÄ(L‰ø[]A\A]A^A_ÃDAöÄ„ÔD‰àƒàtAƒ|$ u€|$L�-“…7u‘ƒýt'H‹4$¹H�=ë…L�-u…7ó¦—€ڄÒ„eÿÿÿL�-þ„7A÷Ä„QÿÿÿI�Å�A÷Ä@…=ÿÿÿI�íðA÷Ä…)ÿÿÿIƒÅ0AöÄ„ÿÿÿƒý„ÞH‹4$¹H�=^…ó¦—€ڄÒuL�-¿„7…À…çþÿÿL�-ðƒ7AöÄI�EÐLEèéÏþÿÿ€H‹<$1Ò1öè+&þÿI‰ÇH…À„<ýÿÿE1íëxf.„‹F …À„¥3C ¨uFƒý…•Aƒü…‹H‹“àH‹†à‹J,9H,u¶ þ–7ƒá€ùuAHƒ¸Àt(@L‰ÿ1öè^*þÿI‰ÇH…À„ I‹w8H…öu‰M‰ýëÜH‹@H3B©€uÍH‹“ðH‹=÷–7H‰ÙèAýÿ…Àu Iƒ8MDïë¨I�L‰ù1ÒH‰Þèo3þÿé þÿÿE1í1ÀéÝýÿÿƒý„ÆH‹4$¹H�=„ÇD$ó¦—À„À…$üÿÿH‹4$ÇD$€~a„×H�ÖƒH‰$éþûÿÿM‹]M…Û„Ê1Ò1öL‰ßèÑ$þÿI‰EH…À…aýÿÿH‹ 5Q7I�UD‰æH‰ßèÎ)þÿH…À…BýÿÿH‹n•7é6ýÿÿA¾~M…í„§ûÿÿI�}L‰é1ÒH‰Þè™2þÿM‰ïé2ýÿÿ‹L$ ƒùt-‰È1Ƀø H�=ƒHE$”Á‰L$H‰$Aƒü„†úÿÿéOûÿÿH� ƒÇD$H‰ $éJúÿÿH�õ‚H‰$é'ûÿÿH‹H‹Ù”7€xa”D$ ¶L$ H…Ò„.ÿÿÿ1öD‰d$ E1É1íL‰l$L‰ØD‹l$I‰ôH‰\$L�=¶‚‰Ëé¡L‹B0¹L‰ÿL‰Æó¦—Á€Ù„É…�A€xaA”ÂE…í…ÔA¶ÊH�5‰‚I�|¹ó¦—Á€Ù„É„¯D8Ó@”ÆM…Ûtb@„öu]H‹J8H…ÀtB@„öu=H…Ét‹I öÁt ƒáI‰ÔHEêH‹J I‰ÑH…Ét.H‰Ê‹Š„…ɉTÿÿÿH‹J8ëÆH…ÉtØ‹I öÁtÐH‰ÐëÁI‰ÓëžL‰áL‹l$D‹d$ H‹\$H…Àt I‰Eé þÿÿL‰ØM…ÛuïH‰èH…íuçH‰ÈH…ÉHDÂëÛL‰áL‹l$D‹d$ L‰ÊH‹\$ë¿‹L$ ƒù„1üÿÿƒù …7üÿÿé#üÿÿf„óúATH‹=ó“7H�5œ“7USèå5ýÿºH�5Y|…Àˆí‰Ç» L�%s“7ë?�H‹¹“7H‹€H‹�˜ H‹B8H9ńڃû H9Ńȿƒë„’è­[þÿH‹=v“7H‹Gƒx…¤A¶$ƒà<„”H‹‡Hƒ=‰’7H‹€˜ H‹h8tM …ö„‚‹ Ø€7H�Am …É„mH‹5B7H¹@H¸@H!ñH9Á„‚H¿ H¸ H!÷H9Ç„JI¸H�éï I¹I!ðM9È„ÿD‹ Ô~7H�½ A�á@A�ù@„ÝH�²1 €ú„ÍH¸@H9Á„H¸ H9Ç„“H¹H� ¯ I9È„�H�Í A�ù@t}H�Bí €útqH¸@H‰òH!ÂH9„ÎH¸ H!ÆH9Æ„ÒH�/nö~7u2ö ~7@H�°H�ŽHDÂÃ@H�ùp öš~7„YÿÿÿË=^7H�k7 H�ü" …ÿHDÂÃDH��­ öb~7„¢þÿÿÃöQ~7H�*Œ H�CLHEÂÃfDö1~7H�Q H�sŽ HEÂÃö~7H�øÌ H� HDÂÃH�5,öö}7„ÿÿÿÀóúATUH‰ýS¾_H‰ØÁë‰Âƒâ¨@u#ƒËL‹g „ÒtAöD$EuHAöD$Eu([1À]A\Ã�„Òt L‹g AöD$Eu(…ÛtäL‹e AöD$Et؉ÞL‰çèF!ýÿ[1À]A\À1ÿH�5§_ºèEýÿL‰æH‰Ç1ÀèÈúþÿ…Ûtœë¶f�óúSºH‰ûH�5¬_1ÿèýÿH‰ß¾H‰Â1Àè£%ýÿºH�5×_1ÿèðýÿH‰ß¾H‰Â1Àè~%ýÿºH�5Š`1ÿèËýÿH‰ß¾[H‰Â1ÀéX%ýÿ„AWAVAUATUH‰õSHƒìL‹7H‰|$H‰÷M…ö„»è¶ýÿD¾%¦}7M‰÷H‰ÃE‰åë HƒÀI‰Çt0H‰ÚL‰þH‰ïèiýÿ…ÀuA¶„ÀtiD8ètdD‰æL‰ÿèìýÿH…ÀuÇL‰÷è_ýÿH�|èýÿHƒìD¾ A}7HÇÂÿÿÿÿUL‹t$H‰ÃH� t¾H‰ß1ÀM‹è@&ýÿI‹>èHýÿI‰XZHƒÄ[]A\A]A^A_Ã@èûýÿH‹L$H‰HƒÄ[]A\A]A^A_Ã@óúUSHƒìdH‹%(H‰D$1À�ÿ’„úŽ´�ÿ–„Žâ�ÿ˜„–Œ°�ÿ™…lH‹�T7H�5@"H‰ßèîýÿ…À„&H�5ëeH‰ßè×ýÿ…À„WH�5ÙeH‰ßèÀýÿ…À…»Çjz7¸f„H‹\$dH3%(…æHƒÄ[]ÃD�ÿ-„„~b�ÿ�„¶�È�ÿ.…¼€ z7¸ë¦fD�ÿ”„¤�¶¶Ûy7ƒàüƒÈˆÏy7¸éqÿÿÿ�ƒÿP„§ƒÿz…^ÿÿÿH‹‡S7¹H�=#eH‰Þó¦—À„À„1¹H�=ûdH‰Þó¦—À„À…“¶fy7ƒà?ƒÈ@ˆZy7¸éþþÿÿfD1Àéñþÿÿ�€%=y7ü¸éßþÿÿ€H‹=S7èÌþÿ¸éÂþÿÿf�H‹5éR7H�=¢i7èíüÿÿ¸é£þÿÿHƒ ¨y7¸f� Üx7Àé…þÿÿD¶Íx7H‹¢R7¹H�=*dƒàÏH‰Þˆ®x7ó¦—€ڄÒ„¹H�=ôcH‰Þó¦—€ڄÒ…kƒÈ ˆvx7¸éþÿÿ„€%^x7û¸éÿýÿÿ€€ Fx7¸éçýÿÿ€H‹5 R7H�=Êh7è üÿÿ¸éÃýÿÿH‹=¡h7H…ÿtèÿýÿHÇŒh7H‹ÍQ7H…Ò„¤¹H�=rH‰Ö¸ó¦—Á€Ù„É„pýÿÿH‰×èˆýÿH‰Ih7¸éWýÿÿ€€%žw7÷¸é?ýÿÿ€ƒÈˆƒw7¸é%ýÿÿDÇrw7¸é ýÿÿ@€ Sw7À¸é÷üÿÿ€H�iH‰Q7émÿÿÿDÇ*w7¸éÄüÿÿ@¹H�=}bH‰Þó¦—€ڄÒ…ƒÈ0ˆìv7¸éŽüÿÿfD¹H�=QbH‰Þó¦—À„ÀuR€ ¼v7 ¸é]üÿÿH�5bH‰ßèîýÿºH�5Š\…À„bÿÿÿ1ÿè#ýÿH‰ÞH‰Ç1Àè¦ôþÿ¸éüÿÿ¹H�=íaH‰Þó¦—À„À„ˆ¹H�=ÞaH‰Þó¦—À„À„Ź H�=ÒaH‰Þó¦—À„À„&¹ H�=ÂaH‰Þó¦—À„À…Ͷóu7ƒàóƒÈˆçu7¸é‡ûÿÿºH�5û[é<ÿÿÿ1ÒH‰æH�{èèýÿH‹$H‰¥w7€:u H�PÿH…„žûÿÿH‹tO7ºH�5Ø[H�X1ÿèýÿH‰ÞH‰Ç1Àè óþÿénûÿÿ1ÒH‰æH�{è�ýÿH‹$H‰Rw7€:u H�PÿH…„CûÿÿH‹O7ºH�5¥[H�X룹 H�=Õ`H‰Þó¦—À„À…‹¶u7ƒàóƒÈˆüt7¸éœúÿÿ1ÒH‰æH�{ èýÿH‹$H‰ãt7€:u#H…ÀxHƒ=Ñt7…¾úÿÿHÇÀt7ÿÿÿÿé®úÿÿH‹„N71ÿºH�56[H�X è-ýÿH‰ÞH‰Ç1Àè°òþÿëµH�5=`H‰ßèßýÿ…ÀuH� u7¸éúÿÿè1ýÿH�5ë?H‰ßè²ýÿ…ÀuHƒ öt7¸éÜùÿÿH�5÷_H‰ßè�ýÿ…ÀuHƒ Ñt7 ¸é·ùÿÿH�5Ü_H‰ßèhýÿ…ÀuH� ©t7¸é�ùÿÿH�5¾_H‰ßè@ýÿ…ÀuHƒ „t7¸éjùÿÿH�5¢_H‰ßèýÿ…ÀuH� \t7¸éBùÿÿH�5‡_H‰ßèóýÿ…ÀuHƒ 7t7¸éùÿÿH�5k_H‰ßèÎýÿ…ÀuHƒ t7@¸éøøÿÿH�5O_H‰ßè©ýÿ…ÀuH� ês7¸éÐøÿÿH�5£=H‰ßè�ýÿ…ÀuHƒ ½s7¸Hƒ ¸s7飸ÿÿH�5_H‰ßèTýÿ…ÀuHƒ%�s7÷¸Hƒ%‹s7þévøÿÿH�5Ù^H‰ßè'ýÿ…ÀuHƒ cs7¸H� [s7€éFøÿÿH�5²^H‰ßè÷ýÿ…Àu€ �r7¸é"øÿÿH�5Œ^H‰ßèÓýÿ…Àu€%]r7þ¸éþ÷ÿÿH�5t^H‰ßè¯ýÿ…Àu€ 4r7¸éÚ÷ÿÿH�5^^H‰ßè‹ýÿ…Àu€ r7 ¸é¶÷ÿÿH�58^H‰ßègýÿ…Àu€%ïq7߸é’÷ÿÿH�5^H‰ßèCýÿ…Àu€ Ëq7@¸én÷ÿÿH�5ø]H‰ßèýÿ…Àu€%§q7¿¸éJ÷ÿÿH�5¹H‰ßèûýÿ…Àu¶‚q7ƒàóƒÈˆvq7¸é÷ÿÿH�5´]H‰ßèËýÿ…Àu¶Rq7ƒàóƒÈˆFq7¸éêöÿÿH�5H‰ßè›ýÿ…Àu€ $q7¸éÆöÿÿH�5i]H‰ßèwýÿ…Àu€%q7÷¸é¢öÿÿH�5L]H‰ßèSýÿ…ÀtÜH�5A]H‰ßè@ýÿ…ÀuÇbq7¸éhöÿÿH�54]H‰ßèýÿ…ÀuÇ?q7¸éAöÿÿH�5 ]H‰ßèòýÿ…ÀuÇq7¸éöÿÿº H�5 ]H‰ßèýÿ…Àu6H�k H�5ü\H‰ïè¯ýÿ…Àu0·èþÿé)ÿÿÿf„èÔþÿH‹=Dj7H�5íi7è8ýÿ…ÀttM…ít¶D$foD$@AˆEH‹D$PAE I‰E0H‹D$XdH3%(…žHƒÄh[]A\A]A^A_À1ÿºH�5Qè% ýÿH‰Ç1Àè«çþÿéOþÿÿfD1ÿºH�5êPèýýÿH‰Ç1ÀèƒçþÿéjÿÿÿfDH‹=‘i7L‰æèiýÿ¶2i7ƒà<u;E1íH�=!èÌäýÿH‹-ej7H…í…éüÿÿH�=KVè�ýÿH‰ÅéÕüÿÿ„H‹=i7A¸1É1ÒH�5Vès ýÿI‰ÅH…Àt ¶@<v<u”H‹i7ºL‰îH�=©h7H‹@H‹€`ÿ�°A¶Ea‰Âƒâ€út ƒàüƒÈAˆEaI‹E0óAoUIÇE0óAo] óAoMH‰D$PA¶E)L$ ˆD$H�wD7)T$0)\$@AÆEI‰E(éÿÿÿ€L‰þL‰÷H‰$è ìÿÿH‹$é]üÿÿèëýÿff.„AUATL�%ÂUUH�-ѺSH‰ûHƒìƒ{w6‹CHcD…Hè>ÿà�E1ÉH‹S¹L‰çH‰Öó¦—À„ÀucH‹[ ƒ{vÊHƒÄ[]A\A]ÃfDH‹[ë­f�H‹{è‡ÿÿÿH‹{ è~ÿÿÿH‹[(ë“„H‹{ègÿÿÿë²DA¹ë‹„D‹C(H‹=•g7D‰ÉH�5;g7èöýÿ…À…{ÿÿÿL‹k1ÿºH�5 Oè·ýÿH‰ÇL‰î1Àè:åþÿéRÿÿÿDóúƒtÃDH‹éçþÿÿ€óúAWAVAUATUSHƒìH‹‡H‹WH‹€˜ L‹²`L‹`0H‹H(I‹D$hH‰L$H� ÌB7H9È„ L‹¸àH‰ýM‹l$8I‹_HH…Û„·I\$`H‰Þ¿Iƒíÿ’�H‹EL‰ïH�sÿ��H‹EH�s¿ÿ��E‰èH�KH‰ïÇC GNUI‹†øH‹t$H‹P èF#ÿÿI‹t$`1ÒIwH‰ïM‹l$8èþýÿ1Ò…ÀtHƒÄ‰Ð[]A\A]A^A_ÀH‰êL‰îH‰ßèâ ýÿ1ÒI9Å”ÂëЄI‹œ$°H…Û…=ÿÿÿL‰ïè'ýÿM‹l$8H‹UH‰ÃI‰„$°éÿÿÿfDºH�5œM1ÿèýÿH‰Ç1Àè›ãþÿºéiÿÿÿ�óúATUSH�ì dH‹%(H‰„$˜1ÀHƒ=öU7t$H‹„$˜dH3%(…WH�Ä []A\Ã�H‰ûH‹ H…ÿtÐè�ýÿ¨uÇH‹{ H‰æèïýÿ…À…çH‹ÀU7H9$„®H‹?V7¾/H‹hH‰ïèýÿH…Àu…H�5RH‰ïèZýÿH…À„mÿÿÿH‹{ H�hèýÿI‰ÄH…À„±H‹ñU7H‰êL‰çH‹pH)òèýÿ…À…3ÿÿÿH‹ÐU71ÿºH�5ºLH‹hH‹XèåýÿL‰áH‰ÇH‰êH‰Þ1ÀèbâþÿéùþÿÿDH‹D$H9U7…@ÿÿÿH…À„7ÿÿÿH‰ÆT7éÍþÿÿ�H‹[ 1ÿºH�5ðQè‰ýÿH‰ÇH‰Þ1Àè âþÿé£þÿÿH‹{è®ýÿI‰Äé>ÿÿÿè¡ýÿ�óú¶µc7ƒà<u H� cd7H¸€Hº€H#ˆc7H9Ðt éÞÌþÿfD‹d7…ÀÇd7é¿Ìþÿ€HƒìºH�5èK1ÿèáýÿH‰Ç1ÀègáþÿÇÑc7HƒÄé„Ìþÿ@óúHƒì¾ H�=éµè×òþÿ€ €b7 H¸ Çtd7Ǧd7H Ûb7ÆÝb7gHƒÄÃff.„@óúAWAVA‰ÖAUATUSH‰ûHƒì(H‹‡ðH‰4$H‹@ÇD$ ‹hH‹×b7H‹@ƒý”D$D‹`uH‹‡à‹@‰D$ ¶`b7ƒà<„Aƒü”ÀöLb7…áÇD$€|$„â„À„Ú‹S ö„ÎH‹»àöG „½L‹=¢a7M…ÿtVH�5&>7fDI‹G8H9ðt7H…Àt2H‹ˆàöA t%D‹P A1ÒD‰Ð©u‹G,9A,„ø„M‹ M…ÿu·H�OH‰$÷ÂtHH�OH‰$öÂt8ƒâH�OH�OHDÂH‰$ëf„‹S öÂ…´ÇD$E…ö„«‹=ÍQ7…ÿ…|L�-P7L�=§%7M�¥°fAofAoOfAoW I‹?A)EA)MA)U H…ÿt(1Ò1öè¿ïýÿI‰EH…Àt‹°ˆ…öu A‹U‰�ˆf�IƒÅ0IƒÇ0M9åu£ÇIQ7¶²`7¨u.H‹3¹ H�=`Nó¦—€ڄÒuL‹=|O7M…ÿ…ÃàD‹c <„‘H‹»ðI‰Ý€L‰îè¸ýÿI‰ÅH…ÀtpIƒ}hI‹½ðuâA‹E ‰Â%€D1âƒâ ÂuÍöGEuÇH‹‡H…Àt»ö@HuµH‹“ðH‰ÙL‰îèƒ ýÿ…ÀtA‹E AƒôƒðA ÄAƒôI‹½ðë„@A÷Ä uOL�-0P7I‹EH…À„yHƒìD‰òE1ÉM‰èjH‹t$H‰ÁH‰ßèÔ0þÿI‰ÇXZHƒÄ(L‰ø[]A\A]A^A_ÃDAöÄ„ÔD‰àƒàtAƒ|$ u€|$L�-cO7u‘ƒýt'H‹4$¹H�=ML�-EO7ó¦—€ڄÒ„eÿÿÿL�-ÎN7A÷Ä„QÿÿÿI�Å�A÷Ä@…=ÿÿÿI�íðA÷Ä…)ÿÿÿIƒÅ0AöÄ„ÿÿÿƒý„ÞH‹4$¹H�=ŽLó¦—€ڄÒuL�-�N7…À…çþÿÿL�-ÀM7AöÄI�EÐLEèéÏþÿÿ€H‹<$1Ò1öè[íýÿI‰ÇH…À„<ýÿÿE1íëxf.„‹F …À„¥3C ¨uFƒý…•Aƒü…‹H‹“àH‹†à‹J,9H,u¶ .^7ƒá€ùuAHƒ¸Àt(@L‰ÿ1öèŽñýÿI‰ÇH…À„ I‹w8H…öu‰M‰ýëÜH‹@H3B©€uÍH‹“ðH‹='^7H‰ÙèOýÿ…Àu Iƒ8MDïë¨I�L‰ù1ÒH‰ÞèŸúýÿé þÿÿE1í1ÀéÝýÿÿƒý„ÆH‹4$¹H�=CKÇD$ó¦—À„À…$üÿÿH‹4$ÇD$€~a„×H�KH‰$éþûÿÿM‹]M…Û„Ê1Ò1öL‰ßèìýÿI‰EH…À…aýÿÿH‹ e7I�UD‰æH‰ßèþðýÿH…À…BýÿÿH‹ž\7é6ýÿÿA¾~M…í„§ûÿÿI�}L‰é1ÒH‰ÞèÉùýÿM‰ïé2ýÿÿ‹L$ ƒùt-‰È1Ƀø H�mJHE$”Á‰L$H‰$Aƒü„†úÿÿéOûÿÿH� =JÇD$H‰ $éJúÿÿH�%JH‰$é'ûÿÿH‹H‹ \7€xa”D$ ¶L$ H…Ò„.ÿÿÿ1öD‰d$ E1É1íL‰l$L‰ØD‹l$I‰ôH‰\$L�=æI‰Ëé¡L‹B0¹L‰ÿL‰Æó¦—Á€Ù„É…�A€xaA”ÂE…í…ÔA¶ÊH�5¹II�|¹ó¦—Á€Ù„É„¯D8Ó@”ÆM…Ûtb@„öu]H‹J8H…ÀtB@„öu=H…Ét‹I öÁt ƒáI‰ÔHEêH‹J I‰ÑH…Ét.H‰Ê‹Š„…ɉTÿÿÿH‹J8ëÆH…ÉtØ‹I öÁtÐH‰ÐëÁI‰ÓëžL‰áL‹l$D‹d$ H‹\$H…Àt I‰Eé þÿÿL‰ØM…ÛuïH‰èH…íuçH‰ÈH…ÉHDÂëÛL‰áL‹l$D‹d$ L‰ÊH‹\$ë¿‹L$ ƒù„1üÿÿƒù …7üÿÿé#üÿÿf„óúATH‹=#[7H�5ÌZ7USèýüÿºH�5‰C…Àˆí‰Ç» L�%£Z7ë?�H‹éZ7H‹€H‹�˜ H‹B8H9ńڃû H9Ńȿƒë„’èÝ"þÿH‹=¦Z7H‹Gƒx…¤A¶$ƒà<„”H‹‡Hƒ=¹Y7H‹€˜ H‹h8tV7H‰ßÿ�À…À…êþÿÿ1ÿºH�5·!èºõüÿH‰ÞH‰Ç1Àè=ÔþÿéÅþÿÿ„H‰ßè¸ýüÿéµþÿÿ1ÿºH�5?è}õüÿH‰ÞH‰Ç1ÀèÔþÿé»ýÿÿH‰ß1íè~ýüÿé{þÿÿè”õüÿ@óúAWAVAUATUSH�ìˆdH‹%(H‰D$x1Àèv¿þÿH‹-§U7ƒ}@…]H‹=ŽV7H…ÿt/èäúüÿH‹­U7H‹=vV7H‹@H‹0è üüÿH‰›U7H…À„… H‹=ËE7H…ÿ„lH‹ƒU7H…ÛuéKf„H‹›øH…Û„2H‹CƒxuæD‹“¨E…ÒtÚH‹ƒö@HuÍè(ÿÿH…À„ÝHƒÀI‰Ä„к+@H�5CH‰ßèžòüÿH…À„ H‹îT7H�5·íÿÿÇ@pH‹ŠH‹‰˜ H‰q H‹5E7H‰A0H‰q(H‹ˆàÇAL‰`8é¡¶WT7‰Ð‰ÑÀèÀéƒðƒáƒà8Áu"ÁâH‹=�T7H�5ŒBƒâƒÊèòüÿfDH‹D$xdH3%(…¹ H�Ĉ[]A\A]A^A_úH�5ž=1ÿèóüÿH‰Ç1ÀèÒþÿH‹=fD7èÉðüÿHÇVD7H‹T7H‹BH�=¬S7H‹€`ÿ�X¶˜S7ƒà<„5ÿÿÿ€=ŠS7ˆNH‹ÙS7H…Û„>E1öE1íE1äA¿L� Š/7L�ÆAL�ÏAëf.„H‹›øH…Û„½H‹ƒö@HuãH‹ƒ�H…ÀtwE1Àë/f�H‰Ö¹ L‰ßó¦—€ڄÒu Hƒx8 ECÇH‹@H…À„CH‹L9Hhtê¹H‰ÖL‰×ó¦—Á€Ù„Éu³A¸E…ö„LE9Æ…3M…ä„Ff�Aƒþ…Vÿÿÿ¶“R7H‹›øƒàüƒÈˆ€R7H…Û…CÿÿÿM…ä„PI‹D$H�5ë@L‰çH‹€`‹P(ƒÊè9ðüÿH…À„&Ç@pH‰…(H‹={R7H�5$R7è?ôüÿH‰D$I‰ÇH…À„fDI‹H…ÿt(èŠòüÿ¨…òI‹H…ÿt¶åQ7ƒà<„WH‹D$H‰ÃL9øt9f.„H‹{H…ÿt èBòüÿ¨uI‹wH‹{èõüÿ…À„ H‹L9ûuÑH�=ú÷ÿÿL‰=óB7HÇ8B7è#þÿH‹,B7H…Àt H‹x èîñüÿ¨tZI‹_I‹oD‹ cS7H‰\$@H‰l$HH‰\$PE…É…DH‹ìA7H…À„óH‹pH�|$PºH‰t$Xè[øÿÿ…À„ÓM‹?M…ÿ…ìþÿÿ¶ñP7ƒà<…Êüÿÿ1ÿH�5ÙP7èDöüÿ…À…´üÿÿ1ÿºH�5ž;èYðüÿH‰Ç1ÀèßÎþÿé’üÿÿf.„E…À„÷ýÿÿéÕýÿÿf�L9ûu‹éõþÿÿfDè ñüÿ¨…sÿÿÿé—þÿÿfDE‰ÆM…ä…¼ýÿÿAƒøt öSP7„©ýÿÿH‹CA½ƒxLDãé’ýÿÿf�ÇD$L‰|$8H‹D$HH‹oQ7€8/H‰D$ „öH…Û„€;„ýH‹D$@H‰D$`H‹D$ H‰ÇH‰D$hè«ïüÿHƒÀH‰D$(H�D$`H‰D$0„¾5�Q7H‰ßèðüÿH‰D$H…À„{L‹t$H‹D$(L‰õH)ÝH�|è ñüÿI‰ÅH‰ÇL9ótH‰êH‰Þè“óüÿAÆD-/I�|-H‹t$ 1íè<íüÿéE€¹H‰ÖH�=…ó¦—À„Àt¹H�=^=H‰Öó¦—À„À…mH‹D$`H…À„šL‹8M…ÿ„SA€?/„œèOïüÿL‰ÿH‰Åè´îüÿH‰ïH‰$è¨îüÿH‹$H�|èJðüÿM‰ùI‰è¾H‰$H‰Ç1ÀH� ò<HÇÂÿÿÿÿè“ùüÿL‹<$¾/L‰ÿèBïüÿH…À„IÆL‰ÿèNîüÿE‰öL)ëI�<èïïüÿI‰ÆM…䄳IƒÄA‰ØM‰é¾ATH‹l$H� …<1ÀHÇÂÿÿÿÿL‰÷Uè$ùüÿH‰ïèüíüÿ_AX�lL‰ïM‰õèëüÿL‰ÿèëüÿ‰ï¾$LïèSîüÿH‰ÃH…À„¾/H‰ßH�kè6îüÿL‰ïI‰Äè«íüÿI‰ÆM…ätAÆ$¶CH‰î<{u¶CH�sH�VJ7H�Ç›H�©›…ÉHDÂÃff.„f�óú¶JH1Àƒá€ùtÃDAVAUATI‰üUH‰õSH‰ÓHƒìH‹~è*èüÿH‹{I‰ÆèèüÿL‰çI‰ÅèèüÿK�|.HÇè¶éüÿHƒìHÇÂÿÿÿÿ¾ATL‹KH‰ÇI‰ÅL‹E1ÀH� …›èøòüÿXH‰ÞZL‰ïè{Îþÿ…ÀtL‰k¸HƒÄ[]A\A]A^Ã�L‰ï‰D$ èÔäüÿ‹D$ ëàff.„óúƒtÃDSH‹wH‰û¹H�=?5ó¦—€ڄÒu$H‹Sƒzt¾\H�=›è•ÆþÿH‹SHƒB [Ãf.„óú¶UG7ƒà<t^HƒìH‹=“G7H�5è˜ßüÿI‰XZHƒÄ[]A\A]A^A_Ã@èKäüÿH‹L$H‰HƒÄ[]A\A]A^A_Ã@óúUSHƒìdH‹%(H‰D$1À�ÿ’„úŽ´�ÿ–„Žâ�ÿ˜„–Œ°�ÿ™…lH‹Ý7H�5�éH‰ßè>ßüÿ…À„&H�5;-H‰ßè'ßüÿ…À„WH�5)-H‰ßèßüÿ…À…»ÇºA7¸f„H‹\$dH3%(…æHƒÄ[]ÃD�ÿ-„„~b�ÿ�„¶�È�ÿ.…¼€ RA7¸ë¦fD�ÿ”„¤�¶¶+A7ƒàüƒÈˆA7¸éqÿÿÿ�ƒÿP„§ƒÿz…^ÿÿÿH‹×7¹H�=s,H‰Þó¦—À„À„1¹H�=K,H‰Þó¦—À„À…“¶¶@7ƒà?ƒÈ@ˆª@7¸éþþÿÿfD1Àéñþÿÿ�€%�@7ü¸éßþÿÿ€H‹=Q7èæýÿ¸éÂþÿÿf�H‹597H�=²37èíüÿÿ¸é£þÿÿHƒ ø@7¸f� ,@7Àé…þÿÿD¶@7H‹ò7¹H�=z+ƒàÏH‰Þˆþ?7ó¦—€ڄÒ„¹H�=D+H‰Þó¦—€ڄÒ…kƒÈ ˆÆ?7¸éþÿÿ„€%®?7û¸éÿýÿÿ€€ –?7¸éçýÿÿ€H‹5Y7H�=Ú27è üÿÿ¸éÃýÿÿH‹=±27H…ÿtèOÜüÿHÇœ27H‹7H…Ò„¤¹H�=ÂæH‰Ö¸ó¦—Á€Ù„É„pýÿÿH‰×èØàüÿH‰Y27¸éWýÿÿ€€%î>7÷¸é?ýÿÿ€ƒÈˆÓ>7¸é%ýÿÿDÇÂ>7¸é ýÿÿ@€ £>7À¸é÷üÿÿ€H�Q0H‰b7émÿÿÿDÇz>7¸éÄüÿÿ@¹H�=Í)H‰Þó¦—€ڄÒ…ƒÈ0ˆ<>7¸éŽüÿÿfD¹H�=¡)H‰Þó¦—À„ÀuR€ >7 ¸é]üÿÿH�5`)H‰ßè>ÛüÿºH�5Ú#…À„bÿÿÿ1ÿèsÝüÿH‰ÞH‰Ç1Àèö»þÿ¸éüÿÿ¹H�==)H‰Þó¦—À„À„ˆ¹H�=.)H‰Þó¦—À„À„Ź H�=")H‰Þó¦—À„À„&¹ H�=)H‰Þó¦—À„À…ͶC=7ƒàóƒÈˆ7=7¸é‡ûÿÿºH�5K#é<ÿÿÿ1ÒH‰æH�{è8åüÿH‹$H‰õ>7€:u H�PÿH…„žûÿÿH‹Ä7ºH�5(#H�X1ÿèmÜüÿH‰ÞH‰Ç1Àèðºþÿénûÿÿ1ÒH‰æH�{èÝäüÿH‹$H‰¢>7€:u H�PÿH…„CûÿÿH‹i7ºH�5õ"H�X룹 H�=%(H‰Þó¦—À„À…‹¶X<7ƒàóƒÈˆL<7¸éœúÿÿ1ÒH‰æH�{ è^äüÿH‹$H‰3<7€:u#H…ÀxHƒ=!<7…¾úÿÿHÇ<7ÿÿÿÿé®úÿÿH‹Ô71ÿºH�5†"H�X è}ÛüÿH‰ÞH‰Ç1ÀèºþÿëµH�5�'H‰ßè/ßüÿ…ÀuH� p<7¸éúÿÿè�ÛüÿH�5;H‰ßèßüÿ…ÀuHƒ F<7¸éÜùÿÿH�5G'H‰ßèÝÞüÿ…ÀuHƒ !<7 ¸é·ùÿÿH�5,'H‰ßè¸Þüÿ…ÀuH� ù;7¸é�ùÿÿH�5'H‰ßè�Þüÿ…ÀuHƒ Ô;7¸éjùÿÿH�5ò&H‰ßèkÞüÿ…ÀuH� ¬;7¸éBùÿÿH�5×&H‰ßèCÞüÿ…ÀuHƒ ‡;7¸éùÿÿH�5»&H‰ßèÞüÿ…ÀuHƒ b;7@¸éøøÿÿH�5Ÿ&H‰ßèùÝüÿ…ÀuH� :;7¸éÐøÿÿH�5óH‰ßèÑÝüÿ…ÀuHƒ ;7¸Hƒ ;7飸ÿÿH�5Q&H‰ßè¤Ýüÿ…ÀuHƒ%à:7÷¸Hƒ%Û:7þévøÿÿH�5)&H‰ßèwÝüÿ…ÀuHƒ ³:7¸H� «:7€éFøÿÿH�5&H‰ßèGÝüÿ…Àu€ Ñ97¸é"øÿÿH�5Ü%H‰ßè#Ýüÿ…Àu€%­97þ¸éþ÷ÿÿH�5Ä%H‰ßèÿÜüÿ…Àu€ „97¸éÚ÷ÿÿH�5®%H‰ßèÛÜüÿ…Àu€ c97 ¸é¶÷ÿÿH�5ˆ%H‰ßè·Üüÿ…Àu€%?97߸é’÷ÿÿH�5n%H‰ßè“Üüÿ…Àu€ 97@¸én÷ÿÿH�5H%H‰ßèoÜüÿ…Àu€%÷87¿¸éJ÷ÿÿH�5 ãH‰ßèKÜüÿ…Àu¶Ò87ƒàóƒÈˆÆ87¸é÷ÿÿH�5%H‰ßèÜüÿ…Àu¶¢87ƒàóƒÈˆ–87¸éêöÿÿH�5jÚH‰ßèëÛüÿ…Àu€ t87¸éÆöÿÿH�5¹$H‰ßèÇÛüÿ…Àu€%P87÷¸é¢öÿÿH�5œ$H‰ßè£Ûüÿ…ÀtÜH�5‘$H‰ßè�Ûüÿ…ÀuDz87¸éhöÿÿH�5„$H‰ßèiÛüÿ…ÀuÇ�87¸éAöÿÿH�5[$H‰ßèBÛüÿ…ÀuÇh87¸éöÿÿº H�5Y$H‰ßèVÕüÿ…Àu6H�k H�5L$H‰ïèÿÚüÿ…Àu0·Œ77f%ý€Ìgf‰~77¸éÌõÿÿºH�5`$é�ùÿÿH�5$H‰ïè¼Úüÿ…Àu ·I77f%ýf �f‰:77¸éˆõÿÿºH�5è#H‰ïèÄÔüÿ…À„‚ºH�5Ô#H‰ïè¨Ôüÿ…ÀuY1ÒH‰æH�{èßüÿˆé67H‹$€8t+H‹°7H�5Á1ÿºH�XèYÖüÿH‰ÞH‰Ç1ÀèÜ´þÿ€ ­67¸éûôÿÿºH�5¿é°øÿÿ1ÒH‰æH�{è¬Þüÿˆ67H‹$€8t+H‹F7H�51ÿºH�XèïÕüÿH‰ÞH‰Ç1Àèr´þÿ€%C67ý¸é‘ôÿÿ�óúAUI‰õATI‰ÌUHcïSH�uHcÚHƒÃHÁãHƒìI‹}è¡Öüÿ‹ÿkH‰ÞI‰E‰(¶òkˆT(I‹<$è}ÖüÿH�5öÄ6I‰$H�Œ@þÿÿH‹ãÄ6H�yH‰H‹�Æ6HƒçøH‰�¸H)ùH)Î�ÁÀÁéóH¥HƒÄ[]A\A]Ãff.„f�óúAW1ÀAVAUATUSHƒìD¶zHAöÇ„åL‹jI‰þH‹~H‰ÓH‰õèÕüÿL‰ïI‰Äè ÕüÿIÄAƒç…ÏL‰÷è÷ÔüÿI�|è�ÖüÿHƒì¾M‰éAVL‹EH‰ÇI‰ÄHÇÂÿÿÿÿ1ÀH� "èàßüÿXH‰ÞZL‰çèc»þÿ…À„¿L‰cH‹{ ¾èÞüÿ‰Â¸…ÒtFH‹S öBEt<¶CH‰Âƒâ€út¾ôH�=_jèµ³þÿ¶CH¨„‘H‹{ L‰îèýÜüÿ¸HƒÄ[]A\A]A^A_Ãf„I�|$èÖÕüÿL‹EM‰é¾H‰ÇI‰Ä1ÀHÇÂÿÿÿÿH� w"èßüÿH‰ÞL‰ç褺þÿ…À…AÿÿÿL‰ç‰D$ èÑüÿ‹D$ HƒÄ[]A\A]A^A_ÃDH‹{èÏÖüÿI‰Åé^ÿÿÿ€óúöÚ37@t Ç'7éžþÿ@óúAWAVAUE1íATL�%ª37USHƒìhdH‹%(H‰D$X1ÀH‹µ37ƒx@„ëH‹-Ì47H…í„H‹Ì37H…Û„£L�5¼&7ëf.„H‹›øH…Û„€H‹CƒxuæH‹ƒH‹¸H…ÿtÓ€?tÎèéÔüÿI‰Çë@ÆA€?…‹HƒÀI‰Çtª¾5»47L‰ÿè;ÓüÿH…ÀuÖA€?t�L‰þL‰÷èuïÿÿH‹›øH…Ûu‰f„HƒìL‹ &7L‹&7H‰êH�D$ H‹ ÿ37H‹5à37PH‹=à27ATÿ5ð37èØüÿHƒÄ …À„�H‹=°37H…ÿtH‹\$H…ÛtH‰»°è%ÒüÿHƒÀH‰C8L‹=ö7M…ÿ„íL�%ˆëf@H‹I27Æ+E1É1ÒI‹O E1ÀH‰ÞH�=27ÿP(H‰ßèÏüÿI‹FhH…ÀtH‹P@I‹N8H9ÊrH)ÊH‰P@A�N € IÇF8M‹0M…ÿt~AöGHuðI‹ L‰æèËÓüÿI‰ÆH…ÀtÜH‹h8H�}è&ÓüÿI‹ 1ÉI‰èH‰ÂL‰öH‰ÃèOÑüÿ…À…WÿÿÿI‹G 1ÿºH�5-H‰$è ÑüÿH‹4$H‰Ç1À莯þÿé)ÿÿÿf„èk›þÿH‹=”17H�5=17èˆÙüÿ…ÀttM…ít¶D$foD$@AˆEH‹D$PAE I‰E0H‹D$XdH3%(…žHƒÄh[]A\A]A^A_À1ÿºH�5bèuÐüÿH‰Ç1Àèû®þÿéOþÿÿfD1ÿºH�5:èMÐüÿH‰Ç1ÀèÓ®þÿéjÿÿÿfDH‹=á07L‰æè¹Ïüÿ¶‚07ƒà<u;E1íH�=!è¬ýÿH‹-µ17H…í…éüÿÿH�=›èàÌüÿH‰ÅéÕüÿÿ„H‹=a07A¸1É1ÒH�5aèÃÒüÿI‰ÅH…Àt ¶@<v<u”H‹X07ºL‰îH�=ù/7H‹@H‹€`ÿ�°A¶Ea‰Âƒâ€út ƒàüƒÈAˆEaI‹E0óAoUIÇE0óAo] óAoMH‰D$PA¶E)L$ ˆD$H�Ç 7)T$0)\$@AÆEI‰E(éÿÿÿ€L‰þL‰÷H‰$è ìÿÿH‹$é]üÿÿè;Ïüÿff.„AUATL�%UH�-%eSH‰ûHƒìƒ{w6‹CHcD…Hè>ÿà�E1ÉH‹S¹L‰çH‰Öó¦—À„ÀucH‹[ ƒ{vÊHƒÄ[]A\A]ÃfDH‹[ë­f�H‹{è‡ÿÿÿH‹{ è~ÿÿÿH‹[(ë“„H‹{ègÿÿÿë²DA¹ë‹„D‹C(H‹=å.7D‰ÉH�5‹.7èFÌüÿ…À…{ÿÿÿL‹k1ÿºH�5\èÎüÿH‰ÇL‰î1À芬þÿéRÿÿÿDóúƒtÃDH‹éçþÿÿ€óúAWAVAUATUSHƒìH‹‡H‹WH‹€˜ L‹²`L‹`0H‹H(I‹D$hH‰L$H�  7H9È„ L‹¸àH‰ýM‹l$8I‹_HH…Û„·I\$`H‰Þ¿Iƒíÿ’�H‹EL‰ïH�sÿ��H‹EH�s¿ÿ��E‰èH�KH‰ïÇC GNUI‹†øH‹t$H‹P è–êþÿI‹t$`1ÒIwH‰ïM‹l$8èNØüÿ1Ò…ÀtHƒÄ‰Ð[]A\A]A^A_ÀH‰êL‰îH‰ßè2Ñüÿ1ÒI9Å”ÂëЄI‹œ$°H…Û…=ÿÿÿL‰ïèwÎüÿM‹l$8H‹UH‰ÃI‰„$°éÿÿÿfDºH�5ì1ÿèeÌüÿH‰Ç1Àèëªþÿºéiÿÿÿ�AWAVAUATUH‰ýS1ÛHƒìH‹=~-7èaÌüÿD¾%Q.7H‰ïI‰Åë�H�x€?/J�+D‰æHDØè¹ÌüÿH…ÀuäH‰ïè,ÌüÿH�|èÒÍüÿD¾5.7I‰ÇI‰Äë-f�D‰öH‰ïè…ÌüÿH…ÀtCH)èH‰îL‰çH�XH‰ÚIÜHÝè¥Éüÿ€}/uÏH‹5ð,7L‰çMìèÝÉüÿD‰öH‰ïèBÌüÿH…Àu½H‰îL‰çèÂÉüÿHƒÄL‰ø[]A\A]A^A_ÃAWAVAUATUSH�ì˜H‰|$H‰÷H‰t$(H�5ìÒdH‹%(H‰„$ˆ1ÀèÓüÿI‰Ç1ÀM…ÿ„뿽I½:èìÌüÿI‰Äf„M‰æë6H‰ÇL�uÿèËüÿL‰òH)ÚH9Ðu?A€|,þ t7HíL‰çH‰îèËËüÿI‰ÄIÆL‰ó‰îL‰úL‰÷L)ã)ÞèpÍüÿH…Àu³M9ô„S¾ L‰çèEËüÿH…Àtƾ#L‰çè0ËüÿH…ÀtÆA¶$L‰ã< †g„¹H‰ÞH�=ó¦—À„Àu¶C< „J< „B¶H‰Ú<=wH¹: H£Ás ëIfDH‰Â¶JH�B€ù=wðH¿: H£ÏsàH9Øt€:/téñ�€xÿ/…æHƒèH9ØuíH‹L$E1ö1ÀH‹9H…ÿ„ÞH‹L$H‹AH‹IH�PJ�42H9΃èH‹L$H‰Q¶±+7ˆH‹yH9L‰òH‰ÞèôÍüÿH‹D$LpL‰pH‹BÆ0L‰ÿèwÍüÿ…À„OþÿÿL‰çè§ÆüÿL‰ÿèÉüÿ¸H‹Œ$ˆdH3 %(…¯H�Ę[]A\A]A^A_Ã�HƒÃ¶< ‡¡þÿÿI£Årë„Àt˜é’þÿÿf�H�D$@L�KH‰D$ f�A¶€ú „s€ú „j„Ò„cÿÿÿL‰ËëDH‰ÃD¶sH�CA€þ „RA€þ „HE„öuÛH�CH‰D$„Ò„#ÿÿÿ€ú/„IH‹|$(¾/L‰L$0èuÉüÿL‹L$0H‰D$L‰ÏL‰L$8è~ÈüÿH‹L$H+L$(H�|H‰ÃH‰L$èÊüÿH‹L$H‹t$(H‰ÇH‰D$HƒÁH‰ÊH‰L$0è�ÌüÿH‹L$0H‹D$H�SL‹L$8H�<L‰ÎèpÌüÿH‹L$ 1Ò1öH‹|$èMÑüÿ…ÀuTHƒ|$@„J1ÛH‰l$0H‰ÝH‹\$fDH‹D$HH‰ßH‹4èHƒÅè3üÿÿH;l$@räH‹|$ H‹l$0è­ÄüÿHƒ|$t H‹|$èÛÄüÿL‹L$E„ö„þÿÿA¶€ú …�þÿÿIƒÁéwþÿÿ€ÆA¶H�KH‰L$„ÒtÁéµþÿÿ€H‹L$ 1Ò1öL‰Ïè�Ðüÿ…Àu HÇD$Hƒ|$@…9ÿÿÿH‹|$ èÄüÿé|ÿÿÿ€H‹L$H)ØI‰ÆH‹9H…ÿ…"ýÿÿH�¸H‰yè©ÈüÿH‰ÇH‹D$H‰8HÇ@é2ýÿÿH‹D$J�´1H‰pè›ÇüÿH‰ÇH‹D$H‰8H‹@H�PéêüÿÿH‹|$ è™Ãüÿéïþÿÿè¯Æüÿff.„@óúATUSH�ì dH‹%(H‰„$˜1ÀHƒ=7t$H‹„$˜dH3%(…WH�Ä []A\Ã�H‰ûH‹ H…ÿtÐèïÆüÿ¨uÇH‹{ H‰æèOÅüÿ…À…çH‹à7H9$„®H‹_7¾/H‹hH‰ïènÆüÿH…Àu…H�5yH‰ïèºÐüÿH…À„mÿÿÿH‹{ H�hèdÆüÿI‰ÄH…À„±H‹7H‰êL‰çH‹pH)òè߯üÿ…À…3ÿÿÿH‹ð71ÿºH�5H‹hH‹XèEÅüÿL‰áH‰ÇH‰êH‰Þ1Àè£þÿéùþÿÿDH‹D$H9$7…@ÿÿÿH…À„7ÿÿÿH‰æ7éÍþÿÿ�H‹[ 1ÿºH�5PèéÄüÿH‰ÇH‰Þ1Àèl£þÿé£þÿÿH‹{èÈüÿI‰Äé>ÿÿÿèÅüÿ�óú¶%7ƒà<u H� Ã%7H¸€Hº€H#è$7H9Ðt é>ŽþÿfD‹v%7…ÀÇh%7éŽþÿ€HƒìºH�5H 1ÿèAÄüÿH‰Ç1ÀèÇ¢þÿÇ1%7HƒÄéä�þÿ@óúHƒì¾ H�=LZè7´þÿ€ à#7 H¸ ÇÔ%7Ç&7H ;$7Æ=$7gHƒÄÃff.„@óúAWAVA‰ÖAUATUSH‰ûHƒì(H‹‡ðH‰4$H‹@ÇD$ ‹hH‹7$7H‹@ƒý”D$D‹`uH‹‡à‹@‰D$ ¶À#7ƒà<„Aƒü”Àö¬#7…áÇD$€|$„â„À„Ú‹S ö„ÎH‹»àöG „½L‹=#7M…ÿtVH�5†ÿ6fDI‹G8H9ðt7H…Àt2H‹ˆàöA t%D‹P A1ÒD‰Ð©u‹G,9A,„ø„M‹ M…ÿu·H�xH‰$÷ÂtHH�pH‰$öÂt8ƒâH�wH�bHDÂH‰$ëf„‹S öÂ…´ÇD$E…ö„«‹=í7…ÿ…|L�-.7L�=‡ê6M�¥°fAofAoOfAoW I‹?A)EA)MA)U H…ÿt(1Ò1öè±ýÿI‰EH…Àt‹°ˆ…öu A‹U‰�ˆf�IƒÅ0IƒÇ0M9åu£Çi7¶"7¨u.H‹3¹ H�=Àó¦—€ڄÒuL‹=œ7M…ÿ…ÃàD‹c <„‘H‹»ðI‰Ý€L‰îèÇüÿI‰ÅH…ÀtpIƒ}hI‹½ðuâA‹E ‰Â%€D1âƒâ ÂuÍöGEuÇH‹‡H…Àt»ö@HuµH‹“ðH‰ÙL‰îèãËüÿ…ÀtA‹E AƒôƒðA ÄAƒôI‹½ðë„@A÷Ä uOL�-P7I‹EH…À„yHƒìD‰òE1ÉM‰èjH‹t$H‰ÁH‰ßè4òýÿI‰ÇXZHƒÄ(L‰ø[]A\A]A^A_ÃDAöÄ„ÔD‰àƒàtAƒ|$ u€|$L�-ƒ7u‘ƒýt'H‹4$¹H�={L�-e7ó¦—€ڄÒ„eÿÿÿL�-î7A÷Ä„QÿÿÿI�Å�A÷Ä@…=ÿÿÿI�íðA÷Ä…)ÿÿÿIƒÅ0AöÄ„ÿÿÿƒý„ÞH‹4$¹H�=î ó¦—€ڄÒuL�-¯7…À…çþÿÿL�-à7AöÄI�EÐLEèéÏþÿÿ€H‹<$1Ò1öè»®ýÿI‰ÇH…À„<ýÿÿE1íëxf.„‹F …À„¥3C ¨uFƒý…•Aƒü…‹H‹“àH‹†à‹J,9H,u¶ Ž7ƒá€ùuAHƒ¸Àt(@L‰ÿ1öèî²ýÿI‰ÇH…À„ I‹w8H…öu‰M‰ýëÜH‹@H3B©€uÍH‹“ðH‹=‡7H‰Ùè¯Éüÿ…Àu Iƒ8MDïë¨I�L‰ù1ÒH‰Þèÿ»ýÿé þÿÿE1í1ÀéÝýÿÿƒý„ÆH‹4$¹H�=£ ÇD$ó¦—À„À…$üÿÿH‹4$ÇD$€~a„×H�f H‰$éþûÿÿM‹]M…Û„Ê1Ò1öL‰ßèa­ýÿI‰EH…À…aýÿÿH‹ ÅÙ6I�UD‰æH‰ßè^²ýÿH…À…BýÿÿH‹þ7é6ýÿÿA¾~M…í„§ûÿÿI�}L‰é1ÒH‰Þè)»ýÿM‰ïé2ýÿÿ‹L$ ƒùt-‰È1Ƀø H�Í HE$”Á‰L$H‰$Aƒü„†úÿÿéOûÿÿH� � ÇD$H‰ $éJúÿÿH�… H‰$é'ûÿÿH‹H‹i7€xa”D$ ¶L$ H…Ò„.ÿÿÿ1öD‰d$ E1É1íL‰l$L‰ØD‹l$I‰ôH‰\$L�=F ‰Ëé¡L‹B0¹L‰ÿL‰Æó¦—Á€Ù„É…�A€xaA”ÂE…í…ÔA¶ÊH�5 I�|¹ó¦—Á€Ù„É„¯D8Ó@”ÆM…Ûtb@„öu]H‹J8H…ÀtB@„öu=H…Ét‹I öÁt ƒáI‰ÔHEêH‹J I‰ÑH…Ét.H‰Ê‹Š„…ɉTÿÿÿH‹J8ëÆH…ÉtØ‹I öÁtÐH‰ÐëÁI‰ÓëžL‰áL‹l$D‹d$ H‹\$H…Àt I‰Eé þÿÿL‰ØM…ÛuïH‰èH…íuçH‰ÈH…ÉHDÂëÛL‰áL‹l$D‹d$ L‰ÊH‹\$ë¿‹L$ ƒù„1üÿÿƒù …7üÿÿé#üÿÿf„óúATH‹=ƒ7H�5,7USèu¾üÿºH�5é…Àˆí‰Ç» L�%7ë?�H‹I7H‹€H‹�˜ H‹B8H9ńڃû H9Ńȿƒë„’è=äýÿH‹=7H‹Gƒx…¤A¶$ƒà<„”H‹‡Hƒ=7H‹€˜ H‹h8tèØ üÿI‰XZHƒÄ[]A\A]A^A_Ã@è‹¥üÿH‹L$H‰HƒÄ[]A\A]A^A_Ã@óúUSHƒìdH‹%(H‰D$1À�ÿ’„úŽ´�ÿ–„Žâ�ÿ˜„–Œ°�ÿ™…lH‹Ý6H�5ЪH‰ßè~ üÿ…À„&H�5{îH‰ßèg üÿ…À„WH�5iîH‰ßèP üÿ…À…»Çú7¸f„H‹\$dH3%(…æHƒÄ[]ÃD�ÿ-„„~b�ÿ�„¶�È�ÿ.…¼€ ’7¸ë¦fD�ÿ”„¤�¶¶k7ƒàüƒÈˆ_7¸éqÿÿÿ�ƒÿP„§ƒÿz…^ÿÿÿH‹Ü6¹H�=³íH‰Þó¦—À„À„1¹H�=‹íH‰Þó¦—À„À…“¶ö7ƒà?ƒÈ@ˆê7¸éþþÿÿfD1Àéñþÿÿ�€%Í7ü¸éßþÿÿ€H‹=‘Û6è\§ýÿ¸éÂþÿÿf�H‹5yÛ6H�=²÷6èíüÿÿ¸é£þÿÿHƒ 87¸f� l7Àé…þÿÿD¶]7H‹2Û6¹H�=ºìƒàÏH‰Þˆ>7ó¦—€ڄÒ„¹H�=„ìH‰Þó¦—€ڄÒ…kƒÈ ˆ7¸éþÿÿ„€%î7û¸éÿýÿÿ€€ Ö7¸éçýÿÿ€H‹5™Ú6H�=Úö6è üÿÿ¸éÃýÿÿH‹=±ö6H…ÿtè��üÿHÇœö6H‹]Ú6H…Ò„¤¹H�=¨H‰Ö¸ó¦—Á€Ù„É„pýÿÿH‰×è¢üÿH‰Yö6¸éWýÿÿ€€%.7÷¸é?ýÿÿ€ƒÈˆ7¸é%ýÿÿDÇ7¸é ýÿÿ@€ ãÿ6À¸é÷üÿÿ€H�‘ñH‰¢Ù6émÿÿÿDǺÿ6¸éÄüÿÿ@¹H�= ëH‰Þó¦—€ڄÒ…ƒÈ0ˆ|ÿ6¸éŽüÿÿfD¹H�=áêH‰Þó¦—À„ÀuR€ Lÿ6 ¸é]üÿÿH�5 êH‰ßè~œüÿºH�5å…À„bÿÿÿ1ÿ賞üÿH‰ÞH‰Ç1Àè6}þÿ¸éüÿÿ¹H�=}êH‰Þó¦—À„À„ˆ¹H�=nêH‰Þó¦—À„À„Ź H�=bêH‰Þó¦—À„À„&¹ H�=RêH‰Þó¦—À„À…Ͷƒþ6ƒàóƒÈˆwþ6¸é‡ûÿÿºH�5‹äé<ÿÿÿ1ÒH‰æH�{èx¦üÿH‹$H‰57€:u H�PÿH…„žûÿÿH‹Ø6ºH�5häH�X1ÿè­�üÿH‰ÞH‰Ç1Àè0|þÿénûÿÿ1ÒH‰æH�{è¦üÿH‹$H‰âÿ6€:u H�PÿH…„CûÿÿH‹©×6ºH�55äH�X룹 H�=eéH‰Þó¦—À„À…‹¶˜ý6ƒàóƒÈˆŒý6¸éœúÿÿ1ÒH‰æH�{ 螥üÿH‹$H‰sý6€:u#H…ÀxHƒ=aý6…¾úÿÿHÇPý6ÿÿÿÿé®úÿÿH‹×61ÿºH�5ÆãH�X 轜üÿH‰ÞH‰Ç1Àè@{þÿëµH�5ÍèH‰ßèo üÿ…ÀuH� °ý6¸éúÿÿèÁœüÿH�5{ÈH‰ßèB üÿ…ÀuHƒ †ý6¸éÜùÿÿH�5‡èH‰ßè üÿ…ÀuHƒ aý6 ¸é·ùÿÿH�5lèH‰ßèøŸüÿ…ÀuH� 9ý6¸é�ùÿÿH�5NèH‰ßèПüÿ…ÀuHƒ ý6¸éjùÿÿH�52èH‰ß諟üÿ…ÀuH� ìü6¸éBùÿÿH�5èH‰ß胟üÿ…ÀuHƒ Çü6¸éùÿÿH�5ûçH‰ßè^Ÿüÿ…ÀuHƒ ¢ü6@¸éøøÿÿH�5ßçH‰ßè9Ÿüÿ…ÀuH� zü6¸éÐøÿÿH�53ÆH‰ßèŸüÿ…ÀuHƒ Mü6¸Hƒ Hü6飸ÿÿH�5‘çH‰ßèäžüÿ…ÀuHƒ% ü6÷¸Hƒ%ü6þévøÿÿH�5içH‰ßè·žüÿ…ÀuHƒ óû6¸H� ëû6€éFøÿÿH�5BçH‰ß臞üÿ…Àu€ û6¸é"øÿÿH�5çH‰ßècžüÿ…Àu€%íú6þ¸éþ÷ÿÿH�5çH‰ßè?žüÿ…Àu€ Äú6¸éÚ÷ÿÿH�5îæH‰ßèžüÿ…Àu€ £ú6 ¸é¶÷ÿÿH�5ÈæH‰ßè÷�üÿ…Àu€%ú6߸é’÷ÿÿH�5®æH‰ßèÓ�üÿ…Àu€ [ú6@¸én÷ÿÿH�5ˆæH‰ßè¯�üÿ…Àu€%7ú6¿¸éJ÷ÿÿH�5I¤H‰ßè‹�üÿ…Àu¶ú6ƒàóƒÈˆú6¸é÷ÿÿH�5DæH‰ßè[�üÿ…Àu¶âù6ƒàóƒÈˆÖù6¸éêöÿÿH�5ª›H‰ßè+�üÿ…Àu€ ´ù6¸éÆöÿÿH�5ùåH‰ßè�üÿ…Àu€%�ù6÷¸é¢öÿÿH�5ÜåH‰ßèãœüÿ…ÀtÜH�5ÑåH‰ßèМüÿ…ÀuÇòù6¸éhöÿÿH�5ÄåH‰ß詜üÿ…ÀuÇÏù6¸éAöÿÿH�5›åH‰ß肜üÿ…ÀuǨù6¸éöÿÿº H�5™åH‰ßè––üÿ…Àu6H�k H�5ŒåH‰ïè?œüÿ…Àu0·Ìø6f%ý€Ìgf‰¾ø6¸éÌõÿÿºH�5 åé�ùÿÿH�5UåH‰ïèü›üÿ…Àu ·‰ø6f%ýf �f‰zø6¸éˆõÿÿºH�5(åH‰ïè–üÿ…À„‚ºH�5åH‰ïèè•üÿ…ÀuY1ÒH‰æH�{èV üÿˆ)ø6H‹$€8t+H‹ðÑ6H�5ß1ÿºH�Xè™—üÿH‰ÞH‰Ç1Àèvþÿ€ í÷6¸éûôÿÿºH�5ÿÞé°øÿÿ1ÒH‰æH�{èìŸüÿˆ¿÷6H‹$€8t+H‹†Ñ6H�5_Þ1ÿºH�Xè/—üÿH‰ÞH‰Ç1Àè²uþÿ€%ƒ÷6ý¸é‘ôÿÿ�óúAUI‰õATI‰ÌUHcïSH�uHcÚHƒÃHÁãHƒìI‹}èá—üÿ‹ŸH‰ÞI‰E‰(¶’ˆT(I‹<$è½—üÿH�5ö‡6I‰$H�Œ@þÿÿH‹ã‡6H�yH‰H‹�‰6HƒçøH‰�¸H)ùH)Î�ÁÀÁéóH¥HƒÄ[]A\A]Ãff.„f�óúAW1ÀAVAUATUSHƒìD¶zHAöÇ„åL‹jI‰þH‹~H‰ÓH‰õèW–üÿL‰ïI‰ÄèL–üÿIÄAƒç…ÏL‰÷è7–üÿI�|èÝ—üÿHƒì¾M‰éAVL‹EH‰ÇI‰ÄHÇÂÿÿÿÿ1ÀH� Rãè ¡üÿXH‰ÞZL‰çè£|þÿ…À„¿L‰cH‹{ ¾èYŸüÿ‰Â¸…ÒtFH‹S öBEt<¶CH‰Âƒâ€út¾ôH�=ÿ èõtþÿ¶CH¨„‘H‹{ L‰îè=žüÿ¸HƒÄ[]A\A]A^A_Ãf„I�|$è—üÿL‹EM‰é¾H‰ÇI‰Ä1ÀHÇÂÿÿÿÿH� ·ãè_ üÿH‰ÞL‰çèä{þÿ…À…AÿÿÿL‰ç‰D$ èP’üÿ‹D$ HƒÄ[]A\A]A^A_ÃDH‹{è˜üÿI‰Åé^ÿÿÿ€óúöõ6@t Çë6éD_þÿ@óúAWAVAUE1íATL�%êô6USHƒìhdH‹%(H‰D$X1ÀH‹õô6ƒx@„ëH‹- ö6H…í„H‹ õ6H…Û„£L�5¼ê6ëf.„H‹›øH…Û„€H‹CƒxuæH‹ƒH‹¸H…ÿtÓ€?tÎè)–üÿI‰Çë@ÆA€?…‹HƒÀI‰Çtª¾5ûõ6L‰ÿè{”üÿH…ÀuÖA€?t�L‰þL‰÷èuïÿÿH‹›øH…Ûu‰f„HƒìL‹ ê6L‹ê6H‰êH�D$ H‹ ?õ6H‹5 õ6PH‹= ô6ATÿ50õ6èS™üÿHƒÄ …À„�H‹=ðô6H…ÿtH‹\$H…ÛtH‰»°èe“üÿHƒÀH‰C8L‹=6Õ6M…ÿ„íL�%Èàëf@H‹‰ó6Æ+E1É1ÒI‹O E1ÀH‰ÞH�=Oó6ÿP(H‰ßèD�üÿI‹FhH…ÀtH‹P@I‹N8H9ÊrH)ÊH‰P@A�N € IÇF8M‹0M…ÿt~AöGHuðI‹ L‰æè •üÿI‰ÆH…ÀtÜH‹h8H�}èf”üÿI‹ 1ÉI‰èH‰ÂL‰öH‰Ãè�’üÿ…À…WÿÿÿI‹G 1ÿºH�5mÚH‰$èL’üÿH‹4$H‰Ç1ÀèÎpþÿé)ÿÿÿf„è«\þÿH‹=Ôò6H�5}ò6èÈšüÿ…ÀttM…ít¶D$foD$@AˆEH‹D$PAE I‰E0H‹D$XdH3%(…žHƒÄh[]A\A]A^A_À1ÿºH�5¢Ù赑üÿH‰Ç1Àè;pþÿéOþÿÿfD1ÿºH�5zÙè�‘üÿH‰Ç1ÀèpþÿéjÿÿÿfDH‹=!ò6L‰æèù�üÿ¶Âñ6ƒà<u;E1íH�=!è\mýÿH‹-õò6H…í…éüÿÿH�=ÛÞè ŽüÿH‰ÅéÕüÿÿ„H‹=¡ñ6A¸1É1ÒH�5¡Þè”üÿI‰ÅH…Àt ¶@<v<u”H‹˜ñ6ºL‰îH�=9ñ6H‹@H‹€`ÿ�°A¶Ea‰Âƒâ€út ƒàüƒÈAˆEaI‹E0óAoUIÇE0óAo] óAoMH‰D$PA¶E)L$ ˆD$H�Í6)T$0)\$@AÆEI‰E(éÿÿÿ€L‰þL‰÷H‰$è ìÿÿH‹$é]üÿÿè{�üÿff.„AUATL�%RÞUH�-ÅSH‰ûHƒìƒ{w6‹CHcD…Hè>ÿà�E1ÉH‹S¹L‰çH‰Öó¦—À„ÀucH‹[ ƒ{vÊHƒÄ[]A\A]ÃfDH‹[ë­f�H‹{è‡ÿÿÿH‹{ è~ÿÿÿH‹[(ë“„H‹{ègÿÿÿë²DA¹ë‹„D‹C(H‹=%ð6D‰ÉH�5Ëï6è†�üÿ…À…{ÿÿÿL‹k1ÿºH�5œ×èG�üÿH‰ÇL‰î1ÀèÊmþÿéRÿÿÿDóúƒtÃDH‹éçþÿÿ€óúAWAVAUATUSHƒìH‹‡H‹WH‹€˜ L‹²`L‹`0H‹H(I‹D$hH‰L$H� \Ë6H9È„ L‹¸àH‰ýM‹l$8I‹_HH…Û„·I\$`H‰Þ¿Iƒíÿ’�H‹EL‰ïH�sÿ��H‹EH�s¿ÿ��E‰èH�KH‰ïÇC GNUI‹†øH‹t$H‹P èÖ«þÿI‹t$`1ÒIwH‰ïM‹l$8莙üÿ1Ò…ÀtHƒÄ‰Ð[]A\A]A^A_ÀH‰êL‰îH‰ßèr’üÿ1ÒI9Å”ÂëЄI‹œ$°H…Û…=ÿÿÿL‰ïè·�üÿM‹l$8H‹UH‰ÃI‰„$°éÿÿÿfDºH�5,Ö1ÿè¥�üÿH‰Ç1Àè+lþÿºéiÿÿÿ�AWAVAUATUH‰ýS1ÛHƒìH‹=¾î6è¡�üÿD¾%‘ï6H‰ïI‰Åë�H�x€?/J�+D‰æHDØèù�üÿH…ÀuäH‰ïèl�üÿH�|è�üÿD¾5Rï6I‰ÇI‰Äë-f�D‰öH‰ïèÅ�üÿH…ÀtCH)èH‰îL‰çH�XH‰ÚIÜHÝèåŠüÿ€}/uÏH‹50î6L‰çMìè‹üÿD‰öH‰ïè‚�üÿH…Àu½H‰îL‰çè‹üÿHƒÄL‰ø[]A\A]A^A_ÃAWAVAUATUSH�ì˜H‰|$H‰÷H‰t$(H�5,”dH‹%(H‰„$ˆ1ÀèS”üÿI‰Ç1ÀM…ÿ„뿽I½:è,ŽüÿI‰Äf„M‰æë6H‰ÇL�uÿè\ŒüÿL‰òH)ÚH9Ðu?A€|,þ t7HíL‰çH‰îè �üÿI‰ÄIÆL‰ó‰îL‰úL‰÷L)ã)Þè°ŽüÿH…Àu³M9ô„S¾ L‰çè…ŒüÿH…Àtƾ#L‰çèpŒüÿH…ÀtÆA¶$L‰ã< †g„¹H‰ÞH�=PÙó¦—À„Àu¶C< „J< „B¶H‰Ú<=wH¹: H£Ás ëIfDH‰Â¶JH�B€ù=wðH¿: H£ÏsàH9Øt€:/téñ�€xÿ/…æHƒèH9ØuíH‹L$E1ö1ÀH‹9H…ÿ„ÞH‹L$H‹AH‹IH�PJ�42H9΃èH‹L$H‰Q¶ñì6ˆH‹yH9L‰òH‰Þè4�üÿH‹D$LpL‰pH‹BÆ0L‰ÿè·Žüÿ…À„OþÿÿL‰çèç‡üÿL‰ÿèOŠüÿ¸H‹Œ$ˆdH3 %(…¯H�Ę[]A\A]A^A_Ã�HƒÃ¶< ‡¡þÿÿI£Årë„Àt˜é’þÿÿf�H�D$@L�KH‰D$ f�A¶€ú „s€ú „j„Ò„cÿÿÿL‰ËëDH‰ÃD¶sH�CA€þ „RA€þ „HE„öuÛH�CH‰D$„Ò„#ÿÿÿ€ú/„IH‹|$(¾/L‰L$0赊üÿL‹L$0H‰D$L‰ÏL‰L$8辉üÿH‹L$H+L$(H�|H‰ÃH‰L$èR‹üÿH‹L$H‹t$(H‰ÇH‰D$HƒÁH‰ÊH‰L$0èÏ�üÿH‹L$0H‹D$H�SL‹L$8H�<L‰Îè°�üÿH‹L$ 1Ò1öH‹|$è�’üÿ…ÀuTHƒ|$@„J1ÛH‰l$0H‰ÝH‹\$fDH‹D$HH‰ßH‹4èHƒÅè3üÿÿH;l$@räH‹|$ H‹l$0èí…üÿHƒ|$t H‹|$è†üÿL‹L$E„ö„þÿÿA¶€ú …�þÿÿIƒÁéwþÿÿ€ÆA¶H�KH‰L$„ÒtÁéµþÿÿ€H‹L$ 1Ò1öL‰ÏèÏ‘üÿ…Àu HÇD$Hƒ|$@…9ÿÿÿH‹|$ è\…üÿé|ÿÿÿ€H‹L$H)ØI‰ÆH‹9H…ÿ…"ýÿÿH�¸H‰yèé‰üÿH‰ÇH‹D$H‰8HÇ@é2ýÿÿH‹D$J�´1H‰pèÛˆüÿH‰ÇH‹D$H‰8H‹@H�PéêüÿÿH‹|$ èÙ„üÿéïþÿÿèï‡üÿff.„@óúATUSH�ì dH‹%(H‰„$˜1ÀHƒ=Þ6t$H‹„$˜dH3%(…WH�Ä []A\Ã�H‰ûH‹ H…ÿtÐè/ˆüÿ¨uÇH‹{ H‰æè�†üÿ…À…çH‹àÝ6H9$„®H‹_Þ6¾/H‹hH‰ï讇üÿH…Àu…H�5¹ÔH‰ïèú‘üÿH…À„mÿÿÿH‹{ H�h複üÿI‰ÄH…À„±H‹Þ6H‰êL‰çH‹pH)òèˆüÿ…À…3ÿÿÿH‹ðÝ61ÿºH�5ZÏH‹hH‹Xè…†üÿL‰áH‰ÇH‰êH‰Þ1ÀèeþÿéùþÿÿDH‹D$H9$Ý6…@ÿÿÿH…À„7ÿÿÿH‰æÜ6éÍþÿÿ�H‹[ 1ÿºH�5�Ôè)†üÿH‰ÇH‰Þ1Àè¬dþÿé£þÿÿH‹{èN‰üÿI‰Äé>ÿÿÿèA†üÿ�óú¶Uæ6ƒà<u H� ç6H¸€Hº€H#(æ6H9Ðt é~OþÿfD‹¶æ6…ÀǨæ6é_Oþÿ€HƒìºH�5ˆÎ1ÿè�…üÿH‰Ç1ÀèdþÿÇqæ6HƒÄé$Oþÿ@óúHƒì¾ H�=ìýèwuþÿ€ å6 H¸ Çç6ÇFç6H {å6Æ}å6gHƒÄÃff.„@óúAWAVA‰ÖAUATUSH‰ûHƒì(H‹‡ðH‰4$H‹@ÇD$ ‹hH‹wå6H‹@ƒý”D$D‹`uH‹‡à‹@‰D$ ¶å6ƒà<„Aƒü”Àöìä6…áÇD$€|$„â„À„Ú‹S ö„ÎH‹»àöG „½L‹=Bä6M…ÿtVH�5ÆÀ6fDI‹G8H9ðt7H…Àt2H‹ˆàöA t%D‹P A1ÒD‰Ð©u‹G,9A,„ø„M‹ M…ÿu·H�¸ÑH‰$÷ÂtHH�°ÑH‰$öÂt8ƒâH�·ÑH�¢ÑHDÂH‰$ëf„‹S öÂ…´ÇD$E…ö„«‹=íÙ6…ÿ…|L�-.Ø6L�=g®6M�¥°fAofAoOfAoW I‹?A)EA)MA)U H…ÿt(1Ò1öè_rýÿI‰EH…Àt‹°ˆ…öu A‹U‰�ˆf�IƒÅ0IƒÇ0M9åu£ÇiÙ6¶Rã6¨u.H‹3¹ H�=Ñó¦—€ڄÒuL‹=œ×6M…ÿ…ÃàD‹c <„‘H‹»ðI‰Ý€L‰îèXˆüÿI‰ÅH…ÀtpIƒ}hI‹½ðuâA‹E ‰Â%€D1âƒâ ÂuÍöGEuÇH‹‡H…Àt»ö@HuµH‹“ðH‰ÙL‰îè#�üÿ…ÀtA‹E AƒôƒðA ÄAƒôI‹½ðë„@A÷Ä uOL�-PØ6I‹EH…À„yHƒìD‰òE1ÉM‰èjH‹t$H‰ÁH‰ßèt³ýÿI‰ÇXZHƒÄ(L‰ø[]A\A]A^A_ÃDAöÄ„ÔD‰àƒàtAƒ|$ u€|$L�-ƒ×6u‘ƒýt'H‹4$¹H�=»ÏL�-e×6ó¦—€ڄÒ„eÿÿÿL�-îÖ6A÷Ä„QÿÿÿI�Å�A÷Ä@…=ÿÿÿI�íðA÷Ä…)ÿÿÿIƒÅ0AöÄ„ÿÿÿƒý„ÞH‹4$¹H�=.Ïó¦—€ڄÒuL�-¯Ö6…À…çþÿÿL�-àÕ6AöÄI�EÐLEèéÏþÿÿ€H‹<$1Ò1öèûoýÿI‰ÇH…À„<ýÿÿE1íëxf.„‹F …À„¥3C ¨uFƒý…•Aƒü…‹H‹“àH‹†à‹J,9H,u¶ Îà6ƒá€ùuAHƒ¸Àt(@L‰ÿ1öè.týÿI‰ÇH…À„ I‹w8H…öu‰M‰ýëÜH‹@H3B©€uÍH‹“ðH‹=Çà6H‰ÙèïŠüÿ…Àu Iƒ8MDïë¨I�L‰ù1ÒH‰Þè?}ýÿé þÿÿE1í1ÀéÝýÿÿƒý„ÆH‹4$¹H�=ãÍÇD$ó¦—À„À…$üÿÿH‹4$ÇD$€~a„×H�¦ÍH‰$éþûÿÿM‹]M…Û„Ê1Ò1öL‰ßè¡nýÿI‰EH…À…aýÿÿH‹ ›6I�UD‰æH‰ßèžsýÿH…À…BýÿÿH‹>ß6é6ýÿÿA¾~M…í„§ûÿÿI�}L‰é1ÒH‰Þèi|ýÿM‰ïé2ýÿÿ‹L$ ƒùt-‰È1Ƀø H� ÍHE$”Á‰L$H‰$Aƒü„†úÿÿéOûÿÿH� ÝÌÇD$H‰ $éJúÿÿH�ÅÌH‰$é'ûÿÿH‹H‹©Þ6€xa”D$ ¶L$ H…Ò„.ÿÿÿ1öD‰d$ E1É1íL‰l$L‰ØD‹l$I‰ôH‰\$L�=†Ì‰Ëé¡L‹B0¹L‰ÿL‰Æó¦—Á€Ù„É…�A€xaA”ÂE…í…ÔA¶ÊH�5YÌI�|¹ó¦—Á€Ù„É„¯D8Ó@”ÆM…Ûtb@„öu]H‹J8H…ÀtB@„öu=H…Ét‹I öÁt ƒáI‰ÔHEêH‹J I‰ÑH…Ét.H‰Ê‹Š„…ɉTÿÿÿH‹J8ëÆH…ÉtØ‹I öÁtÐH‰ÐëÁI‰ÓëžL‰áL‹l$D‹d$ H‹\$H…Àt I‰Eé þÿÿL‰ØM…ÛuïH‰èH…íuçH‰ÈH…ÉHDÂëÛL‰áL‹l$D‹d$ L‰ÊH‹\$ë¿‹L$ ƒù„1üÿÿƒù …7üÿÿé#üÿÿf„óúATH‹=ÃÝ6H�5lÝ6USèµüÿºH�5)Æ…Àˆí‰Ç» L�%CÝ6ë?�H‹‰Ý6H‹€H‹�˜ H‹B8H9ńڃû H9Ńȿƒë„’è}¥ýÿH‹=FÝ6H‹Gƒx…¤A¶$ƒà<„”H‹‡Hƒ=YÜ6H‹€˜ H‹h8tÊ1ÿèý{üÿ[]H‰ÇA\1ÀéZþÿ€H‰j8[]A\Ãff.„@óúH‹eÒ6SH‰ûH…ÀtH‹x è£|üÿ¨„žH‹CH…À„‘H‹{ H…ÿ„„Hƒ=)Ò6t èr|üÿ¨uqH‹CH‹ÃÒ6H‰ÇH‹rè·züÿ…Àt[öCHt+H‹{¾/è_|üÿH…ÀtH‹“Ò6H�xH‹rè†züÿ…Àt*H‹{ èù{üÿH…ÀtH‹mÒ6H‰ÇH‹rèazüÿ…Àt[ÃH‰¡Ñ6[Ãff.„@AVA‰ÖAUI‰ýATI‰ôUL‰çSHƒìdH‹%(H‰D$1ÀH‹qÛ6H‹@H‹0èUzüÿH…À„d�HD¾H‰ÇH‰ÃèE„üÿ‰Å…À„KöCE„)H‹*Û6H‹@H9C…E…ö…‹H‰æH‰ßèüÿ…À„ H‹$H…ÀtoH�=PH‰ÑÐ6Ç¿Ð6è:‹ýÿ‹´Ð6…Ò…H‹$H…À„L�`ÈëfDH‹H…À„ìH‹p¹L‰Çó¦—€ڄÒuÜ@H�5‘Ð6H‰ßè)yüÿ…À…áH‹;èù|üÿH‰Å‹(Ü6…À…˜H�=òÿÿHÇ6Ð6衊ýÿHƒ=)Ð6„˽H‹L$dH3 %(‰è…oHƒÄ[]A\A]A^ÃH‰ß1íèn�üÿëÎ@‹-ºÛ6…ítÀºH�5ÙÄ1ÿ1íè)yüÿL‰æH‰Ç1ÀèÜVþÿëœf.„1ÿºH�5€ÇèýxüÿL‰âH‰îH‰Ç1Àè­Vþÿé@ÿÿÿ„1ÿºH�52ÇèÍxüÿH‰ÞH‰Ç1ÀèPWþÿéúþÿÿH‰ßH‰îè��üÿI‹}H…ÿtè�yüÿ¾¨u¾H‰ßèi}üÿH‹CH�5ÞØ6H‰ßÿ�À…À…êþÿÿ1ÿºH�5W¤èZxüÿH‰ÞH‰Ç1ÀèÝVþÿéÅþÿÿ„H‰ßèX€üÿéµþÿÿ1ÿºH�5¢ÁèxüÿH‰ÞH‰Ç1Àè Vþÿé»ýÿÿH‰ß1íè€üÿé{þÿÿè4xüÿ@AWAVAUATUSH‰ûH‰÷HƒìX‰T$dH‹%(H‰D$H1ÀH‹F€8/H‰D$„H…Û„}€;„tH‹H‰D$0H‹D$H‰ÇH‰D$8èºwüÿHƒÀH‰D$ H�D$0H‰D$(€¾5‘Ù6H‰ßèxüÿH‰D$H…À„›L‹t$H‹D$ L‰õH)ÝH�|èyüÿI‰ÅH‰ÇL9ótH‰êH‰Þè£{üÿAÆD-/I�|-H‹t$1íèLuüÿéD€¹H‰ÖH�=•¦ó¦—À„Àt¹H�=nÅH‰Öó¦—À„À…lH‹D$0H…À„ºL‹8M…ÿ„RA€?/„¼è_wüÿL‰ÿH‰ÅèÄvüÿH‰ïH‰$è¸vüÿH‹$H�|èZxüÿM‰ùI‰è¾H‰$H‰Ç1ÀH� ÅHÇÂÿÿÿÿè£�üÿL‹<$¾/L‰ÿèRwüÿH…À„iÆL‰ÿè^vüÿE‰öL)ëI�<èÿwüÿI‰ÆM…ä„ÓIƒÄ¾M‰éA‰ØATH‹l$H� •Ä1ÀHÇÂÿÿÿÿL‰÷Uè4�üÿH‰ïè vüÿ^_�lL‰ïM‰õè+süÿL‰ÿè#süÿ‰ï¾$LïèdvüÿH‰ÃH…À„ ¾/H‰ßH�kèGvüÿL‰ïI‰Äè¼uüÿI‰ÆM…ätAÆ$¶CH‰î<{u¶CH�sH�VÏ6„ÓH�=�¼èljüÿH…ÀtH‹4$D‰âH‰Çèxõÿÿ…À…×H‹= Î6H�5²Í6è lüÿI‰ÇH…ÀuëlH‰ïè˜jüÿM‹?M…ÿtPE„ötKI‹E1íA¾è‰ßÿÿH‰ÅH‹CI9GuÌH‹4$D‰âH‰ïE1íè õÿÿH‰ï…ÀA•ÅA”ÆèHjüÿM‹?M…ÿu°E…í…N‹yÁ6L‹-jÁ6…Ò„¡H‹{M…ít*H‹CH‹t$H‰|$HD‰âL‰ïH‰D$@è«ôÿÿ…À… H‹{èºlüÿL‹=ãÏ6I‰ÅM…ÿtyL‹t$fDA‹G…Àu^I‹è�lüÿI�|è5nüÿL‹KM‹GHÇÂÿÿÿÿH‰ÅH‰Ç1À¾H� Õºè}wüÿD‰âH‰îL‰÷H‰l$8è*ñÿÿ…À…‰H‰ïèjiüÿM‹?M…ÿu’Aƒü…¤L‹kL‹c1ÿºH�5R·H‹l$èØküÿL‰êL‰æH‰Ç1ÀèXJþÿéóüÿÿHƒ=sÍ6…-þÿÿH�=T¹è™hüÿH…À„þÿÿH‹4$D‰âH‰Çè¡óÿÿ…À„þÿÿH‹l$é¯üÿÿE…í„dûÿÿ1ÿºH�5X¶ècküÿH‰Ç1ÀèéIþÿéBûÿÿA¼éQýÿÿ1ÿºH�56ºè6küÿL‰âL‰îH‰Ç1ÀèæHþÿéüÿÿH‹=bÌ61ÒH�5-º1ÀHÇD$@HÇD$PHÇD$HèOlüÿH‹|$H‰ÆI‰Åè/Þÿÿ…ÀtAL‰ïè3hüÿH‹|$@L‹-g¿6H…ÿtè-ÝÿÿH‹|$@I‰ÅH‰N¿6è hüÿÇG¿6éØýÿÿL‰ïèògüÿH‹=ÓË61Ò1ÀH�5 ¹èÛküÿH‹|$H‰ÆI‰Åè»ÝÿÿëŽH‹âË61ÿºH�5D´èOjüÿH‰ÇH‰Þ1ÀèÒHþÿé0÷ÿÿºH�5�´ékøÿÿAƒøºH�5¼´IEÜ1ÿèjüÿH‰ÇH‰Þ1Àè”Hþÿé¬ùÿÿè:jüÿf.„óú‹vÀ6…ÀuH‹G H…Àtö@EuÃf�AUATUSH‰ûH‰ÇHƒìè‹jüÿI‰ÄH…À„�H‹@À6H…ÛtqL�-c·ëf.„H‹H…ÛtVH‹sL‰çèÌhüÿ…ÀtèH‹k¾/H‰ïèjüÿH…ÀuÒL‰îH‰ïègtüÿH…ÀtÂH�PH‰îL‰çH)êè°jüÿ…Àu¬Ç¿6HƒÄ[]A\A]ÀH‹C H‹8èTlüÿI‰Äé]ÿÿÿf.„f�óúH� NäH�ó_é©Uþÿf„óúSºH‰ûH�5”ç1ÿèÅhüÿH‰ß¾H‰Â1ÀèSrüÿ1ÿºH�5½çè hüÿH‰ß¾H‰Â1Àè.rüÿ1ÿºH�5èçè{hüÿH‰ß¾H‰Â1Àè rüÿ1ÿºH�5èèVhüÿH‰ß¾H‰Â1Àèäqüÿ1ÿºH�5&èè1hüÿH‰ß¾H‰Â1Àè¿qüÿ1ÿºH�5Qèè hüÿH‰ß¾H‰Â1Àèšqüÿ1ÿºH�5|èèçgüÿH‰ß¾H‰Â1Àèuqüÿ1ÿºH�5ŸèèÂgüÿH‰ß¾H‰Â1ÀèPqüÿ1ÿºH�5Êèè�güÿH‰ß¾H‰Â1Àè+qüÿ1ÿºH�5õèèxgüÿH‰ß¾H‰Â1Àèqüÿ1ÿºH�5éèSgüÿH‰ß¾H‰Â1Àèápüÿ1ÿºH�5Kéè.güÿH‰ß¾H‰Â1Àè¼püÿ1ÿºH�5féè güÿH‰ß¾H‰Â1Àè—püÿ1ÿºH�5‰éèäfüÿH‰ß¾H‰Â1Àèrpüÿ1ÿºH�5´éè¿füÿH‰ß¾H‰Â1ÀèMpüÿ1ÿºH�5ßéèšfüÿH‰ß¾H‰Â1Àè(püÿ1ÿºH�5êèufüÿH‰ß¾H‰Â1Àèpüÿ1ÿºH�5EêèPfüÿH‰ß¾H‰Â1ÀèÞoüÿ1ÿºH�5pêè+füÿH‰ß¾H‰Â1Àè¹oüÿ1ÿºH�5›êèfüÿH‰ß¾H‰Â1Àè”oüÿ1ÿºH�5¾êèáeüÿH‰ß¾H‰Â1Àèooüÿ1ÿºH�5éêè¼eüÿH‰ß¾H‰Â1ÀèJoüÿ1ÿºH�5ëè—eüÿH‰ß¾H‰Â1Àè%oüÿ1ÿºH�5?ëèreüÿH‰ß¾H‰Â1Àèoüÿ1ÿºH�5jëèMeüÿH‰ß¾H‰Â1ÀèÛnüÿ1ÿºH�5uëè(eüÿH‰ß¾H‰Â1Àè¶nüÿ1ÿºH�5¨ëèeüÿH‰ß¾H‰Â1Àè‘nüÿ1ÿºH�5ÛëèÞdüÿH‰ß¾H‰Â1Àèlnüÿ1ÿºH�5ìè¹düÿH‰ß¾H‰Â1ÀèGnüÿ1ÿºH�5)ìè”düÿH‰ß¾H‰Â1Àè"nüÿ1ÿºH�5TìèodüÿH‰ß¾H‰Â1Àèýmüÿ1ÿºH�5wìèJdüÿH‰ß¾H‰Â1ÀèØmüÿ1ÿºH�5êìè%düÿH‰ß¾H‰Â1Àè³müÿ1ÿºH�5UíèdüÿH‰ß¾H‰Â1ÀèŽmüÿ1ÿºH�5€íèÛcüÿH‰ß¾H‰Â1Àèimüÿ1ÿºH�5Kîè¶cüÿH‰ß¾H‰Â1ÀèDmüÿ1ÿºH�5¶îè‘cüÿH‰ß¾H‰Â1Àèmüÿ1ÿºH�5áîèlcüÿH‰ß¾H‰Â1Àèúlüÿ1ÿºH�5ŒïèGcüÿH‰ß¾H‰Â1ÀèÕlüÿ1ÿºH�5÷ïè"cüÿH‰ß¾H‰Â1Àè°lüÿ1ÿºH�5rðèýbüÿH‰ß¾H‰Â1Àè‹lüÿ1ÿºH�5ÕðèØbüÿH‰ß¾H‰Â1Àèflüÿ1ÿºH�58ñè³büÿH‰ß¾H‰Â1ÀèAlüÿ1ÿºH�5«ñèŽbüÿH‰ß¾H‰Â1Àèlüÿ1ÿºH�5þñèibüÿH‰ß¾H‰Â1Àè÷küÿ1ÿºH�5òèDbüÿH‰ß¾H‰Â1ÀèÒküÿ1ÿºH�54òèbüÿH‰ß¾H‰Â1Àè­küÿ1ÿºH�5_òèúaüÿH‰ß¾H‰Â1Àèˆküÿ1ÿºH�5šòèÕaüÿH‰ß¾H‰Â1ÀècküÿºH�5Ÿò1ÿè°aüÿH‰ß¾H‰Â1Àè>küÿºH�5ªò1ÿè‹aüÿH‰ß¾H‰Â1ÀèküÿºH�5Åò1ÿèfaüÿH‰ß¾[H‰Â1ÀéójüÿóúH‹>¹H�5Úó¦—À„ÀuÇÃff.„óú€¸tÃAUATUH‰ýSH‰óHƒìL‹gH‰÷è$aüÿA€<$@Lcèt:L‰êH‰ÞL‰çèì^üÿ‰Â¸…Òu C€<,@¸t5HƒÄ[]A\A]Ãf.„€;_uÁƒèH�sI�|$HcÐè§^üÿ…ÀtÂë§�H‰-ù·61ÀëÀDóúUH‰ÍSHcÚHƒÃ9HÁãHƒìH‹9H‰Þè]aüÿH�5VT6H‰EH�ŒàøÿÿH‹CT6H�yH‰H‹M[6HƒçøH‰�H)ùH)Î�Á ÁéóH¥HƒÄ[]Ã�óúAWA‰×AVAUATI‰üUSH‰óHƒì8dH‹%(H‰D$(1À¶>À6ƒà<„c¾$H‰ßI‰Ýès`üÿH‰ÅH…Àt&I‰ÆI)ÞI�~èŒaüÿL‰òH‰ÞI‰ÅH‰ÇèdüÿCÆD5L�t$L‰÷è¨;ýÿE…ÿ„‹=á¶6…ÿu_H� .�6H‹9H…ÿt61Ò1öH‰ $è‰NýÿH‹ $H‰AH…Àt‹°ˆ…öu‹Q‰�ˆf„HƒÁ0H�Õ�6H9Áu²Ç~¶6A‹D$ ‰$¶g¿6ƒà<txI‹¼$ðL‰àDH‰Æè¨düÿH…Àt[HƒxhH‹¸ðuåD‹$‹H D‰Ò‰Î1Ê�怃â òuÊöGEuÄH‹—H…Òt¸öBHu²D‰Òƒñƒò уñ‰ $럀‹$¨…ŸE1À1ÉH�5J׿L‰D$H‰ $èÞþÿ¿H‰ÆèQþÿHƒìD‰úL‰îAVL‹D$I‰ÁL‰çH‹L$èÀ�ýÿZYI‰Ç¶„¾6ƒà<uA‹D$pI‹W8A‰‡€‰Bpf.„M‹gM�wM…ätEAƒ|$u.I‹D$¾$L‹(L‰ïèƒ^üÿH…ÀtH…ítL‰îH‰ßèŽaüÿ…Àx M‰æM‹$$M…äu¾Hƒ|$tH‹D$L‰ H‹D$I‰H‹L$(dH3 %(L‰ø…zHƒÄ8[]A\A]A^A_ÃI‰õ1íéÑýÿÿfD1Ò1öL‰ïè„LýÿH…À„ÌýÿÿE1ÿë.fD‹R …Ò„A3T$ ƒâ„÷1öH‰ÇèýPýÿH…ÀtH‹P8H…ÒuÏ1öH‰ÇI‰ÇèâPýÿH…ÀuåM…ÿ„äI�L‰ù1ÒL‰æè3ZýÿéHÿÿÿL�W‹6©t7Iƒè0¨t/I�è�¨u$¹H�=‚ÕL‰îó¦—À„ÀI�@`M�@0LEÀI‹HH…É…þÿÿI‹81Ò1öL‰D$è«KýÿL‹D$H‰ÁI‰@H…À…îýÿÿ‹4$I�PL‰çè§PýÿL‹D$H…ÀH‰Á…ÎýÿÿH‹ ?¼6éÂýÿÿf.„H‰Á1ÒL‰æL‰÷H‰$èlYýÿH‹$I‰ÇéþÿÿA¿~é†üÿÿè@\üÿóúHƒìH‹WH�5ÜÔ1À¿ècüÿ¸HƒÄÀóúAVI‰öAUI‰ÕATUH‰ýS1ÛHƒìdH‹%(H‰D$1ÀL�d$ë,fDH‰ê¾L‰çè¨eüÿ…À~DL‰ê¾L‰çHƒÃAÿÖ1ÒH‰ÞH‰ïèÅfüÿ…ÀtÉ1ÀH‹L$dH3 %(uHƒÄ[]A\A]A^Ãf�¸ëÚèt[üÿ@AUATUSHƒì‹·6…Ò…èH‹™»6H‹X(H…Û„L�%ÝùÿÿëH‹[ H…Û„û€{uíH‹k€}@„÷¾@H‰ïèz[üÿH…À…yH‹=B»6H‰êL‰æHDz6èTaüÿH‹ ²6H…Àt H‹P0ƒ=%ˆ6ÿÆCH‰S0H‹P(H‰S(uƒL‹hH‹kº1ÿH�5íëè`ZüÿL‰êH‰îH‰Ç1Àèà8þÿ‹ª±6…À…Jÿÿÿº1ÿH�5äëÇб6è%ZüÿH‰Ç1Àè«8þÿ1ÿºH�5õëèZüÿH‰Ç1ÀèŽ8þÿéÿÿÿf„HƒÄ[]A\A]ÃDH‰ïè\üÿÆ_H‰Å¾@H‰ïèuZüÿH…ÀtÆH‹=>º61É1ÒH‰îA¸è¤\üÿH…À„£þÿÿ€x…™þÿÿH‹P0H‹@(ÆCƒ=‡6ÿH‰S0H‰C(…xþÿÿL‹kºH�5èê1ÿèYYüÿH‰êL‰îéôþÿÿfDH‰ïèp[üÿH‰Åéfÿÿÿ„H�=©˜è”Wüÿéþÿÿff.„@óúǶ_¹6ƒà<tH‹ »6H�› …Ét3‹Áº6H�:/…Òt"ƒ=×¹6H�ÈPuƒ=˹6H�XrHEÂË5–º6H�ûüH�¼ê…öHDÂÃDSHƒìdH‹%(H‰D$1À‹Õ�6ÇD$ƒøÿtH‹L$dH3 %(u`HƒÄ[Ãf�H�\$E1À1Ò1öH‰ÙH�=.ÑèubüÿH…Àt ‹D$ƒøÿt4…À•À¶À‰y�6므E1ÀH‰Ù1Ò1öH�=þÐè:büÿëÈè3XüÿH�ü—¾ŒH�=éÐè;'þÿff.„AUI‰ýATE1äUSH�•†6Hƒìè$ÿÿÿHƒ=l†6u(ëp„L‰îH‰ïèe[üÿ…Àt9HƒÃ(AƒÄHƒ{ètJ‹C H‹+…ÀtØèãþÿÿL‰îƒø•À¶ÀHÅH‰ïè,[üÿ…ÀuÇMcäH�†6K�¤‹DÐ HƒÄ[]A\A]ÃHƒÄ1À[]A\A]Ãff.„óúAWAVAUATUH‰ýSHƒìH‹_H‰ßè/WüÿH�5 ÐH�\üH‰ßè;Vüÿ…Àt'H�5ùÏH‰ßè(Vüÿ…ÀtHƒÄ1À[]A\A]A^A_ÃH‹}H‹5Ͳ6è`€H‰Á²6H…ÀtЋP@…ÒŽIH‹@Hƒê1íH�’H�XL�dÐ0H‹;è¨Vüÿ�PƒÀ9êMèHƒÃ(I9ÜuäHcýèH‹=�«6H…ÿtèM¢H‹=¦´6H�5OÍèZVüÿH…Àt ‹P ƒâïƒÊ ‰P HƒÄÃ@H‹=y´6H�5"´6èíÝH‹56µ6H…öt£H‹=¯6H�´6èN¸ëŽff.„�óúHƒìèóúÿÿHƒÄéúþÿf.„óúAWAVAUATUSHƒì(dH‹%(H‰D$1Àè™þÿè´úÿÿD‹%9¯6E…ä…ÜH‹=½ª6H…ÿ„UH‹ݳ6H…Ûué4H‹›øH…Û„!H‹Cƒxuæè!oþÿ…À„æº+AH�5\ÌH‰ßèRüÿH…À„h H‹u³6H‹ Nª6H�5×H‹“‹ª€H‰² H‰Š¨H‰‚°HÇ@85…í„×DH‹ƒH‹j�6H�5+ª6¹7D‹É6H�¸ÈóH¥‰�€‹å6ƒˆ˜ ‰�ŒE…ÛˆFH‰ßè;ÍD‹ ¼6E…É…¯H‹=IJ6H�5m²6èH»D‹ ³6E…À„ÆH‹y²6H‹X(H…Û„²1íf�€{uH‹{èRüÿH9ÅHBèH‹[ H…ÛuáH…턆H�}!è�SüÿI‰ÄH�h H‹)²6L‹p(M…ö„ZI�\$ëDM‹v M…ö„AA€~uì‹=j­6I‹v…ÿ…OH‰ïèšOüÿ¹p_1ÒH‰Þf‰KH‹=ͱ6A¸1ÉÇ__imè2TüÿI‰ÇH…Àt¢€xuœH‹@(L‹¨ðL‰ïè±Oüÿ…À„A‹…ÀI‹•¸…À~}ƒèI‰ÕH�DÂH‰D$èRøÿÿH�5Bʺ…ÀH�5ÊHDðI‹EL‹@L‰ÇL‰$èÅNüÿL‹$…À…b‹Ÿ¬6…Ò…€L‰$èøÿÿL‹$…À•À¶ÀI�DH‰ê³6H�3H‰îH�=ɰ6èT�I‹GAÆFI‰FI‹G0I‰F0I‹G(I‰F(M‹v M…ö…¿þÿÿL‰çè’Müÿ‹Ä}6…À…¶}°6ƒà<tH‹=¿°6H�5h°6èsËH‹ ’6L�=ŠÉ½H…Ûué‹fDH‹[0H…Û„›L‹[ Iƒ»ØtåM‹«�M…ítÙL‰èE1ÀE1ÉE1ÒDH‹¹ L‰ÿH‰Öó¦H‰ÖH�=_È—Á€Ù„ɹDDÕó¦—€ڄÒDDÅDˆˆH‹@H…Àu·E…É•ÀD„À„pÿÿÿAƒâ…fÿÿÿfDL‰îL‰ßèYüÿI‰ÆH…ÀŽIÿÿÿH‹{ èÀMüÿ…À„kH‹C L‰÷L‹ ¸èåPüÿH‹{ L‰îL‰áH‰ÂH‰D$èîWüÿ…Àˆd„½H‹|$ƒèI‰þL�dÇI‹H‹H‹ö@…�H‹pH‹=:¯61É1ÒA¸è£QüÿH…Àtn€xuhH‹@(H‹�ðH‹‚ØH…ÀHDÂH‹0H‹C H‹€ØH‰4$H‹8èµMüÿ…Àt1H‹<$èˆNüÿH�xè/PüÿH‹4$H‰ÇèƒLüÿH‰ÂH‹C H‹€ØH‰f�IƒÆM9ô…SÿÿÿH‹|$èyKüÿM‹mM…í„,þÿÿL‹[ éÃþÿÿºH�5˜1ÿèðMüÿH‰Ç1Àèv,þÿH‹=o¥6è:KüÿHÇ_¥6H‹x®6H‹“H…Òt‹ª€…í….ûÿÿºH�5b‰1ÿè›MüÿH‰ÞH‰Ç1Àè,þÿH‹7®6éûÿÿH‹|$èØJüÿ1ÿºH�5j‰èeMüÿH‰Ç1Àèë+þÿH‹D$dH3%(…~HƒÄ([]A\A]A^A_ÃL‹%A�6M…ätÑE1ÿL�-ÀÆëE…ÿ…øM‹d$0M…ät²I‹D$ H‹¨ØH…ítåH‹8¾.èÿMüÿH9ÝtÊL‰ãL�=LÈë fDH‹C H;¨Øu;H‹8¾.èÎMüÿH…ÀtL‰þH‰ÇèþKüÿ…ÀtH‹[0H…ÛuÉH‰ëE1ÿë‚f„M‰çDI‹G H;¨ØuGL‹0¾.L‰÷è{MüÿH…ÀtL‰îH‰Çè«Küÿ…ÀtI‹G L‹0H‹C L‰öH‹8è‘Küÿ…ÀuœM‹0M…ÿu¬I‹D$ ¾.H‰ëH‹8è/MüÿH�5„ÇH‰ÇA¿èZKüÿ…À…ëþÿÿM‹L$ I‹‘�H…Ò„õE1Àf.„H‹2¹ H�=fÅ󦾗Á€Ù„ÉDÆD‚ˆH‹RH…ÒuϽa…À„I‹9èÊKüÿH�xèqMüÿA‰é¾H� %ÅI‰ÇI‹D$ HÇÂÿÿÿÿL‰ÿL‹1Àè¶VüÿI‹D$ I‹|$L‰8è„KüÿH�xè+MüÿM‹D$A‰éH� ßÄI‰ÇH‰Ç¾1ÀHÇÂÿÿÿÿèsVüÿM‰|$A¿éüýÿÿH‰ñH�©Š¿1ÀH�5ƒÄè&RüÿI‹vé‹ùÿÿöG«6À…­øÿÿ¶9«6ƒà<„[H‹-׌6H…í„‹øÿÿL�d$H�béÿÿë H‹m0H…í„PH‹} L‰âH‰ÞÇD$è|TüÿD‹T$E…ÒtÒÇÜ�6H‹!«6é9øÿÿè7ïÿÿéGøÿÿè-ïÿÿé4úÿÿ¿H� ŠH�5´Ã1ÀènQüÿH‹=¿ª6H‹_(H…Ût1H�-œÃ€H‹SH‰î¿1Àè=QüÿH‹[ H…ÛuäH‹=…ª61ÒH�5ôíÿÿèßHüÿH‹¨ª6H…Û„¯H�-RÄH‹H‰î¿1ÀèîPüÿH‹›øH…ÛuâéyöÿÿH‹[ 1ÿºH�5Ó}è–IüÿH‰ÇH‰Þ1Àè(þÿé)üÿÿ1íE…À@žÅƒÅbéÑýÿÿÇÍ€6é1÷ÿÿºH�5Єé\ûÿÿH‹ü©6é÷ÿÿIƒÅL9l$…Qøÿÿé¹øÿÿH‹=¹ 6H…ÿ…AûÿÿéLûÿÿL‰ÂH�5 Â¿1Àè5PüÿI‹EL‹@é]øÿÿ½céLýÿÿ1ÿºH�5}èÛHüÿL‰îH‰Ç1Àè^'þÿé—øÿÿèIüÿ@óúUSHƒì¶©6¨…ŸH��C¨uL‹> 6…ÀuB‹,v6ƒú„«H�|;6H�ÂDHƒÀ9tH‹XH…ÛuïH�À‡„è»ïÿÿ…Àt&H‰ßèoHüÿH�xèJüÿH‰ÞÆ_H‰ÅH�xH‰ëèaFüÿH‰ßèyvýÿHƒÄ[]éÎþÿfDºH�5$„1ÿèõGüÿH‰Ç1Àè{&þÿ¶D¨6é8ÿÿÿ€H�ŒÁé|ÿÿÿff.„�óúHƒìè#ïÿÿ¾ H�=s•èÒ7þÿH�gÁ€ t§6 H‰d6H¸Ça©6H‰z¨6HƒÄÃff.„f�óúSH‰ûèÃîÿÿH�=@Àèg’H‹{ èî×…Àu 1À[ÃfDH‹{[é–ºfDAWAVAUI‰õATL�%Îu6UH‰ýSHƒìDèkîÿÿIƒ<$„¹L�5Áu61Ûë&DL‰þH‰ïè¥Jüÿ…Àt=IƒÆ(ƒÃIƒ~脈A‹F M‹>…ÀtÔèîÿÿH‰ïƒø•À¶ÀIÇL‰þèhJüÿ…ÀuÃHcÛ¹H‰îH�›H�=œ¿I�ÄL‰hÇ@ ó¦—À„ÀuèÏíÿÿH�-*À…ÀH�"ÀHDèéFÿÿÿHƒÄ[]A\A]A^A_ÃH�(†¾´H�=-¿èþÿff.„@SH‰û1ÒHƒìH‹=?€6dH‹%(H‰D$1ÀH‰æègIüÿH‰ßH‰Æè¼þÿÿH‹$H;€6tH‰€6H‹D$dH3%(u.HƒÄ[Ãf�ºH�54‚1ÿè�EüÿH‰ÞH‰Ç1Àè $þÿH‹$ë»èÅEüÿDUH‰õSHƒìèbÿÿÿH‹«6¶<,tD„ÀuHƒÄ[]Ãf„H�5 ‚1ÿºè=EüÿHƒÄH‰ÞH‰Ç[1À]éº#þÿf.„HƒÃH‰ïH‰R6HƒÄ[]é÷þÿÿ€óúAWAVAUATUS‰ûHƒìdH‹%(H‰D$1ÀèGìÿÿ�»Óþÿÿƒÿ5‡ÒH�QƒHcºHÐ>ÿà€H‹=9œ6H…ÿtèÿAüÿHÇ$œ6H‹Í~6H…À„ ¹H�=rLH‰Æó¦—€ڄÒtH‰Çè‘FüÿH‰ê›6f.„·5á›6f„·öH�=¿èýÿÿ¸H‹L$dH3 %(…HƒÄ[]A\A]A^A_Ãf„Ç¥6·5‡›6ë­DÇÞŸ6·5o›6ë•DÇÊŸ6·5W›6ézÿÿÿf.„Ç>q6·57›6éZÿÿÿf.„Çq6·5›6é:ÿÿÿf.„ÇnŸ6·5÷š6éÿÿÿf.„H�5G½H�=o¼è½ýÿÿ·5Κ6éñþÿÿ�H�=¼èýÿÿ·5µš6éØþÿÿ„H�=<½èôüÿÿ·5•š6é¸þÿÿ„H�=[½èÔüÿÿ·5uš6é˜þÿÿ„H�=h½è´üÿÿ·5Uš6éxþÿÿ„H�=À¼è”üÿÿ·55š6éXþÿÿ„H�=æ¼ètüÿÿ·5š6é8þÿÿ„H�=ð¼èTüÿÿ·5õ™6éþÿÿ„H�=g»è4üÿÿ·5Õ™6éøýÿÿ„H�=à¼èüÿÿ·5µ™6éØýÿÿ„¾H�=μèßúÿÿ·5�™6é³ýÿÿH‹)|6¾:H‰ßèŒBüÿH…À„\H‰å1ÒH�xA‰ÆH‰îA)ÞèLJüÿH�=Ì»H‰Æè�úÿÿH‹$¶<.„z„À…PH‹Ï{61ÒH‰îH‰ßèJüÿH‹$¶€ú:”Á„Ò”ÂÑt H=ÿÿ†L�-y<6L‹=’{6McöE1äL‰íH�!»f�L‰òH‰ÞL‰ÿèB?üÿ…Àu B€<3„‰HƒÅH‹]AƒÄH…ÛuÒ1ÿºH�5L~èÿ@üÿL‰þH‰Ç1Àè‚þÿé�üÿÿDÇêœ6·5o˜6é’üÿÿf�ÇÖœ6·5W˜6ézüÿÿf.„H‹=éz61öèòŒ·53˜6éVüÿÿfDÇšœ6·5˜6é:üÿÿf.„H‹=©z6è”Büÿ·5õ—6H‰Η6éüÿÿ�ÇÆ—6·5×—6éúûÿÿf.„Ǧ—6·5·—6éÚûÿÿf.„Çnw6·5——6éºûÿÿf.„H‹=)z6¾è/Œ·5p—6é“ûÿÿH‹= z6èôAüÿ·5U—6H‰>—6éqûÿÿ�H�5�¹H�=é¸èúÿÿ·5.—6éQûÿÿ�ÇŽ 6·5—6é:ûÿÿf.„Çn 6·5÷–6éûÿÿf.„ÇB›6·5×–6éúúÿÿf.„H‹=iy6H�5áNèýFüÿH‰öŸ6H…À…½úÿÿH‹Fy6ºH�5ê{1ÿèó>üÿH‰ÇH‰Þ1Àèvþÿ·5w–6éšúÿÿf.„·5a–6f�΀f‰5U–6éxúÿÿ„ÇBl6·57–6éZúÿÿf.„Ç"l6·5–6é:úÿÿf.„·5–6f�Î f‰5õ•6éúÿÿ„·5á•6f�Îf‰5Õ•6éøùÿÿ„·5Á•6f�Îf‰5µ•6éØùÿÿ„·5¡•6f�Îf‰5••6é¸ùÿÿ„·5�•6f�Îf‰5u•6é˜ùÿÿ„·5a•6@€Î€f‰5V•6éyùÿÿf„·5A•6ƒÎ@f‰57•6éZùÿÿf.„·5!•6ƒÎ f‰5•6é:ùÿÿf.„ÇÊt6·5÷”6éùÿÿf.„Ǫt6·5×”6éúøÿÿf.„džt6·5·”6éÚøÿÿf.„Çft6·5—”6éºøÿÿf.„ÇÞ˜6·5w”6éšøÿÿf.„H‹= w6¾è‰·5P”6ésøÿÿDz�6·57”6éZøÿÿMcäIÁäKct%‰5(j6H�=жè\õÿÿé'øÿÿH‰ßH‰åèœ<üÿA‰ÆéÕúÿÿH��ŽH‰–v6éè÷ÿÿHcð‰èi6ë¾1ÿºH�5Hyè3<üÿH‰Ç1Àè¹þÿéŽúÿÿH�zH‰î1Òè¦DüÿH�=B¶H‰ÆèçôÿÿH‹$¶é]úÿÿè6<üÿ1ÀéÃ÷ÿÿff.„@óúAVAUATUSè?ãÿÿ¶(œ6‹5¢j6ƒà…öu;<„;Hƒ=£j6u<…;‹ “6º…É…=H‰Wj6H‰ j6<„ÍH‹A›61íH�(j6H�xè�ýÿHƒ=j6u5é�ƒú„ƒú…fH‹L‰"…íuH‰Í’6HƒÃ(ƒÅHƒ;t`L‹cL‰çè¤öýÿL‹kI‰Æ‹C$…Àu&1ÒL‰öL‰ïèÉùýÿH‰Çèkýÿ‹Sƒúu™H‹fD‰"ë¨èKâÿÿƒø•À¶ÀIÅëÇDH‹D‰"ëˆè+ýÿH‹´’6H9µ’6w []A\A]A^Ãf�1ÿºH�5xè�:üÿ[]H‰ÇA\1ÀA]A^é þÿHÇ=i61ÒéßþÿÿHÇ+i6@º@éÊþÿÿH‹ÂV6H�z¶…Òt]A¸1öA)ø@‰ÑÁáÊA� 8HƒÇHòH‰ÖHÁîH1Ö¶Wÿ…Òu܉ÊÁâÊHÖH‰òHÁêH1òHÁâ�âüH�Â0aéTþÿÿº0aéJþÿÿH�±y¾zH�=βè þÿóú¶JH1Àƒá€ù…šAWAVAUATUH‰ÕSH‰óHƒìD‹%ó�6L‹rM‰çE…äuDL�-ü,6¸ H�=]´ëfDè“9üÿM‹eL‰çE‰üI9Äs ‰²�6A‰ÇA‰ÄIƒÅH…ÿu×H‹{èf9üÿL‰÷I‰Çè[9üÿH‹=œ�6O�d<I‰Å1ÀH…ÿtè@9üÿMåIÇÇÿÿÿÿI�|L�-z,6èÕ:üÿL‹C¾1ÛI‰ÄH� Ö³H‰Ç1ÀHÇÂÿÿÿÿèDüÿL‰çè÷8üÿH� ª³LàH‰D$1ÀëJ@L‹!�6M…Àt&H‹|$¾1ÀM‰ñL‰úèÝCüÿH‰îL‰çèbþÿ…Àu>IƒÅI‹MƒÃH…ÉtfA‹E…Àu¶H‹|$¾1ÀM‰ðL‰úèŸCüÿH‰îL‰çè$þÿ…ÀtÂHÁãH�µ+6Hƒ<t&L‰eHƒÄ¸[]A\A]A^A_ÃfDÀL‰çè`5üÿHƒÄ1À[]A\A]A^A_Ãff.„@óúAWAVAUATUSH�ìˆL‹¯�L‹·dH‹%(H‰D$x1ÀM…í„qH‰û�M‹½M…ÿuéO€M‹?M…ÿ„<AƒuíI‹®°I9o uàH‹E8L‹¥°H‰$M…ä„ÚI‹¾¨èôSþÿH‰ÇH‰Åè9üÿI‹¶¨A‰èH‰ßH‰ÁH�RÛÿÿH‰D$è¨TþÿH‹Á—6I‹WH‰ßH�t$ÇD$ HÇD$H‹€HÇD$HÇD$(L‹°¸HÇD$0L)ðIE(HÐH‰D$8I‹…�H�DL‰âH‰D$@è=üÿI‹w1ÒH‰ßIµ�èéAüÿ…ÀuH‹4$H‰ÚL‰çèæ:üÿH9$ta1ÀH‹L$xdH3 %(…H�Ĉ[]A\A]A^A_ÄM‹mM…í…“þÿÿºH�5Ïs1ÿè 6üÿH‰Ç1Àè¦þÿ¸ë¡HƒýºfïÀ¹ HFÕH‹l$H�|$XD$XHÇD$PRSDSL�d$PHÇD$pH‰îè»9üÿH‰ïè#3üÿH‹t$@L‰âH‰ßè#=üÿ…À„;ÿÿÿH‹T–6H‹�I‹GIE(HÇ‚èL)ðH‰‚à¸éÿÿÿH‹<$èM7üÿH‰…°I‹†°L‹ °H‹@8H‰$éûýÿÿè†5üÿfDóúAWAVI‰ÖAUATUH‰õSH‰ûHƒìD‹‘6L‹gdH‹%(H‰D$1ÀE…Ò…¡H‹CI‰çHÇ$L‹­ð‹@ ƒø„—vMƒø „¤ƒø@…­A¸L‰áL‰úH‰îL‰ïèÔ4üÿ…À„ƒH‹…ðL‰ÿH‹@ÿP I‰Ä鞃øumA¸L‰áL‰úH‰îL‰ïè”4üÿ…ÀtGH‹SD¶$$D‹JE…ÉtiE�d$€E¶äAƒÄ€McäëW@A¸L‰áL‰úH‰îL‰ïèQ4üÿ…À…AL‹cL‹­ðºH�5úq1ÿè 4üÿL‰áH‰êL‰îH‰Ç1ÀE1äè…þÿ‹ ë�6…Éu;L‰ñL‰âH‰îH‰ß誊¸H‹L$dH3 %(…<HƒÄ[]A\A]A^A_Ãf�H‹KL‹CL‰â¿H�5Áq1ÀèÂ:üÿH‹C‹P…Ò…ËP H�5•®¿1Àè�:üÿé}ÿÿÿ„H‹L‹GL‰áH�5I®¿H‹H‹P1Àèl:üÿL‹cé2þÿÿA¸L‰áL‰úH‰îL‰ïè93üÿ…À„èþÿÿH‹SH‹…ðL‰ÿ‹rH‹@…ötXÿP@I‰ÄéøþÿÿDH‹SH‹…ðL‰ÿD‹BH‹@E…Àt=ÿPXI‰ÄéÍþÿÿf�H�5έ¿1ÀèÝ9üÿH‹Cé!ÿÿÿ@ÿP8I‰Äé þÿÿDÿPPI‰Äé�þÿÿèÀ2üÿóúH� έH�s)é)þÿf„óúSºH‰ûH�5±1ÿèE2üÿH‰ß¾H‰Â1ÀèÓ;üÿ1ÿºH�5=±è 2üÿH‰ß¾H‰Â1Àè®;üÿ1ÿºH�5h±èû1üÿH‰ß¾H‰Â1Àè‰;üÿ1ÿºH�5ƒ±èÖ1üÿH‰ß¾H‰Â1Àèd;üÿ1ÿºH�5¦±è±1üÿH‰ß¾H‰Â1Àè?;üÿ1ÿºH�5ѱèŒ1üÿH‰ß¾H‰Â1Àè;üÿ1ÿºH�5ü±èg1üÿH‰ß¾H‰Â1Àèõ:üÿ1ÿºH�5²èB1üÿH‰ß¾H‰Â1ÀèÐ:üÿ1ÿºH�5J²è1üÿH‰ß¾H‰Â1Àè«:üÿ1ÿºH�5u²èø0üÿH‰ß¾H‰Â1Àè†:üÿ1ÿºH�5˜²èÓ0üÿH‰ß¾H‰Â1Àèa:üÿ1ÿºH�5˲è®0üÿH‰ß¾H‰Â1Àè<:üÿ1ÿºH�5æ²è‰0üÿH‰ß¾H‰Â1Àè:üÿ1ÿºH�5 ³èd0üÿH‰ß¾H‰Â1Àèò9üÿ1ÿºH�54³è?0üÿH‰ß¾H‰Â1ÀèÍ9üÿ1ÿºH�5_³è0üÿH‰ß¾H‰Â1Àè¨9üÿ1ÿºH�5’pèõ/üÿH‰ß¾H‰Â1Àèƒ9üÿ1ÿºH�5½pèÐ/üÿH‰ß¾H‰Â1Àè^9üÿ1ÿºH�5 ³è«/üÿH‰ß¾H‰Â1Àè99üÿ1ÿºH�5˳è†/üÿH‰ß¾H‰Â1Àè9üÿ1ÿºH�5ö³èa/üÿH‰ß¾H‰Â1Àèï8üÿ1ÿºH�5´è¹H�56£ó¦—À„ÀuÇÃff.„óú€¸tÃAUATUH‰ýSH‰óHƒìL‹gH‰÷èT*üÿA€<$@Lcèt:L‰êH‰ÞL‰çè(üÿ‰Â¸…Òu C€<,@¸t5HƒÄ[]A\A]Ãf.„€;_uÁƒèH�sI�|$HcÐè×'üÿ…ÀtÂë§�H‰-Iƒ61ÀëÀDóúUH‰ÍSHcÚHƒÃíýÿ‹=üh6…ÿ…€öÿÿ1ÿºH�5:øÇÜh6èSüÿH‰Ç1ÀèÙíýÿéTöÿÿ1ÿºH�5nCè1üÿL‰öH‰Ç1Àè´íýÿé÷ÿÿH‹=Èh6H…ÿ…XùÿÿécùÿÿH‹] é­ùÿÿ½céÅüÿÿè2üÿf�óúUSHƒì¶?o6¨…ŸH� O¨uL‹’h6…ÀuB‹dA6ƒú„«H�L 6H�NˆDHƒÀ9tH‹XH…ÛuïH�°ù„èËîÿÿ…Àt&H‰ßèŸüÿH�xèFüÿH‰ÞÆ_H‰ÅH�xH‰ëè‘ üÿH‰ßè©<ýÿHƒÄ[]éþ×ýÿfDºH�5Ü÷1ÿè%üÿH‰Ç1Àè«ìýÿ¶tn6é8ÿÿÿ€H�¼‡é|ÿÿÿff.„�óúHƒìè3îÿÿ¾ H�=B èþýÿH�—‡€ ¤m6 H‰5*6H¸ÿÿÿÿÇ‘o6H‰ªn6HƒÄÃff.„f�AWAVAUI‰õATL�%>A6UH‰ýSHƒìDè»íÿÿIƒ<$„¸L�5)A61Ûë&DL‰þH‰ïèüÿ…Àt…ÀtÔèoíÿÿH‰ï…À”À¶ÀIÇL‰þèÙüÿ…ÀuÄHcÛ¹H‰îHÁãH�= †I�D‰h Ç@ó¦—À„Àuè íÿÿH�-›†…ÀH�“†HDèéGÿÿÿHƒÄ[]A\A]A^A_ÃH�Yø¾ÉH�=ÆLèðÛýÿSH‰û1ÒHƒìH‹=¿F6dH‹%(H‰D$1ÀH‰æè÷üÿH‰ßH‰ÆèÌþÿÿH‹$H;‘F6tH‰ˆF6H‹D$dH3%(u.HƒÄ[Ãf�ºH�5´H1ÿè üÿH‰ÞH‰Ç1Àè êýÿH‹$ë»èE üÿDUH‰õSHƒìèbÿÿÿH‹+F6¶<,tD„ÀuHƒÄ[]Ãf„H�5‰H1ÿºè½ üÿHƒÄH‰ÞH‰Ç[1À]é:êýÿf.„HƒÃH‰ïH‰ÒE6HƒÄ[]é÷þÿÿ€óúAW�ï-AVAUATUSHƒìdH‹%(H‰D$1Àƒÿ8‡ H�ˆõHcºHÐ>ÿàfDH‹=ád6H…ÿtè‡üÿHÇÌd6H‹UE6H…À„k¹H�=úH‰Æó¦—€ڄÒtH‰Çè üÿH‰’d6f�·‘d6f„·óH�=˜…è1ýÿÿ¸H‹L$dH3 %(…oHƒÄ[]A\A]A^A_Ãf„Ç’k6·7d6ë­D·)d6€Ï f‰d6ë•D·d6€Ïf‰d6ézÿÿÿf.„·ñc6€Ïf‰çc6éZÿÿÿf.„·Ñc6€Ïf‰Çc6é:ÿÿÿf.„·±c6€Ïf‰§c6éÿÿÿf.„·‘c6€Ë€f‰‡c6éúþÿÿf.„H�5ŸƒH�=ù‚è­ýÿÿ·^c6éÑþÿÿ�H‹=ÙC6¾è/¼·@c6é³þÿÿÇ‚f6·'c6éšþÿÿf.„Ç^j6·c6ézþÿÿf.„ÇBj6·çb6éZþÿÿf.„ƒ%áb6ß·Êb6é=þÿÿDƒ Éb6 ·²b6é%þÿÿDÇòi6·—b6é þÿÿf.„·�b6ƒË@f‰wb6éêýÿÿf.„ÇjA6·Wb6éÊýÿÿf.„H�=æ‚èôûÿÿ·5b6é¨ýÿÿ„H�=ð‚èÔûÿÿ·b6éˆýÿÿ„H�=g�è´ûÿÿ·õa6éhýÿÿ„H�=à‚è”ûÿÿ·Õa6éHýÿÿ„¾H�=΂èoúÿÿ·°a6é#ýÿÿH‹=)B6H�5¡è½üÿH‰¶h6H…À…íüÿÿH‹B6ºH�5ªD1ÿè³üÿH‰ÇH‰Þ1Àè6æýÿ·Wa6éÊüÿÿf.„Ç*:6·7a6éªüÿÿf.„·!a6f�Ë€f‰a6éˆüÿÿ„H�=|�è´úÿÿ·õ`6éhüÿÿ„H�=›�è”úÿÿ·Õ`6éHüÿÿ„H�=¨�ètúÿÿ·µ`6é(üÿÿ„H�=�èTúÿÿ·•`6éüÿÿ„H�5Ç€H�=ïè½úÿÿ·n`6éáûÿÿ�H�=‚èúÿÿ·U`6éÈûÿÿ„H‹É@6¾:H‰ßè,üÿH…À„¿H‰å1ÒH�xA‰ÆH‰îA)ÞèìüÿH�=l€H‰Æè½øÿÿH‹$¶<.„Ü„À…²H‹o@61ÒH‰îH‰ßè²üÿH‹$¶€ú:”Á„Ò”ÂÑt H=ÿÿ†rL�- 6L‹=2@6McöE1äL‰íH�Áf�L‰òH‰ÞL‰ÿèâüÿ…Àu B€<3„éHƒÅH‹]AƒÄH…ÛuÒ1ÿºH�5ìBèŸüÿL‰þH‰Ç1Àè"äýÿé­úÿÿDÇB>6·/_6é¢úÿÿf�Ç&>6·_6éŠúÿÿf.„ÇNb6·÷^6éjúÿÿf.„H‹=i?6¾è¿··Ð^6éCúÿÿǪ76··^6é*úÿÿf.„Ǧ=6·—^6é úÿÿf.„ÇÎe6·w^6éêùÿÿf.„Çn=6·W^6éÊùÿÿf.„H‹=É>6è´üÿ·5^6H‰^6é¡ùÿÿ�Ç^6·^6éŠùÿÿf.„H‹=‰>6·ú]6ÇØ]6H…ÿ„_ùÿÿ€?„VùÿÿH‰æ1Òè¬ üÿH‰­66é@ùÿÿÇa6··]6é*ùÿÿf.„Çú`6·—]6é ùÿÿf.„Çf66·w]6éêøÿÿf.„ÇÆ`6·W]6éÊøÿÿf.„H‹=É=61öè"¶·3]6馸ÿÿfDÇŠ`6·]6éŠøÿÿf.„H‹=‰=6ètüÿ·õ\6H‰Þ\6éaøÿÿ�Ç>`6·×\6éJøÿÿf.„Ç"`6··\6é*øÿÿf.„dž56·—\6é øÿÿMcäIÁäC‹T%‰p56HcòH�= }è)õÿÿéÔ÷ÿÿH‰ßH‰åèÙüÿA‰ÆérüÿÿH�¾TH‰Ó<6é�÷ÿÿ‰Â‰.56ë¼1ÿºH�5†?èqüÿH‰Ç1Àè÷àýÿé,üÿÿH�zH‰î1Òèä üÿH�=€|H‰ÆèµôÿÿH‹$¶éûûÿÿètüÿ1Àéq÷ÿÿff.„f�óúAWAVAUATUSHƒìèYâÿÿ¶bb6‹Ô56ƒà…Òu9<„]‹5Ó56…öu<…Z‹ u[6º…É…[‰Ž56‰È56<„áH‹}a61íH�d56H�xèËÝüÿHƒ=S56u9é¤@ƒú„‡ƒú…wH‹L‰2…íuH‰%[6HƒÃ ƒÅHƒ;tpLcs L‰÷M‰õèÙ¼ýÿL‹cI‰Ç‹C…Àu+1ÒL‰þL‰çèþ¿ýÿH‰Çè61ýÿ‹Sƒúu–H‹fD‰*ë¥Dè[áÿÿ…À”À¶ÀIÄëÃfDH‹D‰*é}ÿÿÿDèSÝüÿH‹üZ6H9ýZ6wHƒÄ[]A\A]A^A_Ã@1ÿºH�5">è­üÿHƒÄ[H‰Ç]1ÀA\A]A^A_é%ßýÿDÇR46é¿þÿÿÇC46@º@é«þÿÿH‹Þ6H�z¶…ÒtXA¸1öA)ø‰ÑÁáÊA� 8HƒÇHòH‰ÖHÁîH1Ö¶Wÿ…Òu܉ÊÁâÊHÖH‰òHÁêH1òHÁâ�âü 26é;þÿÿ1ÒëñH�˜ë¾¡H�=@èGÏýÿ€óú¶JH1Àƒá€ù…šAWAVAUATUH‰ÕSH‰óHƒìD‹%7Y6L‹rM‰çE…äuDL�-¼û5¸ H�=}zëfDè³ÿûÿM‹eL‰çE‰üI9Äs ‰öX6A‰ÇA‰ÄIƒÅH…ÿu×H‹{è†ÿûÿL‰÷I‰Çè{ÿûÿH‹=ÜX6O�d<I‰Å1ÀH…ÿtè`ÿûÿMåIÇÇÿÿÿÿI�|L�-:û5èõüÿL‹C¾1ÛI‰ÄH� öyH‰Ç1ÀHÇÂÿÿÿÿè? üÿL‰çèÿûÿH� ÊyLàH‰D$1ÀëJ@L‹aX6M…Àt&H‹|$¾1ÀM‰ñL‰úèý üÿH‰îL‰çè‚åýÿ…Àu>IƒÅI‹MƒÃH…ÉtfA‹E…Àu¶H‹|$¾1ÀM‰ðL‰úè¿ üÿH‰îL‰çèDåýÿ…ÀtÂHÁãH�uú5Hƒ<t&L‰eHƒÄ¸[]A\A]A^A_ÃfDÀL‰çè€ûûÿHƒÄ1À[]A\A]A^A_Ãff.„@óúAWAVAUATUSH�ìˆL‹¯�L‹·dH‹%(H‰D$x1ÀM…í„qH‰û�M‹½M…ÿuéO€M‹?M…ÿ„<AƒuíI‹®°I9o uàH‹E8L‹¥°H‰$M…ä„ÚI‹¾¨èþÿH‰ÇH‰Åè9ÿûÿI‹¶¨A‰èH‰ßH‰ÁH�ÙÿÿH‰D$èÈþÿH‹á]6I‹WH‰ßH�t$ÇD$ HÇD$H‹€HÇD$HÇD$(L‹°¸HÇD$0L)ðIE(HÐH‰D$8I‹…�H�DL‰âH‰D$@è.üÿI‹w1ÒH‰ßIµ�è üÿ…ÀuH‹4$H‰ÚL‰çèüÿH9$ta1ÀH‹L$xdH3 %(…H�Ĉ[]A\A]A^A_ÄM‹mM…í…“þÿÿºH�5ï91ÿè@üûÿH‰Ç1ÀèÆÚýÿ¸ë¡HƒýºfïÀ¹ HFÕH‹l$H�|$XD$XHÇD$PRSDSL�d$PHÇD$pH‰îèÛÿûÿH‰ïèCùûÿH‹t$@L‰âH‰ßèüÿ…À„;ÿÿÿH‹t\6H‹�I‹GIE(HÇ‚èL)ðH‰‚à¸éÿÿÿH‹<$èmýûÿH‰…°I‹†°L‹ °H‹@8H‰$éûýÿÿè¦ûûÿfDH‰øH ðt(H…ÿtH…ötéÿûÿf„HƒÿÀƒÈÃfD1ÀÃff.„f�Hc±V6;¯V6S‰ûH‹©V6t�Jˆ‰ “V6HcÉÆ[Ãf��J2ƒÂ3‰ €V6HcòH…ÀtH‰ÇèÔûûÿHceV6H‰fV6ë½@H‰÷è˜üûÿHcIV6H‰JV6ë¡„H…ÿtKUSH‰ûHƒìè½úûÿH�xH‰ÅèaüûÿH‹jV6H‰ÞH�HH‰\V6H‰H‰ÏH�UèÝþûÿHƒÄ[]ÃfD1ÉH‰ÈÃf.„H‹V6H…Àt4H;V6s[H�P¾H‰ýU6ƒø tÀǶU6ÃDHƒìH‹=ÅU6èðûûÿƒø t HƒÄÃfDdžU6ëé@¸ÿÿÿÿÃf.„ATI‰üU‰õSH‹hU6HcC0H‹{8�Pƒâü9Ð|-ƒÀƒàüH˜H�4€HÁæH…ÿtyè„úûÿH‰C8H‹1U6H‹x8Hc@0H�@fïÀH�ÇL‰çHÇCè‚ûûÿH‰@öÅtÆC@öÅtÆC@öÅtÆCƒåtÆCH‹ÙT6ƒ@0[]A\ÄH‰÷èèúûÿH‰C8H‹µT6H‹x8Hc@0ë‚AVAUATI‰ôU‰ÕS€?uH‹�T6L‰`‰h[]A\A]A^ÀH‰ûèøûûÿI‰ÅH9Ãt2…íH�þI‰Ø‹^T6H� wäH‹5XT6H�=9åHDÈ1Àè×ýÿH‹/T6H‹;H…ÿtèÊõûÿ¾.L‰ïè ùûÿH…ÀtL‰ïè€úûÿH‰éjÿÿÿ„…íL� rL‰ïL�5™sMDñèTøûÿH�xèûùûÿM‰ñM‰è¾H‰H‹¾S6H� (üHÇÂÿÿÿÿH‹81Àè>üÿé ÿÿÿf„AUE‰ÅATI‰ÌUH‰ÕSH‰ûH‰÷HƒìH‹3è_üÿÿ…Àu&H‹sH‰ïèOüÿÿ…ÀuH‹sL‰çè?üÿÿ…ÀuD‰è+CHƒÄ[]A\A]Ãf.„AUE‰ÅATI‰ÔUH‰õSH‰ûHƒìH‹wH‰ÏH…öH�FHEðèóûÿÿ…Àu/H‹sH‰ïèãûÿÿ…ÀuH‹3L‰çèÔûÿÿ…ÀuD;k t �À¶À�DÿHƒÄ[]A\A]ÃDH‹5ÙR6éýûÿ@óúHƒì¿xèÎøûÿH�xH‰ÁH‰ÂHÇHƒçøHÇ@p1ÀH)ùƒÁxÁéóH«HÇÀÿÿÿÿÇBÿÿÿÿH‰BH‰B H‰B(H‰BhH‰ÐHƒÄÃff.„f�óúH…ÿ„óATUSH‰ûH‹?H…ÿtèÏóûÿH‹{H…ÿtèÁóûÿH‹S8H…ÒtU‹s0…ö~F1í€L�dmIÁäJ�"H‹8H…ÿt èŽóûÿH‹S8J�"H‹xH…ÿt èxóûÿH‹S8HƒÅ9k0ÃH‰×ècóûÿH‹SHH…Ò„~‹K@…É~o1íë3èCóûÿH‹SHJ�"H‹H…Éu9H‹xH…ÿt è%óûÿH‹SHHƒÅ9k@~8L�d­IÁäJ�"H‹xH‹H…ÿtÇH9Ïu²H‰ÏèòòûÿH‹SHJ�"뵄H‰×èØòûÿH‹S`H…Òt‹CX…À~p1íë5@è»òûÿH‹S`J�"H‹HH…Éu9H‹xH…ÿt èœòûÿH‹S`HƒÅ9kX~7L�d­IÁäJ�"H‹8H‹HH…ÿtÇH9Ïu±H‰ÏèiòûÿH‹S`J�"ëµ€H‰×èPòûÿH‹{PH…ÿt@€H‹H‰CPè4òûÿH‹{PH…ÿuëH‹kpH…ít$f�H‹EH‹}H‰CpèòûÿH‰ïèòûÿH‹kpH…íuÞH‰ß[]A\éòñûÿf�Ãff.„@óúAWAVM‰ÆAUI‰ýATI‰ôUH‰ÕSHƒì8‹G@‰L$L‰L$‰D$ H…Ò„)H…ö… I‰ÔH‹D$I‹]HÇE‹M@E…É„D‹D$L‰ñH‰êL‰æH‰ßD‰L$è&üÿÿD‹L$…ÀŽÁAƒù„ÿIcÁD‹D$L‰ñH‰êL�<€L‰æD‰L$IÁçM�WØJ�<L‰T$èßûÿÿD‹L$…À�²E�YÿL‹T$„ƒAƒù„yE…ÛŽ‚1ÀL‰l$(H‰l$A‰ÅD‰ÝD‰L$$L‰d$ëf�E�l$A9í�ÒE�L-D‹D$H‹T$L‰ñAÑùH‹t$IcÁI‰ÄH�€L�<ÃL‰ÿèRûÿÿ…À„‚y¸A�l$ÿë¶�M…ä„ÚþÿÿH…íIDìéÎþÿÿE1ÛE1ÿ‹D$ ƒÀƒààA9Á|9AƒÁ D‰\$AƒáàMcÉK�4‰HÁæH…Û„úH‰ßèÊóûÿE‹M@D‹\$I‰EHH‰ÃLûE9ËtE)ÙH�{(H‰ÞMcÉK�‰HÁâèúûÿHÇC fïÀL‰çCè­ôûÿH‰ïH‰è¢ôûÿH‰CM…öt L‰÷è‘ôûÿI‰Æ‹D$L‰s‰CAƒE@HƒÄ8H‰Ø[]A\A]A^A_Ã@u~H‹D$ÇëÛf„M‰×…À…ÿÿÿH‹D$LÓÇë·DE‰Ëéöþÿÿ„A»A¿(éÝþÿÿ€H‰÷è°óûÿE‹M@D‹\$H‰ÃI‰EHéÿÿÿE1ÿE1Ûé«þÿÿDH‹D$L‰ûÇéGÿÿÿDIcÅL‹d$H‹l$L‰ñL�<€D‹D$‰D$IÁçH‰êL‰æL‹l$(N�;L‰×L‰T$èsùÿÿL‹T$D‹L$$…À~‹D$IƒÇ(ƒÀA‰Ãé0þÿÿf�uH‹D$L‰ÓÇéÍþÿÿD‹\$é þÿÿA¿(A»éûýÿÿff.„f�óúUSHƒìH‹_PH…Ût%H‰õë„H‹H…ÛtH�{H‰îèŒôûÿ…ÀuèHƒÄH‰Ø[]Ãff.„óúAWAVAUI‰ÕATI‰ôUH‰ýSHƒìH‹GXM…ÀH‹_`‰L$ ‰D$0H‹„$€L‰D$ ÇL‰ÀD‹wXHDÆL‰L$H‰D$E…ö„òA‰ÈH‰ßH‰ÑH‰Âè±øÿÿ…ÀŽAƒþ„�IcÆD‹D$ H‹T$L‰éL�<€L‰æIÁçM�WØJ�<L‰T$(èrøÿÿ…À� E�^ÿL‹T$(„ÛAƒþ„ÑE…ÛŽ"1ÀD‰t$4H‰l$8A‰ÆD‰ÝL‰d$(ë€E�t$A9î�jF�L5D‹D$ H‹T$L‰éAÑùH‹t$(IcÁI‰ÄH�€L�<ÃL‰ÿèê÷ÿÿ…À„y¸A�l$ÿë¶f„E1ÛE1ÿ‹D$0ƒÀƒàðA9Æ|9E�ND‰\$AƒáðMcÉK�4‰HÁæH…Û„¢H‰ßèðûÿD‹uXD‹\$H‰E`H‰ÃLûE9ÞtE)ÞH�{(H‰ÞMcÎK�‰HÁâè`öûÿfïÀHÇC CM…ät L‰çèððûÿH‰CM…ít9L‹ePM…äuéÙf„M‹$$M…ä„ÃI�|$L‰îèVòûÿ…ÀuâL‰c‹D$ H‹|$ ‰C H…ÿtEè˜ðûÿH‰H‹D$H…Àt H‰ÇèƒðûÿH‰D$H‹D$H‰CƒEXHƒÄHH‰Ø[]A\A]A^A_ÀH‹CH‰ëº€…ºH‹„$€ÇëÁf�M‰×…À…«þÿÿH‹„$€LÓÇë¡f�E‰óéŽþÿÿ„L‰ïèøíûÿH�xèŸïûÿL‰îI‰ÄH‹EPIÇD$I�|$I‰$L‰ePèÚëûÿéÿÿÿDA»A¿(é5þÿÿ€H‰÷èPïûÿD‹uXD‹\$H‰ÃH‰E`éYþÿÿE1ÿE1ÛéþÿÿDH‹„$€L‰ûÇéñþÿÿf�IcÆL‹d$(H‹T$L‰éL�<€D‹D$ ‰D$(IÁçL‰æD‹t$4H‹l$8N�;L‰×L‰T$èqõÿÿL‹T$…À~‹D$(IƒÇ(ƒÀA‰Ãé‹ýÿÿDuH‹„$€L‰ÓÇéwþÿÿ„D‹\$(é\ýÿÿA¿(A»éKýÿÿDAWM‰ÏAVI‰þH‰÷AUE‰ÅATI‰ÌUSH‰ÓHƒì(dH‹%(H‰D$1ÀH…ÒH‰t$H�¾gHDØÇD$èpìûÿH‰ßH‰ÅèeìûÿH�|è îûÿH‹t$I‰ÙH� ØH‰ÇH‰ÅHÇÂÿÿÿÿ1ÀI‰ð¾èP÷ûÿHƒìH‰êM‰ùH�D$M‰ðD‰éL‰æPH‹=˜G6è;ûÿÿXZH‹D$dH3%(uHƒÄ(H‰ï[]A\A]A^A_ééûÿèîëûÿff.„AWE1ÀAVAUATUS1ÛH�ìHdH‹%(H‰„$81ÀL�¤$ðH�D$`ÇðN6ÇÖN6þÿÿÿI‰ÆI‰ÅfD‰D$`ÇD$HÇ$ÈL‰d$H‰D$H�)ß¾,ƒý®„”Hc•N6ƒúþ„Œ…ÒŽ�úŽPƒÅ¸�ý•w`HcíH�>Û¿j9ÂuNH�oÜ·hH¿Ø…ÛŽï‹t$H‹)ÊH‰ÍHcÒM‹Ôƒû_‡ˆH�ÙÖHcšHÐ>ÿàI‹T$ØM‹$ÇD$\A‹\$ðA‹L$àI‹t$ÐH…ÒuH…öHEÖH‹=E6L�L$\L‰T$ èÍôÿÿ‹t$\L‹T$ …öu(öÃtÆ@"öÃtÆ@!öÃtÆ@#ƒãtÆ@ @H�íL‰éHíI)ÄH)éH�ÜL‰à¿9M�d$L‰PH�ÇØB¶8‰þƒè#H˜¿Bú�ú•wHcÒH�=#Ùf;4W„yH�’Û·BH¿Øf‰AL�iH‹ $H� I�TþI9Õ‚²M‰ìM)ôIÑüIƒÄH�ù'‡ZH='º'HFÐH�’H‰ÕH‰$H�|èÎíûÿI‰ÇH…À„*O�,$L‰öH‰ÇIÁäL‰êè¬ìûÿH�D-H‹t$L‰âI�,oH‰D$ H‰ïèŽìûÿL;t$tL‰÷è_åûÿH‹D$ O�l/þN�d%øI�DþI9Ѥ H‰l$M‰þƒûE…¡üÿÿM‰õ1Ûëf.„»L;l$tL‰ïè åûÿH‹¼$8dH3<%(‰Ø…ÏH�ÄH[]A\A]A^A_Ã�‰l$ H‰\$(€‹-RC6…í…"èíÿÿ‰ÃƒøÿtL‹C6ƒû t ƒû …¶…Àu*éf„‹ÚB6ƒø t ƒø …Œ…Ò„ìèÏìÿÿƒøÿuÚ‹l$ H‹\$(ÇwJ61Àéüÿÿ¶ÀH�5Æõ5·F¨…ó ¨„ÊH‹«B6H…À„„ Ç8J6@HƒèH‰�B6DH�AÛ¶Åé¦ûÿÿfDH‹5QB6H�pÒƒ J6H� ‘‹.B6H�=ÛÒH…öHDð1ÀèéÄýÿéüÿÿ@ÇÆI6þÿÿÿéóûÿÿ�H�Ù×·PH¿Øé‚ýÿÿ@‰Ã¶ÃH�5üô5ÇÂA6D·þÿÿƒgA6ÇMA6é(þÿÿ„‰Ã‰Ðƒû;…]ÿÿÿ…À„Uÿÿÿëf„ƒø t è&ëÿÿƒøÿuñƒø „èýÿÿéIþÿÿM‹$é/üÿÿ‰ÚfD‰|$0H‹\$(A‰ï¾ú‹l$ ‰T$ Ǻ@6èýéÿÿèØêÿÿHcT$ ‰Áƒú@„þÿÿƒùÿtKH‰\$ ‰Ë@¶ÃH�5Îó5öFŒu‰ÞH�=ãÐèŠåûÿH…À„p ¾ûè©éÿÿè„êÿÿ‰ÃƒøÿuÅH‹\$ H‹Q@6fƒ|$0H‰D$ „GH�Ié5L‰l$(H�=öI‰ÅH‰\$0H‰ÓëHƒÃH‹{ðAƒÇH…ÿ„L‰îè3èûÿ…ÀußMcÿL‹l$(H‹\$0H�ëè5IÁçJcT8ëÇ@6A‰ïH‹\$(‹l$ Ic׉¡G6éùÿÿ@H‹5Ù?6‹Ë?6H�òÏH� HH�=jÐM‰õ»H…öHDð1ÀèpÂýÿé üÿÿÇi?6‰Ú‹l$ ‰ÐH‹\$(D‰ú뀶ÐH�5Žò5·V€æu ƒøx…k ¾øètèÿÿèOéÿÿƒøÿuÒH‹=#?6èÞèÿÿºÇïF6H‰ðF6é»üÿÿL‹l$(H‹\$0H‹|$ è¯èÿÿºÇÀF6H‰ÁF6éŒüÿÿH¸ÿÿÿÿL!ÐHƒÈI‰ÂéúÿÿH¸ÿÿÿÿA‹$L!ÐH ÐI‰ÂéçùÿÿH¸ÿÿÿÿL!ÐHƒÈI‰ÂéÎùÿÿL�äÙéÂùÿÿH¸ÿÿÿÿL!ÐHƒÈI‰Âé©ùÿÿH¸ÿÿÿÿL!ÐHƒÈI‰Âé�ùÿÿE1ÒéˆùÿÿHºÿÿÿÿA‹D$ðA $L!ÒH ÂI‰ÒégùÿÿI‹$H‰ßè£âûÿH�xèJäûÿH‹S>6L�HH‰H‰E>6L‰ÏI‰ØH� C1ÀHÇÂÿÿÿÿ¾L‰L$ è€íûÿL‹L$ M‰Êé ùÿÿ¸ÿÿÿÿI ÂéþøÿÿI‹\$ðH‰ßè9âûÿM‹ $H‰D$(L‰ÏL‰L$ è#âûÿH‹T$(H�|èÄãûÿH‹Í=6I‰ØL‹L$ L�PH� ²Í¾H‰L‰×HÇÂÿÿÿÿH‰¡=61ÀL‰T$ èõìûÿL‹T$ éƒøÿÿI‹<$1Ò1öèåûÿI‰ÂénøÿÿIÇÂÿÿÿÿébøÿÿH‹+=6A‹4$I‹|$ðH‹Xp‰t$ H‰|$(H…Û„51ÀL‰l$8H‰ýI‰ÝL‰d$@H‰ÃA‰ôˆL$0L‰T$Hë�I‹EL‰ëH…À„I‰ÅI‹}H‰îèáäûÿ…Àu A‹ED)à„©…À~ÌL‹T$H¿L‹l$8¶l$0L‹d$@L‰T$8è¹âûÿH‹|$(H‰D$0èúâûÿH‹T$0H…ÛL‹T$8H‰B‹D$ ‰B…ìH‹]<6H‹HpH‰ H‰Ppé}÷ÿÿI‹L$øI‹T$èA¸ÿÿÿÿL‰T$ I‹t$ØI‹|$ÈM‹ $èÝóÿÿL‹T$ éK÷ÿÿH¸ÿÿÿÿI!Âé9÷ÿÿI‹|$øI‹4$1ÒL‰T$ èLçÿÿL‹T$ é÷ÿÿI‹$I‹|$ø1ö¶„Àt)ƒèR<&wH� ÒζÀHc�HÈ>ÿàƒÎHƒÂ¶„Àu×L‰T$ è-æÿÿL‹T$ éËöÿÿƒÎë܃Îë׃ÎëÒI‹|$øA‹4$L‰T$ èæÿÿL‹T$ éŸöÿÿI‹L$øI‹t$è1Ò1ÿM‹ $A¸ÿÿÿÿL‰T$ èóÿÿL‹T$ ésöÿÿI‹L$øM‹ $1ÿL‰T$ I‹T$èI‹t$ØA¸ÿÿÿÿèÖòÿÿL‹T$ éDöÿÿI‹t$èI‹|$Ø1É1ÒM‹ $E‹D$øL‰T$ è«òÿÿL‹T$ éöÿÿI‹L$øM‹ $1ÒL‰T$ I‹t$èI‹|$ØA¸ÿÿÿÿè|òÿÿL‹T$ éêõÿÿI‹T$èM‹ $1ÉL‰T$ I‹t$ØI‹|$ÈE‹D$øèNòÿÿL‹T$ é¼õÿÿI‹<$1Ò1öL‰T$ èRçûÿL‹T$ Hºÿÿÿÿ‰ÀL!ÒH ÂI‰Òé‹õÿÿI‹$H‰ßèÇÞûÿH�xènàûÿI‰Áé1üÿÿI‹$¿L‰T$(H‰D$ èNàûÿH‹|$ H‰ÃH‹:6H‰:6H‰è€àûÿH‹|$ H‰CèrÞûÿL‹T$(‰CéõÿÿH‹æ96A‹$A‹L$ð‰Pl‰HhéõÿÿH‹Ë96A‹$Ç@l‰PhéèôÿÿA‹4$H�=KÕL‰T$ è+äÿÿL‹T$ éÉôÿÿL�Êé½ôÿÿL�êÉé±ôÿÿL�Oùé¥ôÿÿL� Õé™ôÿÿL�½Éé�ôÿÿL�âÔé�ôÿÿL� ÉéuôÿÿL�ï éiôÿÿL��Ôé]ôÿÿL�ÒÉéQôÿÿL�¼ÉéEôÿÿL�{Ôé9ôÿÿL�YÔé-ôÿÿL��Éé!ôÿÿL�mÔéôÿÿL�qÉé ôÿÿL�hÔéýóÿÿL�vâéñóÿÿL�EÉéåóÿÿL�0ÉéÙóÿÿL�ÉéÍóÿÿL�úÓéÁóÿÿI‹\$èH‰ßèüÜûÿM‹L$øH‰D$8L‰ÏL‰L$0èåÜûÿI‹ $H‰D$(H‰ÏH‰L$ èÏÜûÿH‹t$(H‹T$8H�T2H�<ègÞûÿHƒìI‰ØH‹i86H‹L$(L�PH‰Y86¾H‰L‰×HÇÂÿÿÿÿ1ÀQL‹L$@H� ´ÈL‰T$0èŽçûÿL‹T$0ZYéóÿÿA‹4$H�=5ÈL‰T$ è]âÿÿL‹T$ éûòÿÿH‹Ä76A‹$A‹L$ø‰P,‰H(éàòÿÿH‹©76A‹$A‹L$ø‰P$‰H éÅòÿÿH‹Ž76I‹$L‰T$0H‹{H‰D$(H‰|$ H‰ÇèçÛûÿH‹|$ L‹T$0�PH…ÿ„L‰T$8‰T$0èÃÛûÿ‹T$0H‹|$ ÂHcòè€ÜûÿH‹t$(H‰CH‹(76H‹xèwäûÿL‹T$8éEòÿÿI‹|$øI‹4$ºL‰T$ èUâÿÿL‹T$ é#òÿÿM‰õ»ésóÿÿ‹l$ ‰\$ H‹\$(èÜàÿÿǪ66ƒøÿt*‹T$ A‰×9Ðtf�¾øèØßÿÿè³àÿÿƒøÿ•ÁD9ø•„ÑuãH‹=|66è7àÿÿºÇH>6H‰I>6éôÿÿ‹l$ ‰\$ H‹\$(èjàÿÿƒø=„ÉH‹ z66HcT$ H…É„æÇ>6=HƒéH‰ W66éÊóÿÿHcÓ‹l$ H‹\$(é:öÿÿH‹:66‰ÙH‹\$ H…Àt;HƒèH‰#66é†õÿÿM‰ý»é}òÿÿ‰ÂH‹66H…ÀtqHƒèH‰ø56é‰öÿÿ‰ÏèüâÿÿéOõÿÿL‹T$H¿L‹l$8¶l$0L‹d$@L‰T$8èÄÛûÿH‹|$(H‰D$0èÜûÿH‹T$0L‹T$8H‰B‹D$ ‰BH‹H‰H‰éšðÿÿ‰×è›âÿÿéöÿÿ‰Ç‰T$ è‹âÿÿHcT$ Ç =6=éßòÿÿHcúL‰T$ èZÛûÿH‹t$(H‰CH‹"56H‹xè¡×ûÿL‹T$ é?ðÿÿ¶l$0L‹l$8L‹d$@L‹T$Hé&ðÿÿ‰Ï‰T$ è#âÿÿHcT$ Ǥ<6@éwòÿÿ¿L‰T$8èðÚûÿH‹|$(H‰D$0è1ÛûÿH‹T$0L‹T$8H‰B‹D$ ‰Bé;øÿÿÇ]<6@é0òÿÿÇN<6ºéòÿÿèÿØûÿff.„@óúAWI‰÷AVAUATL�%zç5USHcÚHóHƒì(H‹?46H‰=846H‰D$H9ÞƒÚf�A¶H‰ÐAöT@u„Ò”Â< ”ÀÂt IƒÇL9ûwÛI9ß„ªM�wL9óv0A¶ë„Àt#IƒÆL9ó„O¶ÐA¶AöT@t<-t< uÙH�6H�-û6E1íH‹0L‰ðL)øH‰D$H…öt^DH‰÷H‰t$èØûÿH‹t$LcÈL;L$,L‰ÊL‰ÿL‰L$èÄÕûÿ…ÀuL‹L$C¶<:tr< tnfDHƒÅH‹uAƒÅH…öu§L9ó†¾A¶.Aƺ1ÿH�5PÄèc×ûÿL‰þH‰Ç1ÀèæµýÿAˆ.HÇ(36„M‰÷éÈþÿÿ„K�DL‰5ü26H‰ý26‹EÇÀ26‰ò26èeëÿÿ…À…eÿÿÿMcíH�ó 6IÁåJƒ<(„]ÿÿÿHǹ26L9ów”ë:f�I‰Þé¿þÿÿ„ºH�5ÄÃ1ÿè­ÖûÿH‰Ç1Àè3µýÿHÇx26H‹D$H‹=|26H‰=26H…ÿtH‹H‰f26èÑÓûÿH‰ßH…ÛuéHƒÄ([]A\A]A^A_Ãf.„óúUH‰õH�5âÝSH‰ûHƒìèÞûÿH‰õ16H‰ö16ÇÜ16H…À„H…턪H‰-»16Ç©16èTêÿÿ…À…¤H‹=µ16è°ÕûÿH‹�16H…Ût:@‹SH‹sH‹=z16è ýÿÿH‹+H‹{H‰-W16è ÓûÿH‰ßH‰ëèÿÒûÿH…íuÊH‹=ƒ16H…ÿtfDH‹H‰n16èÙÒûÿH‰ßH…ÛuéH‹"16HƒÄ[]Ãè[ÞÿÿH‰ 16éLÿÿÿ€H‹=ù06è¬ÞÿÿH‹=16èÕûÿH‹=16H…ÿt@H‹H‰16èqÒûÿH‰ßH…ÛuéHƒÄ1À[]ÃH‰ßH‰D$è#ÝûÿH‹D$ë‚f.„f�óú¸H‹H9wÀÃff.„�óúH‹6H‹?é�Øûÿ�óúH‹GH‹VH…ÀHDH…ÒHDH‰ÇH‰Öé[Øûÿff.„H‹¹06SH‰ûH‰Gx‹£06‰‡ˆ�xHcÿHÁçè6ÖûÿLc‡06H‰ƒ€E…À~.H‹SxA�xÿH‰ÁHÁçH×ë €H‰òH‰H�r HƒÁH9úuíJÇÀƒK [HÇ=06Ç'06Ç!06ÄAVA‰ÖH‹06AUI‰õATI‰ü‹=ø/6UHcéSHcð/6�Wÿ9Ú+ƒÇ Hc÷‰=Ù/6HÁæH…ÀttH‰Çè”ÔûÿHcÅ/6H‰Æ/6HÁãD‰öL‰çHÃL‰kHÇCèøÓûÿH‹ É/6H‰CHcŽ/6H� éH‰ÂHÁàH„/6ƒÂH‰[‰o/6]A\A]A^ÀH‰÷èÕûÿHcQ/6H‰R/6ëŠS1ÒH‰ûHcöHƒìdH‹%(H‰D$1ÀèNÞûÿH‰ÚH�|$¾èüÜûÿ¶D$¶T$ÁàÐH‹L$dH3 %(uHƒÄ[ÃèòÒûÿf�S1ÒH‰ûHcöHƒìdH‹%(H‰D$1ÀèîÝûÿH‰ÚH�|$¾èœÜûÿ¶T$¶L$¶D$ÁâÁàÑ�¶D$ÁàÐH‹\$dH3%(uHƒÄ[Ãè}Òûÿff.„f�AU1Ò¾ATA‰üH�=ÙÇUSHƒìèÀ®üÿH‹5¹26H�=ÀÇH‰ÃèÊÔûÿH‰ë.6H‰C H…À„H‹@H‹=‹26H‹¨�è_ØûÿH‹=x26I‰ÅèÐÖûÿL‰êH‹=®.6‰ÆÿÕ…À„ÊH‹=›.6E…ät_H�5}ÇèÂÏûÿH‰{.6H…ÀtH‹=w.6ºA H‰ÆèâÛûÿ…ÀuºH�5jÌë]H‹=Q.6H‹".6H‹5;.6èöÖûÿH‹=7.6H�5%ÇècÏûÿH‰.6H…ÀtH‹=.6ºA H‰ÆèƒÛûÿ…Àu?ºH�5;Ì1ÿèüÐûÿHƒÄ[H‰Ç]1ÀA\A]éx¯ýÿ„ºH�5œÆëÏf�H‹=Á-6H‹5ª-61ÒèkÖûÿHƒÄH‰ß[]A\A]é9âüÿf„AWAVAUATUSHƒì8H‹N`H‰|$(H‰t$ H…É„h1Òf„H‹��H…Àt@�ˆH‹@H…ÀuñH‹‰øH…ÉuÕHcúHÁçèÒûÿH‰D$H‹D$ L‹h`M…í„ÇD$L�%£ 6M‹µ�M…ö„)M‰÷ë>fD‹h H‹º1ÿH�5LËèßÏûÿD‰ñ‰êH‰ÞH‰Ç1Àè]®ýÿM‹M…ÿ„æI‹GhD‹p AöÆtåL9àtàH‹h(H…ít¬L‰ïI‹_`è8Îûÿ…À„»I‹�¸L‰þL‰ïH‰ $èZÙûÿHcøèRÑûÿH‹ $L‰þL‰ïH‰ÂI‰Æè]Øûÿ…ÀŽfHëƒèL‰l$M‰õH‰$I�lÆ‹\$éÎDH‹P‹J…É…±H‹ Ò+6‹y9:„ŸH‹H‹ �y€„<H‹I L9ah„‹J HcóH‹<$HÁæHxHt$iÁè BH‰>=Â]„H†’=}„=ú„d=’e„IH�5*Ê1ÿº‰L$è‚Îûÿ‹L$H‰Ç1À‰Îè­ýÿf�IƒÅL9íto‹5]*6I‹E…ö„%ÿÿÿH‹H�5?Ä¿H‹H‹P1ÀèhÕûÿI‹Eéÿþÿÿ€=€>„½=�>…yÿÿÿ1ÀIƒÅÆFƒÃf‰F L9íu•@‰\$L‹l$L‰÷èGËûÿM‹M…ÿ…þÿÿM‹­øM…í…·ýÿÿHct$L‹l$ºH� ÔøÿÿH‰óL‰ïèyÌûÿ…Û„­�SÿH‹_*6HÇÆÿÿÿÿHÁâI�lL‰êëf�HƒÂHƒÀH‰ÎH9Õt.H‹ HÁé H9ñt HƒÀHƒàüHƒÀ€zuÒHƒÂHƒÀH‰ÎH9ÕuÒHƒÀIÇÄÿÿÿÿHƒàüH‰ÇH‰ñ)6èÏûÿ1ÿL‰âL‹t$(H‰ÆH‰è)6HÇÍ)6ëzHþA¾}I‹FA�çÿÁç HcÿLÿÿP`H‹¢)6A€}H�xH‰=’)6u(H‹5™)6I‹FHþI¿} ÿP`H‹s)6H�xH‰=h)6IƒÅL9í„ìH‹5d)6H‰ÚM‹}L+=~)6L‰ûH�ãðÿÿH9Ó„kÿÿÿ@öÇt&HƒÇë €H‰ÇÆD>ÿH�G@öÇuîH‰=)6I‹FH‹@HIƒüÿtJ�t&L)çÿÐI‹FH‹5ô(6H‹@HH5Ù(6H‰ßÿÐL‹%Í(6H‹5Ö(6I�|$H‰=º(6éíþÿÿDI‹7¹ H�=¼ó¦—Á€Ù„É…ÛüÿÿéTýÿÿ@H‹QH‹t$ E1ÉE1ÀH‹|$(1Éè5ÊûÿH…À„,ýÿÿ¶P€úts€ú…ýÿÿI‹EH‹Pé�üÿÿD‹…À„þüÿÿƒø…ÌüÿÿéðüÿÿÆFƒÃéäüÿÿ@ÆFƒÃéÔüÿÿ@ÆF ƒÃéÄüÿÿ@ÆFƒÃé´üÿÿ@f�xBi…¤üÿÿH‹PHH‹@PH‹ŠH‹H‹�ˆH‹ÐH…À„~üÿÿ€x„tüÿÿL9`(…PÿÿÿéeüÿÿH�5ÿ1ÿºèÂÊûÿHƒÄ8L‰î[H‰Ç]1ÀA\A]A^A_é7©ýÿ@öÇt*H‹r'6HƒÇë@H‰ÇÆD:ÿH�G@öÇuîH‰=?'6IƒüÿtH‹B'6L)çJ�t H‹D$(H‹@ÿPHH‹'6H‹0'6H9B8v H‹ '6HƒÀÆDÿH;B8rñH‰ê&6HƒÄ8[]A\A]A^A_Ã1ÿéÎùÿÿH‹|$H� õÿÿº1öèÄÈûÿH‹µ&6H�xHƒçüH‰=¦&6è¹ËûÿHÇ–&6H‰Ÿ&61Àéqÿÿÿóú€uƒß%6¸Ãf„UH‰õSH‰ûHƒì¶„ÀteH‰ùL�cØ5H¿!ë7€¶ðAöp@u<;@”Æ<,”À@Æt fDºHƒÁ¶„Àt�pÞ@€þ:wÇH£÷ráë¿€H‰î…ÒtY¿"è÷Ìûÿ¶„Àu2HƒÄH‰î¿"[]éÝÌûÿD<\t¾;H‰îHƒÃèÅÌûÿ¶„ÀtÎ<"uâH‰î¿\è­Ìûÿë×HƒÄH‰ß[]é Êûÿf.„ATI‰Ô1ÒUH‰õ¾SH‰ûH‰ïèD¥üÿH‰X H‰ÇèÚüÿH‹CL‰æH‰ßÿ�À…Àt []A\ÀH�5^¾1ÿºèUÈûÿ[H‰î]H‰ÇA\1ÀéÔ¦ýÿ@óú€t¸ÃATUHc-V$6SH‰ûH‹HÁåH-;$6è>Êûÿ¾@H‰EHc-.$61ÀI‰ìHÁåH-$6H‹}€?@”ÀHÇèŒÈûÿH…ÀtÆ@H‹CAƒÄD‰%ô#6H‰E¸[]A\ÃfDAWAVAUE1íATI‰ôUH‰ÍSH‰ÓHƒìH‰|$H…ÿtL‹¯ØM…ít I‹}è·ÊûÿI‰ÅMc4$E1ÿL‹#ë„„¥L�{M9÷s.K�7H‰ïHÑëH�›I�ÄH‹pH…öHD0èÿÊûÿ…ÀyËI‰ÞL9ûwÒ‹…þ5…À„Å‹ #6…Ò…]M…턺H�5 ½L�%«Î5H�ÄÕ5@L‰ïèHÈûÿ…À…˜IcT$Lê¶<-„�<.…}HƒÄ1À[]A\A]A^A_ÃH‰ïL�=ÚÌ5èÅÆûÿ¹H�5±¼LcàL‰ãë�IcO9Ë|L‰ç�QH)ÏHcÒHïètÄûÿ…Àt«IƒÇI‹7H…öuÔ@H‹Á"6L�%�åH…Ûu&ë`H‹3ƒøtpH‰ïèøÉûÿ…À„kÿÿÿH‹[H…Ût<‹Cƒøu×M…ítêH‹3L‰ïèOÅûÿ…À„BÿÿÿH‹3L‰çèœÃûÿ…À„/ÿÿÿH‹[H…ÛuÄHƒÄ¸[]A\A]A^A_ÀH‹D$H‹8èÅûÿ…Àu�éõþÿÿH‹D$H‰ê¿H�5VÁL‹€ØH‰Á1ÀèµÌûÿM…í…~þÿÿH‹D$H�pÌ5H‹8è¨ÈûÿH�52¾I‰Äë@HƒÃH‹3H…öt`L‰çèÉûÿ…Àuèé†þÿÿIƒÄI‹4$H…öt3IcT$éAþÿÿ�H�B¶RöSuëØ„ÒtÔHƒÀ¶€ú.uðéFþÿÿHƒ|$…pÿÿÿH‹�!6H‹X H‹3H…öuë$€HƒÃH‹3H…ötH‰ïèŒÈûÿ…ÀuèéþýÿÿºH�5ǺH� Ë5ëfDHƒÃH‹3H…ö„äýÿÿHcSH‰ïèŒÂûÿ…Àuàé¾ýÿÿAWE‰ÏAVI‰öAUI‰ÕATI‰ÌUH‰ýH‰÷SHƒìL‰D$èvÄûÿL‰ïH‰$èjÄûÿL‰çH‰Ãè_ÄûÿH‹$H�|HÇèþÅûÿL‰öH‰ÇH‰ÃèÄûÿL‰îH‰ÇèõÃûÿL‰æH‰Çè:ÂûÿH‹EH‰ïÿ�HcF 6L‹D$H‰X�JL‰@ ‰ 0 6H‹ 1 6D‰xHÇ@H‰ÑHƒÄ[]A\A]A^A_Ãf.„ATA‰ÔUH‰ýSèÁÁûÿD‰âH‰ï�Ê H‰ÆH‰ÃèêÍûÿH‹EH‰[hH‰ïÇCpÿ�Hc»6�J‰ ²6H‹ ³6H‰ÑH‹H‰X H‰PÇ@HÇ@H‰Ø[]A\ÃDAWAVAUI‰õATUH‰ýSHƒìX‰T$ …Òt,H‹µ6ƒx‡ ‹@H�ÙÂHc‚HÐ>ÿà€ÇD$4E1ä¿è£ÄûÿD‹6¾H� è¸HÇÂÿÿÿÿH‰ÃH‰Ç1ÀèìÍûÿH‰ßL‰îƒë6èZÅûÿH‰ÃH‹86H‰ÞH‹xèÄËûÿH‰ßèlÀûÿ¾H‰ßèŸÆûÿH‹61ÒH‰ß‹pH‹Cÿ��¿`Ç—6èÄûÿºH�5)H‰ßH‰„6èwþÿÿºH�5K¸H‰ßH‰D$è^þÿÿºH�5;¸H‰ßH‰D$(èEþÿÿºH�5+¸H‰ßI‰Çè.þÿÿºH�5¸H‰ßH‰D$èþÿÿH‰D$ H‹E€8@H‹Z6„D‹PH�5ø:H‰ßH�ï:H‹È6A¹L�ëü5H� q¸E…ÒHDðèðüÿÿD‹\$ E…Ût7H‹6H� M¸H‹UH‰ßH�5ôóL‹D$D‹HE…ÉA¹HDñè¯üÿÿH‹Ð6L�5¸H‹MH‰ßL�-½óL‰òA¹D‹@H�5Z·E…ÀM‰øIEÕèpüÿÿ€}#t1H‹‹6L‰òH‹MA¹L‹D$ H�5·‹x…ÿH‰ßIEÕè9üÿÿ‹5£6…ö…–‹L$ …É„ïLcl$4H‹t$H‰ßL‰êM‰îè'ÆûÿL‰ïèOÂûÿH‹L$H‰D$@H‰�°AƒýƒäAƒæ…š‹T$4…Ò…®H‹ï6ƒx‡[‹@H�/ÀHc‚HÐ>ÿàf„¹º¾H‰ßèìÿÿH‹|$èoëÿÿL‹t$(ºH‰ßL‰öèŠÅûÿ¿è°Áûÿ¹1öH‰ßI‰†°º>ÇH‰D$8èÊëÿÿL‰÷è"ëÿÿºL‰þH‰ßèBÅûÿ¿èhÁûÿI‰‡°€}"I‰ÅHÇ„•·EAÆE€fA‰EL‹t$ºH‰ßL‰öèúÄûÿ¿è ÁûÿI‰ÄM‰¦°€}"IÇ$„¼·EAÆD$€fA‰$H‹t$ 1ÒH‰ßE1öè³ÄûÿÇD$0‹U6H‹5V6H‰ßè¦Âûÿ‹D$ …À…JH‹T$8H‹t$(1ÉH‰ßA¸è@Àûÿ1ÉA¸L‰êL‰þH‰ßè*ÀûÿH‹t$1ÉL‰âA¸H‰ßèÀûÿ€}"„ØH‰ßèà¼ûÿHƒÄXH‰Ø[]A\A]A^A_ÃfD1ö¹º>H‰ßètêÿÿH‹|$èÊéÿÿ€}"…+ÿÿÿH‹}H…ÿ„#è^¾ûÿH‹t$ H‰ßƒÀ‰D$0‹L$0‰ÈƒàƒøƒÙÿHcÁ‰L$0I‰ÆH‰Âè®ÃûÿL‰÷L‰t$HèÑ¿ûÿH‹T$H1öI‰ÆH‹D$ L‰÷L‰°°èƒ¿ûÿ‹E…Ày‹EH‹ufA‰I�~H…ö„´èï»ûÿé¯þÿÿf.„H‹t$1ÒH‰ßèAÃûÿHÇD$@é”ýÿÿD‹hH�5Ü6H‰ßH�Ó6H‹¬6A¹L�Ïø5H� U´E…íHDðèÔøÿÿD‹t$ E…ö…&H‹UA¹M‰øH‰ßH�5гH� ´è£øÿÿ‹5 6…ö„jüÿÿH‹UA¹M‰øH‰ßH� ó³H�5Q³èrøÿÿéBüÿÿDH‰ß¹º>1öèäèÿÿL‰ÿè<èÿÿéXýÿÿ€LcD$0H‹t$ 1ÉL‰òH‰ßè¾ûÿé þÿÿ@D‹D$4H‹T$@1ÉH‰ßH‹t$è÷½ûÿé˜ýÿÿf�I‹$H‹L$@H‰‹D$4H�qHƒæøI‹TøH‰ÇH‰TøH)ñH‰ÈI)Ìøƒàøƒø‚öûÿÿƒàø1҉уÂI‹< H‰<9ÂrïéÛûÿÿf„H‹}éÔýÿÿ€H‹uéCþÿÿ€ÇD$4L�%‘¼éùÿÿ@ÇD$4 L�%A¼é÷øÿÿ@ÇD$4 L�%Q¼éßøÿÿ@ÇD$4L�%)¼éÇøÿÿ@A¶$H‹L$@ˆéAûÿÿ€1öH‰ß¹ºÆè„çÿÿ1É1öH‰ßºÇèsçÿÿ¹ºÇH‰ß¾è\çÿÿé>ûÿÿ€¹º ¾H‰ßè9çÿÿéûÿÿ@H� ²H‹UL‹D$H‰ßA¹H‰Îèöÿÿé´ýÿÿH�+»¾kH�=±è2ŠýÿH�»¾ÂH�=î°èŠýÿf.„A‹$H‹L$@‰‹D$4A‹Tü‰TüéUúÿÿAWAVAUATUH‰ý¿SHƒìèU¼ûÿD‹Ê6¾H� š°HÇÂÿÿÿÿH‰ÃH‰Ç1ÀèžÅûÿH‰îH‰ßƒ�6è ½ûÿH‰ÃH‹ê6H‰ÞH‹xèvÃûÿH‰ßè¸ûÿ¾H‰ßèQ¾ûÿH‹Â61ÒH‰ß‹pH‹Cÿ��¿0ÇI6èÄ»ûÿºH�5m3H‰ßH‰66è)öÿÿºH�5°H‰ßH‰ÅèöÿÿºH�5ø¯H‰ßI‰ÆèûõÿÿH‹Ü6I‰èA¹H‰D$H‹76H� }°H‰ß‹pH�Ó2…öH�5É2HDðèéôÿÿH‹ 6H�5ìH‹Œ6L�µô5A¹H� X¯‹xH�+°…ÿH‰ßHDðè¨ôÿÿºH‰îH‰ß踾ûÿ¿èÞºûÿD‹ï6fïÀH‰…°I‰ÄÇ@E…ÀtÆ@ƹº>1öH‰ßèßäÿÿ¹º>H‰ß¾ èÈäÿÿ¹º>H‰ß¾è±äÿÿH‰ïè äÿÿ‹ {6…É„ ºL‰öH‰ßè¾ûÿ¿èAºûÿ‹S6I‰†°I‰ÇHÇ…Ò„êH‹t$ºH‰ßèà½ûÿ¿èºûÿ‹€6H‹5�6H‰ßI‰ÅH‹D$L‰¨°IÇE躻ûÿA¸1ÉL‰âH‰îH‰ßèd¹ûÿ‹Ö6…ÀtJA¸1ÉL‰úL‰öH‰ßèD¹ûÿA¸H‹t$L‰êH‰ß1Éè,¹ûÿH‰ßè¶ûÿHƒÄH‰Ø[]A\A]A^A_Ãf�E1À1ÉL‰úL‰öH‰ßèý¸ûÿE1À뺄1ÒL‰öH‰ßè½ûÿéóþÿÿfDH‹t$1ÒH‰ßèù¼ûÿéÿÿÿ@AWAVAUATUH‰ý¿SHƒìè¹ûÿD‹z6¾H� J­HÇÂÿÿÿÿH‰ÃH‰Ç1ÀèNÂûÿH‰îH‰ßƒM6è¼¹ûÿH‰ÃH‹š6H‰ÞH‹xè&ÀûÿH‰ßèδûÿH‰ß¾è»ûÿH‹r61ÒH‰ß‹pH‹Cÿ��¿(Çù6èt¸ûÿH‰ßºH�5׬H‰æ6èÙòÿÿH‰ßºH�5³¬I‰ÇèÂòÿÿH‰ßºH�5“¬I‰Æè«òÿÿH�5þèH‰ßH‹‚6I‰ÄH‹è6A¹H� K¬M‰à‹@…ÀH�­HDð1íè™ñÿÿL‰þºH‰ßè©»ûÿ¿èÏ·ûÿL‰öºH‰ßI‰‡°HÇH‰D$è|»ûÿ¿袷ûÿH‹= 6I‰†°HÇH‰$èÔµûÿL‰æH‰ß¨@”Å�lHcíH‰êè9»ûÿH‰ïèa·ûÿH‹5Ê6I‰„$°H‰ÇI‰Åè§³ûÿ‹Á6H‰ßH‹5¿6AÆD-ÿè ¹ûÿL‹T$L‰þH‰ßA¸1ÉL‰Òè±¶ûÿL‹ $L‰öH‰ßA¸1ÉL‰Êè—¶ûÿI‰èL‰êL‰æH‰ß1Éè„¶ûÿH‰ßè\³ûÿHƒÄH‰Ø[]A\A]A^A_Ãf.„óúAUATI‰üUSHƒìH‹=Hì5dH‹%(H‰D$1ÀH…ÿ„ÇL�-(ì51íL‰ëë$�H‹{L‰æèd¸ûÿ…ÀtHƒÃ(H‹;ƒÅH…ÿ„•L‰æèE¸ûÿ…ÀuÑ‹Ëë5‰D$ƒøÿtB…ÀHcí•ÀH�T­¶ÀI�TÕ‰BH‰û6‰�ë5H‹D$dH3%(uoHƒÄ[]A\A]Ãf�H�L$E1À1Ò1öL‰çèL¾ûÿ‹D$ƒøÿu¡H�\´¾·H�=ªèKƒýÿºH�5Ô¯1ÿèÕ³ûÿL‰æH‰Ç1ÀèX’ýÿ¿è>½ûÿèù³ûÿf„óúAVAUATA‰ôUSè̵ûÿH�5ŠÒH‰ÇI‰ÆèÊ»ûÿH…ÀtaH‰ÅL�-pÒ¿èNµûÿH‰ïH‰Ã蓳ûÿH�xè:µûÿH‰îH‰ÇH‰茱ûÿL‰î1ÿD‰cH‹´6H‰­6H‰Cèl»ûÿH‰ÅH…Àu¬[L‰÷]A\A]A^ét°ûÿ@óúAWAVAUATUSHƒì(H‹G`H‰D$H…À„ýH‰T$H‰õ@H‹|$èv±ûÿ…À„îH‹D$H‹ˆ¸H‹˜�H‰L$H…Û„¤DöC"t H�+ï5H9ChtL‹t$H‰ÞH‰ö6L‰÷è^¼ûÿHcøèV´ûÿH‹L$H‰ÞL‰÷H‰ÂI‰Åè`»ûÿ…À~>ƒèM‰ïM�dÅ�M‹7H‰ïI‹H‹H‹pè ¶ûÿ…ÀuH‰êH‰ÞL‰÷H‹D$ÿÐIƒÇM9üuÎL‰ïèv¯ûÿH‹[H…Û…aÿÿÿH‹D$H‹€øH‰D$H…À…ÿÿÿHƒÄ([]A\A]A^A_ÃH�5æ1ÿºèͱûÿH‹t$HƒÄ([H‰Ç]1ÀA\A]A^A_é@�ýÿóúAWH�5bÁAVAUATI‰üUSHƒìèo¹ûÿH‰ÃH…À„ÓH‹” 6H…À„óHƒ8tmD‹HH‰ÙE…É…Õº¾H�=ǧè׺ûÿH‹X 6ºH‰ÞH‹8è�çÿÿH‹Ù6H‹€Hƒ¸…H‰Þ¿ èW³ûÿH‹ 6HƒxtEH‰Ùº ¾H�=o§èpºûÿH‹ñ 6ºH‰ÞH‹xè(çÿÿH‰Þ¿ è ³ûÿH‹Ì 6D‹@l‹HhAƒøÿ…óƒùÿtH�=§¾H‰ß1Àè(ºûÿH‹™ 6ƒx ÿu ‹H(ƒùÿ„H‰Þ¿ è²²ûÿH‹s 6‹P$‹H ƒúÿ…äƒùÿtH�§¾H‰ß1ÀèѹûÿH‹B 6D‹@,‹P(Aƒøÿ„â‰Ñ¾H�â¦1ÀH‰ß衹ûÿH‹ 6D‹@0E…À�ë‹p@…ö�‹PX…Ò�§H‰ß蟯ûÿƒøÿ„–HƒÄ[]A\A]A^A_ÀH�@¦¾H‰ß1Àè:¹ûÿH‹« 6é ÿÿÿfDº¾H�=é¥è¹ûÿé&þÿÿDA‰Ð¾H‰ß1ÀH�¦èï¸ûÿH‹` 6D‹@,‹P(Aƒøÿ…ÿÿÿƒúÿ„4ÿÿÿ‰Ñ¾H� ¦1ÀH‰ß趸ûÿH‹' 6D‹@0E…ÀŽÿÿÿH�=õ¥H‰Ùº ¾èy¸ûÿH‹ú 6‹x0…ÿŽêþÿÿ1íL�-KÌëC@€x… €x…4€x…[H‰Þ¿ HƒÅèé°ûÿH‹ª 69h0ŽœþÿÿH‰Ùº¾L‰ïè¸ûÿH‹… 6H�DmH‰ÞL�4ÅH‹R8H‹<Â1Òè®äÿÿH‹_ 6H‹H8LñHƒyH‰ÈtDH‰Ùº¾H�=(¥è­·ûÿH‹. 61ÒH‰ÞH‹@8J‹|0ècäÿÿH‹ 6H‹H8LñH‰È€x„ ÿÿÿH‰Ùº¾H�=â¤è_·ûÿH‹à 6H‹H8LñH‰È€x„öþÿÿH‰Ùº¾H�=´¤è+·ûÿH‹¬ 6H‹H8LñH‰È€x„ÌþÿÿH‰Ùº¾H�=‡¤è÷¶ûÿH‹x 6Lp8L‰ð€x„¥þÿÿH‰Ùº¾H�=_¤èƶûÿé‡þÿÿ�º H‰Ù¾H�=w¤è§¶ûÿH‹( 6‹BX…ÀŽ.ýÿÿE1íL�5xÊëcf„1ÒH‰ÞèFãÿÿHƒ}t'º¾H�=4¤H‰ÙèV¶ûÿH‹}1ÒH‰ÞèãÿÿH‰Þ¿ IƒÅè÷®ûÿH‹¸6D9jXŽ¿üÿÿH‹R`K�D­H‰ÙL‰÷¾H�,ºè¶ûÿL‹}M…ÿt;H‹uH…öt L‰ÿè*°ûÿ…Àt&1ÒH‰ÞL‰ÿè©âÿÿH‰Ùº¾H�=à×èÀµûÿH‹E1ÒH‰ÞH�xè~âÿÿ¿.H‰Þèa®ûÿH‹}H…ÿ…ÿÿÿ‹M H�éÖH‰ß1À¾苵ûÿéÿÿÿfDH‰Ùº¾H�=ø¢èWµûÿH‹Ø6‹H@…ÉŽÓûÿÿE1íL�5(ÉëIf„€}!…Ë€}"…ä€}#…ýH‰Þ¿ IƒÅèÁ­ûÿH‹‚6D9h@Ž~ûÿÿH‹HHK�T­¾L‰÷H�,ÑH‰ÙºèδûÿH‹}1ÒH‰Þè�áÿÿH‹}H…ÿtH‹uèî®ûÿ…À…¶‹MƒùÿtH�<¢¾H‰ß1À蘴ûÿ€} „NÿÿÿH‰Ùº¾H�=¢èe´ûÿ€}!„5ÿÿÿH‰Ùº ¾H�=ú¡èB´ûÿ€}"„ÿÿÿH‰Ùº¾H�=á¡è´ûÿ€}#„ÿÿÿH‰Ùº¾H�=Æ¡èü³ûÿéåþÿÿ€H‰Ùº¾H�=÷Õè׳ûÿH‹}1ÒH‰Þè™àÿÿéÿÿÿ@H�5÷è1ÿºèªûÿHƒÄL‰æ[H‰Ç]1ÀA\A]A^A_é’ˆýÿf�H‰Ùº¾H�=m èw³ûÿH‹� 6¾H‰ßH�ìÇH‹€H‹ˆ1Àè\³ûÿ飸ÿÿ€ºH�5Ä¥1ÿè�©ûÿL‰æH‰Ç1Àè ˆýÿH‹¡6H…À… øÿÿ1ÿºH�5Ý èm©ûÿ¾H‰ßH‰Â1Àèû²ûÿéùÿÿfD‹P$ƒúÿ…ÜùÿÿD‹@,Aƒøÿ„<ùÿÿéùÿÿ�óúAWA¸p_AVI‰Ö1ÒAUI‰ýATUH‰ÍSHƒìhH‰t$H�qúdH‹%(H‰D$X1ÀH‹H‹fD‰AþA¸ÇAú__imH‹=] 61ÉH‰D$èÉ«ûÿA¹k_1É1ÒI‰ÇfD‰MþH�uöH¸__nm_thnH‰EöH‹=& 6A¸è“«ûÿL�L$0ºD‹¢6H‰ÃI‹EL‰Ï¾H�  L‰ $H‹L‹A�@‰x61ÀL‰T$蜳ûÿL‹ $L‹T$L‰È‹HƒÀ�‘ÿþþþ÷Ñ!Ê� €€tè‰ÑI‰ìÁé÷€€DÑH�HHDÁ‰ÑÑHƒØL)ÈI)ĉƒøƒæ¨…~ …Ò…&I‹BH�T$(M‹ML‰ÖHÇD$(L‹66¹H�=6H‹€`RL‰âjjjÿ�8HƒÄ ƒ=¤6u M…ÿ…õH…Ût €{„¾¿H‹"6èM©ûÿD‹Â6¾H� ŸHÇÂÿÿÿÿI‰ÇH‰Ç1Àè–²ûÿH‰ÞL‰ÿƒ•6èªûÿH‰ÃH‹â6H‰ÞH‹xèn°ûÿH‰ßè¥ûÿ¾H‰ßèI«ûÿH‹º61ÒH‰ß‹pH‹Cÿ��¿ÇA6輨ûÿºH�5"�H‰ßH‰.6è!ãÿÿA¹H‰êH� ¶�I‰ÀH�5ažH‰ßI‰Çè,âÿÿA¹H‰êH‰ßL�â5H� ‡�H�5ßœèâÿÿºL‰þH‰ßè¬ûÿ¿è<¨ûÿfïɹ1öI‰‡°º>H‰ßH‰$èVÒÿÿL‰ÿè®Ñÿÿ‹ˆ6H‹5‰6H‰ßèÙ©ûÿL‹ $1ÉL‰þA¸H‰ßL‰Êè§ûÿH‰ßèW¤ûÿH‹3H�M6H‰ßè5Ýÿÿƒ=ê6„XH‹�6Ç×6�`DÿïÿÿM…öt‹=Á6…ÿ„UL‹ 6H�#�¿H‹C6M…ÒLDÐL‰$èc§ûÿD‹Ø6¾H� 5�HÇÂÿÿÿÿI‰ÇH‰Ç1À謰ûÿH‰ÞL‰ÿƒ«6è¨ûÿH‰ÃH‹ø6H‰ÞH‹xè„®ûÿH‰ßè,£ûÿ¾H‰ßè_©ûÿH‹Ð61ÒH‰ß‹pH‹Cÿ��¿0ÇW6èÒ¦ûÿºH�5{H‰ßH‰D6è7áÿÿA¹H‰êH‰ßL�<à5H� ›I‰ÇH�5mœè>àÿÿH‹_6L‹$H�¡›A¹L�à5H� °šH‰ß‹rL‰Ò…öH�50×HDðèýßÿÿH�k›ƒ=k6A¹L�Êß5H‰Á„éL‰âH‰ÆH‰ßèËßÿÿºL‰þH‰ßèÛ©ûÿ¿è¦ûÿfïÀ¹1öI‰‡°º>H‰ßÇ@H‰$èÐÿÿ¹º>H‰ß¾ èýÏÿÿ¹º>H‰ß¾èæÏÿÿL‰ÿè>Ïÿÿ‹6H‹56H‰ßèi§ûÿL‹ $1ÉL‰þA¸H‰ßL‰Êè¥ûÿH‰ßèç¡ûÿH‹3H�Ý6H‰ßèÅÚÿÿ‹{6…À…'M…ö„±fDL‹t$I‹m1ÿºH‹D$H�5¼ŸI‹žðL‹`è,£ûÿH‰éL‰òH‰ÞH‰ÇM‰à1Àè¦�ýÿéd�H‹T$0I‰$‰ÂI‹LøI‰LøI�L$L‰âHƒáøH)ÊI)ÑÂƒâøƒú‚õúÿÿƒâø1À‰ÆƒÀI‹<1H‰<19ÐrïéÚúÿÿA¶Aˆ$ö„ÉúÿÿA·DþfA‰Dþé¸úÿÿfDA€…ûÿÿ‹ ƒþ5…É…_I‹E¿H‹6D‹x èF¤ûÿD‹»þ5¾H� >šHÇÂÿÿÿÿH‰ÇI‰Å1Àè�­ûÿH‰ÞL‰ïƒŽþ5èý¤ûÿH‰ÃH‹Ûþ5H‰ÞH‹xèg«ûÿH‰ßè ûÿ¾H‰ßèB¦ûÿH‹³þ51ÒH‰ß‹pH‹Cÿ��ƒ=î6Ç8þ5…Rƒ=‹þ5HÿƒçHƒÇ蜣ûÿH‰þ5ºH�5w™H‰ßèÞÿÿH� Ÿ˜L‰âH‰ßA¹L�ÿÜ5H‰ÎI‰Åè Ýÿÿƒ=�6…‹)þ5…Ò…aA¹L�ÌÜ5H‰êH‰ßH� L˜H�5«—Çöý5A¼è»ÜÿÿºL‰îH‰ßè˦ûÿ¿èñ¢ûÿfïÀ¹H‰ßI‰…°º>¾H‰ÅHÇ@èÍÿÿ¹º>H‰ß¾ èêÌÿÿH‹CH�uL‰ÿÿPHH‹CH�u¿ÿPHL‰ïè$Ìÿÿ‹þü5H‹5ÿü5H‰ßèO¤ûÿM‰à陀¿èV¢ûÿH‰×ü5éµþÿÿf.„ºL‰îH‰ßè¦ûÿ¿è&¢ûÿL‰÷I‰…°H‰ÅHÇH‹CH‰îÿPH¹º>H‰ß¾è1ÌÿÿL‰ïè‰Ëÿÿ‹cü5H‹5dü5H‰ßè´£ûÿA¸1ÉH‰êL‰îH‰ßè^¡ûÿH‰ßè6žûÿH‹3H�,6H‰ßè×ÿÿ‹‚ü5…À„¶ƒÀ‰qü5H‹D$XdH3%(…?HƒÄh[]A\A]A^A_Ãf.„¿H‹$6èO¡ûÿD‹Àû5¾H� Q—HÇÂÿÿÿÿI‰ÇH‰Ç1À蘪ûÿH‰ÞL‰ÿƒ“û5è¢ûÿH‰ÃH‹äû5H‰ÞH‹xèp¨ûÿH‰ßè�ûÿH‰ß¾èK£ûÿH‹¼û51ÒH‰ß‹pH‹Cÿ��¿ÇCû5è¾ ûÿH‰ßºH�5•H‰0û5è#ÛÿÿA¹H‰êH‰ßI‰ÇI‰ÀH� ¯•H�5•è.ÚÿÿL‰þºH‰ßè>¤ûÿ¿èd ûÿfïÒ¹1öI‰‡°º>H‰ßH‰$è~ÊÿÿL‰ÿèÖÉÿÿ‹°ú5H‹5±ú5H‰ßè¢ûÿL‹ $L‰þ1ÉA¸H‰ßL‰Êè§ŸûÿH‰ßèœûÿH‹3H�uþ5H‰ßè]ÕÿÿéHøÿÿ„A¹L�kÙ5H‰êH‰ßH� ë”H�5J”A¼ èdÙÿÿº L‰îH‰ßèt£ûÿ¿ 蚟ûÿ¹º>H‰ßI‰…°¾H‰ÅHÇÇ@è«Éÿÿ¹1öH‰ßº>è—ÉÿÿH‹CH�uL‰ÿÿPHé¸üÿÿ@H‰êH�5Á“H‰ßèÞØÿÿéùÿÿf„M…ö…ªúÿÿƒø…�ýÿÿ‹ $ù5…É„¡úÿÿD‰ñL‰âH�5[™1À¿è7¤ûÿéƒúÿÿf�¿H‹-¤ý5èÏžûÿD‹Dù5¾H� Æ”HÇÂÿÿÿÿH‰ÃH‰Ç1Àè¨ûÿH‰îH‰ßƒù5膟ûÿH‰ÃH‹dù5H‰ÞH‹xèð¥ûÿH‰ß蘚ûÿ¾H‰ßèË ûÿH‹<ù51ÒH‰ß‹pH‹Cÿ��¿ÇÃø5è>žûÿºH�5ÃH‰ßH‰°ø5è£ØÿÿH�È“H� :“H‰ßH‰ÅH‹àø5L�™×5H‰Î‹@…ÀH�Ÿ“HDÐE1Éè–×ÿÿºH‰îH‰ß覡ûÿ¾¿触ûÿ¹1öH‰ßH‰…°º>I‰ÄèéÇÿÿH‰ïèAÇÿÿ‹ø5H‹5ø5H‰ßèlŸûÿA¸1ÉL‰âH‰îH‰ßè�ûÿH‰ßèî™ûÿH‹3H�äû5H‰ßèÌÒÿÿ‹:ø5é»ûÿÿ�A‹A‰$A‹DüA‰Düétóÿÿè•›ûÿDóúAWAVAUI‰ýATUSHƒì8H‹?H‰T$H…ÿHD=¸÷5H‰t$H‰=l÷5èG�ûÿH� ð©5¶H‰N÷5„Òtf�öQŒuÆ_HƒÀ¶„ÒuìH‹\$H‰ßè¿ ûÿ1öH‰ßèõ¡ûÿI‰ÆH…À„‹ ;ý5…É…¾L‰÷E1äèëžûÿA€NG€L‰÷èàÿÿH‰D$ H‹D$H‹X`H…Û„•€H‹-ñö5H…ítr@1Òƒ}¸uH‹3H‹}è§™ûÿ…À”•ÀH‹mH…ít„ÀuÒ„ÒtL‰÷è„ ûÿH‰ß…À„f„H‹Ÿàèd ûÿH‰ßH…ÛuìHƒÄ8[]A\A]A^A_ÃD1Ò¾H‰Çè™ ûÿ…À„$1íëDH‹3H‹}èL—ûÿ…ÀtQH‰îL‰ÿè­¡ûÿH‰ÅH…ÀuÝH‹ƒØH‹+ºH�5?•H‹1ÿèÅ—ûÿHƒÄ8H‰êH‰ÞH‰Ç[1À]A\A]A^A_é7výÿI‰ïé“ýÿÿ1ÿºH�5’�茗ûÿH‹t$H‰Ç1Àè=uýÿé½üÿÿH‹H�5Š�º1ÿèb—ûÿH‰ÞHƒÄ8H‰Ç1À[]A\A]A^A_é×uýÿH‹t$H�=o�èÆuýÿH‰ßéÞþÿÿH�=w”è²uýÿé±þÿÿH� ŽÒ5H9H(…ÄýÿÿéìýÿÿH�5ø“º1ÿèô–ûÿH‹t$ëŽH‹ƒØH‹+ºH�5ï“H‹éÿÿÿff.„@óúAWAVAUATUSH�ì¨H‹GH‰|$@H‰t$H‹8dH‹%(H‰”$˜1Òè¢áÿÿH‹“ò5H…À„üH‹@`H‹=ïö5H�e�H�5™ÌÿÿÇò5H‰D$XèõœûÿHc=nò5HÁçè˜ûÿH‹=¶ö5H�,�H�5àÍÿÿH‰Aò5Ç?ò5躜ûÿHc53ò5H‹=$ò5ºH� 0Áÿÿè»”ûÿH‹üñ5H‹PPH‰T$ H…Ò„f�‹PX…Ò~4H‹t$XE1äH‹L$ H�F0H;NtBH‹L$ ë HƒÀ(H9HØt.AƒÄA9ÔuíH‹D$ H‹H‰D$ H…À„ÇH‹�ñ5ë¦fDH‹D$ H�xH‰=°ñ5è‹—ûÿ¶H‰™ñ5H‰Á„Òt%f.„H�5¤5öVŒuÆ_HƒÁ¶„ÒuåH‹6ñ5D;bX�‚IcÔH‹t$XH‹|$ H�’HÁâH� H;y…_H�D0ÇD$4I‰ÏH‰D$(H�D$pH‰D$PD‰d$DI‹?¶èí”ûÿH�xè”–ûÿI‰ÆH‰D$€û@„ÛI‹/¾@H‰ïèC•ûÿ¾L‰÷I‰éH‰ÃH‹6ñ5L�|‹H� ™˜HÇÂÿÿÿÿ‹@…ÀH�ÇLEÀ1À袟ûÿH‹D$E1À1É1ÒL‰öH‹x(è:—ûÿH…Àt €x„«H‹Üð5L� "‹L��ŠHÇÂÿÿÿÿH� TŒ¾‹hH�³Æ…íLEÈHƒìAÿ71ÀL‹t$L‰÷è-ŸûÿA\A]E1ÀH‹D$1É1ÒL‰öH‹x(èÁ–ûÿH…À„¶@1Ò<”‰T$0H…Û…j<„bH‹Ið5L‹t$¾L�…ŠM‹H� Ÿ—HÇÂÿÿÿÿD‹XH�ÆL‰÷E…ÛLEÀ1À裞ûÿL‰÷è{“ûÿH�xè"•ûÿL‰öH‰ÃH‰Çèt‘ûÿ1ÿ€;@¾@@”ÇHßèΓûÿH‰D$HH…ÀtÆ@Lc-9ï5H‹*ï5E1äL‰|$8M‰ïM‰åI‰Ä뀄 M�nM9ýs*O�t=H‰ßIÑîL‰õHÁåLåH‹uè‹–ûÿ…ÀyÏM‰÷M9îwÖL‹|$8¶H‰ßIÑíL‰íHÁåLåH‹uèô•ûÿ…ÀyÐM‰ïM9õw×L‹|$HH‰ß»èf�ûÿH‹|$è\�ûÿ‹|$0…ÿ…ˆH‹î5ƒD$‹L$9HX~ H‹L$(IƒÇ(H‹HƒÁ(H‰L$(H;D$ „óüÿÿ‹D$4…ÀtH‹|$@èiÚÿÿH‹T$H‹0H‰ÇèéÈÿÿH‹Úí5H‰ÇèêŽûÿéðûÿÿDH…Û…H‹|$»èÈŽûÿƒã‹t$4…ö„ÙI‹¹H‹t$@H‹|$PH‰D$xI‹WH‰T$pI‹GH‰„$€A‹G …À‰„$ˆHÁ1ÉH…Òf‰Œ$�‰„$ŒA‹G$”„$’1Ò„Àˆ„$“”Â!ÚèÈÍÿÿH‹T$H‹0H‰Çè(ÈÿÿÇD$4éÛþÿÿH‹\$I‹7H‰ßèøŽûÿH‹D$E1À1É1ÒH‰ÞH‹x(è “ûÿH…Àt €x„1H‹\$M‹¾1ÀL�æ†H� �”HÇÂÿÿÿÿH‰ßèµ›ûÿH‹D$E1À1É1ÒH‰ÞH‹x(èM“ûÿH…À„­€x”À¶À‰D$01Ûé)þÿÿ€L‹|$HH‹D$H‹uE1À1É1ÒH‹x(è “ûÿ€xH‰Å…êýÿÿH‰ß»èP�ûÿ1À€}”À‰D$0éØýÿÿfDH‹D$H‹uE1À1É1ÒL‹|$8H‹x(躒ûÿ€xH‰Å…ýÿÿë®ÇD$0H…Û„ÿûÿÿH‹|$èíŒûÿé˜ýÿÿ„H‹|$@èæÔÿÿH‹T$H‹0H‰Çè¶Æÿÿéþÿÿ�H‹|$»豌ûÿéçýÿÿ@<@„øH‰ßèh�ûÿA¹@1ÉL‰|$HH‰D$`M‰çL‹t$8I‰ÌfD‰ ë@„AM�eM9üs)O�,I‹vØL‰ÿèQƒûÿ…À…²HcÃH�€M�lÄØ‹kÛ5E‹MAƒùÿ„éA‹Nƒùÿ„ÜA9ɄӅÀ…ÛA‰MA¶F AE A¶F!AE!A¶F"AE"A¶F#AE#M…ÿtL‰ÿèf|ûÿI‹~H…ÿtèX|ûÿI‹~L‹-Û5H…ÿt èC|ûÿL‹-ôÚ5ƒÅIƒÆ(A;m@}A…í…7ÿÿÿ9ët%HcÃóAoH�€I�ÄóAoNHI‹N H‰H ƒÃƒÅIƒÆ(A;m@|¿M‰ïHcûL‹,$HÁçA‰_@èW€ûÿH‰ Û5H‹�Ú5Hcx@HÁçè<€ûÿH‹-mÚ51öH‰ÇH‰ñÚ5HcU@HÁâèìûÿ‹E@Ç·Ú5DZÚ5Ç»Ú5Ç­Ú5ÇŸÚ5…ÀŽE1öé…€H‹-Ú5ƒ‚Ú5H]H€{"uƒmÚ5H‹P(H‹nÚ5J�ðA€ÿtH‹RH‰‹Cƒøÿt#;/Ú5~‰'Ú5;%Ú5}‰Ú5ƒ"Ú5L‰çIƒÆèÞzûÿ‹E@D9ðŽtH‹EHK�¶HÁãH‹lH‰ïè)§üÿH‰ïè�}ûÿH�xè(ûÿI‰ÄH‹öÙ5‹H…É„+€}@„!AÆ$_I�|$H‰îèW{ûÿL‰çè?ûÿH‰ÇèצüÿI‹}(1É1ÒA¸L‰æèñûÿH…À„˜D¶xA�Wý�âý„ãþÿÿ¾.H‰ïèv}ûÿH…À„ÍH‹-ÎØ5ƒOÙ5H]H€{"uƒ:Ù5‹CÆC$ƒøÿ…áþÿÿéÿþÿÿf„…ÒuL‹=�Ø5A‹G@…À…Ãúÿÿ‹sØ5…Û… úÿÿéùÿÿfD…ÒuãD‹ QØ5A‹G@E…É…¢úÿÿA‹w@é5ûÿÿ€ºH�5T°1ÿè|ûÿH‰ÞH‰Ç1Àè˜ZýÿH‹-Ø5‹E@…Àu A¶E¨„cH‹EH…À„hH‰iØ5‹kØ5‹=mØ5…Òt‹KØ59ú�»Ç=Ø5¸‰=.Ø5)ǃlj=?Ø5HcÿHÁçèo}ûÿ‹-Ø5H‰Ø5…Ò~ƒêH�T�fDÇÿÿÿÿHƒÀH9ÂuñL‹=r×5D‹-ß×51íA‹G@D‰ë…ÀŽ2M‹wHD‰,$E1ä1íM‰õéÔDD‹FAƒøÿ„ƒE‰ÆD+4$H‹ Œ×5D‰D$McöIÁæLñHcƒøÿt[H�€º1ÿD‰L$M‹|ÅL‹.H�5^zèÑzûÿD‹D$L‰ùH‰ÇL‰ê1ÀD‰ÆèIYýÿ‹?×5D‹L$H‹ '×5L‹=¸Ö5‰$LñD‰ M‹oHƒÅLëH‹{H…ÿtdè¯zûÿÅ€{$t H‹{èžzûÿ�lA‹G@IƒÄD9àŽIH‹úÖ5K�¤E‰áHÁãJƒ<àI�t…ÿÿÿ€~$…ÿÿÿM‹oHLëë§@H‹;ë—D‰ë„D‹%‘Ö5A�üÿÿ�ûÿÿ~&1ÿH�5§yºèåyûÿA9܉ÞAMôH‰Ç1ÀèbXýÿH‹=[Ö5‹aÖ5èðyûÿ‹^Ö5¿�T �S�TUHcÒH�DH‰kÖ5èf§ÿÿH‹=‡Ö5èšôÿÿH‹D$(dH3%(…gHƒÄ8[]A\A]A^A_ÀL‹ $H‹=mÕ5E1À1Ò¹ÿÿÿÿL‰æÇD$$軄ÿÿD‹T$$E…Ò…U÷ÿÿH‹U‹RÁêƒòƒâˆP#é=÷ÿÿDM‰îD‹,$…ÀŽæþÿÿIcÍ¿I�VD‰ëL‹ “Õ5L‹dÕ51ÀH)ÏëDƒ:ÿt+HƒÀHƒÂ(A9G@ޱþÿÿIƒ<ÁA‰Âu߀z tÞƒ:ÿuÙ@‰ÙD)éHcÉI�4ˆƒ>ÿtHcËHùI� ˆDH‰ÎHƒÁƒÃƒyüÿuðD‰‰ëž�…À…ÀA‹Nƒùÿ… ùÿÿéùÿÿfD¾.H‰ïèóxûÿH…À…}ûÿÿºH�5†w1ÿè'xûÿH‰îH‰Ç1ÀèªVýÿH‹-+Ô5é„úÿÿfDH‰îL‰çè=vûÿéñúÿÿ„ºH�5ÔvA€ÿt°H�5÷v1ÿèÐwûÿH‰îA¶×¹H‰Ç1ÀèJVýÿH‹-ËÓ5é$úÿÿfDM‹}ºH�5`v1ÿè‘wûÿH‰ÇL‰þ1ÀèVýÿM‹>éÿÿÿ@H‹D$H‹¶H‰öÓ5„É„…ûÿÿH‰Ç1öA¸I¹ f„ƒé/HƒÀ€ù-wL‰ÊHÓêH÷ÒƒâHDøADð¶„ÉuÙ@„ö„7ûÿÿH‰=™Ó5é+ûÿÿ@‰Ñ‹„Ó5)ù‰×ƒÁ9Á�Cûÿÿ‰ oÓ5‰Èé6ûÿÿ@I‹HH� ¢ÿÿº(è“uûÿL‹=ÔÒ5éúÿÿ€è«ÿÿH‰¼Ò5é^òÿÿ€H‹©Ò51ÿºH�5ÛtH‹@HN‹4àèvvûÿH‰ÇL‰ö1ÀèùTýÿé;õÿÿ@º1ÿM‹}D‰L$H�5Ñt‰L$è@vûÿD‹L$‹L$L‰þH‰Ç1ÀD‰Êè·TýÿM‹>é·ýÿÿ€1ÿ1Ûé�÷ÿÿèJvûÿf.„óúSH‹GH‰ûH‹8è ÁÿÿH‰ßèôðÿÿ1ÿè­£ÿÿH‹=ÎÒ5[éàðÿÿóúAWI‰÷AVAUATUSH‰ûHƒì8H‹GH‰t$H‹8èÇÀÿÿH‰ßè¯ðÿÿH‹ƒL‰þH‰ßH‹€H‰„Ò5èߤÿÿH‹@Ò5H…Ò…/H‹=8Ò5èCwûÿ‹ Ò5H‹&Ò51öI‰ÆH‰*Ò5H�@(D‹-ÛÑ5�,�L‰÷H‰D$HcíF�$­EíHÅMcäMcíH‰,$Iìè½vûÿH‹ƒMå‹°Œ…ö……H‹Ñ5HcxhH‹Cƒÿÿt/I�vÿP`H‹³Ñ5H�p H‹àÐ5HcxlH‹CÿP`H‹CL‹5’Ñ5H‹›Ñ5I�v H‹RhH‹z(L‰êH+=•Ñ5L)òH×ÿPHH‹5Ñ5L‰ïE1íèjtûÿHc=ÿÐ5L�pH‹HÑ5H�pH‹CÿPHH‹6Ñ5Hc=óÐ5H�pH‹CÿPHH‹Ñ5Hc=ÒÐ5H�pH‹CÿPHH‹Ñ5H‹ýÐ5H‹L$H‹RhH�pH)ÁH‹CH‹z(H+=þÐ5HÏÿPHH‹áÐ5H‹ÊÐ5H‹ $H‹RhH�p H)ÁH‹CH‹z(H+=ÌÐ5HÏÿPHH‹¯Ð5H‹˜Ð5L‰áH‹RhH)ÁH�p$H‹CH‹z(H+=›Ð5HÏÿPHH‹¦Ï5‹J@…Éqéâf�AÆ_H‹@HI�H‹t(èªqûÿH‹D$1É1ÒA¸L‰þH‹x(èOvûÿH…Àt€xuH‹P0H‹éÏ5J‰èL‰ÿIƒÅè‰pûÿH‹:Ï5‹B@D9èŽÖK�L­H‹BHH�,ÍH‹|(è+sûÿH�xèÒtûÿI‰ÇH‹ Ï5‹@…ÀH‹ôÎ5t"H‹PHH‹t*€>@…HÿÿÿL‰ÿèqûÿéQÿÿÿH‹@HL‰ÿH‹t(èçpûÿé8ÿÿÿf�H‹D$¶ƒà<uH‹ƒÇ€€H‹iÏ5H‹RÏ5H‰�°H‹LÏ5H‹5Ï5H‰�°HƒÄ8[]A\A]A^A_À…À~œ1íÇD$é6D€x$„NH‹Ï5D‰î+5šÎ5ÁæH‹@hHcöHt$H‹x(L‰ðH+=ñÎ5H+ÊÎ5HÇH‹CÿPHH‹ñÍ5L‰÷H‹BHH‰T$ J‹t8èpûÿH‹T$ L‰þHrHH‰T$(H‹~H‰t$ èÔqûÿH‹t$ H‹T$(M�t€~"…‡H‹FH…ÀHDH‹4$H‰D$ H‹`Î5H‹@hH‹x(L‰ðH+=^Î5H+7Î5HÇH‹CÿPHH‹t$ L‰÷Hƒ$è+qûÿD+-ÀÍ5L‰æIƒÄL�pH‹CIcýÿP`H‹0Í5‹L$H‹BHB‰L8�A‰D$HƒÅ9j@ŽWþÿÿL�|­H‹BHIÁçLøD‹hAƒýÿ…±þÿÿH‹êÌ5ëÌH‹qÍ5H‹èH…ÀtçH‹iÍ5D‰î+5<Í5ÁæH‹<êH+=¢Í5HcöHx`H‹@hHt$Hx(H‹CÿPHH‹˜Ì5H‹rHLþéßþÿÿ@H‹C1ÿL‹¸�è.uûÿI�vH‰ÇAÿ×L‹5-Í5éSûÿÿ„H‹5!Í5H‹=*Í5èÝuûÿè(•üÿ1ÿ¾èì–üÿè—7ýÿ¿è}}üÿé™úÿÿ„óúUH‰õSH‰ûHƒìH‹GH‹8è»ÿÿH‰ßèìêÿÿH‹ƒH‰îH‰ßH‹€H‰ÁÌ5èŸÿÿH‹}Ì5H…Òu H‹‘Ì5H‹zÌ5H‰�°HƒÄ[]Ã@H‹5qÌ5H‹=zÌ5è-uûÿèx”üÿ1ÿ¾è<–üÿèç6ýÿ¿èÍ|üÿë«ff.„óú¶WD1Àƒâ€útÃDH‹—‹‚€…Àté‹’€1À…Ò•ÀÃf„óú¸H‹H9wÀÃff.„�óúH‹6H‹?é±rûÿ�óúH‹GH‹VH…ÀHDH…ÒHDH‰ÇH‰Öé‹rûÿff.„H‹ùË5SH‰ûH‰Gx‹ãË5‰‡ˆ�xHcÿHÁçèfpûÿLcÇË5H‰ƒ€E…À~.H‹SxA�xÿH‰ÁHÁçH×ë €H‰òH‰H�r HƒÁH9úuíJÇÀƒK [HÇ}Ë5ÇgË5ÇaË5ÄAWE‰ÏAVI‰öAUI‰ÕATI‰ÌUH‰ýH‰÷SHƒìL‰D$ènûÿL‰ïH‰$è nûÿL‰çH‰ÃèÿmûÿH‹$H�|HÇèžoûÿL‰öH‰ÇH‰Ãè mûÿL‰îH‰Çè•mûÿL‰æH‰ÇèÚkûÿH‹EH‰ïÿ�HcT$PL‹D$H‰XH‰PHcäÊ5L‰@ �JD‰x‰ ÓÊ5H‹ ÔÊ5H‰ÑHƒÄ[]A\A]A^A_Ãf„AVA‰ÖH‹„Ê5AUI‰õATI‰ü‹=hÊ5UHcéSHc`Ê5�Wÿ9Ú+ƒÇ Hc÷‰=IÊ5HÁæH…ÀttH‰ÇèômûÿHc5Ê5H‰6Ê5HÁãD‰öL‰çHÃL‰kHÇCèXmûÿH‹ 9Ê5H‰CHcþÉ5H� éH‰ÂHÁàHôÉ5ƒÂH‰[‰ßÉ5]A\A]A^ÀH‰÷è`nûÿHcÁÉ5H‰ÂÉ5ëŠS1ÒH‰ûHcöHƒìdH‹%(H‰D$1Àè®wûÿH‰ÚH�|$¾è\vûÿ¶D$¶T$ÁàÐH‹L$dH3 %(uHƒÄ[ÃèRlûÿf�S1ÒH‰ûHcöHƒìdH‹%(H‰D$1ÀèNwûÿH‰ÚH�|$¾èüuûÿ¶T$¶L$¶D$ÁâÁàÑ�¶D$ÁàÐH‹\$dH3%(uHƒÄ[ÃèÝkûÿff.„f�AU1Ò¾ATA‰üH�=9aUSHƒìè HüÿH‹5Ì5H�= aH‰Ãè*nûÿH‰[É5H‰C H…À„H‹@H‹=ëË5H‹¨�è¿qûÿH‹=ØË5I‰Åè0pûÿL‰êH‹=É5‰ÆÿÕ…À„ÊH‹= É5E…ät_H�5Ý`è"iûÿH‰ëÈ5H…ÀtH‹=çÈ5ºA H‰ÆèBuûÿ…ÀuºH�5Êeë]H‹=ÁÈ5H‹’È5H‹5«È5èVpûÿH‹=§È5H�5…`èÃhûÿH‰„È5H…ÀtH‹=ˆÈ5ºA H‰Æèãtûÿ…Àu?ºH�5›e1ÿè\jûÿHƒÄ[H‰Ç]1ÀA\A]éØHýÿ„ºH�5ü_ëÏf�H‹=1È5H‹5È51ÒèËoûÿHƒÄH‰ß[]A\A]é™{üÿf„AWAVAUATUSHƒì8H‹N`H‰|$(H‰t$ H…É„`1Òf„H‹��H…Àt@�ˆH‹@H…ÀuñH‹‰øH…ÉuÕHcúHÁçèykûÿH‰D$H‹D$ L‹h`M…í„ÇD$L�%¦5M‹µ�M…ö„M‰÷ë>fD‹h H‹º1ÿH�5¬dè?iûÿD‰ñ‰êH‰ÞH‰Ç1Àè½GýÿM‹M…ÿ„¾I‹GhD‹p AöÆtåL9àtàH‹h(H…ít¬L‰ïI‹_`è˜gûÿ…À„³I‹�¸L‰þL‰ïH‰ $èºrûÿHcøè²jûÿH‹ $L‰þL‰ïH‰ÂI‰Æè½qûÿ…ÀŽ>HëƒèL‰l$M‰õH‰$I�lÆ‹\$é¦DH‹P‹J…É…‰H‹ BÆ5‹y9:t{H‹H‹ �y€„ H‹I L9ah„ê‹J HcóH‹<$HÁæHxHt$iÁè BH‰>=Â]„4wr=€>„=�>…41ÀÆFƒÃf‰F €IƒÅL9íto‹5õÄ5I‹E…ö„MÿÿÿH‹H�5Ç]¿H‹H‹P1ÀèðnûÿI‹Eé'ÿÿÿ€=’e„ý=}…ÂIƒÅÆFƒÃL9íu›f.„‰\$L‹l$L‰÷èÏdûÿM‹M…ÿ…BþÿÿM‹­øM…í…ßýÿÿHct$L‹l$ºH� ,øÿÿH‰óL‰ïèfûÿ…Û„Í�SÿH‹÷Ä5HÇÆÿÿÿÿHÁâI�lL‰êëf.„HƒÂHƒÀH‰ÎH9Õt.H‹ HÁé H9ñt HƒÀHƒàüHƒÀ€zuÒHƒÂHƒÀH‰ÎH9ÕuÒHƒÀIÇÄÿÿÿÿHƒàüH‰ÇH‰�Ä5è„hûÿ1ÿL‰âL‹t$(H‰ÆH‰xÄ5HÇ]Ä5ëzHþA¾}I‹FA�çÿÁç HcÿLÿÿP`H‹2Ä5A€}H�xH‰="Ä5u(H‹5)Ä5I‹FHþI¿} ÿP`H‹Ä5H�xH‰=øÃ5IƒÅL9í„H‹5ôÃ5H‰ÚM‹}L+=Ä5L‰ûH�ãðÿÿH9Ó„kÿÿÿ@öÇt&HƒÇë €H‰ÇÆD>ÿH�G@öÇuîH‰=—Ã5I‹FH‹@HIƒüÿtJ�t&L)çÿÐI‹FH‹5„Ã5H‹@HH5iÃ5H‰ßÿÐL‹%]Ã5H‹5fÃ5I�|$H‰=JÃ5éíþÿÿDI‹7¹ H�=<´ó¦—Á€Ù„É…÷üÿÿéLýÿÿ@H‹QH‹t$ E1ÉE1ÀH‹|$(1ÉèµcûÿH…À„$ýÿÿ¶P€ú„‡€ú…ýÿÿI‹EH‹Pé§üÿÿf„‹…À„îüÿÿƒø„åüÿÿD1ÿºH�5b`‰L$èÁdûÿ‹L$H‰Ç1À‰ÎèACýÿé´üÿÿ@ÆFƒÃé¤üÿÿ@ÆFƒÃé”üÿÿ@f�xBi…„üÿÿH‹PHH‹@PH‹ŠH‹H‹�ˆH‹ÐH…À„^üÿÿ€x„TüÿÿL9`(…<ÿÿÿéEüÿÿH�5n˜1ÿºè*dûÿHƒÄ8L‰î[H‰Ç]1ÀA\A]A^A_éŸBýÿ@öÇt*H‹êÁ5HƒÇë@H‰ÇÆD:ÿH�G@öÇuîH‰=·Á5IƒüÿtH‹ºÁ5L)çJ�t H‹D$(H‹@ÿPHH‹�Á5H‹¨Á5H9B8v H‹ ‹Á5HƒÀÆDÿH;B8rñH‰bÁ5HƒÄ8[]A\A]A^A_Ã1ÿéÖùÿÿH‹|$H� Xôÿÿº1öè,bûÿH‹-Á5H�xHƒçüH‰=Á5è!eûÿHÇÁ5H‰Á51Àéqÿÿÿ„óú€uƒOÀ5¸Ãf„UH‰õSH‰ûHƒì¶„ÀteH‰ùL�Ãq5H¿!ë7€¶ðAöp@u<;@”Æ<,”À@Æt fDºHƒÁ¶„Àt�pÞ@€þ:wÇH£÷ráë¿€H‰î…ÒtY¿"èWfûÿ¶„Àu2HƒÄH‰î¿"[]é=fûÿD<\t¾;H‰îHƒÃè%fûÿ¶„ÀtÎ<"uâH‰î¿\è fûÿë×HƒÄH‰ß[]éjcûÿf.„ATI‰Ô1ÒUH‰õ¾SH‰ûH‰ïè¤>üÿH‰X H‰ÇèxsüÿH‹CL‰æH‰ßÿ�À…Àt []A\ÀH�5¾W1ÿºèµaûÿ[H‰î]H‰ÇA\1Àé4@ýÿ@óú€t¸ÃATUHc-ƾ5SH‰ûH‹HÁåH-«¾5èžcûÿ¾@H‰EHc-ž¾51ÀI‰ìHÁåH-†¾5H‹}€?@”ÀHÇèìaûÿH…ÀtÆ@H‹CAƒÄD‰%d¾5H‰E¸[]A\ÃfDAWAVAUE1íATI‰ôUH‰ÍSH‰ÓHƒìH‰|$H…ÿtL‹¯ØM…ít I‹}èdûÿI‰ÅMc4$E1ÿL‹#ë„„¥L�{M9÷s.K�7H‰ïHÑëH�›I�ÄH‹pH…öHD0è_dûÿ…ÀyËI‰ÞL9ûwÒ‹E™5…À„Å‹{½5…Ò…]M…턺H�5iVL�%Kl5H�$o5@L‰ïè¨aûÿ…À…˜IcT$Lê¶<-„�<.…}HƒÄ1À[]A\A]A^A_ÃH‰ïL�=zj5è%`ûÿ¹H�5VLcàL‰ãë�IcO9Ë|L‰ç�QH)ÏHcÒHïèÔ]ûÿ…Àt«IƒÇI‹7H…öuÔ@H‹1½5L�%ð~H…Ûu&ë`H‹3ƒøtpH‰ïèXcûÿ…À„kÿÿÿH‹[H…Ût<‹Cƒøu×M…ítêH‹3L‰ïè¯^ûÿ…À„BÿÿÿH‹3L‰çèü\ûÿ…À„/ÿÿÿH‹[H…ÛuÄHƒÄ¸[]A\A]A^A_ÀH‹D$H‹8èc^ûÿ…Àu�éõþÿÿH‹D$H‰ê¿H�5¶ZL‹€ØH‰Á1ÀèfûÿM…í…~þÿÿH‹D$H�j5H‹8èbûÿH�5’WI‰Äë@HƒÃH‹3H…öt`L‰çètbûÿ…Àuèé†þÿÿIƒÄI‹4$H…öt3IcT$éAþÿÿ�H�B¶RöSuëØ„ÒtÔHƒÀ¶€ú.uðéFþÿÿHƒ|$…pÿÿÿH‹ ¼5H‹X H‹3H…öuë$€HƒÃH‹3H…ötH‰ïèìaûÿ…ÀuèéþýÿÿºH�5'TH�Àh5ëfDHƒÃH‹3H…ö„äýÿÿHcSH‰ïèì[ûÿ…Àuàé¾ýÿÿATA‰ÔUH‰ýSèñ[ûÿD‰âH‰ï�Ê H‰ÆH‰ÃèhûÿH‹EH‰[hH‰ïÇCpÿ�Hcûº5�J‰ òº5H‹ óº5H‰ÑH‹H‰X H‰PÇ@HÇ@H‰Ø[]A\ÃDAWAVAUI‰õATUH‰ýSHƒìX‰T$ …Òt,H‹õº5ƒx‡�‹@H�Y^Hc‚HÐ>ÿà€ÇD$4E1ä¿èÓ^ûÿD‹Xº5¾H� SHÇÂÿÿÿÿH‰ÃH‰Ç1ÀèhûÿH‰ßL‰îƒ+º5èŠ_ûÿH‰ÃH‹xº5H‰ÞH‹xèôeûÿH‰ßèœZûÿ¾H‰ßèÏ`ûÿH‹Pº51ÒH‰ß‹pH‹Cÿ��¿`Ç×¹5èB^ûÿºH�5YªH‰ßH‰Ĺ5èwþÿÿºH�5{RH‰ßH‰D$è^þÿÿºH�5kRH‰ßH‰D$(èEþÿÿºH�5[RH‰ßI‰Çè.þÿÿºH�5MRH‰ßH‰D$èþÿÿH‰D$ H‹E€8@H‹š¹5„<D‹HH�5(ÕH�"ÕH‹ ¹5L�$—5H� ªRH‰ßE…ÉA¹HDðHƒìjèzíÿÿAZA[D‹l$ E…ít>H‹=¹5H‹UH‰ßA¹H� fR‹p…öH�5ŽHDñHƒìjL‹D$ è1íÿÿ_AXH‹MA¹M‰øH‰ßH‹ï¸5L�5%RL�-Ó�L‰òH�5zQ‹@…ÀIEÕHƒìjèëìÿÿ€}#XZt=L‰òH‹MA¹H‰ßH‹¤¸5H�59QD‹XE…ÛIEÕHƒìjL‹D$0èªìÿÿA]A^D‹¿·5E…Ò…¢‹|$ …ÿ„êLcl$4H‹t$H‰ßL‰êM‰îè2`ûÿL‰ïèZ\ûÿH‹L$H‰D$@H‰�°AƒýƒÿAƒæ…å‹t$4…ö…ÉH‹ ¸5ƒx‡®‹@H�Š[Hc‚HÐ>ÿà@¹º¾H‰ßèÉìÿÿH‹|$èOëÿÿL‹t$(ºH‰ßL‰öèš_ûÿ¿èÀ[ûÿ¹1öH‰ßI‰†°º>ÇH‰D$8èzìÿÿL‰÷èëÿÿºL‰þH‰ßèR_ûÿ¿èx[ûÿI‰‡°€}"I‰ÅÇ„®·EAÆE€fA‰EL‹t$ºH‰ßL‰öè _ûÿ¿è1[ûÿI‰ÄM‰¦°€}"AÇ$„½·EAÆD$€fA‰$H‹t$ 1ÒH‰ßE1öèÄ^ûÿÇD$0‹v¶5H‹5w¶5H‰ßè·\ûÿ‹D$ …À…cH‹T$8H‹t$(1ÉH‰ßA¸èQZûÿ1ÉA¸L‰êL‰þH‰ßè;ZûÿH‹t$1ÉL‰âA¸H‰ßè#Zûÿ€}"„ñH‰ßèñVûÿHƒÄXH‰Ø[]A\A]A^A_À1ö¹º>H‰ßè$ëÿÿH‹|$èªéÿÿ€}"…*ÿÿÿH‹}H…ÿ„CènXûÿH‹t$ H‰ßƒÀ‰D$0‹L$0‰ÈƒàƒøƒÙÿHcÁ‰L$0I‰ÆH‰Âè¾]ûÿL‰÷L‰t$HèáYûÿH‹T$H1öI‰ÆH‹D$ L‰÷L‰°°è“Yûÿ‹E…Ày‹EH‹ufA‰I�~H…ö„ÔèÿUûÿé®þÿÿf.„H‹t$1ÒH‰ßèQ]ûÿHÇD$@é”ýÿÿ‹HH�5íÐH�çÐH‹д5L�é’5H‰ßA¹…ÉH� dNHDðHƒìjè@éÿÿ^_D‹D$ E…À…pHƒìH‹UM‰øH‰ßjA¹H� (NH�5‡MèéÿÿD‹ ´5A^XE…Ò„^üÿÿHƒìH‹UM‰øH‰ßjA¹H� ìMH�5JMèËèÿÿAXAYé,üÿÿf�H‰ß¹º>1öè|éÿÿL‰ÿèèÿÿé?ýÿÿ€LcD$0H‹t$ 1ÉL‰òH‰ßèXûÿéóýÿÿ@D‹D$4H‹T$@1ÉH‰ßH‹t$èïWûÿéýÿÿf.„I‹$H‹L$@H‰‹D$4H�qHƒæøI‹TøH‰ÇH‰TøH)ñH‰ÈI)Ìøƒàøƒø‚Ûûÿÿƒàø1҉уÂI‹< H‰<9ÂrïéÀûÿÿf„H‹}é´ýÿÿ€H‹ué#þÿÿ€ÇD$4L�%ÑWéÏøÿÿ@ÇD$4 L�%�Wé·øÿÿ@ÇD$4 L�%‘WéŸøÿÿ@ÇD$4L�%iW釸ÿÿ@A¶$H‹L$@ˆé&ûÿÿ€1öH‰ß¹ºÆèèÿÿ1É1öH‰ßºÇèèÿÿ¹ºÇH‰ß¾èìçÿÿéûÿÿ€HƒìH� LH‰ßA¹jH‰ÎL��‘5H�±UèäæÿÿZ¾Yº¹H‰ßè›çÿÿéÍúÿÿfDHƒìH‹UH� ÆKH‰ßjL‹D$ A¹H‰Îè™æÿÿXZébýÿÿH�3V¾kH�=¾Jèê#ýÿH�V¾ÂH�=¦JèÒ#ýÿf�A‹$H‹L$@‰‹D$4A‹Tü‰Tüé úÿÿAWAVAUATUH‰ý¿SHƒìèVûÿD‹š±5¾H� ZJHÇÂÿÿÿÿH‰ÃH‰Ç1Àè^_ûÿH‰îH‰ßƒm±5èÌVûÿH‰ÃH‹º±5H‰ÞH‹xè6]ûÿH‰ßèÞQûÿ¾H‰ßèXûÿH‹’±51ÒH‰ß‹pH‹Cÿ��¿0DZ5è„UûÿºH�5-ÍH‰ßH‰±5è¹õÿÿºH�5ÆIH‰ßH‰Åè¢õÿÿºH�5¸IH‰ßI‰Æè‹õÿÿH‹¬°5I‰èA¹H‰D$H‹±5H� =JH‰ß‹pH�“Ì…öH�5‰ÌHDðHƒìjèåÿÿH‹Ô°5H�5¿…H‹V°5H� IA¹L�bŽ5‹xH�åIÇ$…ÿH‰ßHDðè»äÿÿAXºAYH‰îH‰ßègXûÿ¿è�TûÿD‹®¯5fïÀH‰…°I‰ÄÇ@E…ÒtÆ@ƹº>1öH‰ßè.åÿÿ¹º>H‰ß¾ èåÿÿ¹º>H‰ß¾èåÿÿH‰ïèˆãÿÿ‹ :¯5…É„ ºL‰öH‰ßèÊWûÿ¿èðSûÿ‹¯5I‰†°I‰ÇÇ…Ò„êH‹t$ºH‰ßè�Wûÿ¿è¶Sûÿ‹@¯5H‹5A¯5H‰ßI‰ÅH‹D$L‰¨°AÇEèjUûÿA¸1ÉL‰âH‰îH‰ßèSûÿ‹–®5…ÀtJA¸1ÉL‰úL‰öH‰ßèôRûÿA¸H‹t$L‰êH‰ß1ÉèÜRûÿH‰ßè´OûÿHƒÄH‰Ø[]A\A]A^A_Ãf�E1À1ÉL‰úL‰öH‰ßè­RûÿE1À뺄1ÒL‰öH‰ßèÃVûÿéôþÿÿfDH‹t$1ÒH‰ßè©Vûÿéÿÿÿ@AWAVAUATUH‰ý¿SHƒìèµRûÿD‹:®5¾H� úFHÇÂÿÿÿÿH‰ÃH‰Ç1Àèþ[ûÿH‰îH‰ßƒ ®5èlSûÿH‰ÃH‹Z®5H‰ÞH‹xèÖYûÿH‰ßè~NûÿH‰ß¾è±TûÿH‹2®51ÒH‰ß‹pH‹Cÿ��¿(ǹ­5è$RûÿH‰ßºH�5‡FH‰¦­5èYòÿÿH‰ßºH�5cFI‰ÇèBòÿÿH‰ßºH�5CFI‰Æè+òÿÿH�5®‚H‹E­5A¹I‰ÄH‹¥­5H‰ßH� ûEM‰à‹@…ÀH�ÉFHDðHƒì1íjè£áÿÿZL‰þYºH‰ßèQUûÿ¿èwQûÿL‰öºH‰ßI‰‡°ÇH‰D$è%Uûÿ¿èKQûÿH‹=Ĭ5I‰†°ÇH‰$è~OûÿL‰æH‰ß¨@”Å�lHcíH‰êèãTûÿH‰ïè QûÿH‹5„¬5I‰„$°H‰ÇI‰ÅèQMûÿ‹{¬5H‰ßH‹5y¬5AÆD-ÿè¶RûÿL‹T$L‰þH‰ßA¸1ÉL‰Òè[PûÿL‹ $L‰öH‰ßA¸1ÉL‰ÊèAPûÿI‰èL‰êL‰æH‰ß1Éè.PûÿH‰ßèMûÿHƒÄH‰Ø[]A\A]A^A_Ã@óúAUATI‰üUSHƒìH‹=X‡5dH‹%(H‰D$1ÀH…ÿ„ÇL�-8‡51íL‰ëë$�H‹{L‰æèRûÿ…ÀtHƒÃ(H‹;ƒÅH…ÿ„•L‰æèõQûÿ…Àuыۆ5‰D$ƒøÿtB…ÀHcí•ÀH�T­¶ÀI�TÕ‰BH‰»«5‰­†5H‹D$dH3%(uoHƒÄ[]A\A]Ãf�H�L$E1À1Ò1öL‰çèüWûÿ‹D$ƒøÿu¡H�\O¾·H�=ÏCèûýÿºH�5„I1ÿè…MûÿL‰æH‰Ç1Àè,ýÿ¿èîVûÿè©Mûÿf„óúAVAUATA‰ôUSè|OûÿH�5:lH‰ÇI‰ÆèzUûÿH…ÀtaH‰ÅL�- l¿èþNûÿH‰ïH‰ÃèCMûÿH�xèêNûÿH‰îH‰ÇH‰èƒèM‰ïM�dÅ�M‹7H‰ïI‹H‹H‹pè»Oûÿ…ÀuH‰êH‰ÞL‰÷H‹D$ÿÐIƒÇM9üuÎL‰ïè&IûÿH‹[H…Û…aÿÿÿH‹D$H‹€øH‰D$H…À…ÿÿÿHƒÄ([]A\A]A^A_ÃH�5Á1ÿºè}KûÿH‹t$HƒÄ([H‰Ç]1ÀA\A]A^A_éð)ýÿóúAWH�5[AVAUATI‰üUSHƒìèSûÿH‰ÃH…À„ÓH‹T¨5H…À„óHƒ8tmD‹HH‰ÙE…É…Õº¾H�=wAè‡TûÿH‹¨5ºH‰ÞH‹8èàçÿÿH‹‰«5H‹€Hƒ¸…H‰Þ¿ èMûÿH‹ا5HƒxtEH‰Ùº ¾H�=Aè TûÿH‹±§5ºH‰ÞH‹xèxçÿÿH‰Þ¿ è»LûÿH‹Œ§5D‹@l‹HhAƒøÿ…óƒùÿtH�í@¾H‰ß1ÀèØSûÿH‹Y§5ƒx ÿu ‹H(ƒùÿ„H‰Þ¿ èbLûÿH‹3§5‹P$‹H ƒúÿ…äƒùÿtH�·@¾H‰ß1Àè�SûÿH‹§5D‹@,‹P(Aƒøÿ„â‰Ñ¾H�’@1ÀH‰ßèQSûÿH‹Ò¦5D‹@0E…À�ë‹p@…ö�‹PX…Ò�§H‰ßèOIûÿƒøÿ„–HƒÄ[]A\A]A^A_ÀH�ð?¾H‰ß1ÀèêRûÿH‹k¦5é ÿÿÿfDº¾H�=™?è²Rûÿé&þÿÿDA‰Ð¾H‰ß1ÀH�¶?èŸRûÿH‹ ¦5D‹@,‹P(Aƒøÿ…ÿÿÿƒúÿ„4ÿÿÿ‰Ñ¾H�»?1ÀH‰ßèfRûÿH‹ç¥5D‹@0E…ÀŽÿÿÿH�=¥?H‰Ùº ¾è)RûÿH‹º¥5‹x0…ÿŽêþÿÿ1íL�-ûeëC@€x… €x…4€x…[H‰Þ¿ HƒÅè™JûÿH‹j¥59h0ŽœþÿÿH‰Ùº¾L‰ïè´QûÿH‹E¥5H�DmH‰ÞL�4ÅH‹R8H‹<Â1ÒèþäÿÿH‹¥5H‹H8LñHƒyH‰ÈtDH‰Ùº¾H�=Ø>è]QûÿH‹î¤51ÒH‰ÞH‹@8J‹|0è³äÿÿH‹Ô¤5H‹H8LñH‰È€x„ ÿÿÿH‰Ùº¾H�=’>èQûÿH‹ ¤5H‹H8LñH‰È€x„öþÿÿH‰Ùº¾H�=d>èÛPûÿH‹l¤5H‹H8LñH‰È€x„ÌþÿÿH‰Ùº¾H�=7>è§PûÿH‹8¤5Lp8L‰ð€x„¥þÿÿH‰Ùº¾H�=>èvPûÿé‡þÿÿ�º H‰Ù¾H�='>èWPûÿH‹è£5‹BX…ÀŽ.ýÿÿE1íL�5(dëcf„1ÒH‰Þè–ãÿÿHƒ}t'º¾H�=ä=H‰ÙèPûÿH‹}1ÒH‰ÞèhãÿÿH‰Þ¿ IƒÅè§HûÿH‹x£5D9jXŽ¿üÿÿH‹R`K�D­H‰ÙL‰÷¾H�,ºè´OûÿL‹}M…ÿt;H‹uH…öt L‰ÿèÚIûÿ…Àt&1ÒH‰ÞL‰ÿèùâÿÿH‰Ùº¾H�=�qèpOûÿH‹E1ÒH‰ÞH�xèÎâÿÿ¿.H‰ÞèHûÿH‹}H…ÿ…ÿÿÿ‹M H�™pH‰ß1À¾è;OûÿéÿÿÿfDH‰Ùº¾H�=¨<èOûÿH‹˜¢5‹H@…ÉŽÓûÿÿE1íL�5ØbëIf„€}!…Ë€}"…ä€}#…ýH‰Þ¿ IƒÅèqGûÿH‹B¢5D9h@Ž~ûÿÿH‹HHK�T­¾L‰÷H�,ÑH‰Ùºè~NûÿH‹}1ÒH‰ÞèàáÿÿH‹}H…ÿtH‹uèžHûÿ…À…¶‹MƒùÿtH�ì;¾H‰ß1ÀèHNûÿ€} „NÿÿÿH‰Ùº¾H�=Ä;èNûÿ€}!„5ÿÿÿH‰Ùº ¾H�=ª;èòMûÿ€}"„ÿÿÿH‰Ùº¾H�=‘;èÏMûÿ€}#„ÿÿÿH‰Ùº¾H�=v;è¬Mûÿéåþÿÿ€H‰Ùº¾H�=§oè‡MûÿH‹}1ÒH‰Þèéàÿÿéÿÿÿ@H�5§‚1ÿºèÍCûÿHƒÄL‰æ[H‰Ç]1ÀA\A]A^A_éB"ýÿf�H‰Ùº¾H�=:è'MûÿH‹@¤5¾H‰ßH�œaH‹€H‹ˆ1Àè Mûÿ飸ÿÿ€ºH�5t?1ÿèMCûÿL‰æH‰Ç1ÀèÐ!ýÿH‹a 5H…À… øÿÿ1ÿºH�5�:èCûÿ¾H‰ßH‰Â1Àè«LûÿéùÿÿfD‹P$ƒúÿ…ÜùÿÿD‹@,Aƒøÿ„<ùÿÿéùÿÿ�óúAWA¸AVI‰Ö1ÒAUI‰ýATUH‰ÍSHƒìhH‰t$H�qúdH‹%(H‰D$X1ÀH‹H‹ÇAú__im¹p_f‰MþH‹=£51ÉH‰D$è{Eûÿ¿k_H�uö1ÉI‰Çf‰}þA¸1ÒH¸__nm_thnH‰EöH‹=Ô¢5èGEûÿL�L$0ºD‹fŸ5H‰ÃI‹EL‰Ï¾H� Ç9L‰ $H‹L‹A�@‰<Ÿ51ÀL‰T$èPMûÿL‹ $L‹T$L‰È‹HƒÀ�‘ÿþþþ÷Ñ!Ê� €€tè‰ÑI‰ìÁé÷€€DÑH�HHDÁ‰ÑÑHƒØL)ÈI)ĉƒøƒ¨…ò …Ò…ZI‹BH�T$(M‹ML‰ÖHÇD$(L‹úž5¹H�=Ρ5H‹€`RL‰âjjjÿ�8HƒÄ ƒ=X¢5u M…ÿ…)H…Ût €{„Í¿H‹Ö¡5èCûÿD‹†ž5¾H� ½8HÇÂÿÿÿÿI‰ÇH‰Ç1ÀèJLûÿH‰ÞL‰ÿƒYž5è¸CûÿH‰ÃH‹¦ž5H‰ÞH‹xè"JûÿH‰ßèÊ>ûÿ¾H‰ßèýDûÿH‹~ž51ÒH‰ß‹pH‹Cÿ��¿Çž5èpBûÿºH�5Ö6H‰ßH‰ò�5è¥âÿÿHƒìH‰êH‰ßjI‰ÀA¹I‰ÇH� [7H�5 8è:ÒÿÿA¹H‰êH‰ßL�¯{5H� 57Ç$H�5†6è ÒÿÿXL‰þZH‰ßºè»Eûÿ¿èáAûÿ¹1öH‰ßI‰‡°º>HÇH‰$è›ÒÿÿL‰ÿè#Ñÿÿ‹=�5H‹5>�5H‰ßè~CûÿL‹ $1ÉL‰þA¸H‰ßL‰Êè$AûÿH‰ßèü=ûÿH‹3H�òŸ5H‰ßèzÝÿÿƒ=� 5„�H‹& 5Ç|¡5�`DÿïÿÿM…öt‹f 5…À„rL‹â5H�È6¿H‹èŸ5M…ÒLDÐL‰$èAûÿD‹�œ5¾H� Ú6HÇÂÿÿÿÿI‰ÇH‰Ç1ÀèQJûÿH‰ÞL‰ÿƒ`œ5è¿AûÿH‰ÃH‹­œ5H‰ÞH‹xè)HûÿH‰ßèÑ<ûÿ¾H‰ßèCûÿH‹…œ51ÒH‰ß‹pH‹Cÿ��¿0Ç œ5èw@ûÿºH�5 ¸H‰ßH‰ù›5è¬àÿÿHƒìH‰êH‰ßjA¹L�Ûy5H� a5H�56I‰Çè=ÐÿÿH‹œ5H‰ßH�A5H�5ïpA¹L� y5D‹RH� E4Ç$E…ÒL‹T$HDðL‰ÒèòÏÿÿƒ=Ÿ5A[XH�ö4„#HƒìH‰ÆH‰ßA¹jL�Jy5H‰ÁL‰âè·Ïÿÿ^_ºL‰þH‰ßèeCûÿ¿è‹?ûÿfïÀ¹1öI‰‡°º>H‰ßÇ@H‰$è>Ðÿÿ¹º>H‰ß¾ è'Ðÿÿ¹º>H‰ß¾èÐÿÿL‰ÿè˜Îÿÿ‹²š5H‹5³š5H‰ßèó@ûÿL‹ $1ÉL‰þA¸H‰ßL‰Êè™>ûÿH‰ßèq;ûÿH‹3H�g�5H‰ßèïÚÿÿ‹ž5…À…aM…ö„Ë„L‹t$I‹m1ÿºH‹D$H�5D9I‹žðL‹`è´<ûÿH‰éL‰òH‰ÞH‰ÇM‰à1Àè.ýÿé|f„H‹T$0I‰$‰ÂI‹LøI‰LøI�L$L‰âHƒáøH)ÊI)ÑÂƒâøƒú‚Áúÿÿƒâø1À‰ÆƒÀI‹<1H‰<19Ðrïé¦úÿÿA¶Aˆ$ö„•úÿÿA·DþfA‰Dþé„úÿÿfDA€…Ìúÿÿ‹ ™5…É…�I‹E¿H‹Ÿœ5D‹x èÆ=ûÿD‹K™5¾H� ¾3HÇÂÿÿÿÿH‰ÇI‰Å1ÀèGûÿH‰ÞL‰ïƒ™5è}>ûÿH‰ÃH‹k™5H‰ÞH‹xèçDûÿH‰ßè�9ûÿ¾H‰ßèÂ?ûÿH‹C™51ÒH‰ß‹pH‹Cÿ��ƒ=nœ5ÇȘ5…bƒ=™5HÿƒçHƒÇè=ûÿH‰­˜5ºH�5÷2H‰ßèQÝÿÿHƒìL‰âH‰ßjA¹I‰ÅH� 2L�vv5H‰ÎèæÌÿÿƒ=û›5XZ…D‹%°˜5E…ä…gHƒìA¹H‰êH‰ßjL�6v5H� ¼1A¼H�51Çp˜5è‹ÌÿÿAZºA[L‰îH‰ßè7@ûÿ¿è]<ûÿfïÀ¹H‰ßI‰…°º>¾H‰ÅHÇ@è Íÿÿ¹º>H‰ß¾ èöÌÿÿH‹CH�uL‰ÿÿPHH‹CH�u¿ÿPHL‰ïè`Ëÿÿ‹z—5H‹5{—5H‰ßè»=ûÿM‰àé•¿èÆ;ûÿH‰W—5é¥þÿÿf.„ºL‰îH‰ßèp?ûÿ¿è–;ûÿL‰÷I‰…°H‰ÅHÇH‹CH‰îÿPH¹º>H‰ß¾èAÌÿÿL‰ïèÉÊÿÿ‹ã–5H‹5ä–5H‰ßè$=ûÿA¸1ÉH‰êL‰îH‰ßèÎ:ûÿH‰ßè¦7ûÿH‹3H�œ™5H‰ßè$×ÿÿ‹—5…À„ÖƒÀ‰ñ–5H‹D$XdH3%(…oHƒÄh[]A\A]A^A_Ãf.„¿H‹”™5è¿:ûÿD‹@–5¾H� Á0HÇÂÿÿÿÿI‰ÇH‰Ç1ÀèDûÿH‰ÞL‰ÿƒ–5èv;ûÿH‰ÃH‹d–5H‰ÞH‹xèàAûÿH‰ßèˆ6ûÿH‰ß¾è»<ûÿH‹<–51ÒH‰ß‹pH‹Cÿ��¿ÇÕ5è.:ûÿH‰ßºH�5ˆ.H‰°•5ècÚÿÿHƒìH‰êH‰ßjI‰ÇA¹I‰ÀH� /H�5x.èøÉÿÿYº^H‰ßL‰þè¦=ûÿ¿èÌ9ûÿ¹1öH‰ßI‰‡°º>HÇH‰$è†ÊÿÿL‰ÿèÉÿÿ‹(•5H‹5)•5H‰ßèi;ûÿL‹ $L‰þ1ÉA¸H‰ßL‰Êè9ûÿH‰ßèç5ûÿH‹3H�Ý—5H‰ßèeÕÿÿé øÿÿHƒìA¹H‰êH‰ßjL�Ïr5H� U.A¼ H�5®-è.ÉÿÿXL‰îZH‰ßº èÜ<ûÿ¿ è9ûÿ¹º>H‰ßI‰…°¾H‰ÅHÇÇ@è³Éÿÿ¹1öH‰ßº>èŸÉÿÿH‹CH�uL‰ÿÿPHé´üÿÿ@HƒìA¹H‰ÁH‰êjL�'r5H�5-H‰ßè�ÈÿÿAXAYéÒøÿÿ€M…ö…zúÿÿƒø…aýÿÿ‹ „“5…É„qúÿÿD‰ñL‰âH�5«21À¿è‡=ûÿéSúÿÿf�¿H‹-ô–5è8ûÿD‹¤“5¾H� .HÇÂÿÿÿÿH‰ÃH‰Ç1ÀèhAûÿH‰îH‰ßƒw“5èÖ8ûÿH‰ÃH‹Ä“5H‰ÞH‹xè@?ûÿH‰ßèè3ûÿ¾H‰ßè:ûÿH‹œ“51ÒH‰ß‹pH‹Cÿ��¿Ç#“5èŽ7ûÿºH�5±H‰ßH‰“5èÃ×ÿÿH�-H� Š,H‰ÅH‹C“5H‰ÎL�ép5‹xH�ô,…ÿH‰ßHDÐHƒìE1Éjè@ÇÿÿAXºAYH‰îH‰ßèì:ûÿ¾¿èí?ûÿ¹1öH‰ßH‰…°º>I‰ÄèÏÇÿÿH‰ïèWÆÿÿ‹q’5H‹5r’5H‰ßè²8ûÿA¸1ÉL‰âH‰îH‰ßè\6ûÿH‰ßè43ûÿH‹3H�*•5H‰ßè²Òÿÿ‹�’5é‘ûÿÿ€A‹A‰$A‹DüA‰DüéóÿÿèÕ4ûÿDóúAWAVAUI‰ýATUSHƒì8H‹?H‰T$H…ÿHD=’5H‰t$H‰=¼‘5è‡6ûÿH� 0C5¶H‰ž‘5„Òtf�öQŒuÆ_HƒÀ¶„ÒuìH‹\$H‰ßèÿ9ûÿ1öH‰ßè5;ûÿI‰ÆH…À„‹ {–5…É…¾L‰÷E1äè+8ûÿA€NG€L‰÷èŽßÿÿH‰D$ H‹D$H‹X`H…Û„•€H‹-A‘5H…ítr@1Òƒ}¸uH‹3H‹}èç2ûÿ…À”•ÀH‹mH…ít„ÀuÒ„ÒtûÿH‹}(H‹t$1ÉE1À1Òè±5ûÿH‹|$H‰D$(è0ûÿH‹D$(H…Àt€xBj„1fDI‹}H1ÒH‹t$H߀#”ÂèÕÿÿI‹UHL‰ àI‰ÄL‰|IƒÆE9u@~eH‹r�5K�¶HÁãH‹@H€| uÜI‹EHH‹}(E1À1ÉHØH‹L‹xH‰PL‰þ1Òè5ûÿH…À„ùþÿÿ€xBj…ïþÿÿH� pm5H9H(…Þþÿÿë‘L‹t$L‰÷èïàÿÿH‰ÃH‹D$ H…ÀtVH…ÛtQL‰ àH‰ÞL‰÷H‰ƒàèä0ûÿ…À„>L‰÷èÄ9ûÿH‰ß…À„f„H‹Ÿàè¤9ûÿH‰ßH…ÛuìHƒÄ8[]A\A]A^A_ÃD1Ò¾H‰ÇèÙ9ûÿ…À„$1íëDH‹3H‹}èŒ0ûÿ…ÀtQH‰îL‰ÿèí:ûÿH‰ÅH…ÀuÝH‹ƒØH‹+ºH�5.H‹1ÿè1ûÿHƒÄ8H‰êH‰ÞH‰Ç[1À]A\A]A^A_éwýÿI‰ïé“ýÿÿ1ÿºH�5Ò(èÌ0ûÿH‹t$H‰Ç1Àè}ýÿé½üÿÿH‹H�5Ê(º1ÿè¢0ûÿH‰ÞHƒÄ8H‰Ç1À[]A\A]A^A_éýÿH‹t$H�=¯(èýÿH‰ßéÞþÿÿH�=·-èòýÿé±þÿÿH� Îk5H9H(…ÄýÿÿéìýÿÿH�58-º1ÿè40ûÿH‹t$ëŽH‹ƒØH‹+ºH�5/-H‹éÿÿÿff.„@óúAWAVAUATUSH�ì¨H‹GH‰|$@H‰t$H‹8dH‹%(H‰”$˜1Òè2áÿÿH‹ãŒ5H…À„üH‹@`H‹=/�5H�¥&H�5yÌÿÿÇÏŒ5H‰D$Xè56ûÿHc=¾Œ5HÁçèU1ûÿH‹=ö�5H�l&H�5ÀÍÿÿH‰‘Œ5Ç�Œ5èú5ûÿHc5ƒŒ5H‹=tŒ5ºH� @Àÿÿèû-ûÿH‹LŒ5H‹PPH‰T$ H…Ò„f�‹PX…Ò~4H‹t$XE1äH‹L$ H�F0H;NtBH‹L$ ë HƒÀ(H9HØt.AƒÄA9ÔuíH‹D$ H‹H‰D$ H…À„ÇH‹à‹5ë¦fDH‹D$ H�xH‰=Œ5èË0ûÿ¶H‰é‹5H‰Á„Òt%f.„H�5Y=5öVŒuÆ_HƒÁ¶„ÒuåH‹†‹5D;bX�‚IcÔH‹t$XH‹|$ H�’HÁâH� H;y…_H�D0ÇD$4I‰ÏH‰D$(H�D$pH‰D$PD‰d$DI‹?¶è-.ûÿH�xèÔ/ûÿI‰ÆH‰D$€û@„ÛI‹/¾@H‰ïèƒ.ûÿ¾L‰÷I‰éH‰ÃH‹†‹5L�¼$H� Ù1HÇÂÿÿÿÿ‹@…ÀH�W`LEÀ1Àèâ8ûÿH‹D$E1À1É1ÒL‰öH‹x(èz0ûÿH…Àt €x„«H‹,‹5L� b$L�Á#HÇÂÿÿÿÿH� ”%¾‹hH�ó_…íLEÈHƒìAÿ71ÀL‹t$L‰÷èm8ûÿA\A]E1ÀH‹D$1É1ÒL‰öH‹x(è0ûÿH…À„¶@1Ò<”‰T$0H…Û…j<„bH‹™Š5L‹t$¾L�Å#M‹H� ß0HÇÂÿÿÿÿD‹XH�^_L‰÷E…ÛLEÀ1Àèã7ûÿL‰÷è»,ûÿH�xèb.ûÿL‰öH‰ÃH‰Çè´*ûÿ1ÿ€;@¾@@”ÇHßè-ûÿH‰D$HH…ÀtÆ@Lc-‰‰5H‹z‰5E1äL‰|$8M‰ïM‰åI‰Ä뀄 M�nM9ýs*O�t=H‰ßIÑîL‰õHÁåLåH‹uèË/ûÿ…ÀyÏM‰÷M9îwÖL‹|$8¶H‰ßIÑíL‰íHÁåLåH‹uè4/ûÿ…ÀyÐM‰ïM9õw×L‹|$HH‰ß»è¦(ûÿH‹|$èœ(ûÿ‹|$0…ÿ…ˆH‹Qˆ5ƒD$‹L$9HX~ H‹L$(IƒÇ(H‹HƒÁ(H‰L$(H;D$ „óüÿÿ‹D$4…ÀtH‹|$@èùÙÿÿH‹T$H‹0H‰ÇèÉÈÿÿH‹*ˆ5H‰Çè*(ûÿéðûÿÿDH…Û…H‹|$»è(ûÿƒã‹t$4…ö„ÙI‹¹H‹t$@H‹|$PH‰D$xI‹WH‰T$pI‹GH‰„$€A‹G …À‰„$ˆHÁ1ÉH…Òf‰Œ$�‰„$ŒA‹G$”„$’1Ò„Àˆ„$“”Â!ÚèØÌÿÿH‹T$H‹0H‰ÇèÈÿÿÇD$4éÛþÿÿH‹\$I‹7H‰ßè8(ûÿH‹D$E1À1É1ÒH‰ÞH‹x(èà,ûÿH…Àt €x„1H‹\$M‹¾1ÀL�& H� Ý-HÇÂÿÿÿÿH‰ßèõ4ûÿH‹D$E1À1É1ÒH‰ÞH‹x(è�,ûÿH…À„­€x”À¶À‰D$01Ûé)þÿÿ€L‹|$HH‹D$H‹uE1À1É1ÒH‹x(èJ,ûÿ€xH‰Å…êýÿÿH‰ß»è�&ûÿ1À€}”À‰D$0éØýÿÿfDH‹D$H‹uE1À1É1ÒL‹|$8H‹x(èú+ûÿ€xH‰Å…ýÿÿë®ÇD$0H…Û„ÿûÿÿH‹|$è-&ûÿé˜ýÿÿ„H‹|$@èfÔÿÿH‹T$H‹0H‰Çè–Æÿÿéþÿÿ�H‹|$»èñ%ûÿéçýÿÿ@<@„øH‰ßè¨(ûÿA¹@1ÉL‰|$HH‰D$`M‰çL‹t$8I‰ÌfD‰ ë@„AM�eM9üs)O�,I‹vØL‰ÿè¡ûÿ…À…²HcÃH�€M�lÄØ‹Ëu5E‹MAƒùÿ„éA‹Nƒùÿ„ÜA9ɄӅÀ…ÛA‰MA¶F AE A¶F!AE!A¶F"AE"A¶F#AE#M…ÿtL‰ÿè¶ûÿI‹~H…ÿtè¨ûÿI‹~L‹-eu5H…ÿt è“ûÿL‹-Tu5ƒÅIƒÆ(A;m@}A…í…7ÿÿÿ9ët%HcÃóAoH�€I�ÄóAoNHI‹N H‰H ƒÃƒÅIƒÆ(A;m@|¿M‰ïHcûL‹,$HÁçA‰_@è§ûÿH‰€u5H‹át5Hcx@HÁçèŒûÿH‹-Ít51öH‰ÇH‰Qu5HcU@HÁâè<ûÿ‹E@Çu5Çu5Çu5Ç u5Çÿt5…ÀŽE1öé…€H‹-at5ƒât5H]H€{"uƒÍt5H‹P(H‹Ît5J�ðA€ÿtH‹RH‰‹Cƒøÿt#;�t5~‰‡t5;…t5}‰}t5ƒ‚t5L‰çIƒÆè.ûÿ‹E@D9ðŽtH‹EHK�¶HÁãH‹lH‰ïèy@üÿH‰ïèÑûÿH�xèxûÿI‰ÄH‹Vt5‹H…É„+€}@„!AÆ$_I�|$H‰îè§ûÿL‰çè�ûÿH‰Çè'@üÿI‹}(1É1ÒA¸L‰æèAûÿH…À„˜D¶xA�Wý�âý„ãþÿÿ¾.H‰ïèÆûÿH…À„ÍH‹-.s5ƒ¯s5H]H€{"uƒšs5‹CÆC$ƒøÿ…áþÿÿéÿþÿÿf„…ÒuL‹=ír5A‹G@…À…Ãúÿÿ‹Ór5…Û… úÿÿéùÿÿfD…ÒuãD‹ ±r5A‹G@E…É…¢úÿÿA‹w@é5ûÿÿ€ºH�5¤I1ÿèeûÿH‰ÞH‰Ç1ÀèèóüÿH‹-yr5‹E@…Àu A¶E¨„cH‹EH…À„hH‰Ér5‹Ër5‹=Ír5…Òt‹«r59ú�»Ç�r5¸‰=Žr5)ǃlj=Ÿr5HcÿHÁçè¿ûÿ‹�r5H‰br5…Ò~ƒêH�T�fDÇÿÿÿÿHƒÀH9ÂuñL‹=Òq5D‹-?r51íA‹G@D‰ë…ÀŽ2M‹wHD‰,$E1ä1íM‰õéÔDD‹FAƒøÿ„ƒE‰ÆD+4$H‹ ìq5D‰D$McöIÁæLñHcƒøÿt[H�€º1ÿD‰L$M‹|ÅL‹.H�5®è!ûÿD‹D$L‰ùH‰ÇL‰ê1ÀD‰Æè™òüÿ‹Ÿq5D‹L$H‹ ‡q5L‹=q5‰$LñD‰ M‹oHƒÅLëH‹{H…ÿtdèÿûÿÅ€{$t H‹{èîûÿ�lA‹G@IƒÄD9àŽIH‹Zq5K�¤E‰áHÁãJƒ<àI�t…ÿÿÿ€~$…ÿÿÿM‹oHLëë§@H‹;ë—D‰ë„D‹%ñp5A�üÿÿ�ûÿÿ~&1ÿH�5÷ºè5ûÿA9܉ÞAMôH‰Ç1Àè²ñüÿH‹=»p5‹Áp5è@ûÿ‹¾p5¿�T �S�TUHcÒH�DH‰Ëp5èV§ÿÿH‹=çp5èšôÿÿH‹D$(dH3%(…gHƒÄ8[]A\A]A^A_ÀL‹ $H‹=Ío5E1À1Ò¹ÿÿÿÿL‰æÇD$$è ÿÿD‹T$$E…Ò…U÷ÿÿH‹U‹RÁêƒòƒâˆP#é=÷ÿÿDM‰îD‹,$…ÀŽæþÿÿIcÍ¿I�VD‰ëL‹ óo5L‹Äo51ÀH)ÏëDƒ:ÿt+HƒÀHƒÂ(A9G@ޱþÿÿIƒ<ÁA‰Âu߀z tÞƒ:ÿuÙ@‰ÙD)éHcÉI�4ˆƒ>ÿtHcËHùI� ˆDH‰ÎHƒÁƒÃƒyüÿuðD‰‰ëž�…À…ÀA‹Nƒùÿ… ùÿÿéùÿÿfD¾.H‰ïèCûÿH…À…}ûÿÿºH�5Ö1ÿèwûÿH‰îH‰Ç1ÀèúïüÿH‹-‹n5é„úÿÿfDH‰îL‰çè�ûÿéñúÿÿ„ºH�5$A€ÿt°H�5G1ÿè ûÿH‰îA¶×¹H‰Ç1ÀèšïüÿH‹-+n5é$úÿÿfDM‹}ºH�5°1ÿèáûÿH‰ÇL‰þ1ÀèdïüÿM‹>éÿÿÿ@H‹D$H‹¶H‰Vn5„É„…ûÿÿH‰Ç1öA¸I¹ f„ƒé/HƒÀ€ù-wL‰ÊHÓêH÷ÒƒâHDøADð¶„ÉuÙ@„ö„7ûÿÿH‰=ùm5é+ûÿÿ@‰Ñ‹äm5)ù‰×ƒÁ9Á�Cûÿÿ‰ Ïm5‰Èé6ûÿÿ@I‹HH� =¡ÿÿº(èãûÿL‹=4m5éúÿÿ€èûÿÿH‰m5é^òÿÿ€H‹ m51ÿºH�5+H‹@HN‹4àèÆûÿH‰ÇL‰ö1ÀèIîüÿé;õÿÿ@º1ÿM‹}D‰L$H�5!‰L$è�ûÿD‹L$‹L$L‰þH‰Ç1ÀD‰ÊèîüÿM‹>é·ýÿÿ€1ÿ1Ûé�÷ÿÿèšûÿf.„óúSH‹GH‰ûH‹8è¬ÀÿÿH‰ßèôðÿÿ1ÿè�£ÿÿH‹=.m5[éàðÿÿóúAWI‰÷AVAUATUSH‰ûHƒì8H‹GH‰t$H‹8ègÀÿÿH‰ßè¯ðÿÿH‹ƒL‰þH‰ßH‹€H‰äl5èϤÿÿH‹ l5H…Ò…/H‹=˜l5è“ûÿ‹ al5H‹†l51öI‰ÆH‰Šl5H�@(D‹-;l5�,�L‰÷H‰D$HcíF�$­EíHÅMcäMcíH‰,$Iìè ûÿH‹ƒMå‹°Œ…ö……H‹fk5HcxhH‹Cƒÿÿt/I�vÿP`H‹l5H�p H‹@k5HcxlH‹CÿP`H‹CL‹5òk5H‹ûk5I�v H‹RhH‹z(L‰êH+=õk5L)òH×ÿPHH‹5uk5L‰ïE1íèº ûÿHc=_k5L�pH‹¨k5H�pH‹CÿPHH‹–k5Hc=Sk5H�pH‹CÿPHH‹}k5Hc=2k5H�pH‹CÿPHH‹tk5H‹]k5H‹L$H‹RhH�pH)ÁH‹CH‹z(H+=^k5HÏÿPHH‹Ak5H‹*k5H‹ $H‹RhH�p H)ÁH‹CH‹z(H+=,k5HÏÿPHH‹k5H‹øj5L‰áH‹RhH)ÁH�p$H‹CH‹z(H+=ûj5HÏÿPHH‹j5‹J@…Éqéâf�AÆ_H‹@HI�H‹t(èú ûÿH‹D$1É1ÒA¸L‰þH‹x(èŸûÿH…Àt€xuH‹P0H‹Ij5J‰èL‰ÿIƒÅèÙ ûÿH‹ši5‹B@D9èŽÖK�L­H‹BHH�,ÍH‹|(è{ ûÿH�xè"ûÿI‰ÇH‹j5‹@…ÀH‹Ti5t"H‹PHH‹t*€>@…HÿÿÿL‰ÿèP ûÿéQÿÿÿH‹@HL‰ÿH‹t(è7 ûÿé8ÿÿÿf�H‹D$¶ƒà<uH‹ƒÇ€€H‹Éi5H‹²i5H‰�°H‹¬i5H‹•i5H‰�°HƒÄ8[]A\A]A^A_À…À~œ1íÇD$é6D€x$„NH‹gi5D‰î+5úh5ÁæH‹@hHcöHt$H‹x(L‰ðH+=Qi5H+*i5HÇH‹CÿPHH‹Qh5L‰÷H‹BHH‰T$ J‹t8èS ûÿH‹T$ L‰þHrHH‰T$(H‹~H‰t$ è$ ûÿH‹t$ H‹T$(M�t€~"…‡H‹FH…ÀHDH‹4$H‰D$ H‹Àh5H‹@hH‹x(L‰ðH+=¾h5H+—h5HÇH‹CÿPHH‹t$ L‰÷Hƒ$è{ ûÿD+- h5L‰æIƒÄL�pH‹CIcýÿP`H‹�g5‹L$H‹BHB‰L8�A‰D$HƒÅ9j@ŽWþÿÿL�|­H‹BHIÁçLøD‹hAƒýÿ…±þÿÿH‹Jg5ëÌH‹Ñg5H‹èH…ÀtçH‹Ég5D‰î+5œg5ÁæH‹<êH+=h5HcöHx`H‹@hHt$Hx(H‹CÿPHH‹øf5H‹rHLþéßþÿÿ@H‹C1ÿL‹¸�è~ûÿI�vH‰ÇAÿ×L‹5�g5éSûÿÿ„H‹5�g5H‹=Šg5è-ûÿèx.üÿ1ÿ¾è<0üÿèçÐüÿ¿èÍüÿé™úÿÿ„óúUH‰õSH‰ûHƒìH‹GH‹8褺ÿÿH‰ßèìêÿÿH‹ƒH‰îH‰ßH‹€H‰!g5è ŸÿÿH‹Ýf5H…Òu H‹ñf5H‹Úf5H‰�°HƒÄ[]Ã@H‹5Ñf5H‹=Úf5è}ûÿèÈ-üÿ1ÿ¾èŒ/üÿè7Ðüÿ¿èüÿë«ff.„óú¶WD1Àƒâ€útÃDH‹—‹‚€…Àté‹’€1À…Ò•ÀÃf„óúH¸#Eg‰«ÍïHÇGH‰H¸þܺ˜vT2H‰GÇGÃ�óúHƒìH‰ðH‹WH‹dH‹4%(H‰t$1öH‰H‰PH‹T$dH3%(uHƒÄÃè-ûÿff.„f�óúH‰ðAWHƒàüAVAUATUSH‰ûD‹ZH‰×H� ‹D‹R‰D$è‹B H‰T$ø‰D$à‰ðB‰BH‰òHÁê H‰L$ðH9ðWH9˃îE‰×�D‹3‹|$à‹D$è‹sD‹C D‹SA�”x¤j׉ø�Œ>V·Çè‰t$¼D1ø‹kD‹kD‰T$ÌD!ØD‹c$D‰D$Ä1øC�¼îνÁD‹C,ÐD‰ÚD‰d$ÔÁÀD1úD‰D$ÜDØ!ÂA‰ÁD1úE1ÙÊ‹KÁ ÂB�´9Ûp $‰L$ÀD‰É!ÑA‰ÁD1ÙA1ÑñD‰ÎD‹KÁÉÑD‰L$È!Î1ÆþA�¼¯|õ‰ÐD‹K<ÁÎ 1ÈÎ!ð1ÐøA�¼*ƇG‰ÊA‰êÁÀ1òD‰T$äð!Â1Êú�¼ F0¨‰õ1ÅÁ ‰é‰Å!Ñ1Õ1ñùA�¼5•Fý‰î‹k ÁÉщl$Ð!Î1Æþ�¼ؘ€i‰Ð‹k0ÁÎ 1ÈÎ!ð1ÐøA�¼¯÷D‹‰ÊD‹c8ÁÀ1òð!Â1Êú‹{(Á ‰|$Ø�¼±[ÿÿ‰ñÂ1Á!Ñ1ñùA�¼0¾×\‰‰ÆD‹C4ÁÉ1ÖHƒÃ@Ñ!Î1Æþ�¼"�k‰ÐÁÎ 1ÈÎ!ð1ÐøA�¼“q˜ý‰ÊÁÀ1òð!Â1ÊúA�¼ ŽCy¦‰ñÁ 1ÁÂ!Ñ1ñùA�¼1!´I‰ÆÁÉ1ÖÑ!Î1Æþ‹|$¼ÁÎ Î�¼b%ö‰È1ð!Ð1ÈøA�¼@³@À‰òÁÀð1Â!Ê1òú‹|$ÜÁ Â�¼QZ^&‰Á1Ñ!ñ1ÁùA�¼6ªÇ¶é‰ÖÁÁÑ1Î!Æ1Öþ‹|$ÌÁÎ Î�¼]/Ö‰È1ð!Ð1Èø‹|$ØÁÀð�¼SD‰ò1Â!Ê1òúA�¼ �æ¡Ø‰ÁÁ Â1Ñ!ñ1Áù‹|$ÈD‹T$ÔÁÁÑ�¼7ÈûÓç‰Ö1Î!Æ1ÖþA�¼æÍá!‰ÈD‹T$ÐÁÎ Î1ð!Ð1ÈøA�¼Ö7ÉòÁÀð1Â!Ê1òú‹|$ÄÁ Â�¼‡ Õô‰Á1Ñ!ñA�´2íZEA‰Ò1ÁùÁÁÑA1ÊD‰×!Ç1×÷A�´é㩉ÈÁÏ Ï1øD�”=ŠL*�!ÐD‰T$ì1Èð‹t$ÀÁÀø�´ø£ïü‰ú1Â!ÊA�Œ Ùog1úò‰ÆÁ Â1Ö!þ1ÆΉÑÁÆÖ1ñA‰ÊA!ÂD‰×D‹T$Ì1×|$ìÁÏ A�„B9úÿ÷1ùÁ‹D$ÐÁÁ�„�öq‡‰òù1ú1Ê‹D$ÜÁ �„0"a�m‰þÊ1ÎA�¼< 8åý1ÖƉÈÁÆ1ÐÖ1ðA‰òø‹|$¼ÁÈ �¼D꾤‰Ñð1ñA1ÂA�´5`K»ö1Áù‹|$ÈÁÁÁ�”©ÏÞKD‰×1Ï׉ÂÁÇ 1ÊÏ1úò‹t$ØÁÂ�„p¼¿¾‰Îú1þ1ÖÆA�„Æ~›(‰ùÁÎ 1ÑA�¼>ú'¡êÖ1ñA‰òÁ‰ÐÁÁ1ðñ1ÈA1Êø‹|$ÄÁÀ È�”…0ïÔD‰×1Ç׋T$äÁÇ�”2ˆ‰ÎÇ1Æ1þÖ‹T$ÔÁÎ �Œ 9ÐÔÙ‰Âþ1ú�„å™ÛæA‰ò1òʉùÁÂò1ñ1ÑA1ÒÁA�„9ø|¢D‰×D‹T$ÌÁÁ Ñ1ÏÇ‹D$ÀÁÇ�´0eV¬Ä‰ÐÏ1È1øðA�´D")ô‰ÊD‹t$¼ÁÈ ÷Òø Â1úòA�´ —ÿ*CA‰ýÁÂA÷ÕA�¼<§#”«ÂD‰é ÑA‰Õ1ÁA÷Õñ‰ÆÁÁ ÷ÖÑ ÎA‰Ì1ÖA÷ÔþA�¼9 “üD‰èD‹T$äÁÆÎ ð1Èø�¼ÃY[eD‰â‹l$ÄÁÈ ð Â1òú�¼ ’Ì �‰õÁÂ÷Õ‰é щÕ1Á÷Õù‹|$ØÁÁ �¼7}ôïÿ‰ÆÑ÷Ö Î1ÖþA�¼Ñ]„…‰èD‹t$ÐÁƉÍÎ÷Õ ð1ÈøA�¼O~¨o‰ê‰õÁÈ ÷ÕD‹t$Üð Â1òúA�¼ àæ,þ‰éD‹L$ÈÁ Ñ1ÁùA�¼2C£‰ÆD‹T$ÔÁÁ ÷ÖA�„¡NA‰ÐÑA÷Ð Î1ÖA�”‚~S÷A‰ÉþD‰ÇA÷ÑÁÆÎ ÷1ÏA�Œ5ò:½ÇD‰ÈÁÏ ÷ ø1ðЉòÁÀ÷Òø Â1úÊ‹L$ÀÁ �´1»Ò×*‰ùÂ÷ÑA�¼:‘Ó†ë Ñ1Áñ‰ÆÁÁ÷ÖÑ Î1ÖþÁÎ ÎD$èAÏAóT$àH9\$ð‡ùÿÿE‰úH‹D$ø‹\$艋\$àD‰XD‰P‰X []A\A]A^A_Ã�óúAUATI‰ôUSH‰ûHƒì‹G‰ÂW‰WsƒGƒø7vn¾x‰õ)ÅA‰ÅH‰êH�5PJ�|+è¦ûÿ‹SJ�t-H�{�ÕÁê‰D3‹CÁà ÐH‰Ú‰D3 HƒÆèøÿÿHƒÄL‰æH‰ß[]A\A]é¯÷ÿÿ€¾8‰õ)Åë�ff.„f�óúAWAVAUI‰õATI‰ÔUSH‰ûHƒìD‹zE…ÿ…Iƒý@†ÚöĵI�E¿I�l$HÁèL�pI‰ÇIÁæIÞf.„óoL‰â¾@H‰ïHƒÃ@EóoKÐMóoSàU óo[ð]0èI÷ÿÿL9óuÄL‰øH÷ØHÁàM�lÀD‰èAƒýƒ°AöÅ…ç…ÀtA¶ˆU¨…èE‰l$HƒÄ[]A\A]A^A_ÀL‰íH‰ßL‰âAƒå?HƒåÀH‰îHëèÔöÿÿM…í…¸HƒÄ[]A\A]A^A_Ã@E‰þ½€L)õJ�|2H9õHGîH‰ÞH‰êIîèóûÿAl$Iƒþ@whHëI)íéÅþÿÿDI‹H�MHƒáøH‰ED‰èI‹TøH‰TøH)ÍA�D-I)îƒàøƒø‚:ÿÿÿƒàø‰Å1À‰ÂƒÀI‹4H‰49èrïéÿÿÿ„L‰ñI�D$L‰âAƒæ?HƒáÀH‰ÇH‰$H‰ÎH‰L$èùõÿÿH‹L$AƒþH‹$I�T sMAöÆ…ŽE…öt&¶ AˆL$AöÆtE‰öB·T2þfB‰T0þf„A�/ƒà?A‰D$éÿÿÿ€H‹ I‰L$D‰ñH‹t øH‰tøI�t$$HƒæøH)ðAÆH)ÂAƒæøAƒþr·Aƒæø1À‰ÁƒÀH‹< H‰<D9ðrîë�‹ E‰öA‰L$B‹T2üB‰T0üë‡A‹‰UA‹Tü‰TüéþÿÿA·Tþf‰TþéþÿÿI�l$I‰ÞéÑýÿÿfDóúAUI‰õATI‰üUH‰ÕSH�ì¸dH‹%(H‰„$¨1ÀH‰ãH‰ßèHôÿÿH‰ÚL‰îL‰çèÚüÿÿH‰îH‰ßèüÿÿH‹Œ$¨dH3 %(uH�ĸ[]A\A]Ãè©üúÿf„óúAWAVAUATUSH�ìHƒ $H�ìøA½dH‹%(H‰„$è1ÀI‰æI‰üI‰÷L‰÷H�¬$ è­óÿÿD1ÛfDL‰êH�|L‰á¾H)ÚèûúÿHÃH�ûÿwH…Àu×H…ÀtL‰ò¾H‰ïèâóÿÿë¸L‰çè8úúÿA‰Ä…Àu8H…Ûu;L‰þL‰÷è1ûÿÿH‹Œ$èdH3 %(D‰àu*H�Äø[]A\A]A^A_ÃA¼ëÐL‰òH‰ÞH‰ïè£ûÿÿëµèœûúÿf.„f�óúH¸#Eg‰«ÍïHÇGH‰H¸þܺ˜vT2H‰G¸ðáÒÃH‰GÃff.„@óú‹H‰ðʉ‹WʉV‹WʉV‹W ʉV ‹WʉVÃf�óúAW‰ñI‰òAVI‰þIÁê AUATUSH‰ÓH�ìÈKD‹C H‰|$0D‹KH‰T$XdH‹%(H‰„$¸1ÀH‰ðHƒàüHøH9ñ‹{I‰ÃH‰D$P‹‹R‰KDSM9Þƒ¶H�\$pD‰L$HA‰ÂD‰D$D‰T$<‰D$LH‰\$hH�œ$°‰|$@H‰\$`‰ûD‰Çf�H‹L$hH‹D$0L‹D$`�‹0HƒÁHƒÀΉqüL9ÁuìD‹\$pD‰ÖD‹|$tÁÆ‹¬$€HƒD$0@C�Œ ™y‚ZD‹L$xD‹¬$„ñ‰ÞD‹¤$�1þ‰ð!ÐÁÊA‰Ð1øA1ØÈA�Œ?™y‚Z‰×E!ÐAÁÊA1ØD1×D‰ÖAȉÁ!ÇÁÈÁÁ1×1ÆAÈA�Œ™y‚Z‹\$|ÏD‰ÁD!ÆAÁÈÁÁD1Ö�”™y‚ZωÁÖD1Á‰úÁÂ!ùÖ1ÁB�”™y‚ZщòÁÏA�„™y‚ZÁÂA‰úÑD‰Â1úA‰Î!òÁÎD1ÂA1òAÁÆÂD‰ÐD‹”$ŒDòD‹´$ˆ!ÈÁÉ1øA�¼:™y‚ZD‹”$”G�„™y‚ZDÀA‰ÐAÁÀDÀA‰ðA1ÈA!ÐÁÊA1ðA�´4™y‚ZAø‰ÇÁÇAø‰Ï1×!ÇÁÈ1ÏA�Œ ™y‚ZD‹”$˜÷D‰ÆÁÆ÷‰Ö1ÆD!ÆAÁÈ1ÖA�”™y‚ZD‹”$œΉùÁÁΉÁD1Á!ùÁÏ1ÁA�„™y‚ZщòÁÂÑD‰Â1úA‰Ê!òAÁÂD1ÂÁÎÂDÒA‰úA1òD‰ÐD‹”$ !ÈÁÉ1øG�„™y‚ZD‹”$¤DÀA‰ÐAÁÀA�¼:™y‚ZD‹”$¨DÀA‰ðA1ÈA!ÐA1ðA�´2™y‚ZD‹”$¬Aø‰ÇÁÇÁÊE1ËA1ßAø‰ÏE1ãD3œ$¤1×AÑÃ!ÇÁÈ1ÏA�Œ ™y‚ZD‹”$”÷D‰ÆÁÆE1úD3”$¨÷‰ÖAÑÂ1ÆD!ÆAÁÈ1ÖA�”™y‚ZΉùÁÁΉÁD1Á!ùÁÏ1ÁA�„™y‚ZщòÁÂÑD‰Â1úA‰ÏA1éD3Œ$˜!òAÁÇD3Œ$¬D1ëÁÎD1ÂAÑÁÂG�„™y‚ZDúA‰ÿA1÷D‰øA‰÷!ÈÁÉ1øA1ÏDÀA‰ÐA!×ÁÊAÁÀA1÷DÀD‹„$œA1؉ËE1ØAÑÀA�¼8™y‚ZAÿ‰ÇÁÇAÿ‰ï‰ÕD1÷3¼$ D1×ÑÇ1Ó1Ã�´7¡ëÙnÁÈÞD‰û1ÅÁÃD1ýAÁÏó‹´$ŒD1î3´$¤E‰ýD1ÎÑÆ�Œ¡ëÙné‰ÝÁÅÍD‰ñA‰ÆD1á3Œ$¨E1þD1ÁA1ÞÁËÑÁA1Ý�”¡ëÙnDòA‰îAÁÆAÖ‹”$Œ3”$”3”$¬1úÑÂA1íD3¤$˜ÁÍ�„¡ëÙnDèE‰õAÁÅAÅD‰àA‰ÜD1ØA1ì1ðE1ôAÁÎÑÀF�¼8¡ëÙnEüE‰ïAÁÇEüD‹¼$”D‰T$ D3¼$œE1×A1ÏAÑÇE‰úA‰ïE1÷A�œ¡ëÙnD‰T$E1ïAÁÍDûE‰çAÁÇAß‹œ$˜3œ$ D1Ë1ÓÑÃA‰ÚD‰óD1ëA�¬*¡ëÙnD‰T$D1ãëD‰ýÁÅAÁÌ달$œ3¬$¤D1Å1ÅÑÅA‰êD‰íD1åG�´2¡ëÙnD‰T$D1ýAÁÏDõA‰ÞAÁÆA$ 3¬$¨1ý3l$ÑÅA‰êD‰åD1ýG�¬*¡ëÙnD‰T$1ÝÁËDíE‰õAÁÅA틬$¤3¬$¬1õ3l$ÑÅA‰êD‰ý1ÝG�¤"¡ëÙnD‰T$ D1õDåE‰ìAÁÄA심$¨AÁÎD1ÝE1Ë1Í3l$A1ÃD3\$ ÑÅAÑÃA‰ê‰ÝD1õG�¼:¡ëÙnD‰T$D1íAÁÍDýE‰çAÁÇDýD‹|$ D3¼$¬A1×D3|$AÑÇE‰úE‰÷E1ïA�œ¡ëÙnD‰T$D‹T$ E1çAÁÌDûA‰ïE1ÂAÁÇDûE‰ßE‰ëE1ãG�´7¡ëÙnA1ëÁÍEóA‰ÞAÁÆEóD3T$D3T$A1ùE‰ÖE‰âD3L$D3L$AÑÆA1êAÑÁA1ðA1ÚG�¬.¡ëÙnÁË1ÏEêE‰ÝD3D$3|$AÁÅE1øD1÷EêE‰ÍA‰éAÑÀA1ÙG�¤%¡ëÙnE1ÙAÁËEáE‰ÔAÁÄEáE‰ÄA‰ØE1ØA�¬,¡ëÙnE1ÐAÁÊAèD‰ÍÁÅAèÑÇ1Ö3t$ ‰ýD‰ßD1î1ÁD1×�œ¡ëÙnÑÆ3L$D1ÏAÁÉD1áßD‰ÃÑÁÁÃ߉óD‰ÖD1ÎF�œ¡ëÙn‰\$ D1ÆAÁÈDÞA‰ûAÁÃDÞA‰ËD‰ÉD1ÁG�”¡ëÙn‰ó1ùÁÃDÑÁÏÙ‹\$1Ú3T$1êÑÂA‰ÒD‰Â1úD‰T$G�Œ ¡ëÙnD‹T$1òÁÎDÊA‰ÉD1ÐAÁÁD1ø3D$ DÊÑÀA‰ÑF�„ܼ�‰D$$AÁÁEÈA‰ÉA ñD‰ÈA‰ÉÁÉA!ñ!øD ÈA‰ÑAÀ‹D$A ÉA!ñ1ØD1ðD1؉ÉÐÁÊÑÃ!ÈD ȉ\$�¼;ܼ�‹\$øD‰ÇD1ÓÁÇÇD1ë3\$ÑÃA‰ùAÁÁ�´3ܼ�DÎE‰ÁA ÑD‰ÈE‰ÁAÁÈA!Ñ!ÈD ÈA‰ùÆ‹D$3D$ E ÁD1à3D$$A!ÑA‰Â‰øÁÏAÑÂD!ÀD ÈA�Œ ܼ�A‰ñȉñA!ùÁÁÁ‹D$3D$1è3D$ÑÀ‰D$(�”ܼ�‰ÈÁÀ‰ð øD!ÀD ÈA‰ÉÂÁ΋D$ 3D$3D$ A ñ1ØA!ùÑÀ‰D$‰ÈÁÉ!ðD ÈD‹L$G�„ܼ�DÀA‰ÐAÁÀAÀ‹D$E‰ÁD1øAÁÁD1ØD1ÐÑÀ�¼8ܼ�‰D$,DÏA‰ÑA ÉD‰ÈA‰ÑÁÊA!É!ðD ÈE‰ÁÇ‹D$A ÑA!ÉD1ð3D$3D$(ÑÀ‰D$D‰À!ÐD ÈD‹L$E1ïD3|$$D3|$AÁÈE1æA1íA�´1ܼ�AÑÇD3t$D3t$,ð‰þA�Œܼ�AÑÆÁÆÆA‰ñAÁÁDÉA‰ùE ÁD‰ÈA‰ùÁÏE!Á!ÐA�”ܼ�D ÈA‰ñÁA ù‰ðÁÎE!Á!øD ÈE‰éÐA1Ù‰ÊD3L$ÁÂE‰ÍD‹L$ ÂAÑÅD‰l$8G�„ܼ�A‰ÕAÁÅEèA‰ÍA õD‰èA‰ÍÁÉA!õ!øD èF�,E‰à‰ÐE1È!ÈE1ÐE1øAÑÀE‰ÄA‰ÐÁÊA ÈD‰d$ E�¤<ܼ�D‰ïA!ðÁÇD ÀDàA‰ü‰ïD1ß3|$(AÄD1÷E‰àÑÇAÁÀ�´7ܼ�‰|$DÆE‰èA ÐD‰ÀE‰èA!Ð!ÈD ÀE‰è�<0‹t$AÁÈD1Î3t$3t$8E‰áÑÆE!ÁA‰õD‰æD‰ÈD ÆE�Œ ܼ�‰ù!ÖÁÁ ðDÈA‰ÉD‰áÁÉAÁ‰ÍD‰ÙD‹\$$D‰ÎÁÆD1Ù3L$,3L$ ÑÁ�”ܼ�‰L$$ò‰þ î‰ð‰þÁÏ!îD!À ðD‰Î� ‹T$3T$!þ3T$3T$‰ðÑÂA‰ÔD‰Ê úC�´ܼ�A‰È!êAÁÀ ÐðD‰ÆÆD‰ØAÁÉ1ØA‰óD1øAÁÃD1èA‰ÀAÑÀA�”(ܼ�D‰D$A‰È‹l$(DÚA‰ËE!ÈÁÉE Ë1ë3\$8D‰ØD1ã!øD ÀD�‹D$‰ò ÊD1ÐD!ÊD1ð3D$$ÑÀA‰Ã‰ðÁÎ!ÈA�¼;ܼ�D‰\$ ÐøD‰ÇÁÇlj؋\$ÑÀB�”ܼ�A‰ù‰D$AÁÁDÊE‰ÁA ñD‰ÈE‰Á!ÈA!ñAÁÈA1ÚD ÈD3T$ D3T$D� ‰úAÑÂD ÂD‰T$‰Ð‰úÁÏD!Â!ðA‰Ó‹T$,A ÃA�„ ܼ�D‰ÉE‰ÂAÉè‹l$ÁÁ1ÐAËA1ú1è3D$ E1ÊAÁɉÁÑÁ�„1ÖÁbÊD‰Þ‰L$‰ùÁÆDÐD1ÉA‰òA‰؋\$1ØD1è3D$‰Æ‰ÈÑÆD1ØF�„ÖÁbʉñD‰ÎDÀE‰ÐAÁˉL$AÁÀD1ÞAÀ‰ÐD1ø3D$$3D$‰Â‰ðÑÂD1ÐAÁÊ�¼:ÖÁbʉT$øD‰ÇÁÇljØD‰ÛD1ðD1ÓD1à3D$‰Þ‹\$8‰ÂD1ÆAÁÈÑÂA1ßD3|$B�„ ÖÁbÊA‰ù‰T$(AÁÁðD‰ÎE‰ÑÆD‰øE1Á1ÈD‰ÉA‰ñÑÀ1ùAÁÁB�”ÖÁbÊD‹\$ ‰D$pÊD‰ÉE‰ÁÑÁÏE1ÞD3t$ A1ùD3t$1ëE1ëAÑÆD‰Ê1òE‰÷ÁÎD‰t$tG�ŒÖÁbÊA‰ÎD‰|$ DÊD‹L$AÁÆDòA‰î‰õA1Ù‰ûD3L$(AÑÁ1ó1ËG�„ÖÁbÊÁÉD‰L$xA؉Ó1ÍA‰ÊÁÃ1ÕÁÊDÃD‹D$E1ØD‹\$$A1ÀAÑÀA�¼8ÖÁbÊD‰D$|ï‰ÝÁÅýD‰÷A‰ÖD1ß3|$A1ÒE1åD1ÿE‰×A‰êÑÇA1ßAÁÂ�´7ÖÁbÊÁˉ¼$€DþE‰×A1ÞA÷‹t$A1îÁÍD1îA‰ÝD1ÎA1íÑÆE1ý�ŒÖÁbʉ´$„DñE‰þAÁÏAÁÆAÎD‰ÙD‹\$D1Ù3L$D1ÁÑÁ�”ÖÁbʉŒ$ˆD3d$ DêE‰õAÁÅAÕ‹T$(D1âA‰ì1úE1üÑÂE1ôAÁÎD�”ÖÁbÊ‹\$‰”$ŒEâE‰ìD1ÛE‰ûAÁÄ1ÃE1óEÔ1óE‰ÚÑÃE1êAÁÍD�œ+ÖÁbÊD‰å‰œ$�EÚÁÅD‹\$ D3\$D3\$ AêD‰õA1ËD1íAÑÃD1åAÁÌG�¼;ÖÁbÊD‰œ$”DýE‰×AÁÇDýD‹|$D3|$E1ùE‰ïA1ÑAÑÁE1çE1×G�´1ÖÁbÊD‰Œ$˜EþA‰ïAÁÇEþE‰×D‹T$D3T$AÁÏE1ÐE‰âD1ÃE1úÑÃE‰ÐE‰òA1èF�¬+ÖÁbÊAÁ‰œ$œEÅD‹D$D3D$ÁÍD1ÇEÕE‰úD‹D$(A1ûA1êAÑÃE1òAÁÎC�¼#ÖÁbÊD‰œ$ AúD‰ïÁÇAú‹|$D1Ç1þA1ñ‰îAÑÁD1öC�¼9ÖÁbÊD1îD‰Œ$¤þD‰×3D$AÁÍÁÇ1ÈþD‰÷1ÃD1ïÑÉø�Œ+ÖÁbʉœ$¨‹\$LD1ÐAÁÊȉñÁÁÁ‹D$ L$ $$ =syntax errorError: discardingError: poppingmemory exhaustedCleanup: discarding lookaheadCleanup: poppingPT_GNU_EH_FRAMEPT_NULLPT_LOADPT_DYNAMICPT_INTERPPT_NOTEPT_SHLIBPT_PHDRPT_TLS$end$undefinedINTLNAMEPLUSEQMINUSEQMULTEQDIVEQ'='LSHIFTEQRSHIFTEQANDEQOREQ'?'':'ORORANDAND'|''^''&''<''>'GELSHIFTRSHIFT'+''-''*''/''%'UNARY'('ALIGN_KBLOCKBINDSQUADLONGSHORTBYTESECTIONSINSERT_KAFTERBEFOREDATA_SEGMENT_ALIGNDATA_SEGMENT_RELRO_ENDDATA_SEGMENT_ENDSORT_BY_NAMESORT_BY_ALIGNMENTSORT_NONESORT_BY_INIT_PRIORITY'{''}'SIZEOF_HEADERSOUTPUT_FORMATFORCE_COMMON_ALLOCATIONOUTPUT_ARCHINHIBIT_COMMON_ALLOCATIONFORCE_GROUP_ALLOCATIONSEGMENT_STARTINCLUDEMEMORYREGION_ALIASLD_FEATURENOLOADDSECTCOPYINFOOVERLAYDEFINEDTARGET_KSEARCH_DIRMAPENTRYNEXTSIZEOFALIGNOFLOADADDRMAX_KMIN_KSTARTUPHLLSYSLIBNOFLOATNOCROSSREFSNOCROSSREFS_TOORIGINFILLLENGTHCREATE_OBJECT_SYMBOLSGROUPOUTPUTCONSTRUCTORSALIGNMODSUBALIGNPROVIDEPROVIDE_HIDDENAS_NEEDEDCHIPABSOLUTENEWLINEENDWORDORDERNAMEWORDASSERT_KLOG2CEILPUBLICDEFSYMENDBASETRUNCATERELINPUT_SCRIPTINPUT_MRI_SCRIPTINPUT_DEFSYMCASEEXTERNVERS_TAGVERS_IDENTIFIERGLOBALLOCALVERSIONKINPUT_VERSION_SCRIPTKEEPONLY_IF_ROONLY_IF_RWSPECIALINPUT_SECTION_FLAGSALIGN_WITH_INPUTEXCLUDE_FILEINPUT_DYNAMIC_LIST','';'')''['']''!''~'$acceptfilenamedefsym_expr$@1mri_script_file$@2mri_script_linesmri_script_command$@3ordernamelistmri_load_name_listmri_abs_name_listcasesymlistextern_name_list$@4extern_name_list_body$@5ifile_listifile_p1$@6$@7input_list$@8input_list1@9@10@11sec_or_group_p1statement_anywhere$@12wildcard_namewildcard_maybe_excludefilename_specsection_name_specsect_flag_listsect_flagsexclude_name_listsection_name_listinput_section_spec_no_keepinput_section_spec$@13statement$@14$@15statement_liststatement_list_optlengthfill_expfill_optassign_opassignmentopt_commamemory_spec_list_optmemory_spec_listmemory_spec$@16$@17origin_speclength_specattributes_optattributes_listattributes_stringstartuphigh_level_libraryhigh_level_library_NAME_listlow_level_librarylow_level_library_NAME_listfloating_point_supportnocrossref_listmustbe_exp$@18memspec_at_optopt_atopt_alignopt_align_with_inputopt_subalignsect_constraint$@19$@20$@21$@22$@23$@24$@25$@26$@27$@28$@29$@30$@31atypeopt_exp_with_typeopt_exp_without_typeopt_nocrossrefsmemspec_optphdr_optoverlay_section$@32$@33$@34phdrsphdr_listphdr$@35$@36phdr_typephdr_qualifiersphdr_valdynamic_list_file$@37dynamic_list_nodesdynamic_list_nodedynamic_list_tagversion_script_file$@38$@39vers_nodesvers_nodeverdepvers_tagvers_defns@40@41opt_semicolon%P:%s: file format not recognized; treating as linker script Reducing stack by rule %d (line %lu): %P%F: unrecognised keyword in MRI style script '%s' %X%P:%S: unknown phdr type `%s' (try integer literal) %X%P:%S: PHDRS syntax error at `%s' jûÿÞìúÿxïúÿbïúÿPçúÿPçúÿPçúÿPçúÿ9ïúÿ&ïúÿPçúÿPçúÿïúÿ™ûÿ‡ûÿyûÿgûÿUûÿCûÿ1ûÿûÿ ûÿûûÿPçúÿPçúÿíûÿÙûÿÅûÿ·ûÿ©ûÿPçúÿPçúÿ–ûÿìúÿ†ûÿPçúÿÝûÿÏûÿPçúÿÁûÿ³ûÿ¥ûÿ—ûÿÂìúÿPçúÿPçúÿ ìúÿìúÿTûÿDûÿ4ûÿ*ûÿìúÿPçúÿPçúÿPçúÿPçúÿPçúÿPçúÿPçúÿPçúÿPçúÿPçúÿPçúÿPçúÿûûÿëûÿsûÿ\ûÿ>ûÿ.ûÿûÿûÿûÿPçúÿúûÿðûÿâûÿÏûÿìúÿŸûÿ‘ûÿPçúÿ�ûÿnûÿÍýúÿ¿ýúÿµýúÿìúÿ’ýúÿ}ýúÿhýúÿVýúÿÃþúÿ±þúÿ9ìúÿÿúÿ9ìúÿýúÿ9ìúÿÕþúÿPçúÿPçúÿPçúÿPçúÿZûÿPçúÿ ìúÿûÿûÿûÿïÿúÿÇÿúÿŸÿúÿPçúÿ|ÿúÿYÿúÿPçúÿŽþúÿkþúÿHþúÿ%þúÿþúÿßýúÿ6ÿúÿúüúÿÀüúÿ†üúÿ\üúÿ9üúÿüúÿçûúÿ¸ûúÿ~ûúÿDûúÿ.ûúÿòúúÿÚúúÿºúúÿPçúÿ«úúÿœúúÿPçúÿ�úúÿPçúÿ~úúÿeúúÿPçúÿSúúÿEúúÿ ìúÿóùúÿ~ùúÿìúÿPçúÿPçúÿPçúÿPçúÿŸùúÿ‘ùúÿåùúÿ×ùúÿÉùúÿ­ùúÿWùúÿIùúÿ<ùúÿ/ùúÿ"ùúÿùúÿùúÿûøúÿîøúÿáøúÿPçúÿPçúÿÁíúÿ…íúÿfíúÿJíúÿ+íúÿPçúÿPçúÿPçúÿPçúÿPçúÿPçúÿPçúÿ_øúÿPçúÿLøúÿìúÿøúÿú÷úÿPçúÿPçúÿPçúÿPçúÿÀ÷úÿ¦÷úÿ˜÷úÿPçúÿŒ÷úÿ~÷úÿp÷úÿPçúÿb÷úÿPçúÿS÷úÿG÷úÿ9÷úÿ÷úÿóöúÿ ìúÿÄöúÿ¬öúÿžöúÿ‡öúÿoöúÿaöúÿIöúÿ-öúÿöúÿõõúÿÙõúÿ½õúÿ¡õúÿ…õúÿiõúÿMõúÿ1õúÿõúÿùôúÿÝôúÿÁôúÿ¥ôúÿ‰ôúÿiôúÿMôúÿ1ôúÿôúÿôúÿìóúÿÔóúÿ¼óúÿ¤óúÿŒóúÿtóúÿ\óúÿDóúÿ(óúÿ óúÿðòúÿØòúÿûÿûûÿãûÿÇûÿ«ûÿÙñúÿÁñúÿ©ñúÿ¡òúÿ“òúÿ…òúÿwòúÿxìúÿ ÿúÿxìúÿ“ðúÿµìúÿ+òúÿxìúÿ0ðúÿÂðúÿµðúÿµìúÿ ìúÿ†ìúÿ9òúÿiìúÿ!îúÿPçúÿ ìúÿ†ìúÿœøúÿiìúÿçîúÿPçúÿ ìúÿ¢îúÿPçúÿ�îúÿìúÿðñúÿ*ìúÿ*ìúÿ*ìúÿ*ìúÿPçúÿ•ìúÿ•ìúÿqðúÿ[ìúÿîúÿÇòúÿ¹òúÿ[ìúÿ íúÿýìúÿÐìúÿ`ðúÿRðúÿñúÿPçúÿñúÿiìúÿÏðúÿPçúÿPçúÿPçúÿPçúÿ ìúÿìúÿ„ñúÿšïúÿÊøúÿÈæúÿDñúÿ[ìúÿ�îúÿ*øúÿ¤ìúÿPçúÿPçúÿPçúÿ§ýúÿ­ûÿ¤ìúÿdûÿìúÿPçúÿPçúÿíúÿðúÿeùúÿÿñúÿòúÿîúÿ=ðúÿ ðúÿôþúÿ<ýúÿfñúÿÆîúÿ@îúÿÝíúÿ×öúÿúúÿ>ûÿ±øúÿæðúÿyøúÿ ûÿtûÿ`îúÿ×÷úÿ   œ�����ž Ÿ¢¡££¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¥¤¤¤¦¦¦§§¨¨©©©«ª¬¬¬®­¯¯°°°°°°°°°°°°°°°°°°°°±°°²°°°°°°°°´³µµµµµµ¶µ·µ¸µ¹ººº»»¼»½½½¾¾¿¿¿ÀÀÀÀÀÀÀÀÀÁÁÂÃÃÄÄÅÅÅÅÅÅÆÇÆÈÈÈÈÈÈÈÈÉÈÊÈËËÌÌÍÍÍÍÍÎÏÏÐÐÐÐÐÐÐÐÑÑÒÒÒÒÒÓÓÔÕÕÖÖØ×Ù×ÚÛÜÜÝÝÞÞßààááâããääåååçæèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèééêêëëììííîîîîðñòóôïõö÷øùïúûïüïýýýýýþþþÿÿÿÿ        €�‚‹”�­®¡¢Ÿ ¯£:†:./0=>?@ACDEFMNOPXYZ[\]^cdejklw„–°¹»ÒÔßàâä&Cgnopqrtuvyz|}~ƒ„…¤ „‡ˆ‰:ˆ‰ Ð::12%%ž:%%%%%%%%%%%%±%%%%¼%•–ÑŠž%&'345<BLQRSTUVW_aqwx“š›è¨§¦è©ª«sè;–;–æçæº ²CÕÖמžž—žáãåå³´%ž%ª: •¥ •èèè%%%%%%%%%%%%%%%%%%%%èè !"• •è••• •è••¬:–„‡ˆ‰;–è;CKd»ï; •——¯Øž;•Ó•———————Ó—Ó•å———mµ³— è—èè£èè—èèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèè•––†–ðžõú $%ÜÙמžå%m•—æææ•;$•——••—•——————••———•——‰:†–%(èþÿüèÿè •šÝÞÕ—¶%m———èèèèèèè– GHIJK—ý%%þhêº]ûh—Þ_Ú$µ¸%————————;—è%&ë$ê:%% — Ó—µ·– —è%‘ìiíºèè–æaÛ—µ;'þ—èí%ö;—— —%—ñè:æè�Ž�î—÷—:þò; )*+,-68C`bfwŒ�’–˜½¾¿ÂÅÆÈËÌÍÒø%%ž%É%%%6789¾ÀÄ%6˜¿È;%Ñ:f¾¾ÊÎæ%ÇÁ½Ã%%%%™ÓÄ%Ä%óæÌhé———Ì—èÅ——½67¾67¾¾¾À—™Ä—;$•—½%%—%%————é Ͼ¾¾¾Îù—————ÏÏÓÑ————ôÓÓMqßvKŠWêëî^§$ñI   : …;:;•†—±†ºƒ„½†‡6688�–o–2œ� ¤•™;ÑÛ•C—ôµ·ìÉQ  ¿Ã TìGÉ•:†m™;m †67Ó67mh6789••m—%m'——Ýšm:•š�’’—�:•˜˜•ö—ùú—üý••—••—ËÌ• •f12 !"#$%&'()*+,’’c’:23’•„—%‡ˆ‰ !"%’„•–‡ˆ‰�Ž�nopG:% !"•`—bGHIJK%&'„‡ˆ‰ %%345%%% %%<%Š%%„BR‡ˆ‰GHIJKL%%%/QRSTUVW€�‚%%s%_a‹µ·¸¹”—qswx !"Ð;ÓÔÖ–;–•—ÝÞ“å—š›®  ;%%C:••%%K%&':P% !"%%•345%$••<d%%%%BjklM%%%%%L%%%wQRSTUVWC%%%– B_Ka;–HPJ—;p— qVwxd— —jkl————k——wr“•—%&'š› 345;–<—%%CB–*+“ÁK:L%P•—QRSTUVW———_—ad————•jkl————–q%wÌwx%&'(h]_$——%;345—%:—&<%“%• B•%š›–‘i–aL ;%%QRSTUVW::%%_a%%% !"q%;%wx%%&'%:%%%%%%%345%h;—<—“—$—B%š›———%—L%%—QRSTUVW———_—a !"q———wxÛ%&'——ûñ ——’ͤ×345¾Wûú%<X“¸Bøfš›Ü>ÿÿÿÿLÿÿÿÿÿÿÿÿQRSTUVWÿÿÿÿÿÿÿÿ ÿÿÿÿ_ÿÿaÿÿÿÿÿÿ)*+,-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿq6ÿÿ8ÿÿÿÿwxÿÿÿÿÿÿÿÿÿÿC !"ÿÿ“ÿÿÿÿÿÿÿÿÿÿÿÿš›`ÿÿbÿÿÿÿfÿÿÿÿÿÿjklÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿw !"ÿÿÿÿŒ./0�ÿÿ’ÿÿÿÿÿÿ–ÿÿ˜ÿÿÿÿÿÿ=>?@AÿÿCDEFÿÿÿÿÿÿÿÿÿÿÿÿMNOPÿÿÿÿÿÿÿÿÿÿÿÿXYZ[\]^ÿÿÿÿÿÿÿÿcdeÿÿÿÿÿÿ•jklÿÿÿÿÿÿÿÿÿÿ$ÿÿÿÿÿÿÿÿwÿÿÿÿÿÿÿÿ./0ÿÿÿÿÿÿÿÿÿÿ„ÿÿÿÿÿÿÿÿÿÿŠ=>?@AÿÿCDEFÿÿ–ÿÿÿÿÿÿÿÿMNOP—ÿÿÿÿÿÿÿÿÿÿÿÿXYZ[\]^ÿÿÿÿÿÿÿÿcdeÿÿÿÿÿÿÿÿjklÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„ !"– !"ÿÿ !"ÿÿ !"ÿÿ !"ÿÿ !"ÿÿ !" !"ÿÿ— !"— !"— !"— !"— !"— !" !"ÿÿÿÿ— !"— !"— !"— !"— !"— !"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ— !"— !"— !"— !"— !"— !"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ• !"ÿÿ•ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$ÿÿ&ÿÿC• !"ÿÿ•%ÿÿÿÿÿÿCÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿgÿÿÿÿÿÿÿÿÿÿ•nopqrstuvÿÿÿÿyzÿÿ|}~ÿÿÿÿÿÿgƒ„…ÿÿÿÿÿÿnopqr•tuvÿÿœyzÿÿ|}~ÿÿÿÿÿÿÿÿƒ„…ª«ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿºÿÿÿÿ½ !"ÒÓÔÕÿÿ×ÿÿÙÿÿÛ !"ÿÿ !"ÿÿ !"¶ÒWgù?Ô˜ùîÀk0`b²É»èÅÆêÅÆÂŠ}1ŠŠ@ÿÅÆ"ÜL]'ùìÅÆ‹hi‹‹¬ü§@ÿÎO²PÐêØäåÚçé¼¼’’†ò³xëPþÿ²²§²V²ÖM튊ùŠVÝ_вÞ_-dåd‹‹Š‹4§_‹g[§VÇø‡Ç‹^îïDñòÇ(³´µ¶%VVÇajf,ëTúf1ú™ššì„wȽœÈqO=tuèwxÈúcz{|}~cÈ�q:;ý†‡­=Š‹ŒÆyzŽ��‘’“”•–—˜™š›œ�žŸ ¡¢£ššÃšx§¨šV`÷{abc'()|š`“”ahi{|}}ÊËÌ©ª¶š›€ !"#$%&'()VÁ ²œ�žŸ Š>"#?@A�‚¡¢£ƒ„…‹†‡¤ˆ–‰Š>¥??@見�ŽN§¨©ª«¬­��g’®—¯™·¸îºóîö½¾¿Á°EÂÈÃDZ²#$%&'()Ê ÍË  Ì ÎÐÑÐ×Ñ ØÙÚ³áâš›´µãæç+mnopqrstuFìñóôEõöGøœ�./HžŸ 9,‹ÿ%&'()5¡¢£7@E6X¤I ¥789`    ¦:§¨©ª«¬­G<nU®H¯BC\,^QUyYop=>€°i‚Eš›±²IƒZ2[„789\]^…evˆf‰g:�z¤œ�¥³¦,mžŸ ´µmnopqrstu¡¢£$«±mº¯¤rÀ¼ÄG¥°,-¬æÝHéý¦,Öɧ¨©ª«¬­š›×ÙÚ®Û¯IÜßàäø789ÿ°œ�:籲쟠í $*+.04;3<¡¢£?BGALC¤H³J3M¥VV´µRWY_a¦pekr§¨©ª«¬­š›sw‚ª®ˆ¯«­¯ò !"#$%&'()°°œ�À±±²ºžŸ ÁÃÄÌÎÒÓÔÕ‹ÿÙ¡¢£ßÛàüýâ¤ã³äÿ楴µûsÿ¦ §¨©ª«¬­š›  ®¯ !"#$%&'()°œ� !±²RžŸ &'vl¾()÷é¿ö¡¢£þ¿- F¤j³l‰õ¥sÏ´µúSЦ§¨©ª«¬­‹®¯Œ�Ž��°‘’±²“ !"#$%&'()³´µ”•–789— !"#$%&'()˜™š›œ !"#$%&'()*+,-./0123456*789»:;¥þ !"#$%&'(<)*+,y-./0123456789:; !"#$%&'()< !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'()Ò !"#$%&'()Õ !"#$%&'()Ø !"#$%&'()á !"#$%&'()ã !"#$%&'()5 !"#$%&'() !"#$%&'()6 !"#$%&'()7 !"#$%&'()8 !"#$%&'()9 !"#$%&'(): !"#$%&'()T !"#$%&'()h !"#$%&'()n !"#$%&'()o !"#$%&'()t !"#$%&'() !"#$%&'()� !"#$%&'()IÍ !"#$%&'()ÓIJÔÏJKÝ !"#$%&'()ÞKLâMNOPQÕÿRSTUVWXYLZ[\MNOPQRST·UVWXYZ[\ÇÈ··å !"#$%&'()ðóôõ·Ç·# !"#$%&'() !"#$%&'() !"#$%&'()ÿÿ~ ]û¼»¹ÄÅÆ8=ŒÛïðkQ2>ÕJ‘�žŸ¸Ï Ñ¹¡¢Í£®É¤¥¦Êv•@×AÞßàS¾/b½ûüBCêDëEíËÓá!DXZ~Kµu…Ü*·l€©¸&ñïðô%Åþƒ¨+FÖN¹K÷)Ij GH´de®qýqý¼ÿqýqýqýqý7qýqýqýqýqýqý¥qýqýqýqýQqýqýqýBqýþqýqýqýqý1þóÿqý‹ý�”cqýqýqý„ýkqýqý•qýqýqý£ýqý/þqýrý°ý#ÿqý€qýéqýqýqýqýqýqýFqýqýqýqýqýqýÿ�ÿqý³ÿHqýqýíqýqýqýqýqýqýqýqýqýqýqýqýqýqýqýqý"þ‘qýqýs$þqýqýqýqýqýqýqýqýqýqýÜýqýqýqýqý-qýqýqýqýqýSìÿqýæòÿqýqý; YS> < dZ]TUOQPØÙSsH=@F?BCDEAG.36juiqsd^qsV®¯°±Ý²³´µÝpHVÁ×ÚÚ_6·¶r(ùú1/ !$%4&'* eX¸¹[\>ľÃÒÔ¾¾Ú_ ãßâä-87o_lvkrtWÞm#)onJGILN[ÊÆ¿½^IJUqÐÑÕÚÛXYRad`KÝÝÝZ+à÷öôóòìíðñîïêëèéåæç20,#"59fgb`4,4WÁÂÓÖÜgcfT\)øáüûýþ  ÿ:wtmca4p;<*MNÎÌ]kbeº»¼õx./01257:=QKÏË;Çit   pw36-pNMÝhh4$OLÈÅln+RNÝj8%PÉB4¤C&9�wv¦§¨©ª—™ž˜xz“›£¥? Ý”u}Œ¾Ž¢ Ý–¤¤«†Š�¾¾?>@š{|�uˆ‰‹‘�¾œD­¡•‡y~€…’@@Ý'­­¬A¾!E(Ÿ‚�ƒ„¾¾"FÚqýqýqýqýqýLqýqýqýqýqýTqýöÿqýAqý£˜xeböÿqýpAqý-jª—ÆqýÍqýqýùÊãqýqý*qý+,89qý;qýqýqýqý`qýqýqýqýqýqýqý¶qý^ù`qýbceqýqýiklmrsqýtqý~qýuxIôeqýqýqýPöqýqýqýqýqýqýqýqýqýqýqýqýqýŠŽ��qýqý’“šùù›ùqý¨¨qýˆùª«­�qýqýqýqýzqý*qýqý”•¢£©qý°±²³¹º»¼½¿ÀÁËÌÍw—qý"qý#qýqý p4qýqý<qýÉqýqýp…pp]§¾d§qýqýp qýqý¤ÿgqýqýùÄûÿqý=j{}‚ƒ„qýqýÌÿüÿ$†‰‹(qý–êøù¯öÿqýqýqý«  qýqýp"%qý'pþ<qý-qý®¶qýqý=qýqýqý´ÿqýp-qýùqýqýqýqýqýqýqý?qýqýñ#qýqýqýCqýqýqýqýqýqýqýùqýù¨qýqýqýqýqýqý$Âqýqýqýqý qýýÿpp³ppqýøw 4‹ÃΟÏÐÒÕH\Ö׳pÇØ>†céo¬¬____¤¤ÏÏqýqýqýpppqýqýqýppqýqýqýqýLp¿§qýqý·ÿ^qý³^ÛqýDqýÝqýqýqýqýqýqý1.qýÞßà_qýqýqýqýqýqýqýqýqýqýqýqýqýqý`qýqýqýâiqýqýqýVÍrqýqý\+qýp"…qý†qý,hqý(qýqýqýjqýqýqýöÛþ&:N÷p§UppqýqýqýqýqýqýýÛ‡qýps¬qýqý\vxqýqýqýqý• qý(qýqýqýqýqýqýqýqýqýqýâqýbqý}qý>qý"qýqýHqý(§qo…qý>ˆqý™qý­qýqý¡qýqý%qý‰¨qýÁqýqýqý"qýqýqýqýmÕqýqýqýéqýqýqý€qýqý–qýD®Dqýqýqýœqýqýqýqýqýqýqý—›ùœqýqýqý�«¯qýUqýqý²qýqýqýD˜¶`¢ÄaOqýqý¹qýÛqý»¼½¾qýqýÁÿU¿ÀUÅqýqýqýqýDåƒWY[D]qýqýqý NQOOqýUSOåÿUÄc±qýÔqýqýqýqýÏqý‘deòqýqýÒØgÜÝlwyqýqýqý†ƒqýqýüGqý qýqýqýOOqýOOqýqýqýqýqýqýqýqý qýz|Ž‘’GGqýqý `™šžŸqýqýqýqýqýqýqýqý  qýqý¦¦§¨©ª®²²¼¼ÉÊÎÏÐÓÖרÚÜÞàâäæèêìîïðòôöøúûýü   %')..45:;<=>?@ABCDFHJMOQSUWYX\_^bfjkmoqvv{~�„‡ŠŽ�“’˜—Ÿ£¤¥©«¬¬´¸¼ÃÊÔÕÚâãèíò÷ü 4AJU^ir{ˆŒ”–•œ�¡¢§¬­²¶¶º¹ÀÁÄÆÊÌÎÐÒ×Þàäæèêìîðò÷÷ü "#('-,3;CDHIMOTYZ_agikoqwzƒŽŽ”–˜šœž¡£¥§©«­¯±³µ·¹»½¿ÁÃÅÇÉËÎÐÒÔÖØÚÜÞàâäíïñóõ÷ùû   %(.0 79;@B6LNLTSZ[\]^bcdhinotuz{€‚‡Š—› ¢™ª­¯³´³½êíú  "++99CDHLPW[cfjnry}�…Љ—– ¤¨¬°´º¼š"%— •!– ˜™:;› #$&'()*+,-./0123456789<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”%F%s: file not recognized: %E %P:%S: ignoring invalid character `%s'%s out of dynamic memory in yyensure_buffer_stack()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 foundout of dynamic memory in yy_scan_buffer()out of dynamic memory in yy_scan_bytes()%F:includes nested too deeply \%03o%F%P: EOF in comment ldlex.l in script in expressionbad buffer in yy_scan_bytes()%F: macros nested too deeply °Ðúÿ¦Ðúÿ@Ðúÿ,ÐúÿÐúÿûÏúÿÈÏúÿ�ÒúÿÿÑúÿëÑúÿ×ÑúÿÃÑúÿ¯Ñúÿ›Ñúÿ‡ÑúÿsÑúÿ_ÑúÿKÑúÿ7Ñúÿ#ÑúÿÑúÿûÐúÿçÐúÿˆÕúÿtÕúÿ`ÕúÿLÕúÿ8Õúÿ$ÕúÿÕúÿüÔúÿèÔúÿÔÔúÿÀÔúÿ¬Ôúÿ˜Ôúÿ„ÔúÿpÔúÿ\ÔúÿHÔúÿ4Ôúÿ Ôúÿ ÔúÿøÓúÿäÓúÿÐÓúÿ¼Óúÿ¨Óúÿ”Óúÿ€ÓúÿlÓúÿXÓúÿDÓúÿ0ÓúÿÓúÿþßúÿêßúÿÖßúÿÂßúÿ®ßúÿšßúÿ†ßúÿrßúÿ^ßúÿJßúÿ6ßúÿ"ßúÿßúÿúÞúÿæÞúÿæÞúÿ®ÞúÿšÞúÿ†ÞúÿrÞúÿ^ÞúÿJÞúÿ6Þúÿ"ÞúÿÞúÿúÝúÿæÝúÿÒÝúÿ¾ÝúÿªÝúÿ–Ýúÿ‚ÝúÿnÝúÿZÝúÿFÝúÿ2ÝúÿÝúÿ ÝúÿöÜúÿâÜúÿÎÜúÿºÜúÿ¦Üúÿ’Üúÿ~ÜúÿjÜúÿVÜúÿBÜúÿ.ÜúÿÜúÿÜúÿòÛúÿÞÛúÿòÛúÿ¨Ûúÿ”Ûúÿ€ÛúÿlÛúÿXÛúÿDÛúÿÜúÿÛúÿÛúÿðÚúÿœÕúÿœÕúÿ•Ùúÿ•ÙúÿrÙúÿ^ÙúÿJÙúÿ6Ùúÿ"ÙúÿÙúÿúØúÿæØúÿÒØúÿ¾ØúÿªØúÿ–ØúÿlÎúÿÁÚúÿ]Ìúÿ]ÌúÿÜÚúÿ¿Ùúÿ­Úúÿ™Úúÿ…Úúÿ‚ØúÿKÚúÿ7Úúÿ#ÚúÿÚúÿûÙúÿçÙúÿÓÙúÿxÎúÿnØúÿZØúÿFØúÿ2ØúÿØúÿ Øúÿö×úÿâ×úÿÎ×úÿº×úÿ¦×úÿ’×úÿ~×úÿj×úÿV×úÿB×úÿ.×úÿ×úÿ×úÿòÖúÿÞÖúÿÁÖúÿ¤Öúÿ‡ÖúÿjÖúÿIÖúÿ,Öúÿ ÖúÿTÐúÿÈÕúÿlÎúÿ]ÌúÿÏúÿôÎúÿàÎúÿ.×úÿ£Îúÿ‰ÎúÿÎÐúÿ½Îúÿ†Ùúÿ©Ùúÿ¼ÛúÿlÎúÿ]Ìúÿ]Ìúÿ°Õúÿ,ÛúÿÂÞúÿÏúÿ_Úúÿ_Úúÿ_Úúÿ_Úúÿ_Úúÿ_Úúÿ_Úúÿ_Úúÿ_Úúÿ_ÚúÿzÞúÿ ËúÿËúÿüÊúÿæÊúÿËúÿyylex&++_:&--:/Ï//Ïi_/1321//24;64364Jell;‰2i…0990`e0<=‰g<9`<<J@=0@@gz@@@nn@@z{|@�Â}�…{}Â| } Æ· (((ÙÆq‹q•³•qrqr·‹((qqr r �rr’�“™�“ß™“Ù’™à³(�( "A ss‘sst‘tÓ#às$ßutuAss‘Óttu  t šuuŽœŽ¿Ž˜˜š% ŽœR¿R&˜ŽŽ 'á‚›‚½½›Ë‹››‚Á¾¾½‹Ë‚‚¾ýÁ(¾ÁÀŸ‚ýŸŸÀËÀ៟Ÿ\*ŸŸÀ+\Ÿ,-'''ÊÎÌééyyÊÎÌ.M''0M'ÊÌéYé!Y!ÌÊ1!2Î4'Y''Ø×5ÍÍŒŒŒŠkHkHIŠI�s6�HŠ7IŒ�ŒHHsII˜9˜ØÍŒ˜kkÍ×’¢±;<’²¢Œ=ŒŒ>?@A���±²BCJEJFñññBBBJ$�$�GHJJIOJOñKñBLBOMNOPOOBQ$�$�RñSñBTBSBSTUTiTiVSW[T\`iSSaTTcii]]]mmmdef]]]]]]†g&†&†imkmlp&†qs†t&&&vwx{]]]]]]hhhu|}mmhhhhhhzh€/h/h�h/‚v/…†zhˆŠ//‹wŒhhhhhh�hŽh�h�h‘u’“”hppp•–—˜™›ppppppœp�žŸp¡¢p£¥¦pp§¨©pª¢«¬­®¯pppppp°p±³´µ·p¹¯º»¼pˆˆˆ½¾¿ÀÁˆˆˆˆˆˆÃÄÅÆÇÈÉÊËÎÏÒÓÔרÚÜÍÑÝÞßàለˆˆˆˆ§§§ÍâÑãäå§§§§§§æçèéêëìîïðñòôöøùúûüýþÿõ§§§§§§¯¯¯õ   ¯¯¯¯¯¯  !"#%'()%+-/¯¯¯¯¯¯¼¼¼024567¼¼¼¼¼¼8¼9:;¼¼<=>?@CDE¼FGHIJLM¼¼¼¼¼¼N¼OPRSU¼VWY[\¼;;;]^_`ab;;;;;;cdeh;i;jklmoqrsouwxz{}€�;;;;;;‚ƒ„;…;¨¨¨†‡ˆ‰Š‹¨¨¨¨¨¨Ž��‘¨’¨–—˜œ�žŸ¡¢£¤¥¦¨©ª¬­¨¨¨¨¨¨®¯°¨²¨¬¬¬³µ¶·¸³¬¬¬¬¬¬¹º»¼¬¿¬ÁÂÃÄÅÇÈÉÊÌÎÏÐÑÒÔÕÖ¬¬¬¬¬¬ØÙÚ¬Û¬°°°ÝÞßàáã°°°°°°ä°åçèéêë°ìîïñòóôï°õö÷øûýþ°°°°°°ÿ°°   °]] ]]] ]]]]]]]]]]]!#"""%""""&"()*-./01]4689:;<=>?@CDEFGHIK"L"]]]mmNmmmMmmmmmQmMXZ[\M]mmmmm^_`abcdefghijkdlmnpsuvwxyz{|}m~y€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‰‘mmm’“•–—˜™š›œ�ž £¤¥¦¨©ª«¬­¯°±²³¶·¸¹º»¼½¾¿ÀÁÂÄÇÈÉÊÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øúûüýþÿ     !"$%&'()*,-./1234567489;=>?@ACBDE4BGHIJKLMNKOPRBTUVWXYZ[K\]^_`deghijkpqrstuvwx|}€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™›œžŸ ¡¢£¤¦¨©«¬®¯°±²³´µ¶·¸¹º»½¾¿ÀÁÂÃÄÅÆÇÉÊÌÍÎÏÐÑÓÔÕרÙÚÛÜÝÞßàáãäæçèéêìíîïðñòóôõö÷øùûüýþ             !!!!!!!!""""#######$$$$$%%%%%%%%%%%&&&&&&&''''''''''(((((((((())))))))))***++++ ++,,,,,,,,--------.. .....//0 0000000001 1111111112222222222333444444555555555566666666667ÿ7777777778þ88888888899999999::::::::ýûúø÷öôóòñðïîíìëêéèçæåäãâàßÞÝÜÛÚÙØÖÔÓÒÐÏÎÌËÊÉÈÆÅÄÃÂÁÀ¾¼º¹¸·¶´°¯®­¬«ª©¨§¥¤£¡ Ÿž�œ›š™˜—•”“‘ދЉˆ‡†…„ƒ‚�€~}|{zyxwvutsrpmlkjihgfedca`_^]\[ZYXWVUTSRQPONMLKIHGFEDCBA@?>=:9876543210.-,+*)('%!     þýüûúùø÷öõóòñðïîíìëêéèçæåäãâáàßÞÝÜÖÕÒÑÐÏÎÍÌËÊÉÈÇÆÅÄÃÂÁÀ¿¾½¼»º¹¸·¶µ´±©¦¥¤£¢¡ Ÿž�œ›š™—–•”“’‘�Ž�Œ‰ˆ‡…„ƒ‚�€~}|{zxwvurqpojhgfedcba_^][ZXWVUQPL842/.-,+*)('&%$#"     ÿüûúùøôçäÞØÖÔÒÑÐÇÅÄúµ³±°®­¥¤£¢¡ ž�—–”ƒ~yxwvmcb\[ZXVTPOMHGFEBA?>875,$"! !"#$%&'(()*+,-./01234567%89:;<=>?@A%B%%%%C%D%%E%%%%%%%%%F%%G%%H%%%%IJKLMNOPQRSTêVWXïôõëÖNÖN×ê×ð÷øùËúØûØÌDëüýþ    0>ôõ>DMNOPQRST0VWXÙÿÙ>?56?1!"#@[$%&÷ø'(\]_)y»az1^b¼`ÑcYZ[\Y]^_`abcdefghiijklmnopqrstuvwxfyz{|}~fffffffff€f�Yf‚uuuuuffffffffffƒffff„…†‡YZ[\Yˆ^_`abcd‰Š‹Œ��jklmnoŽ��‘’“”•–Š—˜™š›œ�žŸ Š¡ŠŠŠŠ€Š�YŠ¢ŠŠŠŠŠŠŠŠŠ£ŠŠ¤ŠŠ¥ŠŠŠŠ„…†¦YYYYY§YYYYY¨Y©ÀDŒ��YYY«YYñññÖÁO6O„eÖ…PfOQODlògò:::hYRYYu::~v€‹w�ÖŒ‚³�ÖæwçòxòYYYYYYYYY§YYYYY¨Y©ÒDŒ��YYY«YYSO{OTO|OÐÓØ:Ô×O:ODU:}Ñ:::íYVYYŽ::o”p²qˆ‰�Õîr•,«-ÖŠstYYYY¬­®¯ °±²³´µ¶··¸¹+º-»¼½¾¿ÀÁ´´´´´Â´ÃÄÅ´´ÆÇ´´´´´´È´É´ÊËÌ¿Íδ´´´Ï´ÐÑÒ´ÓÔ´´´IJKÕÖN××ÛÖØÛÛO�Oµ²‘²n’“:²¶²«o«::·à«Ø«º²˜iᙚ«Å¸ýÙ›œ�9ÙžŸ¹Ú: þÜÝÖN×ÛÛÜØÛÛñññ²²²òõòTöU÷«««[Ý(òøòùÞ)ó\ÃÆò4ò 5ÇÄßàÊáò6òÜÝÖNó×ÖÖÛâ²ØÛÛ«mmmkJOJOOlOsOãt:mä:EuE::!%:~å²Èn€JßJàɱVáfÖæçWÖgEèEâãÖNn×éêÛëìØÛÛmmmuvíîOï&ðñññBBB:EEEEñò::óOôOòõòöß:à÷øùáú::DûEEEEüâãéééòýòþééééééODOOÿOO/O::::.::::éééééé;;;mmm   ;;;;;;c OdOeHE E:fgõ::ÖÖ;;;;;;AAAÖEEBCBCBBD OEOE!Dþ":#$F%&::'(BCBCBB)D*E+E,D-./0FHHH123456HIHJHH7K89:L;<K>?@MNABCKD=EFGHIHOHOHHKKLMNOPKQJRSTKkkkUVWXYZkkkkkk[\]^_`abcfgjklmnopdhqrstukkkkkk¨¨¨eviwxy¨¨¨¨¨¨z{|}~€�‚ƒ„…†‰Š‹Œ�Ž��‘‡’“¨¨¨¨¨¨¬¬¬ˆ”•–—˜¬¬¬¬¬¬™š›œÖÖÖŸ ¡¢£¤¥¦§¨©«¬­ª®¯°¬¬¬¬¬¬°°°±²³´µ¶°±°²°°·³¸¹º´ž�³»¼½¾¿ÀÁ³ÃÄÅÆÇÈɰ²°²°°Ê³ËÌÍÎϳÐÑÒÓÔ³;;;ÕÖרÙÚ;;;;;;ÛÜÝÞ"ß"àáâãäæçèåéêëìíîïðñ;;;;;;òóô"õ"¨¨¨ö÷øùúû¨¨¨¨¨¨üýþÿ��ÖÖ     ¨¨¨¨¨¨��¬¬¬¬¬¬¬¬¬�� !"#$%&'()*+,-./01¬¬¬¬¬¬234�5�°°°6789:;°²°²°°<³=>?@AB³CDEGHIJF³KLMNOPQ°²°²°°R³STUVW³XYZ[\³]^_`abcdefghijklopr333sm3333nt3uvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž�3�3”‘•’–—˜™“š›œ�žŸ ¡£¤¥¦§¨©¢ª«¬­¯°±²³´¶·¸¹º»µ¼½¾¿ÀÁÂÃÄÅÇÈÉÊËÌÍÆÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ]^_[`abcdefgkhlm\inopqruvwsxyzj{|}~€�‚tƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ     UUUUUUUUUUUªªªªªªªªªªªÚÚÚÚÚÚÚÚÚÚÚÞÞÞÞÞÞÞÞÞÞÞåååååååååççççççççççç333333337ÐÏÎ77Í7::Ì:::::§ËÊɧ§§§©©©©©©©©©©©««È«««««­Ç­­­­­­­­­¯Æ¯¯¯¯¯¯¯¯¯ÓÅÓÓÓÓÓÓÓÓÓÔÄÔÔÕÕÃÂÕÕÁÕÕ        ##À#####$$­¿­­­­­­­­­¯¾¯¯¯¯¯¯¯¯¯Ó½ÓÓÓÓÓÓÓÓÓÔ¼ÔÔÕÕ»ºÕÕ¹ÕÕ¸·¶µqqqqqqqq®®®®®®®®´³²±°¯®­¬«ª©¨§¦¥¤£¢¡ Ÿž�œ›š™˜—–•”“’‘��Ž�Œ‹Š‰ˆ‡†…„ƒ‚�€~}|{zyxtsrqponmlkjihedcba`_^]\[ZYXUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!      ÿýüûúùø÷öôóòñðïîíìëêéèçæåäãâáàßÞÝÜÛÚÙØ×ÖÕÔÓÒÑÐÏÎÍÌËÊÉÈÇÆÅÄÃÂÁÀ¿¾½¼»º¹¸·¶µ´ÕÖ°¯®­¬«ª©¨§¦¥¤£¢¡ Ÿž�œ›š™˜—–•”“’‘ªŽ�Œ‹Š‰ˆ‡†…„ƒ‚�}|{zyxwvrqpjihba`_^]ZYXWVSRQPNMLKIGFEDCBA@=<;873210+*'!2    ÿüûúôóòñðïìëêéèåäãâßÞÝÜÛÚèäÖ62ÒÏÎÍ¿¾½G@>=®ª9¦¥¤£¢¡—–‡†ƒjdZYXWG=<è9ä8654è2/.-,+*  öîíìèæä    !!!"! ###h#ppppp##########p#!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$%&'&&hh(&¼¼¼¼¼&&&&&&¼¼¼¼¼&&&&&&&)*++++ !!,-!##.hhB/ppp####p###pp####################p#ˆ!/!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$%&&001&°°&&°°&&&&&&&&&&&&°&°°&&&&&&&&&&&&234444!,-!#./#p########p##########################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&444!!###################################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&&&&&&5&&&&&&&&&&&&&&&6&&&&&&&444!!#############################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&&&75&&&&&&&&&86&&&&444!!###########################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&&&&&&&&&&44!!######################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&&&&9!#################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&&&&:!###########!!!!!!!!!!!!!!!!!!!!!!!!:###########!!!!!!!!!!!!!!!!!!!!!!!!#########!!!!!!!!!!!!!!!!!!!!#########!!!!!!!!!!!!!!!!!!!########!!!!!!!!!!!!!!!#########!!!!!!!!!!!!!!!#####!!!!!!!!!!!#####!!!!!!!!!!!###!!!!!!!!!###!!!!!!!!##!!!!!!!#!!!!!!#!!!!!!#!!!!!!!!R£ôF˜ê<prŽà2„m n n j n S e Ån Yn n Q P O bé¡n XN cb¡brdo9 q< D ¤^t §3 B ³E @ #    n �n X n T + n n n  J ( n R ; M ón nn n 9 8 n ‚¿!Sn n „7 Çn ]œ¥êî÷" * $ , ºÉÆÁ �n n � n ›n n ™†­;Œ ²¾ì¬³ ˜ ' ¼‚ % ¨( #   ö ü Çn n n n % 9 õ# " n ! wn  n #‘š ¦˜Å  ‰ n n â“ä&ã=ø è ä Ïæ , ! n n n n  Åˉn n ) % n Ün n — n n  ú  ÷  � ú ø ò ¹ ð ý ý í ô ð ì î ø ï åõ Ú ê ´ç é Ý ôè ê Þ ì ì à í æ Ý Ñ Ø ä Ó æ ä Ò Ò Ñ ² µ º « n n ö Ä n ½ n _n n n n Éšn n n 69‰Ò à�Ì Ê ÊÍÓ Ô Ç Ñ Ï Å ¹º à ¸ ¨Ã Å È ½ Ä ° Ä Æ Ð“ ,ö³ Á ° º ,¼ ³ ± « ܹ © ¶ ¶ ¦ î­ © ¥ § ± ¨ ÷® “ £ 5†£ ¡ – ;¡ £ — ¥ ¥ ™ ¦ Ÿ M– Š ‘ � Œ Ÿ � ‹ ‹ Š k n s d “® n Çûƒ Œ � € ‰ � | } { Œ  ‡ ˆ † ‡ r V ] T S Z ^ O P N ] Q X Y W X E { z )$¡n n e a m j k a _ i i f W P g f ] b R W ] U _ \ I Y P L Q D S G P N P L C = > C ? 4 E ; 8 7 2 C = 3 0 6 0 < , < = + ; / 3 &  # ' ‹% ú, - # , ,   + )(   $       '        è ð  ÿ  ÷ ð   ý  ò ÷ ý õ ÿ ü é ù ð ì ñ ä ó ç ð î ð ù ë â Ü Ý â Þ Ó ä Ú × Ö Ñ â Ü Ò Ï Õ Ï Û Ë Û Ü Ê Ú Î Ò Å ª ² Æ ZÏ Î Â Ì Ã » Ê È Ç ¿ ¶ · º š =¢ ¡ – Ÿ — � � › š “ ‹ Œ Ž cg¨­ ¦ © ¤ ° ¢ ¨ ž � ‘ ¡ š ” — ™ – ¤ ˜ ¢ ‘ £ � ‘ � � Ÿ � � Ž › | ‘ „ Œ „ � † ‘ Š � } � p … ‰ x  � „  ] Y s  w t o { t j ^ U D 8 2 9 & & ! )   ×êæäÝÈù‰…¥˜˜‘�–ÂÌÕéf“§º½ÑÝ÷ùý ?A=PQdRmdnv�}‹‘–Š‘„�§˜¡¦®¯——ÄÂÉÆÙHÉÖÎîÈÃÏÓä™ÖàØé!üþ%.2)-:7(5JEK8?RTPLG[YV^XZdilYfp_eDSjufmo€…tƒ…}‰o‡��ƒ“�‹Ÿ�”�£œt‚“£•¥²¦™¨ª¡‘£°¬—£·»ÁÁ®»ÎÌÈÄ¿ÓÑÈÏÉËÔâÚÇÔÜËѯ½ÎØØÝêïòÂÊÐÌ;Üßïþîùóê  ûýþ  %)&0*-9*9)=4DGGH;KH?M;PF<PV-@RaQ[VNikknm_absoffu]dyfgyuov�…‚ŒŒj}‰��qvsª«¢Ÿ¤–¨�¦� ž’­¤¨©žÁ¤ÃÁ³¯Ç±Ãű¯ÃÓÔÑÖÈÖ¿ÚÎÕÐÄÅÆÞßÊÈìíãõêóÜóòæòöýùí ï þõ ÷  õó&* +(,:;-;/04A>B9HMJ,_MAXQY]\P[Q`CTUh^f`_lm_mabfnkofv…}h‡�‡�‹�†�‰™™‘ž�𛓒¦�œªŒ¥©¦œ«£ª ´–°ª±·´±ª±­½½µÂ´¾¿·¶ÊÁÅÖ½ÀÎÜÔ×ÕÕÞãÚæâìðñïëìéÔÙëîòéùýûÝâðþöù÷÷üø    ò  ý'*-, 03)90!=0> <3D4D<,?>/NL>@NMAQ3JF<=\OQLM]ORWG8ZJ\WgY\@e`VWvikfgwilqaRrdƒ„zyj{}y€~_€‘r„†„h‰{š›‘��’”‘˜–w“–ž�¨¢£‘«­¡Ÿ©¨²²¤§¯®¸²³¡»½±°¬½Ã¼½»ÊÀ¿Å»ÇÍÆÇÀ¼ÍÓÌÍËÚÐÏÕÒÙÏÓàØäÒØá×éÞåÛßìäðÞäòççô÷íóéîî÷ýòòÿøþôøéöüùïüòÿ   '$.-#% 12(*%,2.4/023n [fq|‡’›¦®¶¾ÆÑÙäïúþ    ! , 7 B F O Z e p { ƒ ‹        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRµµÊÉǸ· ǵ&,+"#$µ%-.'(!µµµµµµµµµµµµµµµµµµµµ µywµ*)ÆÄɯ,+ɯ¯É¯È¸ ȳ&,+"#$³%-.'(!³³³³³³³³³³³³³³³³ ³³*)¯$¯%¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯yw¯ˆ ‡®"#$®%-.(!®®®®®®®®®®®® ®®®®®®®®®®®ÆÅÇ¿¾¹ÀÁ½½½½Âøµ¶µµµµµµ~µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ Ư¯°¯³³³³~³³³³³³³³³³³³³³³³³³³³³³³³¯¯¯¯¯~¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯‡‡®‰Š®®®®®®®®®®®®®®®®®®®®®®®®®Å¾½½½½ µµµµµµµµµµµµµµµµµµµµµµµµ^µµµµµµµµµµHµµµµµµµµµµµµµµµµµµµµµµµµµµµzxµ¯²°¯´³³³³³³³³³³³³³³³³³³³³³>?³³³³³³³³³³³³³¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯^¯¯¯¯¯¯¯¯¯¯¯H>¯?¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯zx¯®®®®®‹®®®®®®®®®®®®®®®œ®®®®®®®®®®½½½µ;µµµµµ5µeµqµµµµµµµZµµµµµrµµµ„µµµcµDµµµµµµµµµaµµµµµµlµµµµµµµµµ¯¯³;³³³5³³q³³³³³³³r³„³³³D³³³³³³³³³³³³¯;¯¯¯¯5¯e¯q¯¯¯¯¯¯¯Z¯¯¯¯¯r¯¯¯„¯¯¯¯c¯D¯¯¯¯¯¯¯¯¯a¯¯¯¯¯¯l¯¯¯¯¯¯¯¯¯®®®�—Ž®®™’•®®š®®®®® ¨Ÿ®®«£¦®®¬®®½½½µX7µµµ4µµµµpBµµ`µNµµµMµµµµµµµµµµµµ}µµµµµdµµµbµµµµµµµ¯¯³7³³4³³³p³N³³³³³³³³³³³³³³³³³³¯X7¯¯4¯¯¯¯pB¯¯`¯N¯¯¯M¯¯¯¯¯¯¯¯¯¯¯¯¯}¯¯¯¯¯d¯¯¯b¯¯¯¯¯¯¯®��®®™™”®˜®®¡ž®®««¥®ª®½½»µµµAµYµµµµµµCµ�µµµWµ6µ/µµoµ2LµµµµµµIµµµµµ_Jµµµ¯¯³³³A³³³³³�³³6³³³o³2³³³I³³³³¯¯¯AY¯¯¯¯¯¯C¯�¯¯¯W¯6¯¯/¯¯o¯2L¯¯¯¯¯¯I¯¯¯¯¯_J¯¯¯®®C–“®®®©§¤®¼ºµ=µµµµµµPµµµ|µµµµµfµµi‚µµµµµµµv[µ3µµ¯¯³=³³³³P³|³³³³³s‚³³v³³³¯=¯¯¯¯¯P¯¯¯|¯¯¯¯¯¯f¯¯i‚¯¯¯¯¯¯¯v[¯3¯¯®®®®®®›µµ†µµµµµµµµµ<µµµµµµµVµµµµ€­µ¯¯›³³†³³³<@³³³³³€­³›¯†¯¯¯¯¯¯¯¯¯<@¯¯¯¯¯¯¯V¯¯¯¯€­¯›Œ‘­�¢µOµµµµµµµµµµµµµµµµµµµµµnµ¯O³O³³³³³³³³³¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯n¯µµµµµµµµµ1µtuµµµµKµµµµµµ¯³³³³³tu³³³³¯¯¯¯¯¯¯¯¯1¯tu¯¯¯¯K¯¯¯¯¯¯µµµµµµµµµg]µµµµµµµµµ³³³³g³³³³¯¯¯¯¯¯¯¯¯g]¯¯¯¯¯¯¯¯¯µRµµ…µµµµµµµ0µµµµjµ³³…³³³³³³¯R¯¯…¯¯¯¯¯¯¯0¯¯¯¯j¯µµµµµµµµ\µGµµµµ³³³³³G³³¯¯¯¯¯¯¯¯\¯G¯¯¯¯µµµµµµµµµhƒFµµE³³³³³hƒFE¯¯¯¯¯¯¯¯¯hƒF¯¯Eµµµµµµµµµµµ³³³³³¯¯¯¯¯¯¯¯¯¯¯µµ:µµµµµµµ³:³³¯¯:¯¯¯¯¯¯¯µµµµµµµkµ³³³¯¯¯¯¯¯¯k¯µ8µµµµµµ8³³¯8¯¯¯¯¯¯µµµµµ{µ³{¯¯¯¯¯{¯µµµµµµ³¯¯¯¯¯¯Qµµµµm³Q¯¯¯¯m9µTµ99¯T¯SµS¯µ¯UU%P%F: invalid hex number `%s' Shared library control for HP/UX compatibility%P%F: use the --help option for usage information %P%F: unrecognized -a option `%s' %P%F: 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 --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] Compress DWARF debug sections using zlib Default: none -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 muldefs Allow multiple definitions -z execstack Mark executable as requiring executable stack -z noexecstack Mark executable as not requiring executable stack -z globalaudit Mark executable requiring global auditing --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 or both -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 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 -z noseparate-code Don't create separate code program header (default) -z common Generate common symbols with STT_COMMON type -z nocommon Generate common symbols with STT_OBJECT type -z stack-size=SIZE Set size of stack segment -z text Treat DT_TEXTREL in shared object as error -z notext Don't treat DT_TEXTREL in shared object as error -z textoff Don't treat DT_TEXTREL in shared object as error %P%F: bad --unresolved-symbols option: %s %P%F: unrecognised option: %s %P%F: -r and %s may not be used together %P%F: -r and -shared may not be used together %P%F: -r and -pie may not be used together %P: SONAME must not be empty string; keeping previous one %P%F: invalid common section sorting option: %s %P%F: invalid section sorting option: %s %P%F: invalid argument to option "--section-start" %P%F: missing argument(s) to option "--section-start" %P%F: group ended before it began (--help for usage) %P%X: --hash-size needs a numeric argument %P%F: no state pushed before popping %P%F: invalid argument to option "--orphan-handling" %P: SONAME must not be empty string; ignored %P%F: -F may not be used without -shared %P%F: -f may not be used without -shared Specify target for following input filesForce common symbols to be definedForce group members out of groupsUndo the effect of --export-dynamicAuxiliary 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)Strip 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 librariesBind 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 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 Use less memory and more disk I/ODo not allow unresolved references in object filesAllow unresolved references in shared librariesDo not allow unresolved references in shared libsCreate 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 longerReduce 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 executableSort common symbols by alignment [in specified order]Sort sections by name or maximum alignmentHow 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 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 shared object has DT_TEXTRELWarn 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.-pie-G--shared--library=%s%P: %s: missing argument defaultnodefinitionsnosymbolicpure-text--defsym%P%F: invalid number `%s' Usage: %s [options] file... Options: %s @FILERead options from FILE %s: supported targets:%s: supported emulations: ELF emulations: Report bugs to %s ignore-allreport-allignore-in-object-filesignore-in-shared-libs%P%F: bad -plugin-opt option %s%c%s%P%F: -shared not supported %P%F: -pie not supported descendingascending.text-segment.rodata-segment.ldata-segmentP,placewarndiscard%P: unrecognized option '%s' %s-%s%s%s-%cKEYWORDSet architecturemri-scriptRead MRI format linker scriptdcdpforce-group-allocationSet start addressExport all dynamic symbolsno-export-dynamicEBLink big-endian objectsLink 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-symbolsstrip-allStrip all symbolsstrip-debugStrip debugging symbolsno-strip-discardedtraceTrace file opensRead linker scriptdefault-scriptRead default linker scriptdTrequire-definedunique[=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 librariescall_sharedBstaticdnnon_sharedBsymbolicBsymbolic-functionsno-check-sectionsno-copy-dt-needed-entriescrefOutput cross reference tableSYMBOL=EXPRESSIONDefine a symbol[=STYLE]embedded-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-timeMapWrite a map fileno-define-commonDo not define Common storageno-demangleDo not demangle symbol namesno-keep-memoryno-undefinedno-allow-shlib-undefinedallow-multiple-definitionAllow multiple definitionsno-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-overheadsno-relaxretain-symbols-filerpathrpath-linkCreate a shared libraryBshareablepic-executablesort-common[=ascending|descending]sort_commonsort-sectionname|alignmentspare-dynamic-tagsCOUNTsplit-by-file[=SIZE]split-by-reloc[=COUNT]statsPrint memory usage statisticstarget-helptask-linkDo task level linkingtraditional-formatsection-startSECTION=ADDRESSSet address of named sectionTbssSet 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 listwarn-commonwarn-constructorswarn-multiple-gpwarn-oncewarn-section-alignwarn-shared-textrelwarn-alternate-emwarn-unresolved-symbolserror-unresolved-symbolswrapignore-unresolved-symbolpush-statepop-stateprint-memory-usageReport target memory usageorphan-handling=MODE˜[úÿÔpúÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿÞoúÿÅoúÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ[úÿ˜[úÿ´oúÿ˜[úÿ˜[úÿ˜[úÿ¨oúÿ•oúÿ/púÿ˜[úÿpúÿ˜[úÿ˜[úÿÿoúÿìoúÿ´púÿ‚púÿ˜[úÿ˜[úÿ ^úÿKmúÿ�núÿ˜[úÿtnúÿ˜[úÿ\núÿ núÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ£múÿ’múÿrmúÿcmúÿ;oúÿÆnúÿÔYúÿmúÿ“lúÿ˜[úÿ˜[úÿ~lúÿÔYúÿWlúÿDlúÿ˜[úÿ8lúÿ“lúÿ,lúÿlúÿlúÿñkúÿ˜[úÿåkúÿÔkúÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ˜[úÿ+kúÿkúÿ kúÿÁjúÿŒjúÿpúÿ€júÿÔYúÿYjúÿJjúÿ;júÿ,júÿ¨oúÿ júÿuúÿÔYúÿ júÿþiúÿòiúÿãiúÿÔiúÿÅiúÿ¹iúÿ­iúÿ–iúÿ‡iúÿxiúÿüaúÿ*^úÿmbúÿ búÿmúÿjcúÿcúÿ cúÿúbúÿUdúÿ�Zúÿ=dúÿ%dúÿ dúÿõcúÿÝcúÿÅcúÿ`fúÿˆZúÿôeúÿuúÿÆeúÿ³eúÿ[eúÿ'eúÿódúÿÍdúÿ¾dúÿ¯dúÿ dúÿ‘dúÿ‚dúÿsdúÿddúÿTiúÿ/iúÿ#iúÿiúÿ iúÿÿhúÿóhúÿâhúÿÓhúÿÇhúÿ»húÿ¯húÿ£húÿ—húÿrhúÿfhúÿZhúÿ;húÿ(húÿhúÿ9gúÿgúÿ gúÿôfúÿÛfúÿÏfúÿÃfúÿ·fúÿ«fúÿ“fúÿxfúÿlfúÿ—aúÿ~aúÿraúÿfaúÿµaúÿ¦aúÿÄaúÿí`úÿª`úÿj`úÿ^`úÿR`úÿ-`úÿ`úÿæ_úÿ×_úÿÄ_úÿµ_úÿÕvúÿ�_úÿ{_úÿV_úÿG_úÿmlúÿQoúÿqjúÿP~úÿ(~úÿ0~úÿ0~úÿ@~úÿ@~úÿ@~úÿ@~úÿ@~úÿ@~úÿ0~úÿ0~úÿ@~úÿ0~úÿ0~úÿ@~úÿX‚úÿ‚úÿ„�úÿ„�úÿh�úÿ �úÿ„�úÿ°ƒúÿ8ƒúÿ¸‚úÿ„�úÿ„�úÿƒúÿÐ�úÿ„�úÿà�úÿ@§úÿX¢úÿ£úÿ0£úÿp£úÿ@¤úÿ8¥úÿ`¤úÿè¤úÿX¥úÿ¦úÿ@¨úÿ€¨úÿ8¦úÿ ¦úÿà¦úÿÀªúÿ ªúÿ€ªúÿ`ªúÿ@ªúÿP©úÿ ªúÿ„«úÿD¬úÿ,¬úÿ¬úÿ¬úÿ—½úÿ'½úÿb½úÿ@½úÿ ½úÿ—½úÿp½úÿ”ÃúÿÄÃúÿÔÃúÿäÃúÿTÃúÿ„ÃúÿüÄúÿëÄúÿëÄúÿëÄúÿÅúÿëÄúÿëÄúÿëÄúÿëÄúÿëÄúÿëÄúÿëÄúÿëÄúÿÅúÿëÄúÿÜÄúÿÜÊúÿDÎúÿ•Èúÿ•Èúÿ¬Êúÿ¼Éúÿ¤Éúÿ„ÉúÿÉúÿÌÈúÿ•Èúÿ•ÈúÿìÍúÿìÎúÿ•ÈúÿÎúÿ ÛúÿÛúÿôÚúÿ<ÛúÿÛúÿÛúÿÛúÿþÚúÿôÚúÿxùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿhùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿXùúÿ�ùúÿ�ùúÿXùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿHùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ@ùúÿùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿhùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿXùúÿ�ùúÿ�ùúÿXùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿHùúÿ�ùúÿ�ùúÿ�ùúÿ�ùúÿ@ùúÿùúÿÈûÿ(ûÿ˜ûÿHûÿÐûÿXûÿ˜ûÿ˜ûÿûÿ˜ûÿ˜ûÿXûÿ˜ûÿ°ûÿXûÿxûÿØûÿØûÿàûÿèûÿ˜ûÿèûÿèûÿèûÿèûÿèûÿxûÿèûÿèûÿHûÿèûÿ(ûÿcmdline_remove_object_only_filescmdline_object_only_list_appendcmdline_check_object_only_sectioncmdline_get_object_only_input_filescompare_sectionprint_cmdline_listlang_do_assignments_1lang_size_sections_1cmdline_on_object_only_archive_list_pload_symbolsprint_data_statementpop_stat_ptrpush_stat_ptr%F%P: invalid data statement ldlang.crelocation count is negative%P%F: copy_section: %s: %s failed to copy private data%P%F: setup_section: %s: %s %10lu GB%10lu MB%10lu KB %10lu B.init.fini0x%V %T 0x%V %W %B %W (size before relaxing) Fail with %d SORT (CONSTRUCTORS) CONSTRUCTORS EXCLUDE_FILE(%s) SORT_BY_NAME(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[0x%V][unresolved][!provide]*undef* TARGET(%s) OUTPUT(%sLOAD %s START GROUP END GROUP INSERT %s %s [%B]elf32-bigelf64-bigelf32-littleelf64-little Allocating common symbols %lx%016lx?*[/DISCARD/.init_array..fini_array..ctors..dtors.-l$SYSROOTload base*ABS* Discarded input sections Memory Configuration AttributesLengthOriginName%-16s %-18s %-18s %s %-16s 0x%s !COMMON,:%P%F: target %s not found %B: file not recognized: %E %B: matching formats:%F %I ALLsubsection alignment*?[%P%F: multiple STARTUP files program header type__load_start_%s__load_stop_%sC++JavaObject-only input files: %B (%T) .exports.startof.%sphdr flagsphdr load address__start_%stypeinfo name for*typeinfo for*operator new*operator delete*SANE_EXPR%X%P: unknown feature `%s' %16s: %6.2f%% .obj-only.oerror setting up sections.gnu_object_onlyerror copying sections%F%P: invalid reloc statement %P%F: bfd_link_hash_lookup failed: %E %P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported %P%X: %s architecture of input file `%B' is incompatible with %s output %P%X: failed to merge target specific data of file %B %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 %P%F: gc-sections requires either an entry or an undefined symbol %P%F:%s: can't set start address %P%F: 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 failed to create output section%X%P: address 0x%v of %B section `%s' is not within region `%s' %X%P: %B section `%s' will not fit in region `%s' SORT_BY_NAME(SORT_BY_ALIGNMENT(SORT_BY_ALIGNMENT(SORT_BY_NAME(%P%F: Could not define common symbol `%T': %E Common symbol size file %P%F: cannot extract object-only section from %B: %E%P:%S: warning: redeclaration of memory region `%s' %P:%S: warning: memory region `%s' not declared %F%S: non constant or forward reference address expression for section %s %P%X: Internal error on COFF shared library section %s %P%F: error: no memory region specified for loadable section `%s' %P: warning: no memory region specified for loadable section `%s' %P: warning: changing start of section %s by %lu bytes %P: warning: changing start of section %s by %lu byte %P: warning: dot moved backwards before `%s' %P%F: can't relax section: %E %X%P:%S: section has both a load address and a load region %F%P:%S: error: alias for default memory region %F%P:%S: error: redefinition of memory region alias `%s' %F%P:%S: error: memory region `%s' for alias `%s' does not exist %P%F: failed creating section `%s': %E %P%F: can not create hash table: %E %P%F: Illegal use of `%s' section %P%F: output format %s cannot represent section called %s: %E Linker script and memory map %X%P: error: unplaced orphan section `%A' from `%B'. %P: warning: orphan section `%A' from `%B' being placed in section `%s'. %P: warning: could not find any targets that match endianness requirement %P%F: cannot open output file %s: %E %P%F:%s: can not make object file: %E %P%F:%s: can not set architecture: %E %P%F: invalid character %c (%d) in flags %F%B: file not recognized: %E %F%B: member %B in archive is not an object %F%B: error adding symbols: %E %P: warning: %s contains output sections; did you forget -T? %F%P:%S: error: align with input and explicit align specified %X%P:%S: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them %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 %P%F: Failed to create hash table %P%F: %s: plugin reported error after all symbols read As-needed library included to satisfy reference by file (symbol) %X%P: unable to read .exports section contents %F%P: invalid origin for memory region %s %F%P: invalid length for memory region %s %F%P: bfd_record_phdr failed: %E %X%P: section `%s' assigned to non-existent phdr `%s' %P%X: required symbol `%s' not defined %F%P: no sections assigned to phdrs %F%P: %s not found for insert %X%P: unable to find version dependency `%s' Memory region Used Size Region Size %%age Used %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: %Eerror 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 Y@srecIEEEieeeCOFFcoff-m68k%P%F: unknown format type %s GLOBAL_ Set Symbol %G %P%X: Different relocs used in set %s %P%X: Different object file formats composing set %s %P%X: %s does not support reloc %s for set %s %P%X: Special section %s does not support reloc %s for set %s %P%X: Unsupported size %d for set %s %X%H: reloc refers to symbol `%T' which is not being output %X%H: dangerous relocation: %s %B%F: could not read symbols: %E %I: no new IR symbols to claimi Archive member included to satisfy reference by file (symbol) additional relocation overflows omitted from the output relocation truncated to fit: %s against undefined symbol `%T' relocation truncated to fit: %s against symbol `%T' defined in %A section in %B relocation truncated to fit: %s against `%T'%X%C: multiple definition of `%T' %P: Disabling relaxation: it will not work with multiple definitions %B%F: could not read relocs: %E %P: warning: global constructor %s used %P%F: BFD backend error: BFD_RELOC_CTOR unsupported %B: warning: definition of `%T' overriding common %B: warning: common of `%T' overridden by definition %B: warning: common of `%T' overridden by larger common %B: warning: larger common is here %B: warning: common of `%T' overriding smaller common %B: warning: smaller common is here %B: warning: multiple common of `%T' %B: warning: previous common is here %P%F: bfd_hash_table_init failed: %E %P%F: bfd_hash_lookup failed: %E %X%C: undefined reference to `%T' %C: warning: undefined reference to `%T' %X%D: more undefined references to `%T' follow %D: warning: more undefined references to `%T' follow %X%B: undefined reference to `%T' %B: warning: undefined reference to `%T' %X%B: more undefined references to `%T' follow %B: warning: more undefined references to `%T' follow %X%P: error: duplicate retain-symbols-file %P%F: bfd_hash_lookup for insertion failed: %E %P: `-retain-symbols-file' overrides `-s' and `-S' %X%P: can't set BFD default target to `%s': %E ================================================== %P%F: --no-define-common may not be used without -shared %P%F: cannot open map file %s: %E %P: link errors found, deleting executable `%s' %P%F: unable to open for source of copy `%s' %P%F: unable to open for destination of copy `%s' %s: total time in link: %ld.%06ld %B: reference to %s %B: definition of %s %s(%s)%X%H:./ldmain.c+%v%D: first defined here using multiple gp values%C: %s%s %P: %s%s %B: %s%s %B: warning: common is here %B: warning: defined here %X%P: %s: %E built in linker scriptelf_x86_64/usr/share/locale--sysroot=x86_64-redhat-linux-gnuCOLLECT_NO_DEMANGLE_init_finiLDEMULATION-m%P%F: missing argument to -m -mips1-mips2-mips3-mips4-mips5-mips32-mips32r2-mips32r6-mips64-mips64r2-mips64r6-m486using external linker script:using internal linker script:%P%F: no input files %P: mode %s %F%B: final close failed: %E %P: Error writing file `%s' %P: Error closing file `%s' a.outà?ûÿà=ûÿà=ûÿø>ûÿø>ûÿà>ûÿmultiple_definitionreloc_overflowldwrite.c.stabstr$GDB_STRINGS$$GDB_SYMBOLS$%F%P: final link failed: %E %P%F: bfd_new_link_order failed %F%P: cannot create split section name for %s %F%P: clone section failed: %E VûÿVûÿàUûÿ°Uûÿ8VûÿüVûÿüVûÿ×Vûÿ²VûÿUûÿbuild_link_order%P%F: bfd_hash_allocate failed creating symbol %s %P: warning: address of `%s' isn't multiple of maximum page size %F%S can not PROVIDE assignment to location counter %F%S invalid assignment to location counter %F%S assignment to location counter invalid outside of SECTIONS %F%S cannot move location counter backwards (from %V to %V) %P%F:%s: hash creation failed %P%F: bfd_hash_lookup failed creating symbol %s %X%S: unresolvable symbol `%s' referenced in expression %F%S: undefined symbol `%s' referenced in expression %F%S: undefined section `%s' referenced in expression %F%S: undefined MEMORY region `%s' referenced in expression %F%S: unknown constant `%s' referenced in expression %F%S: nonconstant expression for %s %X%P: %s ldexp.c%F%S %% by zero %F%S / by zero MAXPAGESIZECOMMONPAGESIZENULL TREE %B:%s+0x%vPROVIDE (%s = ("", ASSERT (, %s) (%s)+=-=*=/=<<=>>=&=|=||&&==!=<<>>MAXMINASSERT¤]ûÿœ^ûÿì^ûÿ¤_ûÿt`ûÿt`ûÿt`ûÿÌ`ûÿ]ûÿ\]ûÿ„|ûÿä|ûÿ$}ûÿ|}ûÿô}ûÿ´}ûÿ´}ûÿÜ}ûÿô{ûÿD|ûÿGNUTARGET%S SYSLIB ignored %S HLL ignored Supported emulations: %s: %P: unrecognised emulation mode: %s no emulation specific options. GNU ld %s version 2.30-128.el8_10 Supported emulations: %s Copyright (C) 2018 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: internal error: aborting at %s:%d %P%F: please report this bug ldmisc.c0x%sno symbol[%s]%s generated%s:%u%s+0x%v (type %s)%B: In function `%T': %s:%T(%A+0x%v)%p%ld%lu%%%c%u%s%F%P: internal error %s %d ‡Œûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿ�Œûÿ�Œûÿ6Œûÿ6Œûÿœ’ûÿœ’ûÿ6Œûÿ6Œûÿ�Œûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿ�Œûÿ�Œûÿ�Œûÿœ’ûÿ]Œûÿ]Œûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿdŒûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿœ’ûÿkŒûÿœ’ûÿœ’ûÿœ’ûÿ�Œûÿœ’ûÿœ’ûÿ�Œûÿœ’ûÿdŒûÿ]ŒûÿÅ’ûÿôˆûÿ¤‡ûÿ¤‡ûÿ¤‡ûÿ”ˆûÿŠûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#ŠûÿŠûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿœ‹ûÿ<Œûÿ]�ûÿ]�ûÿñŠûÿ‹ûÿ]�ûÿ]�ûÿ!‹ûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ^�ûÿ#Šûÿv�ûÿ¶�ûÿþ�ûÿ#ŠûÿuŽûÿ¤Žûÿ3�ûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#ŠûÿF�ûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#Šûÿ#ŠûÿèŒûÿ#Šûÿ#Šûÿ#Šûÿ/�ûÿ#Šûÿ#Šûÿ¢Šûÿ#ŠûÿÊûÿ‚Œûÿvfinfo/ldscriptscannot find script file %s opened script file %s /usr/lib/usr/binattempt 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 %P: cannot find %s %P%F: cannot open linker script file %s: %E %F%P: invalid BFD target `%s' %P: skipping incompatible %s when searching for %s %F%P: attempted static link of dynamic object `%s' %P%F: cannot represent machine `%s' ldcref.c%X%P: cref alloc failed: %E Cross Reference Table SymbolFile No symbols %P: symbol `%T' missing from main hash table %X%C: prohibited cross reference from %s to `%T' in %s %X%P: bfd_hash_table_init of cref table failed: %E %X%P: cref_hash_lookup failed: %E %P%F: plugin_strdup failed to allocate memory: %s %P%F: unsupported input file size: %s (%ld bytes) %P%F: %s: non-ELF symbol in ELF BFD! %P%F: unknown ELF symbol visibility: %d! %P%F: %s: plugin symbol table corrupt (sym type %d) %P: %B: symbol `%s' definition: %d, visibility: %d, resolution: %d could not create dummy IR bfd: %F%E %P%F: plugin failed to allocate memory for input: %s %P%F: %s: plugin reported error claiming file %P%F: %s: error loading plugin: %s %P: %s: error in plugin cleanup: %d (ignored) plugin.c.gnu.linkonce.t.%P%F%P%X%P: warning: : error: (symbol from plugin)%P: %s: duplicated plugin pass-through=_onload%P%F: %s: plugin error: %d @·ûÿиûÿ°¸ûÿ ¸ûÿè·ûÿµÅûÿlÈûÿµÅûÿ<ÈûÿµÅûÿ,ÈûÿÈûÿ ÈûÿüÇûÿìÇûÿÜÇûÿÌÇûÿ¼Çûÿ¬ÇûÿœÇûÿŒÇûÿ|ÇûÿlÇûÿ\ÇûÿµÅûÿµÅûÿµÅûÿµÅûÿµÅûÿµÅûÿŒÅûÿget_symbols    md5sha1uuid/dev/urandom/* Script for ld -Ur: link w/out relocation, do create constructors */ /* Copyright (C) 2014-2018 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 { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.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) } .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) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) *(.iplt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .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_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 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 .gcc_except_table.*) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) *(.igot) } .got.plt 0 : { *(.got.plt) *(.igot.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } .lbss 0 : { *(.dynlbss) *(.lbss) *(LARGE_COMMON) } .lrodata 0 : { *(.lrodata) } .ldata 0 : { *(.ldata) } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for ld -r: link without relocation */ /* Copyright (C) 2014-2018 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 { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.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) } .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) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) *(.iplt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .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_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 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 .gcc_except_table.*) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) *(.igot) } .got.plt 0 : { *(.got.plt) *(.igot.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } .lbss 0 : { *(.dynlbss) *(.lbss) *(LARGE_COMMON) } .lrodata 0 : { *(.lrodata) } .ldata 0 : { *(.ldata) } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -N: mix text and data on same page; don't align data */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 = .); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -n: mix text and data on same page */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z now -z relro -z separate-code: position independent executable, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z separate-code: combine and sort reloc sections with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc: position independent executable, combine & sort relocs */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld -pie -z separate-code: link position independent executable with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld -pie: link position independent executable */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc -z now -z relro -z separate-code: shared library, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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: shared library, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc: shared library, combine & sort relocs */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld --shared -z separate-code: link shared library with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld --shared: link shared library */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z now -z relro -z separate-code: combine and sort reloc sections with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z now -z relro: combine and sort reloc sections */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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: position independent executable, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc: combine and sort reloc sections */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z separate-code: generate normal executables with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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-2018 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("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } %P%F: --just-symbols may not be used on DSO: %B -z noextern-protected-data Do not treat protected data symbol as external -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) -z bndplt Always generate BND prefix in PLT entries %P%F: invalid --compress-debug-sections option: `%s' %P%F: invalid hash style `%s' %P%F: invalid maxium page size `%s' %P%F: invalid common page size `%s' %P%F: invalid stack size `%s' %P%F: invalid number for -z call-nop=prefix-: %s %P%F: invalid number for -z call-nop=suffix-: %s %P%F: unsupported option: -z %s %F%P: invalid option for -z cet-report=: %s %P%F: failed to set dynamic section sizes: %E %F%B: Can't read contents of section .gnu.warning: %E %P%F: failed to record assignment to %s: %E %P: warning: .note.gnu.build-id section discarded, --build-id ignored. %P: warning: %s, needed by %B, may conflict with %s %P: warning: -z dynamic-undefined-weak ignored %X%P: .eh_frame/.stab edit: %E %F%P: map sections to segments failed: %E %F%P:%B: bfd_elf_get_bfd_needed_list failed: %E unrecognised or unsupported token '%s' in search path %F%s: Can't open for writing: %E %P: warning: unrecognized --build-id style ignored. %P: warning: Cannot create .note.gnu.build-id section, --build-id ignored. %P%F: compact frame descriptions incompatible with DWARF2 .eh_frame from %B %P: warning: Cannot create .eh_frame_hdr section, --eh-frame-hdr ignored. %P%F: Failed to parse EH frame entries. %P: warning: %s, needed by %B, not found (try using -rpath or -rpath-link) zlibzlib-gnuzlib-gabisysvbothundefsmuldefsmax-page-size=common-page-size=stack-size=noexecstackglobalauditinitfirstinterposeloadfltrnodefaultlibnodeletenodlopennodumplazyoriginnocombrelocnocopyrelocnorelronoseparate-codenocommonnotexttextoffnoextern-protected-datanodynamic-undefined-weaknoreloc-overflowcall-nop=prefix-addrsuffix-nopprefix-suffix-ibtpltibtshstkcet-report=bndplt%P: warning: -z %s ignored. %s/lib%s%s.soeelf_x86_64.c__ehdr_startLD_RUN_PATH.gnu.warninginclude.so.i386:x86-64.mbind.bss.mbind.data.mbind.rodata.mbind.text.rela.dyn.rel.dyn.rel.gnu.warning..note.plt%P%F: looping in map_segmentslibc.so%F%P:%B: bfd_stat failed: %E found %s at %s lib64RIGIN}IB}%.*s%s/%s%.*s%s.note.gnu.build-id.note.GNU-stack.eh_frame_entry.eh_frame.eh_frame_hdr%s needed by %B LD_LIBRARY_PATH/usr/etc/ld.so.conf.tdata.interp.sdata.commentBgroupcompress-debug-sectionsdepauditdisable-new-dtagsenable-new-dtagsno-eh-frame-hdrexclude-libshash-styleno-ld-generated-unwind-infoelf64-x86-64äéøÿÄéøÿ¼éøÿ«éøÿ„éøÿôéøÿôéøÿz:P:/* Script for ld -Ur: link w/out relocation, do create constructors */ /* Copyright (C) 2014-2018 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 { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.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) } .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) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) *(.iplt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .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_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 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 .gcc_except_table.*) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) *(.igot) } .got.plt 0 : { *(.got.plt) *(.igot.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } .lbss 0 : { *(.dynlbss) *(.lbss) *(LARGE_COMMON) } .lrodata 0 : { *(.lrodata) } .ldata 0 : { *(.ldata) } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for ld -r: link without relocation */ /* Copyright (C) 2014-2018 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 { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.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) } .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) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) *(.iplt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .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_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 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 .gcc_except_table.*) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) *(.igot) } .got.plt 0 : { *(.got.plt) *(.igot.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } .lbss 0 : { *(.dynlbss) *(.lbss) *(LARGE_COMMON) } .lrodata 0 : { *(.lrodata) } .ldata 0 : { *(.ldata) } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -N: mix text and data on same page; don't align data */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 = .); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -n: mix text and data on same page */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z now -z relro -z separate-code: position independent executable, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z separate-code: combine and sort reloc sections with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc: position independent executable, combine & sort relocs */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld -pie -z separate-code: link position independent executable with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld -pie: link position independent executable */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc -z now -z relro -z separate-code: shared library, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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: shared library, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc: shared library, combine & sort relocs */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld --shared -z separate-code: link shared library with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld --shared: link shared library */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z now -z relro -z separate-code: combine and sort reloc sections with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z now -z relro: combine and sort reloc sections */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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: position independent executable, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc: combine and sort reloc sections */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z separate-code: generate normal executables with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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-2018 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("=/usr/x86_64-redhat-linux/libx32"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(32 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } eelf32_x86_64.ci386:x64-32elf32_x86_64elf32-x86-64°8öÿ�8öÿˆ8öÿw8öÿP8öÿÀ8öÿÀ8öÿz:P:/* Script for ld -Ur: link w/out relocation, do create constructors */ /* Copyright (C) 2014-2018 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 { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.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) } .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) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) *(.iplt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .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_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 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 .gcc_except_table.*) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) *(.igot) } .got.plt 0 : { *(.got.plt) *(.igot.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for ld -r: link without relocation */ /* Copyright (C) 2014-2018 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 { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.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) } .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) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) *(.iplt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .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_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 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 .gcc_except_table.*) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) *(.igot) } .got.plt 0 : { *(.got.plt) *(.igot.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -N: mix text and data on same page; don't align data */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't 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 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -n: mix text and data on same page */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z now -z relro -z separate-code: position independent executable, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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.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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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.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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z separate-code: combine and sort reloc sections with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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.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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc: position independent executable, combine & sort relocs */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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.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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld -pie -z separate-code: link position independent executable with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld -pie: link position independent executable */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc -z now -z relro -z separate-code: shared library, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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) } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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: shared library, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc: shared library, combine & sort relocs */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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) } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld --shared -z separate-code: link shared library with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld --shared: link shared library */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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) } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z now -z relro -z separate-code: combine and sort reloc sections with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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.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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z now -z relro: combine and sort reloc sections */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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.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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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: position independent executable, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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.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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc: combine and sort reloc sections */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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.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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z separate-code: generate normal executables with separate code segment */ /* Copyright (C) 2014-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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-2018 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("=/usr/i386-redhat-linux/lib32"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/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; .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) } .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 = .); } .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.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } eelf_i386.celf_i386elf32-i386À´óÿ ´óÿ˜´óÿ‡´óÿ`´óÿдóÿдóÿz:P:/* Script for ld -Ur: link w/out relocation, do create constructors */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.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) } .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) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) *(.iplt) } .plt.got 0 : { *(.plt.got) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .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_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 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 .gcc_except_table.*) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) *(.igot) } .got.plt 0 : { *(.got.plt) *(.igot.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for ld -r: link without relocation */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.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) } .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) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) *(.iplt) } .plt.got 0 : { *(.plt.got) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .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_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 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 .gcc_except_table.*) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) *(.igot) } .got.plt 0 : { *(.got.plt) *(.igot.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -N: mix text and data on same page; don't align data */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't 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 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -n: mix text and data on same page */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z now -z relro -z separate-code: position independent executable, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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.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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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.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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z separate-code: combine and sort reloc sections with separate code segment */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; .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.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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc: position independent executable, combine & sort relocs */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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.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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld -pie -z separate-code: link position independent executable with separate code segment */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld -pie: link position independent executable */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc -z now -z relro -z separate-code: shared library, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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: shared library, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc: shared library, combine & sort relocs */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld --shared -z separate-code: link shared library with separate code segment */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld --shared: link shared library */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z now -z relro -z separate-code: combine and sort reloc sections with separate code segment */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; .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.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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z now -z relro: combine and sort reloc sections */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; .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.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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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: position independent executable, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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.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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc: combine and sort reloc sections */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; .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.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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z separate-code: generate normal executables with separate code segment */ /* Copyright (C) 2014-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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-2018 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-iamcu", "elf32-iamcu", "elf32-iamcu") OUTPUT_ARCH(iamcu) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } eelf_iamcu.celf_iamcuelf32-iamcu¬EñÿŒEñÿ„EñÿsEñÿLEñÿ¼Eñÿ¼Eñÿz:P:ldscripts/i386linux.xuldscripts/i386linux.xrldscripts/i386linux.xbnldscripts/i386linux.xldscripts/i386linux.xn%s/lib%s%s.saei386linux.ci386linuxa.out-i386-linux/* Script for ld -Ur: link w/out relocation, do create constructors */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.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) } .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) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .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_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 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 .gcc_except_table.*) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) *(.igot) } .got.plt 0 : { *(.got.plt) *(.igot.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } .lbss 0 : { *(.dynlbss) *(.lbss) *(LARGE_COMMON) } .lrodata 0 : { *(.lrodata) } .ldata 0 : { *(.ldata) } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for ld -r: link without relocation */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.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) } .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) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .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_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 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 .gcc_except_table.*) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) *(.igot) } .got.plt 0 : { *(.got.plt) *(.igot.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } .lbss 0 : { *(.dynlbss) *(.lbss) *(LARGE_COMMON) } .lrodata 0 : { *(.lrodata) } .ldata 0 : { *(.ldata) } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -N: mix text and data on same page; don't align data */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 = .); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -n: mix text and data on same page */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z now -z relro -z separate-code: position independent executable, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z separate-code: combine and sort reloc sections with separate code segment */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc: position independent executable, combine & sort relocs */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld -pie -z separate-code: link position independent executable with separate code segment */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld -pie: link position independent executable */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc -z now -z relro -z separate-code: shared library, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/lib64"); 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; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/lib64"); 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; .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) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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: shared library, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/lib64"); 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; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc: shared library, combine & sort relocs */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/lib64"); 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; .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) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld --shared -z separate-code: link shared library with separate code segment */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/lib64"); 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; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld --shared: link shared library */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/lib64"); 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; .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) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z now -z relro -z separate-code: combine and sort reloc sections with separate code segment */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z now -z relro: combine and sort reloc sections */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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: position independent executable, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc: combine and sort reloc sections */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z separate-code: generate normal executables with separate code segment */ /* Copyright (C) 2014-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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-2018 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-l1om", "elf64-l1om", "elf64-l1om") OUTPUT_ARCH(l1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } eelf_l1om.celf_l1omelf64-l1omX›îÿ8›îÿ0›îÿ›îÿøšîÿh›îÿh›îÿz:P:/* Script for ld -Ur: link w/out relocation, do create constructors */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.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) } .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) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .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_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 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 .gcc_except_table.*) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) *(.igot) } .got.plt 0 : { *(.got.plt) *(.igot.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } .lbss 0 : { *(.dynlbss) *(.lbss) *(LARGE_COMMON) } .lrodata 0 : { *(.lrodata) } .ldata 0 : { *(.ldata) } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for ld -r: link without relocation */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.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) } .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) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .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_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 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 .gcc_except_table.*) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) *(.igot) } .got.plt 0 : { *(.got.plt) *(.igot.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } .lbss 0 : { *(.dynlbss) *(.lbss) *(LARGE_COMMON) } .lrodata 0 : { *(.lrodata) } .ldata 0 : { *(.ldata) } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -N: mix text and data on same page; don't align data */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 = .); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -n: mix text and data on same page */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z now -z relro -z separate-code: position independent executable, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z separate-code: combine and sort reloc sections with separate code segment */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -pie -z combreloc: position independent executable, combine & sort relocs */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld -pie -z separate-code: link position independent executable with separate code segment */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld -pie: link position independent executable */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc -z now -z relro -z separate-code: shared library, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/lib64"); 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; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/lib64"); 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; .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) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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: shared library, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/lib64"); 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; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for --shared -z combreloc: shared library, combine & sort relocs */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/lib64"); 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; .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) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld --shared -z separate-code: link shared library with separate code segment */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/lib64"); 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; .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) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for ld --shared: link shared library */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/lib64"); 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; .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) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .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) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z now -z relro -z separate-code: combine and sort reloc sections with separate code segment */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc -z now -z relro: combine and sort reloc sections */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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: position independent executable, combine & sort relocs with separate code segment */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z combreloc: combine and sort reloc sections */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } /* Script for -z separate-code: generate normal executables with separate code segment */ /* Copyright (C) 2014-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* 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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .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-2018 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-k1om", "elf64-k1om", "elf64-k1om") OUTPUT_ARCH(k1om) ENTRY(_start) SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS; .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) } .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 = .); } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .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.*) } .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 .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. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* 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 .exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.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 = .); . = .; __bss_start = .; .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 don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } . = ALIGN(64 / 8); . = 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 (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } .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 Extension. */ .debug_macro 0 : { *(.debug_macro) } .debug_addr 0 : { *(.debug_addr) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.gnu_object_only) } } eelf_k1om.celf_k1omelf64-k1om¸÷ëÿ˜÷ëÿ�÷ëÿ÷ëÿX÷ëÿÈ÷ëÿÈ÷ëÿz:P:.debug_.idata$__section_alignment__+%s pei-x86-64pe-x86-64ei386pep.c.def.DEF__image_base____size_of_stack_reserve____size_of_heap_reserve__.idata__head_%s() -%s *%s .buildid%s:%s ->%s .idata$2.obj%s.%cWinMainCRTStartupNtProcessStartupa.exe___ImageBasenative__size_of_heap_commit____size_of_stack_commit____major_subsystem_version____minor_subsystem_version____subsystem____major_os_version____minor_os_version____major_image_version____minor_image_version____file_alignment____dll____dll_characteristics__lib%s.dll.a%s/arelent: %s@%#lx: add=%li pcrel %d bit rel. mainCRTStartup__PosixProcessStartuplib%s.a%s.lib%s%s.dlllib%s.dll.rdatabase-filefile-alignmentmajor-image-versionmajor-os-versionmajor-subsystem-versionminor-image-versionminor-os-versionminor-subsystem-versionsection-alignmentsubsystemsupport-old-codeno-leading-underscoreoutput-defexport-all-symbolsexclude-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-nameshigh-entropy-vadynamicbaseforceintegnxcompatno-isolationno-sehno-bindwdmdrivertsawareno-insert-timestampwindowsconsoleposixwincexboxi386pep__loader_flags__ --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 --high-entropy-va Image is compatible with 64-bit address space layout randomization (ASLR) --dynamicbase Image base address may be relocated using address space layout randomization (ASLR) --forceinteg Code integrity checks are enforced --nxcompat Image is compatible with data execution prevention --no-isolation Image understands isolation but do not isolate the image --no-seh Image does not use SEH. No SE handler may be called in this image --no-bind Do not bind this image --wdmdriver Driver uses the WDM model --tsaware Image is Terminal Server aware --build-id[=STYLE] Generate build ID Warning: resolving %s by linking to %s Use --enable-stdcall-fixup to disable these warnings Use --disable-stdcall-fixup to disable these fixups /* Script for ld -Ur: link w/out relocation, do create constructors */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-pep/lib"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { .text : { *(.text) . = ALIGN(8); PROVIDE(___CTOR_LIST__ = .); PROVIDE(__CTOR_LIST__ = .); LONG (-1); LONG (-1); KEEP (*(.ctors)); KEEP (*(.ctor)); KEEP (*(SORT_BY_NAME(.ctors.*))); LONG (0); LONG (0); PROVIDE(___DTOR_LIST__ = .); PROVIDE(__DTOR_LIST__ = .); LONG (-1); LONG (-1); KEEP (*(.dtors)); KEEP (*(.dtor)); KEEP (*(SORT_BY_NAME(.dtors.*))); LONG (0); LONG (0); /* ??? Why is .gcc_exc here? */ } /* 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) } .eh_frame : { KEEP (*(.eh_frame)) } .pdata : { KEEP(*(.pdata)) } .xdata : { KEEP(*(.xdata)) } .bss : { *(.bss) *(COMMON) } .edata : { *(.edata) } /DISCARD/ : { *(.debug$S) *(.debug$T) *(.debug$F) *(.drectve) } .idata : { /* This cannot currently be handled with grouped sections. See pep.em:sort_sections. */ } .CRT : { /* ___crt_xl_end__ is defined in the TLS Directory support code */ } /* 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) } .debug_pubtypes : { *(.debug_pubtypes) } .zdebug_pubtypes : { *(.zdebug_pubtypes) } /* 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) } .debug_macro : { *(.debug_macro) } .zdebug_macro : { *(.zdebug_macro) } /* DWARF 3. */ .debug_ranges : { *(.debug_ranges) } .zdebug_ranges : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types : { *(.debug_types) } .zdebug_types : { *(.zdebug_types) } /* For Go and Rust. */ .debug_gdb_scripts : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts : { *(.zdebug_gdb_scripts) } } /* Script for ld -r: link without relocation */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-pep/lib"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { .text : { *(.text) /* ??? Why is .gcc_exc here? */ } /* 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) } .eh_frame : { KEEP (*(.eh_frame)) } .pdata : { KEEP(*(.pdata)) } .xdata : { KEEP(*(.xdata)) } .bss : { *(.bss) *(COMMON) } .edata : { *(.edata) } /DISCARD/ : { *(.debug$S) *(.debug$T) *(.debug$F) *(.drectve) } .idata : { /* This cannot currently be handled with grouped sections. See pep.em:sort_sections. */ } .CRT : { /* ___crt_xl_end__ is defined in the TLS Directory support code */ } /* 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) } .debug_pubtypes : { *(.debug_pubtypes) } .zdebug_pubtypes : { *(.zdebug_pubtypes) } /* 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) } .debug_macro : { *(.debug_macro) } .zdebug_macro : { *(.zdebug_macro) } /* DWARF 3. */ .debug_ranges : { *(.debug_ranges) } .zdebug_ranges : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types : { *(.debug_types) } .zdebug_types : { *(.zdebug_types) } /* For Go and Rust. */ .debug_gdb_scripts : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts : { *(.zdebug_gdb_scripts) } } /* Script for -N: mix text and data on same page; don't align data */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-pep/lib"); SEARCH_DIR("=/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(*(.init)) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) . = ALIGN(8); PROVIDE(___CTOR_LIST__ = .); PROVIDE(__CTOR_LIST__ = .); LONG (-1); LONG (-1); KEEP (*(.ctors)); KEEP (*(.ctor)); KEEP (*(SORT_BY_NAME(.ctors.*))); LONG (0); LONG (0); PROVIDE(___DTOR_LIST__ = .); PROVIDE(__DTOR_LIST__ = .); LONG (-1); LONG (-1); KEEP (*(.dtors)); KEEP (*(.dtor)); KEEP (*(SORT_BY_NAME(.dtors.*))); LONG (0); LONG (0); KEEP (*(.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$*)) __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; } __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start; ___RUNTIME_PSEUDO_RELOC_LIST_END__ = .; __RUNTIME_PSEUDO_RELOC_LIST_END__ = .; ___RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; .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); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; SORT(*)(.idata$5) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } .CRT BLOCK(__section_alignment__) : { ___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__ = . ; } /* 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) } .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } /* 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) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } /* DWARF 3. */ .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 .zdebug.gnu.linkonce.wt.*) } /* 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: mix text and data on same page */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-pep/lib"); SEARCH_DIR("=/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(*(.init)) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) . = ALIGN(8); PROVIDE(___CTOR_LIST__ = .); PROVIDE(__CTOR_LIST__ = .); LONG (-1); LONG (-1); KEEP (*(.ctors)); KEEP (*(.ctor)); KEEP (*(SORT_BY_NAME(.ctors.*))); LONG (0); LONG (0); PROVIDE(___DTOR_LIST__ = .); PROVIDE(__DTOR_LIST__ = .); LONG (-1); LONG (-1); KEEP (*(.dtors)); KEEP (*(.dtor)); KEEP (*(SORT_BY_NAME(.dtors.*))); LONG (0); LONG (0); KEEP (*(.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$*)) __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; } __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start; ___RUNTIME_PSEUDO_RELOC_LIST_END__ = .; __RUNTIME_PSEUDO_RELOC_LIST_END__ = .; ___RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; .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); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; SORT(*)(.idata$5) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } .CRT BLOCK(__section_alignment__) : { ___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__ = . ; } /* 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) } .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } /* 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) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } /* DWARF 3. */ .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 .zdebug.gnu.linkonce.wt.*) } /* 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-2018 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("=/usr/x86_64-pep/lib"); SEARCH_DIR("=/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(*(.init)) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) . = ALIGN(8); PROVIDE(___CTOR_LIST__ = .); PROVIDE(__CTOR_LIST__ = .); LONG (-1); LONG (-1); KEEP (*(.ctors)); KEEP (*(.ctor)); KEEP (*(SORT_BY_NAME(.ctors.*))); LONG (0); LONG (0); PROVIDE(___DTOR_LIST__ = .); PROVIDE(__DTOR_LIST__ = .); LONG (-1); LONG (-1); KEEP (*(.dtors)); KEEP (*(.dtor)); KEEP (*(SORT_BY_NAME(.dtors.*))); LONG (0); LONG (0); KEEP (*(.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$*)) __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; } __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start; ___RUNTIME_PSEUDO_RELOC_LIST_END__ = .; __RUNTIME_PSEUDO_RELOC_LIST_END__ = .; ___RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; .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); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; SORT(*)(.idata$5) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } .CRT BLOCK(__section_alignment__) : { ___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__ = . ; } /* 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) } .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } /* 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) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } /* DWARF 3. */ .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 .zdebug.gnu.linkonce.wt.*) } /* 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 ld --enable-auto-import: Like the default script except read only data is placed into .data */ /* Copyright (C) 2014-2018 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("=/usr/x86_64-pep/lib"); SEARCH_DIR("=/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(*(.init)) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) . = ALIGN(8); PROVIDE(___CTOR_LIST__ = .); PROVIDE(__CTOR_LIST__ = .); LONG (-1); LONG (-1); KEEP (*(.ctors)); KEEP (*(.ctor)); KEEP (*(SORT_BY_NAME(.ctors.*))); LONG (0); LONG (0); PROVIDE(___DTOR_LIST__ = .); PROVIDE(__DTOR_LIST__ = .); LONG (-1); LONG (-1); KEEP (*(.dtors)); KEEP (*(.dtor)); KEEP (*(SORT_BY_NAME(.dtors.*))); LONG (0); LONG (0); KEEP (*(.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__) : { __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; } __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start; ___RUNTIME_PSEUDO_RELOC_LIST_END__ = .; __RUNTIME_PSEUDO_RELOC_LIST_END__ = .; ___RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; .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); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; SORT(*)(.idata$5) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } .CRT BLOCK(__section_alignment__) : { ___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__ = . ; } /* 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) } .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } /* 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) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } /* DWARF 3. */ .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 .zdebug.gnu.linkonce.wt.*) } /* For Go and Rust. */ .debug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_gdb_scripts) } } %P: warning: Cannot create .buildid section, --build-id ignored. %F%P: cannot perform PE operations on non PE output file '%B'. %X%P: unable to process relocs: %E %P: warning: --export-dynamic is not supported for PE+ targets, did you mean --export-all-symbols? %P%F: invalid hex number for PE parameter '%s' %P%F: strange hex info for PE parameter '%s' %F%P: cannot open base file %s %P: warning: bad version number in -subsystem option %P%F: invalid subsystem type %s %P: warning, file alignment > section alignment. %P: warning: .buildid section discarded, --build-id ignored. %C: Cannot get section contents - auto-import exception import of 0x%lx(0x%lx) sec_addr=0x%lxuse-nul-prefixed-import-tablesenable-runtime-pseudo-reloc-v2@‚ëÿ`ëÿ@ëÿ ëÿëÿà~ëÿÀ~ëÿ ~ëÿ€~ëÿ`~ëÿ@~ëÿ ~ëÿ€ëÿÀ�ëÿ }ëÿ �ëÿà€ëÿÀ€ëÿ €ëÿˆ€ëÿ~ëÿà}ëÿÀ}ëÿ }ëÿˆ}ëÿ@�ëÿ �ëÿ�ëÿ`�ëÿ‚ëÿà�ëÿ ‚ëÿ€�ëÿp}ëÿÀ„ëÿp}ëÿ „ëÿ€„ëÿ`„ëÿ@„ëÿ „ëÿ„ëÿàƒëÿÀƒëÿ ƒëÿ€ƒëÿ`ƒëÿ@ƒëÿ ƒëÿƒëÿà‚ëÿÀ‚ëÿ ‚ëÿÀ|ëÿmainCRTStartuppep_fixup_stdcallspep_find_data_importsgld_i386pep_after_opengld_i386pep_set_symbolsset_pep_nameis_underscoringpei-i386pe-i386ei386pe.cDllMainCRTStartup@12thumb-entryenable-extra-pe-debugdisable-large-address-awarei386pe --thumb-entry= Set the entry point to be Thumb --[no-]insert-timestamp Use a real timestamp rather than zero (default). --warn-duplicate-exports Warn about duplicate exports --enable-auto-image-base[=
] Automatically choose image base for DLLs (optionally starting with address) unless specifically set with --image-base --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 /* Script for ld -Ur: link w/out relocation, do create constructors */ /* Copyright (C) 2014-2018 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-i386) SEARCH_DIR("=/usr/x86_64-pep/lib"); SECTIONS { .text : { *(.text) PROVIDE(___CTOR_LIST__ = .); PROVIDE(__CTOR_LIST__ = .); LONG (-1); KEEP(*(.ctors)); KEEP(*(.ctor)); KEEP(*(SORT_BY_NAME(.ctors.*))); LONG (0); PROVIDE(___DTOR_LIST__ = .); PROVIDE(__DTOR_LIST__ = .); LONG (-1); KEEP(*(.dtors)); KEEP(*(.dtor)); KEEP(*(SORT_BY_NAME(.dtors.*))); LONG (0); /* ??? Why is .gcc_exc here? */ } /* 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) } .eh_frame : { KEEP(*(.eh_frame)) } .pdata : { KEEP(*(.pdata)) } .bss : { *(.bss) *(COMMON) } .edata : { *(.edata) } /DISCARD/ : { *(.debug$S) *(.debug$T) *(.debug$F) *(.drectve) } .idata : { /* This cannot currently be handled with grouped sections. See pe.em:sort_sections. */ } .CRT : { /* ___crt_xl_end__ is defined in the TLS Directory support code */ } /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be at the end of 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) } .debug_pubtypes : { *(.debug_pubtypes) } .zdebug_pubtypes : { *(.zdebug_pubtypes) } /* 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) } .debug_macro : { *(.debug_macro) } .zdebug_macro : { *(.zdebug_macro) } /* DWARF 3. */ .debug_ranges : { *(.debug_ranges) } .zdebug_ranges : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types : { *(.debug_types) } .zdebug_types : { *(.zdebug_types) } /* For Go and Rust. */ .debug_gdb_scripts : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts : { *(.zdebug_gdb_scripts) } } /* Script for ld -r: link without relocation */ /* Copyright (C) 2014-2018 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-i386) SEARCH_DIR("=/usr/x86_64-pep/lib"); SECTIONS { .text : { *(.text) /* ??? Why is .gcc_exc here? */ } /* 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) } .eh_frame : { KEEP(*(.eh_frame)) } .pdata : { KEEP(*(.pdata)) } .bss : { *(.bss) *(COMMON) } .edata : { *(.edata) } /DISCARD/ : { *(.debug$S) *(.debug$T) *(.debug$F) *(.drectve) } .idata : { /* This cannot currently be handled with grouped sections. See pe.em:sort_sections. */ } .CRT : { /* ___crt_xl_end__ is defined in the TLS Directory support code */ } /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be at the end of 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) } .debug_pubtypes : { *(.debug_pubtypes) } .zdebug_pubtypes : { *(.zdebug_pubtypes) } /* 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) } .debug_macro : { *(.debug_macro) } .zdebug_macro : { *(.zdebug_macro) } /* DWARF 3. */ .debug_ranges : { *(.debug_ranges) } .zdebug_ranges : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types : { *(.debug_types) } .zdebug_types : { *(.zdebug_types) } /* For Go and Rust. */ .debug_gdb_scripts : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts : { *(.zdebug_gdb_scripts) } } /* Script for -N: mix text and data on same page; don't align data */ /* Copyright (C) 2014-2018 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-i386) SEARCH_DIR("=/usr/x86_64-pep/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(*(.init)) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) PROVIDE(___CTOR_LIST__ = .); PROVIDE(__CTOR_LIST__ = .); LONG (-1); KEEP(*(.ctors)); KEEP(*(.ctor)); KEEP(*(SORT_BY_NAME(.ctors.*))); LONG (0); PROVIDE(___DTOR_LIST__ = .); PROVIDE(__DTOR_LIST__ = .); LONG (-1); KEEP(*(.dtors)); KEEP(*(.dtor)); KEEP(*(SORT_BY_NAME(.dtors.*))); LONG (0); KEEP (*(.fini)) /* ??? Why is .gcc_exc here? */ *(.gcc_exc) PROVIDE (etext = .); 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$*)) __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; } __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start; ___RUNTIME_PSEUDO_RELOC_LIST_END__ = .; __RUNTIME_PSEUDO_RELOC_LIST_END__ = .; ___RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; .eh_frame BLOCK(__section_alignment__) : { KEEP(*(.eh_frame*)) } .pdata BLOCK(__section_alignment__) : { KEEP(*(.pdata*)) } .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 pe.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); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; KEEP (SORT(*)(.idata$5)) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } .CRT BLOCK(__section_alignment__) : { ___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__ = . ; } /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be at the end of 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) } .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } /* 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) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } /* DWARF 3. */ .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.*) } /* 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: mix text and data on same page */ /* Copyright (C) 2014-2018 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-i386) SEARCH_DIR("=/usr/x86_64-pep/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(*(.init)) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) PROVIDE(___CTOR_LIST__ = .); PROVIDE(__CTOR_LIST__ = .); LONG (-1); KEEP(*(.ctors)); KEEP(*(.ctor)); KEEP(*(SORT_BY_NAME(.ctors.*))); LONG (0); PROVIDE(___DTOR_LIST__ = .); PROVIDE(__DTOR_LIST__ = .); LONG (-1); KEEP(*(.dtors)); KEEP(*(.dtor)); KEEP(*(SORT_BY_NAME(.dtors.*))); LONG (0); KEEP (*(.fini)) /* ??? Why is .gcc_exc here? */ *(.gcc_exc) PROVIDE (etext = .); 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$*)) __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; } __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start; ___RUNTIME_PSEUDO_RELOC_LIST_END__ = .; __RUNTIME_PSEUDO_RELOC_LIST_END__ = .; ___RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; .eh_frame BLOCK(__section_alignment__) : { KEEP(*(.eh_frame*)) } .pdata BLOCK(__section_alignment__) : { KEEP(*(.pdata*)) } .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 pe.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); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; KEEP (SORT(*)(.idata$5)) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } .CRT BLOCK(__section_alignment__) : { ___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__ = . ; } /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be at the end of 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) } .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } /* 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) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } /* DWARF 3. */ .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.*) } /* 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-2018 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-i386) SEARCH_DIR("=/usr/x86_64-pep/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(*(.init)) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) PROVIDE(___CTOR_LIST__ = .); PROVIDE(__CTOR_LIST__ = .); LONG (-1); KEEP(*(.ctors)); KEEP(*(.ctor)); KEEP(*(SORT_BY_NAME(.ctors.*))); LONG (0); PROVIDE(___DTOR_LIST__ = .); PROVIDE(__DTOR_LIST__ = .); LONG (-1); KEEP(*(.dtors)); KEEP(*(.dtor)); KEEP(*(SORT_BY_NAME(.dtors.*))); LONG (0); KEEP (*(.fini)) /* ??? Why is .gcc_exc here? */ *(.gcc_exc) PROVIDE (etext = .); 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$*)) __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; } __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start; ___RUNTIME_PSEUDO_RELOC_LIST_END__ = .; __RUNTIME_PSEUDO_RELOC_LIST_END__ = .; ___RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; .eh_frame BLOCK(__section_alignment__) : { KEEP(*(.eh_frame*)) } .pdata BLOCK(__section_alignment__) : { KEEP(*(.pdata*)) } .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 pe.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); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; KEEP (SORT(*)(.idata$5)) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } .CRT BLOCK(__section_alignment__) : { ___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__ = . ; } /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be at the end of 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) } .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } /* 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) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } /* DWARF 3. */ .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.*) } /* 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 ld --enable-auto-import: Like the default script except read only data is placed into .data */ /* Copyright (C) 2014-2018 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-i386) SEARCH_DIR("=/usr/x86_64-pep/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(*(.init)) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) PROVIDE(___CTOR_LIST__ = .); PROVIDE(__CTOR_LIST__ = .); LONG (-1); KEEP(*(.ctors)); KEEP(*(.ctor)); KEEP(*(SORT_BY_NAME(.ctors.*))); LONG (0); PROVIDE(___DTOR_LIST__ = .); PROVIDE(__DTOR_LIST__ = .); LONG (-1); KEEP(*(.dtors)); KEEP(*(.dtor)); KEEP(*(SORT_BY_NAME(.dtors.*))); LONG (0); KEEP (*(.fini)) /* ??? Why is .gcc_exc here? */ *(.gcc_exc) PROVIDE (etext = .); 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__) : { __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; } __rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start; ___RUNTIME_PSEUDO_RELOC_LIST_END__ = .; __RUNTIME_PSEUDO_RELOC_LIST_END__ = .; ___RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; __RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size; .eh_frame BLOCK(__section_alignment__) : { KEEP(*(.eh_frame*)) } .pdata BLOCK(__section_alignment__) : { KEEP(*(.pdata*)) } .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 pe.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); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; KEEP (SORT(*)(.idata$5)) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } .CRT BLOCK(__section_alignment__) : { ___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__ = . ; } /* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be at the end of 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) } .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } /* 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) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } /* DWARF 3. */ .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.*) } /* For Go and Rust. */ .debug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_gdb_scripts) } } 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. %P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols? enable-runtime-pseudo-reloc-v1Ð ëÿ° ëÿ� ëÿp ëÿP ëÿ0 ëÿÐëÿ°ëÿ�ëÿpëÿëÿðëÿ0ëÿ ëÿà ëÿpëÿPëÿ0ëÿëÿ°ëÿ�ëÿÐëÿðëÿà ëÿÐëÿ°ëÿpëÿPëÿ0ëÿëÿðëÿ` ëÿ@ ëÿ ëÿ0 ëÿÐ ëÿ¸ ëÿ  ëÿ€ ëÿ0 ëÿ�ëÿpëÿPëÿÐëÿ8ëÿ ëÿð ëÿà ëÿÀ ëÿ  ëÿ€ ëÿ` ëÿH ëÿPëÿ0ëÿ°ëÿˆ ëÿmainCRTStartuppe_fixup_stdcallspe_find_data_importsgld_i386pe_after_opengld_i386pe_set_symbolsset_pe_nameis_underscoringLIBRARY%s.%s$:-_?@$:-_?/@<>CODEconstantDESCRIPTIONDIRECTIVEEXPORTSHEAPSIZEIMPORTSnonameprivateSTACKSIZEVERSION%s.%s%s%P: %s:%d: %s SEGMENTS-heap-attr-export-aligncomm%s:%d: Warning: path components stripped from %s, '%s' Warning: .drectve `%s' unrecognized Warning: corrupt .drectve at end of def file o2ëÿc7ëÿã6ëÿÈ6ëÿ­6ëÿŽ6ëÿÀ4ëÿ¨)ëÿ¨)ëÿ¨)ëÿ¦4ëÿ‹4ëÿ:4ëÿF1ëÿ¨)ëÿ¨)ëÿ¨)ëÿ1)ëÿ 0ëÿ]2ëÿÿ/ëÿÿ/ëÿæ/ëÿæ/ëÿÁ/ëÿÁ/ëÿŒ/ëÿŒ/ëÿ¨)ëÿ¨)ëÿ+2ëÿ¾3ëÿ�3ëÿd3ëÿ53ëÿ 3ëÿ¨)ëÿ¨)ëÿì2ëÿŽ2ëÿ 0ëÿ¥/ëÿ¨)ëÿ¨)ëÿ¥/ëÿ�0ëÿÿ/ëÿæ/ëÿÁ/ëÿŒ/ëÿ35ëÿ'5ëÿ5ëÿ5ëÿ5ëÿ÷4ëÿë4ëÿß4ëÿÛ5ëÿÏ5ëÿÃ5ëÿ·5ëÿ«5ëÿŸ5ëÿ“5ëÿ‡5ëÿ{5ëÿo5ëÿc5ëÿW5ëÿK5ëÿ?5ëÿp-ëÿ4ëÿA0ëÿª0ëÿª0ëÿp-ëÿÚ/ëÿp-ëÿ0ëÿ¥/ëÿ�0ëÿp-ëÿ0ëÿp-ëÿ:1ëÿp-ëÿA0ëÿç5ëÿp-ëÿÚ/ëÿp-ëÿÚ/ëÿì3ëÿ%1ëÿg1ëÿ]1ëÿ>1ëÿ>1ëÿ>1ëÿb1ëÿ;1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿ>1ëÿg1ëÿ]1ëÿ>1ëÿ>1ëÿ>1ëÿb1ëÿ;1ëÿ#$$%%%%%%%%%%%%%%&&&'(())))))))**++++++,,--..//0011112222222222222222222222333334455667788999::;;<=   g ' €�:7ƒ„…†G JŽ�NW ! \_!"!f   u:‡ ‰ >8R/'+ÿÿÿÿÿÿÿÿ/<r6,s@0123A7BSqI !"#$%-&r'=‰xy†‡D<Tz{|}ˆŠ‹ŒG~`^_a�‘ÑÿÑÿÑÿÑÿc0123JeQYKZ„-NjŽ-mW\]fEbph iQ…kn uv‚ƒrF V�� [UdPH +M ÿÿ:;€�>?894RO5()*tgXLClw.o®ÿ®ÿk®ÿAõÿ®ÿ®ÿK®ÿRüÿ¯ÿ]9føÿ�µÿ®ÿ®ÿe®ÿ®ÿ®ÿûÿ®ÿRRBHCD=LQZZb112345 - ) X ![MN.+*(V \_PO0,W/T^acYU'`]//STTTT&$%TT"#z ç 55ï  î_®®®®®®®®®®®®®®®®®®®®®®® /®CC®®66®®®®0®0òï® ®:2®=®@!®®® /® ?®® ®®®5®0®® my_arc=%p %P%X: Unsupported PEI architecture: %s %P: Can't open output def file %s creating runtime pseudo-reloc entry for %s (addend=%d) %P%X%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details. %P%X: Can't open .lib file: %s %P%X: %s(%s): can't find member in non-archive file%P%X: bfd_set_archive_head: %E %P%X: %s(%s): can't find member in archive%P%X: %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 %P%X: Error: can't use long section names on this arch %P%X: Cannot export %s: invalid export name %P%X: Error, duplicate EXPORT with ordinals: %s (%d vs %d) %P: Warning, duplicate EXPORT: %s %P%X: Cannot export %s: symbol not defined %P%X: Cannot export %s: symbol wrong type (%d vs %d) %P%X: Cannot export %s: symbol not found %P%X: Error: ordinal used twice: %d (%s vs %s) %P%X: Error: export ordinal too large: %d &Eëÿ DëÿPDëÿhDëÿ8Dëÿ8Dëÿ8Dëÿ"EëÿÄDëÿä?ëÿ|Dëÿä?ëÿä?ëÿä?ëÿpep_implied_import_dllmake_onepep_dll_id_targetÀŸåðœå<�Ð`+@ ÿ%��@feat.00DllMain@12DllEntryPoint@0_cygwin_dll_entry@12_cygwin_crt0_common@8cygwin_attach_dll_cygwin_noncygwin_dll_entry@12ªëÿà¨ëÿ©ëÿ(©ëÿø¨ëÿø¨ëÿø¨ëÿªëÿ„©ëÿ„¤ëÿ<©ëÿ„¤ëÿ„¤ëÿ„¤ëÿpe_implied_import_dllmake_onepe_dll_id_targetÀŸåðœå<�Ð`+@ ÿ%��€€%s: error: too many @-files encountered %s: error: @-file refers to a directory ;Â`ëæÿPðùæÿxpçÿÀzçÿI¯çÿp]´çÿ\§ÀçÿH°çÿ8 çÿ� çÿ¼pçÿØÀçÿô`çÿ,`;çÿ�`<çÿÔp=çÿ =çÿ$`>çÿh?çÿˆp?çÿ¬ð?çÿÀp@çÿøÐ@çÿ$ AçÿP°DçÿÔ€Eçÿ Fçÿ$�\çÿpP]çÿ”à]çÿÀp^çÿüð^çÿ,_çÿH _çÿ\0_çÿp@_çÿ„P_çÿ˜`_çÿ¬p_çÿÀ€_çÿÔ�_çÿè _çÿü°_çÿ``çÿ8p`çÿL€`çÿ`�`çÿt€açÿ¤Àbçÿàðbçÿô cçÿPcçÿ€cçÿ0°cçÿDàcçÿXdçÿl@dçÿ€`dçÿ”€dçÿ¨�eçÿä@�çÿXp�çÿl0‘çÿ€P‘çÿ”�‘çÿ¨Бçÿ¼à‘çÿÐ’çÿä“çÿ “çÿ(P“çÿ@Гçÿ``˜çÿ¬à˜çÿÐ0™çÿø€šçÿ4 à›çÿ€ ð›çÿ” žçÿà  žçÿ!Тçÿ€!0¥çÿ´!`¨çÿ"@ªçÿL"°«çÿ¸"¬çÿÌ" ¬çÿà"à¬çÿô"0­çÿ#À­çÿ# ®çÿx#ð¯çÿÀ#p°çÿè#°±çÿ$ ²çÿ4$ µçÿœ$`Áçÿ°%ðÁçÿÜ%Ãçÿ&ÀÅçÿT&Æçÿˆ& ÆçÿÀ&`Ççÿ'ÐÇçÿt'PÈçÿ¼'Éçÿ(ËçÿT(€Ìçÿ¤(°Íçÿð(pÎçÿ4) Ïçÿl)`Ïçÿ˜)`Ðçÿ´) Ñçÿø)ÒçÿH*0Òçÿd*PÒçÿ€*ÓçÿÐ*ÀÓçÿð*0Õçÿ+ðÕçÿ\+ Öçÿx+À×çÿ¸+@Øçÿä+Ùçÿ, Ùçÿ,,0Ùçÿ@,pÙçÿT,°Ùçÿh,pÚçÿ ,€Úçÿ´,ðÛçÿ-àéçÿP- êçÿ°- ìçÿü-0ìçÿ.`íçÿ`.ðîçÿ|. ïçÿ°.àðçÿà.Pñçÿ/°öçÿd/Púçÿ´/0ýçÿ0àÿçÿd00èÿ�0èÿÜ0Àèÿ1pèÿD1ðèÿ„1`èÿ¸1°èÿà1 èÿô1° èÿ,2@ èÿh2p èÿ|2ð èÿ˜2 èÿ¬2èÿø2Pèÿ 3�èÿH3@èÿh3Pèÿ´3àèÿè3Pèÿd4Ðèÿ”4pèÿÜ4°èÿD5`èÿx5ÐèÿÄ5 èÿØ5À!èÿ$6"èÿ@6€"èÿT6Ð#èÿp6à%èÿ¬6Ð&èÿà6ð&èÿô6Ð*èÿX70+èÿ�7`+èÿ¤7p+èÿ¸7À+èÿà7à+èÿô70,èÿ8€,èÿH8-èÿ�8`-èÿ¸8 -èÿà8ð-èÿü8.èÿ9�.èÿ<93èÿ˜9 3èÿ¬9p3èÿÀ9Ð3èÿì9P4èÿ :�4èÿ :à5èÿl: 6èÿˆ:`6èÿ¤:À6èÿÐ:p7èÿü:à8èÿ8;à:èÿ„;À<èÿè;=èÿ<@Aèÿx<�UèÿØ< Vèÿ= VèÿD=Wèÿ`=PWèÿx= Wèÿ�=€XèÿÐ=�Yèÿü=pcèÿL>`fèÿ´>ÀfèÿØ>gèÿ?pgèÿ,?ÀgèÿH?Ðgèÿ\?PkèÿÐ?pkèÿä?Àkèÿ@€lèÿ,@�lèÿ@@pmèÿl@�mèÿ„@ðmèÿ¬@PnèÿÔ@`nèÿè@ànèÿApoèÿLAàpèÿ¤A@vèÿB`vèÿ$B€vèÿ8BÐvèÿpB wèÿ¨BxèÿèB°xèÿCð{èÿdC0|èÿ„Cð}èÿÔCÐèÿPD@�èÿäD°‚èÿPE „èÿœE@…èÿôEà‡èÿlF�ˆèÿ�FP‰èÿÈFp‹èÿ\G Œèÿ€G�ŽèÿäG€�èÿ@H€•èÿŒH€›èÿàHÀ›èÿ,Iœèÿ@IpœèÿlI`�èÿ¤IžèÿÄI ¸èÿxJ�¸èÿ”Jà¸èÿ¼J0¹èÿèJ€¹èÿK°¹èÿ(Kð¹èÿéÿXap@éÿŒaAéÿ¤apAéÿ¼aPIéÿb JéÿLb€Kéÿlb€Néÿ°bðRéÿ c€\éÿpcp]éÿ°cÐ_éÿÄcp`éÿüc@aéÿd@béÿ„dÀoéÿ°dppéÿèdréÿ\e0réÿpe véÿÔe wéÿfÀwéÿ$f@yéÿpf zéÿ¸f0éÿgЀéÿèÿ FŽB�E ŒD(†C0ƒG@X 0A(A BBBE d 0A(A BBBD tØ/D?èÿ T�EŒA †A(ƒG@Ÿ (Dà DÆDÌBÍI K(A ABBGÃÆÌÍH@ƒ†Œ�ï (Jà CÆBÌBÍH P0lAèÿ¯Eƒg D T L 4t0øAèÿ¿E†DƒG d AAJ O DCJ �¬0€BèÿF�EŽE �E(ŒD0†D8ƒG@[ 8A0A(B BBBG u 8G0G(E DBBH o 8G0D(D BBBL R 8J0A(B BBBK @1 Dèÿ¯Eƒg D T L `d1˜DèÿeF�BŽB �B(ŒA0†A8ƒGPã 8A0A(B BBBE C8F0H(B BBB È1¤FèÿáEƒD r AD 4ì1°Àæÿç F�BŽB �B(ŒA0†A8ƒDpH$28GèÿòF�BŽB �B(ŒA0†D8ƒDP‹ 8A0A(B BBBF Pp2ìLèÿòF�DŽB �B(ŒA0†A8ƒD�{ 8A0A(B BBBG Ä2˜Rèÿ:Yƒ`zRx �ƒ Z¿æÿ53ŒRèÿ9($3¸RèÿhE†HƒD r FAF 4P3üRèÿãA†LƒK0B AAD c FAF ˆ3´SèÿœYƒr M C°¨34Tèÿ B�BŒA †H(ƒG0C (A ABBC k (C ABBM 3 (A ABBG s (A ABBG T (H ABBO Ÿ (J CBBE  (M CBBE \4 mèÿcAƒa$x4ômèÿOE†IƒD zAA( 4nèÿJFŒI†D ƒsAB(Ì4@nèÿJFŒI†D ƒsABø4dnèÿ+ 5€nèÿ70 5¬nèÿ€FŒI†D ƒG0o  AABC 8T5ønèÿ‚F�JŒD †D(ƒG@s (A ABBH (�5LoèÿyE†HƒG0j AAH (¼5 oèÿCFŒI†D ƒlAB(è5ÄoèÿEFŒI†C ƒoAB$6èoèÿKE†IƒG sAA(<6pèÿEFŒI†C ƒoAB$h64pèÿDE†DƒL lAA|�6\pèÿtE†HƒG x HAK m CHH å FAL h JAE l AAB D MAN · AAG DJA87\sèÿ¥FŒA†A ƒ] ABH A HBE L7ÐsèÿHL8d7ØsèÿDFŒA†A ƒ… ABH | ABI 8 7ìtèÿ½FŒA†A ƒ\ ABI X ABM Ü7puèÿaTe G Wü7Àuèÿ8Ìuèÿ$8Øuèÿ88ÔuèÿL8Ðuèÿ`8Ìuèÿ t8Èuèÿˆ8Äuèÿœ8Àuèÿ°8¼uèÿÄ8¸uèÿØ8´uèÿì8°uèÿ!9Ìuèÿ!9èuèÿ(9äuèÿ#<9vèÿ#P9vèÿ!d98vèÿ#x9Tvèÿ#Œ9pvèÿ# 9Œvèÿ#´9¨vèÿÈ9¤vèÿ)H`à9¼vèÿƒH H H ü90wèÿ:,wèÿ$:(wèÿ 8:$wèÿL:0wèÿ+`:LwèÿPHCx:„wèÿ+HY�:œwèÿ+HY(¨:´wèÿaQ†DƒK tAAJÃÆ8Ô:øwèÿÝFŒD†A ƒJ ABH J HDJ H;œxèÿ¯F�KŒD †H(ƒD0R (A ABBG W(I DDB\;yèÿ#p;yèÿ$„;8yèÿ!4œ;PyèÿE†MƒH p AAD ³AAÔ;(zèÿè;4zèÿü;@zèÿˆFŒD†D ƒ\<°zèÿÍ F�BŽB �B(ŒA0†G8ƒG�Ø 8A0A(B BBBC 7˜I [˜B�|< ˆèÿÆKൠA ˜<ÔˆèÿæEƒJàÐ AA $¼< ‰èÿ7E†OƒI IICä<¸‰èÿ©KàÎ G =L‹èÿ·KঠA (=ð‹èÿƒA†LƒGÀg AAA <H=TŒèÿàBŽB�B ŒK(†D0ƒz (A BBBJ Hˆ=ôŒèÿ½TŒD†A ƒTEBDÃÆÌH ƒ†ŒS EBF UEBHÔ=h�èÿB�BŽB �E(ŒD0†A8ƒDPÇ 8A0A(B BBBK H >œ�èÿÞF�BŽB �B(ŒA0†D8ƒGP¥ 8D0A(B BBBF ll>0•èÿ~F�EŽB �E(ŒA0†D8ƒDPËXJ`WXAP] 8A0A(B BBBA D 8C0A(B BBBA 8Ü>@–èÿSRŒA†D ƒ_ ABG F HBH ?d—èÿ ,?`—èÿ$@?\—èÿnE†DƒD ^AA@h?¤—èÿ~E†CƒG m AAB N AAH WGC ¬?à—èÿaEƒG n AE (Ð?,˜èÿrE†DƒG I FAH @ü?€˜èÿ¯BŽH�E ŒD(†D0ƒG`^ 0A(A BBBD H@@ì˜èÿ>F�BŽB �B(ŒA0†A8ƒDPò 8A0A(B BBBA HŒ@à™èÿ#F�IŽH �B(ŒA0†A8ƒD@Î 8F0A(B BBBA tØ@ÄšèÿwF�BŽB �E(ŒD0†A8ƒD€~ 8A0A(B BBBH NˆG�_ˆA€R 8A0A(B BBBE PAÌœèÿ5\dAøœèÿ‰F�EŒA †D(ƒG0¤ (A ABBG H (A ABBJ x (A ABBB `ÄA(žèÿ�T�BŒA †C(ƒD0¯ (A ABBA  (F ABBI bÃÆÌÍF0ƒ†Œ�H(BT¡èÿ/F�NŽB �B(ŒA0†F8ƒD`Ú 8A0A(B BBBI tB8¥èÿ9T`8ŒB`¥èÿzB�BŒD †G(ƒD0n (A ABBI TÈB¤¥èÿ FŽB�E ŒD(†D0ƒG@» 0A(A BBBI \ 0F(A BBBG  C\§èÿCMƒ\ G (êÿÑX�BŽB �B(ŒA0†D8ƒGPp8F0A(B BBBGÃÆÌÍÎÏHPƒ†Œ�Ž�L8C0A(B BBBLoè?êÿšF�BŽB �B(ŒA0†A8ƒGÀx 8A0A(B BBBI Ldo8BêÿÀF�BŽE �B(ŒA0†D8ƒGPh 8A0A(B BBBC ´o¨DêÿÈo´Dêÿ×EƒÈäoxLêÿ%8øo”Lêÿ›R�BŒA †D(ƒG0 (A ABBK $4pøLêÿoE†DƒO TAAX\p@MêÿF�EŽB �B(ŒD0†A8ƒGp¨xH€VxAp³ 8A0A(B BBBA ¸pôPêÿ¤H^ J ÔpˆQêÿ èp„Qêÿ)H`@qœQêÿœFŽE�E ŒA(†D0ƒF@j 0A(A BBBC HDqøQêÿ F�BŽB �E(ŒA0†D8ƒGPz 8A0A(B BBBA 4�q¼RêÿÆBŒH†A ƒ[ DBL y DBI 8ÈqTSêÿAB�BŒA †A(ƒD0› (A ABBE rhTêÿsrÔTêÿ2Eƒ_ D E 8rôTêÿµAƒD w AC L\r�Uêÿ¨P�EŒD †A(ƒK0i (A ABBD D(C ABBAÃÆÌÍ`¬rðUêÿßF�BŽB �B(ŒA0†D8ƒDP{ 8C0A(B BBBD d 8F0A(B BBBE HslXêÿn F�BŽB �B(ŒA0†A8ƒD`2 8A0A(B BBBA (\s�dêÿôE†AƒD ¡ AAK ˆsdeêÿSHJH s¬eêÿB�BŽB �E(ŒH0†D8ƒD@ 8A0A(B BBBA ìs`fêÿ‹AƒI R AC <tÌfêÿyA†DƒD [ AAJ W GCO RAAHPt gêÿS F�HŽB �B(ŒA0†A8ƒDPÄ 8A0A(B BBBJ `œt pêÿ9F�BŽB �B(ŒA0†A8ƒD@? 8A0A(B BBBE W 8A0D(D BBBJ puüqêÿÑX�BŽB �B(ŒA0†D8ƒGPp8F0A(B BBBGÃÆÌÍÎÏHPƒ†Œ�Ž�L8C0A(B BBBLtuhsêÿšF�BŽB �B(ŒA0†A8ƒGÀx 8A0A(B BBBI Äu¸uêÿ3ØuäuêÿxNƒ_ C (ôuHvêÿVF†AƒG yAAGÃÆ v|vêÿvDU G P,@vÜvêÿÍBŒD†C ƒ› ABI 8pv|wêÿBŽB�B ŒD(†C0ƒT (A BBBH 4¬vPxêÿVB�EŒD †D(ƒJ0v(A ABB4ävxxêÿkB�EŒD †D(ƒG0N(A ABBw°xêÿ 0w¬xêÿcHZ,HwyêÿOŒA†A ƒåÃAÆBÌHxwäzêÿƒF�BŽE �E(ŒD0†D8ƒDp 8D0A(B BBBE $Äw(~êÿBE†AƒD rDALìwP~êÿ F�BŽB �E(ŒD0†D8ƒD€H 8D0A(B BBBH TëÿYRV H WH@м>ëÿ†F�BŽB �E(ŒA0†A8ƒGp 8A0A(B BBBH ŒŠMëÿ0EƒfH¨ŠMëÿÈF�EŽB �B(ŒA0†A8ƒGpf 8A0A(B BBBH (ôŠ˜Rëÿ¥E†DƒG Y AAE  ‹Sëÿ74‹HSëÿ/H‹dSëÿCH u A @d‹˜SëÿoI�FŽB �B(ŒA0†A8ƒP0A(B BBB8¨‹ÄZëÿ£F�BŒD †A(ƒG0l (G ABBL `ä‹8[ëÿÚF�BŽB �E(ŒD0†A8ƒGPà 8A0A(B BBBH i 8A0A(B BBBE 8HŒ´]ëÿwF�EŒD †D(ƒGàQ (A ABBA L„Œø]ëÿF�BŽB �B(ŒA0†A8ƒG¸ L°"» 8A0A(B BBBA ÔŒ¸^ëÿ1èŒä^ëÿ.LüŒ_ëÿYF�GŽI �B(ŒA0†A8ƒJ€% 8A0A(B BBBA (L�qëÿBE†DƒG  GAJ `x�4rëÿþF�BŽB �E(ŒD0†A8ƒG@ú 8A0A(B BBBA i 8A0A(B BBBE 8Ü�ÐtëÿwF�EŒD †D(ƒGàQ (A ABBA PŽuëÿF�BŽB �B(ŒA0†A8ƒG¸ L°"Ë 8A0A(B BBBJ ,lŽàuëÿšFŒA†A ƒm ABH (œŽPvëÿAJ†DƒD cDÃAÆHÈŽtvëÿqF�BŽE �B(ŒA0†A8ƒDpˆ 8D0A(B BBBF P�¨xëÿæO�BŽE �L(ŒA0†D8ƒD@v 8A0A(B BBBE pÃÆÌÍÎÏLh�DyëÿPF�EŽB �B(ŒD0†A8ƒG r 8A0A(B BBBI ¸�D|ëÿ)Ì�`|ëÿfK°U A ì�°|ëÿ8EAW�Ô|ëÿ8�à|ëÿ›B�IŒG †A(ƒG0i (A ABBG X�D}ëÿl�P}ëÿ€�\}ëÿ<”�h}ëÿFŽD�B ŒA(†A0ƒÐ (A BBBK Ô�8~ëÿ74è�d~ëÿmFŒA†D ƒD ABF QABzRx � ƒ†Œ$PaæÿT‘h~ëÿ)$l‘€~ëÿLE†AƒD AA,”‘¨~ëÿƒE†DƒD n AAC <Ä‘ëÿSF�HŒA †D(ƒG0_ (A ABBA D’(ëÿeF�EŽE �E(ŒH0†H8ƒG@n8A0A(B BBBL’PëÿÐü�üÀ”:Ûãëö d%0¨é4:AIPVZclrw{„‹�“ol—›×!Ÿ¢©°´¸¼ÀÄ¥ÊÎÖÜâáçìò÷, )@Q^pz�”˜§µÍÙó  '4?FLQV^foz~„‰�œ˜¡§­µ¹ÂÀÈÔãêïöx &²/H8@OY™G^Agow}†�®˜Ÿ©.®·»ÈÙæëòû !6;FQYm~„Û‹ž¢¦ª®²¶º·îÂË×Ûëï%8JVgkß�…�™�¡¬°¼¿Ã&Ç×êïý"4CN`r� ¥¯´¹ÈÛâëô!þ ï(9EJO[gv†˜ ³Ðâþ%0,5DKUjwÒò‡Œ‘–› ¥ª¯´¹¾ÃØÈÎàõ*/49?INSXbr{�’¥·ÈÜ¥ïáæñû atèXÁ€èAAÔ|è»ðbb×(8Ó�èccÞæ˜è¶èddhÓ¹èd¼è �Ó–$eeqòÓèé¢Eåè飸ÓéŸé¸ -éHéff àÓRéFF ÔgYéaéGG(8ÔhéµhoéhÔƒé›Ixé�Ô€éœÀÔCñll¥é’é­éLLºéÕÄé�(Õmè!ØéæéMMPÕðénn÷éêNNxÕêô°ÕëooÞæêO-êBêžÞæMêwêeêlê~ê‰êØÕ�êøÕŸê¥(Ö¤ê¥(Ö´ê¥XÖÀꥈֽꥈÖÐꥰÖÓêqqÐÖßêrrëêiëRRÞæøÖëssë0ëSS<ëWëõ0×TëöX×gëttmë:TTÞæ~ë‘ëÞæ ë»ë&uu^ìˆ×¾ë ^ì¸×ÎëèÕëè×àëÃØ¥ïÅvãëVHØýëxx ì#ìXXpØ2ìð Ø?ìyy^ìLìYí1 ÀØeì((qìì))‰ì˜ì÷ðØ•ìø0ÙµìÖ²ì×ÃìØhÙÀìÙ ÙÍì–tèÚÔì—Ýì~—ûì—í¬0Úí¬í¬í¬í¹XÚ'íºxÚ>íâ Ú;íãÐÚPíÖÛMí×8Ûgí˜líŽæ™‰í›ííîš«íxÛ´í¡ÄíùíÎÝíöíÏ Ûæ^ìî#îÛÐÛ7îÜÜ4îÝ0ÜFîÞXÜCî߀ÜXîà¨Üiîáà܉î¤|îå^ìŽî§î¦Þæ«î¼îòÍîêî§öîï¨Ý"ïä8Ý2ïêpÝ/ïë ÝHïìbï}ïí’ï­ïî¼ïÚïïØÝòï©Þðª8Þð­,ðEð«hÞTð«cðó˜Þlð®×(tð’ð¦ðÂðÐðæð¥øÞíðÿßñ¯Pßñ°ˆßñ±ÞæÀß"ñ²í1 èß(ñ³í1 à3æ´3ñKñ´*æù@àVñùeñ¶qñpà‰ñ¶•ñ·¢ñ¨à±ññÄñØàÊñÔØñáàñÓïñ0áøñ¸þñòé`á(ò»^ì2òHò€á[òçiòyò–ò¼qò›ò·ò½qò½òÚò¾qòàòýò¿qò ó'óÀqò7óUóÁqòdó�óú¨á«óÄ�ó`â§óijóÆÞæˆâÂóÇ^ì¨âÚóËãìóÉ8ãôÊô9ôÈÞæFôXôÌhãdôÍ�ãvôÐÈã‡ôÑðã‘ôÒä¤ôýPä¸ôþxäÊôû°äâôüØä7ðÕåûôÚ^ì0åõ^ìXåõ�å$õÈå.õ Aõ\õ lõ惨éH(K(N(Q( T( X( \( _( b(e(h(k(U(Y(n(q(g�2Öâáçìò÷+˜3 ;^<×(=o>z?~@„B�A‰CœD˜‚„Û`^Et(Fx(f|(nßê$%)&@NãPï1 l0 ˜�3 ’ú2 —–3 ™®3 P·3 �É3 ‘Ý3 “Ú3 ”ê3 •÷3 –4 -4 .l0 ˜�3 ’ú2 —–3 ™®3 P·3 �É3 ‘Ý3 “Ú3 ”ê3 •÷3 –4 -4 .l0 ˜�3 ’ú2 —–3 ™®3 P·3 �É3 ‘Ý3 “Ú3 ”ê3 •÷3 –4 -4 .l0 ˜�3 ’ú2 —–3 ™®3 P·3 �É3 ‘Ý3 “Ú3 ”ê3 •÷3 –4 -4 .l0 ˜�3 ’ú2 —–3 ™®3 P·3 �É3 ‘Ý3 “Ú3 ”ê3 •÷3 –4 -4 .l0 ˜�3 ’ú2 —–3 ™®3 P·3 �É3 ‘Ý3 “Ú3 ”ê3 •÷3 –4 -4 .û]é]j_y_ é]j_*_-_�_—_ž_§_ª_¸_-­_.Â_/ÍÐ:aa0Ñ_1å_2ö_3`4"`53`6K`7 3 8]`9g`;�"Rx`S{`TŽ`<Ž`<™`=¬`>¼`?ê3 MÐ`Që`@ó`AaBaC0aDGaEGaEUaFlaG„aH–aIªaJ½aKÑaLèaNbO°"P!bU;bVVbWfbXrbY}bZ†b[“b\šb]¢b^¬ba·b_´b`ú2 b^ÈbÐbØbÞb äbû]é]j_y_ é]j_*_-_�_—_ž_§_ª_¸_-­_.Â_/ÍÐ:aa0Ñ_1å_2ö_3`4"`53`6K`7 3 8]`9g`;�$D�"Vx`W{`X·bc´bdŽ`<Ž`<™`=¬`>¼`?ê3 NÐ`Uë`@ó`AaBaC0aEGaFGaFUaGlaH„aI–aJªaK½aLœ$MèaObPXÎS°"Tº$Q²$R!bY;bZfb[rb\}b]†b^“b_šb`¢ba¬bbú2 e^ÈbÐbØbÞb äb©NЄÛSЖÛÍÿ \ÐhÐ\ÛrÐ zЃР ШéŽÛ‹Ð{Û’ÐOÛ÷ ÃÐ eۚФРUÛhÚÌÜ`ÚÝÜ ¤Ú¨]èÜm2 ÝÝ!ÝüÜ Ý ÝÝ Ý(Ý 3ÝWÚ<Ý FÝMÝVÝ `Ý kÝ vÝ}Ý ‡Ý�Ý–Ý  Ý ­Ý :ÞRÞ ^ÞfÞ /ßtÞ†ÞšÞ¶ÞÆÞÖÞæÞÍÛöÞß ß ßß!ß :Þ^Þ/ß.ßÍÛöÞhÚÌÜ`ÚÝÜ ¤Ú¨]èÜm2 ÝÝ!ÝüÜ Ý ÝÝ Ý(Ý 3ÝWÚ<Ý FÝMÝVÝ `Ý kÝ vÝ}Ý ‡Ý�Ý–Ý  Ý ­Ý :ÞRÞ å å{$å1å`åGå¶ÞÆÞÖÞæÞÍÛöÞß ß ßß!ß :Þ^Þ/ß.ßÍÛöÞ0 X ¹ xÒ °”:¸”:õþÿo00è Ä @ø:À¸¼€.8Ž ûÿÿoþÿÿo.ÿÿÿoðÿÿoô+ùÿÿoÖ ö:°ÒÀÒÐÒàÒðÒÓÓ Ó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à€à�à à°àÀàÐàààðàáá á@$;ø&;C2 Ð';€';cò ð_0e€làkðig�ppc^À]`^ÐÂÂÄðð+#; ;@;à ;À ;`;;;`;¸); G;EÛ(+;C2 52 +p3 #)2 #2 +w3 +3 #@†3 P(`¯�¯°'0: ®�0¯Э†!4 ðP°(  pC2 52 +p3 #)2 #2 +w3 +3 #@†3 °h`¯�¯h�z ®ðp¯ЭpY°D¥% ²% PY°WiW€I°GGC2 52 +p3 #)2 #2 +w3 +3 #@†3 °¨`¯�¯¨�º ®ð°¯Эp™…œé¥éP™°—©—°‰ˆp‡C2 52 +p3 #)2 #2 +w3 +3 #@†3 €á`¯�¯ààðî ®Àé¯Э0ØÅm—w—ØpÖàáÀÕ�ÉÈpÇ`û`¯�¯®�® ®°®¯Э@ý û3˜=˜à®PûüC2 52 +p3 #)2 #2 +w3 +3 #@†3  `¯�¯€2 ®`(¯ЭàÀýqzzzÀ € p@À C2 52 +p3 #)2 #2 +w3 +3 #@†3 à^`¯�¯@^Àp ® g¯Э O€<Ñ\Ú\€OàM@_0MA€?à>C2  ]+±_+)2 #2 8<;@^]è;; _8<;@^@<;]H<;÷^P<;�^R<;²^T<;Ç^V<;ß^X<;W^Z<;s^€<;�^ˆ<; m]�<;>^˜<;‡] <;&^¨<;ñb‚<;_€œ`¯�¯€›Ð� ®°®¯Э°�0‹éb4]�€ª0„`¨Àƒ@Ÿ �`{àœ@{PaÿÿÿÿC2  ]+±_+)2 #2 X>;@^] >; _X>;@^`>;]h>;÷^p>;�^r>;²^t>;Ç^v>;ß^x>;W^z>;s^ >;�^¨>; m]°>;>^¸>;‡]À>;&^È>;ñb¢>;_PÖ`¯�¯PÕàÈ ®°®¯ЭÀ¿ÐÃÎ$`$¿`ä» â�ºÀØÆà±PÄÀ±ÌÐ 3 ÒÐ ØÐ àÐÿÿÿÿÿÿÿÿ4]?] í:4]¹Ý í:ÊÝÒÝ%@î:ÙÝâÝ"@î:ïÝÞ '@î:êÝþÝ '@î:Þ&Þ'@î:ÿÿÿÿÿÿÿÿ`$i$ @ñ:ÊÝÒÝ% ò:ÙÝâÝ" ò:ïÝÞ ' ò:êÝþÝ ' ò:Þ&Þ' ò: `B;GA$3a1xÒü GA$3p1113°ïGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA! GA*FORTIFYGA+GLIBCXX_ASSERTIONSGA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realign GA*GOW*…°ï#GA*°ï×ÛGA*ôïƒGA*ùï'uGA$3a1 ü GA$3p1113 "ƒGA*GA$annobin gcc 8.5.0 20210514GA$plugin name: gcc-annobinGA$running gcc 8.5.0 20210514GA*GA! GA*FORTIFYGA+GLIBCXX_ASSERTIONS GA*GOW*…GA*cf_protectionGA+omit_frame_pointerGA+stack_clashGA!stack_realignGA*ðè#GA*� GA*GOW* GA*FORTIFYàü8 GA+GLIBCXX_ASSERTIONS GA*FORTIFY "GA+GLIBCXX_ASSERTIONSld.bfd-2.30-128.el8_10.x86_64.debug5�=ý7zXZæÖ´F!t/å£à…÷¤]?‘E„h=‰¦ÚŠáƒ2NÙ ÜÒ—êÞg(“E½+K'1}U?µè¨kq=»¬m[Y ¢¬EAsµmp´WÌÏÏv‡Ï–çmNêøE5X½ÙØ�” l1pŒ ꣞ô<½.u8mDSUÿ«ÑV:œ$®[?/²¯šÏ‡�é ÜXï¨-šÃïNš½“�ÍUh²<Ð\$ XùÌ­údãçÞü¼¢œ"¡—£íØë\ˆÇä©6A;~ÄgÍ!�K³Ô,á/ÒûKõ×OøÖ‰½9‹-?£úuªäeŸ˜`òƒ]~é}‡w×â¡Ç–*AÅΪ¦Gèq„ïlr îHy–w¢$˜dx>Ñ@[꣺fRB} ƒORør›Vw¼Ï®3…Âàù}Ä Fr׋U´iÏBYPZ¯½ ISÃv™ ŠàlRç«¡oImEóy\D•JaØ’Ú´´ªmüªaÓêøŽ|ÈH¢VâÑ3Ã'ñ÷ˆ(®õ Ò‹ÁQb7ç##N:´<‡‘-Žê:ÜÓ“×첟Á~*Z@ÚÀyzDZƒbeÃÙу‘à»<±´Ëàë'OÙçè‹·eÀvILtsw}·š<²±d¼_»Í[…Z(/a»ç3Lp6ÛR˜º½ÎÊk‡ÜТGÍž0–@±Y¹»¼ùÞÅÿ¾Ap2ô Ö4†˜�åHßêXœy\h¹/ÅNy{)´�¿iX([ [±¦ê´�~â‰ß tBtîlZ‹Èbïe¹èÞ§ Ta Ðké�M5�é÷Ä# è=53M%eœ¾ˆS…» ¢ÇÅHXÕþ ­iµÉ…±Ó‹8·Ró<Õ§’If :Z=à‹$lkô©R?ý«;¾>I¹üÔÈ&&5gÒ—ø#4´B`D[3¯hÜG/þ{–£AáÂ&-2…4Ço\IŸbØ6�.º/%‹^ì|#̳:ayQ6§k®µ…iËáf�hD!ÉïA^ýX sˆ¼í¢(Ç’ªaŒŽíèwî/%b q±x:¤Ù}y÷HX¾}ö+¹=17AeÌÉ‘%̹£Á¨söŠ¿@gËÍîTDæªï÷�*ê�˜œ¡]$¯y3‡2÷{YÝ ¸CÀ³þS�½Oš­Ð0Þ;r?ÂvÉñÙ°�—Ý™þÕ3XGÖHÍDìWMµÌ>](á都C»b`Q¨ªW:Øâ[#¶Ô¹µi­+“ ¼¾.Ç+ƒÍVí±cB÷”i(t¥ wÿ3LƒÃöÁy›ª6fÏÜÈg­ë‹´ï3ecqê H¡×Ï8Eú·�w’³û‚i|q'œðÝ7x¹4�±¼Ðð¦çOôÙU!b‹Ù,»Å�¥ÛlG1\wózîl²äàŒ;zzmýJùhT†È{ܬ€j°îMa⸺º´@öG÷K&Õ>·"êËtÉà/©[�¨¶Ç»¸k`Ï’Ó¿['ïÑ×Ë+FÃ%ži¹æ·Ûv B‚›d’{χXƒ4 žô6À† °D*L¼ˆ üÈ;ú×ÝØ®ƒ)ú·#m2�Lâø´§.AlAªQšÔÒrr¡oûúRX OˆrÊÅéHlDf2áfy^4M°X:Éö8(±ÇâG¨qÊÚvI8мåœf‚>:”a¤1±õí‰$™¯l4Óq=±ìßòbÚ£†ÔBM¼�…Íqy5D³Ag®·BX@ýk�Cµ,ж�*Nä� Rš�žð`AÓ]WÛAJ}ýs=è§qÝÊÄýñNÐÌyF šÂqfÒ7?�Um�eT]wõ\ú÷W’+äƒ}ùC,Ç&à&ÁëúíÈy½°¢NÀ ¹< ¡# 0 3Â͸0y]===â ùX¸S ¸¬$Ì×MôòÓ|yÉw UPŒûý"¸¸0ç­ë–`ËœÆ!ŠÈ¿FrØvX‰¦ å¥VúnÕèE�Væ4ˆ "B…-ï› ¸S3ŠÁ–£Á”ÃP²1Ö®+é�qgTíIUþ¾ö‚|XÇ =Ư�—Ø#ZV‘ŽhÆ6?�‡î`ÚõlF%¾mø`sÚà¤'/â ï #[•—éÉâ” 6­_$ê" ´­ÞQ×…=Ó?jü¶‚$Òsö̵ôN³«#”Ú‘+¬ê—eövð®«ãuº¹®Õ6…%Ð`]B€Ô�`#}æ³"vSq»½¥ÄW¥ ù.DÍc¢ió=|ÇN’\’’” ¹‰‚+ʦ€ÏÏžÝ -èy·9"œ"3ð¸ õ„v\SÖ4¤'_7 Ђb8*s*ƒRḌ Å¿{ï¼é]õP<¿Á-Ì“]œcb‘TÙêØ=Ù�¶®m~�>@ZL’zÛ[¢Ã{oµ«N¦ä»ÏKFiÛ'j¡^^T^R2Ýþø±µøè„–?[Ý®‘“.�7<[_îH€Ç3°/’É µA8TÍÃqÀ*쀀œ¹BÚК>CöœÐt­•ÄmCÂB$Àï0œmÊ{Mµr•'—ze•Œ?!¬·baK–äÐhúÔÿYÃ'T—;ë¾V|l±Žz¨õx[�a„Š Á\"J§ÿ/ìYÙÉ5§XA=2ÈŠêÍó‰lŠÀ¬‰6¯ÀIT„+šn xØSw¥Lrú!8&eâƒsœü�?/ïûÌM¹™á®ÆQBù7–0 ϳ«–p@­¯¢À¶áe`ë{OŽ è[îÉdiTô–C u‡¯ÎÔ�ð;o"¨B/=(ê˜ÝD�œd\ùÏ®Zo;«9Uî¼kz4›Æ øDë�ÀXÐÌ(ÞÙ#>›ÊËrËðôFDÁ�Ç)áìÃíÍCÔI‚ª!OƤâ’U+Ϫó•xîÚ}NŠœ”¦tx%„RÊ?ôØ»q %«cjÈr�Í1aÀŠë<,_Ë\IœâsµÎ‹ýðÈuÆü±ª²Y«ü‹¨ŸV yÁpE0Ÿ8ÈÀ‡»Åq©§Êh ¯ž«}­±=^Ë×t‰ #Kt´ÚÇì44¢!¬Ï B|h¯æ—}2HNFA´̆â5B°FO©¶âƒcN‚=EÉeO1œA“ô$ÒZßáiûíðcvþ}L/[ ËÚÓú ;ßkzs,ö.fý{·±éY·JCò6ð2‡Ò™ 7&ñø qRÄãæ#ÀSGêGiñCæH£‚$q˜ö‚UrðÅÒ!Ù d>ØÜ4l·::)_™òoHr[åñ¼«ZŠöÁP^X:š0’ñ˜të{ÊcÞ¸± +®ægÛö�RüÞ[38ÞM^¼¢‡NA¹ éý]¯J�\ŒDfé):³¥u2ý™ƒÑJCÁõòBa¼X˜·CmF9#ÈÝô›yLH˜½‡½ñô7U1†xŠ5% ¹8Çú�P<•1+€-~¶\~âiž~Ô5=ލð”2±Kñ÷ÎÃXNöñ¦®OûG‘¸r–c6 ñåy|dÑHœK܃N–t ˜<¬Ìo¡<�à1öC"„ _Öëˆ-PcTýA}YxÂ6Ó¥’ã·/GꔡˆàÁyz–£þEÏH?çSƒûêÓ½ÂdxqPšê¦Ô§tߨ”¿Uî*ÕpQ ÁQ©®ùá÷ßeëÌ@×Õ˜-žÏUt"yÙ©bÂkˆ‰È{=©ân7+p>¾nÒE»á ƒ@yÇÛèÆJ�pRCÉà«Ynu7¢0¬ë%î4zRJl@Jª�a§ë.šaáÐÀ«M5·ú Ï-†!YtÖüÍ 8 °»‡ `ŰQŽò2�2<²ê–�vÉS£}šIÉAÀ]¿.¨!Ä?(Šº7�2¬äç#ÄRD ÛÛ¸66Ì£´û½m2/u½ ÃÝÏŒe“˜B9³¤™ß”8(S«þòïÁ\¨Ì<žøM8fZ^‘jî ‘vÛLx¦=?r£ ¡ÉŸ)¤­Ïþ¸ŒØÇÓAÛþz”pNt‹¡0kް‚ÀÄ<¡X$R]¢ z†í§fÞpIÍàÔ±0/é½�­T¡^4£O3™÷À È)ƒ#LžDLHý§ó¡9R*ÖyÎJ0²ÙüÔ²Ny9”Q —˜óÉÃ…¹/QiÁ›óÙeÓl厹àø�„rh=ö¼!8–ÚG`�ùùpÞorª-N6§ŸÂèl“ÒbD!^FÌ{²còs’a ÒàÞžîH%‡êÞ£¡:•Ù@1e¼øXc«zÀ»DШNSý´Á0=ÎÁ�R—+•9}£Ô†hlV5  j÷fˆ½ÒTï¡~âkÞ‰Znü•blµïË´mŠT�ä«ÁdëÚ—jO§ãíd~ê° IíÁ9Èd|M‹ FYá…gŒõâiŸ2^¤VâyJázã—Räbª6>É‹Ø:±‹×šøWŒ9W½ñØP$ö“ç×yF…åâP{c@ߪ~Œ¯¾ôd¨��K×Ûó~~5‚ï4©J¾.UmLꓦ¶æï �Ö¿Í/ÉÑ™Ä�M·•ùºˆDÝÎöQ®›H¤ ›v¯—ÌrùCÃmgó�§*Da1…±0¹®ECª·Æ72Ú›fì$r-AÌ'©¹<ßÿÆ xBç-3šÄqy-£ìþí‚Tò^&fÆ+¡X„†1L€ÎPƒS×¼r¤¢Y p©b@Ü2ùèYgâSJ�²$Ï"&+ (rçb¸¸~ÕHUòã¬&î‹#¹ŒzOÀÜêIéÖ£¿·VWö&xþãì›Ù莣ºóÕea†Ô2§ y�‰8Gµèø´o�à º�ü™ª={r÷�(c¡äÓV©„KU¼ò‘6*�_Ö©$‚QÒ þ-¬(k‚«˜ËÚüsk�áæö¬Ö£&_ÈÓÙYüvy¥]ú Ž¤7ØíÆV«çÎ6Ú‡4ðÌt#ÙÇãw÷¿¦‹ºßâã˜ÛKéõq˦µ‚ìÅìÒÂÁ¼Uú¢¤¿rܯ#L­�·Ñ·þB%ä˜Ûp«BËÄ6hø„Eš@ ûß� ãêØØ¨Ó_‚T˜|³C† óÒƒj…èÄË-RÊëfÙL6ã˜tĬr‹>ùa†š«™�¬–qzR¼Rrêç§CkLýª Êdÿ¿†Z>æ¾9χ‡37 ƒ3ìÏ�·fßî,ê¢WŸÏž0 Pz¯ðˆy® ´+©Û"ZFy&÷sÞù+\·’ÁØeBžU"~dkꙦFkµÀõlDluqdô"‚!ˆÛÛ_Yé§ÏSãÊu£�…ª Ùû5Íò7¼y'÷ÎÅÒ.µä"÷Š+f´Da·<Üî%\…¹²ˆ˜9î Ù&élH‰;âårú$ñªjŒû=ô]¤W{K0o�»o_Ñ+†…�Më)Ó]Œ9é³o@F¡ç"ÔäS˜öƇlÅDÚÔŒÌÌ|é·¾B€˜®s^‚ÕM®�‰V¦Œ¦mÁÕAö~NU…iSpß|уgï·#BÀG@zãËF!3ãcIC\HŠËÂJ–”|É-pÝš?·ú ®[R?S`©5�öhØÑG $óPB‡¶–ˆf#뉻òmª k^s癑ƒ‹!È?Tï"Rÿös•Z7|yƤ­›/CŽE´D,È[~"_¢ÍA^÷†á=^É=ˆTõú# u ïpèË. šf¤öè,|1sdŸzÞB¹Vvgü¦û(V‰9r‡Õ�t]-dUð%Z 6h%š £1¼½˜ÅQr0˜‹á?9Ϊ“_˽ôÝ{“:³V•9™ÆáíB�íÍ 5óÜR DDŸ¦‘fc—òäÕo[ü- ·bª· ž¯?Ž®ræB ]‹ü¾1ÏÕP`¢À�ok›î}Z�kq++=f%(e^À*nšwõº»ÁŽ�rP·A̹Wˆt&êÅÎÖÑObò‹.N̪òÞa[/ã,9ˆÈé;±²/a>¸¶mÉ%ð� P_'&^r�}Åèo¾Êð"Oʤî´î[†©ÿ6?§žX!Gß‹¸:-ÖBØZ‹a4d%é¡{UÑ´ÌÃa±t•¶yŠÉûÒ6âöL|÷Uf?ì DÖåsX“óodž§��kžî…4ølìQ³Iéâ ÏЈ ¡ŽaM5¯4^ð&šh€q�Ú|§¶\!X²©¾××ZD5µ5Òå=8ï_È-}‡²-R�¬}€ÆÝ.ÚùE+ÕCÏ)X^˜ÐI~Ÿ# ¼ÑFÙ< ŸÒMcby!Ôh~¬S!­÷˜LzQ²Óšx½ã4:òåøøíç`T¢…¤Ÿ´òßï‹ jØy ï7G397ÝÓÐ?†ÄÇ·Jñç&˺¸,ƒ!mª�ö3íPYΧÎÃÏ—3ÕòP•{ÆÏSfÉkxE&ÝâƒVv 1˜‚yÊyš²ÀM˜çý†+M sw«c * ”'þT‡•ñç]?IU�ëe¯l8I ÿ6â„‘[ìÈSMT6lo,ö—÷‡ŽD1¸ÑŸê!÷@ÚšŠ-L@¨NÝŠ#q‡8Gzäg¯|8Å,5Ç,9ð’¥€eìƒ`ôÚ†ÇÍt®åZÇ×Ö7hE‹ØËáœ*�¦ô\_Yn‚Тɿ`‹zAçÒ_ö`âúY±ëV}3}cB±ÊN½kßãØqÊÞÏÅd[¿ïAiU�¾ê8,Óž>ËÅ£9H¾…0,¨Z¢³ÚcŒµ\&Û¼Ãðz¦07pòû `ÛÕiŠ]ÜPÇ™P%­7 N:HñƲ§‰ÎÈ`ñ­nw�ƒâ/Uß_Ð@F.Z…¦¿@ùUKPU±ŸŸ~_AÌbÿKùÓñ.,.rÁ‰èÈ Þieâ9JÔ§”ïëÑŸhŒ‚`}:"w3-ý­Ùöö«™;NÁǦ,…¬\`Š0!g¡ûÁ’(�öå¡£"g r%-«iE¹¤3³ œIyçrs%Tfxk­y²åò­ˆœUEEã´^Ö”ì&ûÀ—A“X(ˆOÂ~½½2sóvê5!Bœ4¸¨Óø1}ΨÛªb‹ÄŽÖ¨Cîéà„W{Y[ÚÅYaD&{gsoCç`º(ð¡Cµ$Ò«=2ÚCÍ `”¬Ô§Õ- ï$dX�V;+"÷q”Óz™È³f*Õb7¥˜;Ä‹<Ø)ßú+KP—VZZw-Ñó¼å6a_N˜.}#À¾cáp‘®ÊÆÝ�~�æë,Χ¼œÉR~}ö½Œ’#¦VâÅK¦(Lg¬x4x� yñ œ‚­·•ÿ»fø3øö"¾m¯,ƒ9L›UtR’2¶ie‘Ó õºæôâ›4y±M¾ŒØòKåÿ;ë¡ò½Avœ>O„‹Øt”ªaU=ƒ`¼+dáJŸjÁ;¬òѪúQÓE ˆ6ˆ��ôá<€¦MlK@Ä�<úÊxõï…ËádAk´±‹ëj}âêÆRŠ0WeL’�Ç‚:7pÅÏæJÞiP÷Å�—)ü$Î VE*Yþòn€Ã¦b9­H¹ç™ÿ"[-G�v÷,ÔQ�ù™TO-³ fK�š&Ýlj²�ñ‘üpRIeŒû˜[$øóÖEÐìÅIS‹ ¤—Bn³ÑLÐ-æ‰ÿ¡v6\öÒ9”øýösêžMz¬On¯[…+ŽÝé`5NØ ö$ñšèÐvoáë�slÑÉ—˜)b*£ üipNeœÉì^2ø\¬p$³—Ú¹ 4”Û½4vçò-ôiá JdJr]Ú"oÛ­<™âþO²[ÌêʺĦ¹=Ì%ß AÌ®«Ü V¶i˜îôdÅI±t¸ˆ} `B+!(`=ÌO¯vÑmÙsEÓ l;<ÔÓB;wgZÖŠ8Þ*?ù #·YäéBœÝ~]ßZ�otêe±'?O÷ƒ¯�íùýÅ 3×´š´ŸŽÅ§MÌ ØíiiŒu/€JÎN\½Äž¸Èó••°Žæ3Fte‚tz®ÙòËBÆÚ{†½£fOÛü∥5uÒ“áÕðÖŸ³ÂÃ^Efv½$•Áãª;}�èÛ>a~-ò»mƒ¾iJ2�ê—˜{ƒ4wCKÏJê¬å âšaÞ·XîË…7ökIº”–W“ ¨˜äŒOb–ǘ÷‰èÍ_`AÁ¯zˆD€G@2ÿ¡a߯׻ۚŸ¨ï/5]@®Y Ñ΄aD?ûõ:{îTn*;©›<qY�9ã\PЉ;C;›âiþlç÷…oƒì¥âéÃä�= ×)pÐ9“¯Zoí {iÈš¬ln]2zጥö ÇæcÃT² ¸½›¡8ÜW-jKô“²6£UgŠ–‹:É‹.ʃ¸lÑ|>jwÂæû6†úXñxíŠ64}èÀœö[Q¸éÉ|ù«k¾ÐÉöªØá™ðe9^”@|’Ë­ÐyĘsüè—Çe’Q-ðJ@•œN‹7åmë ›?ƒÄâaDGjúX/¢säü*·_&ŸF:°9*’èEêÃMíZ1r’ÙqUž`ÚG¯mZ¿ÕåŠ È¿àîÖ %Ìn;˜^‹Ð㣈ÜtÏÉó�¼Ê%¤Õë¯\)(×2_‚NòDY·Æ.iÖ–í-�¬)6‰àû û —¯°!\t\#Âk0”ÄpW;lªñóŽ„kqÆ=o~µZ|û±¨ î,#Rjs„‚Fhqûu¨4