ELF>ð_@˜µ@8 @@@@ØØ¸Ý¸ÝàààmamaPPPìÍìÍ---‡P�•••  88800hhhDDSåtd88800Påtdì¯ì¯ì¯||QåtdRåtd---ðrðr/lib64/ld-linux-x86-64.so.2 GNUÀ€ÀGNU5Õ‡/˜F_Ä%H›ð·Zòô}øGNU„ ¢˜1�‘¶úëŒÇà`~jšu>[ÑeÎm†ð–|TÀfNŽý“˜<­èïpTL>¥ uÜ µ‚†»šxû L:ÌN‚÷dþDF8 ª‹£ g Ig ·«Ó= 5 . * ´¹ñ~� ¿Ölo_³þÉ< Ÿˆ ,éu"ß <ÁÚƒ½ùq»é ²Í&E ­ �„¿ Ct V B[ u Ôl Ó² ³‰À¬¯ šOii*àŘ€ëÝÙ 'ü¹R !C Ì Ò 0 ˜ ÞÅ”�Vµ B›þÚ º¨ �º åó?¥J Œ ÕáÝbªt‘ ï4uz Ï` Q{ à Õ ^¬Pš È õQ Oò ›ôuyH¢Ñ žÆªŸ7p œá ÕX ÷ä< gËWd´ ï éÄp’|Ýô1ùÈ¢™* ñiçºÚÓ8„ ë > \¬Ê  · ¬û Ì)+…ߊ 3ö ò#, �, ò¤á bË¡ @f ”† ø’ºG Ù ™Ç &¸ _ó %äë% á´8ð8T'Ð8JP:7X"Û«°8m ;&Ì_�:Ž¿ _ITM_deregisterTMCloneTable__gmon_start___ITM_registerTMCloneTable__libc_start_main__cxa_finalizesetlocalebindtextdomainxmalloc_set_program_namefopenfseekftellxmallocfreadferror_sch_istablestrlenxreallocxstrdup__memmove_chk__memcpy_chkfclosebfd_initbfd_set_error_program_namebfd_set_assert_handlerbfd_set_error_handler_xexit_cleanupstrncmpbfd_set_default_targetgetenvstrcmpbfd_hash_table_init_n_bfd_std_sectiondcgettextbfd_set_errorbfd_hash_table_freebfd_closexexitregister_ld_plugin_object_pgetpagesizedlsymstderr__fprintf_chkdlerrorrewindstdoutfflush__printf_chkputcharbfd_hash_traversebfd_generic_link_read_symbolsbfd_link_hash_traversefputsfputcqsortbfd_link_hash_lookuplrealpathbfd_hash_set_default_sizestrcasecmp__strcpy_chk__strcat_chkfwritebfd_get_errorbfd_sprintf_vmabfd_get_unique_section_namebfd_make_section_anyway_sch_tolowerconcatlbasenamefnmatchstrpbrkbfd_hash_lookupbfd_hash_allocatebfd_hash_newfuncbfd_scan_arch__sprintf_chkoptindopterrgetopt_long_onlyoptargdlopen__stack_chk_fail__fgets_chkstrchrfeofbfd_target_listbfd_get_compression_algorithm_namebfd_scan_vmagetopt_long__asprintf_chk__errno_location__isoc23_strtoulcplus_demangle_name_to_stylecplus_demangle_set_stylebfd_hash_table_initbfd_get_compression_algorithmbfd_close_all_donedlcloseunlink_if_ordinarymemcpymemsetmake_relative_prefix__memset_chkbfd_demanglefilename_cmpbfd_errmsg__isoc23_strtoullstdinfilenoisattybfd_octets_per_bytebfd_wrapped_link_hash_lookupbfd_link_add_undefstrcspnhtab_findhtab_createhtab_find_slothtab_hash_stringbfd_emul_get_maxpagesizebfd_emul_get_commonpagesizebfd_section_already_linked_table_initbfd_section_already_linked_table_freebfd_arch_get_compatiblebfd_link_check_relocsbfd_get_section_by_namebfd_arch_bits_per_addressbfd_set_start_addressbfd_printable_namedcngettextbfd_record_phdrbfd_reloc_type_lookupbfd_get_reloc_code_namebfd_get_section_contentsbfd_openwbfd_set_formatbfd_set_gp_sizebfd_iterate_over_targetsbfd_check_formatbfd_arch_mach_octets_per_byte_bfd_elf_linker_x86_set_optionsbfd_check_format_matchesbfd_elf_set_dyn_lib_classbfd_openr_next_archived_filefilename_ncmpperrorbfd_openrbfd_map_over_sectionsobjalloc_free_blockbfd_get_next_section_by_namebfd_make_section_anyway_with_flagsbfd_make_section_with_flagsbfd_elf_parse_eh_frame_entriesbfd_use_reserved_idbfd_plugin_target_pbfd_createbfd_make_writablebfd_get_arch_infobfd_set_arch_infobfd_get_gp_sizebfd_allocbfd_plugin_open_inputbfd_plugin_close_file_descriptorbfd_make_readablemunmapbfd_elf_get_needed_listbfd_elf_get_dyn_lib_classbfd_elf_add_dt_needed_tagbfd_elf_get_runpath_listbfd_set_symtabbfd_elf_set_dt_needed_namememcmpxcallocbfd_get_reloc_upper_boundbfd_canonicalize_relocbfd_hide_sym_by_versionunwrap_hash_lookupcurrent_demangling_stylebfd_elf_get_dt_sonamestrrchrgetpwdbfd_get_archbfd_statbfd_elf_get_bfd_needed_listmmaplseekstrstr_bfd_elf_match_sections_by_type_bfd_elf_tls_setupbfd_elf_size_dynamic_sectionsbfd_elf_size_dynsym_hash_dynstrbfd_elf_discard_info_bfd_elf_map_sections_to_segmentsbfd_elf_record_link_assignment_bfd_fix_excluded_sec_symsbfd_new_link_orderbfd_putl64bfd_getb64bfd_putl16bfd_getb16bfd_putl32bfd_getb32globglobfreebfd_is_local_label__strncpy_chkbfd_seekbfd_writeabort_bfd_elf_strtab_len_bfd_elf_strtab_strbfd_get_target_info__isoc23_strtolbfd_find_targetbfd_set_section_sizebfd_set_section_contentsbfd_read_bfd_pex64i_swap_debugdir_out_bfd_pex64i_write_codeview_recordbfd_set_section_flagsbfd_get_current_timebfd_set_archive_head__stpcpy_chk_bfd_pei_swap_debugdir_out_bfd_pei_write_codeview_recordfgetcbfd_get_machbfd_make_section_old_waymemmovestrcatstrcpystrtokobstack_alloc_failed_handlerposix_spawnattr_initposix_spawnattr_setflagsposix_spawnattr_destroyposix_spawn_file_actions_initposix_spawn_file_actions_adddup2posix_spawn_file_actions_destroyposix_spawn_file_actions_addcloseposix_spawnpposix_spawn__environwait4killwaitpidpipefcntlaccessgetrusage_obstack_begin_obstack_begin_1_obstack_newchunk_obstack_allocated_p_obstack_free_obstack_memory_usedmkstempsremovestrerrorungetcctf_closectf_link_add_ctfctf_errmsgctf_link_shuffle_symsctf_errwarning_nextctf_bfdopenctf_errnoctf_link_writectf_createctf_dict_closectf_link_add_linker_symbolctf_link_add_strtabctf_linkjson_deletejson_loadslibbfd-2.42-system.solibctf.so.0libjansson.so.4libc.so.6LIBCTF_1.1LIBCTF_1.0GLIBC_2.27GLIBC_2.15GLIBC_2.14GLIBC_2.33GLIBC_2.8GLIBC_2.4GLIBC_2.34GLIBC_2.38GLIBC_2.2.5GLIBC_2.11GLIBC_2.3.4       ¢ dÊ ¢–0q/�¼p/�Ç ²‡‘–Ò•‘–Ý”‘– 賑– óii þii ´‘–¸‘–ui (‘‘–4ti ?-Ð`-�` ->o@-¹W`-,[€-äp -3[À-D[à-\[.e[ .w[@.‹[`.ˆ[€.˜[ .¥[À.³[à.°[ /¹W@/,[`/äp€/3[ /D[À/\[à/e[0w[ 0‹[@0ˆ[`0˜[€0¥[ 0³[À0°[1¹W 1,[@1äp`13[€1D[ 1\[À1e[à1w[2‹[ 2ˆ[@2˜[`2¥[€2³[ 2°[à2¹W3,[ 3äp@33[`3D[€3\[ 3e[À3w[à3‹[4ˆ[ 4˜[@4¥[`4³[€4°[è4Ì[ð4�Ñ5Ø[(5>Š05Ô[@5ódh5ŸSp5ÀÑ€5å[¨5ò^°5ð[À5\ð5ðÑ6\@6\h6ò^p6$\€6:\°6ÒÀ6z‚è6Äfð6Q\7�\07c\@7~\p7@Ò€7�\°7hÒÀ7˜Òð7ÀÒ8®\08Ó@8Å\p8PÓ€8Û\°8Þ\À8¼‹ð8ö\9](9¨n09ˆÓ@9]h9¨np9¸Ó°9"]À9*]è9Leð9àÓ:1](:8]0:Ô@:L]h:A]p:8Ô€:I]°:hÔÀ:�eè:n]ð:[];v](;ƒ]0;¨Ô@;�]p;ÐÔ¨;\P°;¡]À;¯]ð;øÔ<¹]0<À]@<Ú]p< Õ€<×]°<XÕÀ<·^è<ò^ð<á]0=ö]@= ^h=ò^p=^€=@^¨=.^°=5^À=G^è=R^ð=€Õ>V^0> Õ@>[^p> Õ€>k^°>ÐÕÀ>w^ð>Ö?t^0?Ö@?‡^p?(Ö€?Š^°?HÖÀ?–^ð?¢^@@¾^h@ò^p@pÖ€@Ë^¨@ò^°@¨ÖÀ@Ý^è@ê^ð@ØÖA÷^0A_@A_pA_€A:_°A×ÀA7_ðA0×BJ_0BP_@BélhBò^pBa_€Bt_¨Bò^°Bƒ_ÀBž_CHc(C:`0C`×@C¡_hC:`pC�×€C‰X¨C±_°CÀ×ÀC¼_ðCð×D­c0D¿_pD Ø€DÙ_°Då_ÀDÿ_ðDHØE`0ExØ@E`hE:`pE(`¨Erq°E˜ØÀEA`ðEM`F[`0Fe`@Ft`pFÈØ€Fq`°FÙÀF‘`GŽ`@GŸ`pG@Ù€Gœ`°GxÙÀG©`èGÌ[ðGèÙH°`0H¹`@H×`€HÚ`ÀHæ`ðHÚIî`@Iñ`€Iç`ÀIü`ðI0ÚJ a0JXÚ@JapJxÚ€J*a°J ÚÀJ'aðJÐÚKzȪ(Äàªäyðª*Ä«ùy«,Ä0«z@«.ÄX«&zh«0Ä€«žy�«2Ĩ«ºy¸«DÄЫÖyà«HÄø«„y¬PÄ ¬ky0¬XÄH¬RyX¬`Äp¬:y€¬hʬÿz¨¬FÄÀ¬oz@­xÆP­ y`­ˆÈp­gz€­xÆ�­y ­€Æ°­QzÀ­„ÆЭ>zà­ˆÆð­äy®ŠÆ®ùy ®ŒÆ0®z@®ŽÆP®&z`®�Æp®žy€®’Æ�®ºy ®¤Æ°®ÖyÀ®¨ÆЮ„yà®°Æð®ky¯¸Æ¯Ry ¯ÀÆ0¯:y@¯ÈÆP¯ÿz`¯¦Æp¯oz ¯&tЯÑ�°T€0° t`°t °¿Z¨°M‚À°`€Ȱ¿Zаõ†è°`€ð°‡ø° ‡±à±‡ ±‡8±à@±$‡H±3‡`±àh±A‡p±V‡ˆ±à�±j‡˜±}‡°±àà±ÐZè±åx²@‚²ÐZ²�‡(²@‚0²‡8² ‡P²À�X²‡`²‡x²À�€²$‡ˆ²3‡ ²À�¨²A‡°²V‡ȲÀ�вj‡ز}‡ð²À� ³&tP³Ñ�€³T€°³ tà³t´ÀPŸXŸ`ŸhŸpŸxŸ.€ŸˆŸ?�ŸX˜Ÿ Ÿ„¨Ÿ‹°ŸޏŸ²ÀŸµÈŸºÐŸÊØŸöàŸèŸ ðŸøŸ@—H—P—X—`—h—p—x—€— ˆ— �— ˜—  — ¨—°—¸—À—È—ЗØ—à—è—ð—ø—˜˜˜˜ ˜!(˜"0˜#8˜$@˜%H˜&P˜'X˜(`˜)h˜*p˜+x˜,€˜-ˆ˜/�˜0˜˜1 ˜2¨˜3°˜4¸˜5À˜6Ș7И8ؘ9à˜:è˜;ð˜<ø˜=™>™@™A™B ™C(™D0™E8™F@™GH™HP™IX™J`™Kh™Lp™Mx™N€™Oˆ™P�™Q˜™R ™S¨™T°™U¸™VÀ™WÈ™YЙZØ™[à™\è™]ð™^ø™_š`šašbšc šd(še0šf8šg@šhHšiPšjXšk`šlhšmpšnxšo€špˆšq�šr˜šs št¨šu°šv¸šwÀšxÈšyКzØš{àš|èš}ðš~øš›€›�›‚›ƒ ›…(›†0›‡8›ˆ@›‰H›ŠP›ŒX›�`›�h›�p›‘x›’€›“ˆ›”�›•˜›– ›—¨›˜°›™¸›šÀ››È›œÐ›�Ø›žà›Ÿè› ð›¡ø›¢œ£œ¤œ¥œ¦ œ§(œ¨0œ©8œª@œ«Hœ¬Pœ­Xœ®`œ¯hœ°pœ±xœ³€œ´ˆœ¶�œ·˜œ¸ œ¹¨œ»°œ¼¸œ½Àœ¾Èœ¿ÐœÀØœÁàœÂèœÃðœÄøœÅ�Æ�Ç�È�É �Ë(�Ì0�Í8�Î@�ÏH�ÐP�ÑX�Ò`�Óh�Ôp�Õx�Ö€�׈�Ø��Ù˜�Ú �Û¨�ܰ�ݸ�ÞÀ�ßÈ�àÐ�áØ�âà�ãè�äð�åø�æžçžèžéžê žë(ží0žî8žï@žðHžñPžòXžó`žôhžõpž÷xžø€žùˆžú�žû˜žü žý¨žþ°žÿ¸žÀžÈžОØžàžèžðžøžŸ Ÿ Ÿ Ÿ  Ÿ (Ÿ0Ÿ8Ÿ@ŸHŸóúHƒìH‹™¿H…ÀtÿÐHƒÄÃÿ5 ·ÿ% ·@óúhéâÿÿÿf�óúhéÒÿÿÿf�óúhéÂÿÿÿf�óúhé²ÿÿÿf�óúhé¢ÿÿÿf�óúhé’ÿÿÿf�óúhé‚ÿÿÿf�óúhérÿÿÿf�óúhébÿÿÿf�óúh éRÿÿÿf�óúh éBÿÿÿf�óúh é2ÿÿÿf�óúh é"ÿÿÿf�óúh éÿÿÿf�óúhéÿÿÿf�óúhéòþÿÿf�óúhéâþÿÿf�óúhéÒþÿÿf�óúhéÂþÿÿf�óúhé²þÿÿf�óúhé¢þÿÿf�óúhé’þÿÿf�óúhé‚þÿÿf�óúhérþÿÿf�óúhébþÿÿf�óúhéRþÿÿf�óúhéBþÿÿf�óúhé2þÿÿf�óúhé"þÿÿf�óúhéþÿÿf�óúhéþÿÿf�óúhéòýÿÿf�óúh éâýÿÿf�óúh!éÒýÿÿf�óúh"éÂýÿÿf�óúh#é²ýÿÿf�óúh$é¢ýÿÿf�óúh%é’ýÿÿf�óúh&é‚ýÿÿf�óúh'érýÿÿf�óúh(ébýÿÿf�óúh)éRýÿÿf�óúh*éBýÿÿf�óúh+é2ýÿÿf�óúh,é"ýÿÿf�óúh-éýÿÿf�óúh.éýÿÿf�óúh/éòüÿÿf�óúh0éâüÿÿf�óúh1éÒüÿÿf�óúh2éÂüÿÿf�óúh3é²üÿÿf�óúh4é¢üÿÿf�óúh5é’üÿÿf�óúh6é‚üÿÿf�óúh7érüÿÿf�óúh8ébüÿÿf�óúh9éRüÿÿf�óúh:éBüÿÿf�óúh;é2üÿÿf�óúh<é"üÿÿf�óúh=éüÿÿf�óúh>éüÿÿf�óúh?éòûÿÿf�óúh@éâûÿÿf�óúhAéÒûÿÿf�óúhBéÂûÿÿf�óúhCé²ûÿÿf�óúhDé¢ûÿÿf�óúhEé’ûÿÿf�óúhFé‚ûÿÿf�óúhGérûÿÿf�óúhHébûÿÿf�óúhIéRûÿÿf�óúhJéBûÿÿf�óúhKé2ûÿÿf�óúhLé"ûÿÿf�óúhMéûÿÿf�óúhNéûÿÿf�óúhOéòúÿÿf�óúhPéâúÿÿf�óúhQéÒúÿÿf�óúhRéÂúÿÿf�óúhSé²úÿÿf�óúhTé¢úÿÿf�óúhUé’úÿÿf�óúhVé‚úÿÿf�óúhWérúÿÿf�óúhXébúÿÿf�óúhYéRúÿÿf�óúhZéBúÿÿf�óúh[é2úÿÿf�óúh\é"úÿÿf�óúh]éúÿÿf�óúh^éúÿÿf�óúh_éòùÿÿf�óúh`éâùÿÿf�óúhaéÒùÿÿf�óúhbéÂùÿÿf�óúhcé²ùÿÿf�óúhdé¢ùÿÿf�óúheé’ùÿÿf�óúhfé‚ùÿÿf�óúhgérùÿÿf�óúhhébùÿÿf�óúhiéRùÿÿf�óúhjéBùÿÿf�óúhké2ùÿÿf�óúhlé"ùÿÿf�óúhméùÿÿf�óúhnéùÿÿf�óúhoéòøÿÿf�óúhpéâøÿÿf�óúhqéÒøÿÿf�óúhréÂøÿÿf�óúhsé²øÿÿf�óúht颸ÿÿf�óúhué’øÿÿf�óúhv邸ÿÿf�óúhwérøÿÿf�óúhxébøÿÿf�óúhyéRøÿÿf�óúhzéBøÿÿf�óúh{é2øÿÿf�óúh|é"øÿÿf�óúh}éøÿÿf�óúh~éøÿÿf�óúhéò÷ÿÿf�óúh€éâ÷ÿÿf�óúh�éÒ÷ÿÿf�óúh‚éÂ÷ÿÿf�óúhƒé²÷ÿÿf�óúh„é¢÷ÿÿf�óúh…é’÷ÿÿf�óúh†é‚÷ÿÿf�óúh‡ér÷ÿÿf�óúhˆéb÷ÿÿf�óúh‰éR÷ÿÿf�óúhŠéB÷ÿÿf�óúh‹é2÷ÿÿf�óúhŒé"÷ÿÿf�óúh�é÷ÿÿf�óúhŽé÷ÿÿf�óúh�éòöÿÿf�óúh�éâöÿÿf�óúh‘éÒöÿÿf�óúh’éÂöÿÿf�óúh“é²öÿÿf�óúh”é¢öÿÿf�óúh•é’öÿÿf�óúh–é‚öÿÿf�óúh—éröÿÿf�óúh˜éböÿÿf�óúh™éRöÿÿf�óúhšéBöÿÿf�óúh›é2öÿÿf�óúhœé"öÿÿf�óúh�éöÿÿf�óúhžéöÿÿf�óúhŸéòõÿÿf�óúh éâõÿÿf�óúh¡éÒõÿÿf�óúh¢éÂõÿÿf�óúh£é²õÿÿf�óúh¤é¢õÿÿf�óúh¥é’õÿÿf�óúh¦é‚õÿÿf�óúh§érõÿÿf�óúh¨ébõÿÿf�óúh©éRõÿÿf�óúhªéBõÿÿf�óúh«é2õÿÿf�óúh¬é"õÿÿf�óúh­éõÿÿf�óúh®éõÿÿf�óúh¯éòôÿÿf�óúh°éâôÿÿf�óúh±éÒôÿÿf�óúh²éÂôÿÿf�óúh³é²ôÿÿf�óúh´é¢ôÿÿf�óúhµé’ôÿÿf�óúh¶é‚ôÿÿf�óúh·érôÿÿf�óúh¸ébôÿÿf�óúh¹éRôÿÿf�óúhºéBôÿÿf�óúh»é2ôÿÿf�óúh¼é"ôÿÿf�óúh½éôÿÿf�óúh¾éôÿÿf�óúh¿éòóÿÿf�óúhÀéâóÿÿf�óúhÁéÒóÿÿf�óúhÂéÂóÿÿf�óúhÃé²óÿÿf�óúhÄé¢óÿÿf�óúhÅé’óÿÿf�óúhÆé‚óÿÿf�óúhÇéróÿÿf�óúhÈébóÿÿf�óúhÉéRóÿÿf�óúhÊéBóÿÿf�óúhËé2óÿÿf�óúhÌé"óÿÿf�óúhÍéóÿÿf�óúhÎéóÿÿf�óúhÏéòòÿÿf�óúhÐéâòÿÿf�óúhÑéÒòÿÿf�óúhÒéÂòÿÿf�óúhÓé²òÿÿf�óúhÔé¢òÿÿf�óúhÕé’òÿÿf�óúhÖé‚òÿÿf�óúh×éròÿÿf�óúhØébòÿÿf�óúhÙéRòÿÿf�óúhÚéBòÿÿf�óúhÛé2òÿÿf�óúhÜé"òÿÿf�óúhÝéòÿÿf�óúhÞéòÿÿf�óúhßéòñÿÿf�óúhàéâñÿÿf�óúháéÒñÿÿf�óúhâéÂñÿÿf�óúhãé²ñÿÿf�óúhäé¢ñÿÿf�óúhåé’ñÿÿf�óúhæé‚ñÿÿf�óúhçérñÿÿf�óúhèébñÿÿf�óúhééRñÿÿf�óúhêéBñÿÿf�óúhëé2ñÿÿf�óúhìé"ñÿÿf�óúhíéñÿÿf�óúhîéñÿÿf�óúhïéòðÿÿf�óúhðéâðÿÿf�óúhñéÒðÿÿf�óúhòéÂðÿÿf�óúhóé²ðÿÿf�óúhôé¢ðÿÿf�óúhõé’ðÿÿf�óúhöé‚ðÿÿf�óúh÷érðÿÿf�óúhøébðÿÿf�óúhùéRðÿÿf�óúhúéBðÿÿf�óúhûé2ðÿÿf�óúhüé"ðÿÿf�óúhýéðÿÿf�óúhþéðÿÿf�óúhÿéòïÿÿf�óúhéâïÿÿf�óúhéÒïÿÿf�óúÿ%ö®fDóúÿ%¯fDóúÿ%¯fDóúÿ%V¯fDóúÿ%N¯fDóúÿ%–¦fDóúÿ%ަfDóúÿ%†¦fDóúÿ%~¦fDóúÿ%v¦fDóúÿ%n¦fDóúÿ%f¦fDóúÿ%^¦fDóúÿ%V¦fDóúÿ%N¦fDóúÿ%F¦fDóúÿ%>¦fDóúÿ%6¦fDóúÿ%.¦fDóúÿ%&¦fDóúÿ%¦fDóúÿ%¦fDóúÿ%¦fDóúÿ%¦fDóúÿ%þ¥fDóúÿ%ö¥fDóúÿ%î¥fDóúÿ%æ¥fDóúÿ%Þ¥fDóúÿ%Ö¥fDóúÿ%Î¥fDóúÿ%Æ¥fDóúÿ%¾¥fDóúÿ%¶¥fDóúÿ%®¥fDóúÿ%¦¥fDóúÿ%ž¥fDóúÿ%–¥fDóúÿ%Ž¥fDóúÿ%†¥fDóúÿ%~¥fDóúÿ%v¥fDóúÿ%n¥fDóúÿ%f¥fDóúÿ%^¥fDóúÿ%V¥fDóúÿ%N¥fDóúÿ%F¥fDóúÿ%>¥fDóúÿ%6¥fDóúÿ%.¥fDóúÿ%&¥fDóúÿ%¥fDóúÿ%¥fDóúÿ%¥fDóúÿ%¥fDóúÿ%þ¤fDóúÿ%ö¤fDóúÿ%î¤fDóúÿ%æ¤fDóúÿ%Þ¤fDóúÿ%Ö¤fDóúÿ%ΤfDóúÿ%ƤfDóúÿ%¾¤fDóúÿ%¶¤fDóúÿ%®¤fDóúÿ%¦¤fDóúÿ%ž¤fDóúÿ%–¤fDóúÿ%ޤfDóúÿ%†¤fDóúÿ%~¤fDóúÿ%v¤fDóúÿ%n¤fDóúÿ%f¤fDóúÿ%^¤fDóúÿ%V¤fDóúÿ%N¤fDóúÿ%F¤fDóúÿ%>¤fDóúÿ%6¤fDóúÿ%.¤fDóúÿ%&¤fDóúÿ%¤fDóúÿ%¤fDóúÿ%¤fDóúÿ%¤fDóúÿ%þ£fDóúÿ%ö£fDóúÿ%î£fDóúÿ%æ£fDóúÿ%Þ£fDóúÿ%Ö£fDóúÿ%ΣfDóúÿ%Æ£fDóúÿ%¾£fDóúÿ%¶£fDóúÿ%®£fDóúÿ%¦£fDóúÿ%ž£fDóúÿ%–£fDóúÿ%Ž£fDóúÿ%†£fDóúÿ%~£fDóúÿ%v£fDóúÿ%n£fDóúÿ%f£fDóúÿ%^£fDóúÿ%V£fDóúÿ%N£fDóúÿ%F£fDóúÿ%>£fDóúÿ%6£fDóúÿ%.£fDóúÿ%&£fDóúÿ%£fDóúÿ%£fDóúÿ%£fDóúÿ%£fDóúÿ%þ¢fDóúÿ%ö¢fDóúÿ%î¢fDóúÿ%æ¢fDóúÿ%Þ¢fDóúÿ%Ö¢fDóúÿ%΢fDóúÿ%Æ¢fDóúÿ%¾¢fDóúÿ%¶¢fDóúÿ%®¢fDóúÿ%¦¢fDóúÿ%ž¢fDóúÿ%–¢fDóúÿ%Ž¢fDóúÿ%†¢fDóúÿ%~¢fDóúÿ%v¢fDóúÿ%n¢fDóúÿ%f¢fDóúÿ%^¢fDóúÿ%V¢fDóúÿ%N¢fDóúÿ%F¢fDóúÿ%>¢fDóúÿ%6¢fDóúÿ%.¢fDóúÿ%&¢fDóúÿ%¢fDóúÿ%¢fDóúÿ%¢fDóúÿ%¢fDóúÿ%þ¡fDóúÿ%ö¡fDóúÿ%î¡fDóúÿ%æ¡fDóúÿ%Þ¡fDóúÿ%Ö¡fDóúÿ%ΡfDóúÿ%Æ¡fDóúÿ%¾¡fDóúÿ%¶¡fDóúÿ%®¡fDóúÿ%¦¡fDóúÿ%ž¡fDóúÿ%–¡fDóúÿ%Ž¡fDóúÿ%†¡fDóúÿ%~¡fDóúÿ%v¡fDóúÿ%n¡fDóúÿ%f¡fDóúÿ%^¡fDóúÿ%V¡fDóúÿ%N¡fDóúÿ%F¡fDóúÿ%>¡fDóúÿ%6¡fDóúÿ%.¡fDóúÿ%&¡fDóúÿ%¡fDóúÿ%¡fDóúÿ%¡fDóúÿ%¡fDóúÿ%þ fDóúÿ%ö fDóúÿ%î fDóúÿ%æ fDóúÿ%Þ fDóúÿ%Ö fDóúÿ%ΠfDóúÿ%Æ fDóúÿ%¾ fDóúÿ%¶ fDóúÿ%® fDóúÿ%¦ fDóúÿ%ž fDóúÿ%– fDóúÿ%Ž fDóúÿ%† fDóúÿ%~ fDóúÿ%v fDóúÿ%n fDóúÿ%f fDóúÿ%^ fDóúÿ%V fDóúÿ%N fDóúÿ%F fDóúÿ%> fDóúÿ%6 fDóúÿ%. fDóúÿ%& fDóúÿ% fDóúÿ% fDóúÿ% fDóúÿ% fDóúÿ%þŸfDóúÿ%öŸfDóúÿ%îŸfDóúÿ%æŸfDóúÿ%ÞŸfDóúÿ%ÖŸfDóúÿ%ΟfDóúÿ%ÆŸfDóúÿ%¾ŸfDóúÿ%¶ŸfDóúÿ%®ŸfDóúÿ%¦ŸfDóúÿ%žŸfDóúÿ%–ŸfDóúÿ%ŽŸfDóúÿ%†ŸfDóúÿ%~ŸfDóúÿ%vŸfDóúÿ%nŸfDóúÿ%fŸfDóúÿ%^ŸfDóúÿ%VŸfDóúÿ%NŸfDóúÿ%FŸfDóúÿ%>ŸfDóúÿ%6ŸfDóúÿ%.ŸfDóúÿ%&ŸfDóúÿ%ŸfDóúÿ%ŸfDóúÿ%ŸfDóúÿ%ŸfDóúÿ%þžfDóúÿ%öžfDóúÿ%îžfDóúÿ%æžfDóúÿ%ÞžfDóúÿ%ÖžfDóúÿ%ΞfDóúÿ%ÆžfDóúÿ%¾žfDóúÿ%¶žfDóúÿ%®žfDóúÿ%¦žfDóúÿ%žžfDóúÿ%–žfDóúÿ%ŽžfDH‹ ŸHƒÃ¶ˆSÿé Š¸H‹=Å»H�41Ò1Àè°ôÿÿ1ÒD‰æ1ÉH‰Ç¶ÿµ‰Ãƒà÷ˆôµÀëèlƒãH‰Â¶ßµÁãƒà÷ Ø[A\ˆε]H‰ÐøëžL)Æ…¸mH�ïré¸mM‹M…ÿ„ lI‹?1ÒL‰îL‰EÀè_ôÿÿL‹EÀ…ÀuÚ€=ø¸uM‹oM…í…Þk1ÛéÙlI‹H�5RI‹_L‰E¸H‰ÇH‰EÀèùÿÿL‹E¸H…Àt6H…Û„†ºH�5n”1ÿèwòÿÿH‹MÀH‰ÚL‰îH‰Ç1ÀèhÏL‹E¸ë�L‰EÀºH…Ût'H�5 ”1ÿèAòÿÿH‰ÚL‰îH‰Ç1Àè6ÏL‹EÀéZÿÿÿH�5„Q1ÿèòÿÿL‰îH‰Ç1ÀèÏL‹EÀé6ÿÿÿºH�5 ”1ÿL‰E¸èíñÿÿH‹UÀL‰îH‰Ç1ÀèáÎL‹E¸éÿÿÿH‹LµH‰Ï€ bµH�H÷ÒH!ÐH‹ µH‰ÆH)ÖH)×H9÷ƒ*ké�lKé›kf�K`KéŒkA€}„¶k€K`I�Eé©k€ µH‰Ëé—lH�5Ì“1ÿºH‰MÈèDñÿÿH‹uÈH‰Ç1À膟H�5§“1ÿºè#ñÿÿL‰þH‰Ç1ÀèfŸH‹H…ÀuH‰Øé.nH;HHuòAöÄu%‹�¬A9Õ„ùm…ÒˆnE…í„èméõmA�ý„uÒéçmèÒìÿÿH‰ÂH…À…�n1ÀéoóúU¾ H�=9WÆÛ²gH‰åèψº!]H¸ÿÿÿ¿þÿòHÁâH#$·€ ³ H Ѐ ·ÆN¸Æ^¸H‰þ¶ÃE…ät D‰%i²鯈H�5Õ’1ÿºè)ðÿÿH‰ÞH‰Ç1Àèlž÷ÐH�vaº¨H�œOH�5ªHDØ1ÿèóïÿÿH‰ÇH‰Þ1Àè6žHc�üþÿÿH‹…èþÿÿ1ÿºH�5*QH‹ØèÁïÿÿH‰ÇH‰Þ1ÀèžL‹=ýš¾=M‹'L‰çè=ðÿÿH…À„} A€<$L�p„Q €x„G L‰óL)ãHcÃH‰ÇH‰…Àþÿÿèƒëÿÿ�SÿH‹�ÀþÿÿI‹7I‰ÄHcÒH‰ÇH‰ÙèuóÿÿAÆDÿL‰÷H�µ(ÿÿÿºè+ìÿÿH‰ÇH‹…(ÿÿÿ€8…Ä èS”1ÒL‰çH‰Æè†­éƒqL‹=JšI‹H‰0¶émq¶–µƒà?ƒÈ€ˆеéUqÆ"µéIqI�|$é‘qºH�5ÛO1ÿèªîÿÿ1ÿºH�5ÒOH‰m°è�îÿÿH‰Ç1ÀèÖœHƒÇé wL‹µÀþÿÿI9ß…ãvL‰ÿèeêÿÿL‰÷è îÿÿéÚpL‰þH�=®ª1Àè—œHƒÆéwHƒÂéævL‰þH�=‹ª1ÀètœC€|'þ t&MäL‰ÿL‰æèïÿÿI9ÜH‰ÞICôI‰ÇH)ÞHÃé"vL‹µÀþÿÿé`vI‹H�5@­1ÿºèÔíÿÿH‰ÇH‰Þ1ÀèœL‹=™¾=M‹7L‰÷èPîÿÿH‰ÃH…À„€I‰ÄM)ôI�L$H‰ÏH‰�ÀþÿÿèªéÿÿH‹�ÀþÿÿI‹7L‰âI‰ÆH‰Çè¢ñÿÿCÆ&L‰÷H�s衪L‰÷èYéÿÿéÖoÆ]¯éÊo€%ø³ûé¾o€ ì³é²oÆ9¯é¦o1ÿºH�5ž©èíÿÿH‰Ç1ÀèW›L‹=P˜I‹H‰~³éso€ š³égoL‹=.˜I‹?èFƒéSoHc�üþÿÿH‹…èþÿÿL�%ìùL‹­ÈþÿÿH‹ØAƒ½3„¬Iƒí@M9åuéH�5YL1ÿºè‡ìÿÿH‰ÞH‰Ç1À芭1ÿºH�5¼�ègìÿÿH‰Ç1Àè­š€ ³€Hƒ=†´…ÊnHÇu´ýéºn¶å²ƒàçƒÈˆÙ²é¢n€%̲ûé–n€ IJ@éŠnÆA´é~nÆW²érn€  ²éfn¶”²ƒàüƒÈˆˆ²éNn€%{²ŸéBn¶o²ƒàŸƒÈ ˆc²é*n¶W²ƒàŸƒÈ@ˆK²én€%?²én€ 3²€éúmL‹=Á–L‹%š±I‹?èB“H�³L‰%„±Çv±H‰3­èÞ‘ƒ½øþÿÿ„EÇ…øþÿÿé¤mÆ|±é˜m€ ı€éŒmL‹=S–H�=¬±I‹7èÃDéqmH‹=@³€?…¨1ÿèxóÿÿL‹=!–H�55MM‹'L‰çèïçÿÿ…À„ZH�5!ML‰çèØçÿÿ…À„4H�5iL‰çèÁçÿÿ…À…ÞÇw²éülL‹=ÕM‹7L‰÷èX’¿è^eL‰÷I‰ÄH‹1¬I‰D$臒I‰$L‰%¬é¹lèBèÿÿéNÿÿÿL‹=v•Iƒ?…Î1ÿºH�5�è êÿÿL‰öH‰Ç1Àè «é'lI‹µ3H…ö„DýÿÿA‹½83Hßè¸íÿÿ…À…-ýÿÿ1ÿºH�5nIè½éÿÿH‰ÞH‰Ç1ÀèÀªé1ýÿÿH�5LL‰çèÌæÿÿ…Àudž±é l1ÿºH�5³¦èvéÿÿH‰Ç1Àè¼—ÇZ±éßkE1ÒD‰K±éÐkºH�5 Œ1ÿè;éÿÿL‰òL‰öH‰Ç1Àè{—ƒ½Üþÿÿt"èÝ­ƒ­Üþÿÿé“kè짃…Üþÿÿé‚k1ÿºH�5¥èíèÿÿH‰Ç1Àè3—H‹”‹�üþÿÿH�ÙML‹…àþÿÿH‹�ÿÿÿH‹µèþÿÿ‹½ðþÿÿ‰èéÿÿA‰ÄH‹«¬H‹€°H…À…ÖjAƒüÿ„HléÚjH‹µèþÿÿ‹½ðþÿÿÿЄÀuoH‹¢“‹‰…üþÿÿéj‹…ðþÿÿ9Ás5H‹rH‹ˆ“¶6öpt!HƒÂé–hH‹• ÿÿÿMcÒBÆ:D�WéÔgH�­GHƒÂH‰Bø9�ðþÿÿtébhD‰¥üþÿÿéxjé€hL‹=:“I‹€8tAH‰K®éXjH‹=_®H…ÿu\¿èàãÿÿL‹= “1ÿH‰@®I‹H‰xH‰é#jH‹ ®H…Òt³€:t®1ÿºH�5‚¢è}çÿÿH‰Ç1À胨éði1ÀI‰ÄHƒÀHƒ|ÇøuñAƒÄMcäIÁäL‰æèJèÿÿL‹=“’1öH‰Ê­I‹J‰t øJ‰T ðéªiH‹�Ðþÿÿ¾:H‰ßè´çÿÿI‰ÄH…À„2Æ€;…hI�\$ëÔºH�5�¥1ÿƒëèßæÿÿH‰Ç1Àèå§è�«éÔj€8„—‹�ÜþÿÿéÀjE1ÉL‰�(ÿÿÿ€;„�H�5§KH‰ßèuêÿÿ…À„€j¾%H‰ßè çÿÿH…À…"H�µ0ÿÿÿH‰ßèØêÿÿ…ÀˆZ‹…Hÿÿÿ%ð=@t}=€uMH‹…(ÿÿÿH…À„*jH‰@®éjºH�5‡¤1ÿèæÿÿH‰Ç1Àè§1ÿ‹�ÜþÿÿH‰=o¬éjºH�5î£1ÿèçåÿÿH‰Ç1Àèí¦E1ÀL‰ã­ëŠH‰ßèùåÿÿH‹=²˜¶\ÿèéÿÿL�Ÿ`H‹ º­H�½(ÿÿÿ€û/I‰Á¾H�ŽrH�3HLDÀ1Àèéÿÿ…À‰0ÿÿÿ1ÿºH�5™£èdåÿÿH‰Ç1Àèj¦éHi€xÆL� öGtL�HL‹*˜H‹ C­1ÀH�½(ÿÿÿH�ÅG¾è©èÿÿ똺H�5£¢éÿÿÿèaâÿÿƒ8„±þÿÿ1ÿºH�5¢èåäÿÿH‰Ç1Àèë¥é�þÿÿ€;uH‹½ÐþÿÿèÅàÿÿéßh¾H‰ßèˆëà1ÿºH�5³¡èžäÿÿH‰Ç1Àèä’¾H‰ßèׇé†ýÿÿ€ ,§éøfL‹=¿�I‹?H…ÿu?HÇŒ¬éÙfL‹= �I‹?H…ÿt51Ò1öè¿àÿÿ‰a¬é¶fÆ*¬éªf1Ò1öèáÿÿH‰H¬é•fÇ1¬€é†fÆó«ézfÆí«énfÆã«ébfÆ׫éVfÆ#ªéJfL‹=�1Ò1öI‹?è5àÿÿH…Àt$H‰á«é&f€ Mª@éf€%Hªßéf1ÿºH�5^ èyãÿÿH‰Ç1Àè¤éìeL‹=³ŽI‹H‰‘ªéÖeH�5'E1ÿºèAãÿÿL‰öH‰Ç1Àè„‘1ÿºH�5öžè!ãÿÿH‰Ç1Àèg‘1ÿºH�5¡žèãÿÿH‰Ç1ÀèJ‘L‰çè"ãÿÿH‹½ÀþÿÿH‰…°þÿÿèãÿÿ¾ãªI‰Æˆ�¿þÿÿH‹½ÀþÿÿL‰òL‰æèMàÿÿ…ÀuC¶4„À„.e:…¿þÿÿ„"eL‰ç‰Þè6ãÿÿI‰ÄH…Àt*IƒÄë¹ÆÕ¨éþdÆݬéòdƾ¨éædH‹…°þÿÿN�t0L‰÷èpÞÿÿH� ÆCL‰ò¾I‰ÄP1ÀAÿ7D¾ ;ªL‰çL‹ž¨èqîÿÿH‹=’¨èÞÿÿL‰%†¨ZYé‰d1Û‰Ǩé|dL‹=C�1É1Ò1öI‹?襎ébd€%ФþéVd€%}¤ßéJdL‹=�Hƒ=©¨M‹'u2¿(èÊÝÿÿ¹=ºH‹5ÉŒH‰ÇH‰¨èÊäÿÿ„À„¸H‹=k¨¹ºL‰æèæÿÿH…À…âc1ÿºH�5Z�èMáÿÿH‰Ç1Àè“�L‹=ŒŒH�=,CI‹7è �éªc€ Ö§ ¶ʧ¨…T ƒàü€%¸£߃ÈÆñ¨ˆ¨§Æá¨Æî¨égcÇ…ØþÿÿéXcÆÔ¨éLc1ÿºH�5,›è·àÿÿH‰Ç1ÀèýŽL‹=ö‹H�=[`I‹7èwŒécL‹=Û‹H�=5`I‹7è\ŒéùbL‹=À‹H�=?`I‹7èAŒéÞb€ §éÒbL‹=™‹ÆЦI‹?H…ÿ„¸bèÝÿÿ‰Ç…À„;èbßÿÿéŸbL‹=f‹‹Ø©H�5@I‹?�P‰Å©è؅Ǧ艆éfb€ �¦€Æ)¦éSb€ z¢ éGbL‹=‹H�5âNM‹'L‰çèŒãÿÿ…À„&bH�5�?L‰çèuãÿÿ…À„bH�5x?L‰çè^ãÿÿ…À„øaH�5l?L‰çèGãÿÿ…À„áaH�5ƒ1ÿºèLßÿÿL‰æH‰Ç1Àè��L‹=ˆŠHƒ=¦M‹'tnH‹= ¦¹ºL‰æèÂãÿÿH…À…‹a1ÿºH�5›èöÞÿÿH‰Ç1Àè<�I‹H�5º‚1ÿºèÖÞÿÿH‰ÇH‰Þ1Àè�€ t¥é?a¿(èÓÚÿÿ¹=ºH‹5Ò‰H‰ÇH‰€¥èÓáÿÿ„À…`ÿÿÿ1ÿºH�5í˜èxÞÿÿH‰Ç1À辌¶¥L‹=°‰ƒàÀM‹'<€„uH�5¸IL‰çèÃæÿÿI‰ÇH…À„|¿(èMÚÿÿH‹5V‰ºH‰ÇH‰÷¤èÒèÿÿ„À„o¿dA¾dèÚÿÿL‰ÿI‰ÄèÏéÿÿA‰ÀAƒøÿ„�H‹‰H‰…ÀþÿÿH‹�ÀþÿÿA¶ÐA¶ÀöS@„lL‰ÿè“éÿÿA‰ÀëÚL‹=÷ˆ1ÒH�µ(ÿÿÿI‹?èÚÿÿH‹•(ÿÿÿ€:u6H‰S¥é`L‹=LjH‹=ð£M‹7H…ÿu7L‰÷è€ßÿÿH‰Ù£éÖ_I‹H�5š1ÿºè>ÝÿÿH‰ÇH‰Þ1Àè�‹è\ÝÿÿL‰÷I‰ÄèQÝÿÿM�tL‰÷è4ÙÿÿL‰ò¾H� ‚>I‰ÄP1ÀAÿ7D¾ ÿ¤L‰çL‹j£è5éÿÿH‹=^£èÙØÿÿL‰%R£XZéM_€%tŸ¿éA_€ hŸ@é5_Çq£é&_L‹=í‡H�57FM‹'L‰çèkàÿÿ…À„—H�5]]L‰çèTàÿÿ…Àu_Çržéã^L‹=ª‡M‹'M…ä„ðH�5 >L‰çèàÿÿ…À„ÙH�5>L‰çèàÿÿ…À…¢Ç¤é“^1ÿºH�5s—èþÛÿÿL‰æH‰Ç1Àè�én^Çî�é_^1ÿºH�5–èÊÛÿÿH‰Ç1ÀèМéiýÿÿ¿è‘ÝÿÿL‰æH�=+=1Àè°œé^1ÿºH�5ý•èˆÛÿÿH‰Ç1ÀèΉH�5·–1ÿºèkÛÿÿL‰æH‰Ç1À讉ÇT£éÑ]Aƒøÿ…œ€=ï¡?w(L‰çè4×ÿÿ¶Þ¡L‰ÿƒà?ƒÈ€ˆÏ¡èÉÚÿÿé–]1ÿºH�5ΕèÛÿÿH‰Ç1Àèœë¹Æ0£ék]Æ$£é_]€%†¡üéS]¶{¡ƒà?ƒÈ@ˆo¡é;]¶d¡ƒàüƒÈˆX¡é#]¿è‡Æù¤é ]L‹=Ô…H�µ0ÿÿÿI‹?èåÞÿÿ…Àˆƒa‹…Hÿÿÿ%ð=@„maI‹?¾èÊRéÇ\L‹=Ž…1Ò1öI‹?è²ÖÿÿH…À¶ß •ÂÁâƒàï ЈΠé”\€%»œ߯¢Æí¡éz\H�û>H‰ú¡ég\L‹=.…1ÒH�µ(ÿÿÿI‹?èMÖÿÿ‰‹…H‹…(ÿÿÿ€8„9\I‹H�5½91ÿºè¡ÙÿÿH‰ÇH‰Þ1Àè䇀%=œ߯Š¡Æo¡éü[€ $ Àéð[€   éä[fÇW¡éÖ[1ÿè=~Ư£éÃ[L‹=Š„I‹?è"�é¯[ƒ.›é£[€ ÑŸ é—[€%¾Ÿßé‹[€ ²Ÿ é[ÆHŸés[L‹=:„I‹?è€ÇŸèséP[L‹=„I‹?èO®é<[L‹=„H�5ÑHM‹'L‰çè�Üÿÿ…ÀuP€%F›ßé[L‹=ÚƒH�5ë:M‹'L‰çèx}„ÀtIƒÄM‰'H‹½ÐþÿÿèaÔÿÿI‹?èyÚÿÿH‰…ÐþÿÿéÏZH�5Þ7L‰çèÜÿÿ…Àu € ãš é°ZH�5Ó;L‰çèÿÛÿÿ…ÀtáH�5œ{1ÿºèØÿÿL‰æH‰Ç1ÀèK†€ ¬ž éqZÆ) éeZÆ éYZÆ éMZL‹=ƒI‹H‰ÚŸé7Z€ fž@é+Z1ÛH‹½ÀþÿÿI� öG@…Aƒøÿ„ùHƒÃDˆL9óƒ˜L‰ÿèPãÿÿA‰À¶ÀëÁL‹=±‚I‹H‰ï�éÔYÆ“�éÈYL‹=�‚I‹H‰EŸé²YD‹µüþÿÿE‰õégaÆŸÆŸé�YÆŸé„Y€ ³�éxYL‹=?‚1Ò1öI‹?ècÓÿÿ‰=žéZY¶ƒ�ƒàüƒÈˆw�éBY€ n�é6Y€ ]�é*Y€%W�ýéY€ K�éYL‹=Ù�I‹H‰—˜éüX€ (�@éðX¶�ƒàüƒÈˆ�éØX¶�ƒàüƒÈˆöœéÀXH‹O�H‹8è/–1ÿèˆàÿÿL‹=q�M‹7M…öt7L‹%ú—M…䄿I‹|$L‰öèÜÙÿÿ…À„vXM‹$$ëÜ€%šœïédXÆá�éXXÆ/œéLX€ xœé@X÷ÐH�Gº¨H�>5H�5¸�HDØ1ÿè•ÕÿÿH‰ÇH‰Þ1ÀèØƒL‹=Ñ€H�=�7I‹7èR�éïWL‹=¶€H�=d7I‹7è7�éÔW¿è8z1ÿèáÝÿÿ¿è'zL‹=€€Æ’ŸÆJ›ÇØ€þÿÿÿI‹?H…ÿ„ŽW1ÒH�µ(ÿÿÿè~ÑÿÿH‹•(ÿÿÿ€:u@ƒèŸà–éeWL‹=,€L‹%›I‹?è­|L‰%öšÇèšèW{é4WI‹H�5¸41ÿºèœÔÿÿH‰ÇH‰Þ1Àè߂ƺL‰æH‹=]›¹D‰…ÀþÿÿèÙÿÿD‹…ÀþÿÿH…À…pöÿÿ1ÿºH�5æŽèIÔÿÿH‰Ç1Àè�‚Æ�šéµVƃšé©V€ Óšé�VL‹=dH�5Ù4M‹'L‰çèâ×ÿÿ…Àu1·©šf%?üf @f‰ššéeVL‹=,I‹H‰ršéOVH�5�4L‰çèž×ÿÿ…Àu·ešf%?üf €f‰Všé!VH�5z4L‰çèp×ÿÿ…Àu·7šf%?üf @f‰(šéóUH�5c4L‰çèB×ÿÿ…Àu· šf%?üf €f‰ú™éÅUH�5$�1ÿºè0ÓÿÿL‰æH‰Ç1Àès�¿èNL‰÷I‰ÄèN{ó~î”L‰%ç”fHnøflÇA$énU€%–™ûébUMöL‰çL‰öèÒÓÿÿI‰ÄéRûÿÿ€ t™é@UÆ«šé4UÆ šé(UL‹=ï}L‹%ȘI‹?èpzH�…ÿÿÿL‰%²˜H‰k”Ç�˜è yééTL‹=°}I‹?èxÔÿÿ1ÿ1É1ÒH‰ÆèJH�½ÿÿÿH‰Æèk‘é¸TL�%S41É1ÿL‰âH�5I4è1ÉL‰âH�5K4H‰ÇèH�=¹™H‰Æè)‘ƒ½øþÿÿ…»æÿÿÇ…øþÿÿé_TL�%ú31É1ÿL‰âH�54èÃ~1ÉL‰âH�54H‰Çè¯~H�=`™H‰ÆèÐ�ƒ½øþÿÿt«Ç…øþÿÿé T1ÿºH�5Š�èuÑÿÿH‰Ç1Àè»Æ´—éáSH‹5™H‹9H…öu H‰ ™ƒ½øþÿÿ…�h€ æ—éuhH‰ùI‰ÈH‹ H…ÉuõH‹I‰H‰>ëζÁ—ƒà?ƒÈ@ˆµ—¶¯—¨…ÒUƒÈˆž—éÄU1ÿºH�5�èÔÐÿÿH‰Ç1Àè1ÿºH�5i2è·ÐÿÿH‰Ç1Àèý~H�5¾Š1ÿºèšÐÿÿH�5öAH‰Ç1ÀèÙ~L‹=Ò{H�5ù2M‹'L‰çèPÔÿÿ…À…£Æ¤˜éÞRI;GuJº1ÿH�5W1èCÐÿÿL‰æH‰Ç1ÀèF‘L‰÷è.Ìÿÿé«R1ÿºH�5­1èÐÿÿH‰Ç1Àè\~M‹?éhUL‹=M{I‹?èÒÿÿH‰F–ékRH�5ú‰1ÿºèÖÏÿÿH�5f/H‰Ç1Àè~H�5O2L‰çè–Óÿÿ…Àu Æî—é(RH�5�1ÿºè“ÏÿÿL‰æH‰Ç1ÀèÖ}ÆЕéüQÇÔ•éíQÇÅ•éÞQè'ÌÿÿºH�5[n1ÿH‰ÃèAÏÿÿH‰ÚL‰æH‰Ç1Àè�}¿ E1ÿèDÌÿÿé]Z€%È•÷é•QAƒ~8„(Y„À…’H�ö[H�5®1¿1ÀèfÖÿÿ¸M‹f(AǸM…ä„ìXAƒ~t¿ AƒÇè×ËÿÿºL‰æ1ÿè¨ÎÿÿH�5nQ¿H‰Â1ÀèÖÿÿºL‰æ1ÿèƒÎÿÿH‰Çè«ÎÿÿAǸéŽXH�RH�51¿1ÀèÔÕÿÿ¸éiÿÿÿ1ÿºH�5†è7Îÿÿ¾L‰çH‰Â1Àè¥ØÿÿéZd1ÿºH�5‚†è ÎÿÿL‰ç¾H‰Â1Àè{Øÿÿ1ÿºH�5µ†èèÍÿÿ¾L‰çH‰Â1ÀèVØÿÿébdóúUH‰åAWI‰÷AVLc÷AUM�nATL‰îI‰ÌSHcÚPI‹?è¤ÎÿÿM9îL‰éºICÎI‰J�<0H�5+áHƒÃL)ñHÁãè§ÑÿÿI‹<$H‰ÞèkÎÿÿH�“ þÿÿH�5MH9ÓI‰$H�<AXHBÚH‰Ù[A\H)ÑA]ºàA^A_]ébÑÿÿH‹=ëŽ1Ûè$ÉÿÿH‹mxH‰ÖŽH‹8H…ÿ„nh€?„ehèÏÿÿH‰µŽéThH‹9xH�=’ŽH‹0èz�é9h€=“…e€ Q�€éüdH‹xH‹;èíÒÿÿH‹‰è”ƒø…ÿgH�5Œ1ÿºèˆÌÿÿH‰ÞH‰Ç1ÀèËz€%)“÷éÓgH�54/L‰çè@Ðÿÿ…ÀuƒË`ˆ“é²gƒË ˆù’é¤gH�5 /1ÿºè-ÌÿÿL‰æH‰Ç1Àèpz€ Î’éxgH‹]wH�=¾�H‹0螎é]g·¤’Hƒ j“f%?üf €f‰�’é:gH�5•7H‰}Èè¦ÏÿÿH‹}È…À…ÖgégH‹þvH‹8è¦rég€%N’ùéùf€%C’ïéíf€ 7’éáfÇÛ’éÒf€%’ýéÆf€ ’éºfHƒ%Ö’þé­fH� ¾’é�fHƒ ±’@é�fHƒ ¤’éƒfH� ”’ésfHƒ ‡’éffH� w’éVfHƒ j’ éIfHƒ ]’éÎÿÿ…ÀuÇä‘é¯eH�5tŠH‰ßèÎÿÿ…ÀuÇ‘é�eH�5rŠ1ÿºèÊÿÿH‰ÞH‰Ç1ÀèYxÇ�‘é^eH� o‘éNe€%›�éBe€ ��€é6e¶��ƒàçƒÈˆu�ée¶i�ƒàçƒÈˆ]�ée1ÒH�uÐH�{ èÆÿÿH‹UÐH‰H�€:uH…ÀxuHƒÈÿH‰1�éÐdI‹$H�5‹,1ÿºèUÉÿÿHƒÃ H‰Ç1ÀH‰Þè”w1ÒH�uÐH�{èµÅÿÿH‹UÐH‰Ê�€:umH�PÿH…Âud€ Î�étd1ÒH�uÐH�{è�ÅÿÿH‹UÐH‰Ž�€:uyH�PÿH…Âup€ š�é@d¶‡�ƒà?ƒÈ@ˆ{�é(d€ r�@édI‹$H�5•ˆ1ÿºè¡ÈÿÿHƒÃH‰Ç1ÀH‰Þèàv¶;�ƒà?ƒÈ€ˆ/�éÜcI‹$H�5-ˆ1ÿºèaÈÿÿHƒÃH‰Ç1ÀH‰Þè vHƒ Ð�é§cóo³�fëÃܤ�é‹cóo—�fۗ܈�éoc1ÿºH�5»-èøÇÿÿH‰ÞH‰Ç1ÀèûˆéJcHƒÃ H�5¡3H‰ßè³Ëÿÿ…À…Þ1ÀH‰^Šé!cHƒÃH�5x3H‰ßèŠËÿÿ…Àu 1Ò‰>ŠéýbH�5FH‰ßèjËÿÿ…ÀuÇŠéÛbH�5îEH‰ßèHËÿÿ…ÀuÇú‰é¹bH�5þˆ1ÿºèBÇÿÿH‰ÞH‰Ç1Àè…uI‹$H�5‚ˆ1ÿºèÇÿÿH‰ÇH‰Þ1ÀèauHƒÃH�5Ì2H‰ßèÞÊÿÿ…Àuy1ɉ މéQbH�5XEH‰ßè¾Êÿÿ…ÀuH‹ÛH‰h‰é+bH�5>EH‰ßè˜Êÿÿ…ÀuH‹ýÚH‰B‰ébH�5zˆ1ÿºèŽÆÿÿH‰ÞH‰Ç1ÀèÑtH�5ìDH‰ßèRÊÿÿ…ÀuljéÃaH�5ÖDH‰ßè0Êÿÿ…ÀuÇÞˆé¡aH�5¶‡1ÿºè*ÆÿÿH‰ÞH‰Ç1ÀèmtH�5>‡1ÿºè ÆÿÿH‰ÞH‰Ç1ÀèMt1ÿ‰=I�éTaÇ:�éEaE1ÀD‰;�é6aI‹$H�5Ÿ†1ÿºè»ÅÿÿHƒÃH‰Ç1ÀH‰ÞèúsH�5«†1ÿºè—ÅÿÿH‰ÞH‰Ç1ÀèÚsÇäŒéß`E1ÉD‰ ÁŒéÐ`€%ŒçéÄ`¶ ŒƒàçƒÈˆŒé¬`¶ó‹ƒàóƒÈˆç‹é”`¶Û‹ƒàóƒÈˆÏ‹é|`€%Å‹þép`€ ¹‹éd`€%®‹ïéêb€  ‹@éÞb€=‹…ª_€ D‡€éž_Ç-Œé¶b€%n‹÷éªbºH�50„1ÿè¡ÄÿÿH‰ÞH‰Ç1Àèär€ þ†éW_€ 6‹érbHƒ%ü‹þéeb€%‹ýéYbH�5"0H‰ßè4Èÿÿ…À„BbH‰ßèdÆÿÿH‰†é.b€?„%bèJÆÿÿH‰ã…ébH�5è&1ÿºè ÄÿÿL‰æH‰Ç1ÀèNrH�¹&H‰릃Ë@ˆ�ŠéÚaHƒ d‹éÍaóoG‹fëWØ8‹é±aóo+‹fÛ+Ø‹é•aóo‹fëÿ׋éyaH� øŠéiaHƒ ëŠ@é\aHƒ ÞŠéOaH� Ίé?aHƒ ÁŠé2aH� ±Šé"aHƒ ¤Š éaHƒ —ŠéaÆ‹éü`Æ ‹éð`H�5‰&H‰ßèËÆÿÿ…Àu1ÿ‰=sŠéÐ`E1ÀD‰`ŠéÁ`H�5Ô‚H‰ßèœÆÿÿ…ÀuÇBŠéŸ`H�5V&H‰ßèzÆÿÿ…ÀuÇ Šé}`H�5°‚H‰ßèXÆÿÿ…ÀuÇþ‰é[`ºH�5©‚é¬ýÿÿÇÚ‰é;`H� º‰é+`€%æˆé`€ Úˆ€é`¶̈ƒàçƒÈˆÀˆéû_¶´ˆƒàçƒÈˆ¨ˆéã_1ÒH�uÐH�{ è^¾ÿÿH‹UÐH‰“ˆ€:uKH…ÀxFuHƒÈÿH‰|ˆé­_1ÒH�uÐH�{è(¾ÿÿH‹UÐH‰=‰€:u.H�PÿH…Âu%€ Aˆéy_I‹$ºH�5�$HƒÃ éÂüÿÿI‹$ºH�5B�HƒÃé©üÿÿ¶ü‡ƒà?ƒÈ€ˆð‡é/_¶ä‡ƒà?ƒÈ@ˆ؇é_€ χ@é _1ÒH�uÐH�{膽ÿÿH‹UÐH‰“ˆ€:…‰H�PÿH…Â…|€ —‡éÏ^H�54%H‰ßèªÄÿÿ…À„ŒH�5%H‰ßè“Äÿÿ…À„iH�5/H‰ßè|Äÿÿ…À„:H�5ý$H‰ßèeÄÿÿ…À„ H�5x H‰ßèNÄÿÿ…À„¶H�5Ø$H‰ßè7Äÿÿ…À„“H�5È$H‰ßè Äÿÿ…À„|H�5¹$H‰ßè Äÿÿ…À„‰H�5¼$H‰ßèòÃÿÿ…À„‰H�5£$H‰ßèÛÃÿÿ…À„ñH�5§$H‰ßèÄÃÿÿ…À„ËH�5Ž$H‰ßè­Ãÿÿ…À„§H�5�$H‰ßè–Ãÿÿ…À„„º H�5…$H‰ßè*½ÿÿ…À„yH�5Ÿ$H‰ßècÃÿÿ…À„VH�5�$H‰ßèLÃÿÿ…À„oH�5|$H‰ßè5Ãÿÿ…À„º H�5f$H‰ßèɼÿÿ…À„¨H�5[$H‰ßèÃÿÿ…À„…H�5Z$H‰ßèëÂÿÿ…À„JºH�5N$H‰ßè¼ÿÿ…À„H�5~$H‰ßè¸Âÿÿ…À„ÝH�5e$H‰ßè¡Âÿÿ…À„ºH�5[$H‰ßèŠÂÿÿ…À„—H�5B$H‰ßèsÂÿÿ…Àu_€%;…éy\H‹UØdH+%(u$HƒÄ[A\A]]ÃI‹$ºH�5~HƒÃé¨ùÿÿ苾ÿÿH‹”iH�=ÝH‹0èÕ€é&\1ÿºH�5à#è¾ÿÿH‰ÞH‰Ç1Àè é\€ ·„€éõ[€%i€ûéé[€ ]€éÝ[º H�uÐH�{èUºÿÿH‹UЀ:u"�Pþƒúw‰2€é¯[Ç#€é [I‹$ºH�5ò~éíøÿÿ€ ÿé[HƒÃ H�5D)H‰ßèVÁÿÿ…À„¥H�5Ù;H‰ßè?Áÿÿ…À„H�5Î;H‰ßè(Áÿÿ…À…WÇ®é'[€ šé[€ Žé[L�k H�5û!L‰ïèæÀÿÿ…À„ÚH�5ð!L‰ïèÏÀÿÿ…À„°ºH�5ß!L‰ïècºÿÿ…À„jºH�5Ë!L‰ïèGºÿÿ…À…=1ÒH�uÐH�{è ¹ÿÿˆH‹EЀ8…€ ö~@éwZÇÛƒéhZ¶ƒƒàóƒÈˆƒéPZ¶ƒƒàóƒÈˆù‚é8Z€%ï‚þé,Z€ ã‚é Z€ “~ éZ1Ò‰jƒéZÇ[ƒéøY1ɉ ^ƒéëY€ ^~éßYºH�5}é0÷ÿÿÇF~ é¿Y1À‰9~é²Y€%i‚çé¦Y¶]‚ƒàçƒÈˆQ‚éŽY1ö‰5à‚é�YI‹$ºH�5S|HƒÃéÊöÿÿºH�5n|é¹öÿÿ1ÒH�uÐH�{èÒ·ÿÿˆÐ}H‹EЀ8u2€%¬}¿é-Y€  }@Æ­}�éY€%�}¿Æš}géYI‹$ºH�5©{HƒÃéPöÿÿ€ ¤�@é:^€%š�ýé.^€ Ž�é"^Hƒ%T‚þé^Hƒ G‚é^óo*‚fë:Ï‚éì]óo‚fÛÏÿ�éÐ]Çà�éÁ]€?„¸]è…¼ÿÿH‰|é§]H�5Ž L‰çè*¾ÿÿ…ÀuƒË@ˆñ€é†]H�5ýL‰çè ¾ÿÿ…ÀuƒË`ˆЀée]H�5á1ÿºèºÿÿL‰æH‰Ç1ÀèGhH�5¶%H‰ßèȽÿÿ…À„.]H‰ßèø»ÿÿH‰™{é]H�‡H‰ëà€%n€÷é]ºH�50yéÒóo�fëÎ�éÕ\€ 8€€éÉ\¶*€ƒàçƒÈˆ€é±\¶€ƒàçƒÈˆ€é™\1ÒH�uÐH�{ è¼µÿÿH‹UÐH‰ñ€:…ÙH…ÀˆÐuHƒÈÿH‰Òé[\1ÒH�uÐH�{è~µÿÿH‹UÐH‰“€€:uIH�PÿH…Âu@€ —é'\1ÒH�uÐH�{èJµÿÿH‹UÐH‰W€€:u.H�PÿH…Âu%€ céó[I‹$ºH�5}xHƒÃé»I‹$ºH�5{é3WI‹$ºH�5}tHƒÃ1ÿèʳÿÿH‰ÞH‰Ç1Àè bºH�5½L‰ïè9±ÿÿ…À……1ÒH�uÐH�{è°ÿÿˆðuH‹EЀ8uN€ Ìu@éÅV€ Àu@ÆÍu�é²V€%­u¿ÆºugéŸVÇ›zé�V1ɉ žzéƒVI‹$ºH�5ýsHƒÃéKÿÿÿºH�5té:ÿÿÿÇezéJV1ö‰5Dzé=V€%œyçé1V¶�yƒàçƒÈˆ„yéV¶vyƒàóƒÈˆjyéV¶^yƒàóƒÈˆRyééU€%HyþéÝU€ ÿà�ÿ-„ù �ÿ.…ù € :wëQH‹=Dr1Ûèu¬ÿÿH‹¾[H‰/rHƒ8u H� H‰H‹H�5H‰ßè%´ÿÿ…ÀtH‰ßèY²ÿÿH‰úq°éš H‹=äqè¬ÿÿH‹h[E1ÛL‰ÎqH‹8H…ÿtÔ€?tÏè²ÿÿH‰µqëÁH‹<[H‹;è$¶ÿÿH‹ºH�5]o‰xƒøu˜éöH‹[H�=?qH‹0èOréxÿÿÿ€%Xv÷élÿÿÿ€ Lvé`ÿÿÿŠ@vƒàùƒÈˆ4véIÿÿÿ€%(vùé=ÿÿÿf‹vHƒ àvf%?üf €f‰véÿÿÿH‹•ZH‹8è=VéÿÿÿH‹�ZŠßuH�5ëL‹ ƒãŸˆÌuL‰çèð²ÿÿ…ÀuƒË ˆ·uéÌþÿÿH�53L‰çèϲÿÿ…ÀuƒË@ˆ–ué«þÿÿH�5¢L‰ç讲ÿÿ…ÀuƒË`ˆuuéŠþÿÿH�5†1ÿºè©®ÿÿL‰æH‰Ç1Àèì\L‹%åYH�5óI‹$H‰ßèb²ÿÿ…ÀuŠ*uƒà?ƒÈ€ˆué5þÿÿH�5NH‰ßè8²ÿÿ…ÀuŠuƒà?ƒÈ@ˆôté þÿÿH�5+H‰ßè²ÿÿ…Àu € Øt@éìýÿÿH�5H‰ßèS„Àt\1ÒH�uÐH�{è|ªÿÿH‹UÐH‰‰u€:u H�PÿH…Ât(I‹$ºH�5“mHƒÃ1ÿèÈ­ÿÿH‰ÞH‰Ç1Àè \€ mté}ýÿÿH�5´H‰ßè R„ÀtJ1ÒH�uÐH�{è ªÿÿH‹UÐH‰"u€:u H�PÿH…ÂtI‹$ºH�5LmHƒÃë�€ té ýÿÿH�5iH‰ßèCR„ÀtO1ÒH�uÐH�{ è°©ÿÿH‹UÐH‰ås€:uH…ÀyI‹$ºH�55HƒÃ é3ÿÿÿuHƒÈÿH‰µsé¾üÿÿH�5á!H‰ßèÁ°ÿÿ…ÀuŠ�sƒàçƒÈˆ�sé”üÿÿH�5H‰ßè—°ÿÿ…ÀuŠcsƒàçƒÈˆWséjüÿÿH�5êH‰ßèm°ÿÿ…Àu € :s€éKüÿÿH�5ÉH‰ßèN°ÿÿ…Àu €%sé,üÿÿH�5ºH‰ßè/°ÿÿ…ÀuH� Àsé üÿÿH�5¥H‰ßè,Q„ÀtÇ®séçûÿÿH�5�H‰ßè Q„ÀtE1ÒD‰ŒséÅûÿÿH�5oH‰ßèèP„À„™H�5oH‰ß豯ÿÿ…ÀuE1ÉD‰ WséŒûÿÿH�5ÇkH‰ßè�¯ÿÿ…ÀuÇ5séjûÿÿH�5IH‰ßèm¯ÿÿ…ÀuÇséHûÿÿH�5£kH‰ßèK¯ÿÿ…ÀuÇñré&ûÿÿºH�5œkéxýÿÿH�5H‰ßè¯ÿÿ…Àu Æ7séöúÿÿH�5òH‰ßèù®ÿÿ…Àu Æsé×úÿÿH�5ãH‰ßèÚ®ÿÿ…Àu Hƒ nré·úÿÿH�5ÊH‰ß躮ÿÿ…Àu Hƒ Nr é—úÿÿH�5´H‰ßèš®ÿÿ…ÀuH� +rétúÿÿH�5›H‰ßèw®ÿÿ…Àu Hƒ réTúÿÿH�5„H‰ßèW®ÿÿ…ÀuH� èqé1úÿÿH�5nH‰ßè4®ÿÿ…Àu Hƒ ÈqéúÿÿH�5WH‰ßè®ÿÿ…Àu Hƒ ¨q@éñùÿÿH�5@H‰ßèô­ÿÿ…ÀuH� …qéÎùÿÿH�5-.H‰ßèÑ­ÿÿ…Àu^qVO¾Pqé¡ùÿÿH�5÷ H‰ß褭ÿÿ…Àu1qT2¾#qétùÿÿH�5Ï H‰ßèw­ÿÿ…ÀuqV¾öpéGùÿÿH�5« H‰ßèJ­ÿÿ…Àu Hƒ æpé'ùÿÿH�5‰ H‰ßè*­ÿÿ…Àu Hƒ%ÆpþéùÿÿH�5t H‰ßè ­ÿÿ…Àu € ÔoéèøÿÿH�5S H‰ßèë¬ÿÿ…Àu €%µoýéÉøÿÿH�5@ H‰ßè̬ÿÿ…ÀuÇFpé§øÿÿH�5, H‰ß説ÿÿ…Àu € ro@éˆøÿÿH�5 H‰ß苬ÿÿ…Àu €%So¿éiøÿÿH�5ö H‰ßèl¬ÿÿ…Àu € 5oéJøÿÿH�5Õ H‰ßèM¬ÿÿ…Àu €%oþé+øÿÿH�5ÊH‰ßè.¬ÿÿ…ÀuŠönƒàóƒÈˆênéøÿÿH�5œ H‰ßè¬ÿÿ…ÀuŠÌnƒàóƒÈˆÀné×÷ÿÿH�5H‰ßèÚ«ÿÿ…ÀuФnƒàçƒÈˆ˜né­÷ÿÿH�5Q H‰ßè°«ÿÿ…Àu €%ynçéŽ÷ÿÿH�59 H‰ßè‘«ÿÿ…ÀtáH�5. H‰ßè~«ÿÿ…ÀuE1ÀD‰ànéY÷ÿÿH�5& H‰ßè\«ÿÿ…ÀuÇÒné7÷ÿÿH�5 H‰ßè:«ÿÿ…Àu 1ÿ‰=²né÷ÿÿH�5ý H‰ßè«ÿÿ…ÀuÇ€néõöÿÿH�5Ù H‰ßèøªÿÿ…Àu 1ö‰5`néÕöÿÿº H�5Þ H‰ß胤ÿÿ…À…'L�c H�5Í L‰ç踪ÿÿ…Àu€%ýh¿Æ igé�öÿÿH�5³ L‰çè’ªÿÿ…Àu€ ×h@Æäh�éiöÿÿºL�uÐL�kL‰çH�5ˆ è¤ÿÿ…ÀuG1ÒL‰öL‰ïèî¢ÿÿˆ¬hH‹EЀ8tH‹¨QºH�5ôfH‹HƒÃéqøÿÿ€%ih¿éöÿÿºH�54 L‰çè°£ÿÿ…ÀuG1ÒL‰öL‰ïè�¢ÿÿˆMhH‹EЀ8tH‹IQºH�5ÅfH‹HƒÃéøÿÿ€ h@é£õÿÿºH�5Ñféõ÷ÿÿ1ÿºH�5t è±¥ÿÿH‰ÞH‰Ç1Àè´fémõÿÿ€%Mlïéaõÿÿ1ÀH‹UØdH+%(tè½¥ÿÿZY[A\A]A^]À=Óf…JJé7J1ÿºH�5W èM¥ÿÿH‰Ç1Àè“SL‹k1ÿºH�5ahè,¥ÿÿD‰âH‰ÇL‰î1Àè!‚é+HH‹=hmI�t$1Ò1ÀèR¦ÿÿH‰Cé®H[H‰ÇA\]éíz€ †hL‰èé&IH�s L‰ï貨ÿÿ…À…ƒMH�5#h1ÿºè·¤ÿÿL‰îH‰Ç1ÀèúR1ÿºH�5L‰•ÐÑÿÿ»øè¶hL‹•ÐÑÿÿH‰…ðÑÿÿéû?I‹r�I‹¿L‰•ÐÑÿÿ»õè†hL‹•ÐÑÿÿH‰…ðÑÿÿéË?I‹r�I‹¿L‰•ÐÑÿÿ»óèVhL‹•ÐÑÿÿH‰…ðÑÿÿé›?I‹r�I‹¿L‰•ÐÑÿÿ»òè&hL‹•ÐÑÿÿH‰…ðÑÿÿék?I‹r�I‹¿L‰•ÐÑÿÿ»ñèögL‹•ÐÑÿÿH‰…ðÑÿÿé;?¶ìXA¶R�»iÁâƒà ЈÔXé?¶ÈXA¶R�»gÁâƒà Ј°Xéó>I‹RÈI‹²Xÿÿÿ¿KL‰•ÐÑÿÿ»èzgL‹•ÐÑÿÿH‰…ðÑÿÿé¿>I‹:1ö»cL‰•ÐÑÿÿè1L‹•ÐÑÿÿé�>I‹BÈ€8„ÁHƒÀëñ€ C\»Oéy>ÆÜ[»Néh>ƹ[»MéW>I‹rÈ¿f»L‰•ÐÑÿÿèÅeL‹•ÐÑÿÿH‰…ðÑÿÿé*>I‹2¿J»L‰•ÐÑÿÿèybL‹•ÐÑÿÿH‰…ðÑÿÿéþ=I‹rÈI‹ºèþÿÿ»rL‰•ÐÑÿÿèzaL‹•ÐÑÿÿH‰…ðÑÿÿéÏ=»SéÅ=I‹rÈ1ÿ»qL‰•ÐÑÿÿèFaL‹•ÐÑÿÿH‰…ðÑÿÿé›=I‹R�H‰ÐH‰ÁH‹H…ÀuõI‹‚@þÿÿ»xH‰I‹‚XÿÿÿH‰•ðÑÿÿH‰µ`é`=H‹©`»wH‰…ðÑÿÿI‹BÈH‰’`é==I‹z�I‹2¹L‰•ÐÑÿÿH‹s`»vè!AL‹•ÐÑÿÿH‰…ðÑÿÿé=I‹z�I‹21ÉL‰•ÐÑÿÿH‹?`»uèí@L‹•ÐÑÿÿH‰…ðÑÿÿéÒ<I‹zÈ1ö»pL‰•ÐÑÿÿèS`L‹•ÐÑÿÿH‰…ðÑÿÿé¨<I‹zÈ1ö»oL‰•ÐÑÿÿè)`L‹•ÐÑÿÿH‰…ðÑÿÿé~<1ö1ÿL‰•ÐÑÿÿ»nè`L‹•ÐÑÿÿH‰…ðÑÿÿéV<I‹:L‰•ÐÑÿÿ»Tè*;L‹•ÐÑÿÿé6<M‹bÈI‹šXÿÿÿL�° L‰• ÑÿÿL‰ÆL‰çH‰�ÐÑÿÿèó–ÿÿ…À„ñL�ˆ H‰ßL‰ÆèÙ–ÿÿL‹• Ñÿÿ…À„Ð1ÛL‹=�XL‰µ°ÑÿÿM‰æI‰ÜM…ÿt`L‰• ÑÿÿL‰ûL‡ãI‹<$H…ÛuL‰öH‰½�Ñÿÿ芖ÿÿH‹½�Ñÿÿ…ÀIDßH‹µÐÑÿÿèq–ÿÿ…À„ÝM‹d$M…äu½L‹• ÑÿÿM‹I‰Üë›L‰ãM‰ôL‹µ°ÑÿÿH…Ûtb¿L‰•°ÑÿÿèL H‹½ÐÑÿÿI‰Äè}:L‹•°ÑÿÿfHnÀCA$L‰c»\é;H�5û‡1ÿºè’ÿÿ1öH‰Ç1ÀèK@ºH�5Gˆ1ÿèè‘ÿÿH‹�ÐÑÿÿL‰â1öH‰Ç1Àè"@HÇ…ðÑÿÿ»Géµ:I‹:¾»aL‰•ÐÑÿÿè$ L‹•ÐÑÿÿé�:I‹zÈL‰•ÐÑÿÿ»Vè3\L‹•ÐÑÿÿéo:L‹µÐÑÿÿL¾­°ÑÿÿM‰ú»]éS:1ÿºH�5 èH‘ÿÿL‰æH‰Ç1ÀèKRéÑLIƒÄébLL‹µÐÑÿÿL¾­°ÑÿÿM‰ú»]é :¿L‰•ÐÑÿÿ»Kèû L‹•ÐÑÿÿH‰…ðÑÿÿóA~ óA~B�Æ@flÁéÊ9I‹»HH‰…ðÑÿÿé¶9H‹oDL‰•ÐÑÿÿE1À1ÉH�PH‰XD‹Ö\ÇÌ\ ‰I‹RºjH‰ßjjL‹ e\H‹5f\è9cHƒÄ L‹•ÐÑÿÿHƒ=6\t¿L‰•ÐÑÿÿècŒÿÿH‰Þ¿Gó~\H‰ \-[è}]H‹5þ[L‹•ÐÑÿÿH‰ÂH…öt)¿KL‰•ÐÑÿÿè–aL‹•ÐÑÿÿH‰Ð[»MéÖ8H‰¿[ëíH‰Þ¿Iè(]L‹•ÐÑÿÿH‰²[éaÿÿÿI‹zÈL‰•ÐÑÿÿ»WèPZH‹¹UL‹•ÐÑÿÿÆ@é�8¸éC7lj\L‰óL�-{L�5ô L�%-ýIc×H�2¿P=ýÿÿtƒÀ=¿wH˜fAƒ5‹TY¾þÿÿÿƒøþt=‰w*HcÐH� 5-¶4ƒ½ÌÑÿÿuH�=¾ƒJXèÕ]¾ë݃½ÌÑÿÿ…|üÿÿ…À�k…nüÿÿL‹…èÑÿÿM‰ó1À¾=‰w H�Ô,¶4H�=¥L‰…àÑÿÿL‰�èÑÿÿèFVL‹�èÑÿÿL‹…àÑÿÿé(AI‹BÈ»:ÇÐWH‰ÑWél4I‹»<DzWH‰³WéN4ÇœW»;é:41É»FH‰�ðÑÿÿé'4I‹‚Xÿÿÿ»BH‰…ðÑÿÿé4Ç]W»5éû3I‹:L‰•ÐÑÿÿ»3èÏ2L‹•ÐÑÿÿéÛ3I‹z�H‹ W1ÉH�5oL‰•ÐÑÿÿ»~è¾7L‹•ÐÑÿÿH‰…ðÑÿÿé£3I‹BÈ»DH‰…ðÑÿÿéŽ3I‹‚xþÿÿ»CH‰…ðÑÿÿév3H�=1L‰•ÐÑÿÿè UL‹•ÐÑÿÿÇnWþÿÿÿéàúÿÿH‹–V1É1ÿ»}H�5ÞL‰•ÐÑÿÿè27L‹•ÐÑÿÿH‰…ðÑÿÿé3H�½ðÑÿÿI�rȹ»{󥯅$ÒÿÿÇ… Òÿÿéê2H�½ðÑÿÿI�rȹ»zó¥Ç… ÒÿÿéÄ2H�½ðÑÿÿI�rȹ»x󥯅$ÒÿÿÇ… Òÿÿé—2L‰•ÐÑÿÿ»sèÎVL‹•ÐÑÿÿI‹ºXÿÿÿI‹rÈèg\H‰ÇèÏWL‹•ÐÑÿÿé[2I‹BÈ»H‰…ðÑÿÿéF2I‹BÈ»H‰…ðÑÿÿé12H‹:MI‹:»ÛL‰•ÐÑÿÿÿPL‹•ÐÑÿÿé 2H‹UU»yH‰…ðÑÿÿI‹BÈH‰>Uéé1€ ŠLé}6H‹…èÑÿÿH‹•àÑÿÿI)ÆM‰õIÑýIƒÅH�ú'�éHÒ¸'H9ÂH‰ÆHNòHkþ:H‰µàÑÿÿHƒÇ7è7ŽÿÿI‰ÄH…À„·H‹µèÑÿÿI�VH‰ÇH‰Ãè�ÿÿH‹µàÑÿÿIký8H� 6¾8H�A7H‰½ÐÑÿÿH™H‰�°ÑÿÿH÷þH‹µÀÑÿÿH‰úHkÀ8M�,L‰ïèÐŒÿÿH‹…èÑÿÿH‹µ˜ÑÿÿH9ðtH‰Çè„ÿÿH‹…ÐÑÿÿMæM�TÈH‹…°ÑÿÿI�DþI9ƃÇAƒÿ„ÈL‰­ÀÑÿÿL‰¥èÑÿÿé./H�=¨è˜YL‰ÇèÀƒÿÿé—=H‹üS1É1ÿ»{H�5…ëL‰•ÐÑÿÿè˜4L‹•ÐÑÿÿH‰…ðÑÿÿé}0I‹B�»zH‰…ðÑÿÿI‹‚XÿÿÿH‰¯SéZ0I‹z�H‹ŸS1ÉH�5/ëL‰•ÐÑÿÿ»|è=4L‹•ÐÑÿÿH‰…ðÑÿÿé"0M‰óI‰Øé¤<M‰óI‰Øé™<I‹:L‰•ÐÑÿÿ»Ùè²áL‹•ÐÑÿÿéì/I‹:L‰•ÐÑÿÿ»Øè’áL‹•ÐÑÿÿéÌ/1ÿL‰•ÐÑÿÿ»×èsáL‹•ÐÑÿÿé­/H‹~IóA~BÈHƒxflÀ…À€Ha»Õ@é/I‹2H‹=ÝRºL‰•ÐÑÿÿ»ÔèWQL‹•ÐÑÿÿéS/I‹2H‹=±R1ÒL‰•ÐÑÿÿ»Óè.QL‹•ÐÑÿÿé*/�=L‹•ÐÑÿÿé^ÿÿÿH�5'H‰ßL‰•ÐÑÿÿèÝ€ÿÿL‹•ÐÑÿÿ…ÀuªM‹bÈM…ät¡L‰¥Òÿÿé(ÿÿÿIƒzÈ…DÿÿÿÆ…ðÑÿÿéÿÿÿH�5õH‰ßL‰­°ÑÿÿL¾­ÐÑÿÿ舀ÿÿL‹•°Ñÿÿ…ÀL‰•ÐÑÿÿtyH�5èôH‰ßèg€ÿÿL‹•ÐÑÿÿ…Àt|H�5ÛôH‰ßL‰•ÐÑÿÿèF€ÿÿL‹•ÐÑÿÿ…ÀtxH�5ÇôH‰ßL‰•ÐÑÿÿè%€ÿÿL‹•ÐÑÿÿ…Àut¿Såtdèp!L‹•ÐÑÿÿH‰…ðÑÿÿé`<¿PåtdèS!L‹•ÐÑÿÿH‰…ðÑÿÿéC<¿Qåtdè6!L‹•ÐÑÿÿH‰…ðÑÿÿé&<¿Råtdè!L‹•ÐÑÿÿH‰…ðÑÿÿé <ºH�5s1ÿL‰•ÐÑÿÿè¬{ÿÿH‰Ú1öH‰Ç1Àè­<1ÿèÖ L‹•ÐÑÿÿH‰…ðÑÿÿéÆ;»Wéq$»Wég$óAoB˜A¶B�¿0L‰•�ÑÿÿI‹²XÿÿÿI‹’èþÿÿE·b�A¶Z‘)…€ÑÿÿH‰µ°ÑÿÿH‰• Ñÿÿˆ…ÐÑÿÿè öH‹• Ñÿÿ1öH‹½°ÑÿÿI‰Ç1ÀH� 9óI‰W1ÒI‰èJfo…€ÑÿÿfE‰gH‰ÂI‰G1ÀL‹•�ÑÿÿHƒêAG u �ÐÑÿÿ¶ÃƒàH�»EM‰ÔH‹H…ÒuL‰;M‰â»Vé˜#„Àu1ÀH‰ÓëÝHƒzuô¶B„Àuì¶B„ÀuäºH�5zq1ÿèkzÿÿ1öH‰Ç1Àèo;H‹ë¾Ç…ðÑÿÿ†»é>#H‹÷-»eH�PH‰ç-‹eFÇ[F ‰é#L‰•ÐÑÿÿè|D‹GL‹•ÐÑÿÿƒû+ºH�5ò1ÿèçyÿÿH�PFL‹•ÐÑÿÿH‰ÁHcÃH‰ Â�C»c‰ÑFé´"I‹rÈH‹=¡;»bL‰•ÐÑÿÿèÐ8L‹•ÐÑÿÿéŒ"Ç…ðÑÿÿ„»$éx"I‹BÈ» H‰…ðÑÿÿéc"HcxFI‰Øƒøþ„$/M‰ÃéyíÿÿE¿|EE…ÿŽêÿÿIƒÂ8¹I‰ÞÇ…ÌÑÿÿH�5TDL‰×ó¥ée!Ic»­H‰…ðÑÿÿéþ!H�½0ÒÿÿL‰•ÐÑÿÿD‰�`ÒÿÿH‰…@Òÿÿ)…0Òÿÿèß_L‹•ÐÑÿÿéëI‹rȶP>1ÿL‰•ÐÑÿÿ»‘èµ_L‹•ÐÑÿÿéÁI‹‚ ÿÿÿI‹rÈI�ºXÿÿÿL‰•ÐÑÿÿ¶>»”I‰‚hÿÿÿèx_L‹•ÐÑÿÿ鄺H�5 h1ÿèyqÿÿH‰ÚL‰æH‰Ç1Àè¹Ç�<j¸jé×5Ç{<o¸oéÃ5Çg<g¸gé¯5ÇS<s¸sé›5Ç?<r¸ré‡5Ç+<q¸qés5Ç<c¸cé_5Ç<}¸}éK5Çï;~¸~é75H‹=Æ=èéH‰Ò;¸{é5H‹©=ÇÃ<¾é5H‹�=1ÉǨ<‰ *<¾éà4H‹o=¾éÑ4H‹`=ƒ<¾é»4H‹=J=èméž4ÇN; ¸ é–4Ç:;¸é‚4Ç&;¸én4Ç; ¸ éZ4Çþ:*¸*éF4Çê:J¸Jé24ÇÖ:R¸Ré4ÇÂ:Q¸Qé 4Ç®:V¸Véö3Çš:¸éâ3dž:¸éÎ3Çr:¸éº3Ç^:¸é¦3ÇJ:¸é’3Ç6:¸é~3Ç":¸éj3Ç:7¸7éV3H‹=å;èé93Çé9+¸+é13H‹=À;èãé3ÇÄ9¸é 3ǰ9 ¸ éø2Çœ9 ¸ éä2Lj9 ¸ éÐ2Çt9I¸Ié¼2Ç`9|¸|é¨2ÇL9W¸Wé”2Ç89A¸Aé€2Ç$9M¸Mél2Ç9U¸UéX2Çü83¸3éD2Çè84¸4é02ÇÔ8^¸^é2ÇÀ8<¸<é2Ǭ89¸9éô1ǘ88¸8éà1Ç„8¸éÌ1Çp8¸é¸1Ç\8¸é¤1ÇH8T¸Té�1Ç48%¸%é|1Ç 8#¸#éh1Ç 8%¸%éT1Çø7$¸$é@1Çä7_¸_é,1¶³,H‰þˆH‹_8‹a8H‰÷HcÈé�/Ǭ76¸6éô0ǘ7…¸…éà0Ç„7¸éÌ0ƒ;-é´.Çd7;¸;é¬0ÇP7?¸?é˜0Ç<7B¸Bé„0Ç(7@¸@ép0Ç7:¸:é\0Ç7.¸.éH0Çì6>¸>é40ÇØ6S¸Sé 0ÇÄ6]¸]é 0ǰ6„¸„éø/Çœ6^¸^éä/Lj6†¸†éÐ/Çt6]¸]é¼/Ç`6"¸"é¨/ÇL6!¸!é”/Ç86~¸~é€/Ç$6X¸Xél/Ç6Z¸ZéX/Çü5¸éD/Çè5\¸\é0/Hc5§6H‹ x6ºL‰UÈH‹=¨7èûtÿÿL‹UÈL�×L�)–éê,Çš5i¸iéâ.ƒ-6y lj6H‹^7¾éÀ.L‰UÈH‹K7ºH�5Sã1ÿè jÿÿH‰ÞH‰ÇèùÁL‹UÈL�šÖL�³•ét,L‰UÈH‹ 7ºH�5ãë¾Ç 5e¸eéS.Ç÷4d¸dé?.Çã4z¸zé+.ÇÏ4x¸xé.Ç»4n¸né.ǧ4k¸kéï-Ç“4¸éÛ-Ç4¸éÇ-Çk4¸é³-ÇW4¸éŸ-ÇC4P¸Pé‹-Ç/4O¸Oéw-Ç4N¸Néc-Ç4 ¸ éO-Çó3[¸[é;-H‹Ê5º1öH�xèRfÿÿE1ÀH‰È3L‰É3é_.Dz3D¸Déú,ºél4H�='`èÀLj31¸1éÐ,H‹)H‹)L‰UÈH‹ÐHc=(HBH‰>(èQ1H‹2(L‹UÈL�ŸÔH‹= 5HcÈL�®“L� Ó‹éü*L‰UÈèH‹¢(H‹£(H‹=ü'H�Ðè[+L‹UÈH‰éB3Çå2l¸lé-,ÇÑ2F¸Fé,ǽ2y¸yé,Ç©2m¸méñ+Ç•2L¸LéÝ+Ç�2K¸KéÉ+Çm2f¸féµ+ƒ$(¸hÇM2héš+Ç>2<¸<é†+H�m'H‹<ÂèT‹N(H�·'‹‚‰Ö'H�'‹‚¶})ƒâƒà÷Áâ Јl)¸é4+HcÂL‰UÀHðH‰uÈH‰µ&èÈ/H‹©&H‹uÈL�ÓHcÐL‹UÀL�(’L� MŠfAƒ£ ÃH�6~ Ãöî%H�7 H�Ç HDÂÃH¹H�’O I9È„^%€ú„š·í$÷Ðf©uLö¢%H�3Ý H�D• HDÂÃH�ØÊ ÃH�@ À=ó%H�‘€ H�Ú“ HEÂÃH�&é øI÷ÑHÁàI…Át6H�… ö{$…Õ$öm$H�ú$ H�SJ HEÂÃH�_r ÃH�?¹ ö%tºÃóúUºH�5tUH‰åSH‰û1ÿPèm]ÿÿH‰ß¾H‰Â1ÀèÛgÿÿ1ÿºH�5•UèH]ÿÿH‰ß¾H‰Â1Àè¶gÿÿ1ÿºH�5°Uè#]ÿÿH‰ß¾H‰Â1Àè‘gÿÿ1ÿºH�5ÛUèþ\ÿÿH‰ß¾H‰Â1Àèlgÿÿ1ÿºH�5ŽVèÙ\ÿÿH‰ß¾H‰Â1ÀèGgÿÿ1ÿºH�5±Vè´\ÿÿH‰ß¾H‰Â1Àè"gÿÿ1ÿºH�5ÌVè�\ÿÿH‰ß¾H‰Â1Àèýfÿÿ1ÿºH�5ïVèj\ÿÿH‰ß¾H‰Â1ÀèØfÿÿ1ÿºH�5WèE\ÿÿH‰ß¾H‰Â1Àè³fÿÿºH�5wW1ÿè \ÿÿH‰ß¾H‰Â1ÀèŽfÿÿºH�5’W1ÿèû[ÿÿH‰ß¾H‰Â1ÀèifÿÿºH�5eZ1ÿèÖ[ÿÿH‰ß¾H‰Â1ÀèDfÿÿºH�5€Z1ÿè±[ÿÿYH‰ß¾H‰Â[1À]éfÿÿóú1À‰Š >"ƒá€ùu€=r#H��l H�™ HEÂÀ=i#H�~’ „ú€=A#H�â´ „æH‹í!H¾H¸H!ÖH9ÆuH�Ê× ö‹"…¯I¹@H¸@I!ÑI9ÁuH�‚ú ö["…H¿H�4H9þ„eH¿H�*?I¸H!×L9Ç„>I¸H�û`IºI!ÐM9ЄH�¦„€ù„H¸H9ÆuöÇ!H�øèH�)§HDÂÃH¸@I9ÁuH�~Èö—!…»H¾H�P H9÷„¡H¾H�¶*I9ð„‡H�öL€ùt{‹ ‡ f�áf�ùuH�nö1!uY¸H÷ÒHÁàH…ÂuH�?‘ö!u8H�g³f�ùt*H�ÑÖö/ uö% H�ùH�CHEÂÃÃóúUH�Ù„¾jH�=IÑH‰åè>µóúUºH�5$QH‰åSH‰û1ÿPèYÿÿH‰ß¾H‰Â1Àè‹cÿÿºH�5GQ1ÿèøXÿÿH‰ß¾H‰Â1ÀèfcÿÿºH�5bQ1ÿèÓXÿÿH‰ß¾H‰Â1ÀèAcÿÿºH�5�Q1ÿè®XÿÿH‰ß¾H‰Â1ÀècÿÿºH�5@R1ÿè‰XÿÿYH‰ß¾H‰Â[1À]éôbÿÿH‹-H‹.A¾H‹ ÐÇA8é¿ H�=a?èö¯E1ÀD‰FE‰D$éü ¶4@ˆ4HƒÀé½1ÿºH�5‘?è XÿÿH‰Ç1ÀèR‰H‹µH‹¶H‹ ÐD‰aéM H‹Ð1É1ö‰ ߉pé— L‹5ÜI)þAƒ|$ trA‹L$� …É~yA‰D$ƒÀHcðè­^ÿÿI‰D$H…ÀtSMcöM‹eLðH‰š‰Ø÷ÐAD$é3ÑùD�<Ic÷èv^ÿÿI‰D$M‹eIƒ|$t2AƒïE‰|$éÖ1ÿI‰|$H�=‰>èæ®‰È¾™÷þÈévÿÿÿH�=Ä>èÉ®U¾ÓH�=â³H‰åè±óúUºH�5É>H‰åSH‰û1ÿPèâVÿÿH‰ß¾H‰Â1ÀèPaÿÿ1ÿºH�5ê>è½VÿÿH‰ß¾H‰Â1Àè+aÿÿ1ÿºH�5?è˜VÿÿH‰ß¾H‰Â1Àèaÿÿ1ÿºH�50?èsVÿÿH‰ß¾H‰Â1Àèá`ÿÿ1ÿºH�5S?èNVÿÿH‰ß¾H‰Â1Àè¼`ÿÿ1ÿºH�5~?è)VÿÿH‰ß¾H‰Â1Àè—`ÿÿ1ÿºH�5©?èVÿÿH‰ß¾H‰Â1Àèr`ÿÿ1ÿºH�5Ì?èßUÿÿH‰ß¾H‰Â1ÀèM`ÿÿ1ÿºH�5÷?èºUÿÿH‰ß¾H‰Â1Àè(`ÿÿ1ÿºH�5"@è•UÿÿH‰ß¾H‰Â1Àè`ÿÿ1ÿºH�5E@èpUÿÿH‰ß¾H‰Â1ÀèÞ_ÿÿ1ÿºH�5x@èKUÿÿH‰ß¾H‰Â1Àè¹_ÿÿ1ÿºH�5“@è&UÿÿH‰ß¾H‰Â1Àè”_ÿÿ1ÿºH�5¶@èUÿÿH‰ß¾H‰Â1Àèo_ÿÿ1ÿºH�5á@èÜTÿÿH‰ß¾H‰Â1ÀèJ_ÿÿ1ÿºH�5 Aè·TÿÿH‰ß¾H‰Â1Àè%_ÿÿ1ÿºH�5?Aè’TÿÿH‰ß¾H‰Â1Àè_ÿÿ1ÿºH�5rAèmTÿÿH‰ß¾H‰Â1ÀèÛ^ÿÿ1ÿºH�5�AèHTÿÿH‰ß¾H‰Â1Àè¶^ÿÿ1ÿºH�5ÈAè#TÿÿH‰ß¾H‰Â1Àè‘^ÿÿ1ÿºH�5ëAèþSÿÿH‰ß¾H‰Â1Àèl^ÿÿ1ÿºH�5BèÙSÿÿH‰ß¾H‰Â1ÀèG^ÿÿ1ÿºH�5ABè´SÿÿH‰ß¾H‰Â1Àè"^ÿÿ1ÿºH�5lBè�SÿÿH‰ß¾H‰Â1Àèý]ÿÿ1ÿºH�5—BèjSÿÿH‰ß¾H‰Â1ÀèØ]ÿÿ1ÿºH�5¢BèESÿÿH‰ß¾H‰Â1Àè³]ÿÿ1ÿºH�5ÕBè SÿÿH‰ß¾H‰Â1ÀèŽ]ÿÿ1ÿºH�5CèûRÿÿH‰ß¾H‰Â1Àèi]ÿÿ1ÿºH�5+CèÖRÿÿH‰ß¾H‰Â1ÀèD]ÿÿ1ÿºH�5NCè±RÿÿH‰ß¾H‰Â1Àè]ÿÿ1ÿºH�5yCèŒRÿÿH‰ß¾H‰Â1Àèú\ÿÿ1ÿºH�5œCègRÿÿH‰ß¾H‰Â1ÀèÕ\ÿÿ1ÿºH�5DèBRÿÿH‰ß¾H‰Â1Àè°\ÿÿ1ÿºH�5zDèRÿÿH‰ß¾H‰Â1Àè‹\ÿÿ1ÿºH�5¥DèøQÿÿH‰ß¾H‰Â1Àèf\ÿÿ1ÿºH�5pEèÓQÿÿH‰ß¾H‰Â1ÀèA\ÿÿ1ÿºH�5ÛEè®QÿÿH‰ß¾H‰Â1Àè\ÿÿ1ÿºH�5Fè‰QÿÿH‰ß¾H‰Â1Àè÷[ÿÿ1ÿºH�5±FèdQÿÿH‰ß¾H‰Â1ÀèÒ[ÿÿ1ÿºH�5Gè?QÿÿH‰ß¾H‰Â1Àè­[ÿÿ1ÿºH�5—GèQÿÿH‰ß¾H‰Â1Àèˆ[ÿÿ1ÿºH�5úGèõPÿÿH‰ß¾H‰Â1Àèc[ÿÿ1ÿºH�5]HèÐPÿÿH‰ß¾H‰Â1Àè>[ÿÿ1ÿºH�5ÐHè«PÿÿH‰ß¾H‰Â1Àè[ÿÿ1ÿºH�5SIè†PÿÿH‰ß¾H‰Â1ÀèôZÿÿ1ÿºH�5vIèaPÿÿH‰ß¾H‰Â1ÀèÏZÿÿ1ÿºH�5¡IèèKHÿÿH‰ß¾H‰Â1Àè¹Rÿÿ1ÿºH�5+?è&HÿÿH‰ß¾H‰Â1Àè”Rÿÿ1ÿºH�5&@èHÿÿH‰ß¾H‰Â1ÀèoRÿÿ1ÿºH�5©@èÜGÿÿH‰ß¾H‰Â1ÀèJRÿÿ1ÿºH�5Ì@è·GÿÿH‰ß¾H‰Â1Àè%Rÿÿ1ÿºH�5÷@è’GÿÿH‰ß¾H‰Â1ÀèRÿÿºH�5$A1ÿèmGÿÿH‰ß¾H‰Â1ÀèÛQÿÿºH�5A1ÿèHGÿÿH‰ß¾H‰Â1Àè¶QÿÿºH�5rI1ÿè#GÿÿH‰ß¾H‰Â1Àè‘QÿÿºH�5MB1ÿèþFÿÿH‰ß¾H‰Â1ÀèlQÿÿºH�5hB1ÿèÙFÿÿH‰ß¾H‰Â1ÀèGQÿÿºH�5ƒB1ÿè´FÿÿH‰ß¾H‰Â1Àè"QÿÿºH�5¦B1ÿè�FÿÿYH‰ß¾H‰Â[1À]éúPÿÿH‹;H‹ ,H‹ ÈHcmHAH9Âs'H‹iH�H¶ÆH‰ X¶@ˆFédH‰ÓHƒÂH+;H‰4èW ƒøt(ƒøt…Àu±HcÃHH‰ëžH‹=è1Òé€ | H‰Ðéw€ m H‰Ðéh1ÿºH�5�Hè²EÿÿH‰Ú1öH‰Ç1Àè³é41ÿºH�5 Hè‹EÿÿH‰Ú1öH‰Ç1ÀèŒéL‹ƒÈéž…Òu9I�yLºéŽUH�5›H1ÿH‰åS¾ØRºè?Eÿÿ‰Ú‰ÞH‰Ç1Àè�óÃI�yH1ÒéX€ ¾H‰ØéßA�ýF„5A�ý)„(H‰ßèdé€ ˆH‰ØéÆèhâÿÿ‰Ú‰˜œƒâýƒú…íé„€ [H‰Ðé+Hƒ…g+I�…I9Ä„é�ƒ=¼uoÆãéùL -¿[L‰çA\A]A^]éǺH�5SH1ÿèTDÿÿH‰ÞH‰Ç1Àè—òH‹@ H‹€˜éÿ-L;-uƒ¢L‰-hé–èV%H‹5WH‹ pHƒþvH�Lÿ1ÒH‰ÈH÷öH)ÑH‰ 3éaI‹\$éÝ0H�5½H1ÿºèÉCÿÿL‰îH‰Ç1Àè ò1ÀL -û•À1ÿH‰ïH‰=øé1ÀM…ít 1ÀHƒ=Ò•ÀE1ÀH‰ÅL‰Îéìƒ=š„»H‹[ ºH�5ç¼éôþÿÿƒ=x„,1ÿºH�5LHè/CÿÿH‰Ç1ÀèuñL‹cºH�5 I1ÿèCÿÿL‰âH‰ÞH‰Ç1ÀèNñºH�5RGé’þÿÿƒ=…á*L‹cºH�5ˆH빺H�5òFébþÿÿ1ÀéK$ºH�5âHë“Aƒ>+L‹%…Õ*I‹~è.R„À„Ä*I‹~ ƒ„Vè3M„À…Ð)L‹s é=)¾²H�=Å»è�L‹%Âéƒ*ƒ=n…³éSÿÿÿH‹séêƒ=S„=H‹CH‹P`H‹@XHC ÆfH‰G1ÀH‰FH‰Gée¾H�=M»虜L1-éVýÿÿƒ=ö„H‹[ ºH�50»éPýÿÿH‹[ºH�5@»é;ýÿÿL‹k1ÿºH�5ÄFèAÿÿH‰ÞH‰ÇL‰ê1ÀèéD*¾¥H�=ͺ蜺H�5õE1ÿèFAÿÿL‰áL‰òH‰ÞH‰Ç1ÀèƒïH‰Èé™H‹@éí*Hƒ…Ÿþÿÿéw(L�5á�¾*éX1€ šé÷/1ÀfïÀI‰G0AG M‹?M…ÿ…Ä0é 1HƒÄ(H‰ÞH�=7 [A\A]A^A_]éø3Æééu/1ÿºH�5Gè™@ÿÿHƒÄ[H‰ÇA\1ÀA]A^A_]é‘L‹5:M…öuM‹?é– A¶GI‹~@ƒàH…ÿ…ã„À„ßM‹6ëÑI‹~L‰æèDÿÿ…ÀtM‹6éù 1ÿºH�5ÝFè @ÿÿL‰æH‰Ç1Àè#ëÖI‹FI‹wL‰EÀH‰ÇH‰EÈèÙCÿÿL‹EÀ…ÀuA¶FA3G¨8„IM‹?éÍ L‰öL‰EÈè¬IÿÿL‹EÈI‰ÇM…ÿ„¶ I‹FI‹wL‰EÀH‰ÇH‰EÈè„CÿÿL‹EÀ…À…ÑA¶FA3G¨8„M‹?뽄À…t éf „ÀuÿÿH‹uÈH‰Ç1ÀèÝÿL‹EÀë�é¼ ºH�5–E1ÿL‰EÀè«>ÿÿH‹uÈH‰Ç1Àè­ÿL‹EÀ뤺H�5kE1ÿè„>ÿÿH‹uÈH‰Ç1Àè†ÿL‹EÀé�þÿÿºH�5AE1ÿL‰EÀèV>ÿÿH‹uÈH‰Ç1ÀèXÿL‹EÀé¸þÿÿM‹mAöD$t*H‹{ºL‰æèbBÿÿH‹H…ÒuL‰ M‰'M‰çM‰ìéþ M‰&M‰æéð E¶D$D‰À3BDˆE¿¨8„Ø H‹ H…Ét,H‹yI‹t$H‰UÀH‰MÈè¨AÿÿH‹MÈH‹UÀ…ÀD¶E¿uH‰ÊëºI‰ $L‰"é˜ UH‰åHƒì H‰MèH‰}øH‰UðèÝ €=æH‹}øH‹EðH‹Mèt H‹¹ÉÃ=˜tõH‰ÎèJH‰uèè…îH‹þH‹þH‹=hýH�ÐèÇH‹=øýH‹uèH‰H…ÿ„‚ H‹Ùýér óúUºH‰åATI‰ôH�5›3SH‰û1ÿèð<ÿÿL‰âH‰ÞH‰Ç1Àè0ëH�=ÖÉ1Àè"ëfHnÆ1Ò1ÉflÀ)¾ÿH‰I‹$ˆXH‰PH‰HI‰$éï.€ ÜÿH‰Âé"/fHnÆ1ÀflÀ)‚ÿH‰BH‹KH�CL‰"H…É„=0éE0€ žÿH‰ÐéÕ/ºH�531ÿèC<ÿÿ1öH‰Ç1ÀèGýH‹8H�ÙL‰`PH‰˜€H‹ÇïH9‚1è¬âÿÿH‰Çè1<ÿÿH�XH‰ßè8ÿÿH‰ÚL‰æ[H‰ÇA\]H‰¡ýéüBÿÿƒ=)41Ò‰éd¶x¨te¨u>H‰HévƒéNºH�5C1ÿèŒ;ÿÿH‰Ç1Àè’ü¶+릺H�5%C1ÿèf;ÿÿL‰âH‰ÞH‰Ç1Àè¦éL‰%ïéH‹=»üé™ö„Ç@I‹PH‹H�5D1ÿL‰EˆL‹"ºè;ÿÿL‹EˆL‰òH‰ÞH‰ÇL‰á1ÀèMéAöFDuT€=C„a2H‹=âè=>ÿÿL‰÷H‰Eˆè1>ÿÿ1ÿºH�5DI‰Åè»:ÿÿH‹MˆL‰òL‰îH‰Ç1Àè·ûé2L‹›I‹Fé]ÿÿÿ1öºH�=jµèO¶HƒxXI‰Äu¶ƒà<twAöG$tpI�|$M‰à1É1ÒL‰þèÐséË4¶ƒà<u €=Š„´4Hƒ=t uº1öH�=͹èçµH‰X L‹Q 1É1ÒL‰þI�xèysét41ÿè-ßI‰D$Xë‚E1íºD‰îL‰ç裵HƒxXI‰Àt[I�x1É1ÒL‰þL‰E€è5sƒ=¦L‹E€…$4M‹h0M‹§à1ÿºH�5kDè†9ÿÿL‰éL‰âL‰þH‰Ç1Àèƒúéî3¶ƒà<tAöG$u”1ÿL‰E€è’ÞL‹E€I‰@Xé|ÿÿÿM‹mH‹U€M…í„o4I‹}H‰ÖH‰U€è …ÀuÛéÕ?L‹c8H‹C(1ÿA¸HC L‹+H�FH�5FFI)ÄL‰áè›AÿÿL‰âL‰îH‰Ç1Àèëùé;ƒâ÷‰P$é¬4èæ*é°4ƒÎéû?I‹v8H…ötI‹VèBÿÿH‹=8…Àˆ&M‹vHé¢?èúé,.H‹3H‹=Sÿ1É1ÒA¸èŒ;ÿÿH…ÀtH¶@ƒè<w=H‹[é–8H‹œýL�-ÅEH…Û„†H‹C0÷@D@u öC`„ H‹[HëÚL‹#1ÿºH�5ÞEè 8ÿÿH‰ÇL‰æ1Àè ùëž1ÿºH�5ÔÖèç7ÿÿH‰Ç1Àè-æH‹NùH�5ÇE1ÿºèÃ7ÿÿH‰ÇH‰Þ1Àèæéí7H…À„²üÿÿé/L‰çèKCÿÿH‰,H…À…›.‹}°èS7ÿÿºH�57@1ÿH‰Ãèm7ÿÿH‰ÞH‰Ç1ÀèpøH‹©üH…Û„XH‹{8è·?ÿÿH‹[Hëè€=Žý…AL‰ïè¬:ÿÿéŸ.1ÿè`‹}°èè6ÿÿ1ÿºH�5z?I‰ÅI‹F0H‰Eˆèú6ÿÿH‹uˆL‰êH‰Ç1Àèù÷éÚ-I‹~0H�5g±èd9ÿÿE1Û‹H$L‰X@‰Ê�ʃ…Ûu�ɉʉP$»éŸ-H‹=:èý5ÿÿ1ÀH‹äûH‰%H…ÛthH‹{8E1öèì>ÿÿL‰s8H‹[Hëåè=5ÿÿ‰Çè66ÿÿM‹n0º1ÿH�5„AI‰ÄèL6ÿÿL‰îL‰âE1íH‰Ç1ÀèI÷I‹~8è >ÿÿM‰n8H‹=½éˆýÿÿér=L‹ �M…䄿ýÿÿIƒ|$`„- M‹d$ëäé-1ÿºH�5�?èà5ÿÿL‰öH‰Ç1Àèãö€= ü…>-é�þÿÿL‹h0L‹%.÷1ÿºH�5ÈCè£5ÿÿL‰êL‰æH‰Ç1Àè£öé<H‹=‡üH‰ÆèŸ@ÿÿ„À…l61ÿºH�5‚°èd5ÿÿH‰Ç1ÀèªãH‹CH‰'÷é‘:M‹4$1ÿºH�5 Aè35ÿÿH‰ÇL‰ö1Àè6öéu3M‹4$1ÿºH�5?Aè 5ÿÿH‰ÇL‰ö1Àè öéL3Aƒ½œ„¿=I‹E8H…À„²=ö@$„¨=Hƒ{„�=M…ÿ…N=L‰èL‹¸€M…ÿ…;=H‹@ H…Àuç1ÿºH�5E@è�4ÿÿH‰Ç1ÀèÖâH‹{(E1íH…ÿ…‡H‹{ E1ÉH…ÿuf‹EˆE1ÀHƒ{ D‰éH‹sA•À1ÒHƒ{(ATH‹=Dû•ÂP¶CP¶CPèñ8ÿÿHƒÄ „ÀtH‹éH11ÿºH�5ë?è4ÿÿH‰Ç1ÀèTâH� ¯1Ò1öèI‰Áë…H� ä®1Ò1öèïA‰ÅéaÿÿÿH‹Hõ1ÿºH�5"Bè½3ÿÿH‰ÇH‰Þ1ÀèÀôé 41ÿM‹¯àºH�5>>è‘3ÿÿL‰þH‰ÇL‰ê1Àè‘ô€=€û„�.é):C�46L‰çH‰U€I‰öHÁæèX4ÿÿH‹U€I‰Äé<€%øù¿éÅ0èËH�5$;1ÿºH‰Ãè%3ÿÿH‰ÞH‰Ç1Àèhá‰ñÀéƒá@€æ@…CH‰OI‰ÇL‰ø„É…H‹M¸H‹0H‰1H‰I;E„îI‹WPH‹E˜H‰H‹U�I‰WPI�WPH9¤õ„¾IƒH‹E¨H‹þ÷„�I‹OHIƒÇHH‰H‹M I‰L9ú„foÍ÷H‹=fö1öºƒxö)] èÏ>L‰öH‰ßèH‹U H…Ò„£(H‹z0I‹ $H‹·èH…öHEþ1ÀE1ÀëM…Ét HƒyHLEÁH‹IPH…ÉtiL‹I0I9ùuàH‹AHH…À„ÖHƒÀHL‹J÷L‹H�JHH…ötxH‹zHH…ÿ…”H‰H‹H‰U L‰ L9ÀtqH‹†H…À„cÿÿÿHƒéHH‰HHéVÿÿÿH…Àt2HƒÀHH‹H…Ét öAa@uH‹y0Hƒ¿ètŒH�AHëÞH‰ÐöéîþÿÿH‹ëÉH‰H‹zHL‰JHH‰} L9À…ÿÿÿH‰ §öH…öuƒéñþÿÿL‹W0I9²è…[ÿÿÿH�OHH‹HéEÿÿÿL‰ÀéÿÿÿH‹ höH‰H‹M H‰ ZöH9Ú…|þÿÿH‰CésþÿÿH‰Ùóé6þÿÿI‰Mé þÿÿL‰ÿH‰Uˆè&I‹wPH‹UˆH90IEÇéÒýÿÿL‰= M…ÿ…·ýÿÿ¾" H�=«¨èb‹L‰=ëÿM…ÿtãL‰øé�ýÿÿH‹º1ÿM‡õH�5Z=L‰�XÿÿÿM‹6L‰…`ÿÿÿH‰…hÿÿÿè]0ÿÿL‰úH‰ÇPL‹…`ÿÿÿ1ÀH‹MˆL‹�XÿÿÿAPH‹µhÿÿÿM‰ðèAñZYé42I‹F¶@ƒè<†A‹vH‹= ÷è‡0ÿÿI‰ÀH…Àu>¶A‹Fƒâ€ú„-I‹V H‹RH‹ºàH…ÿ„7‰ÆèM0ÿÿI‰ÀH…À„AE¶`AƒäA€ü„Û‡›A½A€ütA½A€ü……A¶üL‰…pÿÿÿL�%g¯èµÔ¿H‰Æèèÿ1ÒL‰çH‰Æè{ùH‰Çè³ýL‰æ¿è¦ü1ÒH‰ÆI‹FH‹xèTùH‰ÇèŒýI‹~ècÔD‰ïH‰Æè¸L‰}€M‹f L‹½pÿÿÿM…ä„8Hƒ=÷„‹€}ˆ„ÅI‹FH�=ª±H‹p1ÀèÂQI‹FH‹xèõ.ÿÿ‰Âƒø�¹¿)×è>9I‹t$H…ö„H�=ä±1Àè‚QéL‰çè…*ÿÿé«.I‹FA‹~H‹HI‹F H‹@Hƒ¸à„ËH‰M€èå*ÿÿI‰ÄI‹F H‹@H‹€àH‹@ºH�5C8L‹(1ÿè).ÿÿH‹M€L‰âL‰îH‰Ç1Àè%ïM‹6éc&A€ütWI‹Fº1ÿL‰E€H�5q8L‹hèè-ÿÿA¶ôH‰ÇL‰ê1ÀèçîL‹E€A½é<þÿÿ1ÿL‹}€èýÒD‰ïH‰ÆèRë›A·@E1íf%€f=A”ÅA�ÅéþÿÿI‹T$I‹L$H�=9¨1ÀH‹²àèaP¶…ÿÿÿˆEˆH‹ÈØI‹T$H0H9Ât�J$ ¶I‹L$ƒà<tl¿(H‰�`ÿÿÿH‰•hÿÿÿè"¨ÇtH‰…pÿÿÿèpëH‹µpÿÿÿH‹•hÿÿÿD‰ïH‹�`ÿÿÿH‰F‹æíÇF ‰FH‰VH‰N èwÿM‹$$éÅýÿÿH‰ÏèÒI‹t$E‹N¿PM‹D$H‹ ”ßH‰…PÿÿÿH‰µXÿÿÿL‰…`ÿÿÿD‰�hÿÿÿH‰�pÿÿÿè„§H‹�pÿÿÿ1ÒD‹�hÿÿÿH‰L‹…`ÿÿÿÇ@ H‹yH‹µXÿÿÿH‹•PÿÿÿH‰H‰A1ÉD‰HL‰xL‰@ H‰p(H‰P0H‰H8H‰H@H‰HHéLÿÿÿ1ÿºH�5±¦è,ÿÿH‰Ç1ÀèöNéýÿÿèì21Òé;ýÿÿI‹F0H‰ÞL‰ÿH‹@ÿ�Øé\&M‹¤$ƾóM…ä…œ%é·%I‹V‰ÇH‹JH‰M€è<(ÿÿI‰ÄH‹¢òéZýÿÿI‹V‰ÇH‹JH‰M€è(ÿÿºH�5¾5I‰ÄI‹F H‹@L‹(é;ýÿÿL‰øM‹?éÊ!Hƒ= î„ "ºH�5n31ÿè?+ÿÿL�5®L�-³¥H‰Ç1ÀL�%¬¥èNH‹áíH…Û„�H‹sL‰÷1ÀèòMH‹{è)+ÿÿ‰Âƒø�¿)×èr5H‹sH…öt L‰ï1Àè¿MH‹sL‰ç1Àè±MH‹ë£I‹T$8HÐL!è„ÿ(éî(H‹é†31ÿºH�589è‹*ÿÿH‰Ç1ÀèÑØé7!1ÿºH�5‡¥èi*ÿÿH‰Ç1Àè¯ØM‹uH�5ê¿L‰÷è,.ÿÿ…À„ï0M‹|$01ÿºH�5)6è,*ÿÿL‰òH‰ÇL‰þ1Àè,ëéÂ0€½ÿÿÿ„ÿ*H‹{ë1ÿºH�5U8èð)ÿÿH‰ÇH‰Þ1ÀèóêéÓ*èÉ01ÒéäþÿÿAöD$&…ÇóÿÿL‹s0L‰î1ÿºè³)ÿÿL‰æH‰ÇL‰ò1Àè³êéŸóÿÿƒø…@¸L�e°L�-Y‰E°L‰âL‰î…À„èO0ÿÿ‹E°H‹==ðƒèëÛH�= yèÔ,ÿÿI‰Åé˜ H‹=EðH‰ÞH‹Gÿ�éÔ"I‹E H…À„¾1ÒH‹A‰Ö�RH…ÀuòHcòH�<õH‰u€è"%ÿÿH‹u€1ÒI‰ÄI‹E H…À„I‰ÔH‹H‰HƒÂH‰ÈëäH‹ÒïºL‰æH‰ßH‹@H‹€€ÿ�ØA¶D$i‰Âƒâ€êt ƒàüƒÈAˆD$iA€L$kA€L$(éª!I‹LÄHƒÀH‰ I‹ÄA9Æë1öL‰çH‰2èh$ÿÿM‹méˆ è:/ÿÿéÅ!1ÀL�e°L�-ÈW‰E°ƒøwOL‰âL‰îè/ÿÿ‹E°H‹=ïƒÀëÞE1ÉL‰}€L‹5híL‰MˆM…ötXI‹~0H�5—¢è�*ÿÿI‰ÄH…ÀuxM‹vHëÝL‰âL‰îÇE°ÿÿÿÿè¿.ÿÿéJ!H� Ÿ�ºL‰çè6&ÿÿI‹$I‰E 1Àé9ÿÿÿ1Ò1É1ÿL‹}€H�5|„è¡ÔH‹}ˆH‰Æè%ôH‹=&î1ÒH‰ÆèdôéƒL‹h@L‰ïès¢I‹~01ÉM‰èH‰ÂL‰æI‰Çè|'ÿÿ„Àt+MýM9ïsEH‹}ˆL‰þ1É1Òè@ÔL‰ÿH‰Eˆèd'ÿÿM�|ëØ1ÿºH�5ÿ0è'ÿÿL‰æH‰Ç1Àèèë³A�L$$€ éÿÿÿ¾?H�=õžè¬�H‹[H�5Ñ51ÿºèÕ&ÿÿH‰ÇH‰Þ1ÀèÕH‹GH‰öéè0ès(ÿÿƒøt H�561ÿºè›&ÿÿL‰öH‰Ç1ÀèÞÔH‹æH�5¶¡1ÿºèt&ÿÿH‰ÇH‰Þ1Àè·ÔH‰ÆH�=Fwèˆ,ÿÿH‰ÆH…À„11Òƒ=§ì•Â;P „ð0H‹€xH…Àt ;P „™H�=zèF,ÿÿH‹óH…À„ŒH‹H‰ôåé°01ÿºH�5ÑÄèä%ÿÿH‰Ç1Àè*ÔH�5“51ÿºèÇ%ÿÿL‰öH‰Ç1Àè ÔH�5K51ÿºè§%ÿÿL‰öH‰Ç1ÀèêÓ¾‘ H�=’�èI€H‹H‰wåé301ÿºH�5Œ4èg%ÿÿH‰Ç1Àèmæé0ƒ{t H‹[HéGúöCatñH‰ßèË7H‹{0H…ÿtà¾è¸/ÿÿ„ÀtÒH‹C0H‹@H‹H…ÀtÂéú¾Â H�=�辋5˜ò‰Â1ÉöÂu Ñê¹ëòó¼Àð„Ét‰vò‰Ðé11ÿºH�5Ù)è¼$ÿÿH‰Ç1ÀèÓ]ÃL‹+1ÿºH�5·4èš$ÿÿH‰ÇL‰î1Àè�åésûL‹+1ÿºH�5_4èr$ÿÿH‰ÇL‰î1Àèuåé�û1ÀH‰§óé31H‹CºH�5Š41ÿH‰E¨è7$ÿÿH‹u¨H‰Ç1Àè9åH‹ ×H‹M°H‹PH‰ H‹U¸H‰PéX2H�=±1ÀèLÒÆæëé32Hƒ=@ó…�1é¾0H‹CH‰2óé®0L‰ÇL‰E¨èaûH…À…Š0H‹‘æL‹E¨H…ÒtIH‹zH…ÿt:L‰ÆH‰U L‰E¨è�"ÿÿL‹E¨H‹U …Àu¶Baƒà<…F01öH‰×èÊ2é70H‹RPë²H‹@æ1ɾL‰ÇH‹/ÖL‹P°HƒèPL‹JH‰BH‹péL‰U¨L‰M èœL‹U¨L‹M H‰ÂH‹ùÕH‹HL‰Iƒ9u�L‰HéxÿÿÿóúUH‰åH�ìÐH‰µXÿÿÿH‰•`ÿÿÿH‰�hÿÿÿL‰…pÿÿÿL‰�xÿÿÿ„Àt )E€)M�)U )]°)eÀ)mÐ)uà)}ðdH‹%(H‰…Hÿÿÿ1ÀH�EH‰þ1ÉH‰…8ÿÿÿH�…PÿÿÿH�•0ÿÿÿH‰…@ÿÿÿH‹ÍÇ…0ÿÿÿÇ…4ÿÿÿ0H‹8è;ÔH‹…HÿÿÿdH+%(tèt"ÿÿÉÃH‹[0H�5w31ÿºè"ÿÿH‰ÇH‰Þ1Àè^ÐH�EÀA¿E1äH‰E¨L�-¦èL‰æL‰÷è‹,ÿÿI‰ÄH…À„Ö¾H‰Çèb,ÿÿ„À„šL‰eÀH‹M¨L‰æL‰ïH‹…èH�Ë‘ÿ„À„ÝH‹}ÀL‰îH‹Gÿ�ЄÀ„œL‹s0ë�I‹<$è¬!ÿÿI‹>I‰ÅèÁ$ÿÿI‹<$H�5ºœI‰ÇH‰}¨è:%ÿÿH‹}¨…Àu6A€NIé2H‰ÞH�=�œ1Àè<þÿÿH‹{0¾è¹+ÿÿ„À…1éè0McíL‰þL‰êèn"ÿÿ…À…*C¶/„À…A€NIé·1ºH�5321ÿE1ÿèÙ ÿÿL‰æH‰Ç1ÀèÜáé<ÿÿÿH�¨Ì¾3 H�=¸˜è°|ºH�5+11ÿèœ ÿÿL‰öL�%šH‰Ç1Àè˜áH‹]¸H‹3H…öt5L‰ç1ÀHƒÃè~áëèH‰ßÿЄÀ„¡1Aƒý …Þ0H‹}¸èLÿÿéÐ0H‹}¸è>ÿÿH�=3­1Àè€ÎH‹[0ºH�5811ÿè ÿÿL‰âH‰ÇH‰Þ1ÀèYζCaC�?ƒàý ЈCaéƒ0<.uC€|/au C€|/„ãþÿÿM‹d$é‘0H�5‹01ÿºè¿ÿÿL‰öH‰Ç1ÀèÎH�5“01ÿºèŸÿÿL‰æH‰Ç1ÀèâÍH�511ÿºèÿÿH‰ÞH‰Ç1ÀèÂÍ€c`ûL‰céh2L‹cöC`…¡L‹-háM…í…JH�5µš1ÿºè4ÿÿL‰æH‰Ç1Àè7àL‹%ßL�5„­L�-¬M…ätwI‹<$L‰ñL‰êH‰Þèû4„À…¬M‹d$ëÚH‹íâI‹<$H‹€ÐH…Àu|M‹d$é§1H‹sH‹{è¾ÿÿ…Àu4L‹cH�5$š1ÿºè£ÿÿH‰ÇL‰æ1Àè¦ß€Ka€ <áé‰1L‹kL‹c1ÿºH�5È™èkÿÿL‰êL‰æH‰Ç1ÀèkßëÃH‰ÞÿÐ…À„wÿÿÿéF1H‹{èŽ!ÿÿL‹kº1ÿH�5\0I‰Äè$ÿÿL‰áL‰âL‰îH‰Ç1Àè!ßH‹{0èØ&ÿÿ1ÀH‰C0égÿÿÿ1ÒL�5Ÿ™€=äL‰m°L‰u¸L‰eÀH‰UÈuhH�M¨H�U¬L‰ïH�u°èÇdI‰ÄH…Àu~L‹céoþÿÿL‹-æM…í„OþÿÿA€<$/…Dþÿÿ1ÿºH�5™èˆÿÿL‰êL‰æH‰Ç1ÀèˆÞéLþÿÿºH�5/1ÿè`ÿÿL‰îL‰áL‰òH‰Ç1Àè]ÞL‹-^ßéfÿÿÿL‹-Rߺ1ÿH�5$/è'ÿÿH‰ÇL‰î1Àè*ÞL‰çèò%ÿÿéæýÿÿH�5®/1ÿºèúÿÿL‰æH‰Ç1Àè=Ëèß=„£…À… 2èêH‹=ñÜÆRçèmÿÿ1ÉH‰ ÜÜE…í„D1€=ùâ… H‹{0èe%ÿÿ1ÒH‰S0éB0H‰ßÿЄÀ…1é‡1ºH�5#˜H…ÀtH�52˜1ÿèYÿÿL‰æH‰Ç1ÀèQùÿÿH‹C0H…À…0éä/H‹cçH‰UÈèJÞƒø,…Dÿÿÿè<Þ=…4ÿÿÿL‹=:çè%ÞH‹UÈé‘1H…ÒLEòéž1I‹Eƒxt}€=4â… H‹{0è $ÿÿ1ÀH‰C0é}/H‹[XH�5ª—1ÿºè®ÿÿH‰ÇH‰Þ1ÀèñÉM…ÿME÷éC1L‹k1ÿºH�5ó-è~ÿÿL‰æH‰ÇL‰ê1Àè~ÜéËþÿÿH‹bâH‹@ƒx…nÿÿÿH‹{0¾èÖ%ÿÿ„À…×/éSÿÿÿL‹k1ÿºH�5—-è"ÿÿL‰æH‰ÇL‰ê1Àè"Üé4ÿÿÿ1ÀÃ1Àé)2€?/…;2H‰þH‹=Hã1Ò1Àè7ÿÿH‰ÞH‰ÇI‰ÄèI.„Àt L‰céí1L‰çèÄÿÿé 2H�5 +1ÿºè¬ÿÿH‰ÞH‰Ç1ÀèïȾ˜H�=—’èNu¾šH�=†’è=uH‹WH�5"áH‰ÇH‹’ØÿâH‹ÇÅH�Â0H‰V`é'3óú€=9ℊUH‰ðH‰åAUATSH‰Ó‰ÊAQ¶NL‹nƒùuH‹v(H‹@0H‹vL‹¦àë�qýƒþwH‹@(L‹ à1Àë1ÀE1ä�rýƒþvƒúu3ƒùt¾€H�=Ü•èŠtºH�5ž,M…äu@H�5Ú,éÛ�qýƒþvƒùuRƒút¾�H�=œ•èJtºM…ät)H�5á,1ÿèrÿÿL‰áL‰êH‰ÇAXH‰Þ1À[A\A]]égÚH�5-ë|ƒùuƒút¾˜H�=E•èósºI9ÀsH�5-M…äu¤H�5N-ëBL9ÀsH�5€-M…äuŠH�5¼-ë(M…ät1ÿH�5ì-èçÿÿL‰éL‰âH‰ÇépÿÿÿH�5 .1ÿèËÿÿYL‰êH‰ÞH‰Ç[1ÀA\A]]éÄÙÃÆ�àéxðóúUH‰åAWAVAUATSH‰ËL‰ÁHƒìDŠGA÷À@…‘H‰ð@ŠvI‰ÔH‹ÒÃ@€þt@€þt)H�'ľ H�=X”èGtL‹h(L‹p0M‹½àë E1öL�ªHE1ÿL�’0@€þ@”ÆL9ÓA”ÃD!ÞM9ÕA”ÂD„Öt I9΄E„ÀxNM‹E`H�²0M…ÀA•ÂI9ðA”ÀE„Ât I9õ…äH‹s`H…öA•ÀH�Â0H9Ö@”ÆA„ðt H9Ó…½H‹@H‰EÈM…ätM‡çëL‰ñL‰ëöGH‰MÀºH�5ã,uH�5 -1ÿèkÿÿL‹EÈH‹MÀH‰ÚH‰ÇL‰þ1ÀècØM…ät&ºH�5a“1ÿè;ÿÿL‰ñL‰êL‰æH‰Ç1Àè8Ø1ÀH�=¤è*؃=ÛÝu'ºH�5Å,1ÿèþÿÿH‰Ç1ÀèØÇ²ÝHƒÄ[A\A]A^A_]ÃH‹8L‹fH‰ËH…ÿ…¾€=ÝuHƒ=ÖÜ„É/€=AÜL�-Ü„/1ɺL‰æL‰ïL‰EÈè6ÿÿL‹EÈH…ÀI‰Æ„ãM‹f M…ä…³¾L‰ïL‰EÈèÿÿL‹EÈH…ÀI‰Ä„lI‹F I‰$M‰f A€d$øI‰\$H‹’ÁHI9À„yAö@%uvA€L$é"/1É1ÒL‰æL‰EÈè©ÿÿL‹EÈH…À„%ÿÿÿH‹MÁºH�5’HI9ÀtL‰EȺH�5’1ÿè·ÿÿL‰âH‰ÞH‰Ç1Àè·ÖL‹EÈé×þÿÿA€L$é¬.ºH�5Ç+1ÿè€ÿÿH‰Ç1Àè†ÖL‹EÈé÷þÿÿº(H�5‘L‰ïL‰EÈè ÿÿL‹EÈ„ÀtNÆÞÚé¥þÿÿD¶ÑÚD‰ËE„Ò„F.E…É„�Aƒù„äAƒù„Ð1ÀHƒÄ[A\A]A^A_]úH�5û*1ÿèìÿÿH‰Ç1ÀèòÕL‹EÈë�ºH�5=‘1ÿèÉÿÿH‰Ç1ÀèÏÕL‹EÈénþÿÿI;\$„zþÿÿM‹$$é0þÿÿA€L$é°-H‹ÈãL‹ ¹ã1ÿE1Û‹ÚL‹5çÙE1äD‹-ýÙH‰ÆL‰É9׃9M‹þM…À„HM‹X L�yM…Û„PM‹L‰ùE‰ÔëèH‹5OãH…ö„»H‹GãH‹=(ã1ÛL�-ÙfnãfnãL‹%0ãL�4H‰=]ÙfbÂfÖiÙMôèyÿÿH‹ÒâH‰Ù;MÙspI‹U‰ØH‹ ÂH…É„¯‹:ÙL‰öH‰Ïè?ÿÿH‰Á‹&ÙIÆH‹A H…À„�óAo$IƒÄI‹T$øH‰PH‹ëÜH�=ÔØèÿÿÆðØél,H‹5dâH‹=ÅØè0ÿÿH‹=Yâè4ÿÿ1ÀH‰Kâé?,E„Ût H‰5RâH‰ðE„ät H‰ ;âI‰ÉHÁâLÈL�-jØH�<H‰âè ÿÿ¾L‰ïH‰ûáè–ÿÿH‰çáH…À„¶ýÿÿL‹%çáH‹ ØáH‹5!ØH‰ÏL‰âèFÿÿL‹5×áH‰ÁH‹ØLáH‰›á‹ ØIΉˆá‹Ø‰xáH‹±×H‰bá;ä×swI‹U‰ØL‹$ÂM…ätm‹Õ×H‰ÏL‰æèÚÿÿH‰Á‹Á×HÁI‹D$ H…ÀtNóoIƒÆANèH‹PI‰VøH‹ëáHƒÇéšýÿÿƒÃé.þÿÿH‹ é8þÿÿM‹LîE‰Óéˆýÿÿé÷*ƒÃétÿÿÿM‹$$ë€óúUH‰åATI‰ÔSH‰óH…ÿu¾(H‰ßèmÿÿH…Àuë$H‰øL‰âH‰ÞH‰Çè¥ ÿÿH…ÀtHÿÑÖWÀ@[A\]þ#H�=Inè,lH‹PH‹� þÿÿÆ…ŸþÿÿƒzHDÈH‰� þÿÿ¶ø×¾ƒâùƒÊˆç×éû,H‹� þÿÿƒêH�5M)ºHDÈ1ÿH‰�¸þÿÿèÿÿH‹µ¸þÿÿH‰Ç1ÀèE¿H‹…°þÿÿ‹µ¬þÿÿºév,�H$€ée-H‹›éu-ºH�5J'1ÿè³ÿÿH‰Ç1Àè¹ÑH‹=jÒè� ÿÿ1ÀH‰\Òé .èŠ ÿÿ1ÒH‰IÒH‹=:Òèu ÿÿ1ÉH‰ ,ÒéU*L‹¸�M…ÿ„½,él+1ÿH�5ùÖè4ÿÿ„À…O,1ÿºH�5þ(è)ÿÿH‰Ç1Àèo¾èÿÿH‹×H‹=dÖH‹@H‹0èpÿÿH‰×H…À…À)H‹AÖºH�5E&1ÿèÖÿÿH‰ÞH‰Ç1Àè¾1ÿºH�5;(è¶ÿÿH‰Ç1Àè¼Ðé¨+ºH�5‹'뼺H�5U&éÎþÿÿL‰ïè°ÿÿºH�5Œ&I‰ÄH…À„þL‰ïH�•Àþÿÿ1öè§ÿÿH‰ÇH…À„�H‹@HƒÀt ðHƒouèÔÿÿIƒÄº+@H�5Á‹H‰ßIƒäüèÿÿH…À„™H‹ÖfHnÐó~»ÐH� ]Ç@|H‹’flÂH‹’¨ H‰J0B8H‹�ÐÇBL‰`@éª(H‹uкH�5ù%è¤ÿÿH�•ÿÿÿH‰ÇH‰Þ1Àè Ïé þÿÿH‹ƒH…À„£(éê(ºH�5 &1ÿècÿÿH‰Ç1ÀèiÏéÓýÿÿH‹RHéüçI‹EH‰Ðéû/I‹G I‹wH™H÷=ÒÑI‹GH)ÖHÐH‰÷H‰Æèeÿÿ¶CJL‰çƒàçƒÈˆCJèðÿÿé¶.1ÿºH�5å&èè ÿÿH‰Ç1Àè.¼¶•ÿÿÿH�uœL‰÷AÿÐéw/I‹@H‰•Ïé+/èsÿÿH�5'1ÿº‰Ãèž ÿÿ‰ÞH‰Ç1Àèâ»L‰EˆA¶ÕH�uœL‰÷AÿÑL‹EˆéÙ.I‹@H‰DÏé….èòøºH�5æ&1ÿI‰ÅèL ÿÿL‰îH‰Ç1ÀèOÎA‹w0‹Eœƒþÿ…¦-éº-L‰EˆA¶ÕH�uœL‰÷AÿÑL‹Eˆé.èÊÿÿH�5[&1ÿº‰Ãèõ ÿÿ‰ÞH‰Ç1Àè9»è¤ÿÿH�5ý%1ÿº‰ÃèÏ ÿÿ‰ÞH‰Ç1Àè»óúH�5èÎH�=aÓé, ÿÿ€…J0¿ è¸ÿÿH‰Â1ÀH‰‹…0ÿÿÿƒø/vkH‹�8ÿÿÿH�qH‰µ8ÿÿÿH‹ H‰Jƒø/vaH‹�8ÿÿÿH�qH‰µ8ÿÿÿH‹ H‰Jƒø/vWH‹�8ÿÿÿH�AH‰…8ÿÿÿH‹H‰BH‹éÎH‰H‰ßÎé|/‰ÁƒÀH�@ÿÿÿ‰…0ÿÿÿ듉ÁƒÀH�@ÿÿÿ‰…0ÿÿÿë�‰ÁƒÀH�@ÿÿÿ‰…0ÿÿÿë§1ÿºH�5�%èË ÿÿH‰Ç1ÀèºI‹}E1ÿèH‰ÇI‹D$I9EtKè¢ÿÿM‹mé]èI‹D$M‹|$1ÿºH�5q%H‰…xÿÿÿèu ÿÿH‹µxÿÿÿL‰úH‰Ç1ÀèqÌé¹åD‹E„H‹µpÿÿÿ¹‰ÚH‰½Xÿÿÿè~òH‹½XÿÿÿD¶øëŠèŒD‹E„¹‰ÚH‹µpÿÿÿH‰ÇI‰ÅèOòL‰ïA‰ÇèÿÿE„ÿ…œHƒ=sÑ…içHƒ=]Ñ…[çH�=ó‡èCÿÿH‰ÇH…À„CçD‹E„H‹µpÿÿÿ¹‰Úèðñ„Àu`é#ç1ÿºH�5’‡)…`ÿÿÿfÖ…xÿÿÿè… ÿÿfo…`ÿÿÿH‹•xÿÿÿH‰Ç1ÀÈfH~ÎèiçÿÿéæL‹­xÿÿÿH‹�`ÿÿÿé©äL‹­xÿÿÿH‹�`ÿÿÿé–äI‹^H�5n$1ÿºè" ÿÿH‰ÇH‰Þ1Àèe¸H�5v$1ÿº‰MÈèÿ ÿÿ‹uÈH‰Ç1ÀèB¸1ÒH�=%‡1À‰M¸è/ ÿÿL‰ÿH‰ÆH‰EÀè` ÿÿH‹uÀ‹M¸H…Àu;º�"L‰ÿ‰MÀè¤ÿÿ‹MÀH…À…cé¸é8éAÇFLòÿÿÿIÇF0é…éH‰÷H‰E¸‰MÀèzÿÿ‹MÀH‹E¸é)éI‹E¹I‰FH‹´ééI‹}1ÉH�5ʘ1Àè‘ ÿÿé›è¾üH�=fèëcM�t$L‰÷è>ÿÿM‹EM‰ùL‰òH‰ÇI‰Ä1À¾H� ˆèKÿÿH‰ÞL‰çè`„À…�-ém-H‹{0öGD@„–-¶C`‰Â÷Ò€âu!¨uH‹{è ÿÿH‹{0I‰ÇL‰þèLÿÿéh-¾ÐH�=ö…èVc¸éÂéH�5‹H‰ßè}­‰Â1À„Ò„§éH‹ ª³HƒÃ¶3H‰òöDqt'¶söDqtHƒÀHƒÃ€;uÛéré¸éhé€ú-t€ú:uHƒÃëÜ1ÀéQéH‹|³H‹{0H�M¸L‰öH��0è}é€=VÌt@H‹5ÌH‰C8H‹C‹ Õ¶@ƒàÓèHE¸é -H‹B@‹ cÕHÓèHðH‰EÀéº-ƒ=ÝËuÂ1ÿºH�5.…è˜ÿÿH‰Ç1ÀèÞµƒ=·Ë…`/1ÿºH�5è„ènÿÿH‰Ç1Àè´µ¾jH�=\èbH‹´²H�MÀH‰ÞH��0è¹èH‹EÀék,H�¹²¾H�=!ècH‰ßèà1éú/H‹{01öè ÿÿI‰ÄM…ä„ã/I‹¼$H…ÿtè²1H‹{0L‰æèvÿÿI‰ÄëÔL‰a(éÛ0H‹A(H‹@H‹€àH…À„$0ö@F„0éR1H‰ñH‹ÿ±H��HI9Єæ/é*0AöD$D@tnA€Néä/H‹s1É1ÒL‰MÀL‰EÈè ÿÿL‹EÈL‹MÀH…À…²0éÓ/€y…N0H‹A(H‹@H‹€àH…À„60ö@F„,0ÆAH‰A(é0A€Név/H‹U°L‰çèº^„À…Y1éÜ2H‹€H…À„Ì2H‹xH…ÿ„¿2L‰æèÄÿÿ…À„'1éª2€ PÉH‰ðé"2H‹EÈ1ÒK�x1Àè@$H‹ƒèH‹8èqÿÿH‹;I‰ÅèfÿÿA�Déƒþÿÿè1Àé€þÿÿH‹µHÿÿÿH�= „1Àèû#é92óúUH‰åAWI‰ÿAVM‰ÆAUI‰ÕATI‰ÌSH‰óHƒì€=×ÈL‰MÈuH�5§~H‰ßè¦ÿÿ…À„øM…öt?ºH�5Ÿz1ÿè¦ÿÿH‹MÈHƒÄI‰ÙI‰À[L‰òL‰æH�=|~A\1ÀA]A^A_]éŠÁM…äu5ºH�5[z1ÿèbÿÿHƒÄH‰ÚH�=T~[H‰ÆA\1ÀA]A^A_]éPÁM…ít=L‰âL‰îH‰ßèv„ÀucM‹w`M…öt"M9æu M‹¶ëíL‰òL‰îH‰ßèM„Àu:ëãºH�5äy1ÿèëÿþÿHƒÄH‰ÙL‰æ[H‰ÂA\1ÀA]H�=Ú}A^A_]éÖÀHƒÄ[A\A]A^A_]ÃUH‰åAUI‰ýH‰×ATI‰ôSH‰ÓHƒì8dH‹%(H‰EØ1ÀèÊýþÿ„Àu H�5÷Ÿ1ÿºèsÿþÿH‰ÞH‰Ç1Àè¶­H‹ƒÀH�U¸H‰ßÆE¸H�5HL‰mÀH‰EÐL‰eÈè< ÿÿŠE¸H‹UØdH+%(tèeÿþÿHƒÄ8[A\A]]ÃU¾EH�=wH‰åèÅYóúUH‰åAWAVAUATSHƒì€:H‰uÈ…îI‰üH‰Óè¸ ÿÿH‰ÇH…Àx&„ÕèåúþÿH‹KH‹uÈL‰çH‰ÂI‰ÅèoÿÿH…Ày H�5û1ÿºè—þþÿL‰æH‰Ç1ÀèÚ¬I�TÅM‰ïI9×srM‹7M…ötjI‹H…Àt\H‹H…ÀtTH‹sH‹xH‰UÀè4ÿÿH‹UÀ…Àu;L‹{ºH�5.x1ÿè5þþÿI‹NH‹UÈL‰æI‰ÀM‰ùH�=6|1Àè&¿ÆëIƒÇë‰HƒÄL‰ï[A\A]A^A_]éõùþÿHƒÄ[A\A]A^A_]þúH�=²Zè•X¸éÒáH9ÖtwI9Õ„…áH…Òt_‹RD¸÷Â…«áƒâ@ƒúÀƒÀé›áH‹Ré#áA‰ÇH‹AÁº1ÿH�5óH‹XèjýþÿA¶×H‰ÇH‰Þ1Àè©«¸éVá¸éLá¸éBáH…Ò„΋BD%ƒøÀƒÀé$áfom€fo¥pÿÿÿH�qE‹~L‹ Â)e )m°Aƒÿ‡N‹|ý foµPÿÿÿfo½`ÿÿÿH�²wE¾FH‰EÀ)u )}°Aƒø‡�J‹LÅ I‹1ÿºH�5zL‰�@ÿÿÿH‰�HÿÿÿH‰E�è‹üþÿH‹U�M‰øL‰îL‹�@ÿÿÿH‹�HÿÿÿH‰Ç1Àèy½é|à¸éaàH‹+Ãx@…µA¶Giº ƒàH£Â’À„À…|àé*àºH�5pz1ÿL‰�HÿÿÿD‰E�è üþÿD‹E�º@H�=ŠÊH‰Á¾1Àè;ÿÿH�=tÊL‹�HÿÿÿH‰ùé"ÿÿÿºH�5�1ÿL‰M�è¾ûþÿE‰øº@L�=ÿÉH‰Á¾L‰ÿ1ÀèíÿÿL‹M�éªþÿÿAƒ~†Øßé†ß¸é�ßL‰ÒL‰îH�=ÂèøÿÿH…À•Â1ÉI9Ç•Á!ÑéÂÞ¹é¸ÞH�º¦¾#H�=Xè2WóúUH‰åSQHƒ=ß¾u¾�H�=éWèÌU‹w0H‰ûƒþÿtH‹èÿþÿÇC0ÿÿÿÿZ1À[]ÃD‰ÿI‰Ýè úþÿA‹D$¨…p-H‰ÙéŒ-H‹=ÄÁºH‰ÞH‰M è³ÿÿH‹M H…ÀH‰E¨„k-I‹|$H…ÿukM…ö…M‹|$M…ÿ…E1ÿL9넇L‰ïH‰M èiöþÿH‹M H9Ù…wH9]¨…zH‹EÈdH+%(…uHƒÄ8L‰ø[A\A]A^A_]ÃM…ö…_A‹D$¨t&H�u°H‰M L‰m¸èêÿÿH‹M H…ÀI‰Ç…ÛA‹D$¨…�¨„MÿÿÿH‹E¨I‹|$H�u°H‰M H‰E¸è«ÿÿH‹M I‰ÇM…ÿ„#ÿÿÿI‹H‹u¨H‰M èŠýþÿH‹M …À…ÿÿÿA¶Gƒà8< „—M‹?ëÅA¶V€â…ìþÿÿM‹>ééþÿÿI‹H…ÿt7€?*„ÑA¶Gƒà8< „Ì<…ä1ÒH‰ÎH‰M è»úþÿH‹M …Àt„À…ÚÐH‹}À�áIDþH‰}ÀM‹v ëÃD‰ø÷Ш„�Ðé²ÏA‹†˜ésÿÿÿ€âtL‰uÀ¸ëÌépÐA‹–˜ë˜é�ÐAöÇtÜévÐ�ã@„ÿÿÿH‹EÀƒ}ÌIDÆH‰EÀéÿÿÿ‰øD)ÀL‹téCÓH�޾5H�=ÀZè¸>éÄÓL‹éAÓH‹3L‰EÀL‰MÈèzæþÿL‹MÈL‹EÀH� Ã�éïÒI‹‚L‹H M…É…ÔM‹ éÿÓI‹ƒL‹@ M…À…½ÓM‹éµÓL‰ÐL Øt|M…ÛtI‹G0H‹°L‹F M…ÀtkM…ÒtH‹EÈH‹€àH‹°L‹N M…ÉtPA€}aH‰UÈtJL‰ÆL‰Ïè÷àþÿH‹UÈH� $�L‹…ÀE„³ÑI�Pé—ÑH‹HƒÂé‹ÑL‹é–ÑL‹ë�L‹ë«L‰ÎL‰Çè­àþÿH‹UÈH� ÚŒë´I�PéXÑH‹±�1ÿI‰|$H…ötI‰t$L‰fL‰¡�é 0I‰pé\01öI‰t$L‰¡˜ëÛL‰��é00D‰ÎI‰ÆéÑ,ǃ�1ÀH�{H‰ƒ˜H‹Ñ”H9È‚$+è ~ÿÿH‹¸Ðƒ…:,ö@$…2é+,E1Éé*0H9x8té$0E‰ÈL‰ðA‰ñéˆ/éŒ/I‰xé/1L‰��é1A‰ñL‰ðAºév/èE‡ÿÿI‹NHH�5XH…É„+H‹ é+L‰ÏèþM…ö…Õ*1É1ÒH�5îW1ÿèÓÔé|,L‰‰�M…É„´+M‰AH‹xfHnÀfHnïflÅAD$L‰`H…ÿ…³+L‰¡�é«+I‹D$I‹|$H…Àt5H‰xH…ÿtZH‰G1ÀI‰D$H‹�˜H…ÀtLI‰D$L‰`L‰¡˜ég+H‰¹�ëÆA¹é/L‰¡˜éæ.Aö@$IEøéâ0H‰�˜ë¡E1ÿM‰|$L‰¡�ë¬H‹=­èQÞþÿ‰ÇèJßþÿºH�5fþ1ÿI‰ÄèdßþÿL‰æH‰Ç1Àèg 1ÿ�K$€H‰{@éÒL‰êL‰çèjÒéŽÒI‰øéÓH‹@8H…Àt?Hƒ¸øt-ö@$IEøéôÒE1ÉE1ÀéóÒU¾…H�=ùVH‰åè­9L‰ÇéÌÒL‰ÇéÄÒL‹@@H‰EˆI�xL‰E°èèÚþÿL‹UˆL‹E°1ÉH‹{0H‰ÂH‰E˜L‰ÖL‰E�L‰U°èÃÞþÿL‹U°L‹]˜„ÀL‹E�tcH‹\¥L‰U˜1ÒE1ÉCÆL‰ÞH‹K0E1ÀL‰]°L‰÷ÿP(H‹}°èaÚþÿL‹U˜I‹R`H…ÒtH‹BHI‹J@H9ȃ11ÀA�J$€ I‰B@é;1H‹[0º1ÿL‰U H�5’ýèÞþÿH‹U H‰ÞH‰Ç1ÀèTŒfoM Eˆ}AM(é*11ÿºH�5+ýèÞÝþÿH‰Ç1Àè$Œ1ÿºH�5ýèÁÝþÿH‰Ç1ÀèŒ1öE1ÿE1íH‰u H‰u¨éØ/M‹¤$M…ä…ñ/é 0€?tåH‰U°èžßþÿ¾5‚¥H‹U°H‰ÁH‰ÏH‰U�H‰M°‰u˜èýÝþÿH‹M°H‹U�H…Àuv€9t©E1ÀH�}¸H‰ÎH‰U�D‰E˜H‰E°èПD‹E˜H‹U�E…Àt�¾5'¥H‹E°H�Hë¢H)ÈH‰BHéÃþÿÿóo@(Æ@I‰Å1ÿH‹YˆI‰}0)E H0I‰E(éý.Æ€9‹u˜t·A¸é|ÿÿÿƒÈÿé…уú tƒú…ÒH�{éÒH�{éüÑ�΀‰r$H‹RH…Ò„Ôé®Ó1ÀÃ=§ „…0H‰ÖèUŸÿÿƒÀHÒé~0ÇÜ èoÙ‰ÞL‰çèeÖ¶ñ¢é®Õ¾€H�=1Tèè6L‰-± ëËMéé�8H‹E°ÆéÊ41ÿºH�5¶\èøÛþÿH‰Ç1Àè>Šöƒ¨@„¢5éA9¸D‰ñHÓàN�LÿH÷ØI!Áé+8¾¯H�=¹Sèp6I‹]`ºH�5Ðü1ÿè™ÛþÿL‰êH‰ÇH‰Þ1ÀèÙ‰I‹r0H)ðI‰EXAöB%u H‰ÐH)ðHÓàI‰B@M‰•M‰U`éå4I‹]`ºH�5Òü1ÿèCÛþÿL‰îH‰ÇH‰Ú1À胉H‹C0ºH�5ëû1ÿL‰…hÿÿÿL‰�pÿÿÿH‰E è ÛþÿH‹•pÿÿÿH‹u H‰Ç1ÀèœH‹C8L‹…hÿÿÿéº6¾H�=ÝRè”5H‹Í¡H‹@ƒx„…:L‹EÀéW9L‹EÀéN9L‹k0º1ÿL‰E H�5—ûè’ÚþÿL‰îH‰Ç1Àè•›H‹C8L‹E ‹p$‰ñƒáéð6L‹h@‹ ¨IÓíés2H�牾6H�=ORèG6¾¸H�=>Rèõ4I‹y@‹ ˧HÓïHúE…ö�6é�11ÿèPH‰CXH‰ÇH…À„ /éË3¾€H�=óQèª4M‹mM…턘/é4L‰Àé‚:¾ßH�=ÈQè4I‹G8I‰ÞH‰C H‹CH‰E�ék3I‹G8H‹u¸H‰ñH+H0H‹CH‰KH‹ *§¶@I‹W8ƒàH‰S@ÓøH˜HðH‰E¸öB%…'3H+B0HÓàH‰B@é3I‹E0I+B0I‰EXéÓ2H�ZL‰þL‰�XÿÿÿDˆ�`ÿÿÿL‰•hÿÿÿL‰…pÿÿÿèê,L‹•hÿÿÿL‹…pÿÿÿA‰E|D¶�`ÿÿÿ‰ÁA9B|L‹�Xÿÿÿƒ2A‰J|é2D‰ðƒàƒè…j.é˜6ƒ=ùœ„Ì-L‹c0ºH‹[X1ÿH�5]øè¨ØþÿL‰âH‰ÞH‰Ç1Àèè†H‹ùƒH‹�xÿÿÿH‰ÞH��0èû¹H‹s@H…ö„Ú0é˜0ƒ=ö©…®.€=«žL‹*º…»H�5Àø1ÿè9ØþÿL‰îH‰Ç1Àè<™L‹k@H‹S8éq.€‹¨é¢41öH‰ÏL‰…pÿÿÿH‰M èN¤€=WœH‹M L‹…pÿÿÿt6H‹;œH‹$œH…Òt HB0H‰œH‰ÂH‹C8‹p$H‰P8‰ñƒáé44ƒ=Ý›…«1ÒëÚI‹G8H‰¸ž�H$ éM1H�5½÷1ÿè~×þÿL‰îH‰Ç1ÀèÁ…ö@'„—H‹SH…Òt Hƒ:„¤ºL‹k0H�5D÷1ÿè=×þÿH‰ÇL‰î1Àè@˜H‹C8H‹SH‹Ró~B0€H(flÀ@0ö@%…Ê0H‹R@H‰P@é½0ºH�5�Í1ÿH‰M°èåÖþÿH‹u°H�‰WH‰Ç1Àè …H‹ 1‚L‹U¸H�‘0H9Ð…,éœ5ƒz…RÿÿÿéyÿÿÿóúöG…UH‰åAUATSH‰ûQH‹W(L‹%{�H‹B`L‹*H…ÀtL9 àuH‹0L‰ïè;Úþÿ…À„¼L‰îL‰çèØØþÿH…Àt3L‹ øM…ät'H‹C(I‹4$H‹8èÚþÿ…Àu L‰c(éƒM‹¤$øëÔH‹áœ1ÒÆCH‰S(ƒx@ubH‹òœDŠclºH‰ÞH�=�œH‹@AÀìAƒäH‹€€ÿ�ØöCkuÆCºIÁä$H¸ÿÿÿýïÿÿÿH#ChHÁâI!ÔL àH‰ChX[A\A]]ÃÃ1ÿºH�5ˆ÷è{Õþÿ]H‰Ç1À逖H‹C0H‹8è´ØþÿI‰Äé?ÐH‹sL‰çèPÔþÿ…Àt@L‹k¾/L‰ïèÛÕþÿH…Àu*H�5ÂTL‰ïè7áþÿH…ÀtH�PL‰îL‰çL)êèpÖþÿ…ÀtH‹éîÏÆM¢éÁÏH‹G8L‹6º1ÿH�5 ÷L‹(L‹ àèÔÔþÿM‰ðH‰Þ[H‰ÇL‰éL‰â1ÀA\A]A^]鯕H‹G8ÆFPº1ÿL‹.H�5 ÷H‹L‹ àèŽÔþÿL‰éH‰ÇH‰ÚL‰æ[1ÀA\A]A^]郕A‹|$9ø…%1Àƒÿ†9øƒó‰Â�HHƒÂI‰ÏHÁáHÁâLáLâA9ÿ„™L‹AH‹2HƒÁH‹vI9p…€AƒÇëØH9Ó‚eÐH‰XHéÐH�=¨šÿЄÀ…2Ð1ÿºH�5ðöèÛÓþÿH‰Ç1Àè!‚1ÿºH�5£öè¾ÓþÿH‰Ç1Àè‚1ÿºH�5‘Tè¡ÓþÿH‰Ç1Àèç�D‰ú)ƒúv%‰Ç‰ÖH� XºHƒÇHÁçLçèÝÑþÿA‹|$D‰øéÿÿÿ1À9øsOH‰ÂHÁâA9DuIHƒÀëèé¹Î¶ê™ƒà<…ÉþÿÿH‹[8H�5Ìõ1ÿºèÓþÿH‰ÇH‰Þ1Àè[�9Ç„{ÎHÁçèÏþÿA‹|$I‰ÇHÁçè ÏþÿA‹t$I�T$H‰Ç1À9ðsH‹ D‹BHƒÂK‰ ÇH‹IH‰ ÇHƒÀëßIƒÄ1À9ðs%A9$tI‹ÇH‹ ÇH‰JI‰T$øA‰$HƒÀIƒÄë×è…ÎþÿL‰ÿè}ÎþÿH‹[ ÆEÌH…Û…íÍé ÎE1É‹¦™L�eçD‰ ›™…Û„ÏÇ�™ÿÿÿÿ¿ƒ�™è ²èKÏ1öL‰çÆEçèMÊ€}çuÖƒX™ƒëë¸H‹A½H…ÛtéØ3ƒGé4é4I‹¼$ˆH…ÿ…Ñ4éW4H‹@H…À…GÏÃH‹[H�5õ1ÿºè¯ÑþÿH‰ÇH‰Þ1ÀèòA€<$H‹=Ÿ…7L‰æèØ6é7A€<$H‹{…ò6ëâÃH‹j˜H‹@ƒx…½ÏH�UÐH�5ÑâH‰}ÈèÎþÿH‹}È…À‰�ÏèÐþÿ‰ÇèÑþÿH�5¡ô1ÿºH‰ÃèÑþÿH‰ÞH‰Ç1Àè]H�v€¾•H�=Rèö,H‹@I‹t$(ÿPh¸éÆ7¾H�=ÛQèŽ+1ÿºH�5ˆôè»ÐþÿH‰Ç1Àè¾òH�=­Qè`+¾ÙH�=œQèO+óoCPóoK@H� {]Ç@H‰H(fÆÁÇ@ @éq6L‰æèfÛþÿH…À…¡71ÿºH�5ôè:ÐþÿH‰Ç1Àè€~H‹w@H‹=%—H9¾àt¾¤H�=QèË*¾jH�=Qèº*ö¤– …«6‹S�ú„+‡¥�ú„½�ú†™L�uÐL‰öèT×þÿL‰÷è<ÐþÿH‰ÇH‹¢–é[6‹F$öÄu ÷Щ…›5è“ÚþÿI‰ÄH…Àt\H‹CHH‹=p–¾I‰D$H‹C¶@ƒàI‰D$èaÏþÿI‰D$ H…ÀtE‹SH‹K(‰H‹S8H‰PH…ÉtLAÇD$H‰Hé251ÿºH�5Ùòè ÏþÿH‰Ç1ÀèR}1ÿºH�5¼òèïÎþÿH‰Ç1Àè5}H‹K H‹5Ú•AÇD$H9±àt H‹q`HQXH‰PH‰péÆ4L�uÐL‰öè'ØþÿL‰÷èÔþÿH‰ÇH‹••éN51ÿºH�5Jòè}ÎþÿH‰Ç1ÀèÃ|1ÿºH�5-òè`ÎþÿH‰Ç1Àè¦|÷Щ…\4é¦4¾3H�=@Oèó(�ú„å4H��}¾fH�=Oè*L�uÐL‰öèsÓþÿL‰÷è;×þÿH‰ÇH‹ñ”éª4H‹H…À„o7H9PH…e7ƒ¸¬x]L�`éÀ6H;PH…E7ƒ¸¬y~H‹H…À„07ëß‹J$A3M$€áu]L‹"L�5}“1É1ÒL‰÷L‰æè.ÒþÿH…À„7éQ6H‹H…À„ó6H9PH…é6ƒ¸¬y„H‹H…À„Ô6H;PHtåéÉ6‰Ãé¾6HƒÀéY6óúH‹I‰øI‰ñH‹@H‹�àH‹J1ÒƒyuH‹€ÐH‹��I‹H‹@H‹ˆàH‹Iƒyu$H‹€ÐH‹¸�H…ÒtH…ÿu#ƒÈÿH…ÿ…š¸H…Ò…ŒA‹@A+AÃUƒÈÿH‰åATSH‹Z`L‹_`H‹JXL‹S8H‹wXM‹c8IÊIôM9ârQM9ÔrGDŠ“AƒâA€útH‹R@H‹@H9úr.¸H9×r$HK0Is0ƒÈÿH9ñrH9Îr A‹@A+Aë¸[A\]ÃÃóú‹Wf�âÿfƒúuuH‹O€9.u.€yiufH‹W(‹ –™H‹R@HÓêH‰W0H‹LwH�Â0H‰W(ÃH‹Ñ’H‹w(H‹RH‹v`€zH‰w(•¶҃ÂHcÒ€<ouH‹V@‹ A™HÓêH‰W0ÃóúH‹5�H‹=�é¸H9÷sËI‹RƒÈÿ9Ñrò1À9Ê’ÀÃH‹…xÿÿÿB€|0þ t7MöH‹½xÿÿÿL‰öèAÌþÿM9þL‰þICöH‰…xÿÿÿL)þIÇéoÊIƒÁééÊéªÊHƒêI9Ñt€zÿ/tñI‹<$L)ÊI‰×H…ÿ„‹I‹D$I‹T$I�tH9ÖsIH�PI‰T$¶Ü’ˆI‹|$L‰úI<$L‰ÎèZÏþÿI‹T$I‹$LúI‰T$ÆéƒÊL‰ÊéËJ�´:L‰�hÿÿÿI‰t$èËþÿL‹�hÿÿÿI‰$H‰ÇI‹D$ë‰H�ºL‰�hÿÿÿI‰|$èrÆþÿL‹�hÿÿÿI‰$1ÀI‰D$émÿÿÿÆA¶„À…ËM‰ñéÇÊH‹½`ÿÿÿ¾/L‰�hÿÿÿèËþÿL‹�hÿÿÿI‰ÅL‰ÏL‰�@ÿÿÿè#ÊþÿI‰ÃH‹…`ÿÿÿL‰�HÿÿÿI)ÅK�LIƒÅH‰ÏH‰�hÿÿÿèçÅþÿH‹�hÿÿÿH‹µ`ÿÿÿL‰êH‰ÇH‰…hÿÿÿH‰�PÿÿÿèÐÍþÿH‹�PÿÿÿL‹�HÿÿÿH‹…hÿÿÿH‹µ@ÿÿÿL9éI�SIBÍJ�<(L)éè�ÍþÿL‹�hÿÿÿécÊM�qé,ÿÿÿóúH‹M�H‹@ƒx•À¶ÀøH9÷r ‹I‹RƒÈÿ9ÑsÃ1À9Ê’ÀÃL‰%�šéêËI‹E1ÒH‹ ŽH‰I‹EH‰ÊH+ü�HÁàH9‚foß�Hà�foÈfI~ÇflÈ)M€L9ø„ÙH‹×�H‰ÏHÐH÷ÒH!ÐH‹œ�H‰ÆH)ÖH)×H9÷HBÁ1ÒfHnÀflÀ)‚�I‹EH…À„¿H‹0‰ÑH‹@ƒÂI‰4ÏëåH‹=4�H‰ÚH�5i è-ÏþÿéËL‰ïèpÈþÿ�xèÈÒL‹kH1ÿº‹ Ç•H�5PIIÓíèÈþÿL‰îH‰Ç1Àèûêé�Ê1ÀE„íL‹5r™LDàé.ÊèÜÎ1ÀéíÉ€ �éÿÿÿH‰ÆH�=¿ŒH‰E˜èf H‹ ÏŒH‹E˜éÏþÿÿI‹uºH� L‰ÿèÆþÿ1Ò‰ÐI;Es@I‹<ÇH‰Þ‰U˜èœ ‹U˜ƒÂëáH‹@(H‹€àH…À„ÀÊ‹@D÷Щ…°ÊéwËL9=EŒsL;=TŒsfoU€)6ŒéðÉL‰þH�=Œèb éÜɺH�5ë1ÿè ÇþÿH‰Ç1À舸éÐÍ1ÀéÆÍMgXé ÍH�5ODH‰ßè·Êþÿ…ÀtRH�5YIH‰ßèÄk„À„‹HƒÃE1í¾;H‹ ëq@¶×‰øöDQt ¶SöDQul<-uZHƒÃ€;uÑé\Ï1öH�=âGè³Îþÿ‰Ã…ÀˆDÏIc×L‰æ‰Çè ÉþÿH‹EÈdH+%(u!H�ÄØ‰ß[A\A]A^A_]éEÈþÿ<:t¢è|ÃþÿègÆþÿèGO�4,L�{IƒÅÁàAˆ¾{L‰ûˆ…ÿÿÿè#¶•ÿÿÿ ÂAˆébÿÿÿóúŠGƒè<‡UH‰åATI‰üSH‹G(H‹�àH9¿Œ„ßH…Ò„ÖH‹˜˜H…Ûu%¿èš@H‰ÃI‹D$(H‰˜˜1ÀH‰[H‰Cë Hƒ{uH‰[H‹}ŠH+nŠHƒøw¾H�=DŠèï H‹PŠH‹AŠHƒÀH9Ðu€ qŠH‹ JŠH‹5ŠHÈH÷ÑH!ÈH‹ #ŠH‰ÇI‰ÈH)÷I)ðI9øHBÁfHnÀflÀ)ð‰H‹CL‰"H‰HƒÂHÿCH‰S[°A\]ðÃUH‰åSH‰ûQ�?uH‹w1É1ÒH�=`Šè[ÉþÿH…Àu 1ÀZƒà[]ö@ 8£ˆuëH‹SH‹=†‹E1À1ÉA¹H�5$‹èŸÂþÿH…ÀtÄ·Pf�âÿf�úu´H‹»oH�Â0H9P(u Hƒx0”À¶Àë•H‹šoH� £•L‰þH��0蜥éÐH‹hˆH‹QˆH…À„*Ñé!ÑÆTˆH� �Eé;ÑH‹IoH�Â0é–ÐI‹Gƒxt×H� ^EéÑE1ä€zA”ÄécÐH�=¨E1Àè‘æéêÎH�=£E1Àè~æéâÎH�=OF1ÀèkæéêÎH�=AQ1ÀèXæéâÎH�=.Q1ÀèEæéÚÎ1Ò‰UœéÑH�=Q1Àè(æƒmœé—ÑH�=þ1Àèæé„ÑH‹0H�=ÿD1ÀèûåI‹EL‹@M…Àt6I‹0H�=ü!1ÀL‰E�èÙåL‹E�M‹@ëÜH�=æD1ÀèÁåƒEœé ÑH�=¾D1ÀèªåéÑ1ÿºH�5Eè¢ÂþÿL‰æH‰Ç1Àè…åéqÐè{É1Òé,ÐH‰õ“H�] éÄÏH‹ …Šº ¾H�=ÞDL�%åDèÀÌþÿI‹_L‹+IÝH‹WŠI9Ý„U¶KH‰ÇL‰â¾1ÀHƒÃèœÌþÿëÔH‹(èοè—ÌI‹G(M‹g0H…ÀtL`0A‹G-ƒøwH�õnHc‚HÐ>ÿàH��p¾½H�=È9èÀH�4C¸‹ M�»M‹G L‰æH�=/DÓãH9ÃHBØH‰ØHÓèH‰ÑH‰Â1ÀènäI‹Gƒx…ëè[È‹ �H‰ØHÓèLàH‰Í’é{ÍH�ËB¸ë�H�ÃB¸ë�H�¤B¸épÿÿÿH�£B¸é_ÿÿÿºH�5ÀB1ÿèÿÀþÿH‹=‰¾D‰áH‰Â1ÀèfËþÿ¾´H�=Þ8è•H‹EÈdH+%(…HƒÄHH�=!C1À[A\A]A^A_]é–ãH‹@è�Ì¿è#ËI‹G@M‹gHH…ÀtL`0I‹W‹ ŽL‰æH�=C¶BH‰ÃH‹B ƒãH‰ÚHÓêH‰Á1Àè@ãI‹w(H…ö„ä1ÀH�=ñBè%ãI‹0èÌÒèÇ‹ Á�H‰ØHÓèLàH‰‰‘é7ÌH‹ èóË1ÀH�=µBèåâ¿ è{ÊI‹G M‹gH…ÀtL`0‹ t�I‹WL‰æ1ÀH�=‡BHÓêè¬âI‹_(L‹+M…íu!è›ÆI‹G‹ A�HÓèLàH‰ ‘éºËHƒÃL�5B¶ H‹=’‡L‰ò1À¾HƒÃèçÉþÿIƒíuÝë¯I‹G H‹0éÿÿÿ€H�5ü@H�î@H‹WHEðH‹EÈdH+%(…tHƒÄHH�=CB1À[A\A]A^A_]éúáH‹_º1ÿH�5DAèó¾þÿH‰ÇH‰Þ1ÀèÖáI‹è}ÑH‹EÈdH+%(…HƒÄH[A\A]A^A_]é§ÅH‹S8H‹E1äH…Ò„ŠélËH‹pH‹=k…1É1ÒA¸è¤ÁþÿH� @H…À„Ç˶Pƒê€ú‡·ËH‹H(H�u£H�] ÆE¢xH‹=M…fÇE [0H‹QXHP0H‹A`HP0èBÇþÿº H�58H‰ßènºþÿéiËH‹ziH��0éÔÊHƒ=~‹„#Ê€= ‰…¼H�=Â?1ÀèÍàL‹%V‹M…ä„L‰çH‰Þè¢ÈM‹$$ëæH‹ Í…º ¾H�=´@èÈþÿM‹gM…ät)L‰çH‰ÞèkÈM‹$$ëê¿è ÈI‹èÐéýûÿÿH‹EÈdH+%(…¨H‹ k…HƒÄHº ¾[H�=Z@A\A]A^A_]éŸÇþÿH�=ð>1Àèàé?ÿÿÿH‹EÈdH+%(u[H‹OH‹=…HƒÄH1À[H�å?A\¾A]A^A_]éaÇþÿH‹UÈdH+%(u HƒÄHH‰Æ¿ [A\A]A^A_]é¿þÿéÝÈèí¼þÿH‹0H�=�>1ÀèŒßI‹GHL‹`M…äuH�=…>1Àèqßé¿ÇI‹4$H�=y1ÀèZßM‹d$ëÏÃ1Àé,Ì1Àé%Ì1ÀéÌH‰ßè»þÿ‰Çè¼þÿH�5¯à1ÿºH‰Ãè(¼þÿH‰ÞH‰Ç1ÀèkjH‰ßèãºþÿ‰ÇèÜ»þÿH�5Íà1ÿºH‰Ãèö»þÿH‰ÞH‰Ç1Àè9jóúUH‰åSH‰ûAPH‹ÜH‹€H…ÀtY[]ÿàŠGƒè<wDH;w(u>¿è9ÆH‹C(H�=Ô>H‹pXH‹@`Hs0Hp01ÀèwÞH‹sH�=º>1ÀèeÞZ°[]ÃóúU1É1ÒA¸H‰åAWAVAUI‰ýATSHƒìH‹wH‹=‚è]¾þÿH…Àu)I‹]1ÿºH�5n[è!»þÿH‰ÇH‰Þ1Àè$|é„H‰ÃŠ@ƒè<wwH‹C(H‹@`H…ÀtjH‹L‹% �H‰EÈM…ätWM‹t$M…ötBI‹~H‹uÈ諾þÿ…Àt A€|$t/ë'M‹} M…ÿtíI‹OH‹S(M‰à¾H‹{è{ÊM‹?ëÝM‹$$ë©M‹6ë®HƒÄ°[A\A]A^A_]ÃH�5ëZ1ÿºègºþÿH‰ÞH‰Ç1ÀèªhI‹EH‹}ÈH‰ÞH‰E¸A¶E ˆEÇèÅþÿH‰ÇH…ÀxL„ËèK¶þÿI‹MH‹}ÈH‰ÞH‰ÂI‰ÇèÕÃþÿH…Àˆ�M�ÇM‰úM9Úr7H�eØL‰ÿ[A\A]A^A_]éêµþÿH�5;Õ1ÿºè×¹þÿH‹uÈH‰Ç1ÀèhI‹H…ÒtÁH‹H…Àt1H‹H…Àt)€}ÇtMH‹5 eH‹H H�ÆH9ñtIöA%uCö@‚u=IƒÂézÿÿÿH�5ÐÔ1ÿºèl¹þÿH‹uÈH‰Ç1Àè®g÷@tÍH‹H I9MuÃH‹u¸H…öt}H‹@L‰]˜L‰U H‰ÇH‰U¨H‰E°è½þÿH‹U¨L‹U …ÀL‹]˜uŽH‹J1ÿºL‰]˜H�5ÞL‰U H‰M¨èó¸þÿH‰ÚM‰àH‰ÇP1ÀAVH‹M¨L‹M°H‹uÈèäyZL‹]˜L‹U Yé=ÿÿÿö@„3ÿÿÿH‹@H‰E°ë›óúUH‹=¥H�5NH‰åèf»þÿ…Ày1ÿºH�5ŒÚè¸þÿ]H‰Ç1Àé„y@•Ç]@¶ÿéf³1ÀH‰C1ÀéRÊHÇFéýÉóúUI‰úH‰åAWM‰ÇAVI‰ÎAUE‰ÍATI‰ÔSH‰óHƒìHH‹HdH‹%(H‰EÈ1ÀH…ÿu€=üt)H‰ÞL‰×èÈë1É1ÒL‰U˜èš¼þÿH…À…DL‹U˜ëÎH‹D‰H…ÒtH‰ÖH‰ßH‰U˜è »þÿH‹U˜…Àuÿ‰ë1ÉH‰×‰ ‰è ³þÿH‰ß踹þÿH‰‰L‹¢yM…À„·ƒ=戇ª1ÀL� ß:€=Œ}L‰E¨L‰M°H‰]¸H‰EÀt2ºH�5öÈ1ÿL‰E˜è;·þÿL� ¨:H‹u˜H‰ÙH‰ÇL‰Ê1Àè0xH‹=1yH�M H�U¤H�u¨èþH…Àt9H‰E�H‹yº1ÿH�5âÈH‰E˜èá¶þÿH‹u˜H‰Ç1ÀèãwH‹}�調þÿ‹0ˆM…ötzƒøwºH�5ÜE„íu&H�5"Üëƒøu`ºH�5?ÜE„íuH�5kÜ1ÿè|¶þÿH‰ÇH‹EÈdH+%(…ØHƒÄHI‰ØL‰ùL‰ò[L‰æ1ÀA\A]A^A_]éUwƒøv=ƒøtRE„í„•H‹EÈdH+%(…‘HƒÄHH�=™91À[A\A]A^A_]éwºH�5ÜE„íu!H�5CÜëºH�5eÜE„íuH�5‘Ü1ÿèʵþÿH‰ÇH‹EÈdH+%(u*HƒÄHH‰ÚL‰æ1À[A\A]A^A_]é­vH‹EÈdH+%(tèɵþÿHƒÄH[A\A]A^A_]Ã1öèsÉH‹KH…ÉtQH�$9H‹=t}[¾1ÀA\]éÌ¿þÿH‹ ]}º¾H�=æ8蟿þÿH‹{èÆÇH‹K H�Ö8ë¶[A\]ÃH‹{è«ÇH‹5}¿?èZ·þÿH‹{ è‘ÇH‹5}¿:è@·þÿH‹[(éˆÇ1ö¿5èËȺH‹ ×|¾H�=]8è¿þÿH‹{ èEǺH‹ ±|¾H�=;8èø¾þÿH‹{èÇH‹5�|[¿)A\]éʶþÿ‹;1öèaÈHƒ{„=ÿÿÿH‹ g|º¾H�=ö7ë¯H‹=M|H‹K¾1ÀH�¾7èž¾þÿH‹{ ë”H‹CH‹°àH…öt1ÀH�=À*èêÖH‹CH‹S H‹0H�={71À[A\]éÍÖ¾H�=@-èŒ[H�=L7A\1À]éªÖH‹[_H‹H‰Á{écÆD‰éH�a7¾1Àè¾þÿéìÇóúUH‰åAWAVI‰ÖAUATI‰ÌSARƒ=)_ÿH‹UH‹M„_1ÀI‰ÿH‰óL‰ÎH�=7M‰ÅèQt‹û^…Àx&�Pÿ‰î^u1ÿºH�5Úè³þÿH‰ÇéH…Û„ºŠC�Pú€úwH‹[(ëï<w4„À„…H‹[1ÿºH�5ÚèÔ²þÿL‰æH‰ÇH‰Ú1ÀèÔs锃è<wRH‹^L‹s(H0I9ÆuM‹PëM‹¾àH‹[1ÿºH�5Úè~²þÿM‰øL‰ñL‰æH‰ÇH‰Ú1Àèxsë;H�a¾2H�=`.èOºH�5Ú1ÿè;²þÿL‰òL‰æH‰Ç1Àè;sM…ítL‰îH�=ó51Àè%sH�= ?Z1À[A\A]A^A_]é sX[A\A]A^A_]ÃóúUH‰åAWAVAUATSHƒìH‹‡H‹5]H‹€¨ H�Â0L‹`@L‹p8I‹D$`H9Ðu$ºH�5©Ù1ÿèš±þÿH‰Ç1Àè r°éêL‹¸ÐI‰ýI‹|$@I‹_HH…Ûu"Iƒ¼$ u è�­þÿI‰„$ I‹œ$ ëI\$XI‹D$@L�CH‰ÞL‰ÇL‰EÀH�Pð1ÀH‰ÑH‰UÈóª¿I‹Eÿ�˜I‹EH‹}ÈH�sÿ�˜I‹EH�s¿~þÊÿ�˜ÇC FDOL‰÷è±þÿH‹}ÀL‰ö1ÒH‰Áó¤L‰ïI‹t$XIwM‹t$@è!½þÿ‰Â1À…ÒuL‰êL‰öH‰ßè›®þÿL9ð”À¶ÀƒàHƒÄ[A\A]A^A_]ÃóúH‹H‹P0H‹H‹H0ƒÈÿH9Êr1ÀH9Ñ’ÀÃ1À¶„ÒtH‹ Ü[ŠˆHÿÀëæÆÃóúÃóúÆ-xÿ%žxóúÃóúU1ÿH‰åAVM‰ÆAUI‰õH�5nØATI‰ÌSH‰Óºè°þÿM‰èL‰ñL‰âH‰ÇH‰Þ1À[A\A]A^]éõpóúU1ÿH‰åAVM‰ÆAUI‰õH�5BØATI‰ÌSH‰Óºè·¯þÿM‰èL‰ñL‰âH‰ÇH‰Þ1À[A\A]A^]é©póú€°uuUH‰åAVI‰öAUATSL‹gH‰ûH‰÷è ¯þÿA€<$@LcèuA€>_uÿÈI�vI�|$HcÐèݬþÿ…ÀtL‰êL‰öL‰çèˬþÿ‰Â°…ÒuC€<,@°u H‰“~1À[A\A]A^]ÃÃóúUH‹?H‰åèç²þÿ]…À”À¶ÀÃUH‰åAWI‰ÿAVI‰ÖAUM‰ÅATI‰ÌSHƒìH‹i|H…Ût L9{tEH‹ëð¿(‰uÌèܪþÿ‹uÌfInÏ1Éó~:|H‰HH‰ÃH‰,|flÁ‰pH‰H é†9stI‹_ºH�5,×ëMH‹S H…ÒtfI‹„$àH…ÀtYH‹RH‹’àH…ÒtIH‹RH‹@H‹2H‹8è²þÿ…Àt2I‹_ºH�5×1ÿè®þÿHƒÄH‰ÞH‰Ç[1ÀA\A]A^A_]éo¿ èªþÿ1ÒH�K L‰pL‰`L‰hH‰H‹S H…ÒtH‰ÑH‹ëóH‰HÿCHƒÄ[A\A]A^A_]ÃóúUH‰åAWAVM‰ÆM‰ÈAUA‰ÕATI‰ÌSH‰óHƒì€=†ut,L‹~º1ÿL‰MÈH�5’Öèu­þÿL‰þH‰Ç1ÀèxnL‹EÈ€=Put1ÒL‰ñD‰îH‰ßèNþÿÿ€{uÆCL‰c(HƒÄ[A\A]A^A_]Ãóú€=ksH‹H‹t H‹rH‹xéî°þÿH‹rH‹xéá°þÿUH‰åATI‰ôSè¹þÿH…Àt#L‰çH‰Ãè­þÿ1ÒHØŠ „Étˆ HÿÂëñÆ[A\]ÃUH‰åAVI‰þAUI‰õATSè߬þÿH�xèÆ¨þÿL‰ïI‰ÄèˬþÿH�x貨þÿL‰öL‰çL�5f0H‰ÃèüÿÿL‰îH‰ßL�-e0èþûÿÿL‰öL‰çè_ÿÿÿL‰îL‰çèTÿÿÿL‰öH‰ßèIÿÿÿL‰îH‰ßè>ÿÿÿ1ÀAŠA‰Å:u HÿÀ„ÒuíEkí L‰çè¨þÿH‰ßè¨þÿ[D‰èA\A]A^]ÃóúUH‰åAUATI‰ôSH‰ûQ‹Trƒøu ƒ t馃øu ƒ …—A‹D$9C…‰L‹+H�5”/L‰ï葯þÿ…ÀtsH�5‹/L‰ïè~¯þÿ…Àt`H�5‚/L‰ïèk¯þÿ…ÀtMH�5|/L‰ïèX¯þÿ…Àt:Hƒ=Üxu H‰Óxë'I‹4$L‰ïè�þÿÿI‹4$A‰ÅH‹·xH‹8èzþÿÿA9ÅÐZ1À[A\A]]ÃóúUH‰åATI‰ÌSHcÚH‹9HƒÃDHÁãH‰Þè ¬þÿH�“€÷ÿÿH‰ÙH�5k H9ÓI‰$H�<[HBÊA\]H)Ѻ€é ¯þÿH‹V@¶×f‹P¨t�GÐè€t�GÉèt�G©ÃUH‰åèû§þÿóúUH‰åAWA‰÷AVM‰ÎAUI‰ýATI‰ÔSH‰ËHƒì8L‰E¨dH‹%(H‰EÈ1À€=art H�5|Ó1ÿºèXªþÿL‰æH‰Ç1Àè[k€=7r„I‹}P¾bè°ªþÿH…Àu:AŠEƒà<u1ÿºH�5ZÓè ªþÿH‰Ç1ÀèSX¾bH‰ßèvªþÿH…ÀtÑH‹CH�u¹Š@„Àt ˆE¹H�EºëH‰ðE„ÿtH¹__CTOR_LH‰H¹_LIST__H‰HëHº__DTOR_LH¹_LIST__H‰H‰HI‹}(A¸¹ºè ¬þÿH‰ÇH…ÀuºH�5„®èg©þÿH‰Ç1Àè­W€xuÆ@H‰X(H‹M¨M‰ðL‰â¾bè>úÿÿH‹EÈdH+%(tèg©þÿHƒÄ8[A\A]A^A_]ÃóúUH�5-1ÿºH‰åèý¨þÿ1ö]H‰Ç1Àéõ…ÿÿóúUH�5-1ÿºH‰åèÕ¨þÿ1ö]H‰Ç1ÀéÍ…ÿÿóú¹é ‹óúUH‰åAVL�5á,AUL‹-HTATI‰ôSI‹uH‰ûH�=º,èÇ©þÿI‹EI9Ür¿ H‰ÇL‰ò¾1ÀHƒÃèå²þÿëÜ[H‰ÆA\¿ A]A^]鮪þÿóúUH‹êSH‰ù¾H�4H‹81ÀH‰å覲þÿ¿è|²þÿóúUH‰åATSHƒìdH‹%(H‰Eè1À€=‡rtA¿ èË©þÿ‹EiH�îhH�5,ƒøƒÐÿ1ÿH‹ºèÁ§þÿH‰ÇH‰Þ1ÀèV¶H‹êRI‰üH‰óI‰ÐöPuH�]㺾1ÀH� Ý+H‰ßè̳þÿ1ÿºH�5îÐèi§þÿ1öL‰áH‰ÚH‰Ç1ÀèghH‹EèdH+%(t胧þÿXZ[A\]ÃóúUH‰åAUI‰ÕATI‰üSH‰óQ€~u I‹U0L9ã”Á1ÀH…Òt$1ÀHƒºè•ÀëH‹rH�{èâ�…ÀtÏ1Àë-8Átø°L9ãt"H‹‚èL‰çH‹0Æèº�Šm…Àˆ”ÀZ[A\A]]ÃóúUH‰åATSH‰ûHƒì dH‹%(H‰Eè1ÀH…öu+L�eÔA‰Ð¾ºH� °*L‰ç迲þÿL‰ç臨þÿH‰ÆH‹EèdH+%(tè�¦þÿHƒÄ H‰ÙE1ÉE1À[1ÒH�=IqA\]éáqóúUH‰åATI‰ôSHƒHH‰ûu7¿(è/¢þÿº¹=H‹5.QH‰CHH‰Çè2©þÿºH�5V`„Àt'H‹{H¹ºL‰æè|ªþÿH…ÀuºH�5Ãa1ÿè´¥þÿH‰Ç1ÀèúS[A\]Ãóú€uJUH‰åSQH‹öPH�˜0H9_(t1Àë(°öGt H‹w1É1ÒH�=kèªþÿH…ÀtÛH9X”ÀZ[]Ã1ÀÃóúH‹Kiÿ`óúUºH‰åATA‰ôH�5†)SH‰û1ÿè¥þÿD‰âH‰ÞH‰Ç1Àè\SóúUH‰åATSHƒt¾KH�=Éè©ÿÿÿH‰ûI‰ôH‹wºH‹=ÓkèάþÿH‰CH…ÀuH‹CH‰CI‹$H‰HƒÀI‰$°[A\]ÃóúH‹\hH…ÀuU¾ÜH�=bH‰åèBÿÿÿH‰x01ÀÃóúUHƒ=.hH‰åu¾©H�=5èÿÿÿès¦þÿ1öH‰ÇèɺH…Àt€Ha€1Ò‰Ð]ÃóúUHƒ=ègH‰åu¾·H�=ïèÒþÿÿè-¦þÿ1öH‰ÇèSG1À]ÃóúUH‰åAUI‰ÕºATA‰ôH�5‘ÍSH‰û1ÿPèÕ£þÿL‰éD‰âH‰ÞH‰Ç1ÀèÒd1ÿºH�5-(诣þÿH‰Ç1ÀèõQóú1ÿé* óúUH‰åSHƒìdH‹%(H‰Eè1À1À‰Eä‹YƒøÿucH�]äE1À1Ò1öH‰ÙH�=Ù è„®þÿH…ÀuE1ÀH‰Ù1Ò1öH�=Ó'èi®þÿ‹EäƒøÿuH�ÊQ¾ H�=½'èÿÿÿ…À•À¶À‰¯XH‹UèdH+%(tè7£þÿHƒÄ[]ÃóúUH‰åèIÿÿÿ¾H�=Uè;H�u'€ te ]H‰¬UH‹ ·Æ jH‰ÿiÃUH‰åAWAVI‰öAUATI‰üSHƒìèðþÿÿL�=3X1ÛM‰ýIƒ?„ƒI‹GH‰EÈ1ÀA€$t èÄþÿÿÿÈ•À¶ÀH‹uÈL‰çIƒÇ(HÆè#¦þÿ…ÀuGHcÛH�5ò&L‰çHkÛ(IÝM‰uAÇE èú¥þÿ…Àu=èwþÿÿL�%º&…ÀH�²&LDàéiÿÿÿÿÃésÿÿÿH�rP¾öH�=}&èÚýÿÿHƒÄ[A\A]A^A_]ÃU1ÒH‰åATI‰üSH�uàHƒìH‹ÿLdH‹%(H‰Eè1ÀH‹;èHŸþÿL‰çH‰ÆèçþÿÿL‹eàL;#u H�5]Ë1ÿºèq¡þÿL‰æH‰Ç1Àè´OL‰#H‹EèdH+%(tè�¡þÿXZ[A\]ÃUH‰åATI‰ôSèmÿÿÿH‹€LH‹Š<,uHÿÃL‰çH‰[A\]éKÿÿÿ„Àt H�5Ë1ÿºèþ þÿH‰ÞH‰Ç1ÀèAO[A\]ÃóúUH‰åAWAVAUATS‰ûHƒìdH‹%(H‰EÈ1Àè'ýÿÿ�»Óþÿÿƒÿ@‡¬H�ûMHcºHÐ>ÿàH‹êKH�5•H‹;è ©þÿH‰´gH…À…^H‹H�5=%1ÿºèe þÿH‰ÇH‰Þ1Àè¨NH�5;%H�=L%èÿþÿÿé#H�5T%H�=f%èçþÿÿé L‹%qK¾:L�mÀM‹4$L‰÷謠þÿH…ÀH‰Ãu L‰÷è, þÿ‰Ãëk1ÒH�xL‰îèjœþÿH�=1%H‰Æè5ýÿÿH‹}À€?.uHÿÇL‰î1ÒèEœþÿH�=(%H‰ÆèýÿÿH‹EÀ€8t1ÿºH�5ßÉ蚟þÿH‰Ç1Àè `D)óI‹<$1ÒL‰îèÿ›þÿH‹UÀŠ €ù:”„É”ÁÊtH=ÿÿvoM‹4$L�-GE1äHcÛM‹}M…ÿt)H‰ÚL‰þL‰÷èÊœþÿH� #…ÀuA€<t)AÿÄIƒÅëÎH�5�É1ÿºè ŸþÿL‰öH‰Ç1ÀèOMMcäIÁäB‹D!HcðH�=o$‰kTè8üÿÿé¼H�=f$èýÿÿé«H�=j$èòüÿÿéšH�=þ#èáüÿÿé‰H�= $èÐüÿÿéxH�=L$è¿üÿÿégH�=S$è®üÿÿéVH�=Z$è�üÿÿéEH�=\$èŒüÿÿé4¾H�=\$èšûÿÿéH�=ñ"èeüÿÿé Ç€oéþE1ÛD‰µSéïǦSéàÆ–SéÔÆŠSéÈH‹.IH‹8èöŸþÿH‰'oé­ÇoéžH‹I1öH‹8è©¥éˆÇënéyH‹ßH¾H‹8è�¥é`H‹ÆH¾H‹8èh¥éGǦné8Ç“né)ÇØRéE1ÒD‰ÉRé ÇbnéüÇOnéíÇhnéÞE1ÉD‰ YnéÏH‹5HH‹8èýžþÿH‰né´E1ÀD‰_Ré¥Çdé–1ÿ‰=dé‰Çøcéz1ö‰5ëcémǰmé^ÇRéO1ɉ øQéBfƒ çQ fƒ ßQ@ÇÑQé#1Ò‰ÄQfƒ%ÀQ¿fƒ%¸Qßéf� ªQ€éøf�%œQÿéêf� ŽQéÜf�%€QÿþéÎf� rQéÀf�%dQÿýé²f� VQé¤f�%HQÿûé–f� :Qéˆf�%,Qÿ÷ë}f� !Q ërf�%Qÿßëgf� Q€ë\f�%QÿëQH‹=�lèb—þÿ1ÀH‰�lH‹¢FHƒ8u H� ±H‰H‹H�5þH‰ßèŸþÿ…ÀtH‰ßèD�þÿH‰El·5¦PH�=.!èdøÿÿ°ë1ÀH‹UÈdH+%(tè0›þÿHƒÄ[A\A]A^A_]ÃóúUH‰åAUATSRö|at1ÿºH�5TÅè·šþÿH‰Ç1Àè½[ŠWaH�+÷Шt1ƒ=÷k‹PH�öuH‹XH…Ût HƒÀ9PðuîëH�ÁHèÊöÿÿ…Àu-H‰ÙOöau€=±[uH‰ßè/BX[A\A]]éSnH‰ßè[šþÿH�xI‰Äè?–þÿH‰ÞI�T$Æ_I‰ÅH�xL‰ëè%¡þÿë£óúL‹xE1Ò¶¾ A¶9Èt)ÈÃHÿÂ…ÀuåÃóú1Ò1À¶ H�r…ÉtiÉHÈH‰ÂHÁêH1ÐH‰òëÜiÒHÂH‰ÐHÁèH1ÐÃóúUH‰åAWAVAUATSQèéõÿÿƒ=LOunŠ$`1Àƒâ€útPHƒ=JOu¸HÁà€úu8¸HÁàƒ=ªjt&H‹=)LèZÿÿÿºÿÿHÁâHÁàH!ÐH�êÿ?HÐH‰ÓNH‰Oж_ƒà<„øH‹ô\H��NE1íH�xè�YHƒ;„™L‹cL‰çè >L‹sI‰Ç1À€{$t èõÿÿÿÈ•À¶À1ÒI�<L‰þèÁbH‰Çèùf‹Sƒúu H‹fD‰"ë2ƒúuH‹D‰"ë%ƒúuH‹L‰"ëH�×F¾äH�=úèWôÿÿE…íuH‰jiAÿÅHƒÃ(é]ÿÿÿèù\‹h9ýgs(º1ÿH�5Ãè˜þÿZ[H‰ÇA\1ÀA]A^A_]éYX[A\A]A^A_]ÃóúUH‰åSH‰ûVH�5Oè¾›þÿ…Àt8H�5•úH‰ßè«›þÿ…Àt%H�50H‰ß蘛þÿ…ÀtYH‰ßH�56[]é¢<Z°[]ÃUH‰åSH‰ûQ€;_uHÿÃëöH�5¹H‰ßèz<‰ÂƒÈÿ„Òt9ŠK 8Ku1ŠS€úIt€úDu$¶K H‹‘BƒÈÿöJtH�{ º 1öèHœþÿZ[]ÃóúUH‰åAVAUL‹.ATSL‹7I‹~H…ÿuH�= $M‹eM…äuL�%ü#è^ÿÿÿL‰ç‰ÃèTÿÿÿ‰Â¸9Ó|¸ÿÿÿÿI‹MI9|ŸÀ¶À[A\A]A^]Ãóú1À‰Šh]ƒà<u€=�^H�ÂH�LÛHEÂÀ=”^H�qît2€=p^H�)t"ƒ=È]H�¹nuƒ=¼]H�ÑCHEÂÃóúUH‹WH�5}!1À¿H‰åèµ�þÿ°]Ãóúë×óúUH‰åAWAVI‰öAUATSH‰ûHƒìXH‰U˜H‰MˆdH‹%(H‰EÈ1Àƒ="gt%H‹H‹OH�5;!L‹G¿H‹H‹P1ÀèK�þÿH‹CH‹KI‹¾à‹@fÁèƒà<„®w <t<tYé< „—<@„ÐéúH�UÀA¸L‰ö蔕þÿ„À„àD¶mÀH‹SL‰èöB„þƒÀ€¶ÀL�h€éïL�eÀA¸L‰öL‰âèR•þÿ„À„žI‹†àH‹SL‰çH‹@öBt ÿP`I‰Åé¯ÿPXI‰Åé¤L�eÀA¸L‰öL‰âè•þÿ„ÀtWI‹†àH‹SL‰çH‹@öBtÿPHI‰ÅëkÿP@I‰ÅëcL�eÀA¸L‰öL‰âèÆ”þÿ„ÀtI‹†àL‰çH‹@ÿP(I‰Åë4L‹kM‹¦àº1ÿH�5«—èn”þÿL‰éL‰òL‰æH‰Ç1ÀE1íèhUƒ=�et\H‹KL‹CL‰ê¿H�5°—1Àè±›þÿH‹Cö@tH�5”¿1Àè”›þÿH‹CH�5„¿‹P1ÀfÁêƒâès›þÿH‹u˜H‰ßè7°ƒ=<[H‰E�„2H‹E˜1ÒA¸H¹__nm_thnH�pöH‰Hö1ÉfÇFk_H‹=�ZèÄ–þÿH…Àt €x„¼D‹=¶g1ÀH�} ¾H‹ œgH�þL‹%nZE‰øèö–þÿƒø ¿è·�þÿH‹} L‰æAÿÇD‰=ngè!–þÿH‹} I‰Äè5�þÿH‹FgL‰æH‹xèB�þÿL‰çèš�þÿ¾L‰çè�—þÿH‹g1ÒL‰ç‹pI‹D$ÿ� 1ÿ‰=ûf¿è�þÿºH�5lL‰çH‰ÓfèÛH‹U˜L‰çA¹I‰ÀH� ¬H�5HI‰Çè9H‹>H‹U˜A¹H� …H�5,L‰çL�€è ¾L‰ÿè%˜þÿ¿è{ŽþÿWÀ¹1öI‰‡ º?L‰çH‰E€è¡ŸL‰ÿèf ‹8fH‹5)fL‰çèé•þÿH‹U€1ÉL‰þA¸L‰çèr“þÿL‰çèú�þÿI‹4$L‰çè˜H‹çXÆäY�`DÿÿÿM…ít ƒ=)Y…1D‹=èe1ÀH�}¨¾H‹ ÎeH�XL‹% XE‰øè(•þÿƒøŽ.þÿÿH‹}¨L‰æAÿÇD‰=¦eèY”þÿH‹}¨I‰Äèm�þÿH‹~eL‰æH‹xèz›þÿL‰çèÒŽþÿ¾L‰çèÅ•þÿH‹Ve1ÒL‰ç‹pI‹D$ÿ� 1ö¿0‰5.eè9�þÿºH�5ÊL‰çH‰ eèH‹U˜L‰çA¹I‰ÇH‹O<H� ÝH�5yL�€èfH‹ÞdH‹UˆH�5øA¹H� tL‰ç€xH��HDðH‹ý;L�€è"H‹ê;H‹U�H� tH‰ÎA¹L‰çL�€èø¾L‰ÿè–þÿ¿èhŒþÿ¹º?1öI‰ÁI‰‡ 1ÀL‰ÏL‰Mˆó«¹L‰çè…�¹º?L‰ç¾ èn�¹º?L‰ç¾èW�L‰ÿèž‹îcH‹5ßcL‰ç蟓þÿH‹UˆL‰þ1ÉA¸L‰çè(‘þÿL‰çè°�þÿI‹4$L‰çèNM…ít ƒ=ôVt ƒ=ëV…šƒ=²`tH‹U�D‰éH�5“1À¿èæ–þÿH‹CH�}°‹€cH�H‹ jc¾L‹%>V‹@A‰ØfÁèƒàˆEˆ1Àè·’þÿƒø޽ûÿÿH‹}°ÿÃL‰æ‰7cèê‘þÿH‹}°H‰ÃèþŠþÿH‹cH‰ÞH‹xè ™þÿH‰ßècŒþÿ¾H‰ßèV“þÿH‹çb1ÒH‰ß‹pH‹Cÿ� ƒ=V¿u€=PcHÿƒçHƒÇ1ÉL�=’‰ Ÿb誊þÿºH�5XH‰ßH‰|b脾H‰ßI‰ÄH‹CH‹€€ÿPxH‹·9L‰ùL‰þH‹U�A¹H‰ßL�€èɃ=…U…è€=ÄbA½ u ƵbA½H‹U˜A¹L‰ùH‰ßH‹X9H�5L�€èvL‰îL‰çè’“þÿL‰ïèê‰þÿ1öL‰éL‰êI‰„$ H‰ÇI‰Æè¿—þÿI�uø¹H‰ßº?è›I�uôH‰ß¹º?èîšH‹C¶}ˆK�t.üÿPPIƒý tH‹CI�v¿ÿPPL‰çè�›‹_aH‹5PaH‰ßè‘þÿM‰èën¾L‰çèî’þÿ¿èD‰þÿ1ÒL‰ïI‰„$ I‰ÆH‰H‹CL‰öÿPP¹º?H‰ß¾è[šL‰çè ›‹ò`H‹5ã`H‰ßè£�þÿA¸L‰ò1ÉL‰æH‰ßè-ŽþÿH‰ß赊þÿH‹3H‰ßèTÿ‹Pa�P‰Ga…À…‹µ`H�}¸H‹ ¢`H�q¾L‹%oSA‰Øè÷�þÿƒøŽýøÿÿH‹}¸L‰æÿÉw`è*�þÿH‹}¸H‰Ãè>ˆþÿH‹O`H‰ÞH‹xèK–þÿH‰ß裉þÿ¾H‰ßè–�þÿH‹'`1ÒH‰ß‹pH‹Cÿ� 1À¿‰`è ˆþÿºH�5ãH‰ßH‰Ý_èåþL‰ùL‰þH‰ßI‰ÄH‹Õ_H�õ€xH�éHEÐH‹7E1ÉL�€è*ÿ¾L‰çèD‘þÿ¾¿èE—þÿ¹1öH‰ßI‰„$ º?I‰ÅèÁ˜L‰ç膙‹X_H‹5I_H‰ßè �þÿ1ÉH‰ßA¸L‰êL‰æè“ŒþÿH‰ßè‰þÿH‹EÈdH+%(…ˆH‹3HƒÄXH‰ß[A\A]A^A_]é™ýM…ít[H‹1ÿºL‹kH�5­ŽI‹žàH‹L‹`èŠþÿH‰ÇH‹EÈdH+%(u0HƒÄXM‰àL‰éL‰òH‰Þ1À[A\A]A^A_]éŸKH‹EÈdH+%(t車þÿHƒÄX[A\A]A^A_]ÃóúUH�=kH‰åSH‰ÓºQH‹6èÛ‡þÿ…ÀuÇX[]ÃóúëËóúUH‰åAWAVL�}ÇI‰öAUI‰ÕATE1äSH‰ûHƒìdH‹%(H‰EÈ1À1ÒL‰æH‰ßèV–þÿ…Àu'H‰Ú¾L‰ÿè²�þÿ…À~L‰ê¾L‰ÿIÿÄAÿÖëÈ1Àë°H‹UÈdH+%(tèñ‰þÿHƒÄ[A\A]A^A_]ÃóúébÿÿÿóúUH‰åAWAVAUATI‰üSH�ì˜L‹¿L‹¯�dH‹%(H‰EÈ1ÀM…ít+M‹µøM…ötAƒ~u I‹^ I;ŸÐt/M‹6ëâM‹mëÐ1ÿºH�5{�è‰þÿH‰Ç1Àè$J°é§Hƒ» uH‹{@è…þÿH‰ƒ I‹‡ÐI‹¿ÈH‹€ H‰…Pÿÿÿè²iH‰ÇH‰Ãèç„þÿI‹·ÈA‰ØL‰çH‰ÁH�yþÿÿH‰…Xÿÿÿè´�I‹‡WÀL‰ç)…`ÿÿÿ(Y�H�µ`ÿÿÿH‰…Hÿÿÿ1ÀH‹�Hÿÿÿ‰…pÿÿÿ¸…xÿÿÿI‹VH)ÈIE0HÐH‰EˆI‹…€H�DH‹•PÿÿÿH‰E�èÂŽþÿI‹v1ÒL‰çIµ€è}”þÿ…Àt1Àé¬H‹½PÿÿÿL‰â¾èî…þÿHƒøuß¹H�E¨WÀHÇE RSDSH9ËE¨H‰ÇH�U HFËHÇEÀH‹µXÿÿÿH‰•Pÿÿÿ‰Éó¤H‹½Xÿÿÿ謃þÿH‹u�1ÉL‰çH‹•PÿÿÿèW�þÿ…À„vÿÿÿH‹�HÿÿÿI‹FIE0ILJÈH)ØI‰‡ÀéRþÿÿH‹UÈdH+%(tè’‡þÿH�Ę[A\A]A^A_]ÃóúöæM„¦ƒ=€N„™UH‰åSQè}ãÿÿA¹¹H�C…ÀH�;H‹=õMH�5žMHDÐE1Àè…þÿH‰ÃH…Àu1ÿºH�5ä‹èdžþÿH‰Ç1Àè 5€xu&1ÒHƒx Æ@H‰P(uH‹=wMH;G0tH‰Æè¡‰þÿ€KX[]ÃÃóú€°uuUH‰åAVI‰öAUATSL‹gH‰ûH‰÷è�†þÿA€<$@LcèuA€>_uÿÈI�vI�|$HcÐè̃þÿ…ÀtL‰êL‰öL‰ç躃þÿ‰Â°…ÒuC€<,@°u H‰êW1À[A\A]A^]ÃÃUH‰åAWAVI‰þAUATL�% ;SM‰å1ÛQèJâÿÿIƒ<$tB1ÀA€|$$M‹|$t è/âÿÿÿÈ•À¶ÀI�<L‰öIƒÄ(葉þÿ…ÀuHcÛHkÛ(A‹D ëÿÃë·1ÀZ[A\A]A^A_]ÃóúUH‰åèæáÿÿ]éj{óúUH‰åAWAVAUATSVL‹g¾.L‰çèg†þÿH…Àu1Àé'H�xH�5Ý è8ëÿÿ‰Ã…ÀuãH‹5ÎYL‰çè}‡H‰¿YI‰ÄH…ÀtÅD‹p@E1íE9î~!IkÅ(ID$HH‹xè)…þÿ�P9Ú|�XIÿÅëÚHcÛE1öL�= H‰ßèõ€þÿI‰ÄL‹-kYE9u@Ž¥IkÖ(I‹EHHÐL‹hèáÿÿH‰Ú¾L‰ç…ÀL�–M‰éMEÇH� Bç1ÀèÔ�þÿH‹=UKL‰æA¸¹ºè…‡þÿH‰ÆH…Àu1ÿºH�5g‰èJ„þÿH‰Ç1Àè�2€xu1ÉÆ@H‹=KH‰H(è4‡þÿIÿÆéJÿÿÿL‰çè€þÿAƒ}u€ ¶JI‹}HƒÿÿtXH‹õJHƒ= UH‰=¦9H‰=§SH‹€Çž9H‰¸t!è)H‹ÙT1ÒH�=mH‰ÆèÈMH‰CH‹=Xƒx ÿt2H�=Äè…ýÿÿ…Àu"H‹ XHcP Hc@$H‰iSƒøÿtH‰eSH‹þWƒx(ÿt2H�=SèFýÿÿ…Àu"H‹áWHcP(Hc@,H‰:SƒøÿtH‰6S°Z[A\A]A^A_]ÃóúUH‰åAWAVAUATSHƒìHèdßÿÿè©€Š£I¨u%ƒ=t8uƒà<„½H‹tWƒx@„¬L‹-ÃII‹EH‹8詉L‰ï輨I‹…H‹€H‰òVH‹[VH…À„*H‹ë-H�Â0H9P`„H‹{I1ÿH…ÀtH‹��H…Òt zxH‹RëòH‹€ëÝHcÿE1öHÁçèW~þÿL‰m¸L‹=t7=Â]tH=€>uLÆAAÿÆëc=}t=úu5ÆA AÿÆëLÆAAÿÆëCÆAAÿÆfÇA ë4ÆAAÿÆë+‹…Àt%ƒøt H�5uƒ1ÿºè‘~þÿD‰îH‰Ç1Àè”?IÿÄé*ýÿÿH‹}ÀL‹}˜èozþÿH‹[é…üÿÿM‹¿é2üÿÿL‹m¸E…ö„íH‹}ÈIcöºH� ¶Yè¥|þÿH‹]È1ÉHƒÏÿH‹tR1öH‰ÚD9ö}5H‹ HÁé H9ùt HƒÀHƒàüHƒÀ€ztHƒÀëHƒÀH‰ÏÿÆHƒÂ±ëÆ„ÉtH‰*RH‹#RIƒÏÿH�xHƒçüH‰=RèÛyþÿ1É1öD‰uÀH‰ôQM‰îHƒÊÿI‰ÝH‰ ëQ‰uÈH‹ÙQH‹=ÚQ‹]À9]È�æM‹eL+%ËQL‰ãH�ãðÿÿH9Ót_1Ò÷Çt Æ8²HÿÇëí„ÒtH‰=”QIƒÿÿtJ�t8I‹FL)ÿÿPPI‹FH‹5tQH‰ßH5bQÿPPL‹=`QI�GH‰UQA¾}I‹FA�äÿH‹5>QH5/QÁç HcÿLçÿPhH‹$QA€}H�pH‰5QuI‹FI¿} H5úPÿPhHƒ÷PÿEÈIƒÅH‰ÚéÿÿÿM‰õ1Ò÷Çt Æ8²HÿÇëí„ÒtH‰=ÅPIƒÿÿtJ�t8I‹EL)ÿÿPPH‹5©PH‹=PH…öt<è‚þÿècy¾1ÿègtè’v¿è˜\H‹éOH‹bPH‰� ë(H…ÿt#¾Àèb‡þÿH‹c'H‹¼OH�Â0H‰P`Hƒ=±O„ÆL‹=ÄOL‰ÿèìwþÿL‰þ‹CPI‰ÀH‰P¸(I9ÇI�H(ICÇH‰M¨‹ PHƒè(ÁáL9øHcÉHCðH�<H‰úH)ÂH9òHBÖH)øL‰þHÂH‹E¨HÈL9ú� �HCòHcÉH‰EÀH�<H‰øH)ÐH9ðHBÆH)úÛL‰ÇHcÛHÐH‹UÀHÑL9øL‰úHCÐH‰M¸H� I‰ÎI)ÆI9ÖLBòH)ÈH‹ùN1öL‰ùIÆH‹E¸HÃè…þÿI‰ÀI‹…Hc¸¬ƒÿÿu!1ÿè}þÿH‰ÇH‹.OH�pI‹Eÿ�˜ëI‹EI�pÿ�˜H‹IOHcxhƒÿÿt/H‹ùNH�pI‹EÿPhH‹çNH�p H‹OHcxlI‹EÿPhH‹:NH‹ÃNH‹R`H�p H‹z0H‰ÚH+=¥NH)ÂI‹EH×ÿPPH‹51NL‰òH‰ßèN�þÿH‰ßèVzþÿL‰úHc=¤NHÿÀM9þICÖH� I‰ÌM)ôI9ÔLBâHØI)ÎH‰EÈH‹PNMôE1öH�pI‹EÿPPH‹8NHc=INH�pI‹EÿPPH‹NHc=8NH�pI‹EÿPPH‹vMH‹ÿMH‹R`H�pH‹z0H‹U¨H+=àMH)ÂI‹EH×ÿPPH‹DMH‹ÍMH‹R`H�p H‹z0H‹UÀH+=®MH)ÂI‹EH×ÿPPH‹MH‹›MH‹R`H�p$H‹z0H‹U¸H+=|MH)ÂI‹EH×ÿPPH‹°MD9p@ŽÌIkÎ(H‹@HH‹|H‰M˜è yþÿL�@H‰E L‰ÇL‰E°èütþÿL‹E°H‹M˜H‰ÃH‹âL€xH‹_Mt,H‹xHH‹|€?@tÆ_H‹@HH�{H‹U H‹tHÿÂè³þÿëH‹@HL‰ÂH‰ßH‹tè�þÿH‹=N?1É1ÒH‰ÞA¸è„{þÿH…Àt€xuH‹P0H‹æLJ‰ðH‰ßIÿÆè?tþÿé#ÿÿÿ1Ò1ÉL‰}°L‰ã‰U M‰ìI‰ÏH‹¿LD9x@ŽèMkï(H‹HHLéD‹qAƒþÿ„ÇH‹5…L@Šy$N�ýN‹ þ@„ÿu M…É„¢D‰öI‹D$+5QLH‹M¨ÁæL‹LHcöH‹@PHÎ@„ÿ„�H‹=qKL‹MÈL+ öKH‹`H‹0L)×LÏÿÐL‹ LH‹}ÈH‰ÚI‹AHL‰M˜J‹t(è†~þÿL‹M˜I‹AHJ‹|(è„wþÿH‹}°HÿÀH9]°HBûL� 8L‰ÎH)ÞH9þHB÷L)ËHEÈH�ëH‹=¸KJ‹<L)×IyXM‹I`Iy0ÿÐH‹¤KH‹pHLî€~"…¾H‹FM‹L$H…ÀHDH‹5¬JH‹v`H‰E˜H‹~0H‹uÈH+=KH+5KH÷H‹uÀAÿQPH‹u˜H‹}ÈH‰ÚHƒEÀè¾}þÿH‹}ÈèÅvþÿH‹}°HÿÀH9]°HBûL� 8L‰ÎH)ÞH9þHB÷HEÈI‹D$L)ËD+5êJH�IcþH‹u¸ÿPhH‹íJ‹M HƒE¸H‹@HB‰L(‰ÈÿÀ‰E IÿÇéþÿÿH‹öIH‹JM‰åH‰� Š¿<‰Â÷Ò€âuI‹•Ç‚`L‹-F<M…í„ÇL‹%~JAƒ|$@u¨„°L‰ïèÆ{þÿ1öL‰ïè,}þÿH‰ÃH…Àu%1ÿºH�5¦zè¡uþÿL‰îH‰Ç1Àè¤6éq€=°;t H�5›1ÿºèsuþÿL‰îH‰Ç1ÀèkRÿÿH‰ß¾èÙyþÿ€KI H‰ßèÿƒL‹=V<H‰]¸H‰EÀ1ÀH‰EÈL‰ûH…Û„:L‹5ýH1ÀM…öt#„Àu'1ÀAƒ~uH‹3I‹>ètþÿ…À”ÀM‹vëØ„À„õH‹ƒèH…ÀtH‹8ëH‹;1öèhtþÿI‰ÆH…Àu(H‹1ÿºH�5öèºtþÿH‰ÇH‰Þ1Àè½5éŠHƒ»èI‰Ç„Š1Ò¾H‰Çèè}þÿ„ÀuH‹ƒèL‹#ºH�5ŽyH‹ë@E1ÿL‰þL‰÷èû~þÿI‰ÇH…ÀtH‹3I‹?èHsþÿ…ÀuÞë5H‹ƒèL‹#ºH�5„yH‹1ÿè"tþÿL‰âH‰ÞH‰Ç1Àè"5éïH‹EÈL‰}ÈI‰‡ðH‹›é½þÿÿL‰m°E1öM‰åE9u@Ž?H‹wHIkÞ(H‹@H€| …I‹EHH‹=‘:E1À1ÉHØH‹L‹xH‰PL‰þ1Òè¼vþÿH…Àt€xBjuH‹òH�ÂH9P(„ÒH‹ŠG€xu6I‹}H1ÒH‹u¸H߀#”ÂèʇH‹MÈI‹UHH‰EÈH‰ˆðL‰|é�A€?@tÄL‰ÿèXsþÿH�PH‰×H‰U¨è8oþÿH‹U¨M‰øH� ;ëI‰ÄH‰Ç¾1ÀèHþÿH‹=É91É1ÒE1ÀL‰æèvþÿL‰çH‰E¨èÖnþÿH‹E¨H…À„]ÿÿÿ€xBj…SÿÿÿH‹ H�ÂH9P(…;ÿÿÿIÿÆé·þÿÿH‹]¸L‹m°H‰ßè…„Hƒ}ÀI‰ÄtgH…ÀtbH‹EÀH‹MÈL‰æH‰ßH‰ˆðI‰„$ðè>qþÿ„Àu H�=Ûwè^3H‰ßè{þÿ„ÀuL‰îH�=‡þèC3L‰çM‹¤$ðèózþÿM…äuëL‹-oCM…í„ÓH�5 æL‰ïèzþÿH‰ÃH…Àu H�5˜w1ÿºèäqþÿL‰îH‰Ç1Àèç2H‹pFH…À„;Hƒ8twƒxH‰ÞtH�=þèìrþÿë H�=þèÞrþÿH‹7FºH‰ÞH‹8è;~H‹€8H‹€H‹ˆH…ÉtH�Üý¾H‰ß1Àè×{þÿH‰Þ¿ èªsþÿH‹ãEHƒxt4H‰ÞH�=´ýèmrþÿH‹ÆEH‰ÞºH‹xèÉ}H‰Þ¿ èhsþÿH‹¡ED‹@l‹HhAƒøÿtH�|ý¾H‰ß1Àè^{þÿëƒùÿtH�ný¾H‰ß1ÀèA{þÿH‹ZEƒx ÿuƒx(ÿt H‰Þ¿ èsþÿH‹:ED‹@$‹H AƒøÿtH�0ý¾H‰ß1Àè÷zþÿëƒùÿtH�(ý¾H‰ß1ÀèÚzþÿH‹óDD‹@,‹H(AƒøÿtH�ý¾H‰ß1Àè°zþÿëƒùÿtH�ý¾H‰ß1Àè“zþÿH‹¬Dƒx0H‹ŸDƒx@ŽRé'H‰ÞH�=ØüE1öèqþÿL�=ÕüH‹pDD9p0~ÄH‰ÞMkæL‰ÿèûpþÿH‹TD1ÒH‰ÞH‹@8J‹< èV|H‹;DH‹@8Jƒ| t)H‰ÞH�=ˆüèÀpþÿH‹D1ÒH‰ÞH‹@8J‹| è|H‹ÿCH‹@8B€| tH‰ÞH�=Tüè„pþÿH‹ÝCH‹@8B€| tH‰ÞH�=8üèbpþÿH‹»CH‹@8B€| tH‰ÞH�=üè@pþÿH‹™CH‹@8B€| tH‰ÞH�=üèpþÿH‰Þ¿ IÿÆè.qþÿéòþÿÿH‰ÞH�=èûE1öè÷oþÿL�=®ûH‹ICD9p@/H‹Š1D‹K$H‰Þƒà<tiH‹¾àD‰M�è,pþÿD‹M�H…ÀH‰ÆtMHƒ~`H‹ŽàuÖ‹F$‰Â‰ÇD1Ê�瀃â úu¿öAD@u¹H‹‘H…ÒtöB`u§AƒñƒðA ÁAƒñë—E1ÿA÷Á„¢L�=ì%A÷ÁtJIƒï0A÷Át=I�ï�A÷Áu-ºH�52÷L‰çD‰M�è.gþÿM�G`D‹M�…ÀI�G0IEÀI‰ÇIƒuI‹?1Ò1öD‰M�èBåD‹M�I‰GM‹wM…öu I�W1ÉD‰ÎH‰ßèUI‰ÆH…ÀuL‹5-H�5;ï¿è�6¿H‰Æè£9L‰ñM‰øL‰æI‰ÁP‹U¤H‰ßÿu˜è²ZYI‰ÆŠ­/ƒà<u‹K|¿Óçè'‹S|I‰FhI‹F8‰P|I‹^M�fH…Ût=ƒ{u/H‹C¾$L‹8L‰ÿèRiþÿH…ÀtHƒ}¨tL‰þL‰ïè{lþÿ…ÀxI‰ÜH‹ë¾Hƒ}¸tH‹EÀH‰H‹E¸I‰$H‹EÈdH+%(tè¥hþÿH�eØL‰ð[A\A]A^A_]ÃóúŠB`ƒàþÈ…+UH‰åAWL�=$óAVAUI‰õATI‰ÔSQƒ=_<L‹rtKI‹}è@hþÿL‰÷I‰Çè5hþÿH‹=69H‰Ã‹5<M�|1ÀH…ÿt+èhþÿë$è hþÿH9Ãs‰<IƒÇI‹?‹<H…ÿuÞë¥LûHÃH‰ßèÐcþÿI‹uH‰ÚH�’òH‰ÇI‰ÇèçlþÿÆ/L�hH‹ H…Ét\€{t*L‹³8M…ÀuHƒÃëàM‰ñHƒÊÿ¾L‰ï1ÀèªsþÿëM‰ðHƒÊÿ¾L‰ï1Àè’sþÿL‰æL‰ÿè§z„Àt½M‰|$ë L‰ÿè$cþÿ1ÀZ[A\A]A^A_]Ã1ÀÃóúUH� ‚õH�ýóH‰åèø|]¶ÀÃóúUH‰åATI‰ÌSHcÚH‹9HƒÃFHÁãH‰ÞèÏgþÿH�“@÷ÿÿH‰ÙH�5îèH9ÓI‰$H�<[HBÊA\]H)ѺÀéÎjþÿóúUH‰åAWAVI‰öAUATI‰üSHƒìXH‰U˜H‰MˆdH‹%(H‰EÈ1Àƒ=ù9t%H‹H‹OH�5®ñL‹G¿H‹H‹P1Àè¾mþÿI‹L$I‹¾àH�]ÄL‰öA¸H‰Úè=fþÿM‹®à„Àu0I‹\$ºH�59i1ÿèúeþÿL‰îL‰òE1íH‰ÇH‰Ù1Àèô&ë I‹EH‰ßÿP@I‰Åƒ=b9t`I‹L$M‹D$L‰ê1ÀH�5.i¿è,mþÿI‹D$ö@tH�5ñ¿1ÀèmþÿI‹D$H�5ýð¿‹P1ÀfÁêƒâèìlþÿH‹u˜L‰çè‘Óƒ=µ,H‰E�„OH‹E˜1ÒA¸H¹__nm_thnH�pöH‰Hö1ÉfÇFk_H‹=ú+è=hþÿH…Àt €x„ÈD‹=×61ÀH�} ¾H‹ ½6H�wðH‹ç+E‰øèohþÿƒø ¿è0oþÿH‹} H‰ÞAÿÇD‰=�6èšgþÿH‹} H‰Ãè®`þÿH‹g6H‰ÞH‹xè»nþÿH‰ßèbþÿ¾H‰ßèiþÿH‹?61ÒH‰ß‹pH‹Cÿ� E1Û¿D‰6èy`þÿºH�5äïH‰ßH‰ó5èîÔA¹H� .ñH‰ßI‰ÇPH�5ÃïjH‹U˜M‰øè‹1ÀA¹H‰ß‰$H‹hH� öðH�5�ïH‹U˜L�€èàŠ¾L‰ÿè•iþÿ¿èë_þÿ¹1öH‰ßI‰ÁI‰‡ 1Àº?I‰L‰M€èý�L‰ÿèÂŽ‹N5H‹5?5H‰ßèWgþÿH‹U€1ÉL‰þA¸H‰ßèàdþÿH‰ßèhaþÿH‹3H‰ßèÖH‹V*ÆS+�`DÿÿÿXZM…ít ƒ=–*…BD‹=ý41ÀH�}¨¾H‹ ã4H�ÅîH‹ *E‰øè•fþÿƒøŽ"þÿÿH‹}¨H‰ÞAÿÇD‰=»4èÆeþÿH‹}¨H‰ÃèÚ^þÿH‹“4H‰ÞH‹xèçlþÿH‰ßè?`þÿ¾H‰ßè2gþÿH‹k41ÒH‰ß‹pH‹Cÿ� 1É¿0‰ D4è§^þÿH�5=îºH‰ßH‰!4èÓA¹H� \ïH‰ßVI‰ÇH‹¹ H�5êíjH‹U˜L�€è6‰H‹ñ3H�5gèA¹H� ãí€xH�ïHDð1ÿH‹m ‰<$H‹UˆH‰ßL�€èíˆE1ÀH‰ßH‹J D‰$H‹U�H� ÐîA¹L�€H‰Î輈¾L‰ÿèqgþÿ¿èÇ]þÿ¹º?1öI‰ÁI‰‡ 1ÀL‰ÏL‰Mˆó«¹H‰ßèÒ‹¹º?H‰ß¾ 軋¹º?H‰ß¾褋L‰ÿèiŒ‹õ2H‹5æ2H‰ßèþdþÿH‹Uˆ1ÉL‰þA¸H‰ßè‡bþÿH‰ßè_þÿH‹3H‰ßè®ÓAYAZM…ít ƒ=P(t ƒ=G(…´ƒ=r4tH‹U�D‰éH�5nd1À¿èBhþÿI‹D$H�}°D‹%‚2H�xìH‹ l2¾H‹˜'‹@E‰àfÁèƒàˆEˆ1ÀèdþÿƒøŽžûÿÿH‹}°H‰ÞAÿÄD‰%72èBcþÿH‹}°H‰ÃèV\þÿH‹2H‰ÞH‹xècjþÿH‰ßè»]þÿ¾H‰ßè®dþÿH‹ç11ÒH‰ß‹pH‹Cÿ� ƒ=j'¿u€=,4HÿƒçHƒÇE1äL�=éìD‰%�1è\þÿºH�5®ëH‰ßH‰z1èuоH‰ßI‰ÄH‹CH‹€€ÿPxH‹ AVL‰ùjH‹U�A¹L‰þL�€H‰ß耆ƒ=×&XZ…ð€=˜3A½ u Ɖ3A½H‹¸ AQL‰ùA¹jH‹U˜H�5`ïH‰ßL�€è'†L‰îL‰çèÞdþÿL‰ïè6[þÿL‰éL‰ê1öI‰„$ H‰ÇI‰Æè iþÿI�uø¹H‰ßº?è>‰I�uô¹H‰ßº?è(‰H‹C¶}ˆK�t.üÿPPAZA[Iƒý tH‹CI�v¿ÿPPL‰çèÉ‹O0H‹5@0H‰ßèXbþÿM‰èëo¾L‰çè6dþÿ¿èŒZþÿE1ÀL‰ïI‰„$ I‰ÆL‰H‹CL‰öÿPP¹º?H‰ß¾è�ˆL‰çèU‰‹á/H‹5Ò/H‰ßèêaþÿA¸L‰ò1ÉL‰æH‰ßèt_þÿH‰ßèü[þÿH‹3H‰ßè›Ð‹2�P‰2…À… ‹¤/H�}¸H‹ ‘/H�¸é¾L‹%¶$A‰Øè>aþÿƒøŽËøÿÿH‹}¸L‰æÿÉf/èq`þÿH‹}¸H‰Ãè…YþÿH‹>/H‰ÞH‹xè’gþÿH‰ßèêZþÿ¾H‰ßèÝaþÿH‹/1ÒH‰ß‹pH‹Cÿ� 1À¿‰ï.èRYþÿºH�5*éH‰ßH‰Ì.èÇÍH�OèL‰þH‰ßI‰ÄH‹À.€xH�3èQL‰ùHEÐjH‹LE1ÉL�€èÓƒ¾L‰çèˆbþÿ¾¿è‰hþÿ¹1öH‰ßI‰„$ º?I‰Åèó†L‰ç踇‹D.H‹55.H‰ßèM`þÿL‰æA¸1ÉL‰êH‰ßè×]þÿH‰ßè_Zþÿ^_H‹EÈdH+%(…ŠH‹3H�eØH‰ß[A\A]A^A_]éÛÎM…ít]I‹$1ÿºH�5ò_M‹d$I‹žàH‹L‹hè\þÿH‰ÇH‹EÈdH+%(u0H�eØM‰èL‰áL‰òH‰Þ1À[A\A]A^A_]éßH‹EÈdH+%(tèû[þÿH�eØ[A\A]A^A_]ÃóúUH‰åAWAVAUATI‰üSH�ì˜L‹¿L‹¯�dH‹%(H‰EÈ1ÀM…ít+M‹µøM…ötAƒ~u I‹^ I;ŸÐt/M‹6ëâM‹mëÐ1ÿºH�5Ž_è1[þÿH‰Ç1Àè7°é§Hƒ» uH‹{@è-WþÿH‰ƒ I‹‡ÐI‹¿ÈH‹€ H‰…PÿÿÿèÅ;H‰ÇH‰ÃèúVþÿI‹·ÈA‰ØL‰çH‰ÁH�!ÑÿÿH‰…XÿÿÿèÇaI‹‡WÀL‰ç)…`ÿÿÿ(loH�µ`ÿÿÿH‰…Hÿÿÿ1ÀH‹�Hÿÿÿ‰…pÿÿÿ¸…xÿÿÿI‹VH)ÈIE0HÐH‰EˆI‹…€H�DH‹•PÿÿÿH‰E�èÕ_þÿI‹v1ÒL‰çIµ€è�fþÿ…Àt1Àé¬H‹½PÿÿÿL‰â¾èXþÿHƒøuß¹H�E¨WÀHÇE RSDSH9ËE¨H‰ÇH�U HFËHÇEÀH‹µXÿÿÿH‰•Pÿÿÿ‰Éó¤H‹½Xÿÿÿè¿UþÿH‹u�1ÉL‰çH‹•Pÿÿÿè `þÿ…À„vÿÿÿH‹�HÿÿÿI‹FIE0ILJÈH)ØI‰‡ÀéRþÿÿH‹UÈdH+%(tè¥YþÿH�Ę[A\A]A^A_]ÃóúUH‰åAWAVAUATSH�ì˜dH‹%(H‰EÈ1Àè‡2舵ÿÿƒ=K*uH‹=:*H‹ H…ÿ…§éJH�f H�5‡æ¿1Àèc`þÿH‹´L�%sæH‹X(H…ÛtH‹SL‰æ¿1Àè9`þÿH‹[ ëâH‹=„1ÒH�5OÂÿÿL�%?æè'WþÿH‹ H…Û„nÿÿÿH‹L‰æ¿1Àèõ_þÿH‹›ëÜH‹CƒxtH‹›H…Ûuêé‰èUÀÿÿºH�5Ðn„Àtcº+AH�5ØåH‰ßèWþÿH…Àt>H‹fHnØó~7)H� oÎÿÿH‹’flÃH‰ŠÀ‚ÈHÇ@@5ë2ºH�5©]1ÿèÒWþÿH‰Ç1ÀèØH‹=é(è¼Sþÿ1ÀH‰Û(H‹¬H‹CƒxuH‹ƒH…Àt ŠHuˆM�„Éu H�5�]1ÿºèyWþÿH‰ÞH‰Ç1Àè¼H‹M H�¸Ð¹dH�5â&󥃈¸ ‰�`¶Ü ÷Úƒ=Ç ‰�¬yV€=Õ?wMŠÌH‹eL�%¢Ìÿÿƒà<u-Ç‘ ë&H‹{0E1íH�U L‰æD‰m èäaþÿƒ} u×H‹[HH…ÛuÚH‹=ÎèÖ|H‹ÂH‰E€H‹@H‹8è¤]H‹K+H…À„H‹=sE1ÒL‹p`H�ŠãH�5:2D‰g*èZ]þÿHc=[*HÁçèŠRþÿH‹=;E1ÛH�VãH�5ù4H‰+*D‰,*è]þÿHc5 *ºH‹= *H� 3è�TþÿH‹¹*L‹hPL‰mˆHƒ}ˆH‹¥*„L‹PX1À9Â~H�HH‹]ˆHkñ(I9\6àtH‰Èëä‰Ã9Ð�H‹EˆH�xH‰=½)èàWþÿH‰Ù)¶„ÒtH‹ ëöQŒuÆ_HÿÀëäHcÃE1ÛL‰µHÿÿÿH‰…xÿÿÿHkÀ(D‰�pÿÿÿM�$H‹*‹�xÿÿÿ9HXŽnH‹EˆI;D$…_I‹<$DŠ7èyUþÿL�hL‰ïè]QþÿH‰E˜A€þ@tSM‹<$¾@L‰ÿèÂUþÿH‹}˜M‰ùL‰êH…ÀH‹&)¾L�?Û”ÃH� ¯·€xH�êáLDÀ1Àè2aþÿë M‹$H‹}˜L‰ê¾H� –×1À1ÛèaþÿH‹u˜H‹=�E1À1É1ÒèÉWþÿH…Àt €x„ÕI‹$A€þ@u&H‹}˜I‰ÁL�ªä1ÀH� 0·L‰ê¾è¼`þÿëDH‹{(H� YáL� ’Ú¾L�qä€zWL‰êPLDÉH‹}˜H� Ó¶1Àèz`þÿAXAYH‹u˜H‹=óE1À1É1Òè/WþÿH…À„Њ@„Ûu E1íþÈ”Ãé;E1íþÈ„0H‹E˜L�hL‰ïèTþÿL�xH‰…`ÿÿÿL‰ÿèäOþÿL‰úL‰îH‰ÃH‰ÇèÓZþÿ1ÿ€;@¾@@”ÇHßè=TþÿI‰ÆH…ÀtÆ@Lcr'L‹ c'1ÉL‰½hÿÿÿL‰µXÿÿÿH‰ßI‰ÎL‰¥PÿÿÿM‰ÏM‰ÄM9æs9O�,4H‰½@ÿÿÿIÑíL‰èHÁàI�H‹3èWþÿH‹½@ÿÿÿ…Àxt%M�uëÇM‰ìëÂL‹½hÿÿÿL‹µXÿÿÿH‰ûL‹¥Pÿÿÿë?H‰ÚH‰ûH‹=ÓE1ÀH‹r1É1ÒL‹½hÿÿÿL‹µXÿÿÿL‹¥PÿÿÿèöUþÿ€xI‰Å„éŠKþÿƒð„À„óI‹ÜH�5ÖL‹pL‰÷èÜê„À…ÔL‰÷èüEþÿH�PH‰×H‰UˆèÜAþÿH‹UˆM‰ñL�ÖÕI‰ÇH‰Ç¾1ÀH� Q¨èåQþÿH‹=f 1É1ÒE1ÀL‰þèŸHþÿL‰ÿH‰EˆèsAþÿH‹EˆH…Àt€xtdH‹u€xt A€>_uIÿÆH‹5çL‰òL‰ïèçM…Àt8H‹=ÑE1ÀƒÉÿ1ÒL�M L‰öÆE è»2€} uI‹Ü‹RÁêƒòƒâˆP#HÿÃé¤þÿÿM‹­élþÿÿMkì(J‹/DŠ;A€ÿ?uIÿÄH‹qHcp@H‹xHD9æØé…¾@H‰ßèREþÿH…ÀtÒ1ÀA€ÿ@”ÀH�<è»Fþÿ¾@H‰ÇH‰Ãè›EþÿH…ÀtÆë/H‹H�5«L1ÿºH‹@HN‹4(è_DþÿH‰ÇL‰ö1ÀèbH‹ëDŠu�H‹@HJ‰(é_ÿÿÿE„ötH� û º(è”Bþÿƒ=euH‹´E1öE1äL‹hHL‰ëé…E1äL�5 ÔH‹‘H‹PHD9`@~ÌMkì(L‰öJ‹*H‰ßèÔè„Àu¾@H‰ßècDþÿH…ÀtmÆE 1À€;@”ÀH�<èÉEþÿ¾@H‰ÇH‰Ãè9DþÿH‹521ÿH‰ÚÆè0L…Àt"H‹=E1ÀƒÉÿH‰ÞL�M H‹GHJ‹T(è1€} tH‰ßèQ?þÿIÿÄéQÿÿÿE…ä„H‹sØH‹;èGþÿ…À…óIcÆHkÀ(M�|Ø‹^E‹OAƒùÿ„¢‹Kƒùÿ„–A9É„�…Àt5I‹º1ÿ‰MˆH�5GKD‰M�H‰E˜èÒBþÿ‹Mˆ‹U�H‹u˜H‰Ç1Àè΋CƒøÿtA‰GfnC fAnW VÐfA~W H‹;è–>þÿH‹{è�>þÿH‹{è„>þÿAÿÄHƒÃ(H‹D;`@Œ#ÿÿÿëR…Àt¨I‹1ÿºH�5ýJH‰E˜èLBþÿH‹u˜H‰Ç1ÀèNé{ÿÿÿE9ôtIcƹ H‰ÞHkÀ(LèH‰Çó¥AÿÆë”D‰p@IcþE1ÿHÁçè%>þÿH‰–H‹—HcX@HÁãH‰ßè>þÿH‰Ù1öH‰kH‰ÇH‹qHcP@HÁâèÔKþÿ1É1ÒÇ>‰<‰ .‰ $‰ H‹7‹B@D9øŽ¿Ikß(H‹BHL‹dL‰çè¦L‰çèžAþÿH�PI‰ÆH‰×H‰U˜è{=þÿH‹U˜I‰ÅH‹e€xt.A€<$@t'AÆE_I�VI�}L‰æèKHþÿL‰ïèCCþÿH‰ÇèKë L‰æL‰ïè.HþÿH‹=ß1É1ÒL‰îA¸èDþÿI‰ÆH…ÀtOŠP�Bý¨ýuEH‹|ÿZHXH€{"uÿFH‹ OI‹F(J� ù€útH‹@H‰‹CƒøÿuDé¾.L‰çè1AþÿH…ÀtQH‹%ÿHXH€{"uÿï‹CÆC$ƒøÿ„ƒ;å~‰Ý;Ó}‰Ëÿ¹ë_M…öt:AŠ^ºH�5öH€ût11ÿH�5Iè@þÿ¶Ó¹L‰æH‰Ç1Àèë ºH�5(I1ÿèé?þÿL‰æH‰Ç1ÀèìL‰ïIÿÇèÑ;þÿé.þÿÿ…Àuöq„•ƒ=…ˆƒ=#‹%t‹%9Ð~)ÐÿÀ;}‰ ëÇÿ‰ý‹=÷+=íÿlj=ÕHcÿHÁçèq;þÿ‹ Ã1ÒH‰²9Ñ~ Ç�ÿÿÿÿHÿÂëð1ÛE1äH‹ ÆH‹=¯9Y@Ž×Lkë(H‹IHHƒ<ßJ�)u €z$„’D‹zAƒÿÿtcH‹XE‰þD+5fMcöJc°ƒøÿt;HkÀ(H�5/H1ÿH‹ H‹ºH‰M�H‰E˜è¬>þÿH‹M�H‹U˜D‰þH‰Ç1Àè§ÿH‹B‰°H‹%AÿÄH‹HHLéH‹yH…ÿuH‹9èš>þÿAÄH‹LhHA€}$tI‹}è|>þÿE�dHÿÃéÿÿÿLcÀL‹¡1ÀL‰Ó9A@~GHkÐ(HQHHƒ<Çu€z$t-ƒzÿu'H‰ÞL)ÖI�4³I‰ñI‰ØHƒÆHÿÃAƒ9ÿuíA‰IcØD‰BHÿÀë´D‹-e�ûÿÿ A�ýÿÿ~&1ÿH�5WGºèµ=þÿA9݉ÞAMõH‰Ç1Àè²þH‹=“‹èÀ=þÿ¿H‰Â‹ú�D �CA�DH˜H�DH‰Yè±HH‹=]èecL‹-¡ënƒó!Ë€ãt`…Òt\M…ätWI‹}0L‰æèHþÿH‰ÃH…À~CI‹}0è_;þÿM‹}0„À… H�5„Ý1ÿºè=þÿL‰þH‰Ç1ÀèCëI‹E0Hƒ¸èuM‹mHM…íuéé‡L‹ �1É1Ò1ÛA¿M‰æM…ö„iÿÿÿI‹>H�5kȉMˆ‰U�H‰}˜è@þÿH‹}˜H�5Ê…ÀADßè‰á‹Mˆ‹U�„ÀAEÏAVxM‹vë²H‰ßM‹·Àè„8þÿI‹}0L‰æL‰ñH‰ÂH‰ÃèFþÿ‰E˜…ÀyFH‰ßè@8þÿ1ÿºH�5úEè-<þÿH‰ÇH‹EÈdH+%(…%H�eØ1À[A\A]A^A_]éýE1ÿD9}˜Ž“J‹ûH‹H‹ö@u{H‹pH‹=²1É1ÒA¸èë>þÿH…Àt\€xuVH‹@(I‹M0H‹�àH‹‰èH‹‚èH9Èt4H…ÀtL‹0ëL‹2H‹9L‰öè†:þÿ…ÀtI‹E0H‹€èH‹€L‰p ëIÿÇécÿÿÿH‰ßèZ7þÿM‹d$éþÿÿH‹™H…Û„?L‹k0Iƒ½è„ïI‹E¾.H‰ÇH‰E˜è)<þÿH…À„ÑH�xH�5”Éèý ÿÿA‰Ä…À…¶M‹…�E1öE1ÿA½M…ÀtFI‹8H�5�ÆL‰EˆH‰}�è¦>þÿH‹}�ºH�5>È…ÀEDåè;8þÿL‹Eˆ…ÀEDõExxM‹@ëµE…ötSA¶aE…äu E…ÿAžÆAƒÆbH‹}˜è¦:þÿL�hL‰ïèŠ6þÿE¾ÎL‰êH� #ÈI‰ÄH‹C0¾L‰çL‹1Àè“FþÿL‰c H‹[HéíþÿÿE1í„Û„têÿÿé?æÿÿƒ=«ï„Áüÿÿ1ÿè_EH‹= è`é©üÿÿH‹EÈdH+%(tè-:þÿH�eØ[A\A]A^A_]ÃóúUH‰åAWAVAUATSH‰ûH�ì˜dH‹%(H‰EÈ1Àè–ÿÿH�=( è•@H‹S0ÆE§ŠBHƒàþÈ…ˆH‹‚ŠHuˆM§„É„sƒ¸`ÆE§„bH‹CH‰E�H‹p H‹}�H‹0èÜ8þÿºH�5ÇI‰ÇH…Àt)H‹}�èÏø¾L‰ÿè²CþÿˆE§„Àu&ºH�5ÿB1ÿè9þÿH‹u�H‰Ç1Àè úéìL�u½¾<L‰ÿÆE½L‰òè‰V€}½A‰Äu¹A�´$„L‰òL‰ÿèmV€}½u …À„ªA�´$ˆL‰òL‰ÿèLVA�´$ŒL‰òL‰ÿA‰Åè6V€}½‰Ã…cÿÿÿH…Û„lA�t$L‰òL‰ÿè UA�t$L‰òL‰ÿ‰ÀH‰…Xÿÿÿè‡U€}½‰ÀI�DH‰E˜…ÿÿÿD‰èL‹e˜H‰E¨1ÀH‰EˆH‹�XÿÿÿH9Mˆƒ¹A�t$ L‰òL‰ÿè±UA�t$L‰òL‰ÿA‰ÅèžUA�t$L‰òL‰ÿ‰E€è‹U€}½‰…xÿÿÿ…´þÿÿ1ÒL‰æL‰ÿè"Dþÿ…À…ŸþÿÿH�}¿L‰ú¾èy=þÿHƒø…„þÿÿL9m¨r0‹E€LèH9E¨s$H‹M¨‹•xÿÿÿHÊL)êI‰ÔH�H9ÐsH)ÈH‰ÃëHÿEˆIƒÄ(é6ÿÿÿE1äE1ÛE1íE1ö1ÀL‰�xÿÿÿHÇ…`ÿÿÿL‰m€HÇ…hÿÿÿL‰uˆHÇ…pÿÿÿH‰…PÿÿÿH‰�HÿÿÿL‰¥@ÿÿÿH‹�XÿÿÿH9�PÿÿÿƒŸ‹E˜L�e½L‰ÿL‰â�pèŒTL‰âL‰ÿA‰Æ‹E˜�p èxTL‰âL‰ÿ‰Ã‹E˜�p$èeT€}½ÆEÇA‰Å…�ýÿÿH‹u˜1ÒL‰ÿèúBþÿ…À…wýÿÿL�e¿L‰ú¾L‰çèN<þÿHƒø…YýÿÿH�5)¶L‰çèE:þÿ…ÀuHI�ƒ=†H‰Eˆt+API‰ÁI‰ØL‰áAUH�Lç¿1ÀH�5N@è©=þÿAYAZH‰�pÿÿÿé²H�5ÂL‰çèê9þÿ…ÀuHI�ƒ=+H‰E€u H‰�hÿÿÿé‚QL‹M€H�5ý?I‰ØAU¿L‰á1ÀH�׿èB=þÿ^_ëÉH�5hµL‰çè�9þÿ…ÀuDI�ƒ=ÐH‰…xÿÿÿt)AVI‰ÁH�›æI‰ØAUL‰áH�5œ?1À¿èð<þÿXZH‰�`ÿÿÿHÿ…PÿÿÿHƒE˜(éMþÿÿH‹�HÿÿÿL‹¥@ÿÿÿH‰ßè`1þÿ1ÒL‰æL‰ÿI‰Æè�Aþÿ…À… üÿÿL‰úH‰ÞL‰÷èê:þÿH9Ã…öûÿÿH‹E¨M‰õI)ÅHƒ=Ÿ u èU"H‰‘ A‹F E‹~A‹^ E‹fL‹5z LèH‰ÆH‰E¨I‹~PèB«H…Àt)ƒ=ë„°H‹U¨H�5‘¿1Àè<þÿé”D‰øH‹M¨L‰÷D‰þH‰E�D‰àE1öH‰…XÿÿÿI�D‹H‰E˜LêèØ¨…ÀˆaL‰­PÿÿÿE1䉅HÿÿÿH‹E�I9ă>H‹E˜H‹�XÿÿÿF‹, H‹…PÿÿÿHÈF‹4 H‹…pÿÿÿI9ÆrH‹EˆA¿I9Ær¿I‰ÙRH�ÀH�5w<M‰ø¿HDÁH‹M¨H�(ãP1Àè�9þÿY^éÿÿÿÆE§H‹EÈdH+%(tè12þÿŠE§H�eØ[A\A]A^A_]ÃóúUH‰åSHƒìdH‹%(H‰Eè1À1À‰Eä‹ˆêƒøÿucH�]äE1À1Ò1öH‰ÙH�= ˜èÉ<þÿH…ÀuE1ÀH‰Ù1Ò1öH�=€¿è®<þÿ‹EäƒøÿuH�oâ¾™H�=h¿è_�ÿÿ…À•À¶À‰ êH‹UèdH+%(tè|1þÿHƒÄ[]ÃóúUH‰åèIÿÿÿ¾H�=Ì—èWÉH�ºµ€ ¹ó ]H‰ñãH‹ZEÆåøH‰DøÃUH‰åAWAVI‰öAUATI‰üSHƒìèðþÿÿL�=¸é1ÛM‰ýIƒ?„ƒI‹GH‰EÈ1ÀA€t èÄþÿÿ…À”À¶ÀH‹uÈL‰çIƒÇ HÆèh4þÿ…ÀuGHcÛH�57µL‰çHÁãIÝE‰u AÇEè?4þÿ…Àu=èwþÿÿL�%ÿ´…ÀH�÷´LDàéiÿÿÿÿÃésÿÿÿH�á¾H�=(¾èŒÿÿHƒÄ[A\A]A^A_]ÃU1ÒH‰åATI‰üSH�uàHƒìH‹DÛdH‹%(H‰Eè1ÀH‹;è],þÿL‰çH‰ÆèçþÿÿL‹eàL;#u H�5¢Y1ÿºè¶/þÿL‰æH‰Ç1ÀèùÝL‰#H‹EèdH+%(tèÒ/þÿXZ[A\]ÃUH‰åATI‰ôSèmÿÿÿH‹ÅÚH‹Š<,uHÿÃL‰çH‰[A\]éKÿÿÿ„Àt H�5_Y1ÿºèC/þÿH‰ÞH‰Ç1Àè†Ý[A\]ÃóúU�ï-H‰åAWAVAUATSHƒìdH‹%(H‰EÈ1ÀƒÿB‡ñH�§ÞHcºHÐ>ÿàH‹6ÚH�5á¢H‹;èW7þÿH‰öH…À…£H‹H�5‰³1ÿºè±.þÿH‰ÇH‰Þ1ÀèôÜH�5‡³H�=˜³èÿÿÿéhH�5 ³H�=²³èîþÿÿéPL‹%½Ù¾:L�mÀM‹4$L‰÷èø.þÿH…ÀH‰Ãu L‰÷èx.þÿ‰Ãëk1ÒH�xL‰îè¶*þÿH�=}³H‰Æè<ýÿÿH‹}À€?.uHÿÇL‰î1Òè‘*þÿH�=t³H‰ÆèýÿÿH‹EÀ€8t1ÿºH�5+Xèæ-þÿH‰Ç1ÀèìîD)óI‹<$1ÒL‰îèK*þÿH‹UÀŠ €ù:”„É”ÁÊtH=ÿÿvoM‹4$L�-S¯E1äHcÛM‹}M…ÿt)H‰ÚL‰þL‰÷è+þÿH� /¯…ÀuA€<t)AÿÄIƒÅëÎH�5ÜW1ÿºèX-þÿL‰öH‰Ç1Àè›ÛMcäIÁäB‹D!HcðH�=»²‰×åè?üÿÿéH�=²²è ýÿÿéðH�=¶²èùüÿÿéßH�=J²èèüÿÿéÎH�=U²è×üÿÿé½H�=˜²èÆüÿÿé¬H�=Ÿ²èµüÿÿé›H�=¦²è¤üÿÿéŠH�=¨²è“üÿÿéy¾H�=¨²è¡ûÿÿécH�==±èlüÿÿéRÇ,éCE1ÛD‰-åé4Çåé%ÆåéÆåé H‹z×H‹8èB.þÿH‰ÓÿéòÇÀÿéãH‹P×1öH‹8èHRéÍÇ—ÿé¾H‹+×¾H‹8è Ré¥H‹×¾H‹8èRéŒÇRÿé}Ç?ÿénÇPäé_E1ÒD‰AäéPÇÿéAÇûþé2H‹ŸÖÇ�ÿH‹8H…ÿ„€?„ H�uÀ1Òè¥'þÿH‰ÞãéõE1ÉD‰ KÿéæH‹SÖH‹8è-þÿH‰ŒþéËE1ÀD‰�ãé¼Ç.òé­1ÿ‰=!òé Çòé‘Çòé‚1ö‰5úñéuÇ#þéfƒ þ éZƒ%þßéNÇãé?1ɉ ãé2fƒ þâ@Çðâé1Ò‰ãâfƒ%ßâ¿éf� Ñâ€éøf�%Ãâÿéêf� µâéÜf�%§âÿþéÎf� ™âéÀf�%‹âÿýé²f� }âé¤f�%oâÿûé–f� aâéˆf�%Sâÿ÷ë}f� Hâ ërf�%=âÿßëgf� 2â€ë\f�%'âÿëQH‹=öüèi%þÿ1ÀH‰èüH‹©ÔHƒ8u H� ¸¦H‰H‹H�5•H‰ßè-þÿ…ÀtH‰ßèK+þÿH‰¬ü·5ÍáH�=5¯è&øÿÿ°ë1ÀH‹UÈdH+%(tè7)þÿHƒÄ[A\A]A^A_]ÃóúUH‰åAWAVAUATSHƒìèïöÿÿ‹Ðá…ÀuVŠnïƒâ€út<ƒ=Ëáu ¸@€úu)ƒ=Øü¸tH‹=~Û诎ÿÿHÁà%ü:á‰pቪáŠïƒà<„H‹VìH�?áE1äH�xèãèHƒ;„¡Lc{ L‰ÿM‰ýèjÍL‹sH‰Æ1À€{tH‰uÈè3öÿÿH‹uÈ…À”À¶À1ÒI�<èòH‰ÇèSö‹Sƒúu H‹fD‰*ë2ƒúuH‹D‰*ë%ƒúuH‹L‰:ëH�‘ؾH�=ºµ豃ÿÿE…äuH‰$ûAÿÄHƒÃ éUÿÿÿèSì‹Áù9·ùs+1ÿºH�5wRèr'þÿHƒÄ[H‰ÇA\1ÀA]A^A_]éjèHƒÄ[A\A]A^A_]ÃóúUH‰åAUATSRöæít1ÿºH�5–1è!'þÿH‰Ç1Àè'èŠÁíH�µ÷Шt1ƒ=5û‹ŸßH� ¨uH‹XH…Ût HƒÀ9PðuîëH�“×èïôÿÿ…Àu-H‰CÜölíu€=èuH‰ßè™ÎX[A\A]]é½úH‰ßèÅ&þÿH�xI‰Äè©"þÿH‰ÞI�T$Æ_I‰ÅH�xL‰ëè�-þÿë£óúö턦ƒ=­í„™UH‰åSQèeôÿÿA¹¹H�p±…ÀH�h±H‹="íH�5ËìHDÐE1Àè?$þÿH‰ÃH…Àu1ÿºH�5+èô%þÿH‰Ç1Àè:Ô€xu&1ÒHƒx Æ@H‰P(uH‹=¤ìH;G0tH‰ÆèÎ(þÿ€KX[]ÃÃóúUH‰åAUATSH‰óRH‹F0ƒ=aÞÿL‹fÆGH‰G0H‹F(H‰G(uqL‹oº1ÿH�5I0èl%þÿL‰âH‰ÇL‰î1Àèlæ€=‰ùuAºH�5×,1ÿè@%þÿH‰Ç1ÀèFæºH�5ò,1ÿè#%þÿH‰Ç1Àè)æÆFùH‹{X[A\A]]é2ýóú€uÿ¢ú°ÃóúÇŠ�ëƒà<u€=ÄìH�]³H�j³HEÂÀ=»ìH�k³t)€=—ìH�p³tƒ=ïëH�ˆ³H�m³HDÂÃóúH‹H‹¸H9ÊrƒÈÿH9Ñr‹V ¸9W œÀ¶À÷ØÃóúëÈóú€uÿ$ø°ÃUHƒÇH‰åèL þÿH‹%ùH‰ùHƒÀH‰Pø]ÃH‰ðH øtH…ÿtH…öu HƒÿÀƒÈÃéÓ'þÿ1ÀÃUH‰åAVI‰þH‰÷AUI‰ÕATI‰ÌSI‹6D‰Ãèºÿÿÿ…Àu&I‹vL‰ïèªÿÿÿ…ÀuI‹vL‰çèšÿÿÿ…Àu‰ØA+F[A\A]A^]ÃUH‰åAVI‰þH‰ÏAUI‰õATI‰ÔSI‹vD‰ÃH…ötHƒÆè[ÿÿÿ…Àu/I‹vL‰ïèKÿÿÿ…ÀuI‹6L‰çè<ÿÿÿ…ÀuA9^ t žÀ¶À�Dÿ[A\A]A^]ÃóúH‹GH…ÀuH‹H‹VH…ÒuH‹H‰ÖH‰Çéì&þÿóúëÓóúH‹6H‹?é×&þÿóúëëH‹=ê÷H…ÿuÃUH‰åH‹H‰Ö÷èÑþÿH‹=Ê÷H…ÿuå]ÃH‹5Ô÷‹Ö÷H‰ùH…öuH�5²±H�=º±1Àé©ã‹5GÛ…öx6UH‹GH‹€€H‰åÿPx„Àu1ÿºH�5“-èf"þÿ]H‰Ç1Àékã]ÃÃUH‰åAWAVI‰þAUATL�%2ÛSM‰å1ÛQIƒ<$tB1ÀA€|$M‹|$t èAðÿÿ…À”À¶ÀI�<L‰öIƒÄ èè%þÿ…ÀuHcÛHÁãA‹DëÿÃë·1ÀZ[A\A]A^A_]Ãóú€u~UH‰åAUATI‰üSQHcv÷H‹HÁãH_÷èÒ#þÿ¾@H‰HcS÷1ÀI‰ÝHÁãH;÷H‹;€?@”ÀHÇè""þÿH…ÀtÆ@I‹D$AÿÅD‰-÷H‰C°Z[A\A]]ðÃóú€u~UH‰åAUATI‰üSQHc#õH‹HÁãH õèG#þÿ¾@H‰Hcõ1ÀI‰ÝHÁãHèôH‹;€?@”ÀHÇè—!þÿH…ÀtÆ@I‹D$AÿÅD‰-ÇôH‰C°Z[A\A]]ðÃUH‰åATSH‰ûH…ÿtèê þÿL�`L‰çèuüÿÿH‰ÞL‰áH‰ÇH‰Ãó¤H‰Ø[A\]ÃóúéUH‰åAWM‰ÏAVI‰þAUL�-¯ATSHƒì8H‰M¸D‰E´dH‹%(H‰EÈ1ÀH…ÒtI‰ÕH‰÷H‰u¨ÆEÇèr þÿL‰ïH‰Ãèg þÿL�dL‰çèJþÿL‹E¨M‰éL‰âH‰ÇH‰Ã¾1ÀH� 5¯èW,þÿH‰ÚM‰ùM‰ðPH�EÇP‹M´H‹u¸H‹=:õèZ•ZYH‹EÈdH+%(tè þÿH�eØH‰ß[A\A]A^A_]é¹þÿóúUH‰åAWAVAUI‰õATSH‰ûHƒìH‰U¤dH‹%(H‰EÈ1ÀŠ6æƒà<tF¾$L‰ïM‰ìè þÿH‰E¨H…Àt6I‰ÆM)îM�~L‰ÿètþÿL‰ùL‰òL‰îI‰ÄH‰Çèp#þÿCÆ4ë 1ÿI‰ôH‰}¨1öH�E¸ƒ}¤H‰u¸H‰E˜H‰EÀua1Ò1öL‰çE1ÿèÙšI‰ÆM…ötYI‹F8H…Àt*‹@$…Àt3C$¨uH‹}˜M‰ð1É1ÒH‰ÞèWXÇE¤„ëM‰÷L‰÷è£ÇE¤„I‰Æë±E1ÿE1öM…ö…M…ÿtI�M‰ø1É1ÒH‰ÞM‰þè Xé^M…ö…õƒ=àóuUH� ?ÝL�¹ðH‹9H…ÿt,1Ò1öH‰M�è#šH‹M�H‰AH…Àtƒ¸˜u ‹Q‰�˜HƒÁ0L9ùuÃljóŠËäD‹K$H‰Þƒà<tiH‹¾àD‰M�èÝ#þÿD‹M�H…ÀH‰ÆtMHƒ~`H‹ŽàuÖ‹F$‰Â‰ÇD1Ê�瀃â úu¿öAD@u¹H‹‘H…ÒtöB`u§AƒñƒðA ÁAƒñë—E1ÿA÷Á„¢L�=ÝA÷ÁtJIƒï0A÷Át=I�ï�A÷Áu-ºH�5ãªL‰çD‰M�èßþÿM�G`D‹M�…ÀI�G0IEÀI‰ÇIƒuI‹?1Ò1öD‰M�èó˜D‹M�I‰GM‹wM…öu I�W1ÉD‰ÎH‰ßè±I‰ÆH…ÀuL‹5ÂàH�5좿èAê¿H‰ÆèTíL‰ñM‰øL‰æI‰ÁP‹U¤H‰ßÿu˜è¹eZYI‰ÆŠ^ãƒà<u‹K|¿ÓçèØÁ‹S|I‰FhI‹F8‰P|I‹^M�fH…Ût=ƒ{u/H‹C¾$L‹8L‰ÿèþÿH…ÀtHƒ}¨tL‰þL‰ïè, þÿ…ÀxI‰ÜH‹ë¾Hƒ}¸tH‹EÀH‰H‹E¸I‰$H‹EÈdH+%(tèVþÿH�eØL‰ð[A\A]A^A_]ÃóúŠB`ƒàþÈ…+UH‰åAWL�=U²AVAUI‰õATI‰ÔSQƒ=4ñL‹rtKI‹}èñþÿL‰÷I‰ÇèæþÿH‹=GïH‰Ã‹ ñM�|1ÀH…ÿt+èÅþÿë$è¾þÿH9Ãs‰çðIƒÇI‹?‹ÚðH…ÿuÞë¥LûHÃH‰ßè�þÿI‹uH‰ÚH�ñH‰ÇI‰Çè˜ þÿÆ/L�hH‹ H…Ét\€{t*L‹ÄîM…ÀuHƒÃëàM‰ñHƒÊÿ¾L‰ï1Àè['þÿëM‰ðHƒÊÿ¾L‰ï1ÀèC'þÿL‰æL‰ÿèX.„Àt½M‰|$ë L‰ÿèÕþÿ1ÀZ[A\A]A^A_]Ã1ÀÃóú騳ÿÿUH‰åAUATI‰üS‰óRL‹-õïA‹E0�Pƒâü9Ð|/ƒÀI‹}8ƒàüH˜HkÀ(H…ÿtH‰ÆèzþÿI‰E8ë H‰ÇèŒþÿI‰E8H‹±ï¹Lch0MkíLh81ÀL‰ïó«L‰çèaþÿI‰EöÃtAÆEöÃtAÆEöÃtAÆE€ãtAÆEH‹^ïÿ@0X[A\A]]ÃUH‰åS‰ûR‹ýî9ïu:H‹=ï�P2ƒÀ3‰âîH˜H…ÿtH‰ÆèËþÿH‰ìîëH‰ÇèÚþÿH‰ÛîHcÜîH‹ Íî�Bˆ‰ÉîH˜ÆX[]ÃUH‰åAWAVAUI‰õATA‰ÔSHƒì€?„äI‰þè·þÿH‰ÃI9ÆtVE…äH�„¨H� o‚D‹=gîHEÈH‹Tîº1ÿH�5Ž$H‰MÀH‰EÈè!þÿH‹MÀH‹uÈM‰ðH‰ÇD‰ú1ÀèÚL‹5RîI‹>èúþÿ¾.H‰ßè�þÿH…ÀuRE…äH‰ßH�i§L�=�LEøèûþÿH�xèâþÿM‰ùI‰ØHƒÊÿI‰H‹þíH� ^{¾H‹81Àèè$þÿë H‰ßè®þÿI‰H‹ÔíL‰hD‰`HƒÄ[A\A]A^A_]ÃH‹&íH…Òt ƒÈÿH;gír"ÃUH‹=íH‰åè4þÿƒø u Çií]ÃH�BH‰è쾃ø u ÇJíÃÃUH‰åATI‰ôSHcVH‰ûH‹6è[þÿ…ÀuBIcT$H�<Š€ú-u&¶wH‹ ÃH�WöqtŠJHÿ€ù.t„Éuñë 1À€ú.•À÷ØëƒÈÿ[A\]ÃUH‰åAVL�5ðÓAUM‰õATI‰üS1ÛHƒìdH‹%(H‰EØ1ÀI‹>H…ÿ„�L‰æèLþÿ…Àu"‹2ЉEÔÿÀu-H�MÔE1À1Ò1öL‰çèx"þÿëI‹~L‰æIƒÆ(èþÿ…ÀtÊÿÃ뮋EÔƒøÿuH�˾ÅH�=J¦èsÿÿ…ÀHcÛ•ÀHkÛ(IÝAˆE¶ÀL‰-±è‰»ÏH‹EØdH+%(t-èþÿºH�5c"èÆþÿL‰æH‰Ç1ÀèÉ׿è!þÿXZ[A\A]A^]ÃUH‰åAWI‰÷AVAUI‰ýATI‰ÔS1ÛHƒìXdH‹%(H‰EÈ1ÀH…ÿtH‹ŸèH…Ût H‹;è°þÿH‰ÃMcw@L‰e°L‰e E…ötdH�E M‹OHE1ÀH‰E˜M9ðsPK�H‹}˜L‰E€HÑêL‰M�HkÊ(H‰UˆM�< L‰þèÞòÿÿL‹M�H‹Uˆ…ÀL‹E€xt L�Bë¼I‰Öë·M…ÿt1À鿃=™ÎuL‹5xëL�=%‘éEƒ=Yét:M‹…è1ÀL‰éL‰âH�5m!¿è#þÿH…ÛuI‹}L�5ƒ¥èÞþÿI‰ÇëFH…Ût&L�5-¦ëL‰öH‰ßè\ýÿÿ…À„yÿÿÿIƒÆIƒ>uãM…ítë¹L‰ÿè/þÿ…À„XÿÿÿIƒÆI‹6H…öuäH‹ôæL‹p ëL‰çèþÿ…À„/ÿÿÿIƒÆI‹6H…öuäL�5{¤I‹6H…ötIcVL‰çè‡þÿ…À„ÿÿÿIƒÆëÞL‰çL�5¤è þÿA‰ÇH˜H‰E˜I‹6H…ö„æþÿÿIcFD9øH‹}˜�PHcÒH)ÇLçè7þÿ…À„°þÿÿIƒÆëÈA‹Fƒøu7H…Ûu M‹vM…öuéëRI‹6H‰ßèuþÿ…À„~þÿÿI‹6L‰ÿè’þÿ…ÀuÓéjþÿÿI‹6ƒøuI‹}èHþÿ…Àu¹éPþÿÿL‰çèþÿ…Àu¨é?þÿÿ¸H‹UÈdH+%(tèUþÿHƒÄX[A\A]A^A_]ÃU¾H‰åAVAUL�-;£ATA‰üL‰ïSèdŒH‹5ÝÚL‰ïH‰Ãè²þÿH‰ÃéH‰C0H…Àu1ÿºH�5£è¯þÿH‰Ç1ÀèõÁH‹@H‹=šÚL‹° è.þÿH‹=‡ÚI‰ÅèßþÿH‹=péL‰ê‰ÆAÿÖ„ÀtªH‹=]éE„ätJH�5È¢èþÿH‰åèH‰ÇH…ÀuºH�51ëO¾A è�þÿ„ÀtäH‹5ÚèH‹=³èèÖþÿH‹=éH�5~¢èÃþÿH‰tèH‰ÇH…Àu%ºH�51ÿèáþÿ[A\H‰ÇA]1ÀA^]éßÓ¾A è%þÿ„ÀtÍH‹=2è1öèsþÿH‰ß[A\A]A^]éƒ*óúU¿ˆH‰åè±þÿ¹"fvÀH‰Â1ÀH‰×ó«ÇBÿÿÿÿH‰ÐHÇBÿÿÿÿHÇBhÿÿÿÿB ]ÃóúUH‰åAWM‰ÏAVI‰öAUI‰ýATI‰ÔSL‰ÃHƒì8‰MÈH…ÒtH…ötëH…öt M…äMDæëI‰ÖA‹E@AƉEÌI‹EHƒ}ÌH‰EÀtD‹EÈH‰ÙL‰âL‰öH‰Çèüíÿÿ…ÀuAÆE1Ééƒ}ÌA¹„‹EÌD‹EÈH‰ÙL‰âL‰ö�xÿH‹EÀ‰}¸Hkÿ(HÇè´íÿÿ…À�ÔD‹M¸t E1Òƒ}Ìu…À…ÁAÆé¸L‰m¸H‰ÙE‰ÍL‰}°M‰çE‰ÔC�,H‹EÀD‹EÈL‰úÑëL‰öH‰M¨‰ßHkÿ(HÇèRíÿÿH‹M¨…ÀuM‰üL‹}°A‰ÛL‹m¸H‰ËE‰ÙAÆë\yD�kÿëD�cE9ìr§D‰çL‹m¸H‹EÀM‰ü‰}¸Hkÿ(D‹EÈL‰âL‰öH‰ËL‹}°HÇèñìÿÿD‹U¸…À~E�JëuAÆE‰ÑëD‹MÌD‰ÊHkÒ(A€?t L‹}ÀI×é–A‹uD9uÌr(ƒÆ@H‹}ÀH‰U¸A‰uDHkö(D‰MÌè†þÿH‹U¸D‹MÌI‰EHIUHI‰×A‹U@D9ÊtD)ÊI�(L‰þHkÒ(è7þÿ1À¹ L‰ÿó«L‰÷ècþÿL‰çI‰èXþÿI‰GH…Ût H‰ßèGþÿH‰Ã‹EÈI‰_A‰GAÿE@HƒÄ8L‰ø[A\A]A^A_]ÃUH‰åAWE1ÿAVAUATE1äSH��ÀøÿÿI‰ÝH�ìhdH‹%(H‰EÈ1ÀH�…ÿÿÿH‰�xøÿÿÇåþÿÿÿH‰…¨øÿÿH‰… øÿÿHÇ…˜øÿÿÈD‰¥”øÿÿH‹…¨øÿÿH‹µ˜øÿÿDˆ8H‹… øÿÿH�D0ÿH9…¨øÿÿ‚âH‹�¨øÿÿH‹… øÿÿH)ÃL�kH�þ'�‡ H‰ò¸'HòH9ÂHNÂH�<ÀH‰…˜øÿÿHƒÇèÆþÿI‰ÄH…À„U H‰ÇH‹…˜øÿÿL‰éH‹µ øÿÿó¤¹IÁåH‹µxøÿÿHƒÀH™H÷ùL‰éM�4ÄH�…ÿÿÿL‰÷ó¤H9… øÿÿt H‹½ øÿÿèà þÿI�O�l.øH‰…¨øÿÿH‹…˜øÿÿI�DÿH9…¨øÿÿƒü L‰µxøÿÿL‰¥ øÿÿAƒÿI„Ð Mc÷H�èÈB¾0‰…ˆøÿÿƒø«„zƒ=½ãþ…½D‹%ˆãE…ät1Û‰{ãD‰ã雃ø uƒ=cãt?è»õÿÿ‰Ãƒøÿuæésƒø táƒ=Dãt ƒø;uè—õÿÿƒøÿtƒø uñ롃ø tœéEH‹5'¹¶ÃE1ÛD‰ãf‹F¨t_E1ÒD‰øâöÄuƒûxu'¾ûè³óÿÿèDõÿÿ‰ÃƒøÿtH‹5㸶ÀöDFtÖëÙ‰ßè�…H‹=±â»è±ìÿÿH‰ÐâéÓf%ˆf‰…€øÿÿu‰ÞH�=Úœèø þÿH…À„E1ɾûD‰ râè:óÿÿèËôÿÿ‰Áƒû@t H�®œëEH‹5a¸¶Àf‹F¨…r¨t݉Ïè…ébH‹;¸¶ÁöBŒt¾ùèçòÿÿèxôÿÿ‰ÁƒùÿuÜë"‰ÎH‰ß‰�pøÿÿèl þÿ‹�pøÿÿH…ÀuωÏè·„fƒ½€øÿÿH‹Óát`L‰µ€øÿÿH�K¡M‰îI‰ÕH‹;H…ÿt7L‰îHƒÃèaþÿ…Àu"McäH�#¡M‰õL‹µ€øÿÿIÁäB‹\ é»AÿÄëÁL‰êM‰õL‹µ€øÿÿH‰×èsëÿÿëuƒû,„–(ƒû"t2ƒû't-ƒû …Êýÿÿÿ;áÇEáéµýÿÿƒû.tgƒû=tFé¦ýÿÿè‹óÿÿE1ÀD‰áƒøÿt9Øt¾øèÚñÿÿèkóÿÿëèH‹=÷àèüêÿÿH‰á»ëèJóÿÿ‰Çƒø=t 訃ë 1Û뻉úàHcóà…À 1ÿ1Ò‰=åàë-=uÇÒàé+ º=w H�ªÄ¾‹…ˆøÿÿÐ=¡w]H˜H� .ÿ A9ÑuLH�¿ÁL¿ÿàI‹}øI‹u1ÒèÖðÿÿénI‹}øI‹uºè¿ðÿÿéWL‹=’ßI‹E1ÉM‹wH‰…ˆøÿÿM…öt L‰÷èT þÿ‰ÁH‹½ˆøÿÿ‰�pøÿÿè@ þÿ‹�pøÿÿ�DH˜M…öt+L‰÷H‰Æèô þÿH‹µˆøÿÿI‰GH‹2ßH‹xè©þÿéâH‰ÇèìþÿH‹µˆøÿÿI‰GH‹ ßH‹xè�þÿéºfAnEøfAnMH‹éÞfbÁfÖ@ é™fAnEøfAnUH‹ÈÞfbÂfÖ@(éxA‹uH�=í˜èŸîÿÿécA‹uH�=�–èŠîÿÿéNH‹‰ÞA‹U1ö‰Ph‰plé6fAnEðfAn]H‹eÞfbÃfÖ@hé¿M‹uèþÿI‰ÇH‹/ÞL‰÷L‰=%ÞI‰èý þÿL‰÷I‰Gè þÿA‰GéÖI‹EðA‹MH‰�pøÿÿE1öH‰…ˆøÿÿH‹øÝ‰ËL‹xpM…ÿt,I‹H‹µˆøÿÿèm þÿ…Àu A‹G)Ø„„…ÀM‰þM‹?ëÏ¿‰��øÿÿH‹�pøÿÿèzþÿH‹½ˆøÿÿI‰Çèk þÿ‹��øÿÿI‰GA‰OM…öuH‹�ÝH‹PpI‰L‰xpé/I‹I‰M‰>é!I‹UØM‹EÆ…¿øÿÿE‹uðA‹MàI‹uÐH…ÒuH…öHEÖH‹=5ÝL��¿øÿÿè{õÿÿ€½¿øÿÿ…ÚA÷ÆtÆ@"A÷ÆtÆ@!A÷ÆtÆ@#Aƒæ„©Æ@ é ¸ÿÿÿÿHÁà H!Ãé�¸ÿÿÿÿHÁà H!ØHƒÈH‰Ãéw¸ÿÿÿÿHÁà H!ØHƒÈH‰Ãé_¸ÿÿÿÿHÁà H!ØHƒÈH‰ÃéG¸ÿÿÿÿHÁà H!ØHƒÈH‰Ãé/I‹MøI‹UèAƒÈÿI‹uØI‹}ÈM‹Mèuæÿÿé I‹UèI‹uØ1ÉI‹}ÈM‹ME‹EøèUæÿÿéíI‹MøI‹uèAƒÈÿ1ÒI‹}ØM‹Mè5æÿÿéÍI‹uèI‹}Ø1É1ÒM‹ME‹Eøèæÿÿé¯I‹MøI‹UèAƒÈÿ1ÿI‹uØM‹Mè÷åÿÿé�I‹MøI‹uèAƒÈÿ1ÒM‹M1ÿèÙåÿÿéqI‹}øA‹uè›ëÿÿé_I‹UI‹}ø1öŠ„ÀtAƒø«tÿÀ=¡wH˜fƒH…ÿ„�L‰æè©üýÿ…Àu"‹c®‰EÔÿÀu-H�MÔE1À1Ò1öL‰çèÕþÿëI‹~L‰æIƒÆ(èsüýÿ…ÀtÊÿÃ뮋EÔƒøÿuH�쬾ÅH�=§‡èlTÿÿ…ÀHcÛ•ÀHkÛ(IÝAˆE¶ÀL‰-f̉ì­H‹EØdH+%(t-ètøýÿºH�5Àè#øýÿL‰æH‰Ç1Àè&¹¿èlþÿXZ[A\A]A^]ÃóúUH‰åAWAVL�5^AUA‰õATSHƒìèýùýÿL‰öH‰ÇI‰Äè¿þÿH‰ÃH…Ût\¿èÝóýÿH‰ßI‰Çèâ÷ýÿH�PH‰×H‰UÈèÂóýÿH‹UÈH‰ÞI‰H‰Çè°þýÿE‰oL‰ö1ÿH‹XËL‰=QËI‰Gè`þÿH‰ÃëŸHƒÄL‰ç[A\A]A^A_]éUóýÿóúUH‰åAWI‰÷AVAUI‰ýATI‰ÔS1ÛHƒìXdH‹%(H‰EÈ1ÀH…ÿtH‹ŸèH…Ût H‹;è]úýÿH‰ÃMcw@L‰e°L‰e E…ötdH�E M‹OHE1ÀH‰E˜M9ðsPK�H‹}˜L‰E€HÑêL‰M�HkÊ(H‰UˆM�< L‰þè‹ÓÿÿL‹M�H‹Uˆ…ÀL‹E€xt L�Bë¼I‰Öë·M…ÿt1À鿃=&¬uL‹5]ÊL�=ÒqéEƒ=¢Çt:M‹…è1ÀL‰éL‰âH�5¿èÐýýÿH…ÛuI‹}L�5°ˆè‹ùýÿI‰ÇëFH…Ût&L�5Z‰ëL‰öH‰ßè Þÿÿ…À„yÿÿÿIƒÆIƒ>uãM…ítë¹L‰ÿèÜùýÿ…À„XÿÿÿIƒÆI‹6H…öuäH‹ùÉL‹p ëL‰çè³ùýÿ…À„/ÿÿÿIƒÆI‹6H…öuäL�5¨‡I‹6H…ötIcVL‰çè4óýÿ…À„ÿÿÿIƒÆëÞL‰çL�5<‡è·õýÿA‰ÇH˜H‰E˜I‹6H…ö„æþÿÿIcFD9øH‹}˜�PHcÒH)ÇLçèäòýÿ…À„°þÿÿIƒÆëÈA‹Fƒøu7H…Ûu M‹vM…öuéëRI‹6H‰ßè"ôýÿ…À„~þÿÿI‹6L‰ÿè?òýÿ…ÀuÓéjþÿÿI‹6ƒøuI‹}èõóýÿ…Àu¹éPþÿÿL‰çèÄøýÿ…Àu¨é?þÿÿ¸H‹UÈdH+%(tèõýÿHƒÄX[A\A]A^A_]ÃóúU¾H‰åAVAUL�-äƒATA‰üL‰ïSè mH‹5†»L‰ïH‰Ãè[÷ýÿH‰tÈH‰C0H…Àu1ÿºH�5°ƒèXôýÿH‰Ç1À螢H‹@H‹=C»L‹° è×úýÿH‹=0»I‰ÅèˆùýÿH‹=!ÈL‰ê‰ÆAÿÖ„ÀtªH‹=ÈE„ätJH�5qƒè½ñýÿH‰ÆÇH‰ÇH…ÀuºH�5ÚÿëO¾A è6ÿýÿ„ÀtäH‹5»ÇH‹=”ÇèùýÿH‹=¸ÇH�5'ƒèlñýÿH‰mÇH‰ÇH…Àu%ºH�5¹ÿ1ÿèŠóýÿ[A\H‰ÇA]1ÀA^]鈴¾A èÎþýÿ„ÀtÍH‹=+Ç1öèùýÿH‰ß[A\A]A^]é, óúUH‰ùH‰åATI‰ôSH‰ûH¿!Š„Àt:�pÞ@€þ:wH£÷r!L‹Rž¶ðAöp@u<;@”Æ<,”À@ÆtºHÿÁëÀL‰æ…ÒtF¿"èÍöýÿŠ„Àt%<"t<\u L‰æ¿\è²öýÿ¾;L‰æHÿÃè¤öýÿëÕ[L‰æ¿"A\]é‘öýÿH‰ß[A\]éÕóýÿóúUH‰åAWAVI‰öAUA‰ÕATI‰üSHcÙAP‹lÇ�Pÿ;_Ç;ƒÀ H‹=KljQÇH˜HÁàH…ÿtH‰ÆèBóýÿH‰+ÇëH‰ÇèQîýÿH‰ÇLc=Ç1ÀD‰îL‰çIÁçL=ÇM‰wI‰GèƒòýÿH‹ ÆI‰GHcéÆH� ÙH‰ÂHÁàHÏÆÿÂH‰‰ÌÆZ[A\A]A^A_]ÃóúUH‰åSH‰ûAPH‹£ÆH‰Gh‹=¡Æ‰{xÿÇHcÿHÁçè¸íýÿHc ‰Æ1ÒH‰Cp9Ñ~H‰ÖHÁæHshH‰4ÐHÿÂëè1Ò1öƒK$H‰È1ÉH‰ NƉ5TƉ5JÆ_[]ÃóúUH�C�¾H‰åAWAVAUATSH‰ûH�}ÀHƒì(D‹GÅH‹ 8ÅdH‹%(H‰EÈ1Àè”ôýÿƒø ¿èUûýÿH‹}ÀH‰ÞÿÅL�%Þ}è¼óýÿH‹}ÀH‰ÃèÐìýÿH‹áÄH‰ÞH‹xèÝúýÿH‰ßè5îýÿ¾H‰ßè(õýÿH‹¹Ä1ÒH‰ß‹pH‹Cÿ� 1ö¿0‰5’Äè�ìýÿºH�5.|H‰ßH‰oÄèwcºH�5b€H‰ßI‰Æè`cºH�5Ö{H‰ßI‰ÅèIcL‰áM‰ðH‰ßI‰ÇH‹9ÄH�5«}H‹3ÄA¹€xH�’}HEðè’cH‹ ÄH‰ßH‹ÄH� §{A¹€xH� vIDÄH‰ÆH‹*›L�€èOc¾L‰÷èiõýÿ¿è¿ëýÿ¹I‰ÄI‰† 1Àƒ=çÀL‰çó«t AÆD$AÆ$1ö¹º?H‰ßèÌüÿÿ¹º?H‰ß¾ èµüÿÿ¹º?H‰ß¾èžüÿÿL‰÷ècýÿÿƒ=„Àt¾L‰ïèÕôýÿë 1öL‰ïèÉôýÿ¿èëýÿ1Ƀ=VÀI‰… H‰E¸H‰t¾L‰ÿè™ôýÿë 1öL‰ÿè�ôýÿ¿èãêýÿ1ÒH‹5ÂÂH‰ßI‰‡ H‰‹·ÂH‰E°ènòýÿ1ÉA¸L‰âL‰öH‰ßèøïýÿƒ=á¿tH‹U¸A¸1ÉL‰îH‰ßèØïýÿA¸ëH‹U¸E1À1ÉL‰îH‰ßè¼ïýÿE1ÀH‹U°1ÉH‰ßL‰þè¨ïýÿH‰ßè0ìýÿH‹EÈdH+%(tè\îýÿHƒÄ(H‰Ø[A\A]A^A_]ÃóúUH�ÿ}¾H‰åAWAVAUATSH‰ûH�}ÀHƒì8D‹ÂH‹ ôÁdH‹%(H‰EÈ1ÀèPñýÿƒø ¿èøýÿH‹}ÀH‰ÞÿÌÁèðýÿH‹}ÀH‰Ãè“éýÿH‹¤ÁH‰ÞH‹xè ÷ýÿH‰ßèøêýÿ¾H‰ßèëñýÿH‹|Á1ÒH‰ß‹pH‹Cÿ� 1À¿(‰UÁè`éýÿºH�5ËxH‰ßH‰2Áè:`ºH�5%}H‰ßI‰Çè#`ºH�5}H‰ßH‰E¸è `H�5ìyH‰ßH‹ÁI‰ÅH‹óÀA¹H� ”xM‰è€xH�ýrHEðE1äèM`¾L‰ÿègòýÿ¿è½èýÿ1ÒH‹}¸¾I‰‡ H‰H‰E¨è?òýÿ¿è•èýÿH‹=fÀ1ÉI‰ÂH‹E¸L‰U°L‰� I‰ è‚ìýÿL‰ï¨A”ÄAÄAÿÄMcäL‰æèøñýÿL‰çèPèýÿH‹5!ÀL‰âI‰… I‰ÆH‰Çè4óýÿCÆD&ÿ‹ÀH‰ßH‹5ÀèÉïýÿH‹U¨1ÉL‰þA¸H‰ßèRíýÿH‹U°H‹u¸1ÉA¸H‰ßè:íýÿ1ÉH‰ßM‰àL‰òL‰îè'íýÿH‰ßè¯éýÿH‹EÈdH+%(tèÛëýÿHƒÄ8H‰Ø[A\A]A^A_]ÃóúUH‰åAWAVAUATI‰üSH‰óHƒìh‰U¸L‹wdH‹%(H‰EÈ1À€"udH‹#²1É1ÒL‰öH�¸€èèïýÿH…ÀtEH‹@H…ÀtL‹pH‹7¿€xt+A€>_u%IÿÆë H�5·÷1ÿºèûêýÿL‰öH‰Ç1Àèþ«€}¸tzH‹ù¾‹@ÿȃøwQH�ô�Hc‚HÐ>ÿàÇE¼L�-ŸëbÇE¼L�-ØžëRÇE¼ L�-¸žëBÇE¼L�-˜žë2H�מ¾S H�=ªyèoFÿÿE1ÉE1íD‰M¼ëÇE¼ L�-”žD‹u¾1ÀH�}À¾H‹ [¾H�5zè¿íýÿƒø ¿è€ôýÿH‹}ÀH‰Þÿ;¾èîìýÿH‹}ÀH‰ÃèæýÿH‹¾H‰ÞH‹xèôýÿH‰ßègçýÿ¾H‰ßèZîýÿH‹ë½1ÒH‰ß‹pH‹Cÿ� E1À¿`D‰½èÍåýÿºH�5wiH‰ßH‰Ÿ½è§\ºH�5›yH‰ßH‰E°è�\ºH�5zyH‰ßH‰Eˆèw\ºH�5ítH‰ßH‰E¨è_\ºH�5\yH‰ßH‰E€èG\A€>@H‹G½H‰E H‹4½……€xH�5œvH‰ßA¹H�‹vL�=ñuHEðH‹Q”L‰ùL�€ès\€}¸tL‹E°A¹L‰ùL‰òL‰þH‰ßèR\L‹E¨A¹L‰òH‰ßH� ŸuH�5Ãxè/\éé€xH�5vH‰ßA¹H�vL�=luHEðH‹Ì“L‰ùL�€èî[€}¸t.H‹`¼L‰ùL‰òH‰ßH�5unL‹E°A¹€xID÷èº[L‹E¨A¹L‰ñH‰ßH‹"¼H�@nL�=ùtH�5x€zH‰ÂID×è~[A€|$#t5L‹E A¹L‰ñH‰ßH‹Þ»H�ümH�5cs€zIDÇH‰ÂèA[ƒ=á¸t#L‹E¨A¹L‰òH‰ßH� …tH�5¨wè[€}¸„Lcu¼H‹}°L‰öè"íýÿL‰÷èzãýÿL‰òL‰îH‰E�H‹E°H‹M�H‹}�H‰ˆ L‰ñèeëýÿH‹F»‹@ÿȃø‡¢H�Uš¹Hc‚HÐ>ÿຠ¾H‰ßècôÿÿé�1öH‰ßºÆèOôÿÿ1É1öH‰ßºÇè>ôÿÿ¹ºÇH‰ß¾è'ôÿÿëTº¾H‰ßèôÿÿë@1öH‰ßº.èôÿÿ¹º/H‰ß¾èëóÿÿëH�Ïš¾² H�=¢uègBÿÿH‹}°è•ôÿÿëH‹}°1öèìýÿ1ÿH‰}�H‹}ˆ¾èüëýÿ¿èRâýÿ1Ò1öH‰ßH‰…xÿÿÿH‹EˆH‹�xÿÿÿH‰ˆ ‰¹º?èlóÿÿH‹}ˆè0ôÿÿH‹}¨¾èªëýÿ¿èâýÿ1öH‰E˜H‹E¨H‹M˜H‰ˆ A€|$"H‰1tfA‹D$ÆA€f‰ëH‰ß¹º?1öèóÿÿH‹}¨èÌóÿÿH‹}€¾èFëýÿ¿èœáýÿI‰ÆH‹E€L‰° 1ÀA€|$"I‰tfA‹D$AÆF€fA‰ë%1ö¹º?H‰ßè§òÿÿH‹}€èkóÿÿA€|$"tH‹} 1öE1íE1ÿèÚêýÿé I‹|$H…ÿuI‹<$è2åýÿH‹} D�hD‰èƒàƒøAƒÝÿIcÅH‰ÆH‰…pÿÿÿè›êýÿIcýèóàýÿIcÍ1öI‰ÇH‹E H‰ÊL‰ÿL‰¸ èÅîýÿA‹D$…ÀyA‹D$fA‰IcÕ¸I�H9…pÿÿÿI‹t$HBÐHƒêH…öuI‹4$è•ëýÿ‹¸H‹5p¸H‰ßè0èýÿ€}¸tD‹E¼H‹U�1ÉH‰ßH‹u°è´åýÿH‹•xÿÿÿH‹uˆ1ÉH‰ßA¸è™åýÿH‹U˜H‹u¨1ÉA¸H‰ßè�åýÿH‹u€1ÉL‰òA¸H‰ßèjåýÿA€|$"uH‹u McÅ1ÉL‰úH‰ßèNåýÿH‰ßèÖáýÿH‹EÈdH+%(tèäýÿHƒÄhH‰Ø[A\A]A^A_]ÃóúUH� ÓsºH‰åAVI‰þAUATL�¥ØþÿÿSH‰ó¾H�ìD‹]¸dH‹%(H‰EØH‹L‰çH‹L‹(A�@‰:¸1Àè›ïýÿL‰çèsãýÿL‰æH)ÉÁ1ÀH‰ßH‰…ÐþÿÿH‰Úó¤H��ÐþÿÿL‰îH�=É©I‹EM‹NL‹·H‹€€Q¹jjjÿ�8H‹…ÐþÿÿH‹@H‹UØdH+%(tèãýÿH�eà[A\A]A^]ÃóúUHcöH‰åATI‰Ô1ÒSH‰ûHƒìdH‹%(H‰Eè1Àè÷îýÿ…Àt AÆ$1ÀëH�}æH‰Ú¾èIèýÿHƒøuà·EæH‹UèdH+%(tè›âýÿZY[A\]ÃóúUHcöH‰åATI‰Ô1ÒSH‰ûHƒìdH‹%(H‰Eè1Àè†îýÿ…Àt AÆ$1ÀëH�}äH‰Ú¾èØçýÿHƒøuà‹EäH‹UèdH+%(tè+âýÿZY[A\]ÃóúUH‰åAWAVAUATSH‰ûH�=8HH�ì˜dH‹%(H‰EÈ1ÀèÊÿÿH‹S0ÆE§ŠBHƒàþÈ…H‹‚ŠHuˆM§„É„jƒ¸`ÆE§„YH‹CH‰E�H‹#³H‹}�H‹0èçàýÿºH�5oI‰ÇH…Àt)H‹}�èÚ ¾L‰ÿè½ëýÿˆE§„Àu&ºH�5 ë1ÿèáýÿH‹u�H‰Ç1Àè¢éãL�u½¾<L‰ÿÆE½L‰òè”þÿÿ€}½A‰Äu¹A�t$tL‰òL‰ÿè{þÿÿ€}½u£…À„¤A�t$xL‰òL‰ÿè]þÿÿA�t$|L‰òL‰ÿA‰ÅèJþÿÿ€}½‰Ã…lÿÿÿH…Û„lA�t$L‰òL‰ÿè´ýÿÿA�t$L‰òL‰ÿ‰ÀH‰…Xÿÿÿè›ýÿÿ€}½‰ÀI�DH‰E˜…%ÿÿÿD‰èL‹e˜H‰E¨1ÀH‰EˆH‹�XÿÿÿH9Mˆƒ¹A�t$ L‰òL‰ÿèÅýÿÿA�t$L‰òL‰ÿA‰Åè²ýÿÿA�t$L‰òL‰ÿ‰E€èŸýÿÿ€}½‰…xÿÿÿ…½þÿÿ1ÒL‰æL‰ÿè6ìýÿ…À…¨þÿÿH�}¿L‰ú¾è�åýÿHƒø…�þÿÿL9m¨r0‹E€LèH9E¨s$H‹M¨‹•xÿÿÿHÊL)êI‰ÔH�H9ÐsH)ÈH‰ÃëHÿEˆIƒÄ(é6ÿÿÿE1äE1ÛE1íE1ö1ÀL‰�xÿÿÿHÇ…`ÿÿÿL‰m€HÇ…hÿÿÿL‰uˆHÇ…pÿÿÿH‰…PÿÿÿH‰�HÿÿÿL‰¥@ÿÿÿH‹�XÿÿÿH9�PÿÿÿƒŸ‹E˜L�e½L‰ÿL‰â�pè üÿÿL‰âL‰ÿA‰Æ‹E˜�p èŒüÿÿL‰âL‰ÿ‰Ã‹E˜�p$èyüÿÿ€}½ÆEÇA‰Å…–ýÿÿH‹u˜1ÒL‰ÿèëýÿ…À…€ýÿÿL�e¿L‰ú¾L‰çèbäýÿHƒø…býÿÿH�5=^L‰çèYâýÿ…ÀuHI�ƒ=þ±H‰Eˆt+API‰ÁI‰ØL‰áAUH�`™¿1ÀH�5bèè½åýÿAYAZH‰�pÿÿÿé²H�5*jL‰çèþáýÿ…ÀuHI�ƒ=£±H‰E€u H‰�hÿÿÿé‚QL‹M€H�5èI‰ØAU¿L‰á1ÀH�ë˜èVåýÿ^_ëÉH�5|]L‰çè£áýÿ…ÀuDI�ƒ=H±H‰…xÿÿÿt)AVI‰ÁH�¯˜I‰ØAUL‰áH�5°ç1À¿èåýÿXZH‰�`ÿÿÿHÿ…PÿÿÿHƒE˜(éMþÿÿH‹�HÿÿÿL‹¥@ÿÿÿH‰ßètÙýÿ1ÒL‰æL‰ÿI‰Æè¤éýÿ…À…üÿÿL‰úH‰ÞL‰÷èþâýÿH9Ã…ÿûÿÿH‹E¨M‰õI)ÅHƒ=³u èiÊÿÿH‰³A‹F E‹~A‹^ E‹fL‹5î²LèH‰ÆH‰E¨I‹~PèVSH…Àt)ƒ=c°„°H‹U¨H�5¥j¿1Àè2äýÿé”D‰øH‹M¨L‰÷D‰þH‰E�D‰àE1öH‰…XÿÿÿI�D‹H‰E˜LêèìP…ÀˆaL‰­PÿÿÿE1䉅HÿÿÿH‹E�I9ă>H‹E˜H‹�XÿÿÿF‹, H‹…PÿÿÿHÈF‹4 H‹…pÿÿÿI9ÆrH‹EˆA¿I9ÆrØýÿH‹w¥1ÒH‰ß‹pH‹Cÿ� 1ö¿0‰5P¥è³ÏýÿºH�5D_H‰ßH‰-¥è(DºH�5xcH‰ßI‰ÆèDH‰ßºH�5é^I‰ÅèúCH�5Ô`L‰áM‰ðI‰ÇH‹ó¤A¹€xWH�±`H‰ßjHEðH‹Ù¤è úÿÿH‹ŤH‰ßH‹äA¹H� ´^€xH� YIDÄE1ÀD‰$H‰ÆH‹6~L�€èÀùÿÿ¾L‰÷èuØýÿ¿èËÎýÿ¹I‰ÄI‰† 1Àƒ=S¦L‰çó«AYAZt AÆD$AÆ$1ö¹º?H‰ßèÂüÿÿ¹º?H‰ß¾ è«üÿÿ¹º?H‰ß¾è”üÿÿL‰÷èYýÿÿƒ=ì¥t¾L‰ïèÝ×ýÿë 1öL‰ïèÑ×ýÿ¿è'Îýÿ1Ƀ=¾¥I‰… H‰E¸‰t¾L‰ÿè¢×ýÿë 1öL‰ÿè–×ýÿ¿èìÍýÿ1ÒH‹5s£H‰ßI‰‡ ‰‹i£H‰E°èxÕýÿ1ÉA¸L‰âL‰öH‰ßèÓýÿƒ=K¥tH‹U¸A¸1ÉL‰îH‰ßèâÒýÿA¸ëH‹U¸E1À1ÉL‰îH‰ßèÆÒýÿE1ÀH‹U°1ÉH‰ßL‰þè²ÒýÿH‰ßè:ÏýÿH‹EÈdH+%(tèfÑýÿH�eØH‰Ø[A\A]A^A_]ÃUH‰åAWAVAUATI‰üSH‰óHƒìh‰U¸L‹wdH‹%(H‰EÈ1À€"udH‹²—1É1ÒL‰öH�¸€èwÕýÿH…ÀtEH‹@H…ÀtL‹pH‹n¢€xt+A€>_u%IÿÆë H�5FÝ1ÿºèŠÐýÿL‰öH‰Ç1Àè�‘€}¸tzH‹0¢‹@ÿȃøwQH�³ƒHc‚HÐ>ÿàÇE¼L�-„ë`ÇE¼L�-çƒëPÇE¼ L�-ǃë@ÇE¼L�-§ƒë0H�惾S H�=9_èþ+ÿÿ1öE1í‰u¼ëÇE¼ L�-¥ƒD‹®¡1ÀH�}À¾H‹ ”¡H�Æ_èPÓýÿƒø ¿èÚýÿH‹}ÀH‰Þÿt¡èÒýÿH‹}ÀH‰Ãè“ËýÿH‹L¡H‰ÞH‹xè ÙýÿH‰ßèøÌýÿ¾H‰ßèëÓýÿH‹$¡1ÒH‰ß‹pH‹Cÿ� 1É¿`‰ ý è`ËýÿºH�5 OH‰ßH‰Ú èÕ?ºH�5._H‰ßH‰E°è½?ºH�5 _H‰ßH‰Eˆè¥?ºH�5€ZH‰ßH‰E¨è�?ºH�5ï^H‰ßH‰E€èu?A€>@H‹‚ H‰E H‹o …˜€xH�5/\H‰ßASH�"\jL�=†[A¹HEðH‹àyL‰ùL�€ègõÿÿ€}¸XZt#APL‹E°A¹L‰ùjL‰òL‰þH‰ßè@õÿÿAYAZQL‹E¨H�5Z^H‰ßjA¹H� [L‰òèõÿÿ^_é€xH�5—[H‰ßASH�Š[jL�=îZA¹HEðH‹HyL‰ùL�€èÏôÿÿ€}¸XZt6H‹‚ŸL‰ùL‰òH‰ßH�5ïSA¹€xAPjID÷L‹E°è•ôÿÿAYAZH‹LŸH‰ßA¹H�¹SL�=rZH�5–]€zQH‰ÂL‰ñjID×L‹E¨èRôÿÿA€|$#^_t:H‹ŸH�ySL‰ñH‰ßA¹H�5ÔX€zIDÇH‰ÂPL‹E jèôÿÿXZƒ=© t+ASL‹E¨L‰òA¹jH� ìYH�5]H‰ßèÞóÿÿA^A_€}¸„[Lcu¼H‹}°L‰öè‚ÒýÿL‰÷èÚÈýÿL‰òL‰îH‰E�H‹E°H‹M�H‹}�H‰ˆ L‰ñèÅÐýÿH‹Nž‹@ÿȃø‡æH�åHc‚HÐ>ÿàH‹ÐwAPH�5\YA¹jH‰ñH�„\H‰ßL�€0è<óÿÿ¹ºH‰ß¾è€öÿÿAYAZéœ1öH‰ß¹ºÆècöÿÿ1É1öH‰ßºÇèRöÿÿ¹ºÇH‰ß¾è;öÿÿë^¹º¾H‰ßè"öÿÿëE1öH‰ß¹º.è öÿÿ¹º/H‰ß¾èõõÿÿëH�k¾² H�=¾Zèƒ'ÿÿH‹}°èŸöÿÿëH‹}°1öè,Ñýÿ1ÿH‰}�H‹}ˆ¾èÑýÿ¿ènÇýÿ1Ò1öH‰ßH‰…xÿÿÿH‹EˆH‹�xÿÿÿH‰ˆ ‰¹º?èvõÿÿH‹}ˆè:öÿÿH‹}¨¾èÆÐýÿ¿èÇýÿ1öH‰E˜H‹E¨H‹M˜H‰ˆ A€|$"‰1tfA‹D$ÆA€f‰ëH‰ß¹º?1öèõÿÿH‹}¨è×õÿÿH‹}€¾ècÐýÿ¿è¹ÆýÿI‰ÆH‹E€L‰° 1ÀA€|$"A‰tfA‹D$AÆF€fA‰ë%1ö¹º?H‰ßè²ôÿÿH‹}€èvõÿÿA€|$"tH‹} 1öE1íE1ÿè÷Ïýÿé I‹|$H…ÿuI‹<$èOÊýÿH‹} D�hD‰èƒàƒøAƒÝÿIcÅH‰ÆH‰…pÿÿÿè¸ÏýÿIcýèÆýÿIcÍ1öI‰ÇH‹E H‰ÊL‰ÿL‰¸ èâÓýÿA‹D$…ÀyA‹D$fA‰IcÕ¸I�H9…pÿÿÿI‹t$HBÐHƒêH…öuI‹4$è²Ðýÿ‹D›H‹55›H‰ßèMÍýÿ€}¸tD‹E¼H‹U�1ÉH‰ßH‹u°èÑÊýÿH‹•xÿÿÿH‹uˆ1ÉH‰ßA¸è¶ÊýÿH‹U˜H‹u¨1ÉA¸H‰ßèžÊýÿH‹u€1ÉL‰òA¸H‰ßè‡ÊýÿA€|$"uH‹u McÅ1ÉL‰úH‰ßèkÊýÿH‰ßèóÆýÿH‹EÈdH+%(tèÉýÿH�eØH‰Ø[A\A]A^A_]ÃóúUH‰åAWAVAUATSH�ì¨dH‹%(H‰EÈ1À袃=.œuH‹=œL‹%š�H…ÿ…­éPH�åƒH�5V¿1ÀèâÏýÿH‹3�L�-òUL‹`(M…ätI‹T$L‰î¿1Àè·ÏýÿM‹d$ ëàH‹=�1ÒH�5ï1ÿÿL�-¼Uè¤ÆýÿL‹%�M…ä„lÿÿÿI‹$L‰î¿1ÀèqÏýÿM‹¤$ëÚI‹D$ƒxtM‹¤$M…äuèé‰èÎ/ÿÿºH�5IÞ„Àtcº+AH�5QUL‰çè‘ÆýÿH…Àt>H‹•ŽfHnØó~›H� ÕkÿÿH‹’flÃH‰ŠÀ‚ÈHÇ@@5ë2ºH�5"Í1ÿèKÇýÿH‰Ç1ÀèQˆH‹=šè5Ãýÿ1ÀH‰´šL‹%%ŽI‹D$ƒxuI‹„$H…Àt ŠHuˆM�„Éu H�5Í1ÿºèðÆýÿL‰æH‰Ç1Àè3u‹ùH�¸Ð¹dH�5º˜ó¥‰�`‹Lš �¸¶{÷Úƒ=Z‰�¬yX€=H�?wOŠ?�L‹%Ø‹L�-D<ÿÿƒà<u/Ç$ë(I‹|$0E1öH�U L‰îD‰u èVÑýÿƒ} uÖM‹d$HM…äuØH‹=?�è¡£ÿÿH‹3�H‰E€H‹@H‹8èv®ÿÿH‹œH…À„-H‹=äŒE1ÒL‹p`H�ûRH�5õ ÿÿD‰ ›èËÌýÿHc=”›HÁçèûÁýÿH‹=¬ŒE1ÛH�ÇRH�5ߣÿÿH‰d›D‰e›è�ÌýÿHc5Y›ºH‹=E›H� Ÿ¢ÿÿèÄýÿH‹Š›L‹hPL‰mˆHƒ}ˆH‹v›„[‹PX1À9Â~H�HH‹}ˆHkñ(I9|6àtH‰ÈëäA‰Ä9Ð�H‹EˆH�xH‰=õšèPÇýÿH‰ñ–¶„ÒtH‹ [pöQŒuÆ_HÿÀëäIcÄE1ÛL‰µHÿÿÿH‰…xÿÿÿHkÀ(D‰�pÿÿÿH‰�@ÿÿÿM�$H‹Üš‹�xÿÿÿ9HXŽnH‹EˆI;D$…_I‹<$DŠ7èâÄýÿL�hL‰ïèÆÀýÿH‰E˜A€þ@tSM‹<$¾@L‰ÿè+ÅýÿH‹}˜M‰ùL‰êH…ÀH‹7–¾L�¨J”ÃH� '€xH�SQLDÀ1Àè›Ðýÿë M‹$H‹}˜L‰ê¾H� ÿF1À1ÛèyÐýÿH‹u˜H‹=öŠE1À1É1Òè2ÇýÿH…Àt €x„ÕI‹$A€þ@u&H‹}˜I‰ÁL�T1ÀH� ™&L‰ê¾è%ÐýÿëDH‹Œ•H� ÂPL� ûI¾L�ÚS€zWL‰êPLDÉH‹}˜H� <&1ÀèãÏýÿAXAYH‹u˜H‹=\ŠE1À1É1Òè˜ÆýÿH…À„MŠ@„Ûu E1íþÈ”Ãé;E1íþÈ„0H‹E˜L�hL‰ïèpÃýÿL�xH‰…`ÿÿÿL‰ÿèM¿ýÿL‰úL‰îH‰ÃH‰Çè<Êýÿ1ÿ€;@¾@@”ÇHßè¦ÃýÿI‰ÆH…ÀtÆ@Lc£˜L‹ ”˜1ÉL‰½hÿÿÿL‰µXÿÿÿH‰ßI‰ÎL‰¥PÿÿÿM‰ÏM‰ÄM9æs9O�,4H‰½8ÿÿÿIÑíL‰èHÁàI�H‹3èƒÆýÿH‹½8ÿÿÿ…Àxt%M�uëÇM‰ìëÂL‹½hÿÿÿL‹µXÿÿÿH‰ûL‹¥Pÿÿÿë?H‰ÚH‰ûH‹=<‰E1ÀH‹r1É1ÒL‹½hÿÿÿL‹µXÿÿÿL‹¥Pÿÿÿè_Åýÿ€xI‰Å„銓ÿÿé¹1öH‹=½L‰úH‰5³ŠH�5L2ÿÿ诿ýÿH‹5 ŠH…ö„ŠH‰ßè“ÿÿL‹5ˆŠL‹cèȆÿÿ…Àt A€<$_uIÿÄH‹j1ɺL‰æH�¸€è,½ýÿI‰ÅH‹@H…Àt7€=Žu.L‹xºH�5WÀ1ÿèP¸ýÿL‰âH‰ÇL‰þ1ÀèPyÆî�M‰uH‹[ éŠþÿÿH‹%H‹CH‹8èl ÿÿH‰ßèx•ÿÿHƒ= Žu è_¥ÿÿH‰û�H‹L�5«EH…ÛtXL‰öH‰ßèmºýÿI‰ÇH…Àt_uIÿÆH‹5P‹L‰òL‰ï衞ÿÿ…Àt8H‹=:‹E1ÀƒÉÿ1ÒL�M L‰öÆE èÄ¢ÿÿ€} uI‹Ü‹RÁêƒòƒâˆP#HÿÃé¤þÿÿM‹­élþÿÿMkì(J‹/DŠ;A€ÿ?uIÿÄH‹ÚŠHcp@H‹xHD9æØé…¾@H‰ßè[µýÿH…ÀtÒ1ÀA€ÿ@”ÀH�<èĶýÿ¾@H‰ÇH‰Ã褵ýÿH…ÀtÆë/H‹ƒŠH�5´¼1ÿºH‹@HN‹4(èh´ýÿH‰ÇL‰ö1ÀèkuH‹TŠDŠu�H‹@HJ‰(é_ÿÿÿE„ötH� +‘ÿÿº(è�²ýÿƒ=·uH‹ŠE1öE1äL‹hHL‰ëé‹E1äL�5)DH‹ú‰H‹PHD9`@~ÌMkì(L‰öJ‹*H‰ßèÝX„À…�¾@H‰ßèh´ýÿH…ÀtoÆE 1À€;@”ÀH�<èεýÿ¾@H‰ÇH‰Ãè>´ýÿH‹5—‰1ÿH‰ÚÆèæœÿÿ…Àu H‰ßè~¯ýÿë(H‹=u‰E1ÀƒÉÿH‰ÞL�M H‹GHJ‹T(èü ÿÿ€} uÎIÿÄéKÿÿÿE…ä„H‹sØH‹;è·ýÿ…À…óIcÆHkÀ(M�|Ø‹Á†E‹OAƒùÿ„¢‹KA9É„–ƒùÿ„�…Àt5I‹º1ÿ‰MˆH�5J»D‰M�H‰E˜èÕ²ýÿ‹Mˆ‹U�H‹u˜H‰Ç1ÀèÑs‹CƒøÿtA‰GfnC fAnW VÐfA~W H‹;è™®ýÿH‹{è�®ýÿH‹{臮ýÿAÿÄHƒÃ(H‹yˆD;`@Œ#ÿÿÿëR…Àt¨I‹1ÿºH�5»H‰E˜èO²ýÿH‹u˜H‰Ç1ÀèQsé{ÿÿÿE9ôtIcƹ H‰ÞHkÀ(LèH‰Çó¥AÿÆë”D‰p@IcþE1ÿHÁçè(®ýÿH‰ñ‡H‹ú‡HcX@HÁãH‰ßè ®ýÿH‰Ù1öH‰ƇH‰ÇH‹Ô‡HcP@HÁâè×»ýÿ1É1ÒÇ™‡‰—‡‰ ‰‡‰ ‡‰ u‡H‹š‡‹B@D9øŽ¿Ikß(H‹BHL‹dL‰ç詉L‰ç衱ýÿH�PI‰ÆH‰×H‰U˜è~­ýÿH‹U˜I‰ÅH‹ƒ€xt.A€<$@t'AÆE_I�VI�}L‰æèN¸ýÿL‰ïèF³ýÿH‰ÇèN‰ë L‰æL‰ïè1¸ýÿH‹=âw1É1ÒL‰îA¸è´ýÿI‰ÆH…ÀtOŠP�Bý¨ýuEH‹߆ÿµ†HXH€{"uÿ¡†H‹ ª†I‹F(J� ù€útH‹@H‰‹CƒøÿuDé¾.L‰çè4±ýÿH…ÀtQH‹ˆ†ÿ^†HXH€{"uÿJ†‹CÆC$ƒøÿ„ƒ;@†~‰8†;.†}‰&†ÿ†ë_M…öt:AŠ^ºH�5ù¸€ût11ÿH�5¹è°ýÿ¶Ó¹L‰æH‰Ç1Àèqë ºH�5+¹1ÿèì¯ýÿL‰æH‰Ç1ÀèïpL‰ïIÿÇèÔ«ýÿé.þÿÿ…Àuötv„¬ƒ=gƒ…Ÿƒ=~…‹€…t‹€…9Ð~)ÐÿÀ;n…}‰f…ëÇZ…‰X…‹=R…+=H…ÿlj=0…HcÿHÁçèt«ýÿ‹ …1ÒH‰ …9Ñ~ Ç�ÿÿÿÿHÿÂëð1ÛE1äH‹ )…H‹= …9Y@Ž×Lkë(H‹IHHƒ<ßJ�)u €z$„’D‹zAƒÿÿtcH‹³„E‰þD+5Á„McöJc°ƒøÿt;HkÀ(H�52¸1ÿH‹ H‹ºH‰M�H‰E˜è¯®ýÿH‹M�H‹U˜D‰þH‰Ç1ÀèªoH‹[„B‰°H‹ˆ„AÿÄH‹HHLéH‹yH…ÿuH‹9è�®ýÿAÄH‹c„LhHA€}$tI‹}è®ýÿE�dHÿÃéÿÿÿLc„L‹üƒ1ÀL‰Ó9A@~GHkÐ(HQHHƒ<Çu€z$t-ƒzÿu'H‰ÞL)ÖI�4³I‰ñI‰ØHƒÆHÿÃAƒ9ÿuíA‰IcØD‰BHÿÀë´D‹-Àƒ�ûÿÿ A�ýÿÿ~&1ÿH�5Z·º踭ýÿA9݉ÞAMõH‰Ç1ÀèµnH‹=^ƒ‹pƒèíýÿ¿H‰Â‹Uƒ�D �CA�DH˜H�DH‰$ƒèa™ÿÿH‹=XƒèŠÿÿL‹-¤rënƒó!Ë€ãt`…Òt\M…ätWI‹}0L‰æè¸ýÿH‰ÃH…À~CI‹}0èb«ýÿM‹}0„À… H�5‡M1ÿºè­ýÿL‰þH‰Ç1ÀèF[I‹E0Hƒ¸èuM‹mHM…íuéé‡L‹ �1É1Ò1ÛA¿M‰æM…ö„iÿÿÿI‹>H�5n8‰Mˆ‰U�H‰}˜è‚°ýÿH‹}˜H�5:…ÀADßèŒQ‹Mˆ‹U�„ÀAEÏAVxM‹vë²H‰ßM‹·À臨ýÿI‹}0L‰æL‰ñH‰ÂH‰Ãè¶ýÿ‰E˜…ÀyFH‰ßèC¨ýÿ1ÿºH�5ýµè0¬ýÿH‰ÇH‹EÈdH+%(…<H�eØ1À[A\A]A^A_]émE1ÿD9}˜Ž“J‹ûH‹H‹ö@u{H‹pH‹=µr1É1ÒA¸èî®ýÿH…Àt\€xuVH‹@(I‹M0H‹�àH‹‰èH‹‚èH9Èt4H…ÀtL‹0ëL‹2H‹9L‰ö艪ýÿ…ÀtI‹E0H‹€èH‹€L‰p ëIÿÇécÿÿÿH‰ßè]§ýÿM‹d$éþÿÿH‹œpH…Û„ L‹k0Iƒ½è„ïI‹E¾.H‰ÇH‰E˜è,¬ýÿH…À„ÑH�xH�5—9èÿÿA‰Ä…À…¶M‹…�E1öE1ÿA½M…ÀtFI‹8H�5“6L‰EˆH‰}�è©®ýÿH‹}�ºH�5A8…ÀEDåè>¨ýÿL‹Eˆ…ÀEDõExxM‹@ëµE…ötSA¶aE…äu E…ÿAžÆAƒÆbH‹}˜è©ªýÿL�hL‰ïè�¦ýÿE¾ÎL‰êH� &8I‰ÄH‹C0¾L‰çL‹1Àè–¶ýÿL‰c H‹[HéíþÿÿL‹=‚oM…ÿ„<M‹o0Iƒ½èuM‹HëãI‹��E1äE1öH…Ût3H‹;ºH�5|7è§ýÿ…À¸DDðöC$tƒ{xLEãH‹[ëÈM…ät°AƒætªL‰ïèý§ýÿI‹_0„Àu H�5&J1ÿº袩ýÿH‰ÞH‰Ç1ÀèåWL‹«ÀD‹³È1ÛL9ó�aÿÿÿI‹DÝA‹L$H‹P 9JuBH‹pH‹=6p1É1ÒA¸èo¬ýÿH…Àt#€xuHƒx uH‹pH9B0t A�L$$€HÿÃë�E1í„Û„÷éÿÿéÂåÿÿƒ=·a„ªûÿÿ1ÿèø”ÿÿH‹=ï~èY†ÿÿé’ûÿÿH‹EÈdH+%(tè©ýÿH�eØ[A\A]A^A_]ÃóúUH‰åAWAVAUATSHƒìHè`¦ŠZo¨u%ƒ=Kauƒà<„­H‹‹~ƒx@„œL‹-zoI‹EH‹8èÁ�ÿÿL‰ïèÍ…ÿÿI‹…H‹€H‰Ù}H‹Â}H…À„H‹¢SH�Â0H9P`„H‹2o1ÿH…ÀtH‹��H…Òt zxH‹RëòH‹€ëÝHcÿE1öHÁçè¤ýÿL‰m¸L‹=ónH‰EÈM…ÿ„µL‰ÿè¦ýÿ„Àu H�5;H1ÿºè·§ýÿL‰þH‰Ç1ÀèúUI‹‡ÀI‹Ÿ�H‰E°H…Û„bH‹C`H‹ìRH…ÀuH�‚0H‰C`é9H�Â0H9Є)ö@$„H‹@0H…À„H‰ÞL‰ÿHCXE1äH‰E¨è²ýÿHcøèJ£ýÿH‹M°L‰ÿH‰ÞH‰ÂH‰EÀèÔ°ýÿL‰}˜L‹}À‰E D9e ޼ƒ=Œzt!K‹çH�5þ2¿H‹H‹H‹P1ÀèU®ýÿK‹çH‹PöB…xH‹ |x‹I9 „fH‹H‹}¸E1ÉE1À1ÉH�5KmL‹I‹RL‰U�軤ýÿL‹U�I‰ÅA�z€…ÞH…À„"Š@<…ÁfA�}Bi… I‹EHI‹UPH‹€‹H‹€€H‹ÐH…À„å€x„ÛH‹‡QH�Â0H9P(„ÃH‹EÈIcÎH‹U¨HÁáHÁK‹çHPD‰q H‰H‰ÐH‹[{H‹R`H;B0‚éH‹C`º1ÿH‰M�H�5WªL‹(è·¥ýÿH‰ÇL‰î1ÀèºfH‹M�éµ<t�éMH‹ùPI‹R H0H9B`uH‹;H�5B"èR©ýÿ…À…\ÿÿÿéL‰U�M…í„JÿÿÿL‰ïè«ÿþÿ„À„:ÿÿÿAöE„òL‹U�H�5ï)M‹jL‰ïè©ýÿ…À„ÿÿÿH‹×vH�5Á)L‰ï€xH�²)HEðèÙ¨ýÿ…À„ãþÿÿé¡K‹çH‹pD‹n‹VfAÁíÁê Aƒåƒâ?AiÅè Ð=Â]tH=€>t-=�>uCÆAAÿÆfÇA ëT=’et=}u&ÆAAÿÆë=ÆAAÿÆë4ÆAAÿÆë+‹…Àt%ƒøt H�5<©1ÿºèX¤ýÿD‰îH‰Ç1Àè[eIÿÄé:ýÿÿH‹}ÀL‹}˜è6 ýÿH‹[é•üÿÿM‹¿éBüÿÿL‹m¸E…ö„íH‹}ÈIcöºH� ¯ÿÿèl¢ýÿH‹]È1ÉHƒÏÿH‹ky1öH‰ÚD9ö}5H‹ HÁé H9ùt HƒÀHƒàüHƒÀ€ztHƒÀëHƒÀH‰ÏÿÆHƒÂ±ëÆ„ÉtH‰!yH‹yIƒÏÿH�xHƒçüH‰=y袟ýÿ1É1öD‰uÀH‰ãxM‰îHƒÊÿI‰ÝH‰ âx‰uÈH‹ÈxH‹=Ñx‹]À9]È�æM‹eL+%ÂxL‰ãH�ãðÿÿH9Ót_1Ò÷Çt Æ8²HÿÇëí„ÒtH‰=‹xIƒÿÿtJ�t8I‹FL)ÿÿPPI‹FH‹5kxH‰ßH5QxÿPPL‹=WxI�GH‰LxA¾}I‹FA�äÿH‹55xH5xÁç HcÿLçÿPhH‹xA€}H�pH‰5 xuI‹FI¿} H5éwÿPhHƒîwÿEÈIƒÅH‰ÚéÿÿÿM‰õ1Ò÷Çt Æ8²HÿÇëí„ÒtH‰=¼wIƒÿÿtJ�t8I‹EL)ÿÿPPH‹5 wH‹=‘wH…öt<èϧýÿè*Ÿ¾1ÿè.šèYœ¿è_‚H‹`wH‹QwH‰� ë(H…ÿt#¾Àè)­ýÿH‹*MH‹3wH�Â0H‰P`Hƒ=@w„ÆL‹=SwL‰ÿè³�ýÿL‰þ‹bwI‰ÀH‰w¸(I9ÇI�H(ICÇH‰M¨‹ 6wHƒè(ÁáL9øHcÉHCðH�<H‰úH)ÂH9òHBÖH)øL‰þHÂH‹E¨HÈL9ú� �HCòHcÉH‰EÀH�<H‰øH)ÐH9ðHBÆH)úÛL‰ÇHcÛHÐH‹UÀHÑL9øL‰úHCÐH‰M¸H� I‰ÎI)ÆI9ÖLBòH)ÈH‹ˆv1öL‰ùIÆH‹E¸HÃè̪ýÿI‰ÀI‹…Hc¸¬ƒÿÿu!1ÿèߢýÿH‰ÇH‹%vH�pI‹Eÿ�˜ëI‹EI�pÿ�˜H‹pvHcxhƒÿÿt/H‹ðuH�pI‹EÿPhH‹ÞuH�p H‹CvHcxlI‹EÿPhH‹ÉuH‹ºuH‹R`H�p H‹z0H‰ÚH+=œuH)ÂI‹EH×ÿPPH‹5ÀuL‰òH‰ßè§ýÿH‰ßè ýÿL‰úHc=ÃuHÿÀM9þICÖH� I‰ÌM)ôI9ÔLBâHØI)ÎH‰EÈH‹GuMôE1öH�pI‹EÿPPH‹/uHc=huH�pI‹EÿPPH‹uHc=WuH�pI‹EÿPPH‹uH‹ötH‹R`H�pH‹z0H‹U¨H+=×tH)ÂI‹EH×ÿPPH‹ÓtH‹ÄtH‹R`H�p H‹z0H‹UÀH+=¥tH)ÂI‹EH×ÿPPH‹¡tH‹’tH‹R`H�p$H‹z0H‹U¸H+=stH)ÂI‹EH×ÿPPH‹×tD9p@ŽÌIkÎ(H‹@HH‹|H‰M˜èçžýÿL�@H‰E L‰ÇL‰E°èÚýÿL‹E°H‹M˜H‰ÃH‹Qp€xH‹†tt,H‹xHH‹|€?@tÆ_H‹@HH�{H‹U H‹tHÿÂèz¥ýÿëH‹@HL‰ÂH‰ßH‹tèd¥ýÿH‹=e1É1ÒH‰ÞA¸èK¡ýÿH…Àt€xuH‹P0H‹tJ‰ðH‰ßIÿÆèšýÿé#ÿÿÿ1Ò1ÉL‰}°L‰ã‰U M‰ìI‰ÏH‹æsD9x@ŽèMkï(H‹HHLéD‹qAƒþÿ„ÇH‹5¤s@Šy$N�ýN‹ þ@„ÿu M…É„¢D‰öI‹D$+5psH‹M¨ÁæL‹ sHcöH‹@PHÎ@„ÿ„�H‹=sL‹MÈL+ írH‹`H‹0L)×LÏÿÐL‹ FsH‹}ÈH‰ÚI‹AHL‰M˜J‹t(èM¤ýÿL‹M˜I‹AHJ‹|(èK�ýÿH‹}°HÿÀH9]°HBûL� 8L‰ÎH)ÞH9þHB÷L)ËHEÈH�ëH‹=×rJ‹<L)×IyXM‹I`Iy0ÿÐH‹ËrH‹pHLî€~"…¾H‹FM‹L$H…ÀHDH‹5;rH‹v`H‰E˜H‹~0H‹uÈH+=rH+5rH÷H‹uÀAÿQPH‹u˜H‹}ÈH‰ÚHƒEÀè…£ýÿH‹}È茜ýÿH‹}°HÿÀH9]°HBûL� 8L‰ÎH)ÞH9þHB÷HEÈI‹D$L)ËD+5 rH�IcþH‹u¸ÿPhH‹r‹M HƒE¸H‹@HB‰L(‰ÈÿÀ‰E IÿÇéþÿÿH‹…qH‹vqM‰åH‰� Š†b‰Â÷Ò€âuI‹•Ç‚`L‹- bM…í„ÇL‹%¥qAƒ|$@u¨„°L‰ïè�¡ýÿ1öL‰ïèó¢ýÿH‰ÃH…Àu%1ÿºH�5m èh›ýÿL‰îH‰Ç1Àèk\éq€=wat H�5b'1ÿºè:›ýÿL‰îH‰Ç1Àè2xþÿH‰ß¾è Ÿýÿ€KI H‰ßè´ÆÿÿL‹=bH‰]¸H‰EÀ1ÀH‰EÈL‰ûH…Û„:L‹5Œp1ÀM…öt#„Àu'1ÀAƒ~uH‹3I‹>èÍ™ýÿ…À”ÀM‹vëØ„À„õH‹ƒèH…ÀtH‹8ëH‹;1öè/šýÿI‰ÆH…Àu(H‹1ÿºH�5½&è�šýÿH‰ÇH‰Þ1Àè„[éŠHƒ»èI‰Ç„Š1Ò¾H‰Ç诣ýÿ„ÀuH‹ƒèL‹#ºH�5UŸH‹ë@E1ÿL‰þL‰÷è¤ýÿI‰ÇH…ÀtH‹3I‹?è™ýÿ…ÀuÞë5H‹ƒèL‹#ºH�5KŸH‹1ÿèé™ýÿL‰âH‰ÞH‰Ç1ÀèéZéïH‹EÈL‰}ÈI‰‡ðH‹›é½þÿÿL‰m°E1öM‰åE9u@Ž?H‹žoIkÞ(H‹@H€| …I‹EHH‹=X`E1À1ÉHØH‹L‹xH‰PL‰þ1Ò胜ýÿH…Àt€xBjuH‹¹DH�ÂH9P(„ÒH‹ùj€xu6I‹}H1ÒH‹u¸H߀#”ÂèÈÿÿH‹MÈI‹UHH‰EÈH‰ˆðL‰|é�A€?@tÄL‰ÿè™ýÿH�PH‰×H‰U¨èÿ”ýÿH‹U¨M‰øH� I‰ÄH‰Ç¾1Àè¥ýÿH‹=�_1É1ÒE1ÀL‰æèÉ›ýÿL‰çH‰E¨è�”ýÿH‹E¨H…À„]ÿÿÿ€xBj…SÿÿÿH‹çCH�ÂH9P(…;ÿÿÿIÿÆé·þÿÿH‹]¸L‹m°H‰ßè-ÀÿÿHƒ}ÀI‰ÄtgH…ÀtbH‹EÀH‹MÈL‰æH‰ßH‰ˆðI‰„$ðè—ýÿ„Àu H�=¢�è%YH‰ßèÝ ýÿ„ÀuL‰îH�=N$è YL‰çM‹¤$ð躠ýÿM…äuëL‹-–kM…í„ÓH�5Ð L‰ïèF ýÿH‰ÃH…Àu H�5_�1ÿºè«—ýÿL‰îH‰Ç1Àè®XH‹—mH…À„;Hƒ8twƒxH‰ÞtH�=ß#賘ýÿë H�=Ú#襘ýÿH‹^mºH‰ÞH‹8è¤ÿÿH‹G^H‹€H‹ˆH…ÉtH�£#¾H‰ß1Àèž¡ýÿH‰Þ¿ èq™ýÿH‹ mHƒxt4H‰ÞH�={#è4˜ýÿH‹ílH‰ÞºH‹xè�£ÿÿH‰Þ¿ è/™ýÿH‹ÈlD‹@l‹HhAƒøÿtH�C#¾H‰ß1Àè%¡ýÿëƒùÿtH�5#¾H‰ß1Àè¡ýÿH‹�lƒx ÿuƒx(ÿt H‰Þ¿ èȘýÿH‹alD‹@$‹H AƒøÿtH�÷"¾H‰ß1Àè¾ ýÿëƒùÿtH�ï"¾H‰ß1Àè¡ ýÿH‹lD‹@,‹H(AƒøÿtH�Õ"¾H‰ß1Àèw ýÿëƒùÿtH�Ì"¾H‰ß1ÀèZ ýÿH‹Ókƒx0H‹Ækƒx@ŽRé'H‰ÞH�=Ÿ"E1öèå–ýÿL�=œ"H‹—kD9p0~ÄH‰ÞMkæL‰ÿè–ýÿH‹{k1ÒH‰ÞH‹@8J‹< è¢ÿÿH‹bkH‹@8Jƒ| t)H‰ÞH�=O"臖ýÿH‹@k1ÒH‰ÞH‹@8J‹| èá¡ÿÿH‹&kH‹@8B€| tH‰ÞH�="èK–ýÿH‹kH‹@8B€| tH‰ÞH�=ÿ!è)–ýÿH‹âjH‹@8B€| tH‰ÞH�=ä!è–ýÿH‹ÀjH‹@8B€| tH‰ÞH�=Ë!èå•ýÿH‰Þ¿ IÿÆèõ–ýÿéòþÿÿH‰ÞH�=¯!E1ö辕ýÿL�=u!H‹pjD9p@/H‹cjƒxXŽ+H‰ÞH�=§!E1ö臕ýÿL�=>!éuH‰ÞMkæ(L‰ÿL`Hèh•ýÿI‹<$1ÒH‰ÞèΠÿÿI‹|$H…ÿt+I‹4$èç—ýÿ…ÀtH‰ÞH�=Ÿè4•ýÿI‹|$1ÒH‰Þè™ ÿÿA‹L$ƒùÿtH�!¾H‰ß1ÀèEžýÿA€|$ tH‰ÞH�=ê èî”ýÿA€|$!tH‰ÞH�=Ü è×”ýÿA€|$"tH‰ÞH�=Ï èÀ”ýÿA€|$#tH‰ÞH�=À è©”ýÿH‰Þ¿ IÿÆè¹•ýÿéÝþÿÿL‰ÿMkæ(H‰ÞL``è�”ýÿI‹<$H…ÿ…„I‹D$1ÒH‰ÞH�xèÕŸÿÿ¿.H‰Þèt•ýÿI‹|$H…ÿ„“1ÒH‰Þè°ŸÿÿIƒ|$tH‰ÞH�=M è%”ýÿI‹|$1ÒH‰Þ芟ÿÿH‰Þ¿ IÿÆè&•ýÿH‹¿hD9pX�aÿÿÿé‚I‹t$H…ötH‰}Èè}–ýÿH‹}È…À„]ÿÿÿH‰Þ1Òè;ŸÿÿH‰ÞH�=#踓ýÿé?ÿÿÿA‹L$ ¾H‰ß1ÀH�–èØœýÿéWÿÿÿºH�5¯1ÿè@’ýÿ¾H‰ßH‰Â1À讜ýÿH‰ßèÖ‘ýÿÿÀu H�5Jñ1ÿºè’ýÿL‰îH‰Ç1ÀèSH‹=ûXH�5uè”ýÿH…Àt ‹P$ƒâïƒÊ ‰P$HƒÄH[A\A]A^A_]ÃóúUH� ò!ºH‰åAVI‰þAUATL�¥ØþÿÿSH‰ó¾H�ìD‹dfdH‹%(H‰EØH‹L‰çH‹L‹(A�@‰Af1Àèº�ýÿL‰çè’‘ýÿL‰æH)ÉÁ1ÀH‰ßH‰…ÐþÿÿH‰Úó¤H��ÐþÿÿL‰îH�=èWI‹EM‹NL‹ÙeH‹€€Q¹jjjÿ�8H‹…ÐþÿÿH‹@H‹UØdH+%(tè1‘ýÿH�eà[A\A]A^]ÃH��Pÿ1ÀH‰CL‰4% èŽýÿóúUH‰åAWAVAUI‰ýATSHƒì8H‰uÈL‹%³WH‰UÀM…ä„7L‰çèÎŽýÿ„Àu H�5û01ÿºèw�ýÿL‰æH‰Ç1Àèº>I‹„$ÀI‹œ$�H‰E¸H…Û„áöC&tH‹¨;H0H9C`„»H‰ÞL‰çH‰ÓdE1ÿèûšýÿHcøè3ŒýÿH‹M¸H‰ÞL‰çH‰ÂI‰Æè¾™ýÿ‰E´D9}´~xO‹þHƒ}ÀI‹L‹L‰M¨I‹qt7H‹}À1É1Òè”ýÿH…ÀtHL‹M¨L‰ïI‹qèŠ�ýÿK‹<þH‹MÈL‰êH‰Þè )ÿÿë#L‰ïL‰E¨èy“ýÿ…ÀuH‹MÈH‹}¨L‰êH‰Þèä(ÿÿIÿÇë‚L‰÷èu‹ýÿH‹[éÿÿÿM‹¤$éÀþÿÿHƒÄ8[A\A]A^A_]ÃóúUH‰åAUA‰ÕATI‰üSPè÷ŒýÿD‰î�Î H‰ÇH‰Ã胚ýÿI‹D$H‰[`L‰çÇC|ÿ�Hc»`�J‰ ²`H‹ £`H‰ÑH‹H‰X H‰P1ÒÇ@H‰PH‰ØY[A\A]]ÃóúUH‰åAWAVAUI‰ýATSHƒì8H‰uÈL‹%¹UH‰UÀM…ä„7L‰çèÔŒýÿ„Àu H�5/1ÿºè}ŽýÿL‰æH‰Ç1ÀèÀ<I‹„$ÀI‹œ$�H‰E¸H…Û„áöC&tH‹®9H0H9C`„»H‰ÞL‰çH‰ábE1ÿè™ýÿHcøè9ŠýÿH‹M¸H‰ÞL‰çH‰ÂI‰ÆèÄ—ýÿ‰E´D9}´~xO‹þHƒ}ÀI‹L‹L‰M¨I‹qt7H‹}À1É1Òè…’ýÿH…ÀtHL‹M¨L‰ïI‹qè�‹ýÿK‹<þH‹MÈL‰êH‰Þè‚÷þÿë#L‰ïL‰E¨è‘ýÿ…ÀuH‹MÈH‹}¨L‰êH‰Þè]÷þÿIÿÇë‚L‰÷è{‰ýÿH‹[éÿÿÿM‹¤$éÀþÿÿHƒÄ8[A\A]A^A_]ÃóúUH‰åATI‰ô¾SH‰ûL‰çè¸H‰X0H‰Çè ¥H‹CH�5ÑSH‰ßÿ�ЄÀu$H�5!1ÿºè�ýÿ[L‰æA\H‰Ç]1ÀéN[A\]ÃóúUH‰åAUA‰ÕATI‰üSPè’ŠýÿD‰î�Î H‰ÇH‰Ãè˜ýÿI‹D$H‰[`L‰çÇC|ÿ�Hc®`�J‰ ¥`H‹ –`H‰ÑH‹H‰X H‰P1ÒÇ@H‰PH‰ØY[A\A]]ÃóúUH‰åAWI‰×AVI‰ÎAUI‰ýH‰÷ATSHƒì(L‰E¸D‰MÄH‰uÈèeŒýÿL‰ÿI‰ÄèZŒýÿL‰÷H‰ÃèOŒýÿM�dIÄL‰çè/ˆýÿH‹uÈL‰âH‰ÃH‰Çè“ýÿL‰âL‰þH‰ßè?ˆýÿL‰âL‰öH‰ßè1ˆýÿI‹EL‰ïÿ�1ÒL‹E¸D‹MÄH‰PHcÏ_H‰X�JL‰@ ‰ ¾_H‹ ¯_D‰HH‰ÑHƒÄ([A\A]A^A_]ÃóúUI‰ÈE1ÉH‰åAWAVAUI‰ýATSHƒì0‹_XL‹`‰u¼L‰ÿ‰ÞdH‹%(H‰EÈ1ÀH�EÇPH‰M°H‰ÑèMŠÿÿA‰ÄXƒÈÿ€}ÇZ…ƒE‰æMkö(M…ÿt%D9ãt K‹|7H…ÿtH‹u°HƒÇèéŽýÿ‰ÂƒÈÿ…ÒtR‹E¼�DÿA;E\r‹E¼L‰ÿ�t@A‰u\Hkö(èÜ‹ýÿI‰E`A‹UXA9ÔtHc}¼I‹u`D)âHkÒ(Hkÿ(LöH÷è‘’ýÿD‰àH‹UÈdH+%(tèÚŠýÿH�eØ[A\A]A^A_]ÃóúUH‰åAWI‰ÿAVI‰ÖAUM‰ÅATI‰ôSHƒì0H‹ED‹_X‰MÌM…ÀL‰MÀH‹_`H‰ñÆIEÈD‹MÌI‰ÐPH‰òH‰ßD‰ÞD‰]Èè:‰ÿÿD‹]ȉÂXH‹EY€8t HkÒ(HÓëzA‹w\H‰ÑA9ór%ƒÆ@H‰ßH‰U¸A‰w\Hkö(‰UÈèðŠýÿH‹U¸‹MÈI‰G`HkÚ(A‹WXI_`9Ñt)ÊH�{(H‰ÞHkÒ(裑ýÿL‰öL‰ÿèWˆÿÿL‹MÀ‹MÌM‰èH‰ÂL‰æH‰ßèç‰ÿÿAÿGXH�eØH‰Ø[A\A]A^A_]ÃèÕ†ýÿóúUH‰åATI‰ôSH‰ûH…ÛtH�{L‰æèC�ýÿ…ÀtH‹ëæH‰Ø[A\]ÃóúUH‰åAWAVAUI‰õATI‰üSHƒìD‹xL‹·€E…ÿ„I‹>èûŒýÿ…À „ÿéêAƒÿ„äA�GÿL‰îI‹<ÆH‰ÃèÏŒýÿ…À�ÐtYAƒÿtS‰Ù1Û� L‰î‰MÈÑê‰Ð‰UÌI‹<Æè¢Œýÿ…À„¨‹UÌ‹MÈy�Jÿë�Z9ËrˉØL‰îI‹<ÆèxŒýÿ…À~ÿÃët|ë…ÀtvA‹t$|A9÷rƒÆ@L‰÷A‰t$|HÁæèj‰ýÿI‰„$€I‹”$€‰ØL�4ÂA‹T$x9Út)ÚI�~L‰öHÁâè�ýÿ1ÀL‰ïI‰èLŠýÿI‰AÿD$xë1Ûë–»ë�D‰ûëŠHƒÄ[A\A]A^A_]ÃóúH‹¸\H…Àt HÿÈH‰©\ÃH‹5©\éü�ýÿóúU�þ¡H� FHcÖ¾H‰åSH‰ûPH�)HNÈH�¸L‹ÐH�1Àè’ýÿZH‰Þ¿)[]鿉ýÿfDóúUH‰åATA‰ôSH…ÿt:€?=H‰û„è“ýÿºH�5«æèà„ýÿ…À„/”ýÿH‹ éID‰æH‰ß1Ò[A\]ëH‹ ÔI[1Ò1ÿA\]ëf�óúUI‰ÈH‰åAWAVI‰ÖAUI‰ýATA‰ôSHƒì(Æ0MH…ÿtL‹=ÄLM…ÿ…ó“ýÿH‹ LJH‹=JfInÍL‹=±9flÉH‰ÊH)ÂHƒúo†vH‹JHƒÀpH9Ø„ΔýÿH‹JH‰ÏHÐH÷ÒH!ÐH‹ßIH‰ÆH)ÖH)×H9÷‚kfHnÀflÀ)ÅIfïÀHÇÇCI‹GH‰·õHI‰_f%èCPC`HÇC(L‰sXf‰C`HÇC C0C@Aƒüw@H�D”Jc¢HÐ>ÿà€KaKH‹×HH‰H�CPH‰ÉHHƒÄ(H‰Ø[A\A]A^A_]ÃA€}:L‰è„?”ýÿH‰C1ÒL‰îH�=,å1Àèú†ýÿf�K`H‰Cë¨KM…ÀtA€}/uf�K`ë�€K`Kë†L‰ÇL‰EÀèÀˆýÿL‹EÀH‰ÆI9ðƒN’ýÿ€~ÿ/uHƒîëëL)ÆH�VL‰ÇèE)H‰C(ë±¾pH�=ƒHL‰E¸)MÀèÆÉH‹‡HL‹E¸H‹ „HfoMÀéUþÿÿH‰Èé�þÿÿf�óúUH‰åSH‰ûHƒìH‹YHH‹JHH‰ÑH)ÁH9ùrTH‹ 0HHÃH9Ù„�H‹=HH‰×HÃH÷ÐH!ÃH‹HH‰ÞH)ÆH)ÇH9÷rGfHnÃflÀ)ìGH‹]øH‰ÈÉÃH‰þH�=ÉGèÉH‹ ÍGHÎGH‹ÏGH9Ëu–éë’ýÿfHnÂflÀ)¥Gë·éÔ’ýÿff.„óúUH‰åAWI‰ÿAVL�5 JAUA‰õH‰þL‰÷ATA‰ÔSHƒì…Ò•Â1ɶÒ覈ýÿH…À„ÍH‹HHH‰ÃH…É„}Aƒüt5AöÄt A�ý„„®’ýÿ‹ƒ¬A9Å…¯HƒÄH�C[A\A]A^A_]ÃH‹H…À…¬H‰Ê1ÿL‰öH‰MÈèH‹MÈH…À„’ýÿóoI‰ÏH‹SH‰PH‰H‰ÃAƒüL‰{H”ÂA�ý„D‰«¬”À ¶ƒÀÁâƒà ЈƒÀésÿÿÿ„E…ä…á‘ýÿ1ÀHƒÄ[A\A]A^A_]Ã…Àˆè‘ýÿH‰ØE…í…Ü‘ýÿH‰Ãé5ÿÿÿH;HH…JÿÿÿH‹0H…öuH‰ÃE…ä…6ÿÿÿ1Àë³H;NHuêD‰âƒòƒâA�ý„•À ÂH‰ðAƒüt„Òt‹°¬D9ît£E…íu…öyšH‹0H…öt¬H;NHu¦H‰ðëÏf„óúUH‰åATI‰ÔSH‰óH…ÿ…�‘ýÿH‰ß¾Èè †ýÿH‰ÇH…À„‡‘ýÿL‰âH‰ÞèB~ýÿH‰ÂH…À„p‘ýÿH�rH�z 1ÀHÇBHƒçøH‰ñHÇ‚ÀH)ù�Á°ÁéóH«H�B(ÇB H‰B0H‹Å4HÇB(Ç‚¨H‹HH‰1Hƒ=ŒEH‰pH‹‰EtH�HàH‰J@H‰0H�B8H‰qEH‰Ð[A\]ÃH‰0H�B8H‰[EH‰Ðëèff.„UH‰åAWAVE1öAUATSH�ì(H‰µèþÿÿ‰½ðþÿÿ¿idH‹%(H‰EÈ1ÀL‰µÿÿÿèL}ýÿ¿ÀH‰… ÿÿÿè;}ýÿ¿ÀH‰…ÿÿÿè*}ýÿE1À1ö¿H‰…ÿÿÿH‹… ÿÿÿ1ÉÆ-H�VÁH‰…ÈþÿÿL�ˆ@3ëIfDH‰ÊHÁâHƒ8„�ƒx8„ÅH‹�ÿÿÿfoƒÆHƒÀ@ foPÐTHcÎL9Ètf¶P „ÒtµL‹� ÿÿÿLc×Cˆ‹PD�WD�ZÿAƒûwL‹� ÿÿÿMcÒCÆ:D�Wƒú„˜ýÿH‰ÊD‰×HÁâHƒ8…wÿÿÿfDHƒÀ@L9ÈušH‹• ÿÿÿHcÇE1äE1íHÁáÆIcÀH�ÿÿÿHÁàH…ÿÿÿL‰!L‰(H‹õCH‹€¨H…ÀtL�• ÿÿÿ‰òH��ÿÿÿL��ÿÿÿL‰ÖÿЃ½ðþÿÿ†üH‹…èþÿÿ¹L�`L‰âDH‹2¶ƒè-u ¶FƒèGu¶FƒÁ…À„ —ýÿHƒÂ9�ðþÿÿuÑ‹…ðþÿÿH‹�èþÿÿL�5üÞƒèL�lÃëIƒÄM9섇I‹<$€?-uê€luä€tÞèYýÿL�xL‰ÿè={ýÿM‹$L‰ñL‰úH‰ÃH‰Ç¾1ÀIƒÀèM‹ýÿI‰$ë§€foIcÐHƒÀ@AƒÀHÁâH•ÿÿÿfo`ÐbL9È…4þÿÿé•þÿÿE1ÒE1Û1ÛAƒÌÿH�…ÿÿÿD‰•øþÿÿL�-ïŒD‰•ØþÿÿL‰�Ðþÿÿ‰�ÜþÿÿH‰…àþÿÿH‹±)Ç…ÿÿÿ‹‰…üþÿÿD9àtH‹cBH‹€ H…À…Ç•ýÿH‹ä)L‹…àþÿÿH‹�ÿÿÿH‹• ÿÿÿH‹µèþÿÿ‹½ðþÿÿÇè�ýÿA‰ÄAƒü?„'•ýÿD‹�ÿÿÿE…É…�Aƒü Ž“Hc…üþÿÿH‹�èþÿÿL‹4ÃA¾FD9à…£“ýÿH‹ÑAH‹€°H…ÀtD‰çÿЄÀu6Aƒüÿ„iA�ü+‡#‘ýÿKcD¥Lè>ÿàL‹=Û(¾I‹?èÎ D‹¥üþÿÿéòþÿÿL‹=»(¾I‹?èÞõÿÿëÞL‹=¥(Hƒ= GM‹'„‡ŽýÿA€<$-u&A€|$-I�|$„eŽýÿº H�5rÞè«zýÿ…Àt™¿è-yýÿH‹¾F1ÉL‰`H‰H‰®FH‰H‹¬FHƒ@ édÿÿÿL‹=+(1öI‹?èQõÿÿéNÿÿÿL‹=(ÆŽ>I‹H‰¤/é1ÿÿÿ€ X?€é%ÿÿÿH‹=T?H…ÿ„â—ýÿóo7)58?èƒxýÿéÿÿÿ¿è”xýÿfo-?H‰?(éßþÿÿH‹^@H‹€°H…À…‰þÿÿ鮓ýÿH‹½ÿÿÿè5xýÿH‹½ÿÿÿè)xýÿH‹½ ÿÿÿèxýÿH‹&DH…Û…V•ýÿH‹vBH…À…2•ýÿ‹�Üþÿÿ…Û…ú”ýÿHƒ½Ðþÿÿ…¹”ýÿ€=ŒB?w¶ƒBƒà?ƒÈ€ˆwB¶qB¨u ƒàüƒÈˆaB¶WBH‹�ÿÿÿ‰Âƒâ€ú„ûH…É…‹�øþÿÿ¶ †Cƒû„7ªýÿƒû„¯€ú„�€=dC… Hƒ=ÔA…¾©ýÿHƒ=ÎA…Qªýÿ·áAf%Àf=À„ ªýÿH‹EÈdH+%(…’H�eØ[A\A]A^A_]ÃL‹=J&€%«AûI‹H‰QAéfýÿÿL‹=-&¿PM‹'L‹=–>èévýÿ¹¾I‰Æ1ÀL‰÷ó«M‰fL‰çè©~ýÿI‰FH…À„@«ýÿM…ÿ…7ªýÿH‹ -L‰5EDL‰5þ,L‰0IƒÆL‰5(Déíüÿÿ€=VB„5ªýÿ¶A‰Âƒâ€ú„`ªýÿƒÈ€=ñ@?ˆé@w¶â@ƒà?ƒÈ@ˆÖ@¶Ð@¨…—üÿÿƒàüƒÈˆ¼@é†üÿÿ€=ïA„-©ýÿ¶ @‰Âƒâ€ú„5©ýÿƒàüƒÈˆ†@éSüÿÿ‹�Øþÿÿƒû„8ƒû„ €=¼A…m÷Ш„jþÿÿéIþÿÿH‹Î$‹�üþÿÿ9„¢‰ýÿ¶1@¨…]‰ýÿƒàü€%<߃ÈÆXAˆ@ÆHAÆUAéÎûÿÿL‹=•$H‹n?¾I‹?H‰/;èš!ÇL?è»E1ÛL‰;éŽûÿÿ€%µ;é‚ûÿÿÇ…ØþÿÿésûÿÿL‹=:$I‹?L‹%X?H‰½ÀþÿÿM…ä…Ö•ýÿèëzýÿH‰‰ýÿÿÆÙ>éõüÿÿè¹xýÿ¨„±‹�Øþÿÿ �øþÿÿ…§ýÿ€ú…õüÿÿ€=Y@„�þÿÿ‰Âƒâ€út € é>Àé‡þÿÿ1ÿºH�5ý6è xýÿH‰Ç1Àèf&L‹=_#H�5uãI‹?耀ýÿI‰ÆH…À„ Šýÿ¿A¼ètýÿI‰ÇL‰µÀþÿÿL‰æL‰ûI‰ÞH‹�ÀþÿÿD‰âH‰ßM)þD)òè‰~ýÿH‰ÇH…À„0‰ýÿèØwýÿI�\$ÿH‰ÂH‰ØL)ðH9„m‰ýÿL‹µÀþÿÿ¾ L‰ÿèxýÿH…Àtƾ#L‰ÿèxýÿH…ÀtÆL‰ÿ¶< †–H‰ú¶„À„ƒ<=tv< t�øˆýÿ< t ƒè <‡éˆýÿÆH�r¶< v3H‰ðëHƒÀ¶„Òt€ú=t€ú w뻀HÁã H£ÓsÜÆè(4ëH»€HÁã H£Ã‚Œˆýÿ„Àu¶érˆýÿ„ÀuŸéŒˆýÿ釈ýÿ»€HÁã H£Ã‚#ˆýÿH‰ú„À…OÿÿÿL‰÷èözýÿ…À„­þÿÿéˆýÿH‹ò>ºH�5ŸÖ1ÿèovýÿ¿E1öH‰ÆH‰Ú1ÀèÚ}ýÿºH�5”Ö1ÿèGvýÿ¿H‰Æ1Àè¸}ýÿH‹I!L‹¥ÈþÿÿI‹D$0H‰…ðþÿÿH…À„…¿1ÀE‰õA¿H�5þèy}ýÿD‰µüþÿÿ1ÀM‰æA¾N „É…ͦýÿAƒÅA�ýÍ„ŸžýÿIƒÆ@Iƒ~0t×D‹µüþÿÿE‰õD‰µèþÿÿE‰ôL‰âH�=¶HÁâHúL‹2M…ö„–‹R8ƒú„ŠƒêH� ‡ÚH�=sƒúHGÏ–…üþÿÿ„À…y H�VM‰ð¿H�5þ×1ÀèÃ|ýÿºL‰÷‰•àþÿÿIÁäè\uýÿ‹•àþÿÿAǶ…üþÿÿÐAÇH�€µN‹d (M…ä…Õ ¸AƒÅA�ýÍtE‰ìH�=VµL‰âHÁâHƒ|0„#ÿÿÿD‹µèþÿÿAƒÿ�‘¥ýÿH‹3¿ AƒÇè¡xýÿAƒÿuéH‹µðþÿÿ1ÿºè˜týÿH‰Çè rýÿAƒÆHƒ…Èþÿÿ@A�þÍ…FþÿÿºH�5»Ô1ÿA¼è^týÿ¿H‰Æ1ÀèÏ{ýÿH‹3¿ è2xýÿAƒìuíºH�5ˆÔ1ÿè)týÿ¿L�5%ÓH‰Æ1Àè“{ýÿL‹%|<º1ÿH�5nÔèùsýÿL‰â¿H‰Æ1Àèg{ýÿèruýÿI‰ÄI‰ÅëL‰ö¿1ÀIƒÅèG{ýÿI‹UH…ÒuäL‰çè¶oýÿ¿ èÌpýÿL‹%<1ÿºH�5Ôè’sýÿL‰â¿H‰Æ1Àè{ýÿH‹;è¿ èŽpýÿL‹%×;1ÿºH�5YèTsýÿL‰â¿H‰Æ1ÀèÂzýÿº1ÿL‹#H�5ÓÓè,sýÿ¿H‰Æ1Àè�zýÿ1ÿºH�57è sýÿ¾L‰çH‰Â1Àèx}ýÿ1ÿºH�5Zèårýÿ¾L‰çH‰Â1ÀèS}ýÿ1ÿºH�5¥èÀrýÿ¾L‰çH‰Â1Àè.}ýÿ1ÿºH�5¸è›rýÿ¾L‰çH‰Â1Àè }ýÿ1ÿºH�5Óèvrýÿ¾L‰çH‰Â1Àèä|ýÿ‹=¢:èy~ýÿ1ÿºH�5 I‰ÅèCrýÿL‰é¾L‰çH‰Â1Àè®|ýÿ1ÿºH�5èrýÿ¾L‰çH‰Â1Àè‰|ýÿ1ÿºH�5+èöqýÿ¾L‰çH‰Â1Àèd|ýÿ1ÿºH�5FèÑqýÿ¾L‰çH‰Â1Àè?|ýÿ1ÿºH�5qè¬qýÿ¾L‰çH‰Â1Àè|ýÿ1ÿºH�5œè‡qýÿ¾L‰çH‰Â1Àèõ{ýÿ1ÿºH�5·èbqýÿ¾L‰çH‰Â1ÀèÐ{ýÿ1ÿºH�5Òè=qýÿ¾L‰çH‰Â1Àè«{ýÿ1ÿºH�5ýèqýÿ¾L‰çH‰Â1Àè†{ýÿ1ÿºH�50èópýÿ¾L‰çH‰Â1Àèa{ýÿ1ÿºH�5sèÎpýÿ¾L‰çH‰Â1Àè<{ýÿ1ÿºH�5®è©pýÿ¾L‰çH‰Â1Àè{ýÿ1ÿºH�5éè„pýÿ¾L‰çH‰Â1Àèòzýÿ1ÿºH�5è_pýÿ¾L‰çH‰Â1ÀèÍzýÿ1ÿºH�5Wè:pýÿ¾L‰çH‰Â1Àè¨zýÿ1ÿºH�5šèpýÿ¾L‰çH‰Â1Àèƒzýÿ1ÿºH�5Õèðoýÿ¾L‰çH‰Â1Àè^zýÿ1ÿºH�5èËoýÿ¾L‰çH‰Â1Àè9zýÿ1ÿºH�5Cè¦oýÿ¾L‰çH‰Â1Àèzýÿ1ÿºH�5fè�oýÿ¾L‰çH‰Â1Àèïyýÿ1ÿºH�5‘è\oýÿ¾L‰çH‰Â1ÀèÊyýÿ1ÿºH�5¼è7oýÿ¾L‰çH‰Â1Àè¥yýÿ1ÿºH�5çèoýÿ¾L‰çH‰Â1Àè€yýÿ1ÿºH�5èínýÿ¾L‰çH‰Â1Àè[yýÿ1ÿºH�5�èÈnýÿ¾L‰çH‰Â1Àè6yýÿ1ÿºH�5°è£nýÿ¾L‰çH‰Â1Àèyýÿ1ÿºH�5Ëè~nýÿ¾L‰çH‰Â1Àèìxýÿ1ÿºH�5îèYnýÿ¾L‰çH‰Â1ÀèÇxýÿ1ÿºH�5è4nýÿ¾L‰çH‰Â1Àè¢xýÿ1ÿºH�5$ènýÿ¾L‰çH‰Â1Àè}xýÿ1ÿºH�57èêmýÿ¾L‰çH‰Â1ÀèXxýÿ1ÿºH�5RèÅmýÿ¾L‰çH‰Â1Àè3xýÿ1ÿºH�5uè mýÿ¾L‰çH‰Â1Àèxýÿ1ÿºH�5�è{mýÿ¾L‰çH‰Â1ÀèéwýÿL‰áº¾H�=ÎèÀwýÿ1ÿºH�5¢è=mýÿ¾L‰çH‰Â1Àè«wýÿ1ÿºH�5õèmýÿ¾L‰çH‰Â1Àè†wýÿ1ÿºH�5 èólýÿ¾L‰çH‰Â1Àèawýÿ1ÿºH�5KèÎlýÿ¾L‰çH‰Â1ÀèÿàH‹¶¶+H�5ÇL‹ ƒãŸˆ+L‰çè$hýÿ…À„î—ýÿH�5qÊL‰çè hýÿ…À…¶—ýÿƒË@ˆÐ*é{ÿÿÿH‹=Ø%E1äè`ýÿH‹QL‰%Â%H‹8H…ÿ…˜ýÿH�=©ÆH‰8èÿeýÿH‰ %é7ÿÿÿ¶€*ƒàùƒÈˆt*éÿÿÿ€ g*@éÿÿÿ€ 9&1Àé}ûÿÿóo+fëx+ééþÿÿH�5àÇH‰ßèVgýÿ…À„bžýÿH�5ÇÇH‰ßè?gýÿ…À„?žýÿH�5ÄÑH‰ßè(gýÿ…À„žýÿH�5©ÇH‰ßègýÿ…À„á�ýÿH�5$ÃH‰ßèúfýÿ…À„²�ýÿH�5„ÇH‰ßèãfýÿ…À„��ýÿH�5tÇH‰ßèÌfýÿ…À„x�ýÿH�5eÇH‰ßèµfýÿ…À„R�ýÿH�5hÇH‰ßèžfýÿ…À„,�ýÿH�5OÇH‰ßè‡fýÿ…À„¾œýÿH�5SÇH‰ßèpfýÿ…À„˜œýÿH�5:ÇH‰ßèYfýÿ…À„tœýÿH�5<ÇH‰ßèBfýÿ…À„;º H�51ÇH‰ßèÖ_ýÿ…À„«H�5KÇH‰ßèfýÿ…À„ˆH�5;ÇH‰ßèøeýÿ…À„eH�5(ÇH‰ßèáeýÿ…À„Bº H�5ÇH‰ßèu_ýÿ…À„®H�5ÇH‰ßè®eýÿ…À„‹H�5ÇH‰ßè—eýÿ…À„eºH�5úÆH‰ßè+_ýÿ…À„H�5ìÆH‰ßèdeýÿ…À„�ºH�5ØÆH‰ßèø^ýÿ…À„OšýÿH�5ÑÆH‰ßè1eýÿ…À„½ºH�5½ÆH‰ßèÅ^ýÿ…À„p™ýÿº H�5±ÆH‰ßè©^ýÿ…À„+™ýÿH�5¨ÆH‰ßèâdýÿ…ÀtfH�5“ÆH‰ßèÏdýÿ…ÀtGH�5�ÆH‰ßè¼dýÿ…Àt(H�5xÆH‰ßè©dýÿ…À…¶˜ýÿ€%m'éüÿÿèð`ýÿ€ \'€éüÿÿ€%.#ûéüûÿÿ€ "#éðûÿÿ€ #éäûÿÿº H�uÐH�{èî\ýÿH‹UЀ:…,™ýÿ�Pþƒú‡ ™ýÿ‰ã"é®ûÿÿÇÔ"éŸûÿÿ€ Å"é“ûÿÿHƒÃ H�5êËH‰ßèücýÿ…ÀtTH�5ƒÞH‰ßèécýÿ…Àt2H�5|ÞH‰ßèÖcýÿ…À…Ñ™ýÿÇ|"éCûÿÿ€ h"é7ûÿÿÇa" é(ûÿÿ1ö‰5T"éûÿÿ€ @"éûÿÿ€ 4"éûÿÿ€ ("é÷úÿÿL�k H�5uÄL‰ïè`cýÿ…À„êH�5jÄL‰ïèIcýÿ…À„ÀºH�5YÄL‰ïèÝ\ýÿ…Àu^1ÒH�uÐH�{èº[ýÿˆØ!H‹EЀ8u€%´!¿éƒúÿÿ€ ¨! éwúÿÿI‹$H�5°1ÿºèü^ýÿHƒÃH‰Ç1ÀH‰Þè; ºH�5ëÃL‰ïèg\ýÿ…À…%™ýÿ1ÒH�uÐH�{è@[ýÿˆ^!H‹EЀ8…Û˜ýÿ€ 6!@éúÿÿ€ *!@Æ7!�éòùÿÿ€%!¿Æ$!géßùÿÿff.„óúUH‰åAUATSVH‹=[%H…ÿ…‰H‹=[%H…ÿ„H‹Ÿè&cýÿH…Û„ñL‹£H‰ßècýÿM…ä„ÙI‹œ$L‰çèõbýÿH…Û„ÀL‹£H‰ßèÝbýÿM…䄨I‹œ$L‰çèÄbýÿH…Û„�L‹£H‰ßè¬býÿM…ät{I‹œ$L‰çè—býÿH…ÛtfL‹£H‰ßèƒbýÿM…ätRI‹œ$L‰çènbýÿH…Ût=L‹£H‰ßèZbýÿM…ät)I‹œ$L‰çèEbýÿH…ÛtH‰ßH‹›è1býÿH…ÛuìH‹ý H…ÛuH‹=H…ÿuFX[A\A]]ÃH‹C@H…Àt0€{Hu*ÆCHH‰ ÿÐ1ÉH‰ · A‰Ä…À…©·ýÿH‹{èƒhýÿH‹ë©€=/t±Z[A\A]]éÉbýÿè´aýÿémþÿÿff.„@óúUH‰åATI‰üS@„öu]€=�$uI¿èªXýÿHÇH‰ÃÆ@H‹íH‰A€<$=H‰Þu>H‹=µ$I�t$1Ò1ÀèŸ]ýÿH‰C[A\]ÃfD¿èVXýÿHÇH‰ÃÆ@ëªH�5u»L‰çè„À…ø¶ýÿL‰çè'^ýÿH‰Cë¶�óúH‹ eH‹VUH‰åAVI‰þAUATI‰ôSH‰ÓH‰ÊH)ÂH9Ú‚ƒL‹-$HØI9Å„¯H‹1H‰ÏHÐH÷ÒH!ÐH‹öH‰ÆH)ÖH)×H9÷r}fHnÀflÀL‰âL‰öL‰ï)×è`ýÿI9Ür [L‰èA\A]A^]Ã�L)ãK�|%1öH‰Úèþ\ýÿëß@H‰ÞH�=ŽèÙŸH‹šL‹-‹H‹ ”HØL9è…`ÿÿÿé&¶ýÿfHnÁé~ÿÿÿé¶ýÿ@óúUH‰åATI‰üH‰÷SH‰óè[ýÿH‰ÞL‰çH‰ÂèiXýÿ[A\…À]”ÀÃf.„DóúUH‰åSH‰ûHƒìH‹5H‹ H‰òH)ÂHƒú'†–H‹ëHƒÀ(H9„ÄH‹ ÷I‰ðHÈH÷ÑH!ÈH‹ ¼H‰ÇH)ÏI)ÈI9ø‚ŽfHnÀflÀH� R)›Ç‹�ƒøƒÐÿH‹ÁH‰ZHÇB H‹]øH‰B‹ÇB‰BH‰ÐÉþ(H�=@苞H‹LH‹=H‹5FHƒÀ(H9Ð…Kÿÿÿ馶ýÿfHnÆémÿÿÿé—¶ýÿDóúH‹mH‹^H‹ЋB‰�H‹BH‹H‰›H‰”&H‰�¶ˆ|Ãff.„óúUH‰åAWAVAUATSH�ìHƒ $H�ìHƒ $H�ìhE1ÉE1ÿdH‹%(H‰EÈ1ÀH�…pÒÿÿD‰�ÌÑÿÿL�µÔÿÿÇ&þÿÿÿM‰òH‰…˜ÑÿÿH‰…èÑÿÿHÇ…àÑÿÿÈL‰µÀÑÿÿI‰ÆfDH‹…èÑÿÿH‹½àÑÿÿfE‰>H�DxþI9ƃËÏýÿAƒÿ„!McçH�LûB¿`�ûýÿÿ„ã‹™%ƒøþuL‰•ÐÑÿÿè”L‹•ÐÑÿÿ‰{%…ÀŽe =„ÕÈýÿ=‰‡ÀÈýÿH˜H�Pù¶Ã�û¿‡†HcÛH�´é¿Z9ÐutH�%ÚD¿ÿàI‹»tH‰…ðÑÿÿDJ�íL‰Ðfo•ðÑÿÿfo�ÒÿÿL)êHcÛfo¥ÒÿÿMíHÁâM)îH�=^ÌH)ÐH‹• ÒÿÿA¿6L�P8P8H‰Ph‰ñXH`XH�SÍ¿X-¢H˜¿Gò�ú¿wHcÒH�5èf; V„¶ H�5ßÊIƒÆD¿ÿà¾@H�=pL‰•ÐÑÿÿè´�H‹uH‹5vL‹•ÐÑÿÿé�õÿÿE1À1ÀD‰é­òÿÿ¾(H�=-L‰•ÐÑÿÿèq�H‹2H‹53L‹•ÐÑÿÿé…÷ÿÿ¾@H�=û L‰•ÐÑÿÿè?�H‹H‹5L‹•ÐÑÿÿé øÿÿL‹…èÑÿÿM‰óHcˆƒøþ…L�%4¸H�gÃM9Ãt$M‰ÝM‰ÆI¿EH‰ßIƒíA¿4DèÜM9õuåM‰ðH‹…˜ÑÿÿI9À…ÄH‹EÈdH+%(…uH�eØ[A\A]A^A_]ÃÇHéëòÿÿI‹rÈ¿)» L‰•ÐÑÿÿèYL‹•ÐÑÿÿH‰…ðÑÿÿé¾òÿÿI‹’XÿÿÿI‹rÈ¿(L‰•ÐÑÿÿ» èEL‹•ÐÑÿÿH‰…ðÑÿÿéŠòÿÿI‹RÈI‹²Xÿÿÿ¿'L‰•ÐÑÿÿ» èL‹•ÐÑÿÿH‰…ðÑÿÿéVòÿÿI‹2¿H»L‰•ÐÑÿÿè¥L‹•ÐÑÿÿH‰…ðÑÿÿé*òÿÿ1ö¿/»L‰•ÐÑÿÿèzL‹•ÐÑÿÿH‰…ðÑÿÿéÿñÿÿH‹¸ü»^H�PH‰¨ü‹&ljéÑñÿÿI‹zÈ1ö»pL‰•ÐÑÿÿè‚íL‹•ÐÑÿÿé®ñÿÿL‰•ÐÑÿÿ»Rèe L‹•ÐÑÿÿé‘ñÿÿL‰•ÐÑÿÿ»QèhL‹•ÐÑÿÿétñÿÿI‹zÈ1ö»LL‰•ÐÑÿÿè¥àL‹•ÐÑÿÿéQñÿÿI‹RȹI‹²XÿÿÿL‰•ÐÑÿÿI‹ºèþÿÿ»KèñôL‹•ÐÑÿÿéñÿÿ€=. »¡„ ñÿÿ1ÛL�%ß¿M‰×I¾<HƒÃè9íÿÿ¿H‰ÆèŒHƒûuß1ÛL�%í I¾<HƒÃèíÿÿ¿H‰ÆèbHƒûuß1ÿL‰½ÐÑÿÿ»¡èéìÿÿ¿H‰Æè<L‹•ÐÑÿÿéˆðÿÿ¿L‰•ÐÑÿÿ»œÆ�è£L‹•ÐÑÿÿé_ðÿÿI‹2¿G»L‰•ÐÑÿÿè®L‹•ÐÑÿÿH‰…ðÑÿÿé3ðÿÿI‹r�I‹¿L‰•ÐÑÿÿ»öè¾L‹•ÐÑÿÿH‰…ðÑÿÿéðÿÿI‹:1ö»eL‰•ÐÑÿÿèu¿ÿÿL‹•ÐÑÿÿéáïÿÿ¾0H�=- L‰•°Ñÿÿ)�ÐÑÿÿèj‹H‹+ H‹ , L‹•°Ñÿÿfo�ÐÑÿÿé§õÿÿ¶Q ‰ÂƒÈ€ÀêˆC ¶ÒH‰•ðÑÿÿé|ïÿÿI‹:¾»bL‰•ÐÑÿÿèë¾ÿÿL‹•ÐÑÿÿéWïÿÿ¶ A¶R�»kÁâƒà Јðé3ïÿÿI‹zȹ1Ò1öL‰•ÐÑÿÿ»JèÝòL‹•ÐÑÿÿé ïÿÿ¾H�=U L‰•ÐÑÿÿ虊H‹b L‹•ÐÑÿÿé öÿÿL‰•ÐÑÿÿèºL‹•ÐÑÿÿéÆîÿÿI‹2H‹ 1É1ÿL‰•ÐÑÿÿ»sè¯òL‹•ÐÑÿÿH‰…ðÑÿÿé”îÿÿè×Eýÿ�=¡uL‰•ÐÑÿÿÇŽþÿÿÿè¥L‹•ÐÑÿÿI‹:I‹RÈL�ä¼1ÉH‹_L‰ÆL‰•ÐÑÿÿL‹`0è´9L‰çèlEýÿH�xèSAýÿL‹•ÐÑÿÿL‰áH‰ÃëH‹5]ð¶úö~Œu€ú_uˆHƒÀHƒÁ¶„ÒuÚéÛ¨ýÿL‰µÐÑÿÿM‹bÈM‰×H�“¼Dˆ­°ÑÿÿA€<$„¥³ýÿH‹ ðA¶$<,„ˆ³ýÿ¶ÈöJ@…{³ýÿ„À„2³ýÿM�l$ëA€þ,tA¶ÆöB@uIƒÅE¶uE„öuâAÆEH‰ÞL‰çè¤Aýÿ…À…³ýÿÆm EˆuM‰ìé|ÿÿÿ�=cuL‰•ÐÑÿÿÇPþÿÿÿègL‹•ÐÑÿÿI‹BÈM‹ºÐýÿÿL‰•pÑÿÿI‹R�I‹šXÿÿÿM…ÿH‰…ÐÑÿÿM‹"A‹‚˜ýÿÿ•…€Ñÿÿ1öH‰×H‰• Ñÿÿ‰…�Ñÿÿè1H‹• ÑÿÿL‹•pÑÿÿH‰…°ÑÿÿH…Ò•…xÑÿÿ…Xµýÿ1öH‰ßL‰•pÑÿÿèûL‹•pÑÿÿH‰… Ñÿÿ€½€Ñÿÿt €½xÑÿÿ…¶ýÿH‹`H…ÒtXH‹BH‹5h¿+L‰•€ÑÿÿH‹E€ˆ¨èñ1ÒH�=5ÃH‰ÆH‹H‹XèU H‹L‹•€ÑÿÿH‰CxL‰•xÑÿÿ1ÛH…ÒtxH‹BM…äubH‹µ ÑÿÿHƒ:H‰p@H‹µ°ÑÿÿH‰pHt6Hƒ½ÐÑÿÿ…é´ýÿƒ½�Ñÿÿ…¬´ýÿH‹H‰×H‰…€ÑÿÿèÃ>ýÿH‹•€Ñÿÿë L‰x`Ç€œëºHƒxP„Ç´ýÿë‘L‹•xÑÿÿH…Û…¾´ýÿ1ö».H‰5wH‰5XH‰5YH‰5Zé]ëÿÿ鉶ýÿ铺ýÿL‰•ÐÑÿÿè�ƒ=€L‹•ÐÑÿÿ…ñL‹%dL‹=UM…ätiM…ÿ…�L‰%@L‰àDˆ­ÐÑÿÿM‰ÕH‰…°Ñÿÿ1ÒM‰ïH‰ÃA‰ÕE…íuYH…Û…[ËýÿD‰êH‹…°ÑÿÿM‰ý…Ò„ËýÿM‹$$M…äuÂM‰êL¾­ÐÑÿÿI‰ÇH‹Ø L‰øH…Û…œËýÿH…Àt*Ç@0H‹ëïH‹…°ÑÿÿM‰ýë¹Dˆ­ÐÑÿÿL‰øM‰ÕérÿÿÿL�ú¸E1äM…ÿ„L‰µÐÑÿÿL‰ÃL‰•°ÑÿÿDˆ­ ÑÿÿM‰ýL‹=` E1öM…ÿ…ËýÿH‹E H‰��ÑÿÿH‰ÓH…Û…»ÊýÿHƒ=" H‹��ÑÿÿuI‹EH…À„6ËýÿH‰ Aƒ}0I‹}PM‰ðjÒM‰ù1ÉjƒâjH‹5á è¤HƒÄ ¿@L‰%Ì èß<ýÿ1Ò1É1ÿH‰Æ1ÀH‰I‹EH‰V1ÒH‰~1ÿH‰F‰N8èu.L‹5ž M…ö…;Êýÿ1É1ÒH‰Þ1ÿèç4M‹mM…í…ÿÿÿL‹µÐÑÿÿL‹•°ÑÿÿL¾­ ÑÿÿÇ‚ ƒ-S » é1éÿÿI‹ƒxH‰…ðÑÿÿ…¬Äýÿ�8…–ÄýÿH‹XDˆ­ÐÑÿÿE1äL�=Ô³M‰ÕK‹4çH‰ßèÕCýÿ…ÀtIƒÄIƒüuæéÃýÿL‰çL‰­°ÑÿÿL¾­ÐÑÿÿè åÿÿL‹•°ÑÿÿH‰…ðÑÿÿ»Wé«èÿÿI‹ L‰•°ÑÿÿE1äH‰ÏH‰�ÐÑÿÿèÇ?ýÿH‹�ÐÑÿÿL‹½°Ñÿÿ1ÒDˆ­ÐÑÿÿH‰Ãé�ýÿL‹•ÐÑÿÿH‰ÃM‹"M…ä„ Êýÿ1öL‰çL‰•ÐÑÿÿèâ €=ëL‹•ÐÑÿÿ„éÉýÿH‹=ÇH…ÿ„›ÉýÿL‰•ÐÑÿÿè’>ýÿL‹•ÐÑÿÿH…ÀH‰Ã„|ÉýÿL�`IÑìI�|$è>¹ÿÿL‹ ‡L‹•ÐÑÿÿ1ÒL‰ H‰ÁH�xH‰ØIÙH‰ÆH÷ÞA¶41D�FÐAƒø ‡$ÉýÿÁâHƒèD¨uÙˆH…ÀtHƒÇ1ÒëÊé=ÉýÿóúUH‰åAWAVAUATSHƒì(D‹(ÿE…Û„É‹á…À…: L�-VŒL�/ªL�=h L�5ÁzL�:iH‹›ý¶Œý‹=² ˆH‰]ÀL� Ea1öHcÏ@ˆuÈA¿DM¶A¶ÐfAƒÿà€ÆEÈA‰üI‰ÚH�w•¿ H‰Îf�ùÓ~HcÒH�•¶HcÉA¿DMÐH˜fA94F„'ÿÿÿH�=•¿H‰Áf=Ó~HcÒH�5Ç”¶HcðA¿DuÐH˜fA9 F„îþÿÿH�•¿4p‰ñf�þÓ~HcÒH��”¶HcöA¿DuÐH˜fA; F„´þÿÿëÄ€A¿4F9÷„žþÿÿé8ÿÿÿfDH‹}ÀéÁþÿÿH‰}ÀH‹=Ä€?/„ôH‰}ÈèÊ;ýÿH‹}ÈH�pH‰òèŠßÿÿH‰³¸HƒÄ([A\A]A^A_]ÃÇ•(HƒÄ(¸([A\A]A^A_]ÃBüé»ýÿÿÇk)HƒÄ(¸)[A\A]A^A_]ÃH‹8H‰ßèH;ýÿH‰ßH�pH‰òè ßÿÿézÿÿÿÇ*:¸:érÿÿÿÇ{¸{é^ÿÿÿÇ}¸}éJÿÿÿ‹"üƒè‰ü…¯Óýÿ1Ò‰£ûé(ÿÿÿÇÌ*¸*éÿÿÿf�H‹¡€;$„€Ôýÿ1Ò1öH‰ßè$8ýÿHcmHÇšH‰‹¶Tÿƒâ߀úM„™€úK„1Ôýÿ€;0u¶Cƒàß-¸-é†üÿÿÇ*5¸5érüÿÿLJ¸‡é^üÿÿÇ/¸/éJüÿÿÇî-¸-é6üÿÿÇÚ+¸+é"üÿÿÇÆ2¸2éüÿÿDz)¸)éúûÿÿÇž&¸&éæûÿÿÇŠ&¸&éÒûÿÿÇv¸é¾ûÿÿÇb/¸/éªûÿÿÇN,¸,é–ûÿÿÇ:=¸=é‚ûÿÿÇ&E¸EénûÿÿÇ0¸0éZûÿÿÇþ!¸!éFûÿÿÇê[¸[é2ûÿÿÇÖY¸YéûÿÿÇÂ?¸?é ûÿÿÇ®(¸(éöúÿÿÇš'¸'éâúÿÿdžH¸HéÎúÿÿH‹]¾é¿úÿÿH‹=NèqÞH‰Z¸|é¢úÿÿÇFG¸GéŽúÿÿH‹H�xè<ÞH‰%¸émúÿÿÇ>¸>éYúÿÿÇý¸éEúÿÿÇéb¸bé1úÿÿ€*L‰UÈ…sÏýÿH‹uÀ¶¦õÇŒˆH�FH‰—õ¶FÆFH‰5ˆˆzõèõL‹UÈL�ê¡L�aéÄ÷ÿÿ‹U¼ƒø„ôÌýÿ…À…°÷ÿÿH‹5KHcÂL‰UÈHðH‰uÀH‰6õèIþH‹*õL‹UÈL�—¡‰ÇL�®`L� ÓXé‰÷ÿÿƒ='ÇEöu ÇHƒ=õôuH‹ìßH‹H‰âôHƒ=ŠuH‹ÁßH‹H‰wH‹`õH…À„�ÌýÿH‹HõHƒ<Є‹ÌýÿèÈÚÿÿé¸öÿÿE1ɃèD‰ ’úƒø‡ÕÎýÿH�ö¡‹‚éÐøÿÿH�{è…ÜH‰vÿé úÿÿH‹=JHc+¶LÿƒéB€ù6w8¸ºHÓàH¹@@@@H…Èt#1öè«1ýÿ1ÿH‰"ÿH‰=#ÿé¹ùÿÿº ëÝHº H…Ð…TËýÿHºH!ÐHƒøÒƒâƒÂë¯éäÍýÿff.„�óúH‹MçH�PH‰Bç‹ÀÿǶÿ‰Ã€UH‰åèWƒø*t/…Àuë @èC…Àtƒø*tƒø uíƒ6ôëЃø*…>äýÿèƒø*„äýÿƒø/…äýÿ]Ãf.„UH‰åSHƒìH‹ó¶ óˆ„À„uìýÿH‹óH�H¶ÆH‰ ïò¶@ˆÝòH‹]ø‰ÐÉÃDóúH‹mæH�Pü‹@üH‰_æ‰ÝþÃóúUH‹üõH‰åATA‰üSH‰óH‹5ñõH‰òH)ÂHƒú†ŠH‹ÊõHƒÀ H9„¸H‹ ÖõI‰ðHÈH÷ÑH!ÈH‹ ›õH‰ÇH)ÏI)ÈI9ø‚‚fHnÀflÀH� 1ó)zõD‰"‹qóƒøƒÐÿH‹ÁH‰ZÇBH‰B‹êò‰BH‰Ð[A\]þ H�=+õèvvH‹7õH‹(õH‹51õHƒÀ H9Ð…WÿÿÿéÌëýÿfHnÆéyÿÿÿé½ëýÿóúH‹5õH‹öôUH‰òH)ÂH‰åATL‹%cäSH‰ûHƒúvsH‹ÊôHƒÀH9„žH‹ ÖôI‰ðHÈH÷ÑH!ÈH‹ ›ôH‰ÇH)ÏI)ÈI9ørofHnÀflÀ)…ôÇBHÇI‹D$H‰H‰ÐI‰T$H‰Z[A\]þH�=Bôè�uH‹NôH‹?ôH‹5HôHƒÀH9Ð…nÿÿÿéòêýÿfHnÆë�éæêýÿf.„óúUH‰åAVAUATE1äSH…ÿt/L‹%2öH‰ûA‰õM…ät@I‹<$H‰Þè[4ýÿ…À…·E„í…Ý[L‰àA\A]A^]ÃM‹vM…ö…£M‹d$M…äuÀE„íuH�5¿§H‰ßè4ýÿ…À…�êýÿ¿Xè!«ÿÿH‰ßI‰ÄèVØfo®D1ÒAÆD$PI‰$1ÀI‰D$I‰D$I‰D$I‰D$0H‹�ãI‰T$8I‰T$@I‰T$HAD$ L‰ I�D$H‰iãéRÿÿÿM‹t$M…ö„]ÿÿÿI‹>H‰Þèƒ3ýÿ…À…=ÿÿÿE„í„(ÿÿÿéÈéýÿéÃéýÿ„óúUH‰åAUA‰ýATI‰ôSHƒìH‹ ÒòH‹ÃòH‰ÊH)ÂHƒú'†œH‹¤òHƒÀ(H9ÄÊH‹°òH‰ÏHÐH÷ÒH!ÐH‹uòH‰ÆH)ÖH)×H9÷‚”fHnÀflÀ)[òI‹D$D‰+H‰CA‹D$ÇCAƒ|$‰CL‰ctHƒÄH‰Ø[A\A]]ÃA�ýtéA�ýftàé™éýÿ¾(H�=óñè>sH‹ÿñH‹ðñH‹ ùñHƒÀ(H9Ø…EÿÿÿéRéýÿfHnÁégÿÿÿéCéýÿ„H‹ ÉñH‹ºñUH‰åAVI‰ÖH‰ÊH)ÂAUA‰ýATI‰ôSHƒú'†­H‹‡ñHƒÀ(H9ÄÛH‹“ñH‰ÏHÐH÷ÒH!ÐH‹XñH‰ÆH)ÖH)×H9÷‚¥fHnÀflÀ)>ñI‹D$D‰+H‰CA‹D$ÇCAƒ|$‰CL‰cL‰s t H‰Ø[A\A]A^]ÃAƒ~uíA�…ÙþÿÿƒøváA�ýtØH‰ßèóøëξ(H�=ÅðèrH‹ÑðH‹ÂðH‹ ËðHƒÀ(H9Ø…4ÿÿÿéZèýÿfHnÁéVÿÿÿéKèýÿf.„UH‰åAWI‰÷AVI‰ÎAUM‰ÍATM‰ÄS‰ÓºHƒì‹uèÔ¨ÿÿHƒxXH‰ø…èýÿ‰ÚL‰xXƒâý‰˜œƒú„œƒû„ãH‹zàH�HH�5¿÷Ç€˜Ç€�H9òƒÀH�r�} †H‰5@àH‹5qßH‰2¶�¨H‰ `ß”ÁÁáƒâ¿ ʈ�¨ƒâ@tM…äuPH‹UL‰hpL‰`hH‰P`HƒÄ[A\A]A^A_]ÃL‰° H‹àßH�5)÷H�HÇ€�H9ò‚pÿÿÿé-çýÿH�5v/1ÿºèú+ýÿ1öH‰Ç1Àè>ÚÇ€˜ë«éýæýÿff.„f�UH‰åAUI‰ýATA‰ÔSH‰óHƒìH‹5#ïH‹ïH‰òH)ÂHƒú/†�H‹õîHƒÀ0H9„¬H‹ ïI‰ðHÈH÷ÑH!ÈH‹ ÆîH‰ÇH)ÏI)ÈI9ør}fHnÀflÀ)°îH‹CÇ=H‰B‹CÇB‰BH‰ÐH‰Z L‰jDˆb(HƒÄ[A\A]]þ0H�=_îèªoH‹kîH‹\îH‹5eîHƒÀ0H9Ð…`ÿÿÿé!æýÿfHnÆë�éæýÿ€óúUH‰åAVAUATSH…ÿ„Ø‹WH‰ûƒú ‡¿èýÿH� *S‰ÐHc�HÈ>ÿàfDH‹s€>.„ ƒú…º H‹=KñA¸1É1Òè„-ýÿI‰ÄH…À„Ó€x‡ÅH‹sf.„H‹{ H‰5mîHÇjîèUÿÿÿ‹OîƒèƒøvHƒ=Gî„'ƒ{„4M…äu)H‹sH‹=Çð1ɺA¸èý,ýÿI‰ÄH…À„&èýÿ€=*î„vHƒ=î„…L‹k1ɺH�=TïL‰îèL.ýÿH‰ÁH…À„bA¶D$‹”í‹5®í¨„8L‹-×ÔˆQ I�…0H‰Aƒþ„vƒþ„GH‹�íD‹[¶ríI‰D$0H‹‰íI‰D$(1ÀE…Û”ÀÁâ Áà f  ÐA·T$f%ÿ8f�âÇ Ð€{(fA‰D$…ŽH‹0íH�BÿHƒøý†…HÇíëPDH‹1ÔH0H94í…v€=·ð…iH‹SH‰öìH‹C ÆóìH‰ÔìH‰Õì[A\A]A^]Ã@€~…ëýÿÿƒú…þãýÿD‹5ŽìE…ö„uH‹{ Æ~ìèuýÿÿƒ=nìÆkì¶�ì„„À„TåýÿL‹-ƒÓH‹ ŒìI�…H9Á„ÝH‹mìH…À„öäýÿƒ=ìvI�•0H9Ñ…VÿÿÿH‹,ìL‹%ìH…Ò„ Lb0I�•0L‹5ìH9Ñ…ÉL‰% ìL‰ [A\A]A^]ÃfDfïÀÍëÖë‹=V�‘=.�æ=…öH‹S€:.…š€z…�H‹µëH‹žëÆdëÆˆëH+B0H‰uëH‰^ëéŒþÿÿ�H‹{è7üÿÿ€=`ëH‹{ „€�;5„L‹-+ëL‹%4ëèüÿÿ€=0ë„EþÿÿH‹ëL9â…‹ƒú^�ïƒú$Žÿƒê%ƒú9‡0åýÿH� COHc‘HÈ>ÿàf„H‹{è§ûÿÿ¶Ðê„Ò„ãýÿÿ‹=…Ó ‹…ê…À„ÃáýÿH‹5ŽêH‹§êHƒþvH�LÿH‰ÈH�þ…TH%ðÿÿH‹�êÆEêÆiêH+B0H‰VêH‰?êHÇ<êébýÿÿ€=ˆ….L‹cH�5™ŸL‰çè¢)ýÿ…À…œ H‹KíÆ êH‰íééýÿÿH…Ò…×L‰%èéE1äéÎþÿÿ„H‹L‹%µéè úÿÿ€=ÉéL‰%¢é„×üÿÿH‹C Hƒ=˜éHDC(H‰ÃH…À„_‹Pƒú ‡IãýÿH� ÄN‰ÐHc�HÈ>ÿàH‹{èGúÿÿƒ=@é……üÿÿHƒ=Jé…wüÿÿH‹s H�=Vž[1ÀA\A]A^]éòåf�M9ôƒ.ýÿÿéyãýÿf�1ÒH÷öH‰ÈH)Ðé¢þÿÿM…ä„'ÿÿÿèòH‹ÐMl$0L� 0éàýÿÿH‹{èÁùÿÿ€=êèL‰%Ãè„øûÿÿH‹C Hƒ=¹èHDC(H‰ÃH…À„€L�%N‹Sƒú ‡câýÿ‰ÐIc„Là>ÿà�L-�èL9%Šè…§ûÿÿH‹�ÏH0H9�è…�€=ì…tH‰VèétûÿÿL+-:èL9%CèL‰-,èt¶éXûÿÿL!-èL9%'èt¡éCûÿÿH‹ èH…É„GàýÿL‰èH™H÷ùH‰ñç[L‰çA\A]A^]éùõH‹ ÚçH…É„¼áýÿL‰èH™H÷ùH‰ÂçëÏL¯-¸çL‰-±çë¾1ÀL9-¦ç’ÀE1ÛH‰™çL‰¢çéÀúÿÿ1ÀL;-„ç’À1ÛH‰xçH‰�çéŸúÿÿH‹{L‹-YçèDøÿÿ€=mçL‰-Fç„{úÿÿH‹C Hƒ=<çHDC(H‰ÃH…À…ŠþÿÿfïÀç&çéDúÿÿf„ƒú|„9Þýÿ�êƒú>‡H� ‰LHc‘HÈ>ÿàHÇäæ1ÀL9-Ëæ•ÀH‰ÁæéïùÿÿH‹µæ‹—æÇ%çH‰îæ…Ò„ÄÝýÿH‹¯ÍH�Â0H9±æ…©Ýýÿ‹µæ‰Ñƒáûƒù…vƒê…¡LèL‰-TæH‰¥æÇƒæéqùÿÿÇ´æ‹5æ…ö„TÝýÿH‹?ÍH0H9Bæ…:ÝýÿH‹=æH‹ æIƒý†yàýÿJ�D)ÿI�ý…ˆ HÁè I¯Å‹æH‰Íåƒú„+ƒú„© öè@uI�uÿH!ñHÈH‰¡åƒú„Ëøÿÿ…Ò…¾ÜýÿH‹‰åfInÅfHnÏ1ÉflÁL‰-êåǨåH‰©åH‰ ²å)»åé�øÿÿ1ÀL;-Eå“ÀE1ÉH‰8åL‰ Aåé_øÿÿ1ÀL9-#å“ÀE1ÒH‰åL‰åé=øÿÿH‹ åIÓíéCýÿÿH‹ ôäIÓåé4ýÿÿ1ÀL9-ãä”ÀH‰ÙäE1äL‰%ßäéý÷ÿÿL9-Ãäƒð÷ÿÿL‰-¶äéä÷ÿÿH‹ ªäHƒùvçN�l)ÿ1ÒL‰èH÷ñI)ÕëÕf.„H‹CÆ•äHÇ‚äH‰käH‹C H‰häéŽ÷ÿÿL‹-qËL‹%zäI�•L‰áI9ÔtI�•0I9Ô…~„À…3ÛýÿéQ÷ÿÿfDL‹%ÉßH‹ äM…ä…4 H‹*äÆàãÆäH+X0H‰ñãH‰ÚãHÇ×ãéýöÿÿf�-/ƒø'‡ÝýÿH�OJHc‚HÐ>ÿà‹ ‹ã…É„ÎöÿÿL‹c1Ò1öL‰çè›ÿÿH…ÀuEH�5ù˜L‰çè#ýÿ…À…:ÜýÿH‹ ãH…À„õH‹@ H…À„è‹�”…ÒxéHƒx8tâH‹p8H…ö„í�;G„ó‹N|¸fïÀÆ-ã)ãHÓàH‰ãé2öÿÿ‹á†bå…Ò„öÿÿ1Àƒút0H‹=”åH�5=åH‹Gÿ�°H‹=|å1ö‰Ãè#ýÿ1Ò‰Á‰Ø÷ñÆÄâH‰¥âfïÀ)¢âéÈõÿÿH‹SH‹=BåE1À1ÉA¹H�5àäè[ýÿH…À„t ¶p�Vý€ú‡UÛýÿö@„P H‹s1É1ÒH�=©ãè¤"ýÿH…À„3 ö@!…) ¶5êá@8p ”À¶Àé`ÿÿÿƒ=ôá„9õÿÿH‹{1Ò1öè�™ÿÿH…À„Ñ ö€¨„õÿÿH‹@81ÿÆîáH‰=ÏáH‰=ÐáH‰ÑáéïôÿÿH‹{1öè¹ìÿÿH…À„;ÚýÿH‹@(éìþÿÿH‹{1öèœìÿÿH…À„ÚýÿH‹@ é÷ÿÿƒ=cᄨôÿÿH‹{1Ò1öèð˜ÿÿH…À„ÒÚýÿö€¨„…ôÿÿH‹x`H…ÿ…[H‹@8H‹ZÈ1öÆIáH‰52áH‹@8H�Â0H‰(áH‰áé?ôÿÿ@E1äéxòÿÿL‹5áLa0M9ôƒûôÿÿI�•0H9Ñ„ëôÿÿé6Ûýÿ€Ž÷=)…ýD‹- àE…í„Ý×ýÿH‹ÈÇH0H9Ëà…Ã×ýÿ‹Ïà�Pÿƒú‡ÙH‹|àDzàH‰Ëàé™óÿÿH�5ò•L‰çèïýÿ…À…QÙýÿH‹ ãÆYàH‰:àéhóÿÿH‹=æâö€¨H‹^HHE^@èa ýÿ1ÒfïÀÆ$à‰ÁH‰Ø)àH÷ñH‰ößé$óÿÿƒú…“H‹5YàJ� (H‰ .àH�VÿH…Ê„ ûÿÿHÊH÷ÞH!òH‰àH)ÂH‰¯ßéÝòÿÿƒèƒø†ÑòÿÿéÇÖýÿH‹ÚßH‰‹ßé¹òÿÿA¶|$D�GýA€ø‡´ñÿÿ€I!@€ÿ…ÔM‹D$(L‹-xÆIƒx`tI�½0I9ø…½I�…0ˆQ H‰Aƒþ…Šñÿÿ€=ß„†ñÿÿA¹L‹ ßI�…0I9À…ÞH‹¹åH…Àt €=EåtrH‹=4åH…ÿ„`ƒ tH‹?ëìH…ÿ„8ÖýÿD¶—¨Aö u-H‹W8H…ÒtöB%€tH‹ ëÔL‹ZM…Û„1I9S•„ÒuâH…À„A€â „øH‹P8H…Ò„>‹B$%„ƒè…¼H‹BH…À„'H9P•À„À… H…Òt‹B$%ƒè…I‰ÐL‰AE„É…yðÿÿHƒ=Þ„kðÿÿ¶ràL‰æL‹úÝH�=[àH‹ üÝH‹�àA‰ÅƒÈˆGàH‹ZàAƒåÿP¶2à‹5¦ÝƒàþD èˆ àé ðÿÿ„À„›Hƒ=�Ý…�H‹{ ƒ„ŽÔýÿèü#„À…™L‹s Aƒ~„}ÖýÿAƒ~…QA�>…¼ÖýÿM‹vAƒ~…­ÖýÿM‹fAƒ|$…�ÖýÿA�<$…�ÖýÿI‹|$èv(„À„}ÖýÿI‹D$ ƒx…nÖýÿHƒx…cÖýÿI‹F(ƒx…UÖýÿHƒx…JÖýÿ€=ôÜtH‹ ÝI�…H9Á…wðÿÿƒ=¤Ü„éïÿÿé›ÕýÿH‹=bßL‰âH�5ßH‹Gÿ�@H‹‡ÜH�BÿHƒøý†Üƒ=bÜ…Jïÿÿé¢ïÿÿéTÕýÿH‹ÜH…À…ùÿÿé Õýÿƒú„�÷ÿÿéuÓýÿ1ÀfïÀÆRÜH‰3Ü)4ÜéZïÿÿH‹ØÞH9�˜•ÀéÊýÿÿL‹%:ÜA�L$$ éÿÿÿH‹=­ÞA¹E1À¹H�5HÞèÃýÿI‰ÄH…À„8Ôýÿ¶@�Pý€ú‡ I‹T$(H‹B`H…À„¦H‹ ÆÂH�Á0H9È„FH‹RXE1ÉIT$0H‰“ÛÆ”ÛH‰uÛL‰ vÛHƒ=^ÛHÇÀÿÿÿÿH‹=HÛIDÄH‰EÛH…ÿ„wîÿÿH‹[H‰ÞèÐýÿ…À…cîÿÿM…ä„ýíÿÿA¶D$ƒè<‡ìíÿÿH‹/ÂH0I9D$(…Ôíÿÿ1É1ÒH�=[ÜH‰ÞèSýÿH…À„¸íÿÿ¶@ 8 Ú„îÿÿé£íÿÿL‹oI‹|$L‰îèTýÿ…À„`M‹$$M…䄦öÿÿëÜH‹=VÝL‰æH‹Gÿ�àH‹‚Ú€HéþÿÿH‹G8H…À„Nüÿÿ‹P$�âƒê…ïÔýÿI‰Àé4üÿÿ1ÒI÷õérôÿÿH9yÚu €=Þ„¤þÿÿH‹BXfïÀID$0Æ>ÚH‰Ú) Úé¥þÿÿÇCéÀëÿÿƒ=èÙ‡ÔýÿI‹D$0E1ÒÆÚL‰ìÙH‰ÝÙH‰æÙécþÿÿö@„úìÿÿéGÓýÿ=(ޏ=f…Â[A\A]A^]é—öH‹Ré!ûÿÿA€|$… ýÿÿE1íÆ˜ÙL‰-yÙH‹¢ÙH‰{ÙéhëÿÿL‹ÜI9“˜•ÂéÀúÿÿA€|$…wìÿÿI‹D$0H‰8ÙI‹D$(éáðÿÿH‹ßÛH‹��éÜúÿÿH‹RéÓúÿÿL9ïƒ<ìÿÿH�TÿI)ýL!êHÐH‰ôØé"ìÿÿé8ÓýÿèÍéÿÿ€=öØ…,ÿÿÿéìÿÿƒø-„.ƒø~„ƒø!…¹1ÀHƒ=®Ø”ÀH‰¤ØéÒëÿÿ‹�؃útNƒêt €=tØu@„À…ýÿÿE1ÀIƒ|$ AÆD$M‰D$(…öüÿÿH‹=íÚL;g0„åüÿÿL‰æèýÿéØüÿÿL‹cºH�5n1ÿèçýÿL‰âH‰ÞH‰Ç1Àè'ƒ=Ø…EëÿÿL‹cºH�5rëʸéCõÿÿ1Àé<õÿÿé@Ñýÿ=m…ÙH‹Ø×1öH‰ÁHƒù†�öÁEòHÑéëëè¡èÿÿÆÊ×éàêÿÿéþÐýÿH÷¡×éÏêÿÿH÷•×éÃêÿÿL‹-©¾éCøÿÿ$ˆQ H‰yA•Áƒþ…Lùÿÿ€=T×…Jøÿÿ„À…Âéÿÿé;ùÿÿA€|$t^I‹\$AÆD$é;óÿÿH…À•ÂH½ÀH˜@„ö…�„ÒºHDÂE1öH‰×L‰5×é9êÿÿ=Ft¾¤H�=Œèfmþÿ€=�Út™H‹ .ÚH…É„§ÎýÿI‹\$1ÒH‰ØH÷ñH…Ò„xÿÿÿ1ÿºH�5èdýÿL‰îH‰Ç1ÀègÓéNÿÿÿHƒè„ÒHÇÂÿÿÿÿHDÂHƒÀédÿÿÿé ÍýÿéçÍýÿéMÎýÿéºÐýÿ@UH‰åAWA‰×AVE1öAUI‰ýATI‰ôSHƒì(H…ö„š‹F8ƒøA•Æ…À•ÀA!ÆH‹HÇH…Àty‹H8I‰Äƒù•Â…É•Á ÊDEòH‹H‰0H…ÒtW‹r8L‹"H‰ƒþ•Á…ö@•Æ@ ñDEñM…ät+A‹L$8ƒù•À…É•Á ÈDEðI‹$I‰$L‰âH…ÀtI‰ÄëÕI‰Ô„M…ít$I‹}H…ÿt€?*…�€…wIÇEH‹5 ÔH‹‘ÔH‹ ÄH‰òH)ÂHƒúg†H‹kÔHƒÀhH9Ø„ýÏýÿH‹wÔI‰ðHÐH÷ÒH!ÐH‹<ÔH‰ÇH)×I)ÐI9øHBÆfHnÀflÀ)$ÔfïÀÇCHÇH‹AH‰H‰YHÇCXÆC`DˆsbCHM…ít-A¶M4Aƒ}0ºI‹EEÑH‰CXóAoM¶ÂˆÌKHf‰C`H�CL‰c@H‰CH�C H‰C(H�C0Dˆ{cHÇCHÇC HÇC0H‰C8M…ä„KÏýÿM‰çL�5uoM‹oM…í„ÏýÿL‰ïè1ýÿL‰ïL‰öI‰G èrýÿI‰G(IÅL‰ïèýÿH‰ÁH…À…—I‰O0M‹?M…ÿuµL�-4ÚM‹t$M…ö„¤ÎýÿA¾6@„ö„›L‰ïfD@€þ[t7 @€þ*t/@€þ?t)ºIƒÆè~A¾6H‰Ç@„öuÒº1öèfH‰ÇH‰Þè›M‹$$M…äuŽHƒÄ([A\A]A^A_]ÃA¾t ÿH‰EÀH�=‰H�@ÿH‰MÈH‰E¸è¾ýÿH‹MÈH…Àt1Éé7ÿÿÿH�=wÙë“Hƒ}¸uP¹éÿÿÿ¾hH�=8ÒH‰MÈèSH‹@ÒH‹5AÒH‹MÈé¶ýÿÿH�5 nè<ýÿH…À…|ýÿÿéöÍýÿA¾t þL�IþH�=‡ˆH‰M¸L‰MÀè0ýÿH‹MÈL‹MÀH…ÀI‰Èu‚M…Éu ¹éšþÿÿA¹IÍL‰ÈH�=HˆL‰E¸H÷ØH‰MÀA¾tÿL‰MÈèäýÿL‹MÈH‹MÀH…ÀL‹E¸tL‰ÉéTþÿÿIƒÁM9È„Gþÿÿë´ff.„�óúH‹éó ýÿóúUH‰åATI‰üSH‹‰óH…Àt@@:pt.H‹@H…Àt1@:ptH‹@H…Àt"@:pt‰ñH‹@H…Àt8Huò[A\]À„Ò„�H‹5©ÐH‹šÐH‰ðH)ÐHƒøv}H‹ÐHƒÂ H9Є¡H‹ ‹ÐI‰ðHÊH÷ÑH!ÊH‹ PÐH‰×H)ÏI)ÈI9ø‚tÐýÿfHnÂflÀ)6ÐHÇI‹$ˆXH‰PHÇ@I‰$[A\]Ã1ÀéUÿÿÿ¾ H�=íÏè˜QH‹ùÏH‹5úÏH�P H‹ßÏH9Â…dÿÿÿé.Ðýÿé)Ðýÿff.„�UH‹ÀÏH‰åATI‰ôH‹5¹ÏSH‰ûH‰òH)ÂHƒú†¨H‹ŽÏHƒÀH9„ÌH‹ šÏI‰ðHÈH÷ÑH!ÈH‹ _ÏH‰ÇH)ÏI)ÈI9ø‚ÁÏýÿfHnÀH�CflÀ)AÏHÇBH‹KL‰"H…Éu H‰[A\]ÃDH‹AH…Àu H‰QH�A[A\]ÃH‹HH…ÉuHƒÀëÎH‰ÈH‹IH…Étîëò¾H�=ÑÎè|PH‹ÝÎH‹ÎÎH‹5×ÎHƒÀH9Ð…9ÿÿÿéPÏýÿéKÏýÿóúUH‹vH‹H‰åè{ýÿ]…À”À¶ÀÃ�óúUH‰åAWAVI‰ÎAUATI‰üH‰ÏSH‰ÓHƒì(L‹-pÖH‰uÀIƒ}`M‹}X•EÏ1öè ÚÿÿM…öI‰EHA•ÆM…ÿuE„öukH‹}À1öè€ÚÿÿH‰Â€}ÏI‰U@t E„ö…ÄÎýÿH‹ÖH�¼ÕL‰`PH‰˜€H‹ª¾H9ÂsVH�PøH‹@øH‰–¾H‰ǽHƒÄ([A\A]A^A_]ÃL‹}ÀH�5I‚H‰E¸L‰ÿè™ýÿH‹U¸…Àt„1öL‰ÿè÷ÙÿÿH‰ÂérÿÿÿéŒÎýÿf.„óúUH‰åAWAVAUATSH�ì˜H‹=)ÒdH‹%(H‰EÈ1ÀH…ÿ…ÊÑýÿH‹’ÐH‹5;ÎH�=TH‰�Ùè¸1ÿè!H‹2ÎH‹€€H…ÀtÿÐH‹…ËH…Û…d èGýÿˆ…ÿÿÿ„À„ÿÑýÿ1ÿè²àH‹+Ð1Ò1öH‹=Ð̓éÍH‰2Ùè=¿èƒàH‹ÄÍH‹@ H…ÀtÿÐö[Ð…“ L‹=ÅÐH�¾ÐM…ÿ…"ÞýÿH�5öÊHƒ=öÊH‰0„ÄH‹=¦Ðè™áH‹=¢Ðè�áH‹^ÍÿP(Hƒ=cÑ…åÝýÿL‹5ŽÎ1ÛL�e°M…öt:I‹~0L‰æèÔýÿI‰F8H…À…3Òýÿ�}°ð…ãÑýÿM‹vHM…öuÑ…Û…VÑýÿ1ÛH‰ˆÖè{ýÿL‹%4ÎH��ÏM…äuZéÉE‹– E…Òt<€=Ï„E1íH‹­ÏH‰ÞL‰÷H‹@ÿ�H„À„TÑýÿ€=â΄ØM‹d$HM…ättAöD$a uîM‹t$0¶ÁÎH‹5cÏL‰÷è+ ýÿAöD$`…žÐýÿ¶ƒâ€ú„ª öìÎ …� H…À„4ÍýÿAöFD@„OÿÿÿE1í€=iÎ…[ÿÿÿéªÞýÿHƒ=šÎ…o¶6׈Eˆ„ÀuR€=ÿÒÆ!×tL‹-gÕM…í…H�=GÕE1ÀL‰=ÕH‰=>ÕèQÈL‹5:ÕM…ö…w×ýÿè\Ì€=ˆÏtvH‹ŒÎL‹ •ÎH‹@D¶pM…ÉtZ€M‹¡�M…ät;@M‹,$A¶E„À„á H‹ˆ²¶ÈöJŒ…‰ <_„� M‹d$M…äuÉM‹‰M…Éu­H‹=î̓@u0¶¹Íƒà<t"A¸1É1ÒH�5º�è ýÿI‰ÄH…À…:¿èFç1À‰þÊöÍu5¶n̓à<„m ‹­ÎH‹=~Í…À…Ýýÿ1ÒH�56èp ýÿè;/H‹=tÊèï7D¶5'ÍD‰ðƒà<„5 A€æ …´H‹0ÍL‹%Áǃx@u M…ä…m öóÌt1L‹%BÍM…ät%DH‰ÞL‰çè�ýÿ„À„9ÚýÿM‹¤$M…äuàH‹ ÊÿP0H‹5çÉH�=Ð8èkè–.H‹=ÏÉèÊëH‹=ÃÉ1öƒÚÉèÅ8H‹=ŽÉèiîH‹ºÉÿP8L‹5øÊM…ö„0L‰}ˆI‹F0L‹¸�M…ÿuéM‹M…ÿ„óIƒ`uìAöF`…lÙýÿA‹W$¶ ̉ÐÁèƒà÷Â…Dƒá@…€=<Í…L„À…M‹'H�5ùL‰çèòýÿ…À„¿Êýÿ‹ü̃ø„iÊýÿƒø„GÑýÿ€=ñÌ…Ÿ ö�Ë„‚L‹-¹ÆI‹M…í…¦ H‹ÆÈH‹€�H…À„ÈÊýÿE1íD‰êL‰æL‰ÿÿÐI‰ÀH…À„±Êýÿƒ=…Ì…ÿÿÿéÞÊýÿf�M‹vHM…ö…ÛþÿÿL‹}ˆ¶Ëƒà<tBH‹=ZËH‰ÞH‹Gÿ�H‹=FËH�5„èÊýÿH…Àt€=2Ì‹P$„OËýÿƒÊ‰P$Hƒ=¯Ñ…÷ H‹ÚÇH…ÀtRDH‹P(H…Ò„‹HƒxH…€Hƒx`…uHƒxX…jH‹r@H9p@…\H‹RHH‰PHH‹@ H…Àu³€=ŸËt H�=-þÿèNù¶Gʃà<„�H‹…ÊL‹ �M…ät|L‰}ˆL�-^~fDM‹<$L‰ÿèŒýÿL�p L‰÷èpÿüÿM‰øL‰éL‰òH‰ÃH‰Ç¾1Àè…ýÿL‰æH‰ßèê1H�{ÇC.sizL‰æÆGeèÓ1H‰ßè ÿüÿM‹d$M…äu™L‹}ˆH‹þÆA¾ ÿPX¿PèÿüÿH‹ÜÍI‰ÄH…Û…$ L‰çèÈþüÿL‹%‘ÆM…ät4@E‹”$”E…ÒxIƒ|$8tM‹¬$€M…í…2 M‹d$ M…äuÐö4É@…51öƒ=:É@—Æ1ÿè—úèÂüH�=:6þÿèø¿è¼âH‹MÆÿPx1ÒH�59lH�=âÇè½ýÿ€=|È„KH‹=ÉèýÿL‹ É�Hÿ¸M‹ �HÓàL�lÿM…ätV�AöD$$tÿà€ƒ»”ÿt H‹sL‰çè£ÿÿÿH‹H…Ûu¾HƒÄ[A\A]]ÃÃH‹5ˆÃL‰çè€ÿÿÿëÛff.„óúUH‰åAVAUATS‹Gƒø tƒø „­[A\A]A^]ÃHƒ=¿¼…ÐýÿL‹wL‰÷èMõüÿH‹†¸I‰ÅH…Ût6öCat'H‹{è/õüÿL‰îH‰ÇI‰Äè�ôüÿ…À„�ÎýÿL‰çèqñüÿH‹[PH…ÛuÊL‰ïè`ñüÿè+ʃ=¸»H‰Eµ…)H‹58µL‰÷è¨üüÿH‰1¼H‰ÇH…À„mÎýÿ¾Æqµè”ùüÿ„À„RÏýÿH‹=¼H‹·‹5 ·H‹Gÿ� „À„ ÏýÿH‹=ß»H‹Gÿ�ÈH‰¦»H…À„ÎÎýÿ‹5ƒ H‹=¸»èóûüÿH‹´¸ÿPH€=’¼H‹›»tL¶ B»‹PDƒá€ùt:€Î‰PD€=~¼‹HDt8€É€‰Ê€æûö»u,€=g¼u*�âÿÿÿ‰PDé}þÿÿH‹F»�bDÿþÿÿë¼€áëÆ€Í‰ÊëÍ�Ê€‰PDéSþÿÿéVÍýÿé²Íýÿf„óúH‹»UÇšÁH‹@H‰åƒxu-H…ÿt(öG'@u H‹5ûµ‹=ýµè òüÿƒøw'ƒø…³Îýÿ]ÃH‹5Ùµ‹=ÛµèþñüÿƒøvÞé¦Îýÿé¡Îýÿff.„@UH‰åAWL�=�AVA‰ÖAUAƒæI‰õATA‰ÔSH‰ûHƒìHdH‹%(H‰EÈ1ÀH…ÿt=ƒ{w/‹CIc‡Lø>ÿà�E…öu L‹CXM…À…H‹{D‰âL‰îè�ÿÿÿH‹H…ÛuÃöÁµ…eH‹EÈdH+%(…MHƒÄH[A\A]A^A_]ÄH‹{H‰ÞD‰âI‰Ýè>ÿÿÿH‹H…Û…nÿÿÿë©H‹{ƒt—H‹žÆݶHÇ·H0L‰-·HÇõ¶H‰ö¶è©ÇÿÿH‹H…Û…ÿÿÿéQÿÿÿ„D‰âH‹.¹ƒÊH‹ œÁH‹{L‰î‰U¨H‰M˜H‹H0H‰M è¡þÿÿH‹¹H‹M ‹U¨H9H0uÊH‹M˜H9 bÁ„íþÿÿéÎýÿ€¶Ca¨tFH‹QÁH‰SXE…äu_H‹¹µH�u°H‰ßHÇE°H‰u¸H‰E¨è%„À„ÁÍýÿHƒ}°…ÅH;ûÀ…†þÿÿé@ÍýÿH‹=¿D‰âL‰îèþýÿÿéjþÿÿE…ö…º¨t”H‹K0H…Ét‹¶QHƒâƒú„°ƒê…rÿÿÿöAD@„hÿÿÿ€{`‰^ÿÿÿH‹Aƒx…PÿÿÿH‹�ö€œ @„<ÿÿÿ¶CaƒàíƒÈˆCaé*ÿÿÿL‰ÇH�5gPL‰E¨è÷üÿL‹E¨H…À…Äýÿÿé ÍýÿH‹E¨H9º´…ŠÌýÿH‹E¸H‹H‰H‹E°H‰éÿÿÿHƒ=À„8ÿÿÿéËþÿÿ¨t‹éÂþÿÿèåðüÿé–ÌýÿUH‰åAWAVAUATSHƒì8dH‹%(H‰EÈ1ÀöGa…ÿH‰ûI‰ôèûöCa…ê‹5c²…ö… Ïýÿ€=t¶…þÎýÿH‹{0¾èÈúüÿ„ÀuH‹{0H�U¸¾è‚ùüÿ„À„=H‹´H‹€ÈH…ÀtNH�€H9Ð…5¶C`L‹c0‰Â‰Áƒâƒá@„À‰»¾„Ʌф҅¸ƒÎAöD$D@…ÏL‹s0A¶FHƒà<u]öCau H‰ßè{L‹s0I‹FH�5<¶L‰÷ÿ�ЄÀ„IÍýÿ€KaA¿H‹EÈdH+%(…—HƒÄ8D‰ø[A\A]A^A_]ÃL‹%¥¯<uªM…ä…³ÍýÿL‹s0I‰žöCat�éÍýÿ1ö„É„Hÿÿÿ„Ò„WÿÿÿAöD$D@„KÿÿÿéMÏýÿ„ÒuëAöD$D@„6ÿÿÿ¾L‰çèâóüÿé$ÿÿÿè˜ðüÿA‰ÅH‹Ö²H‹€¸H…À…RÎýÿL‹s0Aƒý „ÎýÿAƒý …ÔÎýÿM…ä„ËÎýÿL‰÷èe÷üÿ1ÀH‹{L‹-8±H‰C0L‹=5±D¶5&±I�åÿ÷ÿÿèI–L‰çAÀîèý®·±·S`ÆÛ¸Çm´Aƒæf�âàf%þ Ðf‰Û°H‹CH‰Ȱè»”ÿÿ¶Ű1ÒÆ›¸H‰¬°ÀèL‰=²°L ðƒàHÁà I ÅL‰-–°衲H‹=®è…íüÿ1ÉH‰ ô­éLþÿÿèîüÿH‰ßÿЄÀ„üýÿÿé9þÿÿóúH‰øH…ÿu)UH‰÷¾(H‰åSH‰ÓQèNñüÿH…À„óÍýÿf�` þZ[]Ãf�g þÃ@UH‰åAVAUATSHƒì@dH‹%(H‰EØ1ÀHƒ0uNH‰ûöG`taH‹(H…ÿumL‹%"­L�5–{L�-×hM…ä„¶ÍýÿI‹<$L‰ñL‰êH‰Þè „À„Îýÿ€c`ûH‹EØdH+%(uYHƒÄ@[A\A]A^]ÃH‹H‰ÞèE„ÀuÔéÎýÿH‹S1ÉH�5­g1ÀèîüÿH‰ÞH‰ÇI‰Äè„À…0ÍýÿL‰çèšèüÿé\ÿÿÿèÐìüÿóúUH‰åAWAVAUATI‰üSH‰óHƒìH‹vXèüëüÿ€=�²H‰C0…ãÏýÿH…Àu&èîüÿƒø„ƒÐýÿ1ÀHƒÄ[A\A]A^A_]À€{ax@¿è@èüÿL‰çI‰Åè5îüÿHƒ=%²IÇEI‰E„EH‹\·L‰(L‰-R·H‹{0¶GJ�OD€‰ÂƒÊˆWJ€{aˆª¶C`ƒà$< tW¾èDöüÿ„ÀuL‹k0M…ít@¾L‰ïè*öüÿ„Àtx¶C`¨ „X¨t¶Ö±H‹5x²L‰ïè@íüÿH…À„wÏýÿö²t#€=—ºuH‹{0¾è×õüÿ„ÀtH‰ßèk¸éëþÿÿH‹{01öèÆõüÿI‰ÅérÿÿÿL9k0u±öC`t«èÍìüÿƒø u¡H‹ ¯H‹€¸H…À…gÎýÿ1öL‰çE1íèT“1öÆkµ‰5±è0·ÿÿ¸u=0t!è߬ÿÿ…ÀuðéáÍýÿL‰-ǰL‰-¶é¹þÿÿ辬ÿÿƒø(…¸Íýÿè°¬ÿÿ=…¨ÍýÿL‹5®µE1ÿè–¬ÿÿ1Òƒø,„~Íýÿƒø)u¢‹İƒø„[Îýÿƒøt>è¿L‰÷H‰Æè"îüÿ…À¸DEèénÿÿÿH‹S0öBD@„šþÿÿéÍýÿƒÈ$ˆGJéKþÿÿénÎýÿff.„@óúUH‰åAWAVAUI‰ýATSH‰óHƒì¶F`H‰UÈH‰MÀ¨„L‹%ê©L�=±dM…äuYé/f„HƒìH‹UÈL‹MÀH‰ñjM‰èL‰þ1ÀèâêüÿH‰ÞH‰ÇI‰ÆèôüÿÿZY„À…—L‰÷èråüÿM‹$$M…ä„à¶S`ö „·¶°ƒà<„¥H‹G­H‹€ˆH…À„ŽH‰ÚL‰æL‰ïÿЄÀuA¶C`H‹sI‹|$ƒà<„Xÿÿÿ1ÉH‰ò1ÀL‰þèIêüÿH‰ÞH‰ÇI‰Æè[üÿÿ„À„iÿÿÿL‰s¸H�eØ[A\A]A^A_]ÃH‹~¨…¼ÍýÿH‰Þè'üÿÿ„ÀuÔH‹C€8/…Õþÿÿé—ÍýÿƒâH‹sI‹|$€ê„Üþÿÿë‚é{ÍýÿévÍýÿóúUH‰åSQ¾w`‰ðÁî‰Âƒâ¨@uƒÎ„Òu&H‹0öGD@uZ1À[]ÃèHíüÿëó„Òu „Àyë¾ëÚH‹_0öCD@…jÍýÿëÔ€óúUH‰åSH‰ûHƒìH‹a­H‹¯H‰8H�GHH‹0H‰H­H�‡H9„AÍýÿHƒ¿…3ÍýÿH;=Ë®„7ÍýÿH‰:‹5€“H‰ŸH‰Æ®èéîüÿH‹{0H‰ÚH‹]øÉH�5é‘òüÿ�óúH‰ðöB`…Íýÿ¶(®‹ODƒâ€útE÷Áu=‹V$�†�ú€„êÌýÿƒá@uH‹WH‰ÆH‹Š0H�æ­ÿá@Àƒá@tØÃf�óúUH‰åAWAVAUATSHƒìH…ö…'Ðýÿ€=N­…´ÑýÿHƒ= ­…¦Ñýÿ¸éÏÑýÿff.„f�UH‰åATSƒ…BÕýÿH‰ûH‹0¾è.H…Àu[A\]ÃH‹{0Hƒ¿èL‹gPuè]ïüÿ€Ka L‰c0ëÚUH‰åAWAVAUATSH�ìH‰½¨þÿÿdH‹%(H‰EÈ1À貿L‹=#­Aƒ@…UH‹=‘¬H…ÿ…ÖýÿH‹=ñ§H…ÿ…ÈHƒ=ا…ºH‹ ­H�=´¬L�%‡bH‹@H‹€€ÿ�¨H‹õ¬H…ÛuëtfDH‹›H…ÛtbL‰æH‰ßèQèüÿH…À…,H‹CƒxuÖH‹ƒH…À„×ýÿö@`uÀH‹ƒH…Àt´·P8fƒú„×Õýÿfƒúu ö€ž t—éÃÕýÿ¶¬ƒà<„Oö¬…LH‹T¬H…À„<1ÉÆ…Ÿþÿÿ1öL�-äaL‰½�þÿÿL�%æaH‰� þÿÿ@H‹�H…Ò„™ÔýÿöB`…ÃL‹¸�M…ÿ„L1ÒH‹=E�H‰…°þÿÿ‰•¸þÿÿ‰µ¬þÿÿH�Ÿ0M‹7I9_`t+ºL‰îL‰÷è7âüÿ…À„ªÓýÿL‰æL‰÷ètèüÿ…À„ÔM‹M…ÿuË•¸þÿÿH‹…°þÿÿ‹µ¬þÿÿ…Ò„Î…öt9Ö….ÓýÿHƒ½ þÿÿ…²ƒú„ÙÒýÿöòª…¾H‹€H…À…ÿÿÿH‹� þÿÿL‹½�þÿÿH…É…œ€½Ÿþÿÿ…6Ôýÿ¶¬ªƒà<„›ÓýÿH‹EÈdH+%(…‹µ¨þÿÿH�ÄHL‰ÿ[A\A]A^A_]髽Iƒ@ ¸B…¸þÿÿ‰…¸þÿÿéÿÿÿ‰Öƒþ…^ÿÿÿéAÒýÿH‹…ªH‹’H‹’¨ H9B(…�Òýÿ1ÿH‰ÆèCéüÿH…À„¢ýÿÿëÌH‹aªH…Û„¾H‹Cƒx…hÒýÿƒ» „[ÒýÿH‹ƒH…Àt ö@`…EÒýÿH…ÿ„‰èéÃI‰ÅH…À„7ÒýÿIƒÅ„-ÒýÿL�%v_º+@H‰ßL‰æèÌáüÿH…À„:ÓýÿH‹Ì©fHnÈó~‡¤H� HèÇ@|H‹’flÁH‹’¨ H‰JB H‹�ÐÇBL‰h@L‹->¤M…í„cüÿÿéèÒýÿH‹AH�5:_H‰ÏH‹€€‹P8ƒÊè0àüÿH…À„;þÿÿÇ@|I‰‡ é5þÿÿH‹PH‹� þÿÿ¾Æ…ŸþÿÿƒzHDÈH‰� þÿÿéÖýÿÿ¶¸¨‰Ð‰ÑÀèÀéƒðƒáƒà8Át&H‹EÈdH+%(uH�ÄH[A\A]A^A_]ÃèâüÿH‹EÈdH+%(uìÒH‹=½¨H�ÄHH�5J^ƒâ[A\ƒÊA]A^A_]éjßüÿéöÐýÿDóúUH‰åAWAVAUATSHƒìh@ˆµÿÿÿdH‹%(H‰EÈ1ÀöGF…¶GJH‰ûƒà…KL‹'H‹¡ŒA‰õH‹Çè?êüÿ„À…;L‰ç1ÒH�5î]èVâüÿH‰ÞH‰ÇèÛãüÿI‰ÄH…À„¹�HDH‰Çè`Þüÿ„À„±H‰ßè@äüÿL‰çH‰ÆèµìüÿH‰ßèíâüÿL‰ç‰ÆèóçüÿI‹D$L‰æH‰ßÿ�@„À„ŸÒýÿº� H�5d`L‰çèvßüÿH…À„‚Òýÿ¾HL‰çè€àüÿI‰ÇH…À„GL�u H‰ßL‰öè…ìüÿ…À„L‹E L;„H‹ƒèL‹L‰}ÀfoE°M‰'H…ÀAÆG4L‰ÇHEÃIÇGIÇGI‰G‹E¨IÇG A‰G0AG8L‰E€èàüÿL‰çH�PH‰ÖH‰UˆèçßüÿH‰ÇH…À„¼ÒýÿH‹UˆH‹u€è^äüÿL‹£ÇEœI‰G(M…À…‚Hƒ=s¡….ÒýÿA‹w0‹Eœƒþÿt…À…îI‹èˆãüÿAÇG0ÿÿÿÿ‹Eœ…À…õA€4…Ñýÿ¶CJL‰çƒàçƒÈˆCJè5äüÿ1ÀH‹UÈdH+%(…õHƒÄh[A\A]A^A_]ÃI‹@(H…Àt6M‹H0L‰Í¢M…É…âL‰EˆH�uœL‰÷ÿÐL‹Eˆ1öH‰5ª¢…À…kÑýÿM‹M…À„3ÿÿÿƒ}œ…)ÿÿÿI‹@(H…Àt6M‹H0L‰x¢M…É…ƒL‰EˆH�uœL‰÷ÿÐL‹Eˆ1ÉH‰ U¢…À…ÅÐýÿM‹(M…í„Þþÿÿƒ}œ…ÔþÿÿI‹E(H…Àt.M‹E0L‰-#¢M…À…|ÐýÿH�uœL‰÷ÿÐ1ÒH‰¢…À…õÏýÿM‹mM…í„�þÿÿë°L‰ÇL‰E€èUÞüÿL‰çH�PH‰ÖH‰Uˆè"ÞüÿH‰ÇH…À„NÐýÿH‹UˆH‹u€è™âüÿH‰E é°ýÿÿ<…£þÿÿH�«-þÿé™þÿÿL‰çL‹5Ò¤1Ò1ÀH�5ªZèßüÿL‰öH‰Çè—àüÿI‰ÄH…Àt~�HDH‰Çè Ûüÿ„À…þüÿÿé˜ÏýÿH‹{èªæüÿ„À…þÿÿA‹w0ƒþÿ…ôýÿÿéþÿÿ¶CJL‰cPL‰çƒàçƒÈˆCJèWÛüÿ¶SIA¶D$Iƒâƒà÷ ÐAˆD$IéSÿÿÿèvÝüÿé6Ïýÿé1Ïýÿé•Ïýÿé'ÏýÿéóÏýÿé/Ðýÿ„óúUH‰åH�ìÐH‰µXÿÿÿH‰•`ÿÿÿH‰�hÿÿÿL‰…pÿÿÿL‰�xÿÿÿ„Àt )E€)M�)U )]°)eÀ)mÐ)uà)}ðdH‹%(H‰…Hÿÿÿ1ÀHƒ=¸¤uH‹…HÿÿÿdH+%(uYÉÃH�E€?%Ç…0ÿÿÿH‰…8ÿÿÿH�…PÿÿÿÇ…4ÿÿÿ0H‰…@ÿÿÿtH‰þH‹=f¤H�•0ÿÿÿ1Éè0Žë €!uàé‡ÏýÿènÜüÿff.„óúUH‰åAWAVAUATSH‰ÓHƒì¶R`öˆUÈ„›L‹{I‰þH‹~I‰õèÜüÿL‰ÿI‰Äè Üüÿ¶UÈIăâ…ŸÒýÿL‰÷èòÛüÿI�TH‰×H‰UÈèÑ×üÿHƒìH‹UÈM‰ùAVM‹EH� æXH‰ÇI‰Ä¾1Àè×çüÿH‰ÞL‰çèìîÿÿZY„ÀuL‰çèn×üÿ1ÀH�eØ[A\A]A^A_]Ã1ÀëíL‰cH‹{0¾è×åüÿ„À…\Òýÿ¸ëÌ„UH‰åAWAVAUATSHƒì(H‰U¸dH‹%(H‰EÈ1ÀH…ÿtNH‰ûI‰ôI‰ÍI‰öL�=Ü„ƒ{‡†Óýÿ‹CIc‡Lø>ÿàDH‹{H‹U¸L‰éL‰æè•ÿÿÿH‰E¸H‹H…ÛuÅH‹E¸H‹UÈdH+%(…*HƒÄ([A\A]A^A_]ÃA¶U¶ƒ¨I‰ÞH‹{8ƒâƒàßÁâ Јƒ¨èWæÿÿH‹U¸H‹C8H‰UÀH…À…zH‹{L‰éH‰Þèÿÿÿöƒ¨…uÿÿÿH‹S8H…Ò„dÿÿÿ‹B$H‹r0%H‰uÀ=„›H‹B@‹ ¤§HÓèHðH‰EÀH‹{xH…ÿ…šÒýÿH‹EÀéÿÿÿ@H‹Cö@%€…ÿÿÿH‹@@‹ h§HÓèHE¸H‹H…Û…Áþÿÿé÷þÿÿH‹SH‰=¤ƒzt{H‹zL;%”�¶uO<.uK€uIƤ€?_u=€_H�G„˜H�5WH‰ÇH‰U°è8ÝüÿH‹U°…Àu,AÆEH‹Së!D<_tÃH�5ãVH‰U°è ÝüÿH‹U°…ÀtÔI‹D$8ÆM�H…À„YH‹M¸H‰×H‰y�L‰5z�H‰ [�H�M¸H‰ X�è®ÿÿéþÿÿfDöƒ¨…ëö@$„áH‹P0H‰¾£ÆO£H‰UÀéTþÿÿfD‹ :¦H‹CHÓèHE¸éÉýÿÿH‹U¸H‹=ÿ¥L‰éL‰æèDýÿÿH‰E¸éªýÿÿH‹̃H‹{H�M¸L‰öH��0è͹€=¦œ„²ÐýÿH‹�œH‹ŠœH‰C H…ÒtHB0H‰C ‹C-ƒø‡àÐýÿ‹ ª¥‰ÂH�5±ƒ¸‹–Óà9ÐBÂÓèHE¸é&ýÿÿ€H‹P0H‰UÀé�ýÿÿ€_H�G…ZþÿÿHƒÀ€8_…MþÿÿëñH‹E¸H‰×L‰5(œH‰ œH�E¸H‰œH‹÷‚HH‰ú›è­¬ÿÿé·üÿÿè³×üÿ¶žƒà<…gýÿÿé�Ïýÿff.„�UH‰åATSH‹’œH…Ût5DH‹{0H…ÿ„Ðýÿ¾è±áüÿ„À…ÐýÿH‰ßèáH‹[HH…ÛuÐ[A\]ÃóúUH‰åAWAVI‰ÖAUI‰ýATI‰ÌSH‰óHƒìD‹}H…ö„:€~„H…É„ÐýÿH‰ñAöD$Fu(H‹‚H��HI9ÐuI€y…»A€~„T€==š…çI‹}8H…ÿ…ÐýÿHƒÄ¸[A\A]A^A_]ÃfDA÷Ç u®A÷ÇuºHI9ÀtCAö@%…ëÏýÿAöEuI‹D$ƒxt’fD¶A�Pý€ú†›<…tÿÿÿé3Ïýÿ¶Aƒè<v=AöD$D@u€IéPÿÿÿAöD$D@„ŽA€N€Ié6ÿÿÿH‹N(M…ä…ùþÿÿéÏýÿH‹A(H…À„ÒÎýÿö@Ft°éÇÎýÿH‹A™L‰áL‰òH‰ÞD‰}L‰ïH‹@PHƒÄ[A\A]A^A_]ÿàH‹A(H‹€àH…À„Íþÿÿö@F„ÃþÿÿÆAH‰A(é¶þÿÿA€NéKÿÿÿé±ÎýÿUH‰åAWAVAUATSHƒìXH‰}°öG`…:H‹G0H‹€�H…À„&DH‰EÀL‹ »H�=UŸë)„Û„ðA¾4$1ÒIƒÄ‰óèÆÆÿÿH‰ÇH…À„ÒL‹oM…ítÑL‰e˜ˆ]—H‰}ˆM‹uM‹fXM…ä…ÃI‹~HH‹u°èˆ„À…sM‹f@M…ä„«H‹EÀL‰m L‰ãH‹H‰EÈL‹{M…ÿ„‡H‹C0H‹}ÈL‹k(L‹c H‰E¸èkÔüÿI‰ÁM…í„4L9è‚ H‹uÈL‰êL‰ÿH‰E¨èÓÖüÿ…À…îHƒ}¸L‹M¨…ÄH‹E¸I�DI9Ä„bM9å‚9ÎýÿM9árH‹EÈB€< …°H‹{H‹u°èÀ„À…›H‹=!—H‹—H‰úH)ÂHƒú'†*H‹5ó–HƒÀ(H9Æ„:H‹ÿ–I‰ùHÐH÷ÒH!ÐH‹Ä–I‰ÀI)ÐI)ÑM9Á‚~fHnÀflÀ)ª–ÇFHÇI‹F(H‰0H‹EÀI‰v(H‰FH‹E°H‰^H‰F H‹H…Û…°þÿÿL‹m M‹mM…í…Zþÿÿ¶]—L‹e˜H‹}ˆ„Û…þÿÿ@H‹EÀH‹@H…À…ßýÿÿHƒÄX[A\A]A^A_]ÿ(è¾MÿÿH‹MÀÇ@HÇI‹V(H‰I‰F(H‰HH‹M°HÇ@H‰H é{ÿÿÿC€H‹H…ÀtÁëö�H‹HH‹�I$ H…Àt«H‹H�I$ ëɃøu™H‹=t›è_ÿÿÿë‹H‹PH‹�J$ H…À„tÿÿÿëç@óúUH‰åAWAVI‰öAUATI‰ü¿ÿÿÿÿSH‰ÓHƒì8dH‹%(H‰EÈH‹¹xD‹8èÑÌüÿH‹=Š”1ÒH‰Þè€ÕüÿH…À„ŒÒýÿD‰ÿI‰Åè¬ÌüÿA‹D$¨t!H‹=\”ºH‰ÞèOÕüÿH‰ÁA‹D$H…ÉuH‰Ù¨…lÒýÿH‰]¨éŒÒýÿff.„óúƒuH�G HÇG H‰G(ÃDUH‰åAWAVAUI‰õATL�%wSH‰ûHƒìH…ÿt=ƒ{w/‹CIc„Là>ÿàf.„M…í…ÙH‹{èþfDH‹H…ÛuÃHƒÄ[A\A]A^A_]Ã�÷C`ÿÿ…æL‹s M…ö…¾Hƒ=¶›uÄL‹s@M…öt»I‹~H…ÿ„JÕýÿH�5.Gè*Ðüÿ…À„$M‹6M…öt’I‹~H…ÿ„wÕýÿH�5GèÐüÿ…À„ûM‹6M…ö„eÿÿÿI‹~H…ÿu×ëéf�‹ƒ”��~þÿÿƒú†Ë…Àˆ;ÿÿÿH‹{H‰Þè×þÿÿH‹H…Û…îþÿÿHƒÄ[A\A]A^A_]Ã@M‹~L‰îL‰ÿèY„ÀuMH‹KPH‹S@H�{M‰èL‰þèM‹6M…ö„ ÿÿÿM‹~L‰îL‰ÿè#„ÀuH‹KPH‹S@H�{M‰èL‰þèØM‹6M…ö„ÖþÿÿëÈf.„M…í…ÔýÿH‹H…Û…Nþÿÿé†þÿÿfD€‹¨H‹{H‰Þè ¶ƒ¨‹“”Àèƒà�ú‚”Á8ÈtCǃ”ÿÿÿÿé6þÿÿIƒ}8…þÿÿA‹…œƒø„±1öƒø@”ÆÁæL‰ïèÿ éóýÿÿ…Ò‰¿þÿÿéõýÿÿH�5ƹL‰êH‰ßèk¬H‹s0H…ö„þÿÿéÔÓýÿH‹{L‰îèmýÿÿéÀýÿÿH‹=á—L‰îèYýÿÿé¬ýÿÿM…í„ÓýÿH‹{è’A‹…œƒèƒø‡©H�˜tHc‚HÐ>ÿàL‰-_™éjýÿÿ¾éQÿÿÿA¾I‹½ D‹Aƒÿu~�?uvH‹GH�5vHH‰ÇH‰EÈè²Íüÿ…ÀtSH‹}ÈH�5hHèžÍüÿ…À…™ÓýÿI‹E8H…À„uÓýÿD p$D‰¸éñüÿÿE1ÿA¾ëØA¾ ë„E1ÿA¾ëÅA¿ë½L‰î軕€=Ä�„ßÓýÿD‹=Ÿ�ëŸDUH‰åATI‰üSH‹ŒH…Ûuë&„H‰ßAÿÔH‹[PH…ÛtöCauëH‹[PH…Ûuñ[A\]Ãff.„f�óúUH‰åSH‰ûRH‹Ü—H…ÀunHƒ{tCH‹{0H…ÿt:Hƒ=¿—ucH‹¾—H‹{H‹pè¹Çüÿ…Àt3öC`…ýÓýÿH‹{0èbÉüÿH…ÀuX[]ÃH‹Š—H‰ÇH‹rè†Çüÿ…ÀuåH‰k—ëÜH‹x0èPÉüÿ¨u…ëÍèEÉüÿ¨t”ëÂff.„@UH‰åATSH‰ûöðŽtH‹ŠL‹'H…Ûup1À[A\]ÀH‹¿àH…ÿ„šÓýÿH‹GI‰ôH‰Þÿ�„ÀuL‹#H‹Ú‰H…Ût¿é…Óýÿ¸M…äuƒàë­I‹|$0H�5³Bè¨Ëüÿ…À•À¶ÀëàéVÓýÿf„ƒ‡íUH�"rH‰åSH‰ûHƒì‹GHc‚HÐ>ÿàfD‹-Iƒø†5ÓýÿH‹]øÉÃf.„H‹_ ƒ{wæ‹CH�ôqHc‚HÐ>ÿàH‹_ƒ{wÈ‹CH�úqHc‚HÐ>ÿà@H‹ègÿÿÿH‹[ ƒ{w�‹CH�óqHc‚HÐ>ÿàf„H‹[ ƒ{‡rÿÿÿ‹CH�ìqHc‚HÐ>ÿàH‹[ëÜH‹{èÿÿÿH‹[ ëÍÃH‹èÿþÿÿH‹{ èöþÿÿH‹[(é_ÿÿÿH‹{èäþÿÿH‹{ èÛþÿÿH‹[(ë™DóúUH‰åAWM‰ÇAVAUI‰ÍATI‰üSH‰óH‰ßHƒìH‹U�D‹v$L‰ÆH‰UÈH‰EÀè¡„À… M…í…ŽÖýÿD‰ð÷Щ„t¶ÉŒƒà<„–A‹‡œA�æûýñÿE‰õƒø„–ƒøwƒøuéÍÕýÿDƒèƒø†)ÖýÿI‹O8H…ÉuD‰îL‰ÿèI‹O8D‰èƒÈ÷#A$öA(…‘€I(H‹žŒD èH‰Þ‰A$H‹»àL�7ŒH‹Bÿ�PA÷Å€…WA�å…dH‹\ŒM‹o8H‹@ƒxu;L‹;ºH�5YDL‰ÿèÇÂüÿ…À„5ºH�5DDL‰ÿè«Âüÿ…À„N‹C|A9E|‚~€=߈L‰k`…ºÔýÿI‹…I‰�HǃøH‰ƒH…À…ôH‹55ˆH‹&ˆI‰�øH‰òH)ÂHƒú†ôH‹ˆHƒÀ H9Є¯ÔýÿH‹= ˆI‰ðH‰ùHøH÷ÑH!ÈH‹ ·H‰ÇI)ÈH)ÏI9ø‚]fHnÀflÀ)´‡ÇBHÇI‹D$H‰H‹EÈI‰T$H‰ZH‰BHƒÄ[A\A]A^A_]ÃfDD‰ê‰Æƒâ÷1Ö�怅­A÷Å€…Ä ÐA�å‰A$„€þÿÿéDÓýÿfDH‹5A‡H‰˜øH‹+‡H‰òH)ÂHƒú‡ ÿÿÿ¾ H�=÷†èBH‹‡H‹5‡éèþÿÿ€A‰E|éyþÿÿ€A‹‡œA�æÿýÿÿE‰õƒø…jýÿÿAƒåþé�ýÿÿA�å÷ÿþ%ÿÿþD è‰A$A�å„Óýÿÿé—Òýÿ‹³´9±´uÎ ÐA‰Õ‰A$ëÖ‹“´I‹G8‰�´ëÄH‰ðé›þÿÿé`ÒýÿI‹}H�5BèÊÆüÿ…À…†ÒýÿA¶G„Àt<.…¾ýÿÿ�K$é²ýÿÿI‹}H�5îAè•Æüÿ…ÀtÏé™ýÿÿé4Óýÿ€UH‰åAWAVAUI‰õATSH‰ûHƒì‹G$‰ÂÁêA‰Ô¶(‰Aƒä©…èƒâ@um€=fŠu7I‹}0H�55=è*ÆüÿL‹s`…Àt*E„äu%M…öuIE1äHƒÄD‰à[A\A]A^A_]èuÅ€H‹C`H…ÀunH‹pmH0H‰C`A¼ëÁöÄ tŽë×¶ ˆH‹ImA‰ÔH0AÀìAƒôAƒäI9Æ”ÀAÄuÃM‹}8M9÷tº€â@„zÿÿÿM…ÿ„qÿÿÿé¨ÖýÿH‹mH�Â0H9Ðt�ö?ˆ@t‡é¾Öýÿö¹DEáéÿÿÿff.„@óúUH‰åAUATSH�ì¨dH‹%(H‰EØ1ÀHƒ=%�…ÌI‰ýH‹0H…ÿ„¼èúÁüÿ¨…¯I‹}0H�µ@ÿÿÿèÀüÿ…À…x×ýÿH‹£ŽH9…@ÿÿÿuH‹…HÿÿÿH9”Ž„�H‹Ç�¾/H‹XH‰ßè^ÁüÿH…ÀuVH�5E@H‰ßèºÌüÿH…ÀtBI‹}0L�`èXÁüÿH‰ÃH…Àu I‹}è×ÃüÿH‰ÃH‹u�L‰âH‰ßH‹pH)òèËÁüÿ…À„ ×ýÿH‹EØdH+%(uH�Ĩ[A\A]]ÃH…À„gÿÿÿé×ýÿèsÀüÿóúH‹ 5‡H…ÉtlH‹AƒxuV‹� …ÀtLH‹�H…À„éÖýÿö@`u6H‹��H…Àt*f.„H‹�ÐH‹’�H…Ò…ËÖýÿH‹@H…ÀuàH‹‰H…Éu”ÃUH‰åAVL�5‰:AUATA‰ôL‰öSL‹o0H‰ûL‰ïèiÃüÿ…À„™×ýÿ€»¨‰<×ýÿH‹C8H…ÀubH‹=d†D‰âL‰îèI¾üÿH‰C8H…À„ßÖýÿH‹{XH‰@`HÇ@XH‰˜˜H…ÿu H‹{`H…ÿ… ×ýÿH‹{hH…ÿu[A\A]A^]Ã�è[÷ÿÿëÙé<×ýÿéúÖýÿff.„@H…ÿ„’UH‰åAVAUATI‰ôSH‰û‹CƒøuzL‹k M…íuAö„$¨tH‹H…ÛuÜ[A\A]A^]ÃM‹uL‰æL‰÷èJöÿÿ„ÀuIƒ~`u AöF$„íÖýÿM‹mM…ít¶M‹uL‰æL‰÷èöÿÿ„ÀuäIƒ~`uÝAöF$uÖé°ÖýÿÃø„ÂÖýÿƒøuŒéÛÖýÿ�óúUH‰åAWAVAUI‰ýATSH‰óHƒìX‰UÈH‹—àH‹ …H‹BD‹pH‹AD‹xAƒþ…o¶£„H‹·ÐƒàD‹f<„åö‹„„³‹$@öÇ„ËAƒü„PAƒü „uÇEÀAƒÿuH‹‚ö€� …=D‹EÈE…À…1É1ÒH�=fƒH‰ÞèÂüÿH…À„åH‹PHH…Ò„‹¸¬…ÿˆj×ýÿHƒÀH‹§hE1ÀD‰e¸I‰ÄL‰EÈL�’0H‰]°L‰ÓI‹t$8H9Þ„ÏÕýÿH…ö„ÆÕýÿ‹F$…ÀtbA3E$¨…ÅÕýÿAƒþuPAƒÿuJI‹½ÐH‹–ЋG,9B,…ŸÕýÿ¶|ƒƒà<„ ×ýÿI‹•àH‹=³ƒL‰éèë¸üÿ„À„]ÕýÿI�|$M‰à1É1ÒL‰îL‰eÈè öÿÿH‹EÈé*f�‹5Š…ö„w¶ƒ¨…CI‹}º H�54<èÞ¹üÿ…À„4×ýÿE‹M$L‰îE‰ÏH‹¾àèÂüÿH‰ÆH…À…<E‰ùA÷Ç „ÄAöÁ„m×ýÿE‰ÏAƒç„�Aƒþ…ŒÕýÿAƒü„�A÷Á„€A÷Á@…TÕýÿA÷Á…;ÕýÿAöÁ„E…ÿ„ÕýÿAƒþ…çÔýÿAƒü„WAƒü „ML�ŠoAöÁI�@ÐLEÀI‹HH…É„ÕHƒìE1ÉH‰ÞL‰ïj‹UÈèZZYH�eØ[A\A]A^A_]Ãf„€ ÀHƒÀH‰X0Ç€”éÜýÿÿf�ƒàE‹M$<…ÏþÿÿA÷Á …ðþÿÿéÔýÿE1ä@ÇEÀé^ýÿÿ@Hƒ~`…¡þÿÿ‹F$H‹¾à‰Â%€D1úƒâ Â…‚þÿÿöGD@…xþÿÿH‹‡H…Àt ö@`…bþÿÿI‹•àL‰éH‰u¸è˶üÿH‹u¸„À„Cþÿÿ‹F$Aƒ÷ƒðA ÇAƒ÷é-þÿÿÇEÀH�ó9Aƒÿ„¯üÿÿé¾üÿÿHƒ=DoL�-o„èI‹HH…É…¹þÿÿI�PD‰ÎL‰ïL‰EÀH‹ ­eèÀ¥L‹EÀH…ÀH‰Á…�þÿÿé ÓýÿL�=ÄmI‹?H…ÿt%1Ò1öè³5ÿÿI‰GH…Àtƒ¸˜u A‹W‰�˜IƒÇ0H�I‰E(u H‹E¨H‰ºwH‹EÈdH+%(…ÙHƒÄHH‰Ø[A\A]A^A_]öfzH� ¯~ƒà<…;ýÿÿ@1ÿH‰M�L‰M˜‰u èÎXÿÿ‹u H‰ßºI‰ÄH‹QwH‰E¨è@/ÿÿL‹M˜H‹M�HƒxXH‰d~H‰Ã„2ýÿÿéÒýÿL‰÷IƒÆ èÒ¦H‹I‰$H‹fH‹M°H‰H‹BM‰u(H;…ìþÿÿL‰bL‹e¸éßþÿÿL95Øv„ÜI‹F8H…À„­Hƒ¸à„ÁL9à„¸HƒÀI‰Eé¹ýÿÿAöG$„³ÑýÿE1ÀE1ÛL‰}˜E1ÒL‰] H‹¹�E1ÉL‰<„L‹^M�˜0ëM…Éu\E‰ÐH‹E‰ÂL9ßA•ÇH…ÿA•ÀE øt?L9çtÙL‹¿ÐAƒuËöG$tÅM…É…yI‰ùL‹U˜E‹R|D9W|L‹U LC×L‰U ë§E„Ò„¦M…ÉL‰ ¸ƒL‰ÏA•ÀHƒ} E‰Â…“E„À„3I‹F H…À„ÑýÿL;H8„êL‹@ M…À„M;H8„�I‹@ H…À„L;H8„±L‹@ M…À„ìM;H8tWI‹@ H…À„ÙL;H8„‡L‹P M…Ò„ÂM9J8t-M‹B M…À„¯M;H8„xL‰ÀM‹@ M…À„•M;H8uêE1ÀA¹E„À„«AºL9g„çÏýÿI‹t$M‹D$H…ö„ÈÏýÿL‰FM…À…¢ÏýÿH‰±˜H…ÿ„jÏýÿE„Ò…èH‹wfHnÇfHnÖflÂAD$L‰gH…ö„kL‰fD‰ÎI‰ÆéVüÿÿE1ÉL‰ðë H‹@(H…À„ÏÏýÿE„É…»ÏýÿL‹@ I9x8uàA¹E1ÒL9g…Xÿÿÿé:ÏýÿHƒ=‚A•ÂE„Ò„ H‹} H…ÿ„ªÏýÿM‰ðL‰ÀM‹@ H9x8tpM…Àuîé|ÐýÿI‹~(@ˆu˜H‰U èç§H‹U ¶u˜H…À…1ýÿÿH‹wH�I‰EéøúÿÿH‹wfHnßfHnÆflÃAD$L‰gH…ö„*ÐýÿL‰féÿÿÿA¸é‡þÿÿE‰Ðé‚ýÿÿL9à„XûÿÿL9`„NûÿÿI‹|$M‹D$H…ÿ„åÎýÿL‰GM…À…ÏÎýÿH‰¹˜H‹xfHnÀfHnçflÄAD$L‰`H…ÿu_L‰¡�éúúÿÿL‰¡�é�þÿÿ1É1ÒH�5Õ&1ÿ躣ÿÿètL‹c8M…ä…úÿÿéQûÿÿH‰HƒÀ I‰E(H‹E¨Hƒ8„-ûÿÿé3ûÿÿL‰géžúÿÿL‰ÀE1Àé±ýÿÿL‰ðE1Àé¦ýÿÿè1¯üÿL‰ÐE1Àé–ýÿÿö@$„úÿÿHƒ=l€„ÿþÿÿL‹@H‰ÇëM‹@M…À„MþÿÿH‹ZH0I9À„7þÿÿI‹€ÐƒxuÐéÛÎýÿéýÍýÿéÎýÿéiÍýÿé=Íýÿé)Îýÿ€UH‰åAWAVL�5uAUATSH‰ûHƒìXH‰u¸dH‹%(H‰EÈ1ÀH‹uƒx@…zÐýÿH‹=*uL‰öè’­üÿ¶Ëtƒà<t&H‹=åt1É1ÒA¸H�5Å(è±üÿH…À…sE1ÀE1ÿE1íL‰E L‰E¨H‹5ÆqH�=èJ·ÿÿH‹;tH…ÒuH�=Ò*è"ªüÿH‰ÂL‹%¸tM…ät7I‹D$ƒx…ïÏýÿI‹„$H‹¸hH…ÿ…íÏýÿM‹¤$M…äuÌH�EÀQL‹M¸I‰ØH‹ ásH‹5ÂsPAVH‹=Htÿ5ÒsèM³üÿHƒÄ „À„]ÏýÿH‹]ÀH…ÛuH‹qrH…Ût0L�%·-DöC`uH‹{0L‰æèޝüÿH…À…ÎýÿH‹[HH…ÛuÜè×¢H‹=àsL‰öèh¶üÿ„À„ßÎýÿM…í…ÃÎýÿH‹EÈdH+%(u8H�eØ[A\A]A^A_]ÃH‹= sH…ÿ„qÿÿÿH‰» è½¬üÿHƒÀH‰C@éXÿÿÿ軬üÿD¶xA€ÿ†fÏýÿA€ÿ„\Ïýÿéoþÿÿff.„f�óúƒtÃDH‹é×€óúH…ÿuƒÈÿÃUH‰åHƒìH‰UðH‰}øè^x€=gpH‹}øH‹Uð„{ÏýÿH‹ :pHƒùÿuƒÈÿÉÃ1ÀºH9ÊsòH…Ò…iÏýÿëçUH‰åAWAVAUATSH�ìˆH‰U�H‹H‰M¸L‰E°DˆM¯dH‹%(H‰EÈ1ÀH…Û„H‹òVI‰ûE1ÉE1öH�M¸H‰u˜L�%šWI‰÷H0fHnÉH‰�xÿÿÿfHnÐflÊ)M€ƒ{‡vÑýÿ‹CIc„Là>ÿàf„H‹{8H‰]˜è·ÿÿƒ»”ÿ„×H‹{XH…ÿ…Ù¶²qƒà<„æ H‹C8H…À„«H‹ãqH‹R‹Rƒêƒú†_ÓýÿH‹ 1VL‹U¸H�‘0H9Є¡ Hƒ{X…êL‹k@D‹p$M…턵ÑýÿAöÆtcI‹}€?*uZH�5"è^®üÿ…ÀuJD‰ðƒàƒø„3L‹-pM…ítD‰ðA#EH…ò M‹mM…í…u1öH�=À!è‡yÿÿI‰ÅL‰k@H‹S8öƒ¨uu‹B$¨tn%=tb¶¹pƒà<tT€}¯tNI‹}H�5u!H‰U èÈ­üÿH‹U …Àu2L‹5yoM…öt&I‹>H�5N!襭üÿH‹U …À…PÑýÿIƒ~…EÑýÿD‹r|M‹U8E…ö�%€J(fInÂE1íHÇBXflÀB0H‹SPD¶M¯H‰ÞH�{L‹E°L‰Ñè•ýÿÿ¶“¨H‹¿TH‹s8ƒÊH0ˆ“¨H9Ƅ˃âH‹F@…¾H‹~0D‹ƒ�‹ ½vJ�TÿI÷ØH‰}¸HÓèHÐL!ÀöF%u H)øHÓàH‰F@L‹C@M…À„öH‹K`H…É…ËÐýÿH‹CHH…À…ïH‹C8I‹P@‹p$‰ñƒáH…Ò„8…É„‘ÐýÿL‹J8L‹U¸I‹y0I‹Q8I9ú‚ƒ»œ„Ö HP0H)úE…ö�zH‰P8€‹¨‰ò�â�ú„êHƒx@„ðHƒ{H…á¶înƒâ€ú„ÎH‹ “SI‰X@H�‘0H9ЄØöƒ¨…Ë�æ�þ„xL‹h@‹ ŽuIÓíH‹{xLm¸H…ÿ…BÏýÿH‹s@H…öt=H‹C8ö@$„„H‹U¸€}¯H‰V8„ñH‹H0H‹SXH‰ßè H‹sHH…ö…áI‰ÛI‰ÞE1ÉI‹H…Û…/üÿÿH‹E¸H‹UÈdH+%(…H�Ĉ[A\A]A^A_]ÃfDHƒ}°H‹s…wI‹L‹E¸M‹W8L‹hH�ãmH‰E öØm …:A·E(f%€f=„±ÍýÿAöE%€…lAö‡¨…^I‹pH…ÿ…œÍýÿA‹M|A9J|‚¸HÓàI�TÿH÷ØH!ÐH‰ÂL)Â…tI‹u@‹ JtH‹E H‰òHÓêLÂö …ÖI‹r0I)ðM‰EXAöB%u H‰ÐH)ðHÓàI‰B@I‰ÐL‰E¸éÕþÿÿf„D¶M¯L‹E°H�{L‰þH‹M¸H‹U�èsúÿÿH‰E¸I‰ÞI‰ÛE1Éé¦þÿÿ�H‹E¸fo]€ÆUjH‰™jH‰zj){jè6{ÿÿ€=_j„)ÍýÿH‹:jH‹CjH‰E¸H…Ò„çúÿÿHB0H‰E¸éÚúÿÿ�D‰ðA#EH„qûÿÿD‰ðA#EL„‚ûÿÿé_ûÿÿ�H‹E¸I‹W8ÆÖiH‰EÀL‹kH‰úiH�EÀH‰÷iH‹E˜L‰ïÇ>jH‰ïiH‰àiè“zÿÿ‹%jƒø„ˆƒø„�Ç jA‹EƒàýƒøuI‹E€8.…ã€x…ÙAö‡¨…ÑþÿÿL9= i…“1öH�=~èEtÿÿH‰ÂH‹EÀH‰B8H‰E¸é¢þÿÿ�HÇCI‹W8H‹E¸H+B0H‰Cé„þÿÿH‹{hH�Ž%H‰ÞL‰U èyøÿÿL‹U …ÀA‰Æ&H‹S8éøúÿÿDL‰ÀI+B0L‰E¸I‰EXéèüÿÿ@A¸D‰ñIÓàK�DÿI÷ØI!ÀM‰ÅM)Õƒ=èu„ûH‹C8~HÇÂÿÿÿÿM‰ÁL+H0HÓâH÷ÒL…Ê…öfInÀ€H(M‰ÂflÀHÇ@X@0é‰úÿÿf.„D‰ñ¿HÓçH‰ùH�TÿH÷ÙH!ÊéhûÿÿL‹H8öƒ¨@…²ÇýÿH;C@t,H‹{hH‰ÞL‰E H�’$L‰�pÿÿÿè}÷ÿÿL‹�pÿÿÿL‹E A‰ÆE…ö�ºÇýÿH‹C8‹p$L‰H8‰ñƒáfD€‹¨…É…ûÿÿƒ»œ„ûÿÿH‹ ÅNH�‘0H9Ð…6ûÿÿé ýÿÿ„‹ ÚpH‹u�L‰ßDˆ�XÿÿÿH‰…`ÿÿÿHÓâL‰ÑL‰•hÿÿÿL‰�pÿÿÿèlI‹u@‹ ¢pH‹…`ÿÿÿH‹} H‰òL‹�pÿÿÿL‹•hÿÿÿHÓêD¶�XÿÿÿHÂö …�I‰Àé3üÿÿ€H‹sHH…ö„ûÿÿH9s@„jüÿÿH‹C8ö@$„­ÆýÿH‹H8IÍ€}¯L‰n8„Güÿÿ1ÒH‰ßèÜé8üÿÿ€Hƒ~@„mùÿÿéeÈýÿI‹P@H…Ò„tH‹R8H‹J0H9M¸ƒñùÿÿéËþÿÿ@AƒÎ éÄ÷ÿÿD¶M¯L‹E°L‰þH�=œoH‹M¸H‹U�è?öÿÿH‰E¸éÇûÿÿI‹W8H‹E¸H‹{H‹�xÿÿÿH+B0H‹u˜H‰C0I‹G8H‰C(H‹@MH��0èLƒ‹C-ƒø‡]Çýÿ‹ Uo‰ÂH�5\M¸‹–Óà9ÐBÂI‹W8ÓèHE¸H‰E¸öB%…FûÿÿH+B0HÓàH‰B@é6ûÿÿDH‹EÀL‹E¸L9À…êL‰E¸I‰ÞéûÿÿM…íuH‹C8éýÿÿA€�¨éüÿÿM‰é€=+i…õÅýÿHƒ{X…êÅýÿH‹C8ééüÿÿH‹uLL‹¨`M…í…ÆýÿE1öét÷ÿÿ1öH�=pè7pÿÿI‰Àéô÷ÿÿH‹H8H9H0„`ýÿÿé|øÿÿH‹•eH…À„ŸH9ÄhûÿÿéíÄýÿH‹eH…ÀtyH9ÄNûÿÿéNÆýÿL‹X@M…Û…�ƒ»œ…ð÷ÿÿé@Æýÿ‹ nL)ÀH‹u�H‰ßHÓàI‹O8H‰Âè¶A‹‡œH‹ƒø„�Åýÿƒø„fÅýÿI‹G8L‹EÀƒH$éÊþÿÿH‰údéÒúÿÿH‰ædéÆúÿÿH‹ gH‹@ƒx…õÿÿéàÅýÿ‹ ‘mIÓëL‰ÙLÑH9Ï‚XÿÿÿH9×…)Åýÿ€‹¨é[÷ÿÿH‹¾àL‰�pÿÿÿH�MÀH�afDˆM H‹Gÿ�À„À„�Ãýÿ€}ÀD¶M L‹�pÿÿÿ„DøÿÿéiÃýÿ¶)fE1íƒâ€ú…÷ÿÿéõÄýÿè ŸüÿD‰ðA#EL„õÿÿédÅýÿM‹G@M…À„¸ÃýÿI‹x(Ix H9׃§ÃýÿAöE&…uÃýÿI‹EHH9ðt H…À…¹Ãýÿ1ÀH‰}¸I‰E`H‹M…ötE„Éu I‰M‰óéf÷ÿÿI‰I‰ÞA¹éU÷ÿÿI‹…H…À„¶÷ÿÿL9Є­÷ÿÿL‰E¸H‹ë¸éáÄýÿéÇÅýÿézÄýÿff.„@UH‰åAVAUATSH‹^8H‹F L‹F(H9ÃrI‰ÙI)ÁM9Èr [A\A]A^]ÃLÀH9ØuH…ÉuêH…Ò…bÉýÿ€~PuÛé™Éýÿff.„@UH‰åAVL�5ŸJAUE1íATI‰ôSH‰ûH…ÿt=‹Cƒèƒø w*Ic†Lð>ÿàƒ»”ÿtH‹{H‰Þè³ÿÿÿ„À…|H‹H…ÛuÃ[D‰èA\A]A^]ÀH‹{L‰æè„ÿÿÿ„ÀtÕé°ËýÿH‹CH‹P`H…ÒtÀH‹ ¤dH9Šàu°‹R$öÆ€u¨öÆ„ÚI‹¼$ˆH…ÿuu¿è“™üÿH¹@H‰ÇI‰„$ˆH‹CH‰_ÇGH‹�àH‰H‹RÇGƒz…Eÿÿÿö@&…;ÿÿÿH‹€ÐHƒ¸�„&ÿÿÿéËýÿ@‹O;td�q‰ÊHÁâHúH‰Z‰JH‹�à‰wH‹RƒztªéêþÿÿH‹=NjL‰æè†þÿÿ„À„Óþÿÿé®Êýÿf„÷Ò�â…·þÿÿé³Êýÿɉ�qÿHƒÆHÁæè‰�üÿ‹HI‰„$ˆH‰ÇH‹C�qéqÿÿÿé_Êýÿf.„UH‰åATL�%ïHSH‰ûƒ{wI‹CIc„Là>ÿà@H‹S¹€:.t=D¶C(H‹=cH�5Çbè²™üÿ„Àu7éCÊýÿf„[A\]ÃH‹S1É€:.uÀztë»DH‹{èwÿÿÿH‹[ ë‚�H‹[éxÿÿÿH‹{è^ÿÿÿH‹{ èUÿÿÿH‹[(é]ÿÿÿff.„�UH‰åAUI‰ÍATI‰üSH‰ÓHƒìH…ÿtUH�n_H9ÇtIƒ uCH9O u=H‹Q0L‰ÀH‰_H)ÐH‰GöA%u‹ ïhHÓëLÃH)ÓHÓãI‰]@HƒÄ[A\A]]Ã@I‹$H…Àtƒx t_¿0L‰EÐH‰uØèÿÿH‹uØI‹$L‹EÐH…öH‰I‰$Ç@ L‰h uH�5elH‰p(I‹U0L‰ÁH‰XH)ÑH‰HAöE%„oÿÿÿëƒL9h tÛë™f.„óúH…ÿt[UH‰åATI‰ôSH‰ûH9k_t‹Cƒø uA€<$t(H‹H…Ûuà[A\]Ãv2ƒøu#L‰âH�5´H‰ßè<|ëØH‹{L‰æèžÿÿÿëÊÃøuÄéŸÈýÿƒøuºé´Èýÿ€óúUH‰åAVAUATSH‰ûHƒìdH‹%(H‰EØ‹Gƒø„v7ƒø „®ƒø „hH‹EØdH+%(…öHƒÄ[A\A]A^]ÃDƒøuÖL‹o(H‹=¸`I9½à…gËýÿA‹E$öÄ„HËýÿL‰î覤üÿI‰ÄH…À„ËýÿÇ@H‹C0¾H‹=s`I‰D$èy™üÿI‰D$(H…À„ËÊýÿH‹T`H‹{ H‹Pƒz ‡HÉýÿI9…à…*Éýÿ‹S�ú…GI‹D$(@ˆ8¸I‰D$A‰D$ éÿÿÿf.„H‹_·C(f%€f=„ýþÿÿöC%€…óþÿÿL‹c`H‹=Õ_I9¼$à…'ÈýÿA‹D$$öÄt]L‰æèÅ£üÿH…À„"‹S$�â"�ú„ÈýÿÇ@H‰X L9c`…ÑÇýÿóoCPóoK@fÆÁ@é}þÿÿf.„÷Щ…fþÿÿéðÇýÿfDH‹w H‹==_H9¾à…QÇýÿ‹F$öÄt5è3£üÿH…À„LÇýÿóoSÇ@PH‹S(H�JH‹H‰H(‰P éþÿÿ÷Щ…ùýÿÿë¼è˜üÿ‡ÌÆýÿ�úuH‹@I‹t$(ÿPP¸é¢þÿÿ�ú„ºÆýÿ�êƒú‡“ÆýÿH‹@I‹t$(ÿP8¸éqþÿÿé8ÇýÿéPÇýÿóúUH‰åAVAUATSD‰ÃE„À…ðH…Ò„çI‰ÍH…Ʉ۶R_„À…žÉýÿL‹"L�5']1É1ÒL‰÷L‰æèØ›üÿH…À„®H‹PHH…Òtf‹°¬…öˆÉýÿL�`M‹m1É1ÒL‰÷L‰îè¡›üÿH…ÀtwH‹PHH…ÒtS‹ˆ¬…Ɉ$ÉýÿHƒÀM…ätWH‹@@I9D$@•À[A\A]A^]ÀL‰`HL�`€ ÀÇ€¬ë‘D€ ÀHƒÀL‰h0Ç€”뤉Øë±E1äéeÿÿÿf„óúH‹H‹H‹q8H‹z8H9þƒÃÊýÿ¸ÿÿÿÿÃff.„@óúH‹H‹H‹q0H‹z0H9þƒ×Ìýÿ¸ÿÿÿÿÃff.„@óúUH‹\AH‰åATL� 0SL9gt>H‹wH‰ûH‹=«\1É1ÒA¸èä˜üÿH…Àt€xuL9`(uH‹SH‹J0H)H0H‰P([¸A\]Ãf„óúH‹�YH‹ cH‰òH‹€øH…À„Ùýÿ‰þH‰Ïÿà@óúUH‰åSHƒì8dH‹%(H‰Eè1ÀH…ÿuH‹EèdH+%(upHƒÄ8[]ÃH‰ûH…ÒtS1ÀfnBfnÖfnH‰EÀH‹BH�uÀfbÐÇEÐH‰EȶBfoƒàfnÈfbËflÁEÔè�üÿ…Ày”é�Øýÿè)�üÿ…Ày†é¥Øýÿèû”üÿff.„óúH‹B`H…Àt4H‹ œ[H9ˆàu$ö@%€u‹B$¨t%=t Hƒz@tAÆÃf.„@óú1íI‰Ñ^H‰âHƒäðPTE1À1ÉH�=ÑÿC?ôf.„H�=ñSH�êSH9øtH‹&?H…Àt ÿà€Ã€H�=ÁSH�5ºSH)þH‰ðHÁî?HÁøHÆHÑþtH‹]?H…ÀtÿàfDÀóú€=…Su+UHƒ=:?H‰åt H‹=V?èÉ�üÿèdÿÿÿÆ]S]ÃÀóúéwÿÿÿ€óúUH‰åAWA‰ÿAVI‰öAUATSH�m H�ì8‰½ÿÿÿH‰µÈþÿÿdH‹%(H‰EÈ1Àè×H�5 ¿H‰… þÿÿèršüÿ1ÿH�5 èdšüÿH�5ÂîH‰ßèÕ’üÿH‰ßè=’üÿI‹>H‰=S[èÞ”üÿAƒïŽ!1ÀL‹µÈþÿÿÇ…øþÿÿÐA¿‰…ÿÿÿDMcçJ�åH‰…ÿÿÿK‹æ€8@…aƒ­øþÿÿ„H�XH�µ0ÿÿÿH‰ßèá–üÿ…Àˆ9‹…Hÿÿÿ%ð=@„³H�5¹ýH‰ßèÄšüÿI‰ÅH…À„1öºH‰Çèé˜üÿƒøÿ„ÈL‰ïèh–üÿH‰ÃHƒøÿ„³1Ò1öL‰ï还üÿƒÀ„žH�{è ŽüÿH‰ÚL‰é¾H‰ÇH‰…Ðþÿÿè“�üÿH‰ÂH9ÃtL‰ïH‰…ÿÿÿèÜ�üÿH‹•ÿÿÿ…À…? H‹…Ðþÿÿƶ„À„: H‹�ÐþÿÿH‹É<뀶AHƒÁ„À„ öB@uêH‹�ÐþÿÿH‰ßè‹‘üÿH�xèr�üÿE1É1ÉE1ÒH‰…ðþÿÿE1À1ÀE1ÛD‰½ÄþÿÿH‹m<E‰×L‰¥¸þÿÿA‰ÌL‰­°þÿÿE‰ÅL‰µ¨þÿÿM‰Î‰…ÿÿÿë@HƒÃ¶öB@uó‹…ÿÿÿ…ÀtƒèD9Ø@L‰�èþÿÿM…ö„ Ñ¥ÿÿÿHcµÿÿÿL‰÷HÁæ踑üÿL‹�èþÿÿH‹ê;I‰Æ1ÀK‰ÞH‹�ðþÿÿ¶H‰Î„ÀuëefDHƒÃˆH�qE1ä¶„ÀtKH‰ñ¶ðör@tD‰þD æD  E…äuÌ<\„, E…í„3 <'„] ˆH�q¶CHƒÃ„ÀuµÆJ� ÝH‹½ðþÿÿI�4L‰�ØþÿÿH‰�àþÿÿH‰µèþÿÿè’üÿH‹µèþÿÿH‹�àþÿÿH‹$;L‹�ØþÿÿH‰1ÀI‰D¶ öJ@H‰Èt€¶KHƒÃH‰ÈöJ@uïIƒÃ„À…§þÿÿH‹½ðþÿÿL‰µÿÿÿD‹½ÄþÿÿL‹µ¨þÿÿL‹¥¸þÿÿL‹­°þÿÿèt‹üÿH‹…ÈþÿÿL‹�ÿÿÿI9Æ„" Iƒ9„ß1Û�HƒÃIƒ<ÙuõH�ÝH‰…ÿÿÿK‹<æL‰�èþÿÿè&‹üÿHc…ÿÿÿL‰÷L�TIÁâL‰ÖL‰•ðþÿÿè�üÿL‹•ðþÿÿI‰ÆJ�#D‹¥ÿÿÿHÁàI9ÂH‰ÁI�<D‰âICÊD)úL‹½ÿÿÿHcÒH)ÁHÁâK�t>èÜ’üÿL‹•ðþÿÿL‹�èþÿÿK�<>H‹•ÿÿÿM9×L‰ÑL‰ÎL‰�ÿÿÿICÏL)ùè·’üÿH‹½ÿÿÿA�Dÿ‰…ÿÿÿèpŠüÿH‹½ÐþÿÿèdŠüÿD‹½ÿÿÿDL‰ïèŽüÿ‹½ÿÿÿA�G9ø}D‰½ÿÿÿA‰ÇéƒûÿÿA�G9…ÿÿÿâL‰µÿÿÿèH‘üÿºH�5t,=…ËH‹=jV襕üÿH�=§ÝýÿèÙ—üÿH�=¢eH‰CVèV‘üÿH‰/VH‹@9Hƒ8„2 H‹G@ƒ{�õ HcCH�=2/ÿÿ�P‰SH‰|Ë…ÿÿÿƒø~QH‹½ÿÿÿƒèE1öL�-OéL�L�dÇ€I‹º L‰îH‰ßèåŠüÿ…À„õIƒÇM9çuÜM…ö…ôH�1H‰…UH‹vUH…Û…�Ç[UÿÿÿÿH�îèH‰ß褋üÿºH�5ˆ+„À„D·%¡H�=ØèÆÎTÆßT:ÇòTÿÿÿÿHÇïTÿÿÿÿf‰¨TƵTÆêTÇhSÿÿÿÿf‰íRÆèRÿèýˆüÿH�= Hºh HÇATÿÿÿÿH…ÀfHnÇH�r?Ç SH‰!SH�ZSH�=@H‰TSH�ôçfHnÐH¸ÿÿÿÿ”gRH‰xSflÂH¸ÿûÿï‡uýÿH#³RH Ð1SH‰¢R¸HÁà Æ�R:H‰kSHÇ SÿÿÿÿÇSÿÿÿÿè1"H�=Äçè%ˆüÿH‰ÃH…À…šH�V烽ÿÿÿI‰ÜŽ‹A¼ëf.„‹…ÿÿÿAƒÄA9Ä}^H‹½ÿÿÿIcÄH�ÅL‹,ÇA€}-uÔA€}muÍA€}…�‹…ÿÿÿƒèD9àŽÑH‹…ÿÿÿAƒÄH‹\AƒÄD9¥ÿÿÿ¢€;gI‰Ü„Ü L�5°=M‹.M…í„I‹uhL‰çèÈŽüÿ…À…c H‹µÿÿÿ‹½ÿÿÿL‰-ÔNAÿUPL‹Á51Ò¾èH‹ û5H�=üMH‰åPèÏH‹ á51Ò1öL‹Ž5H�=wMèâι=H�fNºÈH�5úÿÿH�=SPH‰D=è—�üÿ„À„]H‹0=1Ò1ö1ÿ1ÉH‰H‰@H�MH‰MH�ôMH‰5íM¾H‰éMH�ZOH‰=SO1ÿH‰ ÚLH‰KOènÿÿ1öºH�=²æH‰©Lè¤ÿÿH‹55E1À¹ H‰¾MH�5œÿÿH�=`OH�Â0L‰jLH‰P8H�_Lº(H‰KLèÆŒüÿ„À„ŒH‹MÿH‹µÿÿÿ‹½ÿÿÿÆ™OèìÿÿH‹�QH…À…ÅH‹ MH…À…H‹=MH‹€˜H…À…¹ Hƒ=MO…ÛH‹=°OH…ÿ…¤H‹MH�½(ÿÿÿÿP`ƒ½(ÿÿÿI‰Ä…� ºH�5æå1ÿèÓˆüÿºL‰çH‰Æè£.ÇåNèT/ÿÿ€=ÕN…¯ ¶O„Àu¶EOƒà<•À¶7OƒàÁàƒâï Ѐ=ÔNˆO…U L‹%I;¿èWÿÿE1Ûƒ½ÿÿÿL‰Ç@ I‹T$H‰H‹$;I‰D$H‰P„ öÖN…Å €=IN„3€=,N…H‹ÿKÿPH‹ýOH…Û…ß èO}ÿÿH‹ ØN¶�N‹QDƒà‰ÖƒÎ<„õ‹üO�Pþ1Àƒú†’H‹Q1ÿ#B ð‰ADèw‰üÿ€=pKuJH‹WKfïÀH…Àt3fDD‹�”E…ÒˆèH‹P8H…Ò„ÛH‹@ ‚øH…ÀuÓÆ$KH‹5-KH�=íÿÿè±�ÿÿƒ=ROÿ…§Hƒ=LOÿL�=ÅM…’H‹=NL‰þH‹Gÿ�è„À„¶Hƒ=O…8€=1M…Hƒ=ðL…ï €=$M…÷ H�=fLèчüÿH�=šLèŇüÿH‹vLH…Û…Ž H‹=®NH…ÿ… €=oN„Ÿ H‹=qM1ÉH‰ hMè3�üÿ„À„È ¶Mƒà<t €=˜L…Å€=>N…Ž1ÒH‰91ÿèÃŽüÿH‰ÎA¼éÝõÿÿf�E…ÿt<"…ÈõÿÿE1ÿH‰ÎéÃõÿÿ<'t2<"…±õÿÿH‰ÎA¿é©õÿÿE1íH‰ÎéžõÿÿH‰ÎE1äE1ÿE1íé™õÿÿH‰ÎA½éõÿÿ¿@èÊ�üÿH‹ã0Ç…ÿÿÿL‹�èþÿÿI‰Æéãôÿÿf.„H‹@ H…À…ûýÿÿé#þÿÿH‹½Ðþÿÿèb�üÿé÷ÿÿ¿ès�üÿI‰Á1ÀI‰H‹…ÈþÿÿI9ƅǸI‹TÆøH‰ÁHƒÀH…ÒuïHcÉL‰�èþÿÿL‰óH�<Íè+�üÿL‰¥ÿÿÿL‹µèþÿÿH‰…ðþÿÿI‰Äëè ‡üÿIƒÄI‰D$øH‹;HƒÃH…ÿuæH‹•ðþÿÿL‰ãE1ÛM‰ñL‰L‹¥ÿÿÿI‰ÖéXõÿÿH�5ààL‰ï膈üÿ…À„~ùÿÿH�5ÐàL‰ïèoˆüÿ…À„gùÿÿH�5ÀàL‰ïèXˆüÿ…À„PùÿÿH�5°àL‰ïèAˆüÿ…À„9ùÿÿH�5 àL‰ïè*ˆüÿ…À„"ùÿÿH�5�àL‰ïèˆüÿ…À„ ùÿÿH�5�àL‰ïèü‡üÿ…À„ôøÿÿH�5tàL‰ïèå‡üÿ…À„ÝøÿÿH�5gàL‰ïè·üÿ…À„ÆøÿÿH�5ZàL‰ïè·‡üÿ…À„¯øÿÿH�5MàL‰ïè ‡üÿ…À„˜øÿÿH�5>àL‰ï艇üÿ…À„�øÿÿH�51àL‰ïèr‡üÿ…À„jøÿÿH�5$àL‰ïè[‡üÿ…À„SøÿÿH�5àL‰ïèD‡üÿ…À„<øÿÿH�5 àL‰ïè-‡üÿ…À„%øÿÿI�]éøÿÿ1ÒH‹H ‰ÖH‹H9ÎBÑH…Àuì�zL�% hHƒÇL�5AeL�=BÚýÿHÁçè!üÿD¶©IL‹â5H� »–I‰ÅH�PH�¸(AƒàH�5‚�L� –ÞýÿL�IÞýÿ‹‰Bøƒèƒø"‡_Hc†Hð>ÿàH�ûÝýÿH‰HƒÂHƒÁH9úuÎL‹5SFL�%oßM…ö…T¶$IH‹5=I¹&H�=1LÀèH‰5Fó¥ˆFH�H«ÿÿH�=Á ÿÿH‰ZLH�LH‰üHf� ÓH€è.üÿèŒüÿH˜H‰¸EéÏøÿÿL‰2édÿÿÿÇòéYÿÿÿL‰ éQÿÿÿH�X—ýÿH‰éBÿÿÿL‰é:ÿÿÿL‰é2ÿÿÿH�™†ýÿH‰é#ÿÿÿH�H•ýÿH‰éÿÿÿH�¬QH‰éÿÿÿL‰"éýþÿÿL‰:éõþÿÿH�}`H‰éæþÿÿH�~KH‰é×þÿÿH�OKH‰éÈþÿÿH�pJH‰é¹þÿÿA€ø„@E„À„†1ÀA€ø”ÀƒÀ‰é“þÿÿÇéˆþÿÿI‹~L‰æèKŠüÿH…À„¨I‹NI�• H…ÉtH‹qÇHƒÂH‹ H‰røëäE1ÿL‰5¡DL‰ïD‰:D‰zÿÐA‰Ç1ÀH‰‰DE…ÿ…žM‹6é4þÿÿ¿èN†üÿH…À„óÿÿE1ÉH‰H‰ÃD‰HH‰!3éßòÿÿH�=u H‰8é¿òÿÿIƒÆétõÿÿE1Ò1ÛL‰•ÿÿÿé-ñÿÿ¾èÉ(Ç{Fèê&ÿÿHƒ=rF„5÷ÿÿ€=]F„ˆ÷ÿÿºH�5FÝ1ÿL�-Rè€üÿH‰Ç1Àè]ýÿ1ÀL‰ïè]ýÿHƒ=)F…øH‹ôCH�½(ÿÿÿÿP`H‰Ç1ÀèÝ\ýÿL‰ï1ÀèÓ\ýÿé"÷ÿÿƒâý‰Öéøÿÿ¸‰éýÿÿH‹…ÈþÿÿH‰…ÿÿÿéƒñÿÿI‹H�ÎH‹7+¾H‹81ÀèŠüÿ¿èˆüÿI‹H�tëÔI‹~H�5IÜ芈üÿH…À…?þÿÿè|üÿM‹fº1ÿH�5JH‰Ãè2üÿH‰ÚL‰æH‰Ç1Àèr-I‹^ºH�5Ü1ÿè üÿD‰úH‰ÇH‰Þ1ÀèK-¿ L�5¼è {üÿH‹=EI‰Äè«üÿH‹ Eº ¾L‰çè‚}üÿH…À„îAÆL‰æL‰÷1Àè¬[ýÿëÊè�ÂH‹½ þÿÿH)øH‰ÃH‹¤)H‹8è4„üÿ1ÿºH�5> L‹%ßFèj~üÿ¹@BH‰ÆH‰ØH‹*H™H÷ùH‹;L‰áI‰ÑI‰ÀH‰ò1À¾踈üÿH‹;èàƒüÿéø÷ÿÿ€{l…óÿÿ€{d…óÿÿL�céóÿÿ1À‰éfûÿÿH�5ãH‰ßèÖ�üÿ…ÀtsH�5íñH‰ßèc†üÿH‰ôEH…Àt%€ ˆDéçõÿÿH‹=ôCè�~üÿL‰çè·yüÿéÚýÿÿ¿èˆüÿH‹±E1ÿºH�5;èŽ}üÿH‰ÞH‰Ç1Àè‘>ë¨H‹�(H‹H‰†Eë•ÿÐé@ôÿÿ¾H‰ÇèÈ%é�ôÿÿ¶üC÷Ш„*õÿÿºH�5¦1ÿè/}üÿH‰Ç1Àèu+€=‡G„óôÿÿééöÿÿèÞQH�=ãH‰Æ1ÀèZýÿé�ôÿÿHƒ= CºH�5%Ú„»üÿÿéªüÿÿ€=:G…Töÿÿ€=íB„?ýÿÿH‹¨/ºH�5´1ÿè¥|üÿH‰ÞH‰Ç1Àè¨=éýÿÿH‹|/ºH�5À1ÿèy|üÿH‰ÞH‰Ç1Àè¼*H�5gðèà„üÿH‰ÃH…ÀtzH‹ A/H‰Ç1ÀH�EÛ¾L�-=Ûè´†üÿL‹%EBM…ä„ÖI‹L$L‰ê¾H‰ß1Àè�†üÿM‹$$ëÚH‹CH‹;H‰ÑAèôwüÿH‹{èëwüÿH‰ßèãwüÿé9õÿÿH‹÷CºH�5«éFÿÿÿH�5_¿1Àè3ƒüÿL‹5LAL�%’ÚH�’ÚIƒ~„ÖôÿÿI‹L‰æM‹n8¿M+n 1Àèù‚üÿL‰ïèqŒI‹~(èhŒI‹F(H…Àt:M…íxcfïÀòI*ÅòY‰�H…Àx2fïÉòH*Èò^ÁH‰Þ¿¸襂üÿ¿ è;xüÿM‹vétÿÿÿH‰ÂƒàfïÉHÑêH ÂòH*ÊòXÉë¼L‰êAƒåfïÀHÑêL êòH*ÂòXÀ늀=l@„ôÿÿ1ÒH�5V¿ýÿH�=.@èIyüÿL‹%@M…ä„ßóÿÿAöD$a„¿I‹\$0H…Û„±H‰ßèÇxüÿ„À„«H‹ƒÀL‰æI‰Äë L‹¥ÿÿÿIƒÄM‹4$M…öt{A‹V÷Âpuç÷ÂtßI‹F H‹@`H…ÀtÒH‹1ÉH‰…ÿÿÿ€ætgL‹-C@L‰¥ÿÿÿI‰ÌM…ít¤H‰µÿÿÿM‹}M‡õM…ÿtZI‹H‹µÿÿÿèÑ}üÿ…Àt0A€~u?M‹?ëÛI‰ôM‹d$Hé"ÿÿÿºH�5@éCýÿÿI‹Në“I‹U M‰ðH‰Ù1öL‰ç艉ëºM‡îH‹µÿÿÿM‹mé{ÿÿÿ1ÿºH�5®è�yüÿH‰Ç1Àègœÿÿ€=$@x6L‹g$H‹ ¨$1Ò¾èH�=B>è­½H‹=@1ÒH�5P³ýÿè€üÿƒA=H‹*=ÇP=L‹% =ëL‰çH‰ÞèìƒM‹$$M…äuìH‹=H‹€àH…À…ò €=8?„òÿÿH‹ð@H…Ûu H‹ä#H‹ºH�5f×1ÿè¶xüÿ¾H‰ßH‰Â1Àè$ƒüÿºH�5Z×1ÿè‘xüÿH‰ÞI‰ÄH‰ÇèÃyüÿL‰çè«xüÿA‰ÄAƒü1eH‰Þ¿ AƒÄèQ|üÿëçºH�5iÔéûÿÿH‰Þ¿ L�-K×èšzüÿL‹%K>M…ä„�I‹L$L‰ê¾H‰ß1Àè“‚üÿM‹$$ëÚ1ÿºH�5ÈÖèúwüÿ¾H‰ßH‰Â1Àèh‚üÿ€=y=„H‹=H�<ÅèçsüÿH�5´ÒýÿH�•(ÿÿÿH�="=I‰ÄH‰…(ÿÿÿè3vüÿH‹µ(ÿÿÿL)æHÁþH;5Ö<…ÚH� SÊýÿºL‰çèäuüÿH‹µ<I�ÄH‰…ÿÿÿH‹…ÿÿÿI9ăzðÿÿM‹4$H‹=>1É1ÒA¸I‹vèTzüÿH…À„è€x…H‹@(Hƒx`„­H‹€àH…À„ãö@D@„ÙI‹F H…À„†H‹PöBD@„¾H‹ëä1ÿºH�5™ÕèÅvüÿ¾H‰ßH‰Â1Àè3�üÿéÖïÿÿ¾ˆH�=}Õè]ÑýÿH‰ßèEvüÿé ðÿÿH‰ßè¸vüÿ‰Ê>…ÀŽgéÿÿHcÐH�Tÿ€:/…Véÿÿƒè‰¨>ÆéEéÿÿIƒÇL�s M9ü…ßèÿÿA€>/t%L‰5’>A€>„éÿÿL‰÷èÈuüÿH‰q>éïèÿÿA€~„Öèÿÿë΃½ÿÿÿ�pêÿÿéêêÿÿ1ÿºH�5bÓèêuüÿH‰ÞH‰Ç1ÀèâRýÿéÚíÿÿ€=:@…¡ïÿÿ€=$<…”ïÿÿºH�5ÓéwøÿÿHƒ=};…î L‹%è:D¶-Ð=1ÀM…ä„|I‹T$0÷BD@u_AöD$`uWE„ítRH‹š�ëH‹[H…Ût8H‹S`H…ÒtH‹=H<H9ºàtÞ÷C$0uÕ„Àt!¾H‰ßèÕvD‰èë¿D¶-X=M‹d$Hëƒ1ÿºH�52ÓèþtüÿH‰Ç1Àèä—ÿÿëÀºH�5Îé«÷ÿÿºH�5•1ÿèÎtüÿL‰æH‰Ç1ÀèÑ5ºH�5pÑ1ÿè®tüÿH‰Ç1Àè´5H‹E H‹8è%H�=Š1Àè×"‰ÇèÀ€üÿé/ëÿÿL‹%d'L�-ùL‰çè•tüÿH‰Ãƒø~8H˜L�-ÿøM�düL‰îL‰çètqüÿ…À„üíÿÿH�5ÃL‰çè]qüÿ…À„åíÿÿ¿è;püÿI‰Ä�CLcðL‰÷è*püÿL‹=ó&L‰òH‰ÃH‰ÇL‰þè{üÿL‰òL‰îH‰ßè4püÿH�5JßL‰ÿèU|üÿH�5ÐçH‰ßI‰ÆèC|üÿI‰ÅM…ö„îH…À„™ L‰ñº¾L‰çèYrüÿI‰Ç…ÀŽŠ Ic×L‰é¾L‰çèë}üÿA9ÇtÈ1ÿºH�5zÒècsüÿH‰ÞH‰Ç1Àèf4릾1H�= ÐèÎýÿM‹nH�5€1ÿºè,süÿH‰ÇL‰î1Àè/4€=`9tDI‹NH�¾õH‰ß1À¾è|}üÿI‹~è#süÿD�hM‹~ M…ÿ„†AöG…kM‹?ëçI‹NH�zõH‰ß1À¾è8}üÿI‹~èßrüÿD�hëºH‰Þ¿ AƒÅèˆvüÿAƒý1~éI‹VH�5²óH‰ß1ÀE1íèKM‹6M…ö…SE…í…ZIƒÄéúúÿÿM‹~ M…ÿtAöG…M‹?ëëM‹v ëÆèøsüÿºH�5ìÏ…À…îôÿÿH�5øÏéâôÿÿH�1†‹�é_êÿÿA€íu!„Àu1ÿºH�5ñèìqüÿH‰Ç1ÀèÒ”ÿÿºH�5!Ð1ÿèÏqüÿL�5_ÐH‰Ç1Àè®”ÿÿºH�5Ð1ÿè«qüÿºH�5 Ð1ÿI‰Åè•qüÿºH�5þÏ1ÿH‰ÃèqüÿH�5ôϺ1ÿI‰ÄèiqüÿH‹=z9M‰àI‰ÙVH‰Á1ÀH�ÐÏAU¾L�-ÛÏL�¥0ÿÿÿèµ{üÿH‹Î6_AXH…Û„Ž÷ÿÿH‹ H‹=09L‰ê1À¾è‰{üÿH‹S H‹=þ7L‰æèzüÿL‰áL‰ò¾H‹=ü81Àè]{üÿH‹S(H‹=Ò7L‰æèÚyüÿH‹CHM‰àH‹=Ô8H�UϾH÷ØÉ1Àƒáïè!{üÿ‹{H…ÿt赂ƒ{L…UèvwH‹[éRÿÿÿL‹5v7H�…(ÿÿÿL�=7H‰…ØþÿÿE‹® I‹Ž�L‰½ðþÿÿM‰÷H…É„5E…í„,E1À1ÿE1ÉH‹A0‰½(ÿÿÿE1äH‰ËL‹±øL‰…ÿÿÿL‰…ÿÿÿD‰�ÿÿÿH‰�àþÿÿD‰­ÐþÿÿH‰…øþÿÿD‰àM…ö„-H‹½ðþÿÿA‹V¶?‰ù@ˆ½ÿÿÿƒáƒú…òI‹V öe6@…ÙD‹ª°€ù…¼‹zx‰½ÿÿÿL‹b@‹½ÿÿÿøHƒ½ÿÿÿ‰…èþÿÿ„“‹—79…èþÿÿsh‹½ÿÿÿB�/9ÂsZH‹…ÿÿÿLàH;x7sGI‰Ä‹…èþÿÿA‰ÕI‰Ù‰…ÿÿÿL‰µÿÿÿ‹…ÿÿÿL‰ËL‰¥ÿÿÿM‹6D‰­ÿÿÿé ÿÿÿL‹½ðþÿÿéðçÿÿH‹;H�5uÌH‰½ÈþÿÿèéÿÿH‹½Èþÿÿ„À…ÀH�5YÌè®rüÿ…À”À„À…ßH‹…àþÿÿH‹H‰ÇH‰…ÿÿÿèØnüÿ�P‰…ÈþÿÿH‰×H‰•èþÿÿè°jüÿH‹•èþÿÿH‹µÿÿÿH‰ÇH‰…ÿÿÿH‰Ñè rüÿD‹…ÈþÿÿE…Àt5H‹½ÿÿÿA�@ÿH‹ ’H‰Â¶4öq…WAƒèt Hø€8.„=I‹G‹@ƒèƒàý„¦H‹µÿÿÿH‹•ØþÿÿL‰ÿèvtüÿH‰ÆH…À„sL‰ÿH‰…ÿÿÿè{uüÿH…ÀH‰…èþÿÿ„TH‹µÿÿÿH‹=¥4E1À¹ºèÛpüÿH…ÀH‰…ÿÿÿ„$H‹½ÿÿÿèŸiüÿE1ÉE1ÒE1ÛH‹…ÿÿÿH‰ÞL‰ÿL‰H0L‹�èþÿÿÆ@L‰H(‹C$L‰ÉL‰�ÿÿÿA‰A$H‹C0I‰A0A¶A(¶S(ƒàþƒâ ÐL‰úAˆA(H‹C8M‰Q@I‰A8H‹CXM‰I`I‰AX1ÀA‰Ax‹C|M‰YpA‰A|I‹Gÿ�XL‹�ÿÿÿfInÆ1ÒH‹…ÿÿÿƒA�øH‰ƒH‰I‹VH‹C@H•øþÿÿH)ÐI‰A@H‹…øþÿÿH‰S@fHnÀL‰ðflÀAA0H‹HH)уxH‰Hu H‹p L‰N`H‰NXH‹H…À„XýÿÿëÕºH�5Êé@ïÿÿH‹½ÿÿÿèšlüÿHƒø†DþÿÿH‹½ÿÿÿH�5ÒÉèMÿÿ„À…kH‹½ÿÿÿH�5ËÉèpüÿ…À„PH‹…ÿÿÿÆ@éþýÿÿèElüÿH‹½ÈþÿÿH�5âæƒèHÇèÜoüÿ…À”Àé)ýÿÿÆé»ýÿÿA‰Ðéyýÿÿ‹…ÿÿÿB�(H‹…ÿÿÿLàéƒüÿÿH‹²ºH�5 é1ïÿÿºH�5—É1ÿèžküÿL�%¡ÉH‰Ç1Àè}ŽÿÿL‹5^1M…ö„ÞõÿÿI‹^H…ÛuºL‰æ1ÿèeküÿH‰ÃM‹.ºH�5gÉ1ÿèLküÿH‰ÚH‰ÇL‰î1Àè,ŽÿÿM‹vë°H�=ÖÉ1ÀèŽÿÿ‹{Lè@}é�úÿÿAöF…–øÿÿésøÿÿ¾èH�=ÚÉèºÅýÿH‹ 3H‹=ì1L‰þÿÐéöñÿÿ1ö‰µÿÿÿé@ûÿÿE1íé&ûÿÿ€ùt.1ÉE1äE1í‰�ÿÿÿé$ûÿÿH‹�àþÿÿD‹­ÐþÿÿH‹IAƒíéQúÿÿƒê1ÿƒú@–ÇE1äE1퉽ÿÿÿéìúÿÿH‰Þ¿ AƒÅè\nüÿAƒý1~éI‹WH�5†ëH‰ß1ÀE1íèîBér÷ÿÿH‰Þ¿ AƒÅè(nüÿAƒý1~éI‹WH�5RëH‰ß1ÀE1íèºBéÍ÷ÿÿºH�5™ é„íÿÿL‰÷è¬iüÿL‰ïè¤iüÿƒÀt9H‰ßèçeüÿL‰çèßeüÿéšãÿÿH�5£ 1ÿºèÇiüÿH‹µÿÿÿH‰Ç1Àè1ÿºH�5×Èè£iüÿH‰ÞH‰Ç1Àè¦*ë¥@UH‰åSRè¥küÿ¿H‰Ãè˜eüÿ1ÉH‰H‰H¶„Ò…ÔuüÿH‹åH‰HƒÀH‰×X[]Ãff.„óúUH�=€ÈH‰åèœeüÿH…Àu H‹(-H‹@p]Ãf.„óúU¾H�=}È€%‰+ûÆ•+gH‰åè)º!]H¸ÿÿÿ¿þÿòHÁâH#~/€ w+ H Ѐ u/ƨ0Ƹ0H‰X/ÀóúU¾H�=È€%ù*ûÆ+gH‰å蹺!]H¸ÿÿÿ¿þÿòHÁâH#/€ + H Ѐ /Æ80ÆH0H‰è.ÀóúU¾H�=ÏÎÆ|*gH‰åèPº!]H¸ÿÿÿ¿þÿòHÁâH#¥.€ ž* H Ѐ œ.ÆÏ/Æß/H‰.Ãff.„óúUH‰åATA‰ôSH‰ûèºoüÿH…À„Twüÿ‹P H‹@‰¼)H‰­)[A\]ÄóúUH‰åAWI‰÷AVLc÷AUM�nATL‰îI‰ÌSHcÚPI‹?èShüÿM9îL‰éºICÎI‰J�<0H�5ézHƒÃL)ñHÁãèVküÿI‹<$H‰ÞèhüÿH�“ þÿÿH�5œ¥H9ÓI‰$H�<AXHBÚH‰Ù[A\H)ÑA]ºàA^A_]éküÿ�óúUH‰åAWI‰÷AVLc÷AUM�nATL‰îI‰ÌSHcÚPI‹?è³güÿM9îL‰éºICÎI‰J�<0H�5DzHƒÃL)ñHÁãè¶jüÿI‹<$H‰ÞèzgüÿH�“ þÿÿH�5£H9ÓI‰$H�<AXHBÚH‰Ù[A\H)ÑA]ºàA^A_]éqjüÿ�óúUH‰åAWI‰÷AVLc÷AUM�nATL‰îI‰ÌSHcÚPI‹?ègüÿM9îL‰éºICÎI‰J�<0H�5ŸyHƒÃL)ñHÁãèjüÿI‹<$H‰ÞèÚfüÿH�“ þÿÿH�5œ H9ÓI‰$H�<AXHBÚH‰Ù[A\H)ÑA]ºàA^A_]éÑiüÿ�óúUH‰åAUATSHƒìdH‹%(H‰EØ1ÀƒÿztQ~?�ÿš@�ÿ��z�ÿ-„Y üÿ�S�ÿ›„³ üÿ�ÿ¬uéR üÿƒÿP„Ø1À駦üÿL‹%sH�5�ÒI‹$H‰ßèðhüÿ…À„·£üÿH�5ïÇH‰ßèÙhüÿ…À„¸£üÿH�5ßÇH‰ßèÂhüÿ…À„¹£üÿH�5ÐÇH‰ßèË ÿÿ„À…®£üÿH�5ÈÇH‰ßè´ ÿÿ„À…õ¢üÿH�5ÃÇH‰ßè� ÿÿ„À…¨¢üÿH�5†ÙH‰ßèfhüÿ…À„y¢üÿH�5¾ÇH‰ßèOhüÿ…À„J¢üÿH�5µÇH‰ßè8hüÿ…À„'¢üÿH�5œÇH‰ßè!hüÿ…À„¢üÿH�5•ÇH‰ßè hüÿ…À„Ý¡üÿH�5ŒÇH‰ßè ÿÿ„À…·¡üÿH�5sÇH‰ßèüÿÿ„À…¡üÿH�5lÇH‰ßèåÿÿ„À…ã üÿH�5©ÇH‰ßè®güÿ…À„À üÿH�5�ÇH‰ßè—güÿ…À„� üÿH�5‰ÇH‰ßè€güÿ…À„y üÿH�5yÇH‰ßèigüÿ…À„U üÿH�5lÇH‰ßèRgüÿ…À„. üÿH�5_ÇH‰ßè;güÿ…À„  üÿH�5QÇH‰ßè$güÿ…À„ãŸüÿH�5GÇH‰ßè güÿ…À„¿ŸüÿH�59ÇH‰ßèöfüÿ…À„›ŸüÿH�5+ÇH‰ßèßfüÿ…À„tŸüÿH�5$çH‰ßèÈfüÿ…À„AŸüÿH�5ÇH‰ßè±füÿ…À„ŸüÿH�5òÆH‰ßèšfüÿ…À„ÛžüÿH�5äÆH‰ßèƒfüÿ…À„·žüÿH�5ËÆH‰ßèlfüÿ…À„žüÿH�5¿ÆH‰ßèUfüÿ…À„å�üÿH�5¦ÆH‰ßè>füÿ…À„ç�üÿH�5›ÆH‰ßè'füÿ…À„p�üÿH�5’ÆH‰ßèfüÿ…À„4�üÿH�5yÆH‰ßèùeüÿ…À…8¡üÿ€%½(¿¸é}£üÿ�ÿ.…Ãüÿÿ€ ¢(ëá�ÿ ‡�üÿH�uHcºHÐ>ÿàH‹ H‹8è¼ë°€%g(ùë§¶^(ƒàùƒÈˆR(ë’·G(Hƒ )f%?üf €f‰0(éoÿÿÿ€ '(écÿÿÿH‹¶ H�=#H‹0è÷#éHÿÿÿH‹› H‹;èƒgüÿH‹‰~)ƒø…'ÿÿÿéxœüÿH‹=í"è ]üÿH‹i E1ÒL‰×"H‹H…Û… œüÿé�üÿH‹G ¶¤'H�5°ÃL‹ ƒãŸˆ‘'L‰çèµdüÿ…Àu<ƒË ˆ|'é¹þÿÿH‹=|"è·\üÿH‹ E1ÉL‰ f"H‹8H…ÿ…bœüÿé‹þÿÿH�5ÊÆL‰çèfdüÿ…À„ŒœüÿH�5CÃL‰çèOdüÿ…À…IœüÿƒË`ˆ'éOþÿÿé ¢üÿ@óúUH‰åAUATSHƒìdH‹%(H‰EØ1ÀƒÿztY~G�ÿšH�ÿ��m�ÿ.„+ªüÿ.�ÿ¬„Pªüÿ�ÿ-„æ©üÿ�ÿ›uéªüÿƒÿP„‘1ÀéÕ©üÿL‹% H�5)ÍI‹$H‰ßè˜cüÿ…À„z§üÿH�5—ÂH‰ßè�cüÿ…À„2§üÿH�5‡ÂH‰ßèjcüÿ…À„§üÿH�5xÂH‰ßèsÿÿ„À…’¦üÿH�5pÂH‰ßè\ÿÿ„À…G¦üÿH�5kÂH‰ßèEÿÿ„À…ò¥üÿH�5.ÔH‰ßècüÿ…À„Ã¥üÿH�5fÂH‰ßè÷büÿ…À„”¥üÿH�5]ÂH‰ßèàbüÿ…À„q¥üÿH�5DÂH‰ßèÉbüÿ…À„ѬüÿH�5=ÂH‰ßè²büÿ…À„ª¬üÿH�54ÂH‰ßè»ÿÿ„À…„¬üÿH�5ÂH‰ßè¤ÿÿ„À…^¬üÿH�5ÂH‰ßè�ÿÿ„À…'¬üÿH�5QÂH‰ßèVbüÿ…À„¬üÿH�58ÂH‰ßè?büÿ…À„á«üÿH�51ÂH‰ßè(büÿ…À„½«üÿH�5!ÂH‰ßèbüÿ…À„ɬüÿH�5ÂH‰ßèúaüÿ…À„¢¬üÿH�5ÂH‰ßèãaüÿ…À„~¬üÿH�5ùÁH‰ßèÌaüÿ…À„W¬üÿH�5ïÁH‰ßèµaüÿ…À„—¬üÿH�5áÁH‰ßèžaüÿ…À„c¬üÿH�5ÓÁH‰ßè‡aüÿ…À„Y¬üÿH�5ÌáH‰ßèpaüÿ…À„å£üÿH�5¬ÁH‰ßèYaüÿ…À„Ó¢üÿH�5šÁH‰ßèBaüÿ…À„ ¢üÿH�5ŒÁH‰ßè+aüÿ…À„|¢üÿH�5sÁH‰ßèaüÿ…À„X¢üÿH�5gÁH‰ßèý`üÿ…À„5¢üÿH�5NÁH‰ßèæ`üÿ…À„¢üÿH�5CÁH‰ßèÏ`üÿ…À„e¢üÿH�5:ÁH‰ßè¸`üÿ…À„Ø¡üÿH�5!ÁH‰ßè¡`üÿ…À…›¤üÿ€%e#¿¸髦üÿ�ÿ ‡Ù¢üÿH�æoHcºHÐ>ÿàH‹=Aè|XüÿH‹ÅE1ÉL‰ +H‹8H…ÿ…ì¡üÿë«H‹=èQXüÿH‹šE1ÒL‰H‹H…Û…=¢üÿéc¢üÿH‹x¶Õ"H�5á¾L‹ ƒãŸˆÂ"L‰çèæ_üÿ…À…¥¡üÿƒË ˆ©"é>ÿÿÿH‹9H‹8èáé*ÿÿÿ€%‰"ùéÿÿÿ¶}"ƒàùƒÈˆq"éÿÿÿ·c"Hƒ )#f%?üf €f‰L"éãþÿÿ€ C"é×þÿÿH‹ÒH�=H‹0èé¼þÿÿH‹·H‹;èŸaüÿH‹‰š#ƒø…›þÿÿ锡üÿé}¥üÿóúHƒ=¬t @„ö„·µüÿH‰=š@ˆ5ƒÃf.„UºH�5ÝÀH‰åATS‰û1ÿèôZüÿH� ý¾H‰ÂH‹öH‹81ÀèTeüÿöÃtHºH�5ó1ÿè¼Züÿ¿H‰Æ1Àè-büÿH�51ÿºèšZüÿ[¿A\H‰Æ]1Àébüÿ…ÛtQºH�5\À1ÿèpZüÿ¿H� L�%[ÀH‰Æ1ÀèÓaüÿëH‹PhL‰æ¿1ÀHƒÃèºaüÿH‹H…Àuá[A\]Ãff.„f�UE1ÉH‰åAWAVAUATSAP‹hD‰ eƒø ‡˜´üÿ‰ÁI‰ÿH�=üH‰4Ï‹=ÚH�5«‰<ŽH‹5™H…ö…²H�=1ƒÀ‰°H‰4ÏL‰ÿ‰ èÖYüÿ¿@I‰Åè¹UüÿMcåH‰Ã1ÀIƒÄD‰kL‰çH‰èžUüÿM…äL‰þH�HH‰CI‰ÆÆ ¸H‰ÏIEÄH‰ÂHƒêèr`üÿfCÇD.1ÒAƒÅD‰kH‰ßH‰CHÇC ÇC(H‰S4Y[A\A]A^A_]évH‹=ÏH‹4þé>ÿÿÿfDUH‰åAVAUL�-¿ATI‰üSA€<$tXL‰îL‰çèY_üÿH‰ÃH…Àu L‰çèùXüÿI�¿è»ÓþÿH‰ÞL‰çI‰ÆH‹ L)æH�VI‰Fè›üþÿI‰L‰5ñ€;u [A\A]A^]ÃL�cë’ff.„f�U¸H‰åATI‰üSH� ë&„Àu L‰æ¿ è§ZüÿH‹L‰æHƒÃH‹xhètYüÿ1ÀHƒ;uÔ[A\]Àóú1öé…DóúUH‰åATI‰ü¿SèøÒþÿL‰çH‰ÃH‹[H‰H‰QèHƒ=ÔH‰C…Ѳüÿ[A\]ÃDóúUH‰åSH‰ûPèÞWüÿYH‰ß[H�p]H‰òéœûþÿff.„�óúUH‰åAWAVAUI‰ýATA‰ôSHƒìH‹!dH‹%(H‰EÈ1ÀH…ÛtE…ä…s²üÿƒ{…i²üÿH‹H…ÛuåL‰ïègWüÿH�xH‰ÃèKSüÿH�KH�SL‰îI‰ÆH‹Æ E‰fI�~ I‰è6[üÿL‰5¯ Aƒü„h²üÿH�uÇL‰ïèÉH‰ÃH…À„Ô‹7¶Uǃø ‡ ²üÿ‰Æ‹=ºH� ËL‰,ñH� €‰<±¶ VH�=ÏÀéƒá‰ ·H‹ WH…Ét H‹=CH‹ ùƒÀƒâH�=âÇ`‰Â¶ ÁâH‰ ÷H‰ßƒà÷H‰o ЈïèÊH‰Çè’H‰[H‹EÈdH+%(…PHƒÄ[A\A]A^A_]ÃH‹ªH…À…,H‹=bL�=¼H�5$¼L‰úèÌ]üÿH‰ÃI‰ÆH…ÀtH‰ÇèÙ„ÀunH‰ßè½QüÿH‹=&L‰úH�5õ»è—]üÿH‰ÃI‰ÆH…ÀtH‰Ç褄Àu9H‰ßèˆQüÿH�5nÕH‹=êH‰òèb]üÿH‰ÃI‰ÆH…Àt9H‰Çèo„À„ø°üÿH‹ÈH�ñ¾L‰÷H‰²è…øþÿH‰¦L‹=ÏH‹˜L‰8AƒütL‹=0L�5÷ÏM…ÿtRI‹1ÉL‰êL‰ö1ÀèAVüÿH�uÇH‰ÇI‰ÄèÂL‰çH‰Ãè×PüÿH…ÛuM‹?ëÄéZ°üÿèUüÿH‹41ÉH‰éÕýÿÿé[°üÿff.„f�óúUH‰åSH‰ûQè¾H‹OH…À„b°üÿH‹7H�4ÐH‹H9Ù„\°üÿH…Ét'H‹ s¶dˆH‹H‰J‹ Q‰JH‹ûH‰ÐZ[]éúþÿff.„@UºH‰åAVAUATI‰üSH‰óH�uÐH‰ßHƒìdH‹%(H‰EØ1ÀèëPüÿI‰ÅH‹EЀ8…Ô¯üÿH‹ÔM�t$H…Ûue¿ èÀÎþÿfInÎó~³L‰hH‰ÃÆ@flÁH‰�L‰ïèÒøþÿH‰ÚL‰çH‰ÆèH‹EØdH+%(u XZ[A\A]A^]Ãè¥SüÿH‹{L‰öè9Wüÿ…À…j¯üÿL‰kë±ff.„óúHƒ=,t€áu‹‹H…öuH…Òu H‰þH‰5 Ãøuðé)¯üÿƒøuáëç�óúUH‰åAWA‰ÏAVAUI‰ý¿ATI‰ÔSH‰óHƒìˆMÏèÒÍþÿL‰(I‰Æ¶@ƒàøƒÈAˆFE„ÿuvH‰ßèáRüÿH�xèÈNüÿ1Ò1ÿH‰ÙI¸ I‰ÇH‰Æë/„Ò…îüÿ�PÖ€ú1w I£Ð‚‚<\ˆ‰ú”ÀHƒÆ‰×HƒÁ‰Â¶„ÀuÊI‰Ý@„ÿ…Ö®üÿL‰ÿèENüÿëI‰ÝM‰nM…ítLM…äuRºA¶FÁâƒàÇ ÐAˆFH‹H‹€ØH…À….®üÿHƒÄL‰ð[A\A]A^A_]ÃL‰ÿèëMüÿA€fþI‰^ë©H�5RÒL‰çèOüÿ…Àt›H�5ê³L‰çèîNüÿº…Àtˆéø­üÿóúUH‰åATSH‰ûH�ìÐH‰µHÿÿÿH‰•PÿÿÿH‰�XÿÿÿL‰…`ÿÿÿL‰�hÿÿÿ„Àt#)…pÿÿÿ)M€)U�)] )e°)mÀ)uÐ)}àdH‹%(H‰…8ÿÿÿH‹RüH‹8èâVüÿL‹%ÓüH�EH‰ÞH‰…(ÿÿÿ¹H�…@ÿÿÿH�• ÿÿÿI‹<$H‰…0ÿÿÿÇ… ÿÿÿÇ…$ÿÿÿ0èÖI‹<$è�Vüÿ¿èsYüÿóú1À‰¶qƒâ€ú„|€=²„n­üÿ€=‘H�Jc„ÏL‹ =H¹H¸L!ÉH9Á„H¾@H¸@L!ÎH9ÆtxH¿H�púI¸L!ÏL9ÇtiI¸H�MIºM!ÈM9ÐtF€ú„ЬüÿH¸H9Áu/ödH�e´H�–lHDÂÃH�¯öC„tÿÿÿÃH¸@H9Æ„’H¹H�¸ØH9ÏtÖH¹H�"üI9ÈtÀ€ú„¬üÿ·)÷Ðf©ucöÞH�’H�ˆFHDÂÃöÄH�]ÓH�ŽˆHDÂÀ=%H�SH�œ'HEÂÃH�@�ö‰„ZÿÿÿøI÷ÑHÁàI…ÁtH�"¸ö „‰«üÿÃöUtâ锫üÿfDóúUH‹=ŒH‰åATSH…ÿtH‹RH�PÿH9gs:[A\]þ¿èARüÿH‰RH…À„W«üÿHÇ1ÀH‰-ëÆH�XL�$ÝL‰æègUüÿH‰H…À„«üÿI�T$ÀL‰áI9ÔH�<HBÊ1öH)Ѻ@è5XüÿH‰¾étÿÿÿf„óúUH‰ÐH‰åAWI‰÷AVI‰þAUA‰ÍATSH�ìxdH‹%(H‰UÈ1Ò„É…ZE1É1öD‰�ðþÿÿD‰�ÿÿÿD‰� ÿÿÿD‰�8ÿÿÿD‰�PÿÿÿD‰�hÿÿÿD‰M€D‰M˜D‰M°M‰ùL‰É¶„Ò„!I‰È€ú%„¡¶Q€ú%„²„Ò„ª¶Q€ú%„˜„Ò„�¶Q€ú%„ž„Ò„–¶Q€ú%„’„Ò„Š¶Q€ú%„˜„Ò„�¶Q€ú%„.„Ò„&¶QL�A€ú%t„Ò„0A¶PIƒÀ€ú%uêA¶PM�H€ú0„Ç«üÿH‹ øD¾Ò¶Ò‰÷öQ…‹«üÿA¶I�I„Ò„ ÿÿÿˆÿÿÿ€úx�ýþÿÿ€úBŽôþÿÿƒêC€ú5‡èþÿÿL�ea¶ÒIc�LÂ>ÿâ…ö…·A€?„E1ÉD‰­Œþÿÿ1ÛM‰ýE‰ÏA¶E<%„ÄÀ„»A¶E„À„ù<%„ñA¶E<%„S„À„KA¶E<%„G„À„?A¶E<%„M„À„EA¶E<%„A„À„9A¶E<%„ׄÀ„ÏA¶EM�e<%t„ÀtA¶D$IƒÄ<%uîM9ìtL‰âL‰ñ¾L‰ïL)êèçUüÿM‰åA€}%ufA¶EM�]<0„·ªüÿH‹•ö¾È¶ÀA‰ÜöB……ªüÿA¶M�kÿâMkäL‰öƒÃJ‹¼%ðþÿÿèGLüÿA€}…¸þÿÿD‹­ŒþÿÿE‰ùE„í… E„É…Ó©üÿH‹EÈdH+%(… H�eØ[A\A]A^A_]ÃL�A€ú%„ÕýÿÿL‰ÁéýÿÿH��ðþÿÿE1ÀL� Db‹�Sÿƒú‡’ªüÿIc‘LÊ>ÿ⋃ú/wB‰×ƒÂHx‰H‹H‰AƒÀHƒÁD9Æ„÷ýÿÿë½E„í„lÿÿÿE1É€=@„Sÿÿÿéš©üÿH‹xH�WH‰Pë»M�eéŽþÿÿ‹ƒú/†àH‹xH�WH‰P‹‰뛺ƒÿ‡ù¨üÿHkÿƒÆ‰”=ðþÿÿéNüÿÿM�eéGþÿÿL�AéÿÿÿA¶Y�S¿€ú‡šA¸I£ÐƒŠI�Iºë¦A¶SƒÃ�B¿<‡2H� Ja¶ÀHc�HÈ>ÿàD‰àº ¾ƒÃHkÀL�¥ÐþÿÿL‰çH� ÔÕL‹„ðþÿÿ1Àè™UüÿL‰á¾L‰÷H�Ú¿1Àè°Süÿé$þÿÿD‰àH�ZÍL‰÷ƒÃHkÀ¾‹Œðþÿÿ1Àè„SüÿéøýÿÿD‰àM�kHkÀH‹„ðþÿÿH…À„ã¦üÿH‹�èH…Ò…¨¦üÿH‹8L‰öèJüÿé¼ýÿÿL�AéþÿÿM�eéýÿÿM�eéýÿÿL�AéåýÿÿL�AéÜýÿÿM�eéûüÿÿM�eéòüÿÿL�AéÁýÿÿ€=s„™úÿÿé‰ýÿÿºéaþÿÿD‰àH�l¿¾L‰÷HkÀH‹Œðþÿÿ1ÀèºRüÿé.ýÿÿ‰×ƒÂHx‰éþÿÿºéþÿÿH‹=„L‰öèLIüÿéýÿÿD‰àH‹=ýL�¥ÐþÿÿƒÃHkÀL‰æH‹”ðþÿÿèïPüÿL‰öL‰çèIüÿéÈüÿÿD‰àH�CÔL‰÷ƒÃHkÀ¾H‹Œðþÿÿ1Àè'Rüÿé›üÿÿÆŒé�üÿÿA¿é„üÿÿM‰ëL‰ö¿%L‰�€þÿÿèdKüÿL‹­€þÿÿéaüÿÿD‰àM�kHkÀL‹¤ðþÿÿM…ä„÷¤üÿA€<$„ì¤üÿ€=‚ t H‹=1ºL‰æè$OüÿH‰ÇH…À…�¤üÿL‰öL‰çèMHüÿéüÿÿD‰àL‰öL‰�€þÿÿHkÀL‹¤ðþÿÿI‹<$è&HüÿI‹¼$àL‹�€þÿÿH…ÿtH‹GL‰æÿ� L‹�€þÿÿH…ÀH‰ÁuM�ké¦ûÿÿèèFüÿH�v½¾L‰÷1ÀèQüÿL‹�€þÿÿëÓ‹ƒú/wD‰×ƒÂHx‰H‹?H‰9ƒú/wJ‰×ƒÂHx‰H‹?H‰yƒú/w%‰×ƒÂHx‰H‹H‰QéÖûÿÿH‹xL�WL‰Pë¹H‹xH�WH‰PëØH‹xL�WL‰P볋8ƒÿ/w‰úƒÇHP‰8H‹H‰é�ûÿÿH‹PH�zH‰xëçA¶Y�Sœ€ú‡DøÿÿA¸I£Ðƒ4øÿÿI�Iºé¼ûÿÿL‰�hþÿÿƒÃèkGüÿ‰…ˆþÿÿD‰àHkÀH‹¼ðþÿÿH‹´øþÿÿH‹„ÿÿÿH‰½€þÿÿH‰µxþÿÿH‰…pþÿÿH…ÿ„º¦üÿè£Cüÿ„À„‰¦üÿH‹½€þÿÿH�•”þÿÿL�… þÿÿH‹�pþÿÿL��˜þÿÿH‹GH‹·ÀjRH‹•xþÿÿÿ�@_AXA‰Ä„À„a¦üÿHƒ½˜þÿÿL‹�hþÿÿ„A¶üÿL‰ïH‰Ãè·Düÿ1ÉH�5º¹L‰çH‰H‰Kè_Füÿ…Àt:H�5ª¹L‰çèLFüÿ…Àt'L‰çè€DüÿH‰CH‹-H…ÀuH‰!X[A\A]]Ã1ÀëÝH‰ÂH‹@H…ÀuôH‰Zëâff.„óúUH‰åAWAVAUI‰õH�5u­ATI‰üSQè|JüÿH‰ÃH…Àt5E1öHƒ=9 …Ÿ£üÿEˆuL‰çèw€=øuZH‰Ø[A\A]A^A_]À=àtèéH£üÿ鞣üÿff.„�óú‹öH�ŸƒøƒÐÿH‹ÂÃ@óúUH‰åAVL‹5WôAUI‰ý¿(ATI‰ôSH‰ÓèW¼þÿ1Ò1ɉPH‰I‹VH‰I‰FL‰hL‰`H‰X [A\A]A^]Ãff.„f�óúU¿ H‰åSPH‹òóè¼þÿ1Ò1ÉÇ@H�xH‰H‹SH‰H‰CH‰HH‰x^[]éx„óúUH‰åATI‰ôSH‹H…Àu6H‰û¿(è­»þÿ¹H�pH‰Â1ÀH‰÷ó«H�ÃrÿÿL‰"H‰B H‰[A\]ÃH‰òH‰ÑH‹H…ÒuõH‹H‰L‰ ëâff.„óúUH‰åATI‰ü¿Sèh<üÿL‰çH‰Ãè]BüÿH‰C1ÀHƒ=GH‰tH‹‹ H‰H‰� [A\]ÃH‰%ëëff.„óúU1ÀH‰åAVL�5Z·AUI‰ýATL�%�òSë2Hƒ»Àt$H‹KhL‰ò¾L‰ï1Àèüÿf.„óúU1ÒH�5(·H‰åATE1äSH�ì dH‹%(H‰Eè1Àè?üÿH�µPÿÿÿH‰ÇH‰ÃèBüÿ…Àu‹…hÿÿÿE1ä%ð=@A”ÄH‰ßè‰9üÿD‰àƒàH‹UèdH+%(u H�Ä [A\]Ãè£=üÿóúUH‰åAWAVAUATI‰ôSH‰ûHƒìL‹/H‰÷M…íuèU?üÿH‰H�eØ[A\A]A^A_]ÃèN=üÿM‰ïI‰Æ¾ˆEˉEÌL‰òL‰þL‰çè�:üÿ…Àta‹uÌL‰ÿèŽ=üÿH…ÀuhL‰ïè=üÿM�tL‰÷èô8üÿH� JžL‰ò¾I‰ÅP1ÀATD¾ ÀL‰ïL‹èúHüÿH‹;è¢8üÿL‰+ZYéfÿÿÿC¶7„À„Yÿÿÿ:EËu�éOÿÿÿL�xémÿÿÿ„óúUH‰åATI‰ü¿@SèøAüÿH…À„7ÜüÿÇ@@¿@H‰ÃèÛAüÿH‰CH…À„ÜüÿÇC L‰æH‰ßè H‰Ø[A\]Ã@UH‰åAVAUATI‰ôSH‰ûèZ9üÿD‹0I‰ÅH…Û„ßÛüÿ1À1Ò‰CH‹CÆH‹CÆ@H‹CÇC(H‰CH‹‡ü‰S8H…ÀtH‹püH;Ðu èõáþÿH‹füL‰#ÇC4H…Àt=H‹HüH;Ðu0M…ä„yÛüÿL‰çè‘@üÿ‰Çèê9üÿ…ÀŸÀ¶À‰C$E‰u[A\A]A^]ÃHÇC,ëÆ„óúH‹åîH�ÞH9ƒ,ÛüÿH�PøH‹@øH‰ÆîH‰÷íÃff.„óú1À‰¶¡ƒâ€ú„õÚüÿ€=â„!Üüÿ€=Á„ ÜüÿL‹ tH¹H¸L!ÉH9Á„²ÛüÿH¾@H¸@L!ÎH9Æ„ˆH¿H�K"I¸L!ÏL9ÇtdI¸H¸M!ÈI9À„ïÚüÿ€ú„ÞÚüÿH¸H9Á„OÚüÿH¸@H9Æ…VÚüÿH�óºö|„BÚüÿÃÃéÛüÿ€óú1À‰¶‘ƒâ€ú„ÎÛüÿ€=Ò„3Ûüÿ€=±„¤ÛüÿL‹ dH¹H¸L!ÉH9Á„åÚüÿH¾@H¸@L!ÎH9Æ„ŠH¿H�ë5I¸L!ÏL9ÇtfI¸H¸M!ÈI9À„¬Úüÿ€ú„›ÚüÿH¸H9Á„˜ÚüÿH¸@H9Æt.H¹H�… H9Ï…‰ÚüÿÃÃö[„iÿÿÿéÉÚüÿöItÉéÝÚüÿf.„UH‰åAWAVAUATSAQH‹jùH‹kùHc5¨øH‹­øH‹ ¦L�,ÐI‹EH‹PH�t2H9Þ‚$àüÿH)˃x4„`ƒë1À9Ã�*àüÿM‹eAƒ|$8„àüÿ‰Ø÷ÐAD$I‹|$…ÀŽiàüÿº 9ÐNÐHcÃHÇH‹åøA‰ÕH‹ÓøH‹ ÐH…À„%àüÿH…É„àüÿHƒ9„àüÿH‹ øH…É„àüÿIcÕ¾è–6üÿI‰ÄA9ÅŽÈßüÿH‹=ë÷èÞ5üÿ…À…—ßüÿH‹oøH‹pøD‰%­÷H‹ ÐD‰aE…ät`E1öL�,Ћ “÷M‹eËI‹|$A;\$�ýßüÿI‹D$‰r÷HcÛÆI‹EH‹@ÆDI‹EH‹@H‰[ZD‰ð[A\A]A^A_]Ã…Û…¸ÞüÿH‹=M÷A¾èJH‹Ó÷H‹Ô÷évÿÿÿE1öHƒëA•ÆAƒÆë³fDóúH‹¥úH…À„ÅßüÿH‰x(1ÀÃD‹H‹ÛH‹ ÔöH9Êrö2@„ö„†çüÿH�=3£¶<7LcÀH�5e™fBƒë±óúH‹ÕùH…À„@çüÿH‰x81ÀÃDóúH‹µùH…À„5çüÿH‰x@1ÀÃDóúUH‰åAUI‰ý¿0ATA‰ÔSH‰óPè¿°þÿH‹SÇ=H‰P‹SÇ@‰PH‰X L‰hDˆ`(Z[A\A]]ÃH‹AéH�PH‰6鋴Ǫ‰Ãff.„Ãff.„@UH‰åSH‰û¿Pè=°þÿfHnËó~PûÆ@flÁH‰Aû€ Çû€Z[]ÃI‰ùHƒÇH…Òu+L�&\¶„À„Âïüÿ�H߀ùW‡Œïüÿ¶ÉIc ˆLÁ>ÿáI�yLëÏ‹ƒÈ‰HƒÆëÉ‹ƒÈ ëñ‹ƒÈëꋃÈëãf�H‰òE1ÉH‰þE1À1ÉH�=ËëIf„U1öH‰åSH‰ûQèЀ=ÙøtH‹¸ø1ÒÇH‰S H‰CÇCX[]ÃDóúUH‰åAWI‰×AVI‰ÎAUM‰ÅATI‰üSH‰óHƒìL‰MÈI‹$H…ÒuC¿8è50üÿ1Ò1ÉI‰$H‰XH‹]ÈL‰xH‰I‹$‰H0L‰pL‰h H‰X(HƒÄ[A\A]A^A_]ÃH‹rH‰ßH‰UÀè¬7üÿH‹UÀ…ÀtI‰Ôë—H‹I‰$ëŽfDóú1ÀÆØ÷H‰øH‰øH‹öÞH‰5øH0H‰ò÷é¥ÿÿDóúUH‰åATI‰ü¿pSH‰óèU®þÿ¹H‰Â1ÀH‰×ó«H�oeÿÿL‰bH‰BhH‰ÐH‰Z8ÇB`ÿÿÿÿ[A\]Ã@óúUH‰åAWAVAUI‰ÕATSH‰óHƒìL‹5¾úH…ÿtzI‰üM…ö…�H�{èTH�{8èKL‹{M…ÿ…MòüÿL‹s8M…öudL‰kXL‰cA€<$tQ‹pþƒÀ‰gþ‰CH‹]úH�VúH…Àu$H‰HƒÄ[A\A]A^A_]ÃM…ö…ÊñüÿL�%l¿ë€H‰ÂH‹ëÏ1ÀëºL‹úM…Àu)M‹6놀?„›ñüÿI‹F€8„ŽñüÿM…ö…æñüÿé?ÿÿÿA¶FI‹x ƒàH…ÿ„•òüÿ„À…7òüÿM‹x(M…ÿuM‹ë§éëñüÿff.„�U1ÒH‰åèüÿÿ]H‰Çé<ÿÿff.„�H‹áþHcÂý¶ Ëñˆ H‰Éñ¶ˆ¸ñÆ1À‰�ýÃff.„�óúUH‰åAWAVAUATSH‰ûHƒì(H‹1ÿH‰ÊH…ÒuH…ÿu2H‰KHƒÄ([A\A]A^A_]öBH‹‰Æƒæ@€þHƒßÿÀèƒà CëÄHÿ1ÉH�x%ÿÿI‰ßH�5#ÿÿL�sèE;üÿL‹+H‰CM‰ìM…í…Ãòüÿ1ÀI‰H‹CI‰ë’@óúH‰ÐH…ÿ…:óüÿÃff.„@UH‰þH‰åSHƒìH‹=…ñH…ÿ„VóüÿH‹mñHƒ<Ç„DóüÿH‹<Çè‰ôÿÿHƒÄ[]éÞÖþÿff.„UH‰åAUI‰õATSH‰û¿Qèf«þÿH‰H‹øI‰ÄH…Ût H‹{L‰îè(4üÿ…Àu2I‰\$L‰àZ[A\A]]Ã1ÿºH�5>7 è!0üÿL‰îH‰Ç1Àè$ñÿÿëÎH‹ë´ff.„f�óúUH‰åAUATI‰ôS‰ûH�ìØH‰•@ÿÿÿH‰�HÿÿÿL‰…PÿÿÿL‰�Xÿÿÿ„Àt&)…`ÿÿÿ)�pÿÿÿ)U€)]�)e )m°)uÀ)}ÐdH‹%(H‰…(ÿÿÿ1ÀH�EÇ…ÿÿÿH‰…ÿÿÿH�…0ÿÿÿÇ…ÿÿÿ0H‰… ÿÿÿ…ÛuNH‹oÚL‰æH�•ÿÿÿ1ÉH‹;è3áÿÿH‹3¿ è&3üÿH‹…(ÿÿÿdH+%(…ŽH�ÄØ1À[A\A]]Ãût~1ÿºH�5ù¨èø.üÿ1ÉL‰æH�è»H‰Ç1Àè20üÿI‰ÄH‹ðÙH‹8è€4üÿL‹-qÚ¹L‰æH�•ÿÿÿI‹}è¡àÿÿI‹}èX4üÿL‰çè *üÿƒû„·ñüÿé\ÿÿÿèÍ.üÿ1ÿºH�5m¨èz.üÿ1ÉL‰æH�j»H‰Ç1Àè´/üÿH�•ÿÿÿ¹H‰ÃH‰ÆH‹cÙH‹8è3àÿÿH‰ßè;*üÿéÿÿÿfDU€=¸øH‰åATSH‰ût(èxìÿÿH�5Y5 1ÿºI‰Äè.üÿL‰æH‰Ç1Àèïÿÿ‹ÿúƒèƒøvH‰Ú1öH�=÷§1Àè$ÜÿÿH˜H�;úH�5Χ1ÿL‹$ºè´-üÿH‰Ú1öH‰ÇL‰á1ÀèòÛÿÿf�H9=ññu0H‹øØH0H9ûñu€=‚õuH‰ÉñÃ1ÀH‰¿ñÃfDóúUH‰åAUATI‰ôS‰û¿8PL‹-)àè<¨þÿ1ÒÇ@H‰I‹UH‰I‰EL‰`‰XY[A\A]]ÃfDUH‰åATI‰ôSH‰û¿(èù§þÿH‹SÇ!H‰P‹SÇ@‰PH‰XL‰` [A\]Ã�óúUH‰åATL‹%§ßS‰û¿è²§þÿ1Ò‰XH‰I‹T$H‰I‰D$[A\]Äóú¶5óU‰Â‰ÁƒâƒáH‰åAT€êStj„Éu öóun¨tP€= óˆ¦ðüÿèlH‹åóL‹%ÖóI9Ü‚oðüÿHƒ=ííuH�=‘¦è�(üÿI‰ÄH…À… ðüÿ[A\]À%ºòë§H� zó„Ét‹ë–éðüÿff.„@óúUH‰åHƒìH‹=EídH‹%(H‰Eø1ÀH…ÿt¶íö[òuT„ÀuTè�ÓÿÿHƒ=0óuH‹=Ïñè:*üÿH‰óHƒ=óuH‹=²ñè (üÿH‰óH‹EødH+%(u ÉÄÀt±1ÒH�uðèF(üÿH‹Eð€8…ïïüÿë—èr+üÿf�óúH‹ëH…ÀtÃH‹xúH9Qñu!UH‰åSQH‹RðH…Û…¡ýÿH‹2ñZ[]ÃH…ÀtÚÄóúUH‰åè3H‹ÌñH‹PƒzuH‹€H� dñH‹€¨ H‰HX]ÀóúH‹=•ñH‹®ì‹5°ìH‹GH‹€ ÿàff.„óúUH‰åATL‹%GÝSH‰û¿èQ¥þÿ1ÒÇ@ H‰I‹T$H‰I‰D$H‰X[A\]Ãff.„@óúH�5¥ìH�=¾ðé‰)üÿf„óúUH‰þH‹=Éð1ÉA¸ºH‰åèü,üÿH…À„ýÿ€xH‰Æ…ýÿ1ÀH‹=•ðH‰F(·Ff%þf f‰F]é³,üÿóúUH‰åAUATI‰ü¿ S‰óPL‹-iÜè|¤þÿ1ÒH‰Ç@I‹UH‰I‰EˆXL‰`€`H‹SëH‰|ïY[A\A]]Ã@UH‰åAUATA‰üSRH‹ÌîH…ÛtH‹{H…ÿuH‹{0H…ÿu`H‹[ëãX[A\A]]Ã1öèPõÿÿE„ätÝ€=Tí„fýÿH‹/íH‰C H‰C8H‹{0H…ÿtÁ1öèõÿÿ€=(í„ýÿH‹íH‰C(ë 1öèþôÿÿE„ät”ëØ€óúH�5ëH�=>ïé (üÿf„óúH�5ÅêH�=ïéé'üÿf„¾5ï@„ö„C ýÿéë(üÿff.„óú€=3ð…|ýÿÿ%‰ðf„óú¿@ëDöºîuÃUH‰åSRH‹Ñîƒ{@uÆCR‰þH‰ßèÕÆCRX[]Ãff.„f�óúH…ÿt2UH‰åSH‰û¿Pè´¢þÿfHnËó~ÏîflÁH‰ÁîZ[]ÃÃ@óú¿ érÿÿÿf�óúëêf.„óú¿@éâ@ÿÿf�óúUH‰åH�ìÐH‰•`ÿÿÿH‰�hÿÿÿL‰…pÿÿÿL‰�xÿÿÿ„Àt )E€)M�)U )]°)eÀ)mÐ)uà)}ðdH‹%(H‰…Hÿÿÿ1ÀH�E1ÉH�•0ÿÿÿH‰…8ÿÿÿH�…PÿÿÿH‰…@ÿÿÿÇ…0ÿÿÿÇ…4ÿÿÿ0è´ØÿÿH‹…HÿÿÿdH+%(uÉÃèë&üÿff.„óúH‹•í¶?íH‹RƒÈ ˆ2í‹R …Òtƒêu ƒà߈íÃËÈìƒútôƒútå…ÒuëH‹ŸëH…ÒtßH‹J0H…É„éýÿH‹Qƒz t¾Ãf�óú¿ é¢?ÿÿf�óúëêf.„UH‰åAWAVL�5±ìAUATSH‰ûH�숉u„H‹=èìL‰öL‹-öìdH‹%(H‰EÈ1Àèj(üÿH‰EˆI‰ÄM…ät!I‹|$H…ÿ„Ûè‹&üÿ¨„°M‹$$ëÚ€{RurH‹ ìH…Ûuëdf„H‹›H…ÛtO¶CHƒà<uéöCD@tãH‹CƒxuÙH‹“·‚œ fÁè¨ uÃHƒº`t¹L‰öH‰ßè&üÿ…ÀyªéGýÿ1ÒL‰-4ìI‰UH‹EÈdH+%(…YH�Ĉ[A\A]A^A_]ÃI‹|$H…ÿt€{Ru6¶�ëƒà,t(L‹}ˆM9üt.I‹H…ÿ„øèš%üÿ¨„ëM‹?ëÜèˆ%üÿ¨…ýþÿÿëÉ1ÀH�=•[ÿÿL‰%†óH‰wóè2[ÿÿH‹kóH…ÀtH‹x0èM%üÿ¨„ÂþÿÿóAoD$€=ê)E�fÖE …¡H‹1óH…Àt#H‹@H�} º¾H‰E¨è1„À…vþÿÿH�E�L‰­xÿÿÿ1ÉH‰…pÿÿÿH‰�`ÿÿÿ‰ËD‹E„H‹µpÿÿÿ¹‰ÚH‹=cêè „Àt8L‹­xÿÿÿH‹�`ÿÿÿé$þÿÿI‹t$I‹è™'üÿ…À…ÿþÿÿé þÿÿèç#üÿéûýÿH‹=êH…ÿ…aýÿHƒ= ê„PH�=ˆ èèüÿH‰ÇH…ÀtD‹E„H‹µpÿÿÿ¹‰Úè™ „À…"H‹=JêL‰öE1ÿèŸ!üÿI‰ÅAöÇu M…í…lýÿE…ÿ…Ý€=ò…¦1ÉH‹=fëfïÀ1ÀL�=( H‰M°H�5- 1ÉL‰úE¸è8$üÿI‰ÅH�E°L‰îH‰ÇH‰…XÿÿÿèŸ!„Àu-L‰ïèÃüÿH‹=ë1Ò1ÀL‰þè$üÿH‹½XÿÿÿH‰ÆI‰Åèn!L‰ïè–üÿH‹}°H…ÿtèè&H‹}°H‰]ñèxüÿÆYñH‹JñI‹|$H…Àt8fHn×D‹E„H�u°‰ÚóA~D$¹H‰ÇflÂ)E°èu „À…ŸI‹|$èS"üÿL‹=<âH‰…XÿÿÿëM‹?M…ÿ„ŒA€uíI‹è'"üÿH‹�XÿÿÿH�TH‰×H‰•PÿÿÿèüüÿH‹•PÿÿÿM‹L$¾M‹GH‰ÇI‰Å1ÀH� Å è.üÿH�} º‰ÞL‰m¨è¯ „Àu.L‰ïè“üÿé{ÿÿÿL‹­xÿÿÿH‹�`ÿÿÿéØûÿÿ…Ûu»éqýÿÿL‹­xÿÿÿH‹�`ÿÿÿé·ûÿÿL‹­xÿÿÿH‹�`ÿÿÿé®ýÿL‹­xÿÿÿH‹�`ÿÿÿé‘ûÿÿéPýÿL‹­xÿÿÿH‹�`ÿÿÿéyûÿÿff.„�óúUH‰åAWAVAUATSHƒì(Hƒ=³äL‹?„®ýÿHcþ‰óI‰ÕE1äHÁçèöüÿH‰EÈD9ã~WI‹GL‰ÿÿ�I‹UI‰ÆH‹EÈN‰4àM‰>H…Ò…PýÿI‹EI‰F1ÀI‰FA€}‡äýÿA¶EH�5TÊHc†Hð>ÿàH‹uȉÚL‰ÿè8$üÿ1ÀHƒÄ([A\A]A^A_]ÃH‹¸Ë¹€HI‰F I‹GA‰NƒxuKI‹H…À„îýÿH‹Pƒz…àýÿHƒ¸„ÒýÿA€}tmA‹Mƒù‡âýÿH�´Ë¶AFIIƒÄIƒÅ0é ÿÿÿH‹<Ë1ÉHë…¹€I‹u ƒÉH…ö…ÃýÿH�5„ŸL‰ÿ‰MÀè3"üÿ‹MÀéVÿÿÿ1ÉëÒéôýÿf�óúU1ÒH‰åHƒìH‹5{ãdH‹%(H‰Eø1À‰=–ãH‹=OãH�M÷H‰\ê1Òƒ[ãÆE÷Æàéè DÿÿH‹EødH+%(uÉÃèeüÿDóúUH�5€œH‰åSH‰ûQèç"üÿ…À„iýÿH�5hœH‰ßèÐ"üÿ…À„¬ýÿH�5£�H‰ßè¹"üÿ‰Â¸…Ò…>ýÿZ[]ÃfDóúH‹ ãH…Àt H‹@0HíâH‹ÊÆÌâH0H‰ââÃf„óúH‹Æ§âH‰ ÛâH‰ÌâH‰ÕâH‰5Öâé�óþÿ�H‹H9…*ýÿH‹F1Òó~GH‰GH‰Ãff.„óúUH‰åAVAUATSH‹_ H…Ûu [A\A]A^]ÃI‰üI‰öI‰ÕH‹K H‹SM‰èL‰çH‹sAÿÖH‹H…ÛtÑëá€óú¹ ëDóúé'öÿÿ€óúUI‰ÒH�Ì›fHnÂH�È›fHnÊH�›H‰åAWfHnÒH�ÛAVfHnÚAUATSH�옉MœL‹/dH‹%(H‰EÈH�r›Hƒ=áfHnàH�f›fHnèH�l›flÄfHnðH�.´flÍ)…PÿÿÿfHnøflÖ)�`ÿÿÿflß)•pÿÿÿ)]€„ýÿ‰óM‰ÖE1äA9Ü�ÿI‹6H‹=¨ã1Ò1ÉA¸èáüÿI‰ÂA¶F�Pþ€ú† M…Ò„I1ÉHƒ=ŠãM‰×…!ýÿA¶G�Pÿ€ú†ü ýÿ�Pý€ú‡éýÿI‹W(<„ÔýÿA¶FH‹’àH‹5Uãƒè<†ýÿH9Ö„lýÿI9Õ…ýýÿA¶G¨uwƒùtrƒù„ÜýÿH�=Êⶉуá€ùt\ƒàƒâÐu\€ùtW¸€=êÝA‰F(…ËýÿAƒÄIƒÆ0éøþÿÿH‹EÈdH+%(u H�Ę1À[A\A]A^A_]ø븋Eœë³èçüÿI‹wH‹=\ãè× üÿ„À„5ýÿë�I‹H‹=ƒâE1À1ÉA¹H�5!âL‰U�è˜üÿI‰ÇH…Àu)A¶F<<�Ëýÿ†Kÿÿÿéûýÿ<„>ÿÿÿéîýÿL‹U�I9Â…×ýÿ1ÉH…À…Žþÿÿë½ff.„f�óúUHƒ=ÃÞH‰å„é"ýÿèüÿ¾H‰Çèh“þÿH…À„ß"ýÿ€Ha€1À]Àóúé—ôÿÿ€óúUH‰åAWAVL�u¸AUL�m¼ATL�eÀSH‰ûHƒì8dH‹%(H‰EÈ1À1ÀH‰EÀL‰ñL‰êL‰æH‰ßèfüÿI‰ÇH…À…¡"ýÿ‹}¸�ÿ…e"ýÿH…ÛtH‰ßèüÿ=„È"ýÿH‹EÈdH+%(uHƒÄ8[A\A]A^A_]Ãè`üÿóúÃff.„‹Ü…ÀuÃUƒèH‰åAWAVAUATSRƒø‡£"ýÿH‰ûH…Ût&‹Cƒøt*w~ƒø„z"ýÿƒø u H‹{è²ÿÿÿH‹ëÕX[A\A]A^A_]ÃL‹c@D‹=²ÛL�5+˜M…ätØM‹l$L‰öL‰ïèjüÿ…Àt%H�5˜L‰ïèWüÿ…ÀtA‹D$8…Àu"E‰|$8ÆCbM‹$$뼃øu”H‹=Ïæè:ÿÿÿ놃øtƒøuÙAƒÿuÓAÇD$8ëÈAƒÿuÂAÇD$8ë·ff.„�óúUH‰åATI‰ôH�5ð—SH‰ûèsüÿHƒø‡º#ýÿH�5AxH‰ßèZüÿH…À„Í#ýÿL‰æH‰ß1Ò[A\]é@üÿUH‰åAWAVAUATSH‰ûH‰÷H�숉U¤‰M D‰EŒdH‹%(H‰EÈH‹F€8/H‰E¨„ %ýÿH…Û„€;„H‹H‹}¨fHnÀfHnÏH‰E�flÁ)E°èzüÿHƒÀH‰E˜¾5FàH‰ßèÓüÿI‰ÄH…Àu H‰ßèSüÿL�$H‹E˜M‰çI)ßN�48L‰÷è)üÿI‰ÅL9ã„´$ýÿL‰ñL‰úH‰ÇH‰ÞèüÿCÆD=/IƒÇL‰ñM9þK�|=IBÏL)ùI‰ÎH‹u¨L‰ò1Ûèßüÿ‰ß¾$LïèPüÿI‰ÆH…À…µ#ýÿ‹U ‹u¤H�}°L‰m¸è¡„Àt#H‹UÈdH+%(uH�eØ[A\A]A^A_]ÃèªüÿL‰ïèbüÿA€<$…$ýÿ1ÀëÆUH‰ùH‰åAWAVAUATSHƒì(H‹H…Û„žI‰Í1ÒE1äA¿þÿÿÿf�‹Cƒø uXI‰ÞH…Ò„ÏH9Z …ß)ýÿD‰ø+ƒ”‰ƒ”M…ä„ÌM‹mI‹]H…ÛtZ‹Cƒø uL‰òI‰ÞH9Z tÇé¡)ýÿ@I‰Öƒø„¡ƒø„q'ýÿL‰òM‹mI‹]H…Û…wÿÿÿM…äuHƒÄ([A\A]A^A_]ÃL‰ò¸þÿÿÿA+„$”A‰„$”L9âtÔ¹þÿÿÿ�M‹d$ M…ätĉÈA+„$”A‰„$”L9âuß뫸þÿÿÿ+ƒ”‰ƒ”M…ä…9ÿÿÿé )ýÿH‰ÚI‰ÜékÿÿÿH�{H‰MÈè¶þÿÿH‹MÈéRÿÿÿff.„f�UH‰åAWAVA‰öAUATI‰üSHƒì(‰U¼L‹L‰ÿdH‹%(H‰EÈ1ÀH‹¹ÜH‹@H‹0è=üÿH…À„`*ýÿH‰ÃL‰ÿè9Õÿÿ�KD€¾H‰ßè üÿA‰Å„À„&*ýÿöCD@„*ýÿH‹iÜH‹@H9C…*ýÿE…ö„Š)ýÿH�5ûâH‰ßèSüÿ…À…S)ýÿH‹;èƒüÿ€=TÛI‰Æ…)ýÿ1ÀH�=ºSÿÿH‰äè¾KÿÿHƒ=öãufH‰ßL‰öè™üÿI‹<$H…ÿ„Ò(ýÿèÇüÿ¨„Å(ýÿ¾H‰ßèÒüÿH‹ãÛH�5tÛH‰ßH‰H�ƒH‰ÈÛH‹Cÿ�ЄÀ„d(ýÿH‹EÈdH+%(uHƒÄ(D‰è[A\A]A^A_]Ãè¸üÿ„H‹AÖH…ÀtúH�5�u1ÿéPüÿóúUH‰åAWA‰÷AVAUI‰ýATI‰ÌSHƒì(H‰U¸H�÷×H‹L‹p M…ö„Ì0ýÿM…ä„p1ÀL‰óH‰EÀëE1ûA�ã@t?H‹[ H…ÛtLH‹s8D‹›˜H…ötÛD‹^$I‹•àL‰éH‹=ÆÚD‰]ÌAÿÔD‹]Ì„ÀtÃëµH‹C H‰]ÀH…À„.H‰Ãë´Hƒ}À…D‰ø÷Ш„¥D‰ø÷Ш …]M…ö„Ã1ÛH‰]ÀM…äu;é6‰ØD1ø© @„/ýÿ% �ã@ ØH‹EÀIDÆH‰EÀM‹v M…ö„ƒI‹v8A‹ž˜H…ötº‹^$I‹•àL‰éH‹=ÚAÿÔ„ÀtÈë�I‹•àH‹=ðÙL‰éAÿÔ„Àu!M‹v M…öt5I‹v8A‹ž˜H…öt‹^$M…äuÇH‹EÀD1û�ã@IDÆH‰EÀëÈ1öH‰uÀHƒ}À•ÀM…ä”Â1ÉE1äÐH‰M¸„[þÿÿH‹EÀHƒÄ([A\A]A^A_]ÃH‹E¸H…ÀtäH‹}ÀH‰8ëÛA‹–˜‰ÐD1ø© @„ .ýÿ% �â@ ÐH‹EÀIDÆH‰EÀM‹v M…öt¢I‹F8H…Àt¾‹P$ëÀD‰ø÷Щ„ÎD‰ø÷Щ@„Å-ýÿD‰ø÷Щ„³AöÇ„.ýÿ1ÿH‰}ÀM…ö„,ÿÿÿI‹v8A‹ž˜H…ötq‹^$M…ätiI‹•àH‹=®ØL‰éAÿÔ„ÀuQM‹v ëÁ1ÒL‰ðH‰UÀë H‹@ H…À„çýÿÿH‹H8‹�˜H…Ét‹Q$D1ú�â@uÖH‹P H‰EÀH…Ò„âþÿÿH‰ÐëÍH‹EÀD1û€ãIDÆH‰EÀë›é -ýÿE1ÉL‰MÀM…ö„‚þÿÿI‹v8A‹ž˜H…öt ‹^$M…ätI‹•àH‹=ØL‰éAÿÔ„ÀtH‹EÀD1û�ã@IDÆH‰EÀM‹v ë¬ff.„@óúUH‰åAWI‰ÏAVM‰ÆAUI‰ýH‰×ATI‰ôL‰ÆSH‰ÓHƒì8èQHÿÿ„À…ÅL‰öH‰ßèîMÿÿ„À…²¿ è|‹þÿfïÀ@fHnÃI‰ÆAE@A€}`uM…ätjA‹D$8…Àtaƒøt\I�U0H� w»L‹M…ÀtRA€}`…eM…ä„£A‹D$8…À„–ƒø„�ƒèA¶t$ÿàI‹U8H…ÒtL‰2I9U8uIƒÆM‰u8HƒÄ8[A\A]A^A_]ÃI‹9@„ö…-ýÿH‰þH‹;L‰EÀL‰MÈè†üÿL‹EÀL‹MÈH� Ϻ…ÀuA‹A|+C|I�P…ÀˆAÿÿÿI�Pé8ÿÿÿA‹A|+C|uâ@„öu{I‹1H‹;L‰EÈè:üÿL‹EÈH� ‡ºëÁH‹;@ˆu°H‰U¸L‰MÈèyL‹MȉEÀI‹9èjD‹EÀL‹MÈH� Sº‰ÇH‹U¸¶u°D‰À øx;@„ö…#,ýÿD‰À)ø„D,ýÿL‹ébÿÿÿH‹3I‹9L‰EÈè¿üÿL‹EÈH� ºéCÿÿÿL‹éYÿÿÿI‹H‰EÈI‹G0L‹˜èM…Û…B,ýÿH‹°L‹F M…ÀuL‹H‹EÈH‹€àL‹�èM…Ò…ø+ýÿH‹°L‹N M…ÉuL‹A€}aL‰U L‰]¨H‰U°tHL‰ÆL‰ÏL‰E¸L‰MÀèE üÿL‹MÀL‹E¸H� n¹H‹U°L‹]¨L‹U …À�L,ýÿ„Î+ýÿH‹HƒÂéÑýÿÿL‰ÎL‰ÇL‰M¸L‰EÀèý üÿL‹U L‹]¨H� &¹H‹U°L‹M¸L‹EÀë¶óúUH‰åATSHƒìH‹=bÛdH‹%(H‰Eè1ÀH‹¼ÑH‹€øH…Àt1Ò1öÿÐH‹=›ÔH�5"ˆèüÿH‰ÃH…ÀtEH‹=ÛH�uàºèb üÿ�K$@ H‹=üÚH‰ƒ H‹EàH‰C@è�òÿÿHƒ» „µ-ýÿH‹=ÓÚè– üÿ1öH‹}ÒH‰5¾ÚH…Àt 1ÉH‰H8H‹@HëïH‹EèdH+%(uXZ[A\]Ãè: üÿf.„óúH‹5•ÎH‹=–Îéi^ÿÿf„óúUH‰åAVL�wAUI‰ÕATI‰üSH‰óH‹sH…ö…b-ýÿH‹SH‹3M‰èL‰÷I‹L$PèFÿÿH‹[H…ÛuÓ[A\A]A^]Ãff.„óúH9=5ÐH‹¾A”ÁE1ÀH…Àt8‹HƒùvB�Qùƒú w(H‰òHÓâ÷ÂØ…"-ýÿ÷€%uƒù u M…À…ì,ýÿH‰øÃE1ÉE1ÀH‰ÇH‹ë±ƒéƒùwðL�¸IcŠLÒ>ÿâM…ÀuÚH‹PƒztÐH‹R€:.uÇ€zuÁE„É„’,ýÿE1Éë³f�óúU¾.H‰åAUI‰ýATSHƒìdH‹%(H‰EØ1Àè£ üÿH…À„Æ.ýÿ¶PH‰ÃH‹¼¶öP„®.ýÿH�uÐH�{º èàüÿI‰ÄH‹EЀ8…Œ.ýÿI�EH9Ãt/I�üÿÿÿ‡v.ýÿD‰àH‹UØdH+%(u HƒÄ[A\A]]ÃèX üÿºH�5&ŠL‰ïè”üÿ…ÀtºH�5ŠL‰ïè|üÿ…Àu¡¸ÿÿL)àI‰Äë”ff.„óúUH‰øH‰åSQH‹H…Ût‹SƒúuZ[]Çí-ýÿH�{ƒúu èËÿÿÿHƒ8uâH‰ØëÍóúH‹5%ÌH‹=&Ìé \ÿÿf„óúH‹5õËH‹=öËéé[ÿÿf„óúUH‰åATE1äSH‰ûL;% ×r[A\]ÃH‹Š×J‹<àIƒÄÿÓëßff.„óú¶µÐƒà<„šUƒ="ÎH‰åt ÇÎ1É1ö1ÿ‰ _ÎèòèíH‹–ÍH…À„ D¶hÐL‹ ®ÐAƒâ ë„H‹@ H…À„â‹�”…ÒxéH‹P8H…ÒtàHƒzHuÙ‹r$÷Æ uÎH‹JH…É„ÍH;Qu»H‹ºøH…ÿtOD‹G$A÷À€„�H‹¿øH…ÿt2D‹G$A÷À€uçA�à…xÿÿÿöÄÏ tÑéjÿÿÿf.„¶¸¨@öÇ…S,ýÿƒÏ�΀@ˆ¸¨‰r$H‹RH…ÒtQH‰JH…ÉtVH‹@ H‰QAƒ© H…À…ÿÿÿ]ÃA�à…ÿÿÿE„Ò„[ÿÿÿéôþÿÿI;‘˜„,ÿÿÿéâþÿÿI‰‰�1ÒH…ÉuªAƒ© I‰‘˜éÀþÿÿÃff.„@óúH…ÿ„Â+ýÿƒ¿”x H‹G8H…ÀuH‹(ëßÃf.„óúH‹W0H�GèH;WðuH‹H…Àt+H;PHu#ƒ¸¬xéHƒÀÃU¾LH�=éH‰åè�býÿ1ÀÃf.„óúU1ÀH‰åAVAUATI‰üS@¶Þ‰Þ‰8ÌÇÖËèÁƒ="Ì…›¶@Ψ@„ÁH‹5ÌH…ö„±H‹.ÌH‹ÿËL‹-ðËL�tÿH÷ØI!ÆH‹NÎM‰ñH‹€˜I)ÑH…À„ÞD‹ÑÔH)Ö¿ë€H‹@H…À„¹‹H$öÁtëH‹P0L9êrâH9òsÝ�á�ù„þL‹P@D‰ÁIÓêL‰ÑHÑLÊI‰ùH)Ê‹H|IÓáI÷ÙI!Ñë¤H‹5MËH‹=nËL‹WËH�OÿH‰òI‰ÉH÷ÚM!ÁH!ÊtM…ÉuyÇ˨@t$H‹ ËH…Àtó~ËfHnÈflÁ Î[A\A]A^]ÃÇØÊM9é‚*ýÿL‰ ÐÊè[‰ÞL‰çèQL;5ÊʶÖÌs–éô)ýÿH‰ùL1ÆH÷ÙH…΄uÿÿÿLÊH9ׂiÿÿÿé›)ýÿÇwÊëŠH‰Ñé ÿÿÿDƒéɃ=ÊI‰øtƒZ×D¶ÎH‹5»É1É1ÒH�= ÉéÛYÿÿff.„óúH‹�Éÿ`@f�óúUH‹=„ÌH�5-ÌH‰åèEüÿ…Àˆß/ýÿ@•Ç]@¶ÿëbf�óú€=¥Òu$UH‰åAUATSH‰ûRH‹0H…ÿtöGD@u X[A\A]]ÃÃèéüÿI‰ÄH…À„­/ýÿH‹nÒH…Û…±/ýÿëÔff.„UH‰åAWAVA¾ AUL�-™ËATSHƒì@ˆ}̶}ÌèeH‹=ÎËÆEÌH‹Gƒx…Ï€=EÖ…H‹=˜È1öèafÿÿH‹jÈÆ#ÖH…Ûuë/@H‹[ H…Ût"L‹£ˆM…ätëA‹D$…À…ó/ýÿH‹[ H…ÛuÞH‹=VËH‹Gƒxu_A¶Eƒà<tSH‹‡Hƒ=1ÏH‹€¨ H‹XHu1ÒH‰H�UÌL‰îècüÿ„À„:0ýÿH‹=ËH‹‡H‹€¨ H‹PHH9Úu@€}ÌuHH‹Gƒxu!Hƒ=ÕÎuH‹€€H‹€0H…À…½/ýÿHƒÄ[A\A]A^A_]ÃAƒþ†’/ýÿÆEÌAƒî…·þÿÿéÜ/ýÿH‹YÇH…Û…ÿÿÿé/ÿÿÿff.„UH‰åATSHƒìdH‹%(H‰Eè1Àƒ=ʆâ0ýÿ€=õɈÕ0ýÿ@„ÿt1¿è�ãÿÿèHH‹EèdH+%(u)Y¾AX1ÿ[A\]é6ûÿÿH‹EèdH+%(uXZ[A\]Ãè+üÿff.„óúH‹uÈH…ÀtH‹P H‰P81ÒH‰P@H‹@H…ÀuéH‹‚ÆH…ÀtD€ ¨üH‹@ H…ÀuðH‹‘ÉH‹€�H…Àt)DH‹P@H‰PHö@%…š0ýÿHÇ@@H‹@H…ÀuÝÃÃff.„óú¶õȃà<tH‹=7ÉH�5àÈé{ üÿÃf.„óúé‡üÿÿ€óúéwüÿÿ€óúH‹ýÅH‰þH‹=ƒÏH‹€ðH…À„i0ýÿÿàf„óúUfïÀH‰åSHƒì8dH‹%(H‰Eè1ÀH‰uÐEØH…ÿ….0ýÿH‹EèdH+%(uHƒÄ8[]ÃèÄüÿ@óúHƒ= ÏuÃUH‰åè…Àu]é~óÿÿ]Ãff.„�óúH‹MÅH‹€èH…Àtÿà¸Ã�óúUH‰åAWAVAUATI‰üH‰÷SH�ì˜H‰µ`ÿÿÿH�5qldH‹%(H‰EÈ1Àèp üÿH‰…pÿÿÿH…À„w¿»€A¾èëüûÿHÁã H‰…xÿÿÿL‹½xÿÿÿL‰öH‹…xÿÿÿM‰ýD‰òL‰ÿH‹�pÿÿÿI)ÅD)êèdüÿH‰ÇH…À„ è³üÿM�~ÿH‰ÂL‰øL)èH9„ 5ýÿH‹½xÿÿÿ¾ èüüÿH…ÀtÆH‹½xÿÿÿ¾#èãüÿH…À…ØL‹�xÿÿÿA¶< weH£Ã‚ü4ýÿ„ÀuWH‹½pÿÿÿèqüÿ…À„IÿÿÿH‹½xÿÿÿèýûûÿH‹½pÿÿÿè¡ÿûÿ¸H‹UÈdH+%(uH�Ę[A\A]A^A_]ÃèüÿL‰ÏH�5×€L‰�hÿÿÿè°¤þÿL‹�hÿÿÿ„Àu,L‰Êë<=t< w H£Ã‚4HƒÂ¶„Àuãék4ýÿéf4ýÿA¶A< t< …È4ýÿL‰µXÿÿÿIƒÁA¶< „ð5ýÿ< „è5ýÿ„À„ºM‰ÎE¶>L‰ðIƒÆA€ÿ „î4ýÿA€ÿ „ä4ýÿE„ÿuÜÆA¶„Àt|1ÒH‰•hÿÿÿÿà¿èZÿÿÿI‹GHH…À…8ýÿA€`…1ýÿA€a… 1ýÿI‹wXH…ö…1ýÿH�=iQ1Àè|ÿÿA€a… 1ýÿA€`…1ýÿH�=(x1ÀL�5b¡èQÿÿM‹o@L�%#wM…ít`A‹E8ƒèƒø‡ñ0ýÿIc†Lð>ÿàH;=0¸H‹_8t H‹w01ÀH�=évèÿÿH…Û…˜èúúÿÿI‹_H…Ût,H‰ßL‰þèÖþÿÿH‹ëëH�=¼�1ÀèÓÿÿèÎúÿÿM‹gM…äu"H‹EÈdH+%(…×HƒÄH[A\A]A^A_]ÃL‰çH‰ÞèˆþÿÿM‹$$ëÈH‹EÈdH+%(…¤H‹HƒÄH1ö[A\A]A^A_]é&õÿÿ¿èüýÿÿI‹‹Gƒø„¥4ýÿH‹WE1ä€:.„�/ýÿH‹S8H…Ò„W/ýÿƒø„;/ýÿAƒäH� £ÄH‰Þè£Ôÿÿ€=|·„0I‹Gƒx„ñ.ýÿE„ä…è.ýÿHƒ=/·„H‹B·H‹+·H…À„ÍHX0H‹=ϹH�u¢H‰ÚfÇE 0xèÍûûÿE„ä…00ýÿH�] H‰Ù1ÀH‹=¼º¾H�ƒuH‰ɶ1Àè ýûÿI‹è!èlùÿÿé¢þÿÿH‹C0I‹0H‰àÃè“òûÿ‰Âƒø�È/ýÿ¿)×èÜüÿÿH‹S@H‹s01À‹ Ü¿H�=uHÓêèÿÿL‹c8L9c0…j/ýÿI‹xH…ÿ„þÿÿéÔ-ýÿH‹=¹H‰ÚH�u¢fÇE 0xH�] èûûÿé;ÿÿÿè&òûÿé .ýÿé>3ýÿH�= t1Àè¾ÿÿÇEœA€}<…Ý.ýÿI‹EH…À…“.ýÿI‹uH…ö„s.ýÿL‰ç1Àèˆÿÿƒ}œ…H.ýÿIƒ}u M‹mé(ýÿÿH�=x~1Àè`ÿÿëçH�=gs1ÀèPÿÿë�H�=ns1Àè@ÿÿë€H�= 1Àè0ÿÿÇEœémÿÿÿH�=… 1ÀèÿÿëäH�=Gs1ÀèÿÿéCÿÿÿH‹OH…É„/ýÿÿH‹EÈdH+%(…ÿÿÿH‹=¹HƒÄHH�æs1À[¾A\A]A^A_]éIûûÿH‹w1ÀH�=¹sè§ÿÿH‹5¨°H…ötH�=¬O1Àè�ÿÿH‹EÈdH+%(…ŸþÿÿHƒÄHH�=~1À[A\A]A^A_]é^ÿÿff.„óúƒ…ð3ýÿ�?…ò3ýÿH‹G€8.…Þ3ýÿ€x”À¶ÀƒàÃff.„óúUH‰åAWI‰ÿH‰ÏAVA‰öAUI‰ÕATM‰ÄSH‰ËHƒì8dH‹%(H‰EÈ1Àè%îûÿ„À„c5ýÿH‹ƒÀH�U H‰ßL‰} H�5DDˆuÀH‰E¸L‰m¨L‰e°è¯úûÿH‹EÈdH+%(uHƒÄ8[A\A]A^A_]ÃèÌïûÿff.„�óúUH‰åAWAVAUI‰ÕATSH‰óHƒìHH‹F`H‰}ÈL‹ H‹BH‹@`L‰çL‹0L‰öè$óûÿ…Àt&I‹EL‹xM…ÿtI‹wL‰çèóûÿ…À„Å4ýÿM‹?ëâH�eØ[A\A]A^A_]Ãff.„óúH‰úH…ÿt/÷Çÿÿÿ?tQ÷Çÿÿt2÷ÇÿuHÁê H�5ÿà‹;�ÿ…™7ýÿH‹{H‹5 µ[A\]é?îûÿH‹{H‹5 µè/îûÿ‹;¾èãH‹[ ëŽH‹sH�=ro[1ÀA\]é·ÿÿ‹;�ÿ5„â7ýÿ�€�ÿt �‡Ùþÿÿƒøwx1öè™H‹5ª´¿ èèîûÿH‹5™´¿(è×îûÿH‹{èÿÿÿºH‹ z´¾H�=pèÁöûÿH‹{ èèþÿÿH‹5Y´[¿)A\]é“îûÿ�‡µþÿÿƒøvˆH‹59´¿(èwîûÿH‹{è®þÿÿ‹;¾èë¯UH‰åAVL�5ãiAUL‰ðA‰ýATA‰ôS1Ûë ƒÃHƒÀƒû4tVD9(uïE…ätoH‹5ܳ¿ èîûÿH‹=˳ƒû4t;HÁãH‰þI‹|èÝìûÿE…ätEH‹5©³[¿ A\A]A^]éßíûÿE…äu¯H‹=‹³Aƒý~�Å7ýÿH‰þD‰ïè¾íûÿë¿H‹=m³ë¥[A\A]A^]Ãf.„óúÃf.„�óúUH‰ðI‰úH‰×HƒàüH‰åAWAVAUATSI�H‰]�‹B óo D‹JD‹z‰E¨‰ðB‰BH‰òHÁê f~MœH9ðWI9ÚƒöH‰}ˆ�A‹‹]œA‹rE‹B �”x¤j׋]¨‰ẺuÈC�¼îνÁE‹b‰Ø�ŒV·ÇèD‰E¤E‹B,D1øD!ÈD‰E¬1ØA‹ZÐD‰ÊÁÀD1ú‰]¸DÈ!ÂA‰ÃD1úE1ËÊA‹JÁ ÂB�´9Ûp $‰MÄD‰Ù!ÑA‰ÃA‰ÖD1ÉA1ÓñD‰ÞE‹ZÁÉÑD‰]À!ÎA1Î1ÆþA�¼¯|õD‰ðE‹rÁÎ E‹Z<ÎD‰u¼!ðA‰õ1ÐøA�¼*ƇG‰ÊE‰æÁÀ1òD‰u ð!Â1ÊA1ÅúA�¼ F0¨D‰éA‰ÅÁ Â!ÑA1ÕA‰Ô1ñù�¼3•FýD‰îE‹j ÁÉA‹Z(ÑD‰m´!ÎA1Ì1ÆþA�¼ؘ€iD‰àE‹b$ÁÎ E‹j8ÎD‰e°!ð1ÐøA�¼¯÷D‹‰ÊE‹b0ÁÀ1òð!Â1Êú�¼ ±[ÿÿ‰ñÁ 1ÁÂ!Ñ1ñùA�¼0¾×\‰‰ÆE‹B4ÁÉ1ÖIƒÂ@Ñ!Î1ÆþA�¼"�k‰ÐÁÎ 1ÈÎ!ð1ÐøA�¼“q˜ý‰ÊÁÀ1òð!Â1ÊúA�¼ ŽCy¦‰ñÁ 1ÁÂ!Ñ1ñùA�¼3!´I‰ÆÁÉ1ÖÑ!Î1Æþ‹}ÈÁÎ Î�¼b%ö‰È1ð!Ð1ÈøA�¼@³@À‰òÁÀð1Â!Ê1òú‹}¬Á Â�¼QZ^&‰Á1Ñ!ñ1Áù‹}ÌÁÁÑ�¼7ªÇ¶é‰Ö1Î!Æ1Öþ‹}¼D‹u°ÁÎ Î�¼]/Ö‰È1ð!Ð1Èø�¼SD‰òÁÀð1Â!Ê1òúA�¼ �æ¡Ø‰ÁÁ Â1Ñ!ñ1Áù‹}ÀÁÁÑ�¼7ÈûÓç‰Ö1Î!Æ1ÖþA�¼æÍá!‰ÈD‹u´ÁÎ Î1ð!Ð1ÈøA�¼Ö7ÉòÁÀð1Â!Ê1òú‹}¤Á Â�¼‡ Õô‰Á1Ñ!ñA�´6íZEA‰Ö1ÁùÁÁÑA1ÎD‰÷!Ç1×÷A�´é㩉ÈÁÏ Ï1øE�´<ŠL*�!ÐD‰u˜1Èð‹uÄÁÀø�´ø£ïü‰ú1Â!Ê1úò‹u¸Á Â�ŒÙog‰Æ1Ö!þ1ÆΉÑÁÆÖ1ñA‰ÎA!ÆD‰÷D‹u˜1×D÷D‹u¼ÁÏ ÷A�„B9úÿ1ùÁ‹E´ÁÁ�„�öq‡‰òù1ú1Ê‹E¬Á �„0"a�m‰þÊ1ÎA�¼= 8åý1ÖƉÈÁÆ1ÐÖ1ðA‰öø‹}ÈÁÈ �¼D꾤‰Ñð1ñA1Æ1Áù‹}ÀÁÁÁ�”©ÏÞKD‰÷D‹u¤1Ï׋U¸ÁÇ �´2`K»ö‰ÂÏ1Ê�„p¼¿¾1úò‰ÎÁÂ1þú1ÖÆA�„Æ~›(‰ùÁÎ 1ÑÖ1ñÁ‹EÌÁÁ�¼8ú'¡ê‰Ðñ1ðA�”…0ïÔ1Èø‰÷ÁÀ 1ÏÈ1Ç׋U ÁÇ�”2ˆ‰ÎÇ1Æ1þÖ‹U°ÁÎ �Œ 9ÐÔÙ‰Âþ1úA�„å™Ûæ1òʉùÁÂò1ñ1ÑÁA�„;ø|¢‰÷ÁÁ 1×Ñ1ÏÇ‹EÄÁÇ�´0eV¬Ä‰ÐÏ1È1øð‹uÌÁÈ �´D")ô‰Êø÷Ò Â1úò‹u¸ÁÂ�´—ÿ*C‰ùÂ÷ÑA�¼=§#”«D‹m¼ Ñ1Áñ‰ÆÁÁ ÷ÖÑ Î1ÖþA�¼9 “üA‰ÕÁÆA÷ÕÎD‰èA‰Í ðA÷Õ1ÈøA�¼ÃY[eD‰êD‹e´ÁÈ ð Â1òúA�¼’Ì �‰ñD‹u ÁÂ÷Ñ ÑA‰Õ1ÁA÷Õù�¼3}ôïÿ‰ÆÁÁ ÷ÖÑ Î1Öþ‹}ÈÁÆÎ�¼Ñ]„…D‰è ð1ÈøA�¼O~¨oA‰ÌÁÈ A÷ÔðD‰â Â1òúA�¼ àæ,þ‰ñD‹]ÀÁÂ÷Ñ Ñ1ÁùA�¼6C£‰ÆD‹u°ÁÁ ÷ÖÑ Î1ÖþA�¼¡NA‰ÐÁÆA÷ÐÎD‰À ð1ÈøA�¼‚~S÷‰ÊD‹]¬ÁÈ ÷Òð Â1òúA�¼ 5ò:½‰ñÁÂ÷Ñ Ñ1Áù‹}ÄÁÁ �¼7»Ò×*‰ÆÑ÷Ö Î1ÖþA�¼‘Ó†ë‰ÐÁÆ÷ÐÎ ðAñ1ÈøÁÈ UœA÷M¨AÁH‹E�I9‚3ùÿÿfnU¨fnMœfAnÇfAnÙH‹}ˆfbÂfbËflÈ[A\A]A^A_]Ã�óúUH‰åAWAVAUI‰õATI‰ÔSH‰ûHƒì(‹J…É…ÿIƒý@†ÙöÄ´M�}¿IÁïM�wL‰}ÈM�|$IÁæIÞ„óoL‰â¾@L‰ÿHƒÃ@AóoKÐAOóoSàAW óo[ðA_0èøÿÿL9óuÁH‹EÈH÷ØHÁàM�lÀD‰êAƒýƒ´AöÅ…÷…ÒtA¶AˆL$öÂ…øE‰l$HƒÄ([A\A]A^A_]ÃM‰îH‰ßL‰âAƒå?IƒæÀL‰öLóè”÷ÿÿM…í…›HƒÄ([A\A]A^A_]Ã@A‰ÏA¾€‰MÈM)þJ�|:I9öLGöH‰ÞL‰òè"çûÿK�7Et$‹MÈHƒø@whLóM)õé¾þÿÿDI‹I�t$$L‰øHƒæøI‰T$D‰êH)ðI‹LøI)ÆI‰LøA�Tƒâøƒú‚4ÿÿÿƒâø1À‰ÁƒÀI‹<H‰<9ÐrïéÿÿÿDH‰ÆM�|$L‰â‰M¼HƒæÀL‰ÿH‰EÀH‰uÈè¶öÿÿH‹EÀH‹uÈ‹M¼ƒà?I�T4ƒøI‰ÀsC¨…‡…Àt¶2Aˆt$¨t·TþfA‰Tþ„B�1ƒà?A‰D$éÿÿÿ€H‹2I�|$$HƒçøI‰t$H‹tøI‰tøL‰øH)øE�<H)ÂAƒçøAƒÿr¶Aƒçø1À‰ÆƒÀL‹2L‰7D9ørî뜋2A‰t$‹TüA‰TüëŠf.„I‰ÞM�|$éòýÿÿA‹A‰L$A‹LüA‰LüéþÿÿA·LþfA‰Lþé÷ýÿÿf.„�UH‰åAUATSH‰ûHƒìH…ÒtsI‰ÔL�jÿI÷ÜH…öuvHÇà¾àL‰k0öCPtmH‹{HÿS8H…ÀtlJ�T(H‰CL!âH‰SH‰SH‹HÂH‰H‰S HÇ@¸€cPùHƒÄ[A\A]]ÃDA½IÇÄðÿÿÿH…ötŠH‰3L‰k0öCPu“H‰÷ÿS8H…Àu”H�çŸÿ1Àë‡�óúÃff.„óúUH‰åATL‹%�’SM…ät/f„A‹\$ƒëxHcÛAÿTÜHƒë…ÛyóM‹$$M…äuÚ[A\]ÃDóo*fïɉñI‰ðf:"JJH�7IÁè fpÅH9ñ‰JDBfoñfoàH9ǃ�fo-Yô f„óofoÆfoÔfoÜHƒÇ@f8ÍfþÁ:ÌÐóoGÐfDoÂf8Å8ÈØ8ÉÈD:ÌÃóo_àfAoøfEoÈf8Ý8ÈÓfïË8ÉÃ:ÌúóoWðfDoÇf8Õ8ÊÊD8ÈÊ8ÉÚE:ÌÁ8ÈùfïÂfDoÏfAoø8ÊÁA:ÌùfïÙfEoÈ8ÊØD8ÈÈfDoÇE:ÌÁ8Èû8ÉÑfDoÏ8ÉÈfïÐfAoø8ÊÓfïËA:ÌùfEoÈ8ÊÊD8ÈÊfDoÇ8ÉÃE:ÌÁ8Èù8ÉÚfDoÏfïÂfAoø8ÊÁA:ÌùfïÙfEoÈ8ÊØfDoÇD8ÈÈ8Èû8ÉÑE:ÌÁ8ÉÈfDoÏfïÐfAoøfïË8ÊÓA:ÌùfEoÈ8ÊÊD8ÈÊfDoÇE:ÌÁ8Èù8ÉÃfDoÏ8ÉÚfïÂfAoø8ÊÁfïÙA:ÌùfEoÈ8ÊØD8ÈÈfDoÇ8ÉÑE:ÌÁ8Èû8ÉÈfDoÏfïÐfAoø8ÊÓA:ÌùfïËfEoÈ8ÊÊfDoÇD8ÈÊ8Èù8ÉÃE:ÌÁfïÂfDoÏfAoø8ÊÁ8ÉÚA:Ìù8ÉÑD8ÈÀfïËfoß8ÊÈA:ÌØfïÂ8ÊÁ8ÈùfoË:ÌÏ8ÈØfoÁ8ÈÎ:ÌÃfoñfþÄfoàH9Ç‚‚ýÿÿfpÀf:JÃf�óúUH‰åAWAVI‰öAUI‰ÕATSH‰ûHƒì‹B…Àu#Hƒþ?woH…ö…þHƒÄ[A\A]A^A_]ÃDA‰Ç¸€L�b L)øK�<™y‚ZAø‰ÇÁÇÁÊE1ÚA1ÙDÇA‰ÈA1ÐA!ÀÁÈA1ÈA�Œ ™y‚ZAð‰þÁÆDÆA‰ÐA1ÀA!øÁÏA1ÐAȉñÁÁDÁD‹E¬E1ÂE1âA‰ÄA1üAÑÂE‰àA�”™y‚ZA‰üA!ðÁÎA1ÀAЉÊÁÂDÂD‹EÈE1ÁE1ùD‹}¤AÑÁA1ôD1óE‰àA�„™y‚ZE1ûA!ÈÁÉA1øAÀ‰ÐÁÀDÀE‰ØD‹]¸E1ØA‰óE1èA1ËD‹m AÑÀA!ÓÁÊA1óA�¼8™y‚ZDßA‰ÃAÁÃE‰ÜA‰ËAü‰ß‹]´A1ÓA!ÃÁÈ1ßA1Ë‹]°D1×ÑÇ�´7™y‚ZDÞE‰ãAÁÃAóD‰îD1þ1Þ‰ÓD1ÎÑÆ1ÃD1ã�Œ¡ëÙn‰uœ‹uÌÙD‰ÛAÁÌÁÃA‰ß‰óD1óAÏA‰Æ‰Ù‹]¨E1æ1ÙD‰óE‰þD1ÁD1ÛAÁÆÑÁAÁË�”¡ëÙnÚD‰óD‹u¬ÓD‰êD1òD‹uÐD1ò1úÑÂA‰ÖD‰âD1ÚD‰uÌA�„¡ëÙnA‰Õ‰ÚÁÂE1ýAÁÏA‰Ö‹UÈDèD‹mÔAÆ1Ö‹Uœ‰ð‹u¬D1èE‰Ý1ÐE1ýÑÀA1ÝÁËF�¤ ¡ëÙnEìE‰õAÁÅEåD‹e¸D1æA‰ô‹u´E1ÔA1ÌD‰âE‰üÑÂA1ÜE1ôF�œ¡ëÙnAÁÎEãE‰ìAÁÄEÜD‹]ÈA1ó‹uÌE1ËA1óAÑÃD‰ÞA‰ÛE1óF�¼>¡ëÙn‰uÈ‹u°E1ëAÁ͉U�EûE‰çAÁÇEßD‹]¸A1óE1ÃA1ÃAÑÃD‰ÞE‰óE1ë�œ¡ëÙn‰u¸‹u´E1ãDÛE‰ûAÁÃAÁÌAÛ‹]¨1Þ‰ó‹u°1û1ÓÑÉÚD‰ëD1ãF�´2¡ëÙn‰U´‹UœD1ûAÁÏDóE‰ÞAÁÆAÞ‹]Ð1Þ‰ó‹uÈ1Ó‹UÔ1óÑÉÞD‰ãD1ûF�¬.¡ëÙn‰u°‹u¸D1ÛAÁËDëE‰õAÁÅAÝ‹]¨1Ó1Ë1óÑÉÞD‰ûD1ÛF�¤&¡ëÙn‰u¬‹uÌD1óDãE‰ìAÁÄAÜ‹]ÐAÁÎD1ÓE1Â1ó‹u´1ó‹uÈÑÉÚD‰ÛD1ó‰U¨F�¼:¡ëÙn‹UÔD1ëAÁÍAßD‰ãD1ÊA1ùÁÃDûA‰×‹U°A1ÇA1×AÑÇD‰úE‰÷E1ïF�œ¡ëÙn‰U¤‹U�E1çAÁÌEûA‰ßA1ÒAÁÇEûD‹}¬E1úE‰ïAÑÂE1çA1ßD‰U G�”2¡ëÙnE‰ÞAÁÆEúÁËEòD‹u¨A1ñ‹uœ1ÏE1ñA1ðAÑÁE‰ÏE‰áA1ÙE‰ÎG�Œ/¡ëÙnE‰ÕE1ÞAÁÅEñD‹u¸AÁËEéD‹m¤E1ðE1èA‰ÝE‰ÆE1ÝAÑÆE1ÕAÁÊG�„&¡ëÙnE‰ÌEèAÁÄD‹m´EàD‹e D1ïD1çE‰ÜA‰ýE1ÔAÑÅE1ÌAÁÉA�¼¡ëÙnD‰ÃDçÁÃß‹]Ì1Þ‹]°1ÞD‰ÓD1þA‰ôAÑÄD1Ë1ÁD1ÃC�´¡ëÙnA‰ûAÁÈÞAÁÃDÞD‹]¬D1ÙE‰ËD1ñE1ÉËA1ûÁÏÑÃB�Œ¡ëÙnA‰òDÙAÁÂDÑD‹UÌA1ÒD‰ÒD‹U¨D1ÒE‰ÂD1êA1úA‰ÓA1òÁÎAÑÃC�” ¡ëÙnA‰ÉDÒAÁÁD‹UÈDÊD‹M¤D1ÐD1ÈD1àA‰ÁAÑÁE‰ÊA‰ùA1ñC�„¡ëÙnA1ÉÁÉDÈA‰ÑAÁÁE‰ÈD‹M¸AÀ‹E�D1ÈD‹M D1ÈE‰Á1ØAÁÁÑÀ�¼8ܼ�‰EœDÏA‰ÑA ÉD‰ÈA‰ÑÁÊA!É!ðD ÈD‹M´ø‹}ÈD1ÏE‰ÁD1ÿA ÑD1ßA!ÉÑlj}ÔD‰ÇAÁÈ!×D ÏD‹MÔA�´1ܼ�D‹M°÷‰ÆÁÆþ‹}¸D1ÏA‰ÁD1÷D1×ÑÇE!Á‰}¸�¼ܼ�‰ñÁÁωÁÁÈD Á!ÑD ÉD‹M¬ù‹}´D1ÏD‹MœD1ïD1ÏA‰ñÑÇA Á‰}Љ÷E!ÁÁÎ!ÇD ÏD‹MÐA�”ܼ�A‰ñ‹u°׉ÊÁÂú‹}¨1þ‹}ÔD1æ1þ‰×ÑÆÁlju´B�´ܼ�A‰Èþ‰ÏE!ÈD Ï!ÇD ÇD‹E¤÷‹u¬ÁÉD1ÆD‹E¸1ÞD1ÆÑƉuÌ‰Ö ÎA‰ð‰ÖÁÊE!È!ÎD ÆD‹EÌD‰]�A�„ܼ�D‹E ð‰þÁÆƉЋU¨D1ÂD1ÚD‹]ÐD1ÚщU°F�„ ܼ�‰òA‰ùÁÂA!ÁAЉúÁÏ Â!ÊD ÊD‹M´DÂD‹E¤E1øE1ÐE1ÈE‰ÁA‰ðAÑÁA!øD‰MÈA‰ñA ùA!ÁE ÈD‹MÈÁÎE1ïA�Œ ܼ�D‹MœAȉÑÁÁDÁD‹E E1ðE1æE1ÈD‹MÌE1ÈA‰ÑAÑÀA!ñD‰E¬E�„ܼ�‰ÈÁÀAÀ‰ÐÁÊ ð!øD ÈD‹MÔDÀD‹E°E1ÏA‰ÉE1ÇA ÑA‰ÈÁÉAÑÇA!ñA!ÐE ÈA�¼?ܼ�Aø‰ÇÁÇDÇD‹E¸A‰ùE1ÆD‹EÈE1ÆA‰ÀAÑÆAÁÁA!ÈA1ÝA�´6ܼ�E1ÝDÎA‰ÁÁÈA ÉA!ÑE ÁAñ‹u¬A1õAÑÅE‰ëA‰ýA ÅA�”ܼ�D‰]¨E‰èA‰ýÁÏA!ÅA!ÈD‰îE‰ÍD ÆAÁÅÖE‰ëAó‹u�E‰ÝD1æD‹e´AÁÅD1æD1þÑÆ�”ܼ�DêE‰ÍA ýE‰èE‰ÍA!ýA!ÀE èE‰ÝAÐAÁÉD1Ó‰Ù‹]ÌE!ÍD‰êD‹m¨1ÙD‰ÛAÁËD1ñD ËÑÁ!û Ú�„ܼ�D‰ÃÂÁËEœÓ‹U�1‹E°1ÂD1êA‰ÝÑÂAÁÅ�„:ܼ�DèE‰ÅE ÝD‰ïE‰ÅAÁÈE!ÝD!ÏD ïA‰ÝÇ‹EÔE ÅE‰ìA‰ÝD1ÐD‹UÈE!ÅE!ÜD1ÐE‰êA‰ý1ðÑÀE âAÁÅD‹e¸F�Œܼ�ÁËEÑE‰êD‹m¬EÊD‹MœE1áA‰üE1éA!ÜA1ÉAÑÁE‰ÍG�œܼ�E‰ÑAÁÁEËA‰ùÁÏA ÙE!ÁE áEÙD‹]ÔD‹eÐD‰m¤E1ãE1ûA1ÓAÑÃD‰]ÔE‰ÓA ûE‰ÜE‰ÓAÁÊA!ÜA!ûE ãD‹eÔG�„ܼ�D‹e´EØE‰ËAÁÃEÃD‹E¸E1àE‰ÜE1ðA1ÀAÑÀAÁÄA�œܼ�D‰E¸DãE‰ÌE ÔE‰àE‰ÌAÁÉE!ÔA!øE àD‹eÌAØ‹]ÐD1ãD‹e¨D1ãD1ëÑÃA‰ÝD‰ÛD ËA�¼=ܼ�D‰mÐD‹mÔA‰ÜD‰ÛAÁËE!ÔD!ËD ãD‹e°ßD‰ÃÁÃû‹}´D1ç1÷D1ïÑÇA‰ýD‰ÏD1ßG�”ÖÁbÊD‰m´D‹mÈD1ÇAÁÈAú‰ßÁÇD×D‹UÌE1êD‹m¸A1ÊE1êAÑÂE‰ÕE‰ÚE1ÂG�Œ ÖÁbÊD‰mÌD‹m¬A1ÚÁËEÑA‰úAÁÂEÊE‰áD‹eÐE1éA1ÑE1áAÑÁE‰ÌE‰ÁA1ÙG�œÖÁbÊD‰e°D‹e´A1ùEËE‰ÑAÁÁEÙA‰û‹}ÈAÁËD1ÿ1ÇD1çA‰ÜÑÇE1ÜE1Ô‰}ÈB�¼ÖÁbÊE‰ÈAÁÀDçD‹eÌAÁÊAøD‰ïD‹m¤D1÷D1ïD‹m¨D1çE‰ÜÑÇE1ÔE1ïA1öE1̉}¬�¼ÖÁbÊD‰ÃÁÃDçAÁÉA1Íß‹]ÔA1ß‹]°A1ßD‰ÓD1ËAÑÇA‰ÜC�œÖÁbÊA‰ûE1ÄAÁÃDãD‹e¸AÁÈD‰}¨AÛ‹]ÈE1æA1ÞD‰ËD1ÃAÑÆA‰ÜC�œÖÁbÊE‰ÚA1üAÁÂDãÁÏE‰ÄAÚ‹]ÐA1üA1Ý‹]¬A1ÝAÑÅE1Ü1ÖAÁËC�œ ÖÁbÊE‰Ñ1ÁDãD‹e´AÁÁAÙD1æA‰üD1þE1ÜD‹}¤ÑÆE1ÔAÁÊB�œÖÁbÊE‰ÈD1úDãAÁÀE‰ÜAØ‹]ÌE1ÔE1ÌAÁÉ1ÙD1ñÑÁ�œ9ÖÁbÊD‰ÇDãD‹e°ÁÇßD1âE‰ÔD1êE1ÌÑÂE1ÄB�œÖÁbÊA‰ûDãAÁÃE‰ÌAÛ‹]ÔAÁÈE1Ä1Ø‹]ÈA1üÁÏ1Ø1ðÑÀB�œÖÁbÊE‰Ú‰E¤‹E¬DãAÁÂD‹e¸AÚD‰ûD‹}ÐD1ãE‰Ä1ÃA1ü‹E¨1ËE1ÜAÁËÑÃF�Œ ÖÁbÊEáE‰ÔAÁÄEÌD‹MÔE1ùA1Á‰øD1ØA1ÑAÑÁA‰ÇD‰àE1×G�„ÖÁbÊÁÀEøD‹}¸AÀ‹E´AÁÊA1Ç‹E¤E1þE‰ßA1ÆE1׋EÌAÑÆE1çAÁÌA�¼>ÖÁbÊDÿE‰ÇAÁÇDÿD‹}ÐA1ÇE1ïE‰ÕE1åA1ßAÑÇD‰ëA‰ýD1ÃG�œÖÁbÊAÁÅAÛ‹]´AÁÈEëD‹m°D1ë1óD1ËE‰áÑÃE1ÁA1ùB�´ÖÁbÊD‹UÈÁÏDÎE‰ÙAÁÁD1ÐDÎA‰Á‹E¤A1ÉE1ñD‹u¨AÑÁG�Œ ÖÁbÊE‰ÄE1ÖA1üD‰áD1ÙAÁËDÉA‰ñAÁÁDÉD‹M¬E1éA1щúE1ùD1ÚAÑÁ1òÁÎG�„ÖÁbÊA‰ÉDÂE‰ðAÁÁA1À‹E˜DÊA1ØAÑÀB�„ÖÁbÊøD‰ß1÷1ÏÁÉø‰×ÁÇ�8‰]˜‰ßH‹�xÿÿÿ‰;UÄ‹EÄMÀD‹}Àu¼D‹E¼D]”‰C‹E”D‰{‰CH‹E€D‰C H9Eˆ‚îÿÿ[A\A]A^A_]Ãf„óúUH‰åAWAVAUI‰õATI‰ÔSH‰ûHƒì‹B…Àu#Hƒþ?wqH…ö…HƒÄ[A\A]A^A_]ÃDA‰Æ¸€L�z L)ðK�<7H9ðHGÆH‰ÞH‰ÂH‰EÈèŸÃûÿE‹D$L‹MÈEÈE‰D$Aƒø@‡ÄM)ÍLËIƒý?†ðöÄËIƒý@„AM�}¿IÁïM�wL‰}ÈM�|$ IÁæIÞDóoL‰â¾@L‰ÿHƒÃ@AóoKÐAOóoSàAW óo[ðA_0è–ìÿÿL9óuÁH‹EÈH÷ØHÁàM�lÀA‹\$D‰èI�AƒýsoAöÅ…é…ÀtA¶ˆ ¨…êIÝIƒý?‡ÊE‰l$HƒÄ[A\A]A^A_]Ãf�M‰îH‰ßL‰âAƒå?IƒæÀL‰öLóèìÿÿM…턟þÿÿI‰ÞM�|$ ë€�I‹H�rHƒæøH‰D‰èI‹LøH‰LøH‰ÐH)ðI)ÆDèƒàøƒø‚zÿÿÿƒàø1҉уÂI‹<H‰<9Ârïé_ÿÿÿf�A‹D$óo#M�|$ I�L�h@"óokjóos r óo{0z0L‰âL‰ÿ¾@Iƒí@èhëÿÿI�t$`L‰êL‰ÿèÅûÿé ÿÿÿD‰ÆL‰âL‰ÿL‰MÀƒæÀD‰EÈè7ëÿÿD‹EÈL‹MÀD‰ÂK�ƒâ?HƒàÀA‰T$Løƒús4AöÀu}…Ò„òýÿÿ¶0AƒàAˆt$ „àýÿÿ·DþfA‰DþéÐýÿÿ@H‹0L‰ùI‰t$ ‰ÖH‹|0øI‰|7øI�|$(HƒçøH)ùÊH)Èƒâøƒú‚˜ýÿÿƒâø1ɉ΃ÁL‹0L‰79Ñrïé}ýÿÿ‹0A‰t$ ‹DüA‰DüéhýÿÿA‹‰ A‹Lü‰LüéþÿÿA·Lþf‰LþéþÿÿI�|$ L‰êH‰Þè¹Àûÿéþýÿÿ@óúU1ÿH‰åH�ì dH‹%(H‰Eø1ÀH�µ`ÿÿÿè¤ÄûÿHi•pÿÿÿ@BHi…`ÿÿÿ@BH…hÿÿÿHÐH…xÿÿÿH‹UødH+%(uÉÃèç»ûÿ€óú€gPþH‰O8L‰G@é«Úÿÿff.„óú€OPH‰O8L‰G@L‰OHé‡Úÿÿ€óúU1ÒH‰åAWAVAUATSH‰ûHƒìL‹gL+gLæL‹wH‹’ÂHw0’ÁH…Ò…=*þÿ¶ÉH…É…1*þÿL‰âHÁêH9ðHBÆH�TdH9ÂHCÂI‰ÅöGP…†H‰ÇÿS8I‰ÇM…ÿ„ø)þÿH‹C0K�/H‹sL‰{M‰wM�lH‰S H÷ÐI‰I!ÅL‰âL‰ïèK¿ûÿ¶KPöÁueH‹C0I�TH÷ÐH!ÐH9Ct=L‰kƒáýMåL‰kˆKPHƒÄ[A\A]A^A_]ÃDH‹HH‰ÆÿS8I‰ÇéqÿÿÿfDI‹FƒáI‰Gu+L‰÷ÿS@L‰kMå€cPýL‰kHƒÄ[A\A]A^A_]ÀH‹{HL‰öÿS@ëÏff.„�óúH‹GH…Àt)H9ðsH90sH‹@H…Àuí1ÀÃf.„¸ÃÃf„óúUH‰åAUI‰õATSH‰ûHƒìH‹GH…Àuë?fDH‹{HH‰ÆÿS@€KPM…ät&L‰àL9èsL9(s(L‹`öCPuÖH‰ÇÿS@€KPM…äuÚM…ítéŠ(þÿDH‹L‰kL‰kH‰S H‰CHƒÄ[A\A]]Ãf�óúH‹G1ÉH…Àt�H‹H)ÂH‹@HÑH…ÀuîH‰ÈÃf.„óúUH‰åAWAVI‰öAUI‰ý¿�ATSH‰ËHƒìHH‰U¨dH‹%(H‰EÈ1Àèå´ûÿL‹ ÆŽfïÀÇI‰ÄH�îLI‰D$H‹Í IÇD$I‰D$(H�ùXAÇD$IÇD$ AÇD$0IÇD$HAÇD$PIÇD$hAÇD$pIÇD$xI‰„$€IÇ„$ˆAD$8AD$XM…É„L‰ÏL‰M˜è<¸ûÿLcØM�{ L‰] L‰ÿè´ûÿL‹M˜L‰úH‰ÇL‰ÎL‰M�è¿ûÿL‹] L‰ùºH�5þIH‰E M9ûJ�<L‰]˜ICËL)Ùèå»ûÿL‹]˜L‹E ºH�5LI�CI9ÇH‰ÁI�<ICÏH)Áè·»ûÿL‹]˜L‰ùL‹E ºH�5mDI�CI9ÇI�<HBÈH)Á艻ûÿH‹} 1ö讳ûÿL‹E L‹M�ƒøÿ‰Ç„L‰E èB¹ûÿ…À… -þÿE‹<$L‹E Aƒç„ÛA¿I‹„$€1É1ÒL‰ÆE‰|$(L‰çM‰D$ ÿPA‰Ç…ÀˆNA‹D$,ƒøÿ…¥Aö$tA‹D$H�UÀVM‹œ$€L‰ñSE1ÉE1À¾RL‰çL‰êA½PjAWAÿSA‰ÆHƒÄ0…À‰�Aƒÿt-I‹„$€D‰þL‰çÿPE…íxAƒýtI‹„$€D‰îL‰çÿPL‹mÀM…í„A‹t$…ö~I‹„$€L‰çÿPA‹t$,…ö~I‹„$€L‰çÿPI‹|$`H…ÿtèÀµûÿI‹|$hH…ÿtè±µûÿIƒ|$@„ØA‹T$(…Ò…¤I‹|$8èÞ±ûÿI‹|$@èÔ±ûÿI‹|$HèʱûÿA‹D$p…À~:1Û€I‹D$xH‹<Øè³ûÿI‹D$xH‹<ØHƒÃ蘱ûÿA9\$pÙI‹|$x臱ûÿI‹„$€H‹@@H…ÀtL‰çÿÐL‰çèi±ûÿH‹EÈdH+%(…&H�eØL‰è[A\A]A^A_]ÃI‹|$ è:±ûÿéMÿÿÿ1ÿH�œÂ AƒÍÿ‰;H‰EÀé�þÿÿAƒ$$þH�M¼H�UÀL‰ç¾ècáÿÿé ÿÿÿA‹D$0I‹|$8ƒÀA‰D$0H˜H�4…èݵûÿIcT$0I‰D$8D‰t�üIƒ|$@tcA‹D$0»…À~3I‹t$@H‹}¨H��E1íè?¹ûÿéMþÿÿèõ±ûÿL�-¡H‹‰é8þÿÿºHcØ1ö)ÂH‹E¨HcÒHÁâH�<˜è¶ûÿë«1öH�M¼H�UÀL‰çè±àÿÿ…Àu‡1ÉL�-rH‰ éðýÿÿA‹D$pI‹|$xƒÀA‰D$pH˜H�4ÅèµûÿIcT$pL‹E I‰D$xL‰DÐøéòüÿÿH�=WHèh°ûÿ1öH‰ÇèŽáÿÿH�=HHI‰ÇèO°ûÿL‰þH‰ÇètáÿÿH�=2HI‰Çè5°ûÿL‰þH‰ÇèZáÿÿH�=HH‰ÆèKáÿÿH�=4oH‰Æè<áÿÿH�=oH‰Æè-áÿÿI‰ÇH…ÀtLL‰ÿè­³ûÿ�PH‰E˜H‰×H‰U èНûÿH‹U L‰þH‰Çè{ºûÿH‹M˜I‰Á‰ÈL‰ S‰AÆ/�AAÆé!ûÿÿL�=3ë«èk³ûÿL‰M¨è‚°ûÿ‹8蛾ûÿH‹M¨¾H�SÀ I‰ÀH‹©^H‹81Àèw½ûÿèB°ûÿóúHƒìHƒÄÃelf_x86_64_fini/usr/share/locale--sysroot=x86_64-pc-linux-gnuCOLLECT_NO_DEMANGLELDEMULATION%P: missing argument to -m -mips1-mips2-mips3-mips4-mips5-mips32-mips32r2-mips32r3-mips32r5-mips32r6-mips64-mips64r2-mips64r3-mips64r5-mips64r6-m486Supported emulations: *ABS*../../ld/plugin.c_onload%P: %s: plugin error: %d built in linker scriptusing external linker script:using internal linker script:%P: no input files %P: mode %s .stab$GDB_STRINGS$$GDB_SYMBOLS$%P: clone section failed: %E %P: final link failed: %E %P: final link failed Input File Remapping Pattern: %s Maps To: %s Discarded input sections Memory Configuration AttributesLengthOriginName%-16s %-18s %-18s %s 0x%-16s 0x%*s! Cross Reference Table SymbolFile No symbols ../../ld/ldcref.c%16s: %6.2f%%%s: \ %s %s: %P: error writing file `%s' %P: error closing file `%s' GNUTARGET$SYSROOT?*[remove input file '%s' -li386:x86-64i386:x64-32--shared--library=%s%P: %s: missing argument %P: unrecognized option '%s' nodefinitionsnosymbolicpure-text--defsym%P: invalid number `%s' Usage: %s [options] file... Options: @FILERead options from FILE %s: supported targets:%s: supported emulations: ELF emulations: both Report bugs to %s ignore-allreport-allignore-in-object-filesignore-in-shared-libs%P: %s: duplicated plugin %P: bad -plugin-opt option pass-through=%P: unrecognised option: %s %s%c%s%X%P: %s: %E %P: -shared not supported %P: -pie not supported descendingascending%P: invalid hex number `%s' .text-segment.rodata-segment.ldata-segmentC++typeinfo name for*typeinfo for*operator new*operator delete*P,placewarndiscardshare-unconflictedshare-duplicated%s%s%s%s%s%s.map%s-%s%s%s-%csha1sysvboth%P: invalid hash style `%s' undefsmuldefsmax-page-size=common-page-size=stack-size=%P: invalid stack size `%s' noexecstacknounique-symbolglobalauditnostart-stop-gcstart-stop-visibility=start-stop-visibility=defaultstart-stop-visibility=hiddennosectionheaderglobalinitfirstinterposeloadfltrnodefaultlibnodeletenodlopennodumplazyoriginnouniquenocombrelocnocopyrelocnorelronoseparate-codenocommonnotexttextoffnoextern-protected-datanoindirect-extern-accessnodynamic-undefined-weaknoreloc-overflowcall-nop=prefix-addrsuffix-nopprefix-suffix-ibtpltibtshstkcet-report=report-relative-relocx86-64-baselinex86-64-vlam-u48lam-u48-report=lam-u57lam-u57-report=lam-report=nomark-pltnopack-relative-relocs%P: warning: -z %s ignored GNU ld %s Supported emulations: %s %P: macros nested too deeply ,:/usr/lib/x86_64-linux-gnu/usr/bin/usr/x86_64-linux-gnu/binJavai386pepei-i386i386peppei-x86-64elf_iamcuelf32-iamcuelf_i386elf32-i386elf32_x86_64elf32-x86-64elf64-x86-64Bgrouppackage-metadatacompress-debug-sectionsdepauditdisable-new-dtagsenable-new-dtagsno-eh-frame-hdrexclude-libshash-styleno-ld-generated-unwind-infoKEYWORDSet architecturemri-scriptRead MRI format linker scriptdcdpdependency-fileWrite dependency fileforce-group-allocationSet start addressExport all dynamic symbolsno-export-dynamicenable-non-contiguous-regionsdisable-linker-versionenable-linker-versionEBLink 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-optARGfltoflto-partition=fuse-ld=no-map-whole-filesQyemit-relocsrelocatableGenerate relocatable outputjust-symbolsremap-inputs-fileremap-inputsPATTERN=FILEstrip-allStrip all symbolsstrip-debugStrip debugging symbolsno-strip-discardedtraceTrace file opensRead linker scriptdefault-scriptRead default linker scriptdTrequire-defined[=SECTION]UrPrint version informationdiscard-allDiscard all local symbolsdiscard-localsdiscard-nonetrace-symbolTrace mentions of SYMBOLstart-groupStart a groupend-groupEnd a groupno-accept-unknown-input-archno-add-neededno-as-neededassertBdynamicLink against shared librariesdycall_sharedBstaticdnnon_sharedBno-symbolicBsymbolicBsymbolic-functionsno-check-sectionsno-copy-dt-needed-entriescrefOutput cross reference tableSYMBOL=EXPRESSIONDefine a symbol[=STYLE]disable-multiple-abs-defsembedded-relocsGenerate embedded relocsTreat warnings as errorsno-fatal-warningsCall SYMBOL at unload-timeforce-exe-suffixno-gc-sectionsno-print-gc-sectionsgc-keep-exportedhash-size=Print option helpCall SYMBOL at load-timeMapFILE/DIRno-define-commonDo not define Common storageno-demangleDo not demangle symbol namesno-keep-memoryno-undefinedno-warningsno-allow-shlib-undefinedallow-multiple-definitionAllow multiple definitionserror-handling-scriptAllow undefined versionno-undefined-versionDisallow undefined versiondefault-symverCreate default symbol versiondefault-imported-symverno-warn-mismatchno-warn-search-mismatchno-whole-archiveTurn off --whole-archivenoinhibit-execnoinhibit_execnostdliboformatSpecify target of output fileprint-output-formatPrint default output formatprint-sysrootPrint current sysrootqmagicreduce-memory-overheadsmax-cache-size=SIZEno-relaxretain-symbols-filerpathrpath-linkCreate a shared libraryBshareablepic-executableno-piesort-common[=ascending|descending]sort_commonsort-sectionname|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 listexport-dynamic-symbolExport the specified symbolexport-dynamic-symbol-listwarn-commonwarn-constructorsno-error-execstackwarn-execstack-objectsno-warn-execstackno-error-rwx-segmentsno-warn-rwx-segmentswarn-multiple-gpwarn-oncewarn-section-alignwarn-textrelwarn-shared-textrelwarn-alternate-emwarn-unresolved-symbolserror-unresolved-symbolswrapignore-unresolved-symbolpush-statepop-stateprint-memory-usageReport target memory usageorphan-handling=MODEno-print-map-discardedno-print-map-localsno-ctf-variablesctf-share-types=a.out../../ld/ldmisc.c%10s%pB: in function `%pT': %pB:%pT(%pA+0x%v)[%s]%s generated%s(%s)(%s)%s%s+0x%v (type %s)%s:%uno symbol%p%ld%lu%%%c%u%s/dev/nullNULcannot find script file %s opened script file %s %s: MRI style script*default*srec%P: unknown format type %s SANE_EXPR%X%P: unknown feature `%s' GNU ld fill value%P: multiple STARTUP files ../../ld/ldlang.c__load_start_%s__load_stop_%sprogram header typePT_GNU_EH_FRAMEPT_GNU_STACKPT_GNU_RELROPT_GNU_PROPERTYFILEHDRPHDRSVERSION scriptlocalexternsyntax errorError: discardingError: poppingmemory exhaustedCleanup: discarding lookaheadCleanup: popping../../ld/ldlex.l in script in expression/ldscripts%P: EOF in comment %X%P: %s ../../ld/ldexp.c%P:%pS %% by zero %P:%pS / by zero %P:%s: hash creation failed NEXT_SECTIONMAXPAGESIZECOMMONPAGESIZE?*]%P: warning: %X%P: error: %P:%pS: %s in %s %P:%pS: %s PT_NULLPT_LOADPT_DYNAMICPT_INTERPPT_NOTEPT_SHLIBPT_PHDRPT_TLSELF_PACKAGE_METADATA%pB (%pT) .ctf.exports Set Symbol %G __start_%s__ehdr_start.stabstrCOMMON/DISCARD/.startof.%sphdr flagsphdr load address%P: can't set start address %P: target %s not found %pI ALL%P: cannot find %s (%s): %E %P: cannot find %s: %E %P: cannot find %s inside %s missing-libattempt to open %s failed attempt to open %s succeeded %P: invalid BFD target `%s' ../../ld/ldmain.c; %D: first defined here%P: %pB: reference to %s %P: %pB: definition of %s %X%P: cref alloc failed: %E .note.gnu.build-id.note.package.note.GNU-stack.eh_frame_entry.eh_frame.eh_frame_hdr (symbol from plugin)%s needed by %pB LD_LIBRARY_PATHLD_RUN_PATH/etc/ld.so.conf/usr.gnu.linkonce.t.%s/lib%s%s.so../../ld/ldelf.cmd5uuid%P: invalid data statement %P: invalid reloc statement end Allocating common symbols %*s0x%-16susing multiple gp values%P: %C: %s%s %P: %s%s %P: %pB: %s%s %P: %H: %s%s WEAKDEFWEAKUNDEFDEFAULTPROTECTEDINTERNALunknown LTO kind value %xCTF warningCTF error%s: %s .init.finiSHT_PROGBITSSHT_STRTABSHT_NOTESHT_NOBITSSHT_INIT_ARRAYSHT_FINI_ARRAYSHT_PREINIT_ARRAY*?[lib64RIGIN}IB}%.*s%s/%s%.*s%s.ctors.dtors.init_array.fini_array%P: %s not found for insert libc.so%P: %pB: bfd_stat failed: %E found %s at %s .so..rela.dyn.rel.dyn.mbind.bss.mbind.data.mbind.rodata.mbind.text.rel.gnu.warning..note.plt.tdata.interp.sdata.commentUNKNOWNPREVAILING_DEFPREVAILING_DEF_IRONLYPREEMPTED_REGPREEMPTED_IRRESOLVED_IRRESOLVED_EXECRESOLVED_DYNPREVAILING_DEF_IRONLY_EXP.gnu.warningload base%P: can't relax section: %E subsection alignment%P: looping in map_segments ../../ld/ldwrite.cinclude0x%s %W %pB %W (size before relaxing) (null)0x%V (local) %s /dev/urandomBYTESHORTLONGSQUAD[unresolved]*undef*[!provide]BEFOREAFTERFail with %d SORT (CONSTRUCTORS) CONSTRUCTORS EXCLUDE_FILE(%s) SORT_BY_NAME(REVERSE(SORT_BY_ALIGNMENT(SORT_NONE(SORT_BY_INIT_PRIORITY(Address of section %s set to CREATE_OBJECT_SYMBOLS FILL mask 0x%02x0x%V %W %s 0x%v0x%V %W RELOC %s %s+ *fill*0x%V %W %s0x%V %W load address 0x%V%-34sTARGET(%s) OUTPUT(%sLOAD %s START GROUP END GROUP INSERT %s %s 0x%V %pT %10lu B%10lu GB%10lu MB%10lu KBundefined-symbol%XNULL TREE %s+0x%vPROVIDE (%s = ("", ASSERT (, %s) (%s)%X%H:+%velf32-bigelf64-bigelf32-littleelf64-little%pS SYSLIB ignored %pS HLL ignored Stack now %d%s: file not recognized: %E \%03o%P: internal error %s %d %P: please report this bug pe-x86-64ei386pep.ca.exe___ImageBase__image_base__%P: cannot open base file %s __size_of_heap_commit____size_of_heap_reserve____size_of_stack_commit____size_of_stack_reserve____major_subsystem_version____minor_subsystem_version____subsystem____major_os_version____minor_os_version____major_image_version____minor_image_version____file_alignment____section_alignment____dll____dll_characteristics__GLOBAL_NtProcessStartupWinMainCRTStartupmainCRTStartup__PosixProcessStartupnativewindowsconsoleposixwincexbox__loader_flags__base-filefile-alignmentmajor-image-versionmajor-os-versionmajor-subsystem-versionminor-image-versionminor-os-versionminor-subsystem-versionsection-alignmentsubsystemsupport-old-codeno-leading-underscoreoutput-defexport-all-symbolsexclude-all-symbolsexclude-modules-for-implibkill-atadd-stdcall-aliasenable-stdcall-fixupdisable-stdcall-fixupwarn-duplicate-exportscompat-implibenable-auto-image-basedisable-auto-image-basedll-search-prefixno-default-excludesenable-auto-importdisable-auto-importenable-extra-pep-debugenable-runtime-pseudo-relocdisable-runtime-pseudo-relocenable-long-section-namesdisable-long-section-namesno-insert-timestampenable-reloc-sectiondisable-reloc-sectiondisable-high-entropy-vadisable-dynamicbasedisable-forceintegdisable-nxcompatdisable-no-isolationdisable-no-sehdisable-no-binddisable-wdmdriverdisable-tsaware+=-=*=/=<<=>>=&=|=^=||&&==!=<<>>LOG2CEILBLOCKSECTIONSSIZEOF_HEADERSMEMORYDEFINEDSEARCH_DIRMAPENTRYNEXTALIGNOFSIZEOFLOADADDRABSOLUTEMAXMINASSERTDATA_SEGMENT_ALIGNDATA_SEGMENT_RELRO_ENDDATA_SEGMENT_ENDORIGINLENGTHSEGMENT_START+%s __pei386_runtime_relocatorarelent: %s@%#lx: add=%li pcrel %d bit rel. %s_nmth%06d.o.idata$4__nm_thnk___nm_%s_fu%06d.o.idata$2_iname%s_rtr%06d.o.rdata_runtime_pseudo_reloc%s_ertr%06d.o.rdata.debug_rel: %s Creating library file: %s %X%P: bfd_openr %s: %E %X%P: bfd_close %s: %E LIBRARY NAME BASE=0x%lxDESCRIPTION VERSION %d.%d VERSION %d STACKSIZE 0x%x,0x%x STACKSIZE 0x%x HEAPSIZE 0x%x,0x%x HEAPSIZE 0x%x SECTIONS CLASS READ WRITE EXECUTE SHAREDEXPORTS @%d PRIVATE CONSTANT NONAME DATA IMPORTS == ; no contents available .idata.idata$__head_%s() -%s *%s .buildid%s:%s ->%s .drectve%s.%c(data)%X%P: open %s: %E %s is already loaded pe-i386ei386pe.cDllMainCRTStartup@12thumb-entryenable-extra-pe-debugdisable-large-address-awarelib%s.dll.alib%s.alib%s.lib%s%s.dlllib%s.dllldscripts/i386pe.xuldscripts/i386pe.xrldscripts/i386pe.xbnldscripts/i386pe.xnldscripts/i386pe.xaldscripts/i386pe.x%P: %s:%d: %s %s.%sLIBRARY../../ld/pe-dll.cdll stuff%P: can not create BFD: %E .edata.reloc$:-_?@$:-_?/@<>CODEBASEconstantDESCRIPTIONDIRECTIVEEXCLUDE_SYMBOLSEXPORTSHEAPSIZEIMPORTSnonameprivateSTACKSIZE%s.%s%s%s_d%06d.o.idata$5.idata$7.idata$6___imp___fu%d_@feat.00_NULL_IMPORT_DESCRIPTORDllMain_DllMainCRTStartupdo_pseudo_reloccygwin_crt0DllMain@12DllEntryPoint@0_cygwin_dll_entry@12_cygwin_crt0_common@8cygwin_attach_dllcygwin_premain0cygwin_premain1cygwin_premain2cygwin_premain3_impure_ptr_fmodeenviron__dso_handleDllEntryPoint_cygwin_dll_entry_cygwin_crt0_common_cygwin_noncygwin_dll_entry_NULL_THUNK_DATA__rtti___builtin__IMPORT_DESCRIPTOR_dllcrt1.odllcrt2.ogcrt0.ogcrt1.ogcrt2.ocrtbegin.ocrtend.olibcegcclibcygwinlibgcclibgcc_slibstdc++libmingw32libmingwexlibg2clibsupc++libobjclibgcjlibmsvcrtlibmsvcrt-oslibucrtlibucrtbasepe-bigobj-i386pei-shlpe-shlpei-mipspe-mipspei-arm-littlepe-arm-littlepei-arm-wince-littlepe-arm-wince-littlepei-aarch64-littlepe-aarch64-littlepe-bigobj-x86-64-heap-attr-export-aligncomm-exclude-symbolsSEGMENTSposix_spawnattr_initposix_spawnattr_setflagsposix_spawn_file_actions_initposix_spawnpposix_spawnclosewait%X%P: add symbols %s: %E open temporary output filepex_get_status failederror handling scriptTMPDIRTMPTEMP/tmpXXXXXXtokennterm%s %s ("end of file""invalid token"INTLNAMEPLUSEQMINUSEQMULTEQDIVEQ'='LSHIFTEQRSHIFTEQANDEQXOREQ'?'':'ORORANDAND'|''^''&''<''>'GELSHIFTRSHIFT'+''-''*''/''%'UNARY'('ALIGN_KBINDASCIZINSERT_KLINKER_VERSIONSORT_BY_NAMESORT_BY_ALIGNMENTSORT_NONESORT_BY_INIT_PRIORITYREVERSE'{''}'OUTPUT_FORMATFORCE_COMMON_ALLOCATIONOUTPUT_ARCHINHIBIT_COMMON_ALLOCATIONFORCE_GROUP_ALLOCATIONINCLUDEREGION_ALIASLD_FEATURENOLOADDSECTCOPYINFOOVERLAYREADONLYTYPETARGET_KMAX_KMIN_KSTARTUPHLLSYSLIBNOFLOATNOCROSSREFSNOCROSSREFS_TOFILLCREATE_OBJECT_SYMBOLSGROUPOUTPUTCONSTRUCTORSALIGNMODSUBALIGNPROVIDEPROVIDE_HIDDENAS_NEEDEDCHIPNEWLINEENDWORDORDERNAMEWORDASSERT_KPUBLICDEFSYMENDTRUNCATERELINPUT_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$@4ifile_listifile_p1$@5$@6$@7input_list$@8input_list1@9@10@11sec_or_group_p1statement_anywhere$@12wildcard_namewildcard_maybe_excludewildcard_maybe_reversefilename_specsection_name_specsect_flag_listsect_flagsexclude_name_listsection_name_listinput_section_spec_no_keepinput_section_spec$@13statement$@14$@15statement_liststatement_list_optlengthfill_expfill_optassign_opseparatorassignmentopt_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_listparen_script_name$@18mustbe_exp$@19$@20$@21memspec_at_optopt_atopt_alignopt_align_with_inputopt_subalignsect_constraint$@22$@23$@24$@25$@26$@27$@28$@29$@30$@31$@32atypeopt_exp_with_typeopt_exp_without_typeopt_nocrossrefsmemspec_optphdr_optoverlay_section$@33$@34$@35phdrsphdr_listphdr$@36$@37phdr_typephdr_qualifiersphdr_valdynamic_list_file$@38dynamic_list_nodesdynamic_list_nodedynamic_list_tagversion_script_file$@39$@40vers_nodesvers_nodeverdepvers_tagvers_defns@41@42opt_semicolon%s: error: too many @-files encountered %s: error: @-file refers to a directory %P: fatal error: libbfd ABI mismatch %X%P: can't set BFD default target to `%s': %E %P: unrecognised emulation mode: %s %P: can not create hash table: %E %P: %s: error loading plugin: %s ================================================== %P: --no-define-common may not be used without -shared %P: cannot open map file %s: %E %P: cannot create split section name for %s There are no discarded input sections Linker script and memory map %P: symbol `%pT' missing from main hash table %P: %pB: could not read symbols: %E Memory region Used Size Region Size %%age Used %P: cannot open dependency file %s: %E %P: link errors found, deleting executable `%s' %P: %s: final close failed: %E %P: unable to open for source of copy `%s' %P: unable to open for destination of copy `%s' %s: total time in link: %ld.%06ld remap input file '%s' to '%s' based upon pattern '%s' remove input file '%s' based upon pattern '%s' remap input file '%s' to '%s' %P: failed creating section `%s': %E %P: cannot represent machine `%s' %P: Error: unable to disambiguate: %s (did you mean -%s ?) %P: Warning: grouped short command line options are deprecated: %s %P: use the --help option for usage information %P: unrecognized -a option `%s' %P: unrecognized -assert option `%s' %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 --package-metadata[=JSON] Generate package metadata note --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi|zstd] Compress DWARF debug sections Default: %s -z common-page-size=SIZE Set common page size to SIZE -z max-page-size=SIZE Set maximum page size to SIZE -z defs Report unresolved symbols in object files -z undefs Ignore unresolved symbols in object files -z muldefs Allow multiple definitions -z stack-size=SIZE Set size of stack segment -z execstack Mark executable as requiring executable stack -z noexecstack Mark executable as not requiring executable stack --warn-execstack-objects Generate a warning if an object file requests an executable stack --warn-execstack Generate a warning if creating an executable stack (default) --no-warn-execstack Do not generate a warning if creating an executable stack --error-execstack Turn warnings about executable stacks into errors --no-error-execstack Do not turn warnings about executable stacks into errors --warn-rwx-segments Generate a warning if a LOAD segment has RWX permissions (default) --no-warn-rwx-segments Do not generate a warning if a LOAD segments has RWX permissions --error-rwx-segments Turn warnings about loadable RWX segments into errors --no-error-rwx-segments Do not turn warnings about loadable RWX segments into errors -z unique-symbol Avoid duplicated local symbol names -z nounique-symbol Keep duplicated local symbol names (default) -z globalaudit Mark executable requiring global auditing -z start-stop-gc Enable garbage collection on __start/__stop -z nostart-stop-gc Don't garbage collect __start/__stop (default) -z start-stop-visibility=V Set visibility of built-in __start/__stop symbols to DEFAULT, PROTECTED, HIDDEN or INTERNAL -z sectionheader Generate section header (default) -z nosectionheader Do not generate section header --audit=AUDITLIB Specify a library to use for auditing -Bgroup Selects group name lookup rules for DSO --disable-new-dtags Disable new dynamic tags --enable-new-dtags Enable new dynamic tags --eh-frame-hdr Create .eh_frame_hdr section --no-eh-frame-hdr Do not create .eh_frame_hdr section --exclude-libs=LIBS Make all symbols in LIBS hidden --hash-style=STYLE Set hash style to sysv/gnu/both. Default: -P AUDITLIB, --depaudit=AUDITLIB Specify a library to use for auditing dependencies -z combreloc Merge dynamic relocs into one section and sort -z nocombreloc Don't merge dynamic relocs into one section -z global Make symbols in DSO available for subsequently loaded objects -z initfirst Mark DSO to be initialized first at runtime -z interpose Mark object to interpose all DSOs but executable -z unique Mark DSO to be loaded at most once by default, and only in the main namespace -z nounique Don't mark DSO as a loadable at most once -z lazy Mark object lazy runtime binding (default) -z loadfltr Mark object requiring immediate process -z nocopyreloc Don't create copy relocs -z nodefaultlib Mark object not to use default search paths -z nodelete Mark DSO non-deletable at runtime -z nodlopen Mark DSO not available to dlopen -z nodump Mark DSO not available to dldump -z now Mark object non-lazy runtime binding -z origin Mark object requiring immediate $ORIGIN processing at runtime -z relro Create RELRO program header (default) -z norelro Don't create RELRO program header -z separate-code Create separate code program header (default) -z noseparate-code Don't create separate code program header -z common Generate common symbols with STT_COMMON type -z nocommon Generate common symbols with STT_OBJECT type -z text Treat DT_TEXTREL in output as error (default) -z text Treat DT_TEXTREL in output as error -z notext Don't treat DT_TEXTREL in output as error (default) -z textoff Don't treat DT_TEXTREL in output as error (default) -z notext Don't treat DT_TEXTREL in output as error -z textoff Don't treat DT_TEXTREL in output as error %P: bad --unresolved-symbols option: %s %P: -r and %s may not be used together %X%P: error: duplicate retain-symbols-file %P: bfd_hash_table_init failed: %E %P: bfd_hash_lookup for insertion failed: %E %P: `-retain-symbols-file' overrides `-s' and `-S' %P: SONAME must not be empty string; keeping previous one %P: invalid common section sorting option: %s %P: invalid section sorting option: %s %P: invalid argument to option "--section-start" %P: missing argument(s) to option "--section-start" %P: bfd_hash_lookup failed: %E %P: group ended before it began (--help for usage) %P: malformed remap file entry: %s %P: invalid argument to option --remap-inputs %P: invalid cache memory size: %s %X%P: --hash-size needs a numeric argument %P: no state pushed before popping %P: invalid argument to option "--orphan-handling" %P: bad --ctf-share-types option: %s %P: no file/directory name provided for map output; ignored %P: cannot stat linker map file: %E %P: linker map file is not a regular file %P%F: cannot create name for linker map file: %E %P: SONAME must not be empty string; ignored %P: missing --end-group; added as last command line option %P: -r and -z nosectionheader may not be used together %P: -F may not be used without -shared %P: -f may not be used without -shared %P: failed to add remap file %s %P: invalid --compress-debug-sections option: `%s' %P: invalid maximum page size `%s' %P: invalid common page size `%s' start-stop-visibility=internalstart-stop-visibility=protected%P: invalid visibility in `-z %s'; must be default, internal, hidden, or protected%P: invalid number for -z call-nop=prefix-: %s %P: invalid number for -z call-nop=suffix-: %s %P: unsupported option: -z %s %P: invalid option for -z cet-report=: %s %P: invalid x86-64 ISA level: %s %P: invalid option for -z lam-u48-report=: %s %P: invalid option for -z lam-u57-report=: %s %P: invalid option for -z lam-report=: %s (GNU Binutils for Ubuntu) 2.42Copyright (C) 2024 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: %s: error in plugin cleanup: %d (ignored) %P: error: linker script file '%s' appears multiple times %P: includes nested too deeply %P: cannot open linker script file %s: %E %X%P: unknown language `%s' in version information /* Script for -Ur */ /* Copyright (C) 2014-2024 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ldata 0 : { *(.rela.ldata) } .rela.lbss 0 : { *(.rela.lbss) } .rela.lrodata 0 : { *(.rela.lrodata) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .relr.dyn : { *(.relr.dyn) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RO { *(.sframe) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RW { *(.sframe) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) } .lbss 0 : { *(.lbss) } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -r */ /* Copyright (C) 2014-2024 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ldata 0 : { *(.rela.ldata) } .rela.lbss 0 : { *(.rela.lbss) } .rela.lrodata 0 : { *(.rela.lrodata) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .relr.dyn : { *(.relr.dyn) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RO { *(.sframe) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RW { *(.sframe) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) } .lbss 0 : { *(.lbss) } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -N */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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 = .); } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = .; /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -n */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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 = .); } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { . = 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) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { . = 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) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { . = 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) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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 = .); } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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 = .); } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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 = .); } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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 = .); } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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 = .); } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Default linker script, for normal executables */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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 = .); } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } out of dynamic memory in yyensure_buffer_stack()Shared library control for HP/UX compatibilitySpecify target for following input filesForce common symbols to be definedForce group members out of groupsUndo the effect of --export-dynamicEnable support of non-contiguous memory regionsenable-non-contiguous-regions-warningsEnable warnings when --enable-non-contiguous-regions may cause unexpected behaviourDisable the LINKER_VERSION linker script directiveEnable the LINKER_VERSION linker script directiveAuxiliary filter for shared object symbol tableFilter for shared object symbol tableSmall data size (if no size, same as --shared)Set internal name of shared librarySet PROGRAM as the dynamic linker to useProduce an executable with no program interpreter headerAdd DIRECTORY to library search pathOverride the default sysroot locationPrint map file on standard outputDo not page align data, do not make text readonlyPage align data, make text readonlySend arg to last-loaded pluginIgnored for GCC LTO option compatibilityIgnored for GCC linker option compatibilityIgnored for gold option compatibilityIgnored for SVR4 compatibilityGenerate relocations in final outputJust link symbols (if directory, same as --rpath)Provide a FILE containing input remapingsRemap input files matching PATTERN to FILEStrip symbols in discarded sectionsDo not strip symbols in discarded sectionsStart with undefined reference to SYMBOLRequire SYMBOL be defined in the final outputDon't merge input [SECTION | orphan] sectionsBuild global constructor/destructor tablesPrint version and emulation informationDiscard temporary local symbols (default)Don't discard any local symbolsDefault search path for Solaris compatibilityAccept input files whose architecture cannot be determinedReject input files whose architecture is unknownOnly set DT_NEEDED for following dynamic libs if usedAlways set DT_NEEDED for dynamic libraries mentioned on the command lineIgnored for SunOS compatibilityDo not link against shared librariesDon't bind global references locallyBind global references locallyBind global function references locallyCheck section addresses for overlaps (default)Do not check section addresses for overlapsCopy DT_NEEDED links mentioned inside DSOs that followDo not copy DT_NEEDED links mentioned inside DSOs that followDemangle symbol names [using STYLE]Do not allow multiple definitions with symbols included in filename invoked by -R or --just-symbolsDo not treat warnings as errors (default)Force generation of file with .exe suffixRemove unused sections (on some targets)Don't remove unused sections (default)List removed unused sections on stderrDo not list removed unused sectionsKeep exported symbols when removing unused sectionsSet default hash table size close to Write a linker map to FILE or DIR/.mapUse less memory and more disk I/ODo not allow unresolved references in object filesDo not display any warning or error messagesAllow unresolved references in shared librariesDo not allow unresolved references in shared libsProvide a script to help with undefined symbol errorsCreate default symbol version for imported symbolsDon't warn about mismatched input filesDon't warn on finding an incompatible libraryCreate an output file even if errors occurOnly use library directories specified on the command lineIgnored for Linux compatibilityReduce memory overheads, possibly taking much longerSet the maximum cache size to SIZE bytesReduce code size by using target specific optimizationsDo not use relaxation techniques to reduce code sizeKeep only symbols listed in FILESet runtime shared library search pathSet link time shared library search pathCreate a position independent executableCreate a position dependent executable (default)Sort common symbols by alignment [in specified order]Sort sections by name or maximum 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 listRead export dynamic symbol listWarn about duplicate common symbolsWarn if global constructors/destructors are seenWarn if the multiple GP values are usedWarn only once per undefined symbolWarn if start of section changes due to alignmentWarn if output has DT_TEXTREL (default)Warn if an object has alternate ELF machine codeReport unresolved symbols as warningsReport unresolved symbols as errorsInclude all objects from following archivesUse wrapper functions for SYMBOLUnresolved SYMBOL will not cause an error or warningPush state of flags governing input file handlingPop state of flags governing input file handlingControl how orphan sections are handled.Show discarded sections in map file output (default)Do not show discarded sections in map file outputShow local symbols in map file outputDo not show local symbols in map file output (default)Emit names and types of static variables in CTFDo not emit names and types of static variables in CTFHow to share CTF types between translation units. is: share-unconflicted (default), share-duplicated no emulation specific options. %P: unrecognised keyword in MRI style script '%s' %P:%pS: error: alias for default memory region %P:%pS: error: redefinition of memory region alias `%s' %P:%pS: error: memory region `%s' for alias `%s' does not exist %P:%pS: nonconstant expression for %s %X%P:%pS: section has both a load address and a load region %X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them %X%P:%pS: unknown phdr type `%s' (try integer literal) %X%P:%pS: PHDRS syntax error at `%s' fatal flex scanner internal error--no action found -z noextern-protected-data Do not treat protected data symbol as external -z indirect-extern-access Enable indirect external access -z noindirect-extern-access Disable indirect external access (default) -z dynamic-undefined-weak Make undefined weak symbols dynamic -z nodynamic-undefined-weak Do not make undefined weak symbols dynamic -z noreloc-overflow Disable relocation overflow check -z call-nop=PADDING Use PADDING as 1-byte NOP for branch -z ibtplt Generate IBT-enabled PLT entries -z ibt Generate GNU_PROPERTY_X86_FEATURE_1_IBT -z shstk Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK -z cet-report=[none|warning|error] (default: none) Report missing IBT and SHSTK properties -z report-relative-reloc Report relative relocations -z x86-64-{baseline|v[234]} Mark x86-64-{baseline|v[234]} ISA level as needed -z lam-u48 Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U48 -z lam-u48-report=[none|warning|error] (default: none) Report missing LAM_U48 property -z lam-u57 Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U57 -z lam-u57-report=[none|warning|error] (default: none) Report missing LAM_U57 property -z lam-report=[none|warning|error] (default: none) Report missing LAM_U48 and LAM_U57 properties -z mark-plt Mark PLT with dynamic tags -z nomark-plt Do not mark PLT with dynamic tags (default) -z pack-relative-relocs Pack relative relocations -z nopack-relative-relocs Do not pack relative relocations (default) out of dynamic memory in yy_create_buffer()/* Script for -Ur */ /* Copyright (C) 2014-2024 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ldata 0 : { *(.rela.ldata) } .rela.lbss 0 : { *(.rela.lbss) } .rela.lrodata 0 : { *(.rela.lrodata) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .relr.dyn : { *(.relr.dyn) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RO { *(.sframe) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RW { *(.sframe) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) } .lbss 0 : { *(.lbss) } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -r */ /* Copyright (C) 2014-2024 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ldata 0 : { *(.rela.ldata) } .rela.lbss 0 : { *(.rela.lbss) } .rela.lrodata 0 : { *(.rela.lrodata) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .relr.dyn : { *(.relr.dyn) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RO { *(.sframe) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RW { *(.sframe) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) } .lbss 0 : { *(.lbss) } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -N */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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 = .); } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = .; /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -n */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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 = .); } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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) *(.rela.iplt) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { . = 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) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { . = 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) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { . = 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) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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 = .); } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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 = .); } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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 = .); } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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 = .); } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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 = .); } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Default linker script, for normal executables */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnux32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/libx32"); SEARCH_DIR("=/libx32"); SEARCH_DIR("=/usr/libx32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/libx32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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 = .); } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } .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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -Ur */ /* Copyright (C) 2014-2024 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rel.init 0 : { *(.rel.init) } .rel.text 0 : { *(.rel.text) } .rel.fini 0 : { *(.rel.fini) } .rel.rodata 0 : { *(.rel.rodata) } .rel.data.rel.ro 0 : { *(.rel.data.rel.ro) } .rel.data 0 : { *(.rel.data) } .rel.tdata 0 : { *(.rel.tdata) } .rel.tbss 0 : { *(.rel.tbss) } .rel.ctors 0 : { *(.rel.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rel.got 0 : { *(.rel.got) } .rel.bss 0 : { *(.rel.bss) } .rel.ifunc 0 : { *(.rel.ifunc) } .rel.plt 0 : { *(.rel.plt) } .relr.dyn : { *(.relr.dyn) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RO { *(.sframe) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RW { *(.sframe) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -r */ /* Copyright (C) 2014-2024 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rel.init 0 : { *(.rel.init) } .rel.text 0 : { *(.rel.text) } .rel.fini 0 : { *(.rel.fini) } .rel.rodata 0 : { *(.rel.rodata) } .rel.data.rel.ro 0 : { *(.rel.data.rel.ro) } .rel.data 0 : { *(.rel.data) } .rel.tdata 0 : { *(.rel.tdata) } .rel.tbss 0 : { *(.rel.tbss) } .rel.ctors 0 : { *(.rel.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rel.got 0 : { *(.rel.got) } .rel.bss 0 : { *(.rel.bss) } .rel.ifunc 0 : { *(.rel.ifunc) } .rel.plt 0 : { *(.rel.plt) } .relr.dyn : { *(.relr.dyn) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .plt.got 0 : { *(.plt.got) } .plt.sec 0 : { *(.plt.sec) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RO { *(.sframe) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RW { *(.sframe) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -N */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/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 = .); } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = .; /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -n */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/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 = .); } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/lib"); SECTIONS { 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) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/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) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/lib"); SECTIONS { 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) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/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) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/lib"); SECTIONS { 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) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/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) *(.rel.iplt) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/lib"); SECTIONS { . = 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) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/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) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/lib"); SECTIONS { . = 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) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/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) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/lib"); SECTIONS { . = 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) } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/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) } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/lib"); SECTIONS { 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 = .); } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/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 = .); } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/lib"); SECTIONS { 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 = .); } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/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 = .); } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/lib"); SECTIONS { 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 = .); } .relr.dyn : { *(.relr.dyn) } . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Default linker script, for normal executables */ /* Copyright (C) 2014-2024 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/local/lib/i386-linux-gnu"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/i386-linux-gnu/lib32"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/i386-linux-gnu/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 = .); } .relr.dyn : { *(.relr.dyn) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) *(.iplt) } .plt.got : { *(.plt.got) } .plt.sec : { *(.plt.sec) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -Ur */ /* Copyright (C) 2014-2024 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rel.init 0 : { *(.rel.init) } .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) } .plt.got 0 : { *(.plt.got) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RO { *(.sframe) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RW { *(.sframe) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -r */ /* Copyright (C) 2014-2024 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rel.init 0 : { *(.rel.init) } .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) } .plt.got 0 : { *(.plt.got) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RO { *(.sframe) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .sframe 0 : ONLY_IF_RW { *(.sframe) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } } /* Script for -N */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = .; /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -n */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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) *(.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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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) *(.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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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) *(.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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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) *(.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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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) *(.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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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) *(.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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { . = 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); PROVIDE (__bss_start = .); .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (_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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z relro -z now */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z separate-code */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib"); SECTIONS { 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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(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.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Default linker script, for normal executables */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/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.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 12 ? 12 : 0, .); .got.plt : { *(.got.plt) *(.igot.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = ALIGN(ALIGNOF(NEXT_SECTION)); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = 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 (INFO) : { *(.comment); LINKER_VERSION; } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1. */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions. */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2. */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2. */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3. */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } fatal flex scanner internal error--end of buffer missedfatal error - scanner input buffer overflow%P: read in flex scanner failed out of dynamic memory in yy_get_next_buffer() --base_file Generate a base file for relocatable DLLs --dll Set image base to the default for DLLs --file-alignment Set file alignment --heap Set initial size of the heap --image-base
Set start address of the executable --major-image-version Set version number of the executable --major-os-version Set minimum required OS version --major-subsystem-version Set minimum required OS subsystem version --minor-image-version Set revision number of the executable --minor-os-version Set minimum required OS revision --minor-subsystem-version Set minimum required OS subsystem revision --section-alignment Set section alignment --stack Set size of the initial stack --subsystem [:] Set required OS subsystem [& version] --support-old-code Support interworking with old code --[no-]leading-underscore Set explicit symbol underscore prefix mode --[no-]insert-timestamp Use a real timestamp rather than zero (default) This makes binaries non-deterministic --add-stdcall-alias Export symbols with and without @nn --disable-stdcall-fixup Don't link _sym to _sym@nn --enable-stdcall-fixup Link _sym to _sym@nn without warnings --exclude-symbols sym,sym,... Exclude symbols from automatic export --exclude-all-symbols Exclude all symbols from automatic export --exclude-libs lib,lib,... Exclude libraries from automatic export --exclude-modules-for-implib mod,mod,... Exclude objects, archive members from auto export, place into import library instead --export-all-symbols Automatically export all globals to DLL --kill-at Remove @nn from exported symbols --output-def Generate a .DEF file for the built DLL --warn-duplicate-exports Warn about duplicate exports --compat-implib Create backward compatible import libs; create __imp_ as well --enable-auto-image-base Automatically choose image base for DLLs unless user specifies one --disable-auto-image-base Do not auto-choose image base (default) --dll-search-prefix= When linking dynamically to a dll without an importlib, use .dll in preference to lib.dll --enable-auto-import Do sophisticated linking of _sym to __imp_sym for DATA references --disable-auto-import Do not auto-import DATA items from DLLs --enable-runtime-pseudo-reloc Work around auto-import limitations by adding pseudo-relocations resolved at runtime --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for auto-imported DATA --enable-extra-pep-debug Enable verbose debug output when building or linking to DLLs (esp. auto-import) --enable-long-section-names Use long COFF section names even in executable image files --disable-long-section-names Never use long COFF section names, even in object files --[disable-]high-entropy-va Image is compatible with 64-bit address space layout randomization (ASLR) --[disable-]dynamicbase Image base address may be relocated using address space layout randomization (ASLR) --enable-reloc-section Create the base relocation table --disable-reloc-section Do not create the base relocation table --[disable-]forceinteg Code integrity checks are enforced --[disable-]nxcompat Image is compatible with data execution prevention --[disable-]no-isolation Image understands isolation but do not isolate the image --[disable-]no-seh Image does not use SEH; no SE handler may be called in this image --[disable-]no-bind Do not bind this image --[disable-]wdmdriver Driver uses the WDM model --[disable-]tsaware Image is Terminal Server aware --build-id[=STYLE] Generate build ID --thumb-entry= Set the entry point to be Thumb --[no-]insert-timestamp Use a real timestamp rather than zero (default). export, place into import library instead. --compat-implib Create backward compatible import libs; create __imp_ as well. --enable-auto-image-base[=
] Automatically choose image base for DLLs (optionally starting with address) unless specifically set with --image-base --disable-auto-image-base Do not auto-choose image base. (default) --enable-runtime-pseudo-reloc Work around auto-import limitations by adding pseudo-relocations resolved at runtime. --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for auto-imported DATA. --enable-extra-pe-debug Enable verbose debug output when building or linking to DLLs (esp. auto-import) --large-address-aware Executable supports virtual addresses greater than 2 gigabytes --disable-large-address-aware Executable does not support virtual addresses greater than 2 gigabytes --[disable-]no-seh Image does not use SEH. No SE handler may be called in this image %P:%pS: warning: redeclaration of memory region `%s' %P:%pS: warning: memory region `%s' not declared %P: invalid character %c (%d) in flags %P:%pS: error: align with input and explicit align specified %P: warning: address of `%s' isn't multiple of maximum page size %P:%pS can not PROVIDE assignment to location counter %P:%pS invalid assignment to location counter %P:%pS assignment to location counter invalid outside of SECTIONS %P:%pS cannot move location counter backwards (from %V to %V) %P: bfd_hash_lookup failed creating symbol %s %P: bfd_link_hash_lookup failed: %E %X%P:%pS: unresolvable symbol `%s' referenced in expression %P:%pS: undefined symbol `%s' referenced in expression %P:%pS: undefined section `%s' referenced in expression %P:%pS: undefined MEMORY region `%s' referenced in expression %P:%pS: unknown constant `%s' referenced in expression %X%P: anonymous version tag cannot be combined with other version tags %X%P: duplicate version tag `%s' %X%P: duplicate expression `%s' in version information %X%P: unable to find version dependency `%s' %P:%s: file format not recognized; treating as linker script %P: warning: -z dynamic-undefined-weak ignored %P: common page size (0x%v) > maximum page size (0x%v) %P: %s: plugin reported error after all symbols read As-needed library included to satisfy reference by file (symbol) %P: warning: CTF section in %pB not loaded; its types will be discarded: %s %P: warning: CTF output not created: `%s' %P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported %X%P: %s architecture of input file `%pB' is incompatible with %s output %X%P: failed to merge target specific data of file %pB %X%P: unable to read .exports section contents %X%P: %s does not support reloc %s for set %s %X%P: special section %s does not support reloc %s for set %s %X%P: unsupported size %d for set %s %X%P: error: unplaced orphan section `%pA' from `%pB' %P: warning: orphan section `%pA' from `%pB' being placed in section `%s' %P: warning: CTF section in %pB cannot be linked: `%s' %P: warning: CTF linking failed; output will have no CTF section: %s %P: no sections assigned to phdrs %P: bfd_record_phdr failed: %E %X%P: section `%s' assigned to non-existent phdr `%s' %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: warning: --enable-non-contiguous-regions discards section `%pA' from `%pB' %X%P: required symbol `%s' not defined %P: %s: 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 %P: --gc-sections requires a defined symbol root specified by -e or -u %P: input file '%s' is the same as output file %P: warning: could not find any targets that match endianness requirement %P: cannot open output file %s: %E %P: %s: can not make object file: %E %P: %s: can not set architecture: %E %P: invalid origin for memory region %s %P: invalid length for memory region %s %P: warning: %s contains output sections; did you forget -T? %P: %pB: file not recognized: %E; matching formats:%P: %pB: file not recognized: %E %P: %pB: --just-symbols may not be used on DSO %P: %pB: member %pB in archive is not an object %P: %pB: error adding symbols: %E %P: bfd_hash_allocate failed creating symbol %s %P: About to run error handling script '%s' with arguments: '%s' '%s' %P: Failed to run error handling script '%s', reason: %P: note to link with %s use -l:%s or rename it to lib%s %P: skipping incompatible %s when searching for %s %P: attempted static link of dynamic object `%s' %P: %pB: warning: definition of `%pT' overriding common from %pB %P: %pB: warning: definition of `%pT' overriding common %P: %pB: warning: common of `%pT' overridden by definition from %pB %P: %pB: warning: common of `%pT' overridden by definition %P: %pB: warning: common of `%pT' overridden by larger common from %pB %P: %pB: warning: common of `%pT' overridden by larger common %P: %pB: warning: common of `%pT' overriding smaller common from %pB %P: %pB: warning: common of `%pT' overriding smaller common %P: %pB and %pB: warning: multiple common of `%pT' %P: %pB: warning: multiple common of `%pT' %P: %C: warning: multiple definition of `%pT'%X%P: %C: multiple definition of `%pT'%P: disabling relaxation; it will not work with multiple definitions %X%P: bfd_hash_table_init of cref table failed: %E %X%P: cref_hash_lookup failed: %E %P: %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: warning: --package-metadata is empty, ignoring %P: warning: --package-metadata=%s does not contain valid JSON, ignoring: %s %P: warning: cannot create .note.package section, --package-metadata ignored %P: cannot use executable file '%pB' as input to a link %P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB %P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored %P: failed to parse EH frame entries %P: could not create dummy IR bfd: %E %P: plugin failed to allocate memory for input: %s %P: plugin_strdup failed to allocate memory: %s %P: %s: plugin reported error claiming file %P: failed to add DT_NEEDED dynamic tag %P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link) %P: %s: non-ELF symbol in ELF BFD! %P: unknown ELF symbol visibility: %d! %P: could not define common symbol `%pT': %E Common symbol size file %pI: no new IR symbols to claim Archive member included to satisfy reference by file (symbol) %P: %pB: could not read relocs: %E %P: %s: plugin symbol table corrupt (sym type %d) unknown LTO visibility value %x%P: %pB: symbol `%s' definition: %s, visibility: %s, resolution: %s CTF error: cannot get CTF errors: `%s' %P: invalid type for output section `%s' unrecognised or unsupported token '%s' in search path warning: INSERT statement in linker script is incompatible with --enable-non-contiguous-regions. %P: %pB: bfd_elf_get_bfd_needed_list failed: %E %P:%pS: warning: --enable-non-contiguous-regions makes section `%pA' from `%pB' match /DISCARD/ clause. %P:%pS: warning: --enable-non-contiguous-regions may change behaviour for section `%pA' from `%pB' (assigned to %pA, but additional match: %pA) %P: warning: %s, needed by %pB, may conflict with %s %P: illegal use of `%s' section %P: output format %s cannot represent section called %s: %E %P: warning: CTF section emission failed; output will have no CTF section: %s %P: failed to set dynamic section sizes: %E %P: %pB: can't read contents of section %pA: %E %P:%pS: non constant or forward reference address expression for section %s %X%P: internal error on COFF shared library section %s %P: error: no memory region specified for loadable section `%s' %P: warning: no memory region specified for loadable section `%s' %P: warning: start of section %s changed by %ld %P: warning: dot moved backwards before `%s' %P: Output section `%pA' not large enough for the linker-created stubs section `%pA'. %P: Relaxation not supported with --enable-non-contiguous-regions (section `%pA' would overflow `%pA' after it changed size). %X%P: .eh_frame/.stab edit: %E %X%P: address 0x%v of %pB section `%s' is not within region `%s' %X%P: %pB section `%s' will not fit in region `%s' %P: %pA has both ordered and unordered sections %P: map sections to segments failed: %E %P: failed to strip zero-sized dynamic sections %P: failed to record assignment to %s: %E %P: warning: CTF strtab association failed; strings will not be shared: %s %P: bfd_new_link_order failed: %E %P: warning: .note.gnu.build-id section discarded, --build-id ignored SORT_BY_NAME(SORT_BY_ALIGNMENT(SORT_BY_ALIGNMENT(SORT_BY_NAME(%P: warning: CTF symbol addition failed; CTF will not be tied to symbols: %s %P: warning: CTF symbol shuffling failed; CTF will not be tied to symbols: %s %X%P: %H: prohibited cross reference from %s to `%pT' in %s %X%P: %H: undefined reference to `%pT' %P: %H: warning: undefined reference to `%pT' %X%P: %D: more undefined references to `%pT' follow %P: %D: warning: more undefined references to `%pT' follow %X%P: %pB: undefined reference to `%pT' %P: %pB: warning: undefined reference to `%pT' %X%P: %pB: more undefined references to `%pT' follow %P: %pB: warning: more undefined references to `%pT' follow additional relocation overflows omitted from the output relocation truncated to fit: %s against undefined symbol `%pT' relocation truncated to fit: %s against symbol `%pT' defined in %pA section in %pB relocation truncated to fit: %s against `%pT'%P: warning: .note.package section discarded, --package-metadata ignored %X%H: dangerous relocation: %s %X%H: reloc refers to symbol `%pT' which is not being output %X%P: different relocs used in set %s %X%P: different object file formats composing set %s %P: warning: global constructor %s used %P: BFD backend error: BFD_RELOC_CTOR unsupported %P:%pS: ignoring invalid character `%s'%s %P: internal error: aborting at %s:%d in %s %P: invalid hex number for PE parameter '%s' %P: strange hex info for PE parameter '%s' %P: warning: bad version number in -subsystem option %P: invalid subsystem type %s %P: warning: --export-dynamic is not supported for PE+ targets, did you mean --export-all-symbols? %P: warning, file alignment > section alignment use-nul-prefixed-import-tablesenable-runtime-pseudo-reloc-v2/* Script for -Ur */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-pep/lib"); SECTIONS { .text : { *(.text) . = ALIGN(8); /* Note: we always define __CTOR_LIST__ and ___CTOR_LIST__ here, we do not PROVIDE them. This is because the ctors.o startup code in libgcc defines them as common symbols, with the expectation that they will be overridden by the definitions here. If we PROVIDE the symbols then they will not be overridden and global constructors will not be run. See PR 22762 for more details. This does mean that it is not possible for a user to define their own __CTOR_LIST__ and __DTOR_LIST__ symbols; if they do, the content from those variables are included but the symbols defined here silently take precedence. If they truly need to be redefined, a custom linker script will have to be used. (The custom script can just be a copy of this script with the PROVIDE() qualifiers added). In particular this means that ld -Ur does not work, because the proper __CTOR_LIST__ set by ld -Ur is overridden by a bogus __CTOR_LIST__ set by the final link. See PR 46. */ ___CTOR_LIST__ = .; __CTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.ctors)); KEEP (*(.ctor)); KEEP (*(SORT_BY_NAME(.ctors.*))); LONG (0); LONG (0); /* See comment about __CTOR_LIST__ above. The same reasoning applies here too. */ ___DTOR_LIST__ = .; __DTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.dtors)); KEEP (*(.dtor)); KEEP (*(SORT_BY_NAME(.dtors.*))); LONG (0); LONG (0); } /* The Cygwin32 library uses a section to avoid copying certain data on fork. This used to be named ".data". The linker used to include this between __data_start__ and __data_end__, but that breaks building the cygwin32 dll. Instead, we name the section ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ .data : { *(.data) KEEP(*(.jcr)) } .rdata : { *(.rdata) . = ALIGN(4); } .eh_frame : { KEEP (*(.eh_frame)) } .pdata : { KEEP(*(.pdata)) } .xdata : { KEEP(*(.xdata)) } .bss : { *(.bss) *(COMMON) } .edata : { *(.edata) } /DISCARD/ : { *(.debug$S) *(.debug$T) *(.debug$F) } .idata : { /* This cannot currently be handled with grouped sections. See pep.em:sort_sections. */ } .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) } /* DWARF 2. */ .debug_info : { *(.debug_info) } .zdebug_info : { *(.zdebug_info) } .debug_abbrev : { *(.debug_abbrev) } .zdebug_abbrev : { *(.zdebug_abbrev) } .debug_line : { *(.debug_line) } .zdebug_line : { *(.zdebug_line) } .debug_frame : { *(.debug_frame*) } .zdebug_frame : { *(.zdebug_frame*) } .debug_str : { *(.debug_str) } .zdebug_str : { *(.zdebug_str) } .debug_loc : { *(.debug_loc) } .zdebug_loc : { *(.zdebug_loc) } .debug_macinfo : { *(.debug_macinfo) } .zdebug_macinfo : { *(.zdebug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames : { *(.debug_weaknames) } .zdebug_weaknames : { *(.zdebug_weaknames) } .debug_funcnames : { *(.debug_funcnames) } .zdebug_funcnames : { *(.zdebug_funcnames) } .debug_typenames : { *(.debug_typenames) } .zdebug_typenames : { *(.zdebug_typenames) } .debug_varnames : { *(.debug_varnames) } .zdebug_varnames : { *(.zdebug_varnames) } /* DWARF 3. */ .debug_pubtypes : { *(.debug_pubtypes) } .zdebug_pubtypes : { *(.zdebug_pubtypes) } .debug_ranges : { *(.debug_ranges) } .zdebug_ranges : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types : { *(.debug_types) } .zdebug_types : { *(.zdebug_types) } /* DWARF 5. */ .debug_addr : { *(.debug_addr) } .zdebug_addr : { *(.zdebug_addr) } .debug_line_str : { *(.debug_line_str) } .zdebug_line_str : { *(.zdebug_line_str) } .debug_loclists : { *(.debug_loclists) } .zdebug_loclists : { *(.zdebug_loclists) } .debug_macro : { *(.debug_macro) } .zdebug_macro : { *(.zdebug_macro) } .debug_names : { *(.debug_names) } .zdebug_names : { *(.zdebug_names) } .debug_rnglists : { *(.debug_rnglists) } .zdebug_rnglists : { *(.zdebug_rnglists) } .debug_str_offsets : { *(.debug_str_offsets) } .zdebug_str_offsets : { *(.zdebug_str_offsets) } .debug_sup : { *(.debug_sup) } /* For Go and Rust. */ .debug_gdb_scripts : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts : { *(.zdebug_gdb_scripts) } } /* Script for -r */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-pep/lib"); SECTIONS { .text : { *(.text) } /* The Cygwin32 library uses a section to avoid copying certain data on fork. This used to be named ".data". The linker used to include this between __data_start__ and __data_end__, but that breaks building the cygwin32 dll. Instead, we name the section ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ .data : { *(.data) KEEP(*(.jcr)) } .rdata : { *(.rdata) . = ALIGN(4); } .eh_frame : { KEEP (*(.eh_frame)) } .pdata : { KEEP(*(.pdata)) } .xdata : { KEEP(*(.xdata)) } .bss : { *(.bss) *(COMMON) } .edata : { *(.edata) } /DISCARD/ : { *(.debug$S) *(.debug$T) *(.debug$F) } .idata : { /* This cannot currently be handled with grouped sections. See pep.em:sort_sections. */ } .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) } /* DWARF 2. */ .debug_info : { *(.debug_info) } .zdebug_info : { *(.zdebug_info) } .debug_abbrev : { *(.debug_abbrev) } .zdebug_abbrev : { *(.zdebug_abbrev) } .debug_line : { *(.debug_line) } .zdebug_line : { *(.zdebug_line) } .debug_frame : { *(.debug_frame*) } .zdebug_frame : { *(.zdebug_frame*) } .debug_str : { *(.debug_str) } .zdebug_str : { *(.zdebug_str) } .debug_loc : { *(.debug_loc) } .zdebug_loc : { *(.zdebug_loc) } .debug_macinfo : { *(.debug_macinfo) } .zdebug_macinfo : { *(.zdebug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames : { *(.debug_weaknames) } .zdebug_weaknames : { *(.zdebug_weaknames) } .debug_funcnames : { *(.debug_funcnames) } .zdebug_funcnames : { *(.zdebug_funcnames) } .debug_typenames : { *(.debug_typenames) } .zdebug_typenames : { *(.zdebug_typenames) } .debug_varnames : { *(.debug_varnames) } .zdebug_varnames : { *(.zdebug_varnames) } /* DWARF 3. */ .debug_pubtypes : { *(.debug_pubtypes) } .zdebug_pubtypes : { *(.zdebug_pubtypes) } .debug_ranges : { *(.debug_ranges) } .zdebug_ranges : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types : { *(.debug_types) } .zdebug_types : { *(.zdebug_types) } /* DWARF 5. */ .debug_addr : { *(.debug_addr) } .zdebug_addr : { *(.zdebug_addr) } .debug_line_str : { *(.debug_line_str) } .zdebug_line_str : { *(.zdebug_line_str) } .debug_loclists : { *(.debug_loclists) } .zdebug_loclists : { *(.zdebug_loclists) } .debug_macro : { *(.debug_macro) } .zdebug_macro : { *(.zdebug_macro) } .debug_names : { *(.debug_names) } .zdebug_names : { *(.zdebug_names) } .debug_rnglists : { *(.debug_rnglists) } .zdebug_rnglists : { *(.zdebug_rnglists) } .debug_str_offsets : { *(.debug_str_offsets) } .zdebug_str_offsets : { *(.zdebug_str_offsets) } .debug_sup : { *(.debug_sup) } /* For Go and Rust. */ .debug_gdb_scripts : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts : { *(.zdebug_gdb_scripts) } } /* Script for -N */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); 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 (*(SORT_NONE(.init))) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) . = ALIGN(8); /* Note: we always define __CTOR_LIST__ and ___CTOR_LIST__ here, we do not PROVIDE them. This is because the ctors.o startup code in libgcc defines them as common symbols, with the expectation that they will be overridden by the definitions here. If we PROVIDE the symbols then they will not be overridden and global constructors will not be run. See PR 22762 for more details. This does mean that it is not possible for a user to define their own __CTOR_LIST__ and __DTOR_LIST__ symbols; if they do, the content from those variables are included but the symbols defined here silently take precedence. If they truly need to be redefined, a custom linker script will have to be used. (The custom script can just be a copy of this script with the PROVIDE() qualifiers added). In particular this means that ld -Ur does not work, because the proper __CTOR_LIST__ set by ld -Ur is overridden by a bogus __CTOR_LIST__ set by the final link. See PR 46. */ ___CTOR_LIST__ = .; __CTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.ctors)); KEEP (*(.ctor)); KEEP (*(SORT_BY_NAME(.ctors.*))); LONG (0); LONG (0); /* See comment about __CTOR_LIST__ above. The same reasoning applies here too. */ ___DTOR_LIST__ = .; __DTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.dtors)); KEEP (*(.dtor)); KEEP (*(SORT_BY_NAME(.dtors.*))); LONG (0); LONG (0); KEEP (*(SORT_NONE(.fini))) /* ??? Why is .gcc_exc here? */ *(.gcc_exc) PROVIDE (etext = .); KEEP (*(.gcc_except_table)) } /* The Cygwin32 library uses a section to avoid copying certain data on fork. This used to be named ".data". The linker used to include this between __data_start__ and __data_end__, but that breaks building the cygwin32 dll. Instead, we name the section ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ .data BLOCK(__section_alignment__) : { __data_start__ = . ; *(.data) *(.data2) *(SORT(.data$*)) KEEP(*(.jcr)) __data_end__ = . ; *(.data_cygwin_nocopy) } .rdata BLOCK(__section_alignment__) : { *(.rdata) *(SORT(.rdata$*)) . = ALIGN(4); __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; } __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_*) } .idata BLOCK(__section_alignment__) : { /* This cannot currently be handled with grouped sections. See pep.em:sort_sections. */ KEEP (SORT(*)(.idata$2)) KEEP (SORT(*)(.idata$3)) /* These zeroes mark the end of the import list. */ LONG (0); LONG (0); LONG (0); LONG (0); LONG (0); . = ALIGN(8); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; SORT(*)(.idata$5) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } .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) } /* DWARF 2. */ .debug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_info .gnu.linkonce.wi.*) } .zdebug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_info .zdebug.gnu.linkonce.wi.*) } .debug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_abbrev) } .zdebug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_abbrev) } .debug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line) } .zdebug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line) } .debug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_frame*) } .zdebug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_frame*) } .debug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str) } .zdebug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str) } .debug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loc) } .zdebug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loc) } .debug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) } .zdebug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_weaknames) } .zdebug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_weaknames) } .debug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_funcnames) } .zdebug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_funcnames) } .debug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_typenames) } .zdebug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_typenames) } .debug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_varnames) } .zdebug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_varnames) } /* DWARF 3. */ .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } .debug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_ranges) } .zdebug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_types .gnu.linkonce.wt.*) } .zdebug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_types .gnu.linkonce.wt.*) } /* DWARF 5. */ .debug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_addr) } .zdebug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_addr) } .debug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line_str) } .zdebug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line_str) } .debug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loclists) } .zdebug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loclists) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } .debug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_names) } .zdebug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_names) } .debug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_rnglists) } .zdebug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_rnglists) } .debug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str_offsets) } .zdebug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str_offsets) } .debug_sup BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_sup) } /* For Go and Rust. */ .debug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_gdb_scripts) } } /* Script for -n */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); 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 (*(SORT_NONE(.init))) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) . = ALIGN(8); /* Note: we always define __CTOR_LIST__ and ___CTOR_LIST__ here, we do not PROVIDE them. This is because the ctors.o startup code in libgcc defines them as common symbols, with the expectation that they will be overridden by the definitions here. If we PROVIDE the symbols then they will not be overridden and global constructors will not be run. See PR 22762 for more details. This does mean that it is not possible for a user to define their own __CTOR_LIST__ and __DTOR_LIST__ symbols; if they do, the content from those variables are included but the symbols defined here silently take precedence. If they truly need to be redefined, a custom linker script will have to be used. (The custom script can just be a copy of this script with the PROVIDE() qualifiers added). In particular this means that ld -Ur does not work, because the proper __CTOR_LIST__ set by ld -Ur is overridden by a bogus __CTOR_LIST__ set by the final link. See PR 46. */ ___CTOR_LIST__ = .; __CTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.ctors)); KEEP (*(.ctor)); KEEP (*(SORT_BY_NAME(.ctors.*))); LONG (0); LONG (0); /* See comment about __CTOR_LIST__ above. The same reasoning applies here too. */ ___DTOR_LIST__ = .; __DTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.dtors)); KEEP (*(.dtor)); KEEP (*(SORT_BY_NAME(.dtors.*))); LONG (0); LONG (0); KEEP (*(SORT_NONE(.fini))) /* ??? Why is .gcc_exc here? */ *(.gcc_exc) PROVIDE (etext = .); KEEP (*(.gcc_except_table)) } /* The Cygwin32 library uses a section to avoid copying certain data on fork. This used to be named ".data". The linker used to include this between __data_start__ and __data_end__, but that breaks building the cygwin32 dll. Instead, we name the section ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ .data BLOCK(__section_alignment__) : { __data_start__ = . ; *(.data) *(.data2) *(SORT(.data$*)) KEEP(*(.jcr)) __data_end__ = . ; *(.data_cygwin_nocopy) } .rdata BLOCK(__section_alignment__) : { *(.rdata) *(SORT(.rdata$*)) . = ALIGN(4); __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; } __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_*) } .idata BLOCK(__section_alignment__) : { /* This cannot currently be handled with grouped sections. See pep.em:sort_sections. */ KEEP (SORT(*)(.idata$2)) KEEP (SORT(*)(.idata$3)) /* These zeroes mark the end of the import list. */ LONG (0); LONG (0); LONG (0); LONG (0); LONG (0); . = ALIGN(8); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; SORT(*)(.idata$5) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } .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) } /* DWARF 2. */ .debug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_info .gnu.linkonce.wi.*) } .zdebug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_info .zdebug.gnu.linkonce.wi.*) } .debug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_abbrev) } .zdebug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_abbrev) } .debug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line) } .zdebug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line) } .debug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_frame*) } .zdebug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_frame*) } .debug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str) } .zdebug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str) } .debug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loc) } .zdebug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loc) } .debug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) } .zdebug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_weaknames) } .zdebug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_weaknames) } .debug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_funcnames) } .zdebug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_funcnames) } .debug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_typenames) } .zdebug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_typenames) } .debug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_varnames) } .zdebug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_varnames) } /* DWARF 3. */ .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } .debug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_ranges) } .zdebug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_types .gnu.linkonce.wt.*) } .zdebug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_types .gnu.linkonce.wt.*) } /* DWARF 5. */ .debug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_addr) } .zdebug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_addr) } .debug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line_str) } .zdebug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line_str) } .debug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loclists) } .zdebug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loclists) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } .debug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_names) } .zdebug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_names) } .debug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_rnglists) } .zdebug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_rnglists) } .debug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str_offsets) } .zdebug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str_offsets) } .debug_sup BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_sup) } /* For Go and Rust. */ .debug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_gdb_scripts) } } /* Script for --enable-auto-import */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); 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 (*(SORT_NONE(.init))) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) . = ALIGN(8); /* Note: we always define __CTOR_LIST__ and ___CTOR_LIST__ here, we do not PROVIDE them. This is because the ctors.o startup code in libgcc defines them as common symbols, with the expectation that they will be overridden by the definitions here. If we PROVIDE the symbols then they will not be overridden and global constructors will not be run. See PR 22762 for more details. This does mean that it is not possible for a user to define their own __CTOR_LIST__ and __DTOR_LIST__ symbols; if they do, the content from those variables are included but the symbols defined here silently take precedence. If they truly need to be redefined, a custom linker script will have to be used. (The custom script can just be a copy of this script with the PROVIDE() qualifiers added). In particular this means that ld -Ur does not work, because the proper __CTOR_LIST__ set by ld -Ur is overridden by a bogus __CTOR_LIST__ set by the final link. See PR 46. */ ___CTOR_LIST__ = .; __CTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.ctors)); KEEP (*(.ctor)); KEEP (*(SORT_BY_NAME(.ctors.*))); LONG (0); LONG (0); /* See comment about __CTOR_LIST__ above. The same reasoning applies here too. */ ___DTOR_LIST__ = .; __DTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.dtors)); KEEP (*(.dtor)); KEEP (*(SORT_BY_NAME(.dtors.*))); LONG (0); LONG (0); KEEP (*(SORT_NONE(.fini))) /* ??? Why is .gcc_exc here? */ *(.gcc_exc) PROVIDE (etext = .); KEEP (*(.gcc_except_table)) } /* The Cygwin32 library uses a section to avoid copying certain data on fork. This used to be named ".data". The linker used to include this between __data_start__ and __data_end__, but that breaks building the cygwin32 dll. Instead, we name the section ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ .data BLOCK(__section_alignment__) : { __data_start__ = . ; *(.data) *(.data2) *(SORT(.data$*)) *(.rdata) *(SORT(.rdata$*)) KEEP(*(.jcr)) __data_end__ = . ; *(.data_cygwin_nocopy) } .rdata BLOCK(__section_alignment__) : { . = ALIGN(4); __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; } __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_*) } .idata BLOCK(__section_alignment__) : { /* This cannot currently be handled with grouped sections. See pep.em:sort_sections. */ KEEP (SORT(*)(.idata$2)) KEEP (SORT(*)(.idata$3)) /* These zeroes mark the end of the import list. */ LONG (0); LONG (0); LONG (0); LONG (0); LONG (0); . = ALIGN(8); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; SORT(*)(.idata$5) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } .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) } /* DWARF 2. */ .debug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_info .gnu.linkonce.wi.*) } .zdebug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_info .zdebug.gnu.linkonce.wi.*) } .debug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_abbrev) } .zdebug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_abbrev) } .debug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line) } .zdebug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line) } .debug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_frame*) } .zdebug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_frame*) } .debug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str) } .zdebug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str) } .debug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loc) } .zdebug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loc) } .debug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) } .zdebug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_weaknames) } .zdebug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_weaknames) } .debug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_funcnames) } .zdebug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_funcnames) } .debug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_typenames) } .zdebug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_typenames) } .debug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_varnames) } .zdebug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_varnames) } /* DWARF 3. */ .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } .debug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_ranges) } .zdebug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_types .gnu.linkonce.wt.*) } .zdebug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_types .gnu.linkonce.wt.*) } /* DWARF 5. */ .debug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_addr) } .zdebug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_addr) } .debug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line_str) } .zdebug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line_str) } .debug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loclists) } .zdebug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loclists) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } .debug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_names) } .zdebug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_names) } .debug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_rnglists) } .zdebug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_rnglists) } .debug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str_offsets) } .zdebug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str_offsets) } .debug_sup BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_sup) } /* For Go and Rust. */ .debug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_gdb_scripts) } } /* Default linker script, for normal executables */ /* Copyright (C) 2014-2024 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/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); 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 (*(SORT_NONE(.init))) *(.text) *(SORT(.text$*)) *(.text.*) *(.gnu.linkonce.t.*) *(.glue_7t) *(.glue_7) . = ALIGN(8); /* Note: we always define __CTOR_LIST__ and ___CTOR_LIST__ here, we do not PROVIDE them. This is because the ctors.o startup code in libgcc defines them as common symbols, with the expectation that they will be overridden by the definitions here. If we PROVIDE the symbols then they will not be overridden and global constructors will not be run. See PR 22762 for more details. This does mean that it is not possible for a user to define their own __CTOR_LIST__ and __DTOR_LIST__ symbols; if they do, the content from those variables are included but the symbols defined here silently take precedence. If they truly need to be redefined, a custom linker script will have to be used. (The custom script can just be a copy of this script with the PROVIDE() qualifiers added). In particular this means that ld -Ur does not work, because the proper __CTOR_LIST__ set by ld -Ur is overridden by a bogus __CTOR_LIST__ set by the final link. See PR 46. */ ___CTOR_LIST__ = .; __CTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.ctors)); KEEP (*(.ctor)); KEEP (*(SORT_BY_NAME(.ctors.*))); LONG (0); LONG (0); /* See comment about __CTOR_LIST__ above. The same reasoning applies here too. */ ___DTOR_LIST__ = .; __DTOR_LIST__ = .; LONG (-1); LONG (-1); KEEP (*(.dtors)); KEEP (*(.dtor)); KEEP (*(SORT_BY_NAME(.dtors.*))); LONG (0); LONG (0); KEEP (*(SORT_NONE(.fini))) /* ??? Why is .gcc_exc here? */ *(.gcc_exc) PROVIDE (etext = .); KEEP (*(.gcc_except_table)) } /* The Cygwin32 library uses a section to avoid copying certain data on fork. This used to be named ".data". The linker used to include this between __data_start__ and __data_end__, but that breaks building the cygwin32 dll. Instead, we name the section ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ .data BLOCK(__section_alignment__) : { __data_start__ = . ; *(.data) *(.data2) *(SORT(.data$*)) KEEP(*(.jcr)) __data_end__ = . ; *(.data_cygwin_nocopy) } .rdata BLOCK(__section_alignment__) : { *(.rdata) *(SORT(.rdata$*)) . = ALIGN(4); __rt_psrelocs_start = .; KEEP(*(.rdata_runtime_pseudo_reloc)) __rt_psrelocs_end = .; } __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_*) } .idata BLOCK(__section_alignment__) : { /* This cannot currently be handled with grouped sections. See pep.em:sort_sections. */ KEEP (SORT(*)(.idata$2)) KEEP (SORT(*)(.idata$3)) /* These zeroes mark the end of the import list. */ LONG (0); LONG (0); LONG (0); LONG (0); LONG (0); . = ALIGN(8); KEEP (SORT(*)(.idata$4)) __IAT_start__ = .; SORT(*)(.idata$5) __IAT_end__ = .; KEEP (SORT(*)(.idata$6)) KEEP (SORT(*)(.idata$7)) } .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) } /* DWARF 2. */ .debug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_info .gnu.linkonce.wi.*) } .zdebug_info BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_info .zdebug.gnu.linkonce.wi.*) } .debug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_abbrev) } .zdebug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_abbrev) } .debug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line) } .zdebug_line BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line) } .debug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_frame*) } .zdebug_frame BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_frame*) } .debug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str) } .zdebug_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str) } .debug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loc) } .zdebug_loc BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loc) } .debug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) } .zdebug_macinfo BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macinfo) } /* SGI/MIPS DWARF 2 extensions. */ .debug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_weaknames) } .zdebug_weaknames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_weaknames) } .debug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_funcnames) } .zdebug_funcnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_funcnames) } .debug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_typenames) } .zdebug_typenames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_typenames) } .debug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_varnames) } .zdebug_varnames BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_varnames) } /* DWARF 3. */ .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) } .zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_pubtypes) } .debug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_ranges) } .zdebug_ranges BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_ranges) } /* DWARF 4. */ .debug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_types .gnu.linkonce.wt.*) } .zdebug_types BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_types .gnu.linkonce.wt.*) } /* DWARF 5. */ .debug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_addr) } .zdebug_addr BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_addr) } .debug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_line_str) } .zdebug_line_str BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_line_str) } .debug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_loclists) } .zdebug_loclists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_loclists) } .debug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_macro) } .zdebug_macro BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_macro) } .debug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_names) } .zdebug_names BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_names) } .debug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_rnglists) } .zdebug_rnglists BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_rnglists) } .debug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_str_offsets) } .zdebug_str_offsets BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_str_offsets) } .debug_sup BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_sup) } /* For Go and Rust. */ .debug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.debug_gdb_scripts) } .zdebug_gdb_scripts BLOCK(__section_alignment__) (NOLOAD) : { *(.zdebug_gdb_scripts) } } %P: %H: cannot get section contents - auto-import exception import of 0x%lx(0x%lx) sec_addr=0x%lxcreating runtime pseudo-reloc entry for %s (addend=%d) %X%P: %H: variable '%pT' can't be auto-imported; please read the documentation for ld's --enable-auto-import for details %P: warning: .buildid section discarded, --build-id ignored %P: base relocation for section `%s' above .reloc section %X%P: error: %d-bit reloc in dll %X%P: can't open .lib file: %s %X%P: %s(%s): can't find member in non-archive file%X%P: %s(%s): can't find member in archive%X%P: bfd_set_archive_head: %E %P: can't open output def file %s %P: warning: cannot create .buildid section, --build-id ignored %P: cannot perform PE operations on non PE output file '%pB' Info: resolving %s by linking to %s (auto-import) %P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs warning: resolving %s by linking to %s Use --enable-stdcall-fixup to disable these warnings Use --disable-stdcall-fixup to disable these fixups %P: warning: overwriting decorated name %s with %s %X%P: cannot export %s: invalid export name %X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d) %P: warning, duplicate EXPORT: %s %X%P: cannot export %s: symbol not defined %X%P: cannot export %s: symbol wrong type (%d vs %d) %X%P: cannot export %s: symbol not found %X%P: error: ordinal used twice: %d (%s vs %s) %X%P: error: export ordinal too large: %d %X%P: unable to process relocs: %E %X%P: %s: this doesn't appear to be a DLL %s %s: 0x%08lx-0x%08lx (0x%08lx) %s dll-name: %s sym: %s addr: 0x%lx %s %P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols? %P: warning: resolving %s by linking to %s enable-runtime-pseudo-reloc-v1%X%P: error: can't use long section names on this arch %s:%d: Warning: path components stripped from %s, '%s' %X%P: unsupported PEI architecture: %s considering exporting: %s, abfd=%p, abfd->my_arc=%p %X%P: can not create .edata section: %E %X%P: can not create .reloc section: %E Warning: .drectve `%s' unrecognized Warning: corrupt .drectve at end of def file %P: error: NULL decorated name for %s _cygwin_noncygwin_dll_entry@12posix_spawn_file_actions_adddup2posix_spawn_file_actions_addcloseCannot create temporary file in %s: %s PEX_STDERR_TO_PIPE used in the middle of pipelineqñÿü~ñÿøpñÿü~ñÿépñÿÚpñÿËpñÿ¼pñÿ´pñÿ¬pñÿ�pñÿŽpñÿpñÿwpñÿopñÿXpñÿMpñÿ`pñÿü~ñÿü~ñÿü~ñÿü~ñÿü~ñÿü~ñÿEpñÿü~ñÿü~ñÿü~ñÿü~ñÿü~ñÿü~ñÿü~ñÿü~ñÿü~ñÿ§oñÿõkðÿ3îÿ>lðÿ*îÿ&lðÿÆkðÿ2îÿ:tðÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ›îÿ�îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿÛîÿ2îÿÇîÿ2îÿ2îÿ2îÿ»îÿ¥îÿÇîÿ2îÿ«vðÿ2îÿ2îÿtðÿ´îÿšîÿgîÿ2îÿ2îÿ!îÿÛîÿ`xðÿ2îÿ îÿ2îÿóîÿîÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿòîÿÞîÿ»îÿA îÿíxðÿÖ îÿ.tðÿ» îÿxðÿ2îÿ2îÿÊtðÿ.tðÿîÿàtðÿ2îÿ>îÿxðÿ2îÿîÿkîÿXîÿJîÿãîÿmîÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿ2îÿçîÿÛîÿÈîÿ�îÿ\îÿ«vðÿPîÿ.tðÿ¨!îÿA"îÿ2"îÿ&"îÿ»îÿ�"îÿ#{ðÿ.tðÿfîÿZîÿ¾îÿ$îÿ<îÿ0îÿØîÿÌîÿ²îÿ¥îÿùîÿyðÿ>îÿ»xðÿ.îÿAwðÿ» îÿKîÿîÿÖîÿ¬xðÿÇîÿ„îÿîÿÿîÿ5îÿiîÿ?îÿ$îÿâîÿ‹îÿkîÿZîÿÉîÿDîÿ4îÿÏîÿvîÿÀîÿEîÿîÿúîÿîîÿÌ îÿÀ îÿJîÿ´ îÿ¨ îÿx îÿU îÿ6 îÿ* îÿíîÿáîÿýtðÿ xðÿäîÿ¯îÿ£îÿ—îÿ‹îÿîÿîÿä îÿØ îÿÙîÿÁîÿBîÿ«îÿøîÿ„îÿnîÿVîÿ>îÿ2îÿîÿîÿîÿøîÿìîÿÔîÿ¶îÿªîÿžîÿ‹îÿâîÿÀîÿyîÿmîÿ¨wðÿÏîÿ‘îÿ…îÿŒîÿtîÿ˜îÿOîÿþîÿÈvðÿPtðÿÉîÿÖîÿ½îÿ¢îÿ.uðÿ uðÿ–îÿŠîÿ2îÿÔîÿ°îÿ¤îÿÕîÿÉîÿ½îÿ±îÿ÷îÿáîÿÃîÿ·îÿ#!îÿ(îÿîÿîÿìîÿàîÿÈîÿ¼îÿpîÿdîÿ|îÿXîÿåîÿ–yðÿÜ îÿ!îÿ)‰ðÿ[!îÿG!îÿ�ˆðÿåˆðÿÊîÿè îÿ@ îÿ[‹ñÿ8‹ñÿ#‹ñÿ‹ñÿ ‹ñÿÖ‹ñÿ¨‹ñÿŒñÿg‹ñÿ‚‹ñÿ‘ñÿô�ñÿÜ�ñÿÐ�ñÿ¼�ñÿ}�ñÿO�ñÿ$�ñÿ#‘ñÿ>‘ñÿæ<îÿ=îÿò<îÿ =îÿ8=îÿL=îÿ<îÿY<îÿ¿<îÿ‘<îÿz:P:z:P:z:P:z:P: #   @@@BY@ÿÿÿÿÿÿÿÿ÷ÿÿÿÿÿÿÿþÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿ#Eg‰«Íïþܺ˜vT2ðáÒà «Jîÿ«Jîÿ|�ñÿ|�ñÿ«Jîÿ«Jîÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ§¢ñÿ§¢ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ ¡ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ|�ñÿ'¥ñÿ|�ñÿ|�ñÿ|�ñÿ@¡ñÿ|�ñÿ|�ñÿë¢ñÿ|�ñÿ ¡ñÿ§¢ñÿ|�ñÿ ¡ñÿ°¢ñÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ­¢ñÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ~¤ñÿ~¤ñÿ€Jîÿ¢¢ñÿ~¤ñÿ~¤ñÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ¢ñÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ1¢ñÿ» ñÿ–¢ñÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ ¡ñÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]Iîÿ]IîÿÝIîÿ]Iîÿ]Iîÿ]Iîÿ” ñÿ]Iîÿ]IîÿŸñÿ]Iîÿ§Iîÿi¢ñÿ]Iîÿ&Jîÿ4žñÿ@¢ñÿÔ�ñÿÔ�ñÿË¡ñÿ8¡ñÿAŸñÿáŸñÿáŸñÿáŸñÿáŸñÿáŸñÿáŸñÿ¡FîÿáŸñÿáŸñÿáŸñÿáŸñÿáŸñÿáŸñÿáŸñÿáŸñÿbFîÿ1EîÿØ ñÿ1Eîÿ¢ðÿ‹‘ðÿpîÿ‘¥ðÿä�ðÿä�ðÿä�ðÿä�ðÿefîÿMfîÿä�ðÿä�ðÿ)fîÿåeîÿÁeîÿ~eîÿZeîÿ6eîÿeîÿàdîÿ®dîÿrdîÿ@dîÿä�ðÿä�ðÿdîÿöcîÿÐcîÿ¼cîÿä�ðÿä�ðÿä�ðÿœcîÿä�ðÿzcîÿä�ðÿIcîÿOîÿä�ðÿÑNîÿ¢NîÿqNîÿ@Nîÿ,Nîÿä�ðÿä�ðÿ NîÿìMîÿÌMîÿÑðÿ‹‘ðÿä�ðÿä�ðÿä�ðÿä�ðÿä�ðÿä�ðÿä�ðÿä�ðÿä�ðÿä�ðÿä�ðÿä�ðÿ«Mîÿy—ðÿºpîÿ±¡ðÿ“ŸðÿpŸðÿ|RîÿkRîÿZRîÿä�ðÿSŸðÿ6ŸðÿGRîÿŽTîÿä�ðÿTVîÿ7Xîÿ¢ðÿ‹‘ðÿfYîÿYîÿ®Tîÿó¢ðÿåžðÿ‹‘ðÿÓ›ðÿ/Vîÿh¡ðÿ%RîÿùXîÿá ðÿD¡ðÿÍQîÿD¡ðÿ©QîÿD¡ðÿ�¡ðÿä�ðÿä�ðÿä�ðÿä�ðÿŸðÿä�ðÿ¢ðÿM^îÿÐ�ðÿù‘ðÿ/™ðÿä�ðÿ ^îÿä�ðÿú]îÿÍ]îÿ gîÿä�ðÿfšðÿúfîÿ…›ðÿÔfîÿ®fîÿˆfîÿitîÿ˜™ðÿoîÿ:nîÿ&nîÿ8¥ðÿ„¤ðÿ/sîÿsîÿsîÿórîÿßrîÿËrîÿ·rîÿÆoîÿükîÿÀ¤ðÿˆlîÿtlîÿrpîÿ^pîÿ~¡ðÿamîÿ~¡ðÿ ¤ðÿü¤ðÿJpîÿ6pîÿúoîÿæoîÿ uîÿ¥ðÿ"pîÿø£ðÿä£ðÿšpîÿoîÿoîÿœlîÿœlîÿ²oîÿžoîÿêpîÿÖpîÿÂpîÿ®pîÿfoîÿú¢ðÿУðÿO¢ðÿ4¤ðÿ¾¢ðÿÚoîÿñtîÿšžðÿšžðÿ°qîÿÝtîÿbqîÿNqîÿ3kîÿkîÿ kîÿ÷jîÿãjîÿÏjîÿ»jîÿ£rîÿ�rîÿ{rîÿgrîÿSrîÿ?rîÿ°qîÿÝtîÿbqîÿNqîÿ3kîÿkîÿ kîÿ÷jîÿãjîÿÏjîÿ»jîÿ£rîÿ�rîÿ{rîÿ�tîÿgrîÿSrîÿ?rîÿPmîÿý ðÿëkîÿ¦ðÿ¢ðÿumîÿm ðÿƒ¢ðÿÓ ðÿšžðÿšžðÿØ¥ðÿGkîÿ[kîÿ�tîÿç¥ðÿokîÿŒkîÿ¥kîÿÆkîÿÕkîÿÄqîÿæqîÿ&rîÿvqîÿ£ðÿ\¡ðÿ\¡ðÿ\¡ðÿ\¡ðÿ\¡ðÿ\¡ðÿ\¡ðÿ\¡ðÿ\¡ðÿk“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ¤ñÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿa“îÿ}“îÿ}“îÿa“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ¤ñÿ}“îÿ}“îÿ}“îÿ}“îÿ¤ñÿ¤ñÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ¤ñÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿa“îÿ}“îÿ}“îÿa“îÿ}“îÿ}“îÿ}“îÿ}“îÿ}“îÿ¤ñÿ}“îÿ}“îÿ}“îÿ}“îÿ¤ñÿ¤ñÿh°ðÿø±ðÿø°ðÿè¯ðÿè¬ðÿè¬ðÿè¬ðÿ¨®ðÿX²ðÿN•îÿ·³ðÿs³ðÿæ•îÿæ•îÿæ•îÿسðÿ³ðÿæ•îÿW³ðÿæ•îÿˆ³ðÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿ ´ðÿæ•îÿé³ðÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿæ•îÿw•îÿX¯ðÿαðÿè¯ðÿØ®ðÿØ«ðÿØ«ðÿØ«ðÿ˜­ðÿH±ðÿ>”îÿ0¯ðÿ³ðÿÀ¯ðÿ°®ðÿ°«ðÿ°«ðÿ°«ðÿp­ðÿ ±ðÿ”îÿ\’îÿ}’îÿtµðÿ�³ðÿ4µðÿµðÿeµðÿVµðÿ®”îÿ®”îÿ¯µðÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ"´ðÿ¤³ðÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ®”îÿ–µðÿä‘îÿe¶ðÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿ϶ðÿº’îÿº’îÿº’îÿº’îÿº’îÿ»µðÿ»µðÿQ·ðÿâ·ðÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿº’îÿÅ·ðÿº’îÿ¨·ðÿpop_stat_ptrpush_stat_ptr !"#$%&&'()*+,-./01234##56789#:;<#=#####>###########?##@######ABCDEF…HIJKÖLMN×…çãÝèÞäßëåÀìÀàét‡áâî÷êïñòô ýùõø…úöóûüþEF†HIJKLMNÁÁÒÖ/3?1 042IÒu&&B5'6S(c7TdvOPQRSTUVWXYZ[\]^_``abcdefghijkk]lm]]nopqr]stu]]]]]]O]Ov]kkkkkk]]]]]]]]]]]]]]wxyz{|}~€� !"‚ƒ„……'†‡ˆ‰Š‹Œ�Ž��‚‚‘‚‚’‚“”•‚‚–—‚‚‚‚‚‚˜‚™š‚›œ�ŽžŸ‚‚‚‚ ‚¡¢£‚¤¥‚‚A¦C§¨¨©ª«¨¬¨­¨¨¨¨()®¯¨°±²¨³´¨µ¶¨·¸¨¨¨¹º»¼¨¨¨¨¨¨¨½¨¾¿¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ABC¨wÃÀÃÃ&I&*&X&+:zB;){<Y,&=& LIIMIpqBNbBsBQt…ÄÅÃhÀÃÃIIiI?IÌͧBBOB€B�¨ŸˆxoP ¥p¦¡[]¢^¬Iµ­¶\_Ò·…ÓBIyÄÅBÚ Ã…ÛÀÃÃØØØÕ&…&…Ö`……zI&a&ÙIÙBI&ÇBçÚÆBÇÈ…IÉ¡ ¢ÙBÙÊËÚ{Ã…øÀÃÃØØØm|ú&g&nØØØIIÙIÙ}BBÙBÙÓ~ÓéÇêÈ…É…8~€Ù�ÙÊËÑÑÑÙ9ÙÓûÓÑÑÑÑÑÑ&&&Ù&ÙÏ‚ƒe„…†Îh‡fˆÑÑÑÑÑÑÙ‰Ù&Š&‹Œ&�&ŽOW��‘’“”•–—˜™š›œ�žŸ ¡¢Ù£Ù¤¥¦§¨©……ª«¬­®¯°±²³Ù´Ùµ¸¹º»¶·¼½¾¿À !Á"ÂÃÄ#ÅÆ"ÇÈÉ$%ÊËÌ"ÍÎÏÐÑÒÓ&&Ô"ÕÖרÙ"ÚÛÜÝÞ"CCCßàáâãäCCCCCCåæçèéêëìíîïðñòóôõö÷øùýþÿCCCCCCGGGGHGIGGJú K  J û üJGIGIGGJJ !"#JÑÑÑ$%&'()ÑÑÑÑÑÑ*+,-‰.‰/0123456789:;<=>?@ÑÑÑÑÑÑABC‰D‰EFGHIJKLMNÄOÄPQRSTUVWXYZ[\]^_`abcdÄeÄCCCfghijnCCCCCCokpqælærstxyz{|u}~mv€�‚ƒCCCCCC„w…æ†æîî‡îîîˆîîîîî‰îŠ‹Œ�Ž��îîîîî‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­î®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂîîîùùÃùùùÄùùùùùÅùÆÇÈÉÊËÌùùùùùÍÎÏÐÑÒsrqnmlkji…dcba`_^]\[ZYXùWVUTSRQPONMLKJIHGFEDCùùùîîBîîîAîîîîî@î?>=<;:7îîîîî6543210/.-,+*)('&%$#"! î    îîîùùÿùùùþùùùùùýùüûø÷öõôùùùùùóòñðíìëêéèçæåäãâáàßÞÝÜÛÚÙØ×ÖÕùÔÓÒÑÐÏÎÍÌËÊÉÈÇÆÅÄÃÂÁÀùùùGGGGGGGGGGGÂÂÂÂÂÂÂÂÂÂÂÆÆÆÆÆÆÆÆÆÆÆÍÍÍÍÍÍÍÍÍÍÍÏ¿ÏÏÏÏÏÏÏÏÏÐÐÐÐÐÐÐÐ ¾½¼  » º¹¸@@@@@@@@@@@BB·BBBBBD¶DDDDDDDDDFµFFFFFFFFFkkkkkkkkkƒ´ƒƒ„„³²„„±„„ŠŠÁÁÁÁÁÁÁÁÂÂÂÂÂÂÂÂï°ïïïïïïïïïú¯úúúúúúúúúî®îîîîîîîîîù­ùùùùùùùùù¬«ª©¨§¦¥¤£Ÿž�œ›š™˜—–•”“’‘��Ž�Œ‹Š‰ˆ‡†…„ƒ‚�€}|{zyxwvutsrqpolkjihgfedcba`_^]\[ZYXVUTSRQPNMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! „…    ÿþýüù÷öõôóòñðïîíìëèAåäãâáàßÞÝÜÙØ×ÔÑÐËÊÉÈŒ‹ÅÃÀ¿¾½¼»º¹¸´³²±°¯®«ª©¤£ž�œ›š™˜—–•”“’‘��Ž�Œ‹ÎÌ…Ö‚~}|yxwvurÜonmlÒjgfeZWVUREA>98.-ÕÔÓÎÌÖ ÎÌ   ÿðíæÜÛÕÔÓÒÎÌÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÈ$$ccÇ  /-,/,-,1- 1,0 È,,3703556x9867 865889ÇV ;V`;^eenp€;xo ;;^np;oŽ^€!h`hŽq‡‡hq’h q‰‰’ hh# $…iŸijj–jjt¸iŸtij¸…iit–jjktk¦ŒŒk���°°kkŒ�Ÿ�²��²É¤�›¤œ¦�)¼)ô�›�œ¼�¼ôðÉ%�ðóóð›œð�øGø›�.ˆ.Gž'pž4p†4%%%0ˆ0ž‡(H ž %I%H[ !x!IH%  [! ]x†!!%]%%‡)¡[&&&è*]& &èØØØ&^L&M&+&&¥¡^LØMØùLMù¢¥Ñ,-.&/&ØÑØ^**+Š+Š+01* 4+56¢**++7 8TTTŠ9ŠÇ;ÇTTTTTT<Ç=Ï?ÏAÇÇÇÏBCÏEGHIJKÏÏLMNTTTTTT___ORTUVZ______\_]^_`_a_bcdefghi_klmoprs______t_u_v_x_{|}~y_gggy€ƒ…†gggggg‡g‰Š‹gŽ�g�‘“gg”•–g˜™šœ�žŸgggggg g¡¢¤¥¦g¨©«­®g~~~¯°±´µ¶~~~~~~·¸¹º¼½¿ÀÂÄÇÈÉËÌÔÕÖרÙÛÜÝÞ~~~~~~‹‹‹ßàáâãä‹‹‹‹‹‹ã‹Úåæ‹çè‹éÚêíîïÚð‹ñòóôõöð‹‹‹‹‹‹÷‹øùúûü‹þÿ‹ÑÑÑ   ÑÑÑÑÑÑ ÑÑ !"#$&ÑÑÑÑÑÑ'()Ñ*Ñ+,-./0123456789:;<=>?@ACDEFGHIJLNCCCOPQRTVCCCCCCWUXYCUC[]^`acde_fgU_hijklCCCCCCm_nCoCuupuuutuuuuuuuvw{|€�uuuuu‚ƒ„…†‡ˆ‰Š‹Œ�Ž�‘“”•–˜š›œ�žŸ ¡¢u£¤¥¦§©«¬­®°±²³´µ¶·¸¹»uuu……¼………½……………¾…¿ÀÁÂÃÄÅ……………ÆÇËÍÐÑ þüø…÷öôóñíìëêèçæåäãâáàßÞÝ………ïïÜïïïÛïïïïïÚïÙØÖÕÔÒÐïïïïïÏÎÍÌËÊÉÈÇÆÅÄÃÂÀ¿¾½¼»º¹¸·¶µ³²±ï¯­«ª©§¦£Ÿž�œš˜–•”’‘�Žïïïúú�úúúŒúúúúú‹ú‰ˆ„ƒ~}úúúúú|{yxtsrnmljihgfedcba`^]\ZYXWVúTSQPNMLKJIHGFEDCBA@?>úúúÔÔÔÔÔÔÔÔÔÔÔÕÕÕÕÕÕÕÕÕÕÕÖÖÖÖÖÖÖÖÖÖÖ×××××××××××ØØØØØØØØØØØÙÙÙÙÙÙÙÙÙÙÙÚ=ÚÚÚÚÚÚÚÚÚÛÛÛÛÛÛÛÛÜ<;:ÜÜ9ÜÝ765ÝÝÝÝÞÞÞÞÞÞÞÞÞÞÞßß4ßßßßßà3àààààààààá2áááááááááâââââââââã1ããää0/ää.ääååææææææææççççççççè-èèèèèèèèèé,éééééééééê+êêêêêêêêêë*ëëëëëëëëë)('&%#"!      ÿþüûúø÷öõôóòñðïîíëêéçåäãâáàßÞÝÜÛÚÙÖÕÔÓÒÑÐÎÍÌËÊÉÈÆÅþ½¼»º¹¸·¶µ´³²±°¯®­¬«©¦¥¤£¢¡ Ÿ�œ›š™˜—–•”“’‘��Ž�…„�€~}|{zywvutsrjihgfedcba`_\ZYXWVUTSRQPONK@>=<;:98765321/-,('$#  ÿþýüûúù÷öõòñïîíìëêéèçæåäãáàßÞÝÜÛÍÌÆÀ¿»º¹·¶µ´³±¯­¬«ª©¥£¢¡š—•”“‘ˆƒ�}|vusrmld\ZYRQPNLKFEB@?>=<:42.+)" ÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓQ¡ñB“oqä5†×`aa]aaYEaaDCaBUŽßaaBa?]Y.[\X*i-rwnmr5Ÿ839a6aKGaaa>aF/AEa¨aa-,a+·s�aaW*¬a¯¿ãçú§°¨·è $a{aaa#7ëa¿! ÂÉÐa¸4Áåaa579dä¤öæâäøóóúåôðÿ5aaaa[CaaaUaaaaaéaÿé÷æðåñèææßìÝÜàÜÞèßEËÛM/ÛÙÎWÙÛÏÝÝÑØ[ÄØÛÙÇÇÆa«°a¶a‰aaËïìaÕaaaÔ‰”ŸÈ½ÛÁ¿.ÈÈ^½ˆ²»°p»½ÀµÂ»§»½®aÔa½Y’˜³çé²¶¥¦´£´§¯°®¯š�†¬æ…‰z{yˆ|ƒ„‚ƒpe�’š›‘˜Ÿ–Œ‹‰–€†‚~—–€—haa�}‰†‡|††u†}s‚l|suhwusu~hbchZka^]XdZW]deUeY]PTNQAXYYYHAXMUSJFMOX=>@5F:5F<CDE@5Ù>=1;22)865-$%(Ø þ  ùúü! "  ‘“–ÿþúîþòïâæÐŲĭ›�‡ˆ…uuravW ýðùööøæû÷ùòûðõñðèìç÷âäìàðü¿»ÉR¹¿´½ÁÃÀ¿½Ì»»Éĺ·«ÅƒÑ³á³Áı¾´¢±º´¨º²µ³ž£´«¥ž°¬¡¦žž¥©”Ÿ¥’–Ÿ¢ˆôˆš‡”Š“�‹†r€zt€|qpw{reljcr¢rsAGE>òLMXYeeZcGS`P'²gMZHPXXHVFEg·Á½DHzļÎ÷òèý ( 0*6GJKNNETBWQJ@V\P_j\@EBe]xznd€mx�Ž…ƒy‡€~r}‡�‹€¤‚¡Ÿ‘Œ¤Ÿ©«±¯¥³ª±­¡¢«¦¾ºÄÆÆ¨ªªÒȹÔļ¾ÐËÓÔ×äÖäØÙãëèìãòôæî÷ëöìûíýþ!ýÿ *a$((!)3&,.+/976D(:::>=IEOSTX>PL]b`Sa[_Vfbc`e[bReTswikz{qgƒv„}Ž�„Œ“‘…•�}~��Œ���’—‡“£›ž�¥©´¬œ¬Ä¼¸¸¸½¹½Ò¿Á½²³ÆÇËÉÅÏÎÞÙÛÌÚééóæôöêéúùúøõô    "' %*(/.(!-66F:61G=??PGMHJaBMXcny„Œ”œ§¯ºÅÎÒÛÝåíø    ÔÔÓÕÕÓÓ Ó ÖÖ×רØÓÓÓÓÓÓÙÚÛÓÓÓÓÓÓÓÛÛÓÓÓÓÓÓÓÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÓÛÛÓÓÓÛÓÙÛÓÓÓÓÛÜÛÓÓÓÙÚÝÓÓÓÓÓÓÓÓÝÓÓ_ÓÓÓÓÓÓÝggggÝÝÝÝÝÝÝÝÝÝÓÓÓÓÓÓÓÞßÓÓàßß__áÓÓÓÓß‹‹‹‹‹ßßßßßßßÓÓÓ‹‹‹‹‹ßßßßßßÓßâÓâââââÓââââââââââââââââÓÓãÓÓÓääääÓÓÓÙÓÚÛÛÓÓÓÓÓÛÓÓåÓÓÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÓÛÛÓæçÛÓÝÝÓÓÓ__ÓåÓÓÓÓÓgggÝÝÝÝgÝÝÝggÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÞÓßßààá‹‹‹ßß‹‹ßßßßßßßßßßßßߋߋ‹ßßßßßßßßßßßßââââââââââââââââââââââââãäÓäääÛåÓÓÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛæçÛÝÓÝgÝÝÝÝÝÝÝgÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßâââââââââââââââââââäääÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝßßßßßßßßßèßßßßßßßßßßßßßßßéßßßßßßßâââââââââââââââââââäääÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝßßßßßßêèßßßßßßßßßëéßßßßââââââââââââââäääÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝßßßßßßßßßßßßßââââââââââââääÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝßßßßßßßââââââââââÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÓÝÝÝÝÝÝÝÝÝÝÝÝÝßßßßßßââââââââÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÓÝÝÝÝÝÝÝââââââââââÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÝÝÝÝÝÝÝÝâââââââââÛÛÛÛÛÛÛÛÛÛÛÛÝÝÝÝÝÝâââââââââÛÛÛÛÛÛÛÛÛÛÛÝÝÝÝÝÝâââââââââÛÛÛÛÛÛÛÛÛÛÝÝÝÝÝÝââââââÛÛÛÛÛÛÛÛÛÛÝÝÝÝÝÝÝââââââÛÛÛÛÛÛÛÝÝÝÝââââÛÛÛÛÛÛÛÝÝÝÝââââÛÛÛÛÛÝÝââââÛÛÛÛÛÝÝâââÛÛÛÛÝâââÛÛÛÛÝââÛÛÛÛÝââÛÛÛÛÝÛÛÛÛÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓÓ¶¶ÉÈÆ¹¸ƺ±Æ*)Æ !±±+,Æ&±±±±±±±±±±±±±±±±±±Æ{y(Æ'¹È±*)ȱȱǹǺ´#*) !´"+,$&´´´´´´´´´´´´´´´%('Љ°#°",$&°°°°°°°°°°°°°%°°°°°°°°°°°¶¶¶¶¶&ƶ¶¶¶¶¶¶¶¶¶¶¶¶¶ÆÁÀ»Âÿ¿¿¿ÄŹ·º±±±±±±€±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±²± ´ ´´´€´´´´´´´´´´´´´´´´´´´´´´´ ‰‰°‹Œ°°°°°°°°°°°°°°°°°°°°°°°°°°¶¶€¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶À¿¿¿¿±±±±±±±±±±±±±±±±±\±±±±±±±±F=±>±±±±±±±±±±±±±±±±±±±±|z³²±´´´´´´´´´´´´´´´´=>´´´´´´´´´´´´´°°°°°�°°°°°°°°°°°°°°°°ž°°°°°°°°°°¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¿¿¿±9±±±±3±±±±±±±±±±±±±±±±±±±C±±±±±±±±±±±±±±±±±±±±´9´´3´´s´´´´´t´´´C´´´´´´´´´´´u°°°’š‘°°°œ•˜°°�°°°°°£«¢°°®¦©°°¯°°¶¶c¶¶¶X¶¶¶†¶a¶_¶¶l¶¿¿¿±V5±±2±±±A±^±L±±±K±±±±±±±±±±±±±±±±±±±±±±±±±´5´2´´´r´´´´´´´´´´´´´´´´°“�°°°œœ—°›°°¤¡°°®®¨°­°d¶¶¶¶¶¶¶¶¶¶b¶`¿¿½±±±@W±±±B±ƒ±±U±4±±-±±±0J±±±±±±G±±±]H±±´´´@´´´ƒ´4´´´p´0´´´´G´´°°B™°–°°°¬ª§°@¶¶¶ƒ¶¶¶¶¶¶¶¾¼±;±±±N±±~±±±±±f±±i„±±±±±xY±1±´;´´´N~´´´´i„´´´x´°°~°°°°¶¶¶~¶¶„o¶¶<±ˆ±±±±±:?±±±±±±±T±±‚±<´ˆ´:?´´´q´´‚Ž�”Ÿ ¥¶¶¶¶¶¶¶¶±±±±±±±±±±±±±±±Mµ´´´´´´´¶¶¶¶¶¶¶¶¶n±±±±±/±vw±±±±I±±´´´vw´´´¶¶¶¶¶¶¶¶¶±±±±±g[±±±±±´´g´´´¶¶¶¶¶¶¶¶¶±±±±±±±±.±±´´´´´´P¶‡¶¶¶¶¶j±±±±±±Z±E±´´´´E´¶¶¶¶¶¶±±±±±±±h…D´´´´h…D¶¶e…¶¶±±±±±±±´´´´¶¶¶¶�±8±±±±�´8´¶¶¶¶±±±±±´´¶¶k¶6±±±±6´¶¶¶±±±±´¶}¶±±±±´¶¶±±±±´Om7±R±7Q±±S   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQyylexuv€‰w†‡ˆ‘𣱲§¨¥¦³©pqrØ>Œ!">012ABCDEGHIJSTUV^_`abcdijk}Šœ´¾ÀØÚåæèê 'Gmtuvwxz{|€‚ƒ„‰Š‹ª Ö&&&Š�Ž�$%>"Ž�%>>34&&¤>&&&&&&&&&&&&µ&Á&›œ×�¤ &'(678@FRWXYZ[\]egw}~™ ¡ð®­¬ð¯°yîïî?œ$?œ¿¶GÛÜݤ¤¤�¤çéë븹&¤&·> ›« ›ððð&&&&&ñ&&ìíììì&&ìì&&&&ðð !"#› ›ð››› ›ð›››ð >%%œŠ�Ž�?œ?GOjÀù?›��³Þ¤?›Ù›�������Ù�Ù›ë���sº¸�ð°!ðð©ðð�ððððð&ð&ðððððððððððððððððððððððððððððîîî'œœŒœ#ú¤þ%&âßݤ¤ë&s›�›�?%›��››���››�›�����%�>Œœ&)ððð› ãäÛ�»&sðððò�ðððœ(&KLMNOPQ�&&nô¿c n�äeà%º½&����›���?%%& �ð&'õ%ô>&&� Ù�º¼ðœ(Qð�ð&—öo÷¿ððœîgá�º�? (�ð÷&ÿ?�� �ð&�“”•øð>î�ðû��> *+,-./59;=Gfhl}’–˜œžÂÃÄÅÈËÌÎÑÒÓØ?&&&¤&Ï&&&9:;<=ÄÆÊ&9žÅÎ?&×  =lÄÄ9ÃÐÔî&ÍÇÂÉ&&&&&ŸÙÊ&Ê&üî>nó&���&�Ò�ðË��Â9:Ä9:ÄÄÄ9<Æ�ŸÊ �Ò Ã%›�Â&&�&&���&&�ó? Õ�ÄÄÄÄÃà Ô��������Õ Ù×������ýÕÙÙ� ]ú¼»¹ÄÆ=�ÝöñònøK*>×M‘›œ�ž»ÕŸ×¼ ¡Ó¢°Ï£¤¥Ð!h•@ÞAàáâV»'_ºóôBCìDíEï ÑÊÿè>UWxN²ãA´k�.µéçèìÈ „Æ+DFØQ¶Eï!Cw GH±qr «ýý¸ÿýýýýûýýýýýýýý2ýýýý ý%þýýýý-þòÿý‚ý~þŒl ýýý_þ9ýýjýýý^ýýõÿýýoýôÿ!ÿý]ýÅýýýýýý"ýýýýýýÿ›ý§ÿý´ÿýýýýÍýýýýýýýýýýýýýý$þ€ýýBýýýýýýýýýýýÙýýýýýýýýýýDêÿý¾éÿýýü¢£££££¤¦¥¨§©©ªªªªªªªªªªªªªªªªªªªªªªªªªª«ªªª¬¬¬­­®®¯¯¯°°°²±³³´´´´´´´´´´´´´´´´´´´´µ´´¶´´´·´´´´´¹¸ºººººº»º¼º½º¾¿¿¿ÀÀÁÀÂÃÃÄÄÅÅÅÅÆÆÆÆÆÆÆÆÆÆÆÇÇÈÉÉÊÊËËËËËËÌÍÌÎÎÎÎÎÎÎÎÎÎÏÎÐÎÑÑÒÒÓÓÓÓÓÔÕÕÖÖÖÖÖÖÖÖÖ××ØØØØØÙÙÚÛÛÜÜÞÝßÝàáââããääåææççèééêêëëëíìïîðððððððððððððððððððððððððððððððððððððððñòðððððððððóóôôõõöö÷÷øøøøúûüýùþÿùùù          !!"""##$$$$$%%%%&%'%%%%%%%((   9 c]< : ndg^_MONÝÞQrF;>D=@ABC?E.3²³´µä¶·¸¹ºäts{}nh{}`oRTÆÜßß^X¼»q( ââââââ1/ !$%4&6'* ½¾obZ[<ÉÃÈ×ÙÃÃß^ êæéë-7åäääyiv€u|~a&l+0nmTQSJLeÏËÄÂ]GHSpÕÖÚßàVWP`c_I+çþýûúùóô÷øõöñòïðìíî20,#"58pqlj>3>UÆÇØÛáfbeRYf) ÿè¿ÀÁ�~wmk>oEF1WXÓÑ\jadãü‚56789;?ADG[UÔÐÒÃÌhs   z�=@4!oXKägr<>!,YVÍÊkx%2\XäiB"#$'-ZÎ: L>¨�ª«¬­®¡š›¢˜uwy•�§©MICŸ¤ä–t}ŽÃ�¦(䙨¯ˆŒ‘ÃÃI¨HJœz{x tŠ‹�“’Þ±¥—‰v~€…”JNä.±J°KÃ|)±/£‚�ƒ„†‡ÃO*ÃP¶Z˜?txññÉÀðceË0€´¾ÅôklÂÃZ)´O;ÿɧÂï7òâ7ï*ÞY7ÂÃÝÖúû°Bã;ÿ8æç éë|}Y{ô¿�R�SJýþîøÂôɴ÷P´Y´b¿¨�´�´´ûl-igXaß4flj%&'()9s'()ÊmzÄ µ¶·¸¹øùûüÉÄÉWYÍÉAõ:$Äkòòü…1˜qêötuÀwxŘIz{|}~>?�—Ř`8ƒ„Äš…†‡8ÅÈ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�ž¨©ªùÀ¢£{f˜Å˜p~˜m˜nop˜ü˜˜“”mš›nuv³+ !"#$%&'()¤¥œ�¾ß¿€ážŸ B‚ƒCDEAYÎduvw¡¢£H„e¤YY…¥†   ?H¦‡ˆ‰Š§¨©ª«¬­‹ŒÎ�Žt�®’¯–—™·æÎëæî ¸ºI½¾°¿ÁÃÂJ±²ÅÇÈÌÍKþÎÏÿÐ/š›ÑÒÓÕËÌÖÙ³ß,Ú()L´µÛÜãœ�äåèî󞟠:õBCDà÷¡¢£   ¤H./:¥    ¦56§¨©ª«¬­:;<L@?=®F¯GPT][RX56\]Y^[_°`€ˆa±²hijš›hJ‚pŸ2 ¡K¦§®·¹|/q½¬­³ÁyÑœ�´µÔ~ស LùõýðÆÒ ¡¢£Ú:"¤#&Ü+(¥®ÝÞ÷709š›,¦3849§¨©ª«¬­;<C=AEB®D¯Gäœ�FYOMT䟠å¦S°\Vd^j±²oc¡¢£ñrzs©ƒ¤ª«¬­¯¥±²³¦Ã½Ä³Ç3Ô¦´Ò´µ§¨©ª«¬­Øš›ÙÚæÛ®Ü¯Œÿàâéçê#$%&'()妰êëíœ�±²ìî žŸ ðš› qÿ¦¡¢£³¤#-´µ¥œ�"/vržŸ 0¦1o2§¨©ª«¬­¡¢£3Áó®U¯¤45,%6¥ö;<=>?@¼°@i¦±²§¨©ª«¬­y†ÔNí®¯s³°´µ±²‡ˆ‰Š‹Œ�Ž��³´µ‘ !"#$%&'()’“”^_`abcdefg• !"#$%&'() !"–Œÿ—˜™š#$%&'()*+,-./0123456789¸y !": !"#$%&'();#$%&'›þ()*+<,-./0123456789^_`abcdefg:; !"#$%&'()< !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'()Í !"#$%&'()Ð !"#$%&'()Ó !"#$%&'()× !"#$%&'()Ù !"#$%&'()- !"#$%&'(). !"#$%&'()/ !"#$%&'()1 !"#$%&'()2 !"#$%&'()Q !"#$%&'()b !"#$%&'()g !"#$%&'()m !"#$%&'()n !"#$%&'()t !"#$%&'()} !"#$%&'()€ !"#$%&'()‚H !"#$%&'()* !"#$%&'()Ç !"#$%&'()ÎlIJKÏ/IÕJLÖ:ÊJK !"#$%&'()ØKL MNOPQÕÿRSTUVWXYºLZ[\MNOPQRSTËÌUVWXYZ[\ººÛ !"#$%&'()úýþÿºËº !"#$%&'() !"#$%&'()$%&' !"#$%&'() !"#$%&'() MáKbæW�ìíh¦éCø>%>?ŒŒ*Ï›Ÿ³œ 8œ?+†‡‰Šå34›n�9Ÿ;›=�*œ� =×?›�9?;= ´µ·&îAŒKŒG¿>Q&ö !"#Êpqr>!"#ls>sn9:;<=9:9:=s=ß›99=<�0�s&  s‚›˜õ��øùžûü›˜�ÐÑ–›˜�› sž››� !"#$%&'()*+,:;<›f23>›˜›˜�&˜Š˜&�Ž�˜›˜˜›œŠ�Ž�J  !"# c½eÀ&'(Š>&�Ž�›­�“”•678&&(†‡ˆ@››��&Fâ‘&©ª«U'®¯šR&&&&WXYZ[\]&&Ü&&s&e&g�²é´µ¶í?wG}~yOËÎÏVÕÖ?œ?›Û�œ™«›j ¡pqr &&'(}&&Š&&�Ž�&&&>678KLMNOPQ@&››F&&&&KLMNOPQR&&››WXYZ[\] 0œ%>e?gœ8�G›<?  ��B�D�w�&�}~���SG&� �O&oVdœœ™&j�  ¡r>&'(j&›�pqr�œ678n�&}c@e�&%F‘���&›.��R� ?�WXYZ[\]&A'>D&e&g Ä �›Qœ—&'()ƒ&wœo g&}~ ?678Ò&>&>@&&&&F&&&£?&&™›R& ¡WXYZ[\]&&&&e&g&&&&n !"#>Ïw��& }~��&'(��%�å?�&&�678&&��™&&@ ¡F ���úö&'(�R�óÞ�WXYZ[\]678�ŸÓ£eÝg@��ó�F»������ZwURã}~WXYZ[\]s6ÿÿÿÿµeÿÿgÿÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿ™ÿÿÿÿÿÿÿÿÿÿw ¡ÿÿÿÿÿÿ}~ÿÿÿÿÿÿÿÿÿÿÿÿ*+,-./ÿÿÿÿÿÿÿÿÿÿ5ÿÿÿÿÿÿ9ÿÿ;ÿÿ=™ÿÿÿÿÿÿÿÿÿÿÿÿ ¡Gÿÿ !"#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿfÿÿhÿÿÿÿÿÿlÿÿÿÿÿÿpqr } !"#012ÿÿ’&ÿÿÿÿ–ÿÿ˜ÿÿÿÿÿÿœÿÿžABCDEÿÿGHIJÿÿÿÿÿÿÿÿÿÿÿÿÿÿSTUVÿÿÿÿÿÿÿÿÿÿÿÿÿÿ^_`abcdÿÿÿÿÿÿÿÿijkÿÿÿÿÿÿ%pqrÿÿÿÿÿÿÿÿ�ÿÿÿÿ012} !"#ÿÿŠABCDE�GHIJÿÿÿÿÿÿÿÿÿÿÿÿÿÿœSTUVÿÿÿÿÿÿÿÿÿÿÿÿÿÿ^_`abcdÿÿÿÿÿÿÿÿijkÿÿÿÿÿÿÿÿpqr }ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ !"#ÿÿœ !"#ÿÿ !"#ÿÿ !"#ÿÿ !"#ÿÿ !"#ÿÿ !"#ÿÿ !"#� !"#� !"#� !"#� !"#� !"#� !"#� !"#� !"#� !"#� !"#� !"#� !"#� !"#� !"#� !"#� !"#� !"#� !"#ÿÿ� !"#ÿÿ› !"#› !"#ÿÿ›ÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿGÿÿÿÿÿÿÿÿÿÿÿÿÿÿOÿÿ›ÿÿÿÿÿÿÿÿVÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ›ÿÿ'ÿÿÿÿjÿÿÿÿÿÿÿÿÿÿpqrÿÿÿÿÿÿÿÿÿÿÿÿ›ÿÿÿÿÿÿ}%ÿÿ'ÿÿÿÿÿÿÿÿÿÿG !"#ÿÿÿÿ&ÿÿÿÿ›Gÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿmÿÿÿÿÿÿÿÿÿÿ›tuvwxyz{|ÿÿÿÿ€ÿÿ‚ƒ„šmÿÿÿÿ‰Š‹ÿÿtuvwxÿÿz{|«¬€ÿÿ‚ƒ„ÿÿÿÿÿÿÿÿ‰Š‹ÿÿÿÿÿÿ½ÿÿÿÿÀ !"#ÿÿÿÿÿÿØÙÚÛÿÿÿÿÞÿÿàÿÿâ !"#ÿÿ !"#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !"# !"# #&�!› "œ žŸ>?¡ $%'()*+,-./0123456789:;<=@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š±ýýýýýgýýýýýýãÿý6ýŠ¡AFQ|ýfDãÿýr6ýJªÈýÌýýæÿ'()*2ýý356ý8ý:ýýýý_ýýýýýýýÒý_`ÑýahiýýklnÑorpuvýýýýýýýýýýýxy|ý}ýswLðfýýýNõýýýŽ’˜™ýý+š ¡¢ ý££ý‚‡ýýýýzIý\ýýÑÑÑˆŠ‹��ýý‘žýýýý¤¥ýý¦§°±ÑÑÛúý+ý, ýýs=ýý>ý%ýýýÑý×ØÙ©rrI™ªO™/ýý±ÿPýý²ýÿýTWXZ\^býýÁÿ�NefgýmÑuãÿÑÑýÑÑýýdÑÑÑÑÑÖùÑýãýýýÑÑýýÑÑÑúýýÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑs ý ÑÑs ýsýýýý~ýýýýýœÿýAýýýýýýýýýýÔïýýý+ýýýýýýýý£ýýýýýý÷.“ýï-åÿssºssýó_s—‡!+?›e¯Ÿ=�–JPœïïžžžžZZbbýýýsssýýýssýýýý¨­®r%™éýýŸÿMý©MÑ”ý+ý¯ýýýýýý2ý*ýýýÑýýÑÑýýýýµÑÑý1ýýÑýýý›%ýýýƒ×.Íýý_Ýýs=ý?ýß"ýýýý ¶Ã×ë³ýÿ¸s™rrýýýýý'Lý»ÑqOý;<ÁýýÍ&@BýÑýýý`ÔýýýýýýÑýýýýÕ›Ñý'ýÑRÛý ýÑÑÞýýý";™CrsOÑý XýacýwýýwýýPýýÑaxý‹šÑJýýýýŸÑýýýýýý³ýýýýÇNýýd,!z™ýýýýýŠýijklýýýnopýRýýýsýýý,Yt_ý‚ýý^aýý{ýšœý…ˆ‰‹�ýý•ÿR��R‘ýýýý„¬K’()/¡0,5ýÑ&ýýWY^^`ýR ^«ÿR‚6,ý´ýTýýýTý±ýy:>Ôýœý¶·A¼½GHUÁÂýýý¡Ký›æ/Výçýýý^^ý^^ýýýTTýýýýýèýW]_bmuvy/ýýýÔý_|}~€�ý/ýýýýýýýýÔýýÔývfinfo�`ðÿ�`ðÿ�`ðÿ�`ðÿ�`ðÿ�`ðÿ³/îÿ�`ðÿ�`ðÿx`ðÿ�`ðÿ�`ðÿ�`ðÿ�`ðÿ�`ðÿ¡`ðÿ�`ðÿMcðÿ¬cðÿMcðÿMcðÿ dðÿMcðÿMcðÿldðÿMcðÿŒcðÿMcðÿMcðÿMcðÿ�2îÿ,cðÿÌdðÿ‘6ñÿb6ñÿQ6ñÿÕ5ñÿ¾LîÿW{ðÿh|ðÿ­}ðÿW{ðÿ@{ðÿ8|ðÿ´NîÿW{ðÿW{ðÿˆ{ðÿW{ðÿx}ðÿýMîÿW{ðÿ@{ðÿŽ}ðÿW{ðÿÙ^îÿ‰ðÿ€‹ðÿ”Šðÿ[‹ðÿ,‰ðÿi_îÿ”Šðÿ,‰ðÿÔ‰ðÿ,‰ðÿ”Šðÿ”Šðÿ,‰ðÿD‰ðÿl‹ðÿ”Šðÿ6_îÿ÷‹ðÿˆ‹ðÿ_îÿŒðÿ\ŽðÿÄŽðÿ:Žðÿü�ðÿŽðÿŽðÿŽðÿ Žðÿ:Žðÿ�Žðÿ»ŽðÿŠŽðÿØ�ðÿhŽðÿhŽðÿhŽðÿè�ðÿŠŽðÿlŽðÿ—ŽðÿfŽðÿ´�ðÿDŽðÿDŽðÿDŽðÿÄ�ðÿfŽðÿHŽðÿsŽðÿBŽðÿ��ðÿ Žðÿ Žðÿ Žðÿ �ðÿBŽðÿ$ŽðÿOŽðÿŽðÿl�ðÿü�ðÿü�ðÿü�ðÿ|�ðÿŽðÿZEñÿ5EñÿEñÿQEñÿùqîÿ{Eñÿcompare_sectionldelf_search_neededget_symbolslang_do_assignments_1multiple_definitionload_symbolsHñÿÛGñÿÛGñÿáGñÿÛGñÿîtîÿD¬ðÿ(®ðÿÒ±ðÿzîÿx­ðÿˆ¬ðÿzîÿD¬ðÿD¬ðÿ¨¨ðÿD¬ðÿø®ðÿ1zîÿD¬ðÿx­ðÿ©±ðÿ5|îÿĵðÿܵðÿ©µðÿ©µðÿ©µðÿŒµðÿ©µðÿ©µðÿ©µðÿ©µðÿĵðÿ¿¶ðÿ„·ðÿ�·ðÿ”·ðÿd·ðÿl·ðÿ,·ðÿ,·ðÿ>”îÿÒ_ñÿ.‘îÿÔ�îÿŒ•îÿ¦_ñÿ6’îÿ7bñÿõ“îÿ_ñÿbñÿ<“îÿ¢’îÿ,–îÿt^ñÿB•îÿs’îÿ–añÿ¦añÿ¶añÿÐañÿàañÿ(añÿª‘îÿÉ‘îÿœ‘îÿ-‘îÿ¸‘îÿfñÿÄ�îÿnžîÿ·eñÿÙeñÿœžîÿœžîÿûeñÿŒ�îÿÀžîÿ²îÿ_´îÿ=´îÿu´îÿ´îÿ׳îÿù³îÿ,´îÿè³îÿ ´îÿN´îÿp²îÿˆ²îÿX²îÿ“·îÿË´îÿæ´îÿõ´îÿ µîÿLµîÿ[µîÿjµîÿyµîÿˆµîÿ—µîÿ¦µîÿµµîÿĵîÿßµîÿîµîÿýµîÿ&¶îÿµîÿ ¶îÿ¶îÿ ¶îÿ3µîÿ†´îÿ•´îÿ¤´îÿ5¶îÿD¶îÿQ¶îÿY¶îÿ�¶îÿ©¶îÿŶîÿá¶îÿý¶îÿ·îÿ³´îÿ¿´îÿ,·îÿB·îÿa¶îÿp¶îÿ€¶îÿx¶îÿ›¶îÿ·¶îÿÓ¶îÿï¶îÿ ·îÿ!·îÿ7·îÿmainCRTStartupgldi386pep_set_symbolsset_pep_nameis_underscoringreloc_overflowprint_data_statement€€build_link_orderlang_size_sections_1c!ïÿ³#ïÿ‘#ïÿÉ#ïÿo#ïÿ+#ïÿM#ïÿ€#ïÿ<#ïÿ^#ïÿ¢#ïÿÄ!ïÿÜ!ïÿ¬!ïÿ,'ïÿ$ïÿ:$ïÿI$ïÿ_$ïÿ $ïÿ¯$ïÿ¾$ïÿÍ$ïÿ,'ïÿÜ$ïÿë$ïÿú$ïÿ7%ïÿF%ïÿa%ïÿp%ïÿ%ïÿ·%ïÿn$ïÿŒ%ïÿª%ïÿÆ%ïÿÒ%ïÿ›%ïÿŒ%ïÿ‡$ïÿÚ#ïÿé#ïÿø#ïÿÞ%ïÿí%ïÿú%ïÿ&&ïÿB&ïÿ^&ïÿz&ïÿ–&ïÿ¯&ïÿÅ&ïÿ$ïÿ$ïÿÛ&ïÿ&ïÿ&ïÿ&ïÿ4&ïÿP&ïÿl&ïÿˆ&ïÿ¤&ïÿº&ïÿÐ&ïÿmainCRTStartupgldi386pe_set_symbolsset_pe_nameis_underscoringpep_implied_import_dllpep_find_data_importspep_fixup_stdcallsgldi386pep_after_openüCïÿDïÿ'DïÿÄDïÿåDïÿEïÿEïÿ~Kïÿ~Kïÿ~Kïÿ0EïÿHEïÿiEïÿ¨Eïÿ~Kïÿ~Kïÿ~Kïÿ~Kïÿ]FïÿzHïÿÞFïÿïFïÿïFïÿGïÿGïÿGïÿGïÿ7Gïÿ7Gïÿ~Kïÿ~KïÿOGïÿqGïÿ‘Gïÿ±GïÿÏGïÿïGïÿ~Kïÿ~Kïÿ HïÿHïÿzHïÿJJïÿ~Kïÿ~KïÿJJïÿ™HïÿïFïÿGïÿGïÿ7Gïÿ¦Hïÿ²Hïÿ¾HïÿÊHïÿÖHïÿâHïÿîHïÿúHïÿIïÿIïÿIïÿ*Iïÿ6IïÿBIïÿNIïÿZIïÿfIïÿrIïÿ~IïÿŠIïÿ–Iïÿ¢Iïÿ®Iïÿ?TTD=KB8;NS\\g223456 . * Z "]`OP/,+)X!^daRQ1-Y0Vcfbh[W(e_ 00UVVVV'%&VV#$1F>C8DB]^.x !"#$%&'M(I)/9 �Ž>Xy ze2345€CfDdg�‚ƒ„?i�‘’“…†kbcHt—˜pyKs�w NÐÿÐÿÐÿÐÿ ‹/O[ŒU2345•/R`WahylbnoU–qu}|‰ŠJ_ZY”j-LTQ  "  m)   ‡ˆ<9 G K !NRŠ‹Œ�[ !d•–` c  l  "|!! "# !� @<:ŽVÿÿ)ÿÿÿÿ1ÿÿÿÿÿÿ-! "# ]ò&&.åå9$««««««««««««««««««««««««=L«ff««__««««W«Wd««Tç.«a«e5g%«««L«b«««««&«W««cjk««måg««n«««io««p«g«««8rs«U««««««««««ii«h?hh8«`««««hh««pe_implied_import_dllpe_find_data_importspe_fixup_stdcallsgldi386pe_after_open/tmp/var/tmp;xŽ40íÿ¬d@íÿÔ´@íÿìÔPíÿLëPíÿ°RQíÿúRíÿH Síÿ˜�SíÿàµSíÿ\Tíÿ HTíÿì“víÿœ2wíÿôdíÿ0l‰íÿx;“íÿ òžíÿÜŸíÿH!ŸíÿÈMŸíÿ0kŸíÿ„wŸíÿІŸíÿ@H íÿ„] íÿÌ… íÿ� íÿD¡íÿ :¡íÿÜF¡íÿ@U¡íÿˆû¥íÿ•¦íÿL ûÒíÿ¨ ôÞíÿÜ ýÞíÿø ñáíÿ0!âíÿœ!Läíÿ"XäíÿX"käíÿŒ"täíÿ¼"µåíÿä"׿íÿø"Èèíÿ#ëíÿ0#'ëíÿL#ðëíÿ #Mííÿè#bííÿ$@õíÿ<$Rõíÿp$˜õíÿœ$­õíÿÌ$Âõíÿè$êýíÿ0%�þíÿ„%�þíÿ&Ÿþíÿ`&íþíÿ´&?ÿíÿ'uÿíÿ„'„ÿíÿÔ'¢ÿíÿd(±ÿíÿô(RîÿP)¸îÿ¨)%îÿ0*¾îÿd*îÿ¤*PîÿÐ*„îÿD+’îÿ°+Ðîÿü+îÿÈ,[îÿ8- îÿ€-& îÿÈ-gîÿ .xîÿh. îÿ¬.Uîÿ/•îÿˆ/´îÿô/ îÿh0i!îÿˆ02"îÿØ0Ò$îÿ1ò$îÿ`1W'îÿ°1W)îÿä1Z)îÿ(2¥)îÿl2Å)îÿ¨2ç)îÿÔ2*îÿè2±+îÿ83½+îÿ¤3‰-îÿô3”2îÿ€4ç2îÿÌ4ø2îÿ(56îÿ\56îÿ 5¡7îÿÀ5¸7îÿø5†8îÿh6+:îÿ´69;îÿ7Î;îÿh7I<îÿ¬7L=îÿð7“=îÿX8b>îÿ¨8Ü>îÿè8:?îÿ(9l?îÿp9Æ@îÿ¸9^Cîÿà9­Dîÿ$:JEîÿt:_Eîÿ�:~Fîÿh;3Iîÿˆ;yIîÿÐ;SLîÿ<nLîÿt<Mîÿè<-Mîÿ@=5Oîÿ„=¶Oîÿô=îOîÿ4>)Pîÿ„>uPîÿØ>ÊSîÿ0?*Uîÿ|?ñWîÿœ?*Xîÿì?kYîÿ<@ÓYîÿ\@âZîÿ´@Q[îÿä@÷[îÿ$A¿\îÿˆA]îÿìA`îÿ´|ðÿP>ä}ðÿ?Ä�ðÿ @ƒðÿˆ@4„ðÿÐ@´„ðÿø@t…ðÿDA$†ðÿ¼Ad�ðÿ¬Bô•ðÿØC˜ðÿÔD4˜ðÿxE”˜ðÿ0FÄ¥ðÿPG$¦ðÿDH¨ðÿ¼HĨðÿ-ñÿP?t.ñÿ¼?ô/ñÿ¨A0ñÿ B”3ñÿ\B„6ñÿCt7ñÿDC”7ñÿXCô7ñÿ¤C¤8ñÿ(D”9ñÿpDÔ9ñÿ¬Dô9ñÿÀD:ñÿèDT:ñÿE<ñÿPED<ñÿ°E”<ñÿÐE„>ñÿFÄ>ñÿ¬FÔ>ñÿÀF?ñÿüFd?ñÿ¨Gô@ñÿøG„Añÿ”HBñÿIDBñÿITBñÿ(IdBñÿ¼I”BñÿäIäBñÿlJCñÿK4CñÿlKFñÿLÄHñÿtLôIñÿ LTKñÿìLtKñÿMôNñÿ\M$Oñÿ˜MDOñÿÐMTñÿ�NDTñÿHOäTñÿ˜OdUñÿPäUñÿ8P„VñÿÄPWñÿìPdXñÿdQ$YñÿhR4Yñÿìg”`ñÿh„cñÿThDdñÿ|hTdñÿ�h¤dñÿ´h„gñÿÈhÔjñÿikñÿi$kñÿ0iTkñÿDidkñÿXidoñÿˆiDpñÿ¸iTpñÿÌitpñÿàiÄpñÿjrñÿ4j”rñÿ\jô„ñÿˆjTˆñÿÀjĈñÿäjäˆñÿøj‰ñÿ kdŠñÿ`k¤Šñÿtk4‹ñÿ¸kd‹ñÿ(mzRx �h›ðÿ&D$4€íÿ0FJ w€?9*3$"\ˆ+íÿPtÀ+íÿ $Œè›ðÿÜ)E†C B�EŽH�Œƒ´ ÅðÿEA†C Bƒ~ Ô€;íÿ ƒ†ì¸Åðÿ&E†J V ( X§ïÿ^E†C BŒDƒ} B O  83;íÿg ƒ†Œ\ D ,\h§ïÿE†F D�ŽE�EŒHƒ/ A ŒF;íÿ¨ ƒ†Œ�Ž� ¬8©ïÿÂE†C Aƒs A Ъ<íÿ ƒ†4èÌ©ïÿ·E†C B�EŽI�KŒHƒb A › A  i<íÿ” ƒ†Œ�Ž�$@4«ïÿòE†C BŒDƒÐ A hµ<íÿ ƒ†Œ„PÄðÿiE†] K ¤ ÄðÿiE†] K ÄðÄðÿbE†V K äQ<íÿbE†V K   Åðÿ8E†C BŒDƒi (o<íÿ1 ƒ†Œ,D0«ïÿA†C D�ŽO�ŒƒW A tT<íÿK" ƒ†Œ�Ž�,”ÐÄðÿŸE†C B�EŽE�IŒDƒy ,Ä@ÅðÿŸE†C B�EŽE�IŒDƒy ,ô°ÅðÿŸE†C B�EŽE�IŒDƒy ,$ï]íÿŸE†C B�EŽE�IŒDƒy $T0Ãïÿå E†C I�ŒƒH G |6^íÿ2 ƒ†Œ�˜¬ÅðÿLE†C I�Œƒ$¸,fíÿ ƒ†Œ�– A à´Êðÿ E†C I�Œƒ$ìoíÿÏ ƒ†Œ� A $(“yíÿ· E†C KŽ�Œƒ£ PTÏðÿ&d…íÿ(x\ÏðÿãA†O CŒƒo G Y (¤ ÐðÿA†F K�Ž�Œƒó E д„íÿ ƒ†Œ�Ž�(ðôÐðÿƒA†C DŽ�IŒDƒg A 0XËïÿ±E†C F�ŒƒE A N E PQ„íÿ, ƒ†Œ� lÑðÿIA†H BŒDƒy $�¤Ìïÿ¯E†C BŒDƒ[ G ¸„íÿ ƒ†ŒÔðÐðÿ èìÐðÿKE†C BŒIƒw  ߃íÿ ƒ†ŒG (,¸ÌïÿüS†C BŽG�ŒDƒ{ B XŸƒíÿ ƒ†Œ�Žx¬Ððÿ$E†C AƒS ,˜¼ÐðÿãE†C F�Ž�EŒHƒk A È>ƒíÿ ƒ†Œ�Ž� è\ÓðÿqE†C Aƒc  ¼ƒíÿ ƒ†T ((œÓðÿÕA†H FŽ�ŒDƒ¢ A T‰ƒíÿ( ƒ†Œ�Žt0Ôðÿ?ˆ}ƒíÿ,œHÔðÿPE†C B�GŽ�JŒDƒí A $ÌAƒíÿs ƒ†Œ�Ž�Q B ô@ÕðÿÝE†C CŒƒ Öðÿú( Xƒíÿ:$< Ø×ðÿ·E†J CŒƒ] A d Vƒíÿ ƒ†Œ € dËïÿ1E†C BŒGƒ\  ¤ €Ëïÿ E†C Aƒº A È þ‚íÿ ƒ†,à ô×ðÿI E†F B�EŽE�MŒƒ- A  Å‚íÿ¦ ƒ†Œ�Ž�(0 ôâðÿ•E†C B�JŒEƒe A ,\ hãðÿtE†C F�Ž�LŒEƒA A Œ ï†íÿš ƒ†Œ�Ž�¬ ˆËïÿEÀ „ãðÿ(Ô �ãðÿSE†C BŽI�JŒDƒq  ÄãðÿHE†H Bƒt $ ôãðÿeE†C BŒDƒ} A $H <äðÿUE†C BŒIƒx A 0p täðÿ™E†E BŽI�EŒHƒI A h ,¤ àÊïÿ}E†C h�Ž�Œƒ- A Ô A†íÿf, ƒ†Œ�Ž�8ô æïÿ4 E†C M�Ž�Œƒ[ A ] A i A 0 K²íÿù ƒ†Œ�Ž�P 4äðÿ8d ¾íÿ A†C  € ý½íÿôE†O AƒÚ ¤ äðÿ%¸ ¹Àíÿ E†V $Ô äðÿöE†C CŒƒå A $ü øäðÿ�E†L BŒKƒi A $ mÀíÿ;E†O Aƒ! (H <åðÿèE†C H�Ž�ŒDƒh A t æðÿ\E†C BŒIƒH ˜ 4Âíÿ ƒ†Œ(´ æðÿÈA†C FŽ�ŒDƒ¯ A à øÁíÿ ƒ†Œ�ޤæðÿ2×Áíÿ A†C 0´æðÿ D°ÁíÿAXœçðÿ&lÉÂíÿ" €×ÃíÿñE†O Aƒ× ¤¤Åíÿ?¸ÏÇíÿ E†V  ÔÓÇíÿÉE†O Aƒ¯ ,ø,èðÿÊA†C K�Ž�Œƒ| A (HÈíÿ] ƒ†Œ�Ž�Hüìïÿ)\˜éðÿp]ÉíÿA†O  ŒVÉíÿÞE†O AƒÄ °déðÿ­ÄüÐíÿØœìïÿVA†C Q øÚÐíÿF †´éðÿ$ôÐíÿA†O @¤éðÿTÙÐíÿA†O  pÒÐíÿ(E†O Aƒ  ”@ìïÿKA†C EƒA ¸²Øíÿ— ƒ†ÐTìïÿ $ä`ìïÿE†J BŒDƒ£ A  õØíÿ ƒ†Œ$(ÜèðÿPE†C B�JŒDƒw Péðÿ%$dàìïÿæS†I BŒHƒ{ A Œ„Øíÿ ƒ†Œ¨Üèðÿ(¼xíïÿ(E†C FŽ�ŒDƒ A è7ØíÿN ƒ†Œ�ŽŒèðÿ=A†C Aƒw (¬èðÿ^ <1ØíÿR]†L Aƒ\ ÃÆ(`îïÿE†C B�EŒHƒ¢ A Œ3Øíÿ6 ƒ†Œ�¨Œèðÿ¼˜èðÿ;A†E Aƒs ,ܨîïÿ&O†C BŽK�EŒDƒ� A  é×íÿ ƒ†Œ�Ž,,ˆïïÿSA†C B�EŽE�EŒDƒØ A \¨×íÿ ƒ†Œ�Ž�,|èðÿšE†C B�EŽE�EŒDƒV A ¬ˆèðÿ;(ÀTðïÿùA†C B�EŒDƒ¥ A ì6×íÿ ƒ†Œ� lèðÿLE†C BŒIƒx L,èðïÿ¬E†C GŽ�ŒƒD E á G © G B E = E $|µÖíÿ¡ ƒ†Œ�ŽG E 0¤ ðÿA†C B�EŽE�EŒHƒ¿ D $ØúÙíÿf ƒ†Œ�Ž�U E ,Äçðÿ$E†C F�Ž�FŒƒŒ A $0Úíÿm ƒ†Œ�Ž�f E XœèðÿA†E F xœèðÿ4(ŒÈèðÿœE†C I�Ž�Œƒk A ¸íÛíÿ™ ƒ†Œ�Ž�ØéðÿìRÜíÿHA†C r A  éðÿBA†F Eƒq ,ZÜíÿJ ƒ†D� ðÿ XxÜíÿ4E†H BŒKƒ$xìèðÿsA†C B�FŒƒ A ( DéðÿÊE†C D�ŒDƒß A Ì8Üíÿ ƒ†Œ�èÌêðÿŽA†J CŒƒ,Ü ðÿ4E†C BŒDƒB H ” D 8ÚÛíÿ> ƒ†Œ,TÐ ðÿA†J BŒKƒ‚ F U A „ÌÛíÿ> ƒ†Œ ” ðÿE†K F À„êðÿ:$Ô°êðÿJE†C D�ŒDƒy  üØêðÿ?A†C BŒDƒt , 4 ðÿöE†C D�ŽG�ŒGƒ¥ A P>ÛíÿM ƒ†Œ�Ž� t êðÿ8E†C BŒHƒe $˜¼êðÿ¡L†M FŒƒb A ÀÛíÿ¿ ƒ†Œa L ä ëðÿ®E†C ‚ A ’Ûíÿ †, 4 ðÿE†C P�Ž�ŒƒŽ A PVÛíÿA ƒ†Œ�Ž�4pôðÿ‚J†C B�IŒDƒS AÃÆÌÍA ƒ†Œ�¨?ïíÿ ƒ†Œ�(Ä0 ðÿ×E†C GŽ�ŒƒY A ðïíÿ” ƒ†Œ�Ž ¤êðÿHb†C BƒZ AÃÆ4XðíÿI ƒ†L¸êðÿ9E†C p lØêðÿ%€T!ðÿqL†Q r A  5ðíÿ@ † ¸¼êðÿAE†C BŒHƒn Üèêðÿðôêðÿ]E†Z y ðíÿ †^ $,ëðÿ\E†C D�ŒIƒF $TPëðÿ™A†C D�ŒEƒk A |¸ïíÿP ƒ†Œ�˜¬ëðÿ¬¸ëðÿ,À” ðÿðA†C B�IŽI�EŒDƒ† I ð”ïíÿe ƒ†Œ�Ž�ÙðíÿÉE†C À ,0#ðÿðA†C M�Ž�ŒƒB A `Rñíÿ  ƒ†Œ�Ž� €´%ðÿ<M†K Aƒ[ AÃÆ¤®óíÿ ƒ†(¼¸%ðÿàA†C KŽ�Œƒ A èŠóíÿe ƒ†Œ�Ž,L&ðÿ�E†C H�Ž�ŒDƒD H 8Ÿõíÿ ƒ†Œ�Ž�X,êðÿlk÷íÿ,€d(ðÿ€E†C F�Ž�FŒƒ  A °*÷íÿK ƒ†Œ�Ž� Д)ðÿYE†C Bƒh A ô1÷íÿ ƒ† ¸)ðÿ�E†C Aƒz 0÷íÿ" ƒ†H *ðÿn\ ÷íÿ.8p%÷íÿœR†F E�ŒƒÑ ÃBÌBÍAÆ E —ÃDÌBÍAÆ ¬øèðÿÀqøíÿ Ôðèðÿ èìèðÿ3K†C Bƒb   éðÿ<J†C Aƒl AÃÆ(,øíÿÌE†C I�Ž�Œƒº  Xl)ðÿCE†C M�Ž�Œƒ(|�ùíÿ  ƒ†Œ�Ž�Û A ¨¬èðÿ¼¨èðÿФèðÿ ä èðÿµE†C § A  þíÿSE†C BŒDƒD $, è(ðÿMA†C CŒƒd A T þíÿ ƒ†Œ<p ô(ðÿûA†C P�Ž�Œƒ¬ H í A { E ° Èýíÿ ƒ†Œ�Ž�Ð tèðÿnä ¬îÿ ,ø l-ðÿhE†C M�Ž�ŒƒI A (!qîÿˆ ƒ†Œ�Ž�H!Ùîÿ \!x1ðÿâE†C } A €!¸îÿÎ †˜!èðÿ¬!èðÿ,À!èðÿôA†C D�ŽL�Œƒ A ð!îÿ¥ ƒ†Œ�Ž�("Äìðÿ~E†C M�Ž�Œƒ£ A <"oîÿ ƒ†Œ�Ž�(\"h1ðÿèE†C I�Ž�Œƒ± A ˆ"1îÿ• ƒ†Œ�Ž� ¨"¬íðÿkE†E [ A Ì"øíðÿZE†J AƒI ð"^îÿ{ ƒ†(#¬1ðÿÔA†C M�Ž�Œƒ‹ D 4#•îÿ ƒ†Œ�Ž� T#@5ðÿMA†C CŒƒE x#TîÿG ƒ†Œ”#�íðÿ74¨#<5ðÿÍE†C D�ŽE�EŒDƒ‡ G é B à#3îÿÏ ƒ†Œ�Ž�,$´6ðÿéA†C M�Ž�ŒƒV A 0$²îÿz ƒ†Œ�Ž�P$T:ðÿ6A†P Eƒ_ p$ìîÿ^ ƒ†$ˆ$\:ðÿqI†C D�ŒDƒ\ °$ îÿ2 ƒ†Œ�(Ì$˜:ðÿ±E†C KŽ�Œƒu A ø$ôîÿZ ƒ†Œ�Ž$% ;ðÿ!E†C B�EŽI�KŒƒ$@%îÿ˜ ƒ†Œ�Ž�} A @h%v îÿOE†C B�EŽE�EŒDƒj E u E u E N $¬%� îÿ�A†C B�HŒDƒŠ Ô%�ëðÿ/è%¬ëðÿ%ü%Î îÿA†O ,&Ç îÿE†C M�Ž�Œƒö E N  H& ;ðÿ¼A†C Aƒv E (l&XëðÿIE†C GŽ�ŒƒQ A ˜&|ëðÿ ¬&xëðÿ ,À&tëðÿ“E†e a�Ž�Œƒ¬ A ð& îÿµ ƒ†Œ�Ž�'£ îÿFE†C Bƒ{ $0'ä:ðÿ¢E†C D�ŽG�ŒIƒ$X'¡ îÿÚ ƒ†Œ�Ž�½ A €'Tíðÿ9E†K h  '3îÿ †¸'\íðÿ ,Ì'Xíðÿ E†C D�ŽF�FŒEƒ} A ü'òîÿ  ƒ†Œ�Ž�(¨íðÿ0(”:ðÿ(D(�íðÿôL†F J�Ž�ŒƒB A p(îÿ ƒ†Œ�Ž�4�(T:ðÿ«A†C F�Ž�EŒHƒW B Ó E È(åîÿ ƒ†Œ�Ž� è(ìíðÿPE†C BŒKƒv $ )©îÿ� ƒ†Œj A J E 4)`=ðÿCA†C BŒDƒx  X)Œ=ðÿ¡E†C Aƒ] A |)ºîÿ8 ƒ†$”)>ðÿ—A†C CŒƒa H ¼)²îÿ; ƒ†Œ0Ø)\>ðÿ+K†J Aƒo K § ÃÆA ƒ† *�îÿL ƒ†@ ÆÃ E ,0*ôìðÿmA†C I�Ž�ŒƒC A $`*•îÿU ƒ†Œ�Ž�¡ E ,ˆ*Ü>ðÿÙE†C B�GŽ�EŒDƒG G ¸*’îÿ` ƒ†Œ�Ž�(Ø*¼íðÿSA†F M�Ž�Œƒ¸ A +¦îÿÇ ƒ†Œ�Ž�$+Mîÿ9O†O E Æ,D+°îðÿxA†C D�ŽG�ŒHƒ[ A t+6îÿA ƒ†Œ�Ž�,”+°Aðÿ1A†C F�Ž�FŒƒl A Ä+'îÿh ƒ†Œ�Ž�(ä+oîÿE†C J�Ž�Œƒü (,tBðÿ-E†C L�Œƒ A <,&îÿo ƒ†Œ�X,\Cðÿ}l,eîÿ¦(€,´Cðÿ±A†C BŽK�ŒGƒ† B ¬,ËîÿÈ ƒ†Œ�Ž@Ì,(Dðÿ¯J†C FŽ�ŒDƒo A T ÃÆÌÍÎA ƒ†Œ�Ž-/îÿ_ ƒ†Œ�Ž0-Dîðÿ ,D-`Dðÿ>E†C F�Ž�FŒƒâ J t-*îÿü ƒ†Œ�Ž�,”-îðÿqE†C B�GŽ�EŒHƒ» A Ä-Öîÿl ƒ†Œ�Ž�,ä-0ñðÿðE†C B�EŽE�HŒGƒç A .òîÿG ƒ†Œ�Ž�04.°Jðÿ‰E†C B�EŽE�EŒDƒ% A h.åîÿ  ƒ†Œ�Ž�$ˆ.|óðÿæE†C GŒƒÑ A °.§!îÿH ƒ†ŒÌ.(ôðÿ(à.4ôðÿRE†C BŽF�EŒDƒx  /“!îÿ ƒ†Œ�Ž,/Hôðÿ®@/o!îÿXt†O E Æ,`/RðÿA†C D�ŽL�Œƒ² A �/w!îÿ ƒ†Œ�Ž�(°/tôðÿåE†H B�JŒƒ‰ A Ü/D#îÿ ƒ†Œ� ø/õðÿ@E†F BƒS A 0 #îÿ ƒ†40 õðÿH0,õðÿ\08Sðÿ$p0$õðÿ2E†C BŒDƒP A $˜0<õðÿ±W†J ? A O ÆÀ0ˆ"îÿ †Ø0¼öðÿ&ì0w"îÿ1´Rðÿ`N†C w A  1F"îÿ †81ŒöðÿFo†O E Æ(X1¼öðÿëE†E FŽ�ŒDƒa A „1"îÿ? ƒ†Œ�ޤ1`øðÿ5,¸1\Rðÿ! A†C P�Ž�Œƒe G è1Ý!îÿ~ ƒ†Œ�Ž�(2;'îÿO†C E�Œƒú AÃÆÌÍ42øðÿH2 øðÿ.E†Q R h2î'îÿ †T 4„2øðÿUN†C E�ŒƒZ AÃÆÌÍA ƒ†Œ�¼2¸'îÿx ƒ†Œ�(Ø2l^ðÿQA†C GŽ�Œƒd A (3è'îÿ… ƒ†Œ�Ž} E ~ ,03´÷ðÿ…A†C D�ŽH�NŒƒ4 A `3(îÿ  ƒ†Œ�Ž�,€3ôøðÿ…A†C GŒƒZ E U A °3Í)îÿ\ ƒ†Œ,Ì3Ø]ðÿÖA†C BŽI�EŒDƒP H ü3Ý)îÿ7 ƒ†Œ�Ž4èøðÿ…04à)îÿ$D4@_ðÿ´A†C BŒHƒV D l4²)îÿ$ ƒ†Œˆ4 ùðÿ&œ4(ùðÿ °4$ùðÿ (Ä4€_ðÿæA†C B�EŒDƒ\ E 4ð4D`ðÿyJ†C BŒDƒg A i ÃÆÌA ƒ†Œ(5)îÿ0 ƒ†ŒD5 øðÿ'X5)îÿ l5¨øðÿLE†G Eƒu A �5ã(îÿd ƒ†(¨5 `ðÿ°E†C GŽ�ŒƒS F Ô5)îÿ! ƒ†Œ�Ž$ô5pøðÿ$P†C J Æ E A (6HbðÿE†C GŽ�Œƒ¹ H H6°+îÿ ƒ†Œ�Ž$h6R,îÿ ††F CŒƒx AÃÆÌ�63-îÿˆ¤6ð÷ðÿ¸6“-îÿÌ6¸bðÿ!à6‚-îÿ ,ô6À÷ðÿÛE†C H�Ž�ŒNƒF A $7^-îÿ  ƒ†Œ�Ž�D7H/îÿX7\bðÿ!l7:/îÿ €7dbðÿgE†J BŒHƒM 4¤7ðùðÿ¤E†C F�Ž�FŒƒ: A � E Ü7ê.îÿ ƒ†Œ�Ž�(ü7Hüðÿ0E†C H�Ž�ŒDƒ ((8LýðÿYE†C M�Ž�ŒƒC T8s0îÿ7 ƒ†Œ�Ž�t8`þðÿ0ˆ8lþðÿtE†C B�EŽE�EŒDƒÎ A $¼8B0îÿù ƒ†Œ�Ž�¬ E ä8�ñÿ'$ø8ÿ0îÿS†C BŒDƒý AÃÆÌ 9„ñÿ 49à1îÿ—A†C Aƒm A @X9lñÿ²E†C M�Ž�ŒƒW A x E ¨ E V Pœ92îÿÖ ƒ†Œ�Ž�Ž E — E N E ƒ E I E e E ð9d`ðÿ,:}9îÿ:lñÿ5,:V9îÿ @:D`ðÿ¥E†C Eƒi A d:39îÿd ƒ†$|:9îÿzE†C Aƒ[ B S (¤:Ñ9îÿõE†M F�Ž�JŒƒÒ ,Ð:ôñÿ”E†C B�HŽE�EŒDƒn A ;j:îÿ ƒ†Œ�Ž�( ;DñÿuE†C F�Ž�FŒƒ` $L;>:îÿ© ƒ†Œ�Ž�k E t;À_ðÿBˆ;\ñÿ| œ;—;îÿKE†Q ] J E (À;¤ñÿ˜E†C D�ŒDƒ‚ A ì;’;îÿ ƒ†Œ�@<�;îÿÒE†F B�EŽE�EŒDƒâ E } E a E b $L<¸ñÿuE†C AƒJ A \ 4t<ñÿ`A†C BŒHƒN E s E � E <¬<¾=îÿÖ ƒ†Œi E w A ¥ E ˆ E ^ E 0ì<øñÿ¶A†C BŽL�EŒDƒa E t  = ?îÿ ƒ†Œ�Ž0@=?îÿ™E†C D�ŽG�ŒFƒo E K (t=€@îÿ`E†C M�Ž�ŒƒJ  =´Aîÿ#´=ÃAîÿ!È=ÐAîÿÜ=ÁAîÿð=´ñÿ>ªAîÿ(>›AîÿLE†E BŽE�LŒDƒf (D>»AîÿLE†E BŽE�LŒDƒf ,p>ÛAîÿ‚M†C BŽH�Œƒf AÃÆÌÍΠ>-BîÿE†F F 4À>'Bîÿ@A†C B�EŽE�EŒHƒØ E E (ø>/Cîÿ�E†C D�ŽH�EŒDƒq $?’Cîÿ- 8?«Cîÿ<A†C BŒDƒq (\?ÃCîÿ»A†C BŽE�FŒƒ© $ˆ?RDîÿÚE†C D�ŒDƒÉ  °?EîÿUE†C BŒDƒz Ô?5Eîÿ0h†C ,ð?IEîÿ“E†C B�EŽE�EŒDƒu  @¬Fîÿ(E†Q H @@´Fîÿ(E†Q H `@¼Fîÿ(t@¶FîÿlE†C BŽI�IŒDƒG  @öFîÿ2E†^  ¼@ GîÿàE†C GŒƒÐ $à@ÈGîÿ‡E†C B�EŒDƒs  A'Hîÿ„E†C CŒƒt  ,A‡HîÿŒE†C BŒDƒ}  PAïHîÿWK†C BƒC AÃÆtA"IîÿˆAIîÿ4E†H BŒKƒ ¨A0IîÿeE†C CŒƒY ÌAqIîÿ,Q†O E ÆìA}IîÿFE†K u  B£Iîÿ6E†K e  ,B¹IîÿZE†C B�JŒKƒPBïIîÿ dBæIîÿªE†C Eƒœ ˆBlJîÿJE†C e (¨B–JîÿÜA†C D�ŽG�ŒHƒÄ  ÔBFKîÿ„A†E BŒLƒo (øB¦KîÿZA†C BŒDƒb E h ($CÔKîÿ E†C I�Ž�Œƒù $PC³QîÿÞE†C F�Œƒ› E xCiRîÿ)ŒC~Rîÿ@0 CªRîÿ£E†C J�Ž�Œƒ€ E K $ÔCTîÿ[E†C AƒG E E  üCLTîÿhA†C Aƒb ( D�TîÿnE†C DŽ�FŒƒ[ LDÒTîÿr`D0Uîÿ#E†U H €D3Uîÿ8”D%Uîÿ¿ E†C D�ŽH�Œƒ# E [ E b ÐD¨`îÿ/E†J Aƒ^ ðD·`îÿ(E©`îÿ•E†C D�ŽI�EŒDƒv 0Eaîÿ (DEaîÿYE†C H�Ž�ŒKƒ=  pE4cîÿ¸_†C Bƒ’ AÃÆ,”EÈcîÿ‚M†C BŽH�Œƒf AÃÆÌÍÎ(ÄEdîÿyA†C D�ŽG�ŒKƒ^ ðEgdîÿE†C F (FZdîÿbE†C J�Ž�ŒƒO (ñîÿ�E†O I�Ž�Œƒc (ÈP“óîÿÙE†C H�Ž�ŒDƒÄ (ôP@ûîÿëE†O BŽG�ŒHƒÅ  QÿûîÿqE†F BŒFƒ]  DQLüîÿpE†F BŒFƒ\ (hQ˜üîÿñE†C I�Ž�Œƒß $”Q]ïÿEO†N [ Æ J A AÆ(¼Qzïÿ¬E†C D�ŽI�JŒƒˆ (èQúïÿÙE†C B�EŽE�MŒƒ· (R§ïÿ‚A†O I�Ž�Œƒh (@RýïÿÍE†C D�ŽE�EŒDƒ²  lRžïÿzE†C Aƒp (�RôïÿLA†O I�Ž�Œƒ2 (¼R ïÿGA†C H�Ž�ŒDƒ6 0èR/ïÿ E†C P�Ž�Œƒ« E : (Sþ3ïÿûE†C M�Ž�Œƒå (HSÍJïÿëE†O BŽG�ŒHƒÅ (tS@ñðÿ_E†P I�Ž�Œƒ@ 8 StøðÿåE†C F�Ž�EŒDƒØ A s E $ÜS(ûðÿ¿A†C E�Œƒy F TÀûðÿ T¼ûðÿKE†C BŒHƒx o¹W™,[’äp—3[˜D[š\[Pe[�w[‘‹[“ˆ[”˜[•¥[–³[-°[.¹W™,[’äp—3[˜D[š\[Pe[�w[‘‹[“ˆ[”˜[•¥[–³[-°[.¹W™,[’äp—3[˜D[š\[Pe[�w[‘‹[“ˆ[”˜[•¥[–³[-°[.¹W™,[’äp—3[˜D[š\[Pe[�w[‘‹[“ˆ[”˜[•¥[–³[-°[.aÌ[�ÑØ[AA>ŠÔ[ódbbŸSÀÑå[ccò^ð[\ddðÑ\d\ò^$\:\Òz‚eeÄfQ\�\¢Ec\~\£@Ò�\hÒ˜ÒÀÒ®\)ÓÅ\(PÓÛ\ŸÞ\¼‹ ö\]ff¨nˆÓ]FF¨n¸Óg"]*]GGLeàÓ1]¶h8]ÔL]›IA]8ÔI]œhÔ�elln][]v]LLƒ]¨Ô�]�ÐÔm\P¡]¯]MMøÔ¹]nnÀ]Ú]NN Õ×]úXÕ·^ooò^á]Oö] ^žò^^@^.^5^G^ R^€ÕV^¥ Õ[^¥ Õk^¥ÐÕw^¥Öt^¥Ö‡^¥(ÖŠ^qqHÖ–^rr¢^i¾^RRò^pÖË^+ò^¨ÖÝ^*ê^ØÖ÷^ss__SS_:_û×7_ü0×J_ttP_élTTò^a_t_ ò^ƒ_ž_ Hcuu:``ס_:`�׉Xì±_À×¼_Äð×­cÆv¿_V ØÙ_xxå_ÿ_XXHØ`öxØ`yy:`(`Yrq˜ØA`((M`[`))e`t`ýÈØq`þÙ‘`ÚŽ`ÛŸ`Ü@Ùœ`ÝxÙ©`–Ì[èÙ°`—¹`×`—Ú`—æ`¬Úî`¬ñ`¬ç`¬ü`±0Ú aºXÚa»xÚ*aæ Ú'açÐÚ|?˜[M|Q3|@;|AM|Bb|Cx|D�|E�|E�|F´|GÌ|HÞ|Iò|J}K}L0}NL}O¨Pi}Uƒ}Vå}Wý}X~Y$~Z5~[J~\Y~]i~^{~a¡}_ž}`äpb²}cÇ}dÝ}eõ}f ~g~h-~iB~jQ~ka~ls~m³�q]ƒ~†~‰~Œ~ �~ “~ —~ š~ �~ ~£~¦~©~�~”~¬~¯~m²~M‹»~Øu×uÒuÌuÇu!Á~/Ê~7Ù~Aà~BŸSCè~Dó~E÷~Fý~HG IJˆ‘�fK#L'l+t–^'2(E)\TmVt5{�z z²zÁz  z²z×zÞzæzîzôz úz{-ß‚.{/¡‡:©|0){1={2N{3f{4z{5‹{6£{7q8µ{9¿{;t‚DˆVÐ{WÓ{X¡}cž}dæ{<æ{<ñ{=À‡>|?˜[N|U3|@;|AM|Bb|Cx|E�|F�|F�|G´|HÌ|IÞ|Jò|K}L€‚M0}OL}PXÿS¨Tž‚Q–‚Ri}Yƒ}Zý}[õ}h~\ ~i$~]~j5~^-~kJ~_B~lY~`Q~mi~aa~n{~bs~oäpe²}fÇ}g²‚µ‚¾‚ɂƂЂÙ‚Ü‚�„¨„±„°„�Ä�„Ó„ ß„ ê„_‚ú„…(%…7…G…W…g…�Äx… w… ƒ…Š…’… �„¨„±„°„�Ä�„Ó„ ¨„Ÿ… ±„­…¿…Ó…7…G…W…g…�Äx… w… ƒ…Š…’… €ï…†† ûá�†=t<†D†L†'† 1† ;†C†K†S† ^†g†p† z†�†І ”† Ÿ† ª†±† »†Æʆ Ô† á†é† €ï…†† ûá�†=t<†D†L†'† 1† ;†C†K†S† ^†g†p† z†�†І ”† Ÿ† ª†±† »†Æʆ Ô† á†é†  ‡q¦‡ ¬‡ ´‡¿‡ãƒÞƒ‘�胣�Ò] ñƒýƒ„i�„ „(„ ƒq]›�0„ˆ�7„\�Á~ Ї r�?„º‰ b�²‚µ‚¾‚ɂƂЂÙ‚܂ڈÎrèˆøˆq]üˆ‰ ‰‰‰‰"‰+‰4‰;‰:‰@‰D‰H‰M‰T‰X‰\‰7‰~‹`‰d‰WPh‰k‰r‰y‰}‰�‰…‰‰‰�‰®‹“‰—‰»~Ÿ‰Øu×uÒuÌuÇu¤‰Á~Ûlª‰výu³‰2E\‰ωá‰ë‰Š Š ŠÊ~ŠŠ7ŠCŠ]Š{tŠÙ~|ЉДЛСЦЫгмŠà~ÁŠè~ó~÷~ý~ ÊŠЊÖŠÞŠâŠëŠéŠñŠýŠm ‹t‹|Œ'‹-‹4‹A‹ŠJ‹c‹S‹[‹j‹t‹�ŒœŠ–Šy‹�‹‰‹�‹˜‹²~Š¡‹¨‹ãƒƒŠ²‹»‹¿‹Ì‹Ý‹ê‹ï‹ƒö‹ÿ‹ŒŒŒ%Œ:Œ?ŒJŒUŒ]ŒqŒ‚Œ‘��Œ¢Œ¦ŒªŒ®Œ²Œ¶ŒºŒ¾Œ^ƌόیߌïŒóŒ���)�<�N�Z�ãŒk�o�z�ƒ�‡�‹���š�ž�ª�­�±�@bµ�Å�Ø�Ý�ë�ŽŽ'Ž9ŽHŽSŽeŽwŽ’Ž¥ŽªŽ´Ž¹Ž¾ŽÍŽàŽçŽðŽùŽ� ��c"�7�H�T�Y�^�j�v�…�•�§�¯�Â�ß�ñ� �$�4�F�K�V�R�[�`�e�t�{�…�š�§�%g·�¼�Á�Æ�Ë�Ð�Õ�Ú�ß�ä�é�”lî�ô�‘‘+‘7‘@‘P‘U‘Z‘_‘e‘o‘t‘y‘~‘ˆ‘˜‘¡‘³‘¸‘ˑݑ­c’ ’’!’(’1’<’@’D’P@P0 @ ` 0€–¢² à `A--õþÿo°( K (—0ˆÅÈ4À� ûÿÿoþÿÿo¸3ÿÿÿoðÿÿot1ùÿÿ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í€í�í í°íÀíÐíàíðíîî î0î@îPî`îpî€î�î î°îÀîÐîàîðîïï ï0ï@ïPï`ïpï€ï�ï ï°ïÀïÐïàïðïðð ð0ð@ð  Ã8K`KÍã̓+0Ú «P°É‹¸ÓaϸZ¿Z†KLØ—ÔhË]�ÅÞø®¥lŒÙ`Q8K`KoYmýš0Ú «P°É‹ÃnŠ]ÈZÐZ8qý‹Hˆ¶Z IdSÖnN�rº=�¡8K`KÀÇ�Ö€Ù0Ú 4Ÿ;pÉ‹·(´˜ÛZåZò�ç06&'C›Ð ø*€òð^ Œ8K`KÀÇÐÌ0Î0Ú 4@òpÉ‹àé`ºñZúZòÐË06Ž”ÖÐ ø*€òð^°‹8K`KÀÇÀÌ Î0Ú 40òpÉ‹ÀéP¹[[ò°Ë06p�°Žý‘Ð ø*€òð^@‹8K`KÀÇ0ÌàÌ0Ú 4ÀîpÉ‹`瀣P[ò0Ê06ÐŒð‹éŽÐ ø*€òð^p´¸@´à¼À¥ ¤€£`¢@¡  @¸Ûj�$©ÛÚ“F¥IJó<Ç@DkD0 `µUÑ@Ð\PòÀ^Ðòð¹¿À¿&tt+Jt# t#t+Qt+Yt#@`t¶f`ÿÿÿÿÿÿÿÿÄ@ y´ÅgzÄ@y ÄQz$Ä>z(Ääy*Äùy,Äz.Ä&z0Äžy2ĺyDÄÖyHÄ „yPÄkyXÄRy`Ä:yhÄÿzFÄ`oz@ÿÿÿÿPaÿÿÿÿÿÿÿÿxÆ@ yˆÈgzxÆ@y€ÆQz„Æ>zˆÆäyŠÆùyŒÆzŽÆ&z�Æžy’ƺy¤ÆÖy¨Æ „y°Æky¸ÆRyÀÆ:yÈÆÿz¦Æ@oz&tÑ�+T€+ t#t¿ZM‚`€¿Zõ†`€‡ ‡à‡‡"à$‡3‡ àA‡V‡àj‡}‡OàÐZåx@‚ÐZ�‡@‚‡ ‡À�‡‡"À�$‡3‡ À�A‡V‡À�j‡}‡OÀ�&tÑ�+T€+ t#tÀ/usr/lib/debug/.dwz/x86_64-linux-gnu/binutils-x86-64-linux-gnu.debugŸ éľ!jd&†åš¨‘.shstrtab.interp.note.gnu.property.note.gnu.build-id.note.ABI-tag.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.got.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.data.bss.gnu_debugaltlink 880&hh$9ŒŒ Göÿÿo°°\Q Y((Kaÿÿÿot1t1Bnþÿÿo¸3¸3}È4È4À�‡BˆÅˆÅ0‘ààŒ à à0—PðPðP  ð ð ©ÀÀž@¯`A`A µPPé_ ½ì¯ì¯|ËhÄhÄ„YÕ--á--í - -èg ú•• ›(—(—Ø    ´´@ ´Yq´