diff --git a/configure.ac b/configure.ac index 904a726e..84a781a2 100644 --- a/configure.ac +++ b/configure.ac @@ -626,6 +626,11 @@ if test x$ABIGAIL_DEBUG != x; then CXXFLAGS="$CXXFLAGS -Og -g3 -ggdb" fi +if test x$ABIGAIL_NO_OPTIMIZATION_DEBUG != x; then + CFLAGS="-g -O0 -Wall -Wextra -Werror" + CXXFLAGS="-g -O0 -Wall -Wextra -Werror" +fi + if test x$ENABLE_ASAN = xyes; then CFLAGS="$CFLAGS -fsanitize=address" CXXFLAGS="$CXXFLAGS -fsanitize=address" diff --git a/doc/manuals/abidiff.rst b/doc/manuals/abidiff.rst index 6aac73bb..74c3ebfd 100644 --- a/doc/manuals/abidiff.rst +++ b/doc/manuals/abidiff.rst @@ -101,8 +101,18 @@ Options * ``--headers-dir1 | --hd1`` Specifies where to find the public headers of the first shared - library that the tool has to consider. The tool will thus filter - out ABI changes on types that are not defined in public headers. + library (or binary in general) that the tool has to consider. The + tool will thus filter out ABI changes on types that are not + defined in public headers. + + Note that several public header directories can be specified for + the first shared library. In that case the ``--headers-dir1`` + option should be present several times on the command line, like + in the following example: :: + + $ abidiff --headers-dir1 /some/path \ + --headers-dir1 /some/other/path \ + binary-version-1 binary-version-2 * ``--header-file1 | --hf1`` @@ -116,6 +126,15 @@ Options library that the tool has to consider. The tool will thus filter out ABI changes on types that are not defined in public headers. + Note that several public header directories can be specified for + the second shared library. In that case the ``--headers-dir2`` + option should be present several times like in the following + example: :: + + $ abidiff --headers-dir2 /some/path \ + --headers-dir2 /some/other/path \ + binary-version-1 binary-version-2 + * ``--header-file2 | --hf2`` Specifies where to find one public header of the second shared diff --git a/doc/manuals/abidw.rst b/doc/manuals/abidw.rst index d0720a0b..a67e5fa2 100644 --- a/doc/manuals/abidw.rst +++ b/doc/manuals/abidw.rst @@ -128,9 +128,18 @@ Options * ``--headers-dir | --hd`` - Specifies where to find the public headers of the first shared - library that the tool has to consider. The tool will thus filter - out types that are not defined in public headers. + Specifies where to find the public headers of the binary that the + tool has to consider. The tool will thus filter out types that + are not defined in public headers. + + Note that several public header directories can be specified for + the binary to consider. In that case the ``--header-dir`` option + should be present several times on the command line, like in the + following example: :: + + $ abidw --header-dir /some/path \ + --header-dir /some/other/path \ + binary > binary.abi * ``--header-file | --hf`` diff --git a/doc/manuals/kmidiff.rst b/doc/manuals/kmidiff.rst index 011dbafd..557965f2 100644 --- a/doc/manuals/kmidiff.rst +++ b/doc/manuals/kmidiff.rst @@ -70,23 +70,22 @@ functions and variables) between the Kernel and its modules. In practice, though, users want to compare a subset of the those interfaces. -Users can then define a "white list" of the interfaces to compare. -Such a white list is a just a file in the "INI" format that looks -like: :: +Users can then define a "symbol list" of the interfaces to compare. +Such a list is a just a file in the "INI" format that looks like: :: - [kernel_version_x86_64_whitelist] + [kernel_version_x86_64_symbol_list] function1_name function2_name global_variable1_name .... -Note that the name of the section (the name that is between the two -brackets) of that INI file just has to end with the string -"whitelist". So you can define the name you want, for instance -``[kernel_46_x86_64_whitelist]``. +Note that the name of the section (the name that is between the two brackets) +of that INI file just has to end with the string "symbol_list" or "whitelist". +So you can define the name you want, for instance +``[kernel_46_x86_64_symbol_list]``. -Then each line of that whitelist file is the name of an exported +Then each line of that symbol list file is the name of an exported function or variable. Only those interfaces along with the types reachable from their signatures are going to be compared by ``kmidiff`` recursively. diff --git a/include/abg-fwd.h b/include/abg-fwd.h index 321d0a9f..01f3b12f 100644 --- a/include/abg-fwd.h +++ b/include/abg-fwd.h @@ -703,11 +703,14 @@ array_type_def_sptr is_array_type(const type_or_decl_base_sptr& decl); array_type_def_sptr -is_array_of_qualified_element(type_base_sptr&); +is_array_of_qualified_element(const type_base_sptr&); qualified_type_def_sptr is_array_of_qualified_element(const array_type_def_sptr&); +array_type_def_sptr +is_typedef_of_array(const type_base_sptr&); + void set_data_member_offset(var_decl_sptr, uint64_t); @@ -848,6 +851,9 @@ peel_qualified_type(const type_base_sptr&); type_base* peel_qualified_or_typedef_type(const type_base* type); +type_base_sptr +peel_qualified_or_typedef_type(const type_base_sptr &type); + type_base_sptr peel_typedef_pointer_or_reference_type(const type_base_sptr); @@ -858,6 +864,18 @@ type_base* peel_pointer_or_reference_type(const type_base *type, bool peel_qualified_type = true); +array_type_def_sptr +clone_array(const array_type_def_sptr& array); + +typedef_decl_sptr +clone_typedef(const typedef_decl_sptr& t); + +qualified_type_def_sptr +clone_qualified_type(const qualified_type_def_sptr& t); + +type_base_sptr +clone_array_tree(const type_base_sptr t); + string get_name(const type_or_decl_base*, bool qualified = true); diff --git a/include/abg-ir.h b/include/abg-ir.h index 41b6f8ba..676b844e 100644 --- a/include/abg-ir.h +++ b/include/abg-ir.h @@ -1736,6 +1736,9 @@ class scope_decl : public virtual decl_base declarations& get_member_decls(); + const declarations& + get_sorted_member_decls() const; + virtual size_t get_num_anonymous_member_classes() const; @@ -2112,6 +2115,9 @@ class qualified_type_def : public virtual type_base, public virtual decl_base type_base_sptr get_underlying_type() const; + void + set_underlying_type(const type_base_sptr&); + virtual void get_qualified_name(interned_string& qualified_name, bool internal = false) const; @@ -2356,7 +2362,7 @@ class array_type_def : public virtual type_base, public virtual decl_base const string& name, bound_value lower_bound, bound_value upper_bound, - type_base_sptr& underlying_type, + const type_base_sptr& underlying_type, const location& loc, translation_unit::language l = translation_unit::LANG_C11); @@ -2675,6 +2681,9 @@ class typedef_decl : public virtual type_base, public virtual decl_base type_base_sptr get_underlying_type() const; + void + set_underlying_type(const type_base_sptr&); + virtual bool traverse(ir_node_visitor&); @@ -3177,6 +3186,9 @@ class function_type : public virtual type_base parameters::const_iterator get_first_non_implicit_parm() const; + parameters::const_iterator + get_first_parm() const; + const interned_string& get_cached_name(bool internal = false) const; diff --git a/include/abg-reporter.h b/include/abg-reporter.h index bf113f05..6aec6a65 100644 --- a/include/abg-reporter.h +++ b/include/abg-reporter.h @@ -175,9 +175,9 @@ class default_reporter : public reporter_base const std::string& indent = "") const; void - report_local_typedef_changes(const typedef_diff &d, - std::ostream& out, - const std::string& indent) const; + report_non_type_typedef_changes(const typedef_diff &d, + std::ostream& out, + const std::string& indent) const; virtual void report(const typedef_diff& d, std::ostream& out, diff --git a/include/abg-tools-utils.h b/include/abg-tools-utils.h index c47e3f4e..dc62b3ff 100644 --- a/include/abg-tools-utils.h +++ b/include/abg-tools-utils.h @@ -91,6 +91,10 @@ suppr::type_suppression_sptr gen_suppr_spec_from_headers(const string& hdrs_root_dir, const vector& hdr_files); +suppr::type_suppression_sptr +gen_suppr_spec_from_headers(const vector& headers_root_dirs, + const vector& header_files); + suppr::suppressions_type gen_suppr_spec_from_kernel_abi_whitelists (const vector& abi_whitelist_paths); @@ -218,7 +222,7 @@ enum abidiff_status /// Its numerical value is 0. ABIDIFF_OK = 0, - /// This bit is set if there an application error. + /// This bit is set if there is an application error. /// /// Its numerical value is 1. ABIDIFF_ERROR = 1, diff --git a/patches/Integrate-new-symtab-reader-into-corpus-and-read_context.patch b/patches/Integrate-new-symtab-reader-into-corpus-and-read_context.patch index f866afe4..875e8b66 100644 --- a/patches/Integrate-new-symtab-reader-into-corpus-and-read_context.patch +++ b/patches/Integrate-new-symtab-reader-into-corpus-and-read_context.patch @@ -100,7 +100,7 @@ index ee8c823964e7..5c1e915ad2f3 100644 string_elf_symbols_map_sptr undefined_fun_symbol_map; elf_symbols sorted_fun_symbols; diff --git a/src/abg-corpus.cc b/src/abg-corpus.cc -index 9e90b99473d3..94702047dd82 100644 +index 0e8e6d71b15e..3d74b8163f22 100644 --- a/src/abg-corpus.cc +++ b/src/abg-corpus.cc @@ -38,6 +38,7 @@ ABG_BEGIN_EXPORT_DECLARATIONS @@ -127,7 +127,7 @@ index 9e90b99473d3..94702047dd82 100644 /// /// @param map a shared pointer to the new function symbols map. diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc -index 7c56bd8c4276..788b167db388 100644 +index 7257052e6e45..d6e130ad4a74 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc @@ -50,6 +50,7 @@ @@ -188,7 +188,7 @@ index 7c56bd8c4276..788b167db388 100644 /// Getter for a pointer to the map that associates the address of /// an entry point of a function with the symbol of that function. /// -@@ -15819,6 +15842,7 @@ read_debug_info_into_corpus(read_context& ctxt) +@@ -15829,6 +15852,7 @@ read_debug_info_into_corpus(read_context& ctxt) group->add_corpus(ctxt.current_corpus()); // Set symbols information to the corpus. @@ -196,7 +196,7 @@ index 7c56bd8c4276..788b167db388 100644 if (!get_ignore_symbol_table(ctxt)) { if (ctxt.load_in_linux_kernel_mode() -@@ -17125,6 +17149,9 @@ read_corpus_from_elf(read_context& ctxt, status& status) +@@ -17135,6 +17159,9 @@ read_corpus_from_elf(read_context& ctxt, status& status) status |= STATUS_NO_SYMBOLS_FOUND; } @@ -207,7 +207,7 @@ index 7c56bd8c4276..788b167db388 100644 status & STATUS_NO_SYMBOLS_FOUND // ... or if debug info was found but not the required alternate diff --git a/src/abg-reader.cc b/src/abg-reader.cc -index e72a5de9ac0e..418c037263aa 100644 +index 315747389bc7..94ebf3b91db6 100644 --- a/src/abg-reader.cc +++ b/src/abg-reader.cc @@ -47,6 +47,7 @@ ABG_BEGIN_EXPORT_DECLARATIONS diff --git a/patches/KMI-Whitelists-allow-alternative-section-suffix-symbol_list.patch b/patches/KMI-Whitelists-allow-alternative-section-suffix-symbol_list.patch new file mode 100644 index 00000000..f05cce5f --- /dev/null +++ b/patches/KMI-Whitelists-allow-alternative-section-suffix-symbol_list.patch @@ -0,0 +1,256 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Matthias Maennich +Date: Fri, 28 Aug 2020 20:57:06 +0100 +Subject: KMI Whitelists: allow alternative section suffix 'symbol_list' + +As of now, KMI whitelists are defined as ini-file style sections named +with trailing "whitelist". A number of projects have recently introduced +policies that discourage the use of terminology with negative +connotations in an effort to make the language used in their code base +more inclusive. One of such terms is 'whitelist'. In order to support +projects choosing to avoid this term, add support for an alternative: +"symbol_list". This allows e.g. a section name "[abi_symbol_list]". + +While commonly chosen alternatives are "allow_list", "include_list" or +similar, I intentionally took out any positive/negative meaning as I +think those are anyway misleading. (Is the whitelist referring to symbols +that are allowed to change or is it referring to the list of symbols +that are kept stable?) In an effort to make this more obvious, I went for +"symbol list" to describe the symbols that are part of the ABI analysis +either during extraction or during comparison. + +This is a backwards compatible change as we still support the prior +suffix. I adjusted documentation and added tests accordingly. + + * doc/manuals/kmidiff.rst: Adjust documentation. + * src/abg-tools-utils.cc (gen_suppr_spec_from_kernel_abi_whitelists): + add support for additional whitelist section suffix. + * tests/data/Makefile.am: Add new test files. + * tests/data/test-kmi-whitelist/symbol-list-with-another-single-entry: New test case. + * tests/data/test-kmi-whitelist/symbol-list-with-duplicate-entry: Likewise. + * tests/data/test-kmi-whitelist/symbol-list-with-single-entry: Likewise. + * tests/data/test-kmi-whitelist/symbol-list-with-two-sections: Likewise. + * tests/test-kmi-whitelist.cc: Wire up new test cases. + +Reviewed-by: Giuliano Procida +Signed-off-by: Matthias Maennich +--- + doc/manuals/kmidiff.rst | 17 ++-- + src/abg-tools-utils.cc | 7 +- + tests/data/Makefile.am | 4 + + .../symbol-list-with-another-single-entry | 2 + + .../symbol-list-with-duplicate-entry | 3 + + .../symbol-list-with-single-entry | 2 + + .../symbol-list-with-two-sections | 5 ++ + tests/test-kmi-whitelist.cc | 78 +++++++++++++++++++ + 8 files changed, 106 insertions(+), 12 deletions(-) + create mode 100644 tests/data/test-kmi-whitelist/symbol-list-with-another-single-entry + create mode 100644 tests/data/test-kmi-whitelist/symbol-list-with-duplicate-entry + create mode 100644 tests/data/test-kmi-whitelist/symbol-list-with-single-entry + create mode 100644 tests/data/test-kmi-whitelist/symbol-list-with-two-sections + +diff --git a/doc/manuals/kmidiff.rst b/doc/manuals/kmidiff.rst +index 011dbafd41fa..557965f294d4 100644 +--- a/doc/manuals/kmidiff.rst ++++ b/doc/manuals/kmidiff.rst +@@ -70,23 +70,22 @@ functions and variables) between the Kernel and its modules. In + practice, though, users want to compare a subset of the those + interfaces. + +-Users can then define a "white list" of the interfaces to compare. +-Such a white list is a just a file in the "INI" format that looks +-like: :: ++Users can then define a "symbol list" of the interfaces to compare. ++Such a list is a just a file in the "INI" format that looks like: :: + +- [kernel_version_x86_64_whitelist] ++ [kernel_version_x86_64_symbol_list] + function1_name + function2_name + global_variable1_name + .... + + +-Note that the name of the section (the name that is between the two +-brackets) of that INI file just has to end with the string +-"whitelist". So you can define the name you want, for instance +-``[kernel_46_x86_64_whitelist]``. ++Note that the name of the section (the name that is between the two brackets) ++of that INI file just has to end with the string "symbol_list" or "whitelist". ++So you can define the name you want, for instance ++``[kernel_46_x86_64_symbol_list]``. + +-Then each line of that whitelist file is the name of an exported ++Then each line of that symbol list file is the name of an exported + function or variable. Only those interfaces along with the types + reachable from their signatures are going to be compared by + ``kmidiff`` recursively. +diff --git a/src/abg-tools-utils.cc b/src/abg-tools-utils.cc +index 6f4ec6fa4d41..428dcc6b190c 100644 +--- a/src/abg-tools-utils.cc ++++ b/src/abg-tools-utils.cc +@@ -1954,8 +1954,8 @@ gen_suppr_spec_from_headers(const string& headers_root_dir) + /// + /// A kernel ABI whitelist file is an INI file that usually has only + /// one section. The name of the section is a string that ends up +-/// with the sub-string "whitelist". For instance +-/// RHEL7_x86_64_whitelist. ++/// with the sub-string "symbol_list" or "whitelist". For instance ++/// RHEL7_x86_64_symbol_list. + /// + /// Then the content of the section is a set of function or variable + /// names, one name per line. Each function or variable name is the +@@ -2001,7 +2001,8 @@ gen_suppr_spec_from_kernel_abi_whitelists + ++section_iter) + { + std::string section_name = (*section_iter)->get_name(); +- if (!string_ends_with(section_name, "whitelist")) ++ if (!string_ends_with(section_name, "symbol_list") ++ && !string_ends_with(section_name, "whitelist")) + continue; + for (ini::config::properties_type::const_iterator + prop_iter = (*section_iter)->get_properties().begin(), +diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am +index 92eed744c561..79e142174979 100644 +--- a/tests/data/Makefile.am ++++ b/tests/data/Makefile.am +@@ -1826,6 +1826,10 @@ test-kmi-whitelist/whitelist-with-single-entry \ + test-kmi-whitelist/whitelist-with-another-single-entry \ + test-kmi-whitelist/whitelist-with-duplicate-entry \ + test-kmi-whitelist/whitelist-with-two-sections \ ++test-kmi-whitelist/symbol-list-with-single-entry \ ++test-kmi-whitelist/symbol-list-with-another-single-entry \ ++test-kmi-whitelist/symbol-list-with-duplicate-entry \ ++test-kmi-whitelist/symbol-list-with-two-sections \ + \ + test-symtab/basic/Makefile \ + test-symtab/basic/aliases.c \ +diff --git a/tests/data/test-kmi-whitelist/symbol-list-with-another-single-entry b/tests/data/test-kmi-whitelist/symbol-list-with-another-single-entry +new file mode 100644 +index 000000000000..beebb25b1840 +--- /dev/null ++++ b/tests/data/test-kmi-whitelist/symbol-list-with-another-single-entry +@@ -0,0 +1,2 @@ ++[abi_symbol_list] ++ test_another_symbol +diff --git a/tests/data/test-kmi-whitelist/symbol-list-with-duplicate-entry b/tests/data/test-kmi-whitelist/symbol-list-with-duplicate-entry +new file mode 100644 +index 000000000000..1537efcaf5a3 +--- /dev/null ++++ b/tests/data/test-kmi-whitelist/symbol-list-with-duplicate-entry +@@ -0,0 +1,3 @@ ++[abi_symbol_list] ++ test_symbol ++ test_symbol +diff --git a/tests/data/test-kmi-whitelist/symbol-list-with-single-entry b/tests/data/test-kmi-whitelist/symbol-list-with-single-entry +new file mode 100644 +index 000000000000..a63b7096f2ca +--- /dev/null ++++ b/tests/data/test-kmi-whitelist/symbol-list-with-single-entry +@@ -0,0 +1,2 @@ ++[abi_symbol_list] ++ test_symbol +diff --git a/tests/data/test-kmi-whitelist/symbol-list-with-two-sections b/tests/data/test-kmi-whitelist/symbol-list-with-two-sections +new file mode 100644 +index 000000000000..f8e77b732c28 +--- /dev/null ++++ b/tests/data/test-kmi-whitelist/symbol-list-with-two-sections +@@ -0,0 +1,5 @@ ++[abi_symbol_list] ++ test_symbol1 ++ ++[abi2_symbol_list] ++ test_symbol2 +diff --git a/tests/test-kmi-whitelist.cc b/tests/test-kmi-whitelist.cc +index bcc5adee433c..d0e08f5a10c9 100644 +--- a/tests/test-kmi-whitelist.cc ++++ b/tests/test-kmi-whitelist.cc +@@ -57,6 +57,22 @@ const static std::string whitelist_with_duplicate_entry + = std::string(abigail::tests::get_src_dir()) + + "/tests/data/test-kmi-whitelist/whitelist-with-duplicate-entry"; + ++const static std::string symbol_list_with_single_entry ++ = std::string(abigail::tests::get_src_dir()) ++ + "/tests/data/test-kmi-whitelist/symbol-list-with-single-entry"; ++ ++const static std::string symbol_list_with_another_single_entry ++ = std::string(abigail::tests::get_src_dir()) ++ + "/tests/data/test-kmi-whitelist/symbol-list-with-another-single-entry"; ++ ++const static std::string symbol_list_with_two_sections ++ = std::string(abigail::tests::get_src_dir()) ++ + "/tests/data/test-kmi-whitelist/symbol-list-with-two-sections"; ++ ++const static std::string symbol_list_with_duplicate_entry ++ = std::string(abigail::tests::get_src_dir()) ++ + "/tests/data/test-kmi-whitelist/symbol-list-with-duplicate-entry"; ++ + void + test_suppressions_are_consistent(const suppressions_type& suppr, + const std::string& expr) +@@ -142,3 +158,65 @@ TEST_CASE("WhitelistWithTwoSections", "[whitelists]") + REQUIRE(!suppr.empty()); + test_suppressions_are_consistent(suppr, "^(test_symbol1|test_symbol2)$"); + } ++ ++TEST_CASE("NoSymbolLists", "[symbol_lists]") ++{ ++ const std::vector abi_symbol_list_paths; ++ suppressions_type suppr = ++ gen_suppr_spec_from_kernel_abi_whitelists(abi_symbol_list_paths); ++ REQUIRE(suppr.empty()); ++} ++ ++TEST_CASE("SymbolListWithASingleEntry", "[symbol_lists]") ++{ ++ std::vector abi_symbol_list_paths; ++ abi_symbol_list_paths.push_back(symbol_list_with_single_entry); ++ suppressions_type suppr ++ = gen_suppr_spec_from_kernel_abi_whitelists(abi_symbol_list_paths); ++ REQUIRE(!suppr.empty()); ++ test_suppressions_are_consistent(suppr, "^(test_symbol)$"); ++} ++ ++TEST_CASE("SymbolListWithADuplicateEntry", "[symbol_lists]") ++{ ++ std::vector abi_symbol_list_paths; ++ abi_symbol_list_paths.push_back(symbol_list_with_duplicate_entry); ++ suppressions_type suppr ++ = gen_suppr_spec_from_kernel_abi_whitelists(abi_symbol_list_paths); ++ REQUIRE(!suppr.empty()); ++ test_suppressions_are_consistent(suppr, "^(test_symbol)$"); ++} ++ ++TEST_CASE("TwoSymbolLists", "[symbol_lists]") ++{ ++ std::vector abi_symbol_list_paths; ++ abi_symbol_list_paths.push_back(symbol_list_with_single_entry); ++ abi_symbol_list_paths.push_back(symbol_list_with_another_single_entry); ++ suppressions_type suppr = ++ gen_suppr_spec_from_kernel_abi_whitelists(abi_symbol_list_paths); ++ REQUIRE(!suppr.empty()); ++ test_suppressions_are_consistent(suppr, ++ "^(test_another_symbol|test_symbol)$"); ++} ++ ++TEST_CASE("TwoSymbolListsWithDuplicates", "[symbol_lists]") ++{ ++ std::vector abi_symbol_list_paths; ++ abi_symbol_list_paths.push_back(symbol_list_with_duplicate_entry); ++ abi_symbol_list_paths.push_back(symbol_list_with_another_single_entry); ++ suppressions_type suppr ++ = gen_suppr_spec_from_kernel_abi_whitelists(abi_symbol_list_paths); ++ REQUIRE(!suppr.empty()); ++ test_suppressions_are_consistent(suppr, ++ "^(test_another_symbol|test_symbol)$"); ++} ++ ++TEST_CASE("SymbolListWithTwoSections", "[symbol_lists]") ++{ ++ std::vector abi_symbol_list_paths; ++ abi_symbol_list_paths.push_back(symbol_list_with_two_sections); ++ suppressions_type suppr ++ = gen_suppr_spec_from_kernel_abi_whitelists(abi_symbol_list_paths); ++ REQUIRE(!suppr.empty()); ++ test_suppressions_are_consistent(suppr, "^(test_symbol1|test_symbol2)$"); ++} diff --git a/patches/Switch-kernel-stuff-over-to-new-symtab-and-drop-unused-code.patch b/patches/Switch-kernel-stuff-over-to-new-symtab-and-drop-unused-code.patch index 65d6e10e..2ad22c10 100644 --- a/patches/Switch-kernel-stuff-over-to-new-symtab-and-drop-unused-code.patch +++ b/patches/Switch-kernel-stuff-over-to-new-symtab-and-drop-unused-code.patch @@ -73,7 +73,7 @@ Signed-off-by: Matthias Maennich 1 file changed, 22 insertions(+), 1172 deletions(-) diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc -index 58eb9e92a6d2..94ecb815af50 100644 +index b3b7ad88688e..1c317c23275c 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc @@ -2172,26 +2172,6 @@ public: @@ -1285,7 +1285,7 @@ index 58eb9e92a6d2..94ecb815af50 100644 /// This is a sub-routine of maybe_adjust_fn_sym_address and /// maybe_adjust_var_sym_address. /// -@@ -15712,34 +14611,6 @@ build_function_decl(read_context& ctxt, +@@ -15722,34 +14621,6 @@ build_function_decl(read_context& ctxt, return result; } @@ -1320,7 +1320,7 @@ index 58eb9e92a6d2..94ecb815af50 100644 /// Add a symbol to a symbol map. /// /// @param sym the symbol to add. -@@ -15763,34 +14634,6 @@ add_symbol_to_map(const elf_symbol_sptr& sym, +@@ -15773,34 +14644,6 @@ add_symbol_to_map(const elf_symbol_sptr& sym, it->second.push_back(sym); } @@ -1355,7 +1355,7 @@ index 58eb9e92a6d2..94ecb815af50 100644 /// Read all @ref abigail::translation_unit possible from the debug info /// accessible through a DWARF Front End Library handle, and stuff /// them into a libabigail ABI Corpus. -@@ -15834,22 +14677,29 @@ read_debug_info_into_corpus(read_context& ctxt) +@@ -15844,22 +14687,29 @@ read_debug_info_into_corpus(read_context& ctxt) { string_elf_symbols_map_sptr exported_fn_symbols_map (new string_elf_symbols_map_type); diff --git a/patches/abg-corpus-remove-symbol-maps-and-their-setters.patch b/patches/abg-corpus-remove-symbol-maps-and-their-setters.patch index 6eca338c..d5c45755 100644 --- a/patches/abg-corpus-remove-symbol-maps-and-their-setters.patch +++ b/patches/abg-corpus-remove-symbol-maps-and-their-setters.patch @@ -188,7 +188,7 @@ index f2e895bf1e7d..fcb6d7a66b8e 100644 get_unreferenced_variable_symbols() const; diff --git a/src/abg-corpus.cc b/src/abg-corpus.cc -index 0f5d51820891..1f72904d137f 100644 +index 84d6683dbf9d..67f878dd6266 100644 --- a/src/abg-corpus.cc +++ b/src/abg-corpus.cc @@ -347,6 +347,22 @@ corpus::priv::get_sorted_fun_symbols() const @@ -424,10 +424,10 @@ index 0f5d51820891..1f72904d137f 100644 /// Look in the function symbols map for a symbol with a given name. /// diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc -index 6e4250d9ed40..f0421d31e41b 100644 +index 34b1d2f1fbaf..ac12d6de0eff 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc -@@ -14470,54 +14470,6 @@ read_debug_info_into_corpus(read_context& ctxt) +@@ -14480,54 +14480,6 @@ read_debug_info_into_corpus(read_context& ctxt) // Set symbols information to the corpus. ctxt.current_corpus()->set_symtab(ctxt.symtab()); @@ -483,7 +483,7 @@ index 6e4250d9ed40..f0421d31e41b 100644 // Get out now if no debug info is found. if (!ctxt.dwarf()) diff --git a/src/abg-reader.cc b/src/abg-reader.cc -index 9833ea163d74..d7771e02a66b 100644 +index a2eeedeb3389..525732e044b6 100644 --- a/src/abg-reader.cc +++ b/src/abg-reader.cc @@ -1913,17 +1913,6 @@ read_corpus_from_input(read_context& ctxt) @@ -505,7 +505,7 @@ index 9833ea163d74..d7771e02a66b 100644 ctxt.get_environment()->canonicalization_is_done(false); diff --git a/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi b/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi -index 4bfcd041c9c4..de9ad546e6d0 100644 +index 62b6efb555e0..5b8e0437fb66 100644 --- a/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi +++ b/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi @@ -37,8 +37,6 @@ diff --git a/patches/abg-elf-helpers-migrate-ppc64-specific-helpers.patch b/patches/abg-elf-helpers-migrate-ppc64-specific-helpers.patch index 6ceb1030..8c719da1 100644 --- a/patches/abg-elf-helpers-migrate-ppc64-specific-helpers.patch +++ b/patches/abg-elf-helpers-migrate-ppc64-specific-helpers.patch @@ -39,7 +39,7 @@ Signed-off-by: Matthias Maennich 3 files changed, 198 insertions(+), 204 deletions(-) diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc -index 94ecb815af50..6e4250d9ed40 100644 +index 1c317c23275c..34b1d2f1fbaf 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc @@ -2168,10 +2168,6 @@ public: diff --git a/patches/abg-ir-elf_symbol-add-is_in_ksymtab-field.patch b/patches/abg-ir-elf_symbol-add-is_in_ksymtab-field.patch index c88e3320..e499cfcb 100644 --- a/patches/abg-ir-elf_symbol-add-is_in_ksymtab-field.patch +++ b/patches/abg-ir-elf_symbol-add-is_in_ksymtab-field.patch @@ -34,7 +34,7 @@ Signed-off-by: Matthias Maennich 2 files changed, 86 insertions(+), 53 deletions(-) diff --git a/include/abg-ir.h b/include/abg-ir.h -index f17a3bf9f200..54b4bb7b3dbe 100644 +index c7c4c8e44aac..d1bed2923f2d 100644 --- a/include/abg-ir.h +++ b/include/abg-ir.h @@ -851,8 +851,9 @@ private: @@ -93,10 +93,10 @@ index f17a3bf9f200..54b4bb7b3dbe 100644 get_main_symbol() const; diff --git a/src/abg-ir.cc b/src/abg-ir.cc -index 358a7a26a9d3..690892002923 100644 +index 8c04797f574c..147877f88218 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc -@@ -1319,6 +1319,7 @@ struct elf_symbol::priv +@@ -1323,6 +1323,7 @@ struct elf_symbol::priv // STT_COMMON definition of that name that has the largest size. bool is_common_; bool is_linux_string_cst_; @@ -104,7 +104,7 @@ index 358a7a26a9d3..690892002923 100644 elf_symbol_wptr main_symbol_; elf_symbol_wptr next_alias_; elf_symbol_wptr next_common_instance_; -@@ -1333,20 +1334,22 @@ struct elf_symbol::priv +@@ -1337,20 +1338,22 @@ struct elf_symbol::priv visibility_(elf_symbol::DEFAULT_VISIBILITY), is_defined_(false), is_common_(false), @@ -139,7 +139,7 @@ index 358a7a26a9d3..690892002923 100644 : env_(e), index_(i), size_(s), -@@ -1357,7 +1360,8 @@ struct elf_symbol::priv +@@ -1361,7 +1364,8 @@ struct elf_symbol::priv visibility_(vi), is_defined_(d), is_common_(c), @@ -149,7 +149,7 @@ index 358a7a26a9d3..690892002923 100644 { if (!is_common_) is_common_ = type_ == COMMON_TYPE; -@@ -1403,19 +1407,30 @@ elf_symbol::elf_symbol() +@@ -1407,19 +1411,30 @@ elf_symbol::elf_symbol() /// /// @param is_linux_string_cst true if the symbol is a Linux Kernel /// string constant defined in the __ksymtab_strings section. @@ -193,7 +193,7 @@ index 358a7a26a9d3..690892002923 100644 {} /// Factory of instances of @ref elf_symbol. -@@ -1462,20 +1477,22 @@ elf_symbol::create() +@@ -1466,20 +1481,22 @@ elf_symbol::create() /// @return a (smart) pointer to a newly created instance of @ref /// elf_symbol. elf_symbol_sptr @@ -230,7 +230,7 @@ index 358a7a26a9d3..690892002923 100644 sym->priv_->main_symbol_ = sym; return sym; } -@@ -1695,6 +1712,14 @@ bool +@@ -1699,6 +1716,14 @@ bool elf_symbol::is_variable() const {return get_type() == OBJECT_TYPE || get_type() == TLS_TYPE;} diff --git a/patches/abg-ir-elf_symbol-add-is_suppressed-field.patch b/patches/abg-ir-elf_symbol-add-is_suppressed-field.patch index 2085dfda..51260c2f 100644 --- a/patches/abg-ir-elf_symbol-add-is_suppressed-field.patch +++ b/patches/abg-ir-elf_symbol-add-is_suppressed-field.patch @@ -29,7 +29,7 @@ Signed-off-by: Matthias Maennich 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/include/abg-ir.h b/include/abg-ir.h -index 54b4bb7b3dbe..14358f47dd5b 100644 +index d1bed2923f2d..4ad0572ebd3d 100644 --- a/include/abg-ir.h +++ b/include/abg-ir.h @@ -853,7 +853,8 @@ private: @@ -66,10 +66,10 @@ index 54b4bb7b3dbe..14358f47dd5b 100644 get_main_symbol() const; diff --git a/src/abg-ir.cc b/src/abg-ir.cc -index 690892002923..eb5d12e18035 100644 +index 147877f88218..74f985bcc6b7 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc -@@ -1320,6 +1320,7 @@ struct elf_symbol::priv +@@ -1324,6 +1324,7 @@ struct elf_symbol::priv bool is_common_; bool is_linux_string_cst_; bool is_in_ksymtab_; @@ -77,7 +77,7 @@ index 690892002923..eb5d12e18035 100644 elf_symbol_wptr main_symbol_; elf_symbol_wptr next_alias_; elf_symbol_wptr next_common_instance_; -@@ -1335,7 +1336,8 @@ struct elf_symbol::priv +@@ -1339,7 +1340,8 @@ struct elf_symbol::priv is_defined_(false), is_common_(false), is_linux_string_cst_(false), @@ -87,7 +87,7 @@ index 690892002923..eb5d12e18035 100644 {} priv(const environment* e, -@@ -1349,7 +1351,8 @@ struct elf_symbol::priv +@@ -1353,7 +1355,8 @@ struct elf_symbol::priv const elf_symbol::version& ve, elf_symbol::visibility vi, bool is_linux_string_cst, @@ -97,7 +97,7 @@ index 690892002923..eb5d12e18035 100644 : env_(e), index_(i), size_(s), -@@ -1361,7 +1364,8 @@ struct elf_symbol::priv +@@ -1365,7 +1368,8 @@ struct elf_symbol::priv is_defined_(d), is_common_(c), is_linux_string_cst_(is_linux_string_cst), @@ -107,7 +107,7 @@ index 690892002923..eb5d12e18035 100644 { if (!is_common_) is_common_ = type_ == COMMON_TYPE; -@@ -1418,7 +1422,8 @@ elf_symbol::elf_symbol(const environment* e, +@@ -1422,7 +1426,8 @@ elf_symbol::elf_symbol(const environment* e, const version& ve, visibility vi, bool is_linux_string_cst, @@ -117,7 +117,7 @@ index 690892002923..eb5d12e18035 100644 : priv_(new priv(e, i, s, -@@ -1430,7 +1435,8 @@ elf_symbol::elf_symbol(const environment* e, +@@ -1434,7 +1439,8 @@ elf_symbol::elf_symbol(const environment* e, ve, vi, is_linux_string_cst, @@ -127,7 +127,7 @@ index 690892002923..eb5d12e18035 100644 {} /// Factory of instances of @ref elf_symbol. -@@ -1488,11 +1494,12 @@ elf_symbol::create(const environment* e, +@@ -1492,11 +1498,12 @@ elf_symbol::create(const environment* e, const version& ve, visibility vi, bool is_linux_string_cst, @@ -142,7 +142,7 @@ index 690892002923..eb5d12e18035 100644 sym->priv_->main_symbol_ = sym; return sym; } -@@ -1720,6 +1727,14 @@ void +@@ -1724,6 +1731,14 @@ void elf_symbol::set_is_in_ksymtab(bool is_in_ksymtab) {priv_->is_in_ksymtab_ = is_in_ksymtab;} diff --git a/patches/abg-ir.cc-improve-update_main_alias.patch b/patches/abg-ir.cc-improve-update_main_alias.patch new file mode 100644 index 00000000..46faad74 --- /dev/null +++ b/patches/abg-ir.cc-improve-update_main_alias.patch @@ -0,0 +1,53 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Giuliano Procida +Date: Thu, 19 Nov 2020 14:25:59 +0000 +Subject: abg-ir.cc: improve update_main_alias + +This function would misbehave if called for any symbol other than the +current main symbol. For safety, we now assert this. + +Also, when updating the main symbol, the loop condition performed deep +equality on symbols which might lead to not all symbols in the chain +being updated. + + * src/abg-ir.cc (elf_symbol::update_main_symbol): Assert we + are called at the current main symbol; iterate over the alias + chain in a safer fashion. + +Signed-off-by: Giuliano Procida +Signed-off-by: Matthias Maennich +--- + src/abg-ir.cc | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/src/abg-ir.cc b/src/abg-ir.cc +index 03a83de14067..0b3739fa5a9c 100644 +--- a/src/abg-ir.cc ++++ b/src/abg-ir.cc +@@ -1885,12 +1885,13 @@ elf_symbol::add_alias(const elf_symbol_sptr& alias) + elf_symbol_sptr + elf_symbol::update_main_symbol(const std::string& name) + { +- +- if (!has_aliases() || (is_main_symbol() && get_name() == name)) ++ ABG_ASSERT(is_main_symbol()); ++ if (!has_aliases() || get_name() == name) + return get_main_symbol(); + + // find the new main symbol + elf_symbol_sptr new_main; ++ // we've already checked this; check the rest of the aliases + for (elf_symbol_sptr a = get_next_alias(); a.get() != this; + a = a->get_next_alias()) + if (a->get_name() == name) +@@ -1903,8 +1904,8 @@ elf_symbol::update_main_symbol(const std::string& name) + return get_main_symbol(); + + // now update all main symbol references +- for (elf_symbol_sptr a = get_next_alias(); +- a->get_main_symbol() != new_main; ++ priv_->main_symbol_ = new_main; ++ for (elf_symbol_sptr a = get_next_alias(); a.get() != this; + a = a->get_next_alias()) + a->priv_->main_symbol_ = new_main; + diff --git a/patches/abg-reader-avoid-using-the-var-function-_symbol_map.patch b/patches/abg-reader-avoid-using-the-var-function-_symbol_map.patch index 5ad0c82a..d9656f12 100644 --- a/patches/abg-reader-avoid-using-the-var-function-_symbol_map.patch +++ b/patches/abg-reader-avoid-using-the-var-function-_symbol_map.patch @@ -21,7 +21,7 @@ Signed-off-by: Matthias Maennich 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/src/abg-reader.cc b/src/abg-reader.cc -index 418c037263aa..9833ea163d74 100644 +index 94ebf3b91db6..a2eeedeb3389 100644 --- a/src/abg-reader.cc +++ b/src/abg-reader.cc @@ -1089,8 +1089,7 @@ static elf_symbol_sptr diff --git a/patches/abg-writer.cc-Track-types-by-plain-address.patch b/patches/abg-writer.cc-Track-types-by-plain-address.patch index 693aed14..e86ea2fd 100644 --- a/patches/abg-writer.cc-Track-types-by-plain-address.patch +++ b/patches/abg-writer.cc-Track-types-by-plain-address.patch @@ -34,13 +34,12 @@ Signed-off-by: Giuliano Procida Signed-off-by: Matthias Maennich --- src/abg-writer.cc | 20 +- - .../test-read-dwarf/PR22122-libftdc.so.abi | 6026 ++-- + .../test-read-dwarf/PR22122-libftdc.so.abi | 5913 ++-- .../test-read-dwarf/test12-pr18844.so.abi | 27857 ++++++++-------- + .../test-read-dwarf/test16-pr18904.so.abi | 302 +- .../test9-pr18818-clang.so.abi | 4115 +-- tests/data/test-read-write/test25.xml | 8 +- - .../test-symtab/basic/ofov_function.whitelist | 2 + - 6 files changed, 19028 insertions(+), 19000 deletions(-) - create mode 100644 tests/data/test-symtab/basic/ofov_function.whitelist + 6 files changed, 19120 insertions(+), 19095 deletions(-) diff --git a/src/abg-writer.cc b/src/abg-writer.cc index 1ffaca8cec6e..23dbf3848b03 100644 @@ -85,10 +84,10 @@ index 1ffaca8cec6e..23dbf3848b03 100644 /// Test if a given type has been written out to the XML output. diff --git a/tests/data/test-read-dwarf/PR22122-libftdc.so.abi b/tests/data/test-read-dwarf/PR22122-libftdc.so.abi -index a0c1b53fea55..d2fead61ff77 100644 +index 305535b1dc86..b48083ebd9ad 100644 --- a/tests/data/test-read-dwarf/PR22122-libftdc.so.abi +++ b/tests/data/test-read-dwarf/PR22122-libftdc.so.abi -@@ -273,196 +273,196 @@ +@@ -273,179 +273,179 @@ @@ -112,20 +111,18 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -- -- -- -- -- -- -- -- -- -- +- +- +- +- +- +- +- +- +- +- - - -- -- + + + @@ -146,316 +143,292 @@ index a0c1b53fea55..d2fead61ff77 100644 + + + -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + -+ -+ -- +- +- +- - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -+ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ + -+ -+ -+ -+ -+ -+ - -- -+ - -- -+ - - - - - - -- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +- +- +- +- +- - -- -+ -+ - -- +- +- - -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ + -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ ++ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -@@ -470,676 +470,676 @@ +@@ -453,676 +453,676 @@ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -463,750 +436,750 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ - -+ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- +- +- +- - -+ -+ -+ -+ ++ ++ ++ ++ -- -- -- +- +- +- - -+ -+ -+ -+ ++ ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- +- +- +- - -+ -+ -+ -+ ++ ++ ++ ++ -- -- -- +- +- +- - -+ -+ -+ -+ ++ ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ -- -+ +- ++ -- +- - - -+ ++ + -+ ++ -- -+ +- ++ -- +- - -+ ++ + -- +- - -+ ++ + -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- +- - -- -- -+ +- +- ++ + -+ -+ ++ ++ -- +- - -+ ++ + - -+ ++ -- -+ +- ++ -- +- - -- -+ +- ++ + -+ ++ -- -- +- +- - -+ -+ ++ ++ + - -+ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- +- - -- -+ +- ++ + -+ ++ -- -- +- +- - -+ -+ ++ ++ + -- +- - -+ -+ ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -+ +- ++ -- +- - -+ -+ ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ - -+ ++ - - -- -- -+ -+ -+ -+ +- +- ++ ++ ++ ++ - - -+ -+ ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ @@ -1214,117 +1187,117 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ -- +- - -+ -+ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ -- -- +- +- - -- -+ -+ +- ++ ++ + -+ ++ - -+ ++ -- -+ +- ++ - -+ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -@@ -1147,239 +1147,239 @@ +@@ -1130,239 +1130,239 @@ -- -+ +- ++ @@ -1332,528 +1305,528 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ -- -+ +- ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ -- +- - -+ -+ ++ ++ -- +- - -- -+ -+ -+ +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ - -+ ++ - -+ ++ -- +- - - -+ -+ -+ ++ ++ ++ -- +- - -+ -+ ++ ++ - -+ ++ - -+ ++ -- +- - -+ -+ ++ ++ -@@ -1390,238 +1390,238 @@ +@@ -1373,238 +1373,238 @@ - -+ ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ - -+ ++ -- +- - -- -- -+ +- +- ++ + -+ -+ ++ ++ -- -- +- +- - -+ -+ ++ ++ + - -+ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -+ +- ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -1865,13 +1838,13 @@ index a0c1b53fea55..d2fead61ff77 100644 -- -+ +- ++ - -- +- + -+ ++ @@ -1880,9 +1853,9 @@ index a0c1b53fea55..d2fead61ff77 100644 -- +- - -+ ++ + @@ -1894,17 +1867,17 @@ index a0c1b53fea55..d2fead61ff77 100644 - -- +- + -+ ++ - -- +- + -+ ++ @@ -1917,36 +1890,36 @@ index a0c1b53fea55..d2fead61ff77 100644 -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ @@ -1956,23 +1929,23 @@ index a0c1b53fea55..d2fead61ff77 100644 -@@ -1629,161 +1629,161 @@ +@@ -1612,161 +1612,161 @@ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ @@ -1984,374 +1957,374 @@ index a0c1b53fea55..d2fead61ff77 100644 - -- -- +- +- + -+ -+ ++ ++ - -- -- +- +- + -+ -+ ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -@@ -1792,89 +1792,89 @@ +@@ -1775,89 +1775,89 @@ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -+ +- ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -@@ -1940,54 +1940,54 @@ +@@ -1923,54 +1923,54 @@ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ - -- +- + -+ ++ -- -+ +- ++ @@ -2364,19 +2337,19 @@ index a0c1b53fea55..d2fead61ff77 100644 -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -@@ -1996,34 +1996,34 @@ +@@ -1979,34 +1979,34 @@ @@ -2385,34 +2358,34 @@ index a0c1b53fea55..d2fead61ff77 100644 -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ - @@ -2420,98 +2393,98 @@ index a0c1b53fea55..d2fead61ff77 100644 -@@ -2034,43 +2034,43 @@ +@@ -2017,43 +2017,43 @@ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -@@ -2088,147 +2088,147 @@ +@@ -2071,147 +2071,147 @@ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ @@ -2546,33 +2519,33 @@ index a0c1b53fea55..d2fead61ff77 100644 - -- +- + -+ ++ -- -+ +- ++ - -- +- + -+ ++ -- -- +- +- - -+ -+ ++ ++ + - -- +- + -+ ++ @@ -2583,15 +2556,15 @@ index a0c1b53fea55..d2fead61ff77 100644 -- +- - -+ ++ + -- -+ +- ++ - @@ -2599,20 +2572,20 @@ index a0c1b53fea55..d2fead61ff77 100644 -- -- +- +- - - -+ -+ ++ ++ + + - -- +- + -+ ++ @@ -2625,9 +2598,9 @@ index a0c1b53fea55..d2fead61ff77 100644 - -- +- + -+ ++ @@ -2636,8 +2609,8 @@ index a0c1b53fea55..d2fead61ff77 100644 -- -+ +- ++ - @@ -2653,13 +2626,13 @@ index a0c1b53fea55..d2fead61ff77 100644 -- -+ +- ++ -- -+ +- ++ @@ -2670,24 +2643,24 @@ index a0c1b53fea55..d2fead61ff77 100644 -@@ -2236,109 +2236,109 @@ +@@ -2219,109 +2219,109 @@ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ @@ -2696,40 +2669,40 @@ index a0c1b53fea55..d2fead61ff77 100644 -- -+ +- ++ - -- +- + -+ ++ - -- +- + -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ @@ -2738,10 +2711,10 @@ index a0c1b53fea55..d2fead61ff77 100644 + -- -- -+ -+ +- +- ++ ++ @@ -2751,135 +2724,135 @@ index a0c1b53fea55..d2fead61ff77 100644 - -- -- +- +- + -+ -+ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -+ +- ++ -- -+ +- ++ - -- -- +- +- + -+ -+ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -@@ -2389,7 +2389,7 @@ +@@ -2372,7 +2372,7 @@ -- -+ +- ++ -@@ -2407,7 +2407,7 @@ +@@ -2390,7 +2390,7 @@ -- -+ +- ++ -@@ -2733,15 +2733,15 @@ +@@ -2716,15 +2716,15 @@ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -@@ -2804,19 +2804,19 @@ +@@ -2787,19 +2787,19 @@ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -@@ -2915,7 +2915,7 @@ +@@ -2898,7 +2898,7 @@ @@ -2888,7 +2861,7 @@ index a0c1b53fea55..d2fead61ff77 100644 -@@ -2952,7 +2952,7 @@ +@@ -2935,7 +2935,7 @@ @@ -2897,19 +2870,19 @@ index a0c1b53fea55..d2fead61ff77 100644 -@@ -2964,767 +2964,776 @@ +@@ -2947,760 +2947,769 @@ -- +- - -+ ++ + -- +- - -+ ++ + @@ -2927,37 +2900,37 @@ index a0c1b53fea55..d2fead61ff77 100644 + -- -- -+ -+ +- +- ++ ++ - + -- -- -+ -+ +- +- ++ ++ - + -- -- -+ -+ +- +- ++ ++ - + -- -- -+ -+ +- +- ++ ++ - + @@ -2965,70 +2938,70 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -+ +- ++ -- -- +- +- - - -+ -+ ++ ++ + -+ ++ + + + @@ -3037,864 +3010,850 @@ index a0c1b53fea55..d2fead61ff77 100644 + + + -+ ++ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -+ +- ++ - -+ ++ - -+ ++ - -+ ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ - - -+ -+ ++ ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- +- - -+ -+ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - - -+ -+ ++ ++ - -+ ++ - -+ ++ - -+ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ - - - -+ -+ -+ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ - - -- -- -+ -+ -+ -+ +- +- ++ ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- +- - -+ -+ ++ ++ -- +- - -+ -+ ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- +- - -- -+ -+ -+ +- ++ ++ ++ - - -+ -+ ++ ++ -- -- -+ -+ +- +- ++ ++ -- +- - -+ -+ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ - -+ ++ - -+ ++ -- -+ +- ++ - -+ ++ -- +- - -+ -+ ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- +- - -+ -+ ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - - -+ -+ ++ ++ -- -+ +- ++ -- +- - -- -+ -+ -+ +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- +- - -+ -+ ++ ++ -- +- - -+ -+ ++ ++ -- -- -+ -+ +- +- ++ ++ -- +- - -+ -+ ++ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -3902,15 +3861,15 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -3918,26 +3877,26 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -3945,83 +3904,83 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -@@ -3732,102 +3741,102 @@ +@@ -3708,102 +3717,102 @@ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -4029,287 +3988,276 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ ++ ++ ++ -- -+ +- ++ -- -- +- +- - -- -+ -+ +- ++ ++ + -+ ++ -- -- +- +- - -- -+ -+ +- ++ ++ + -+ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- +- - - -+ ++ + -+ ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ -@@ -3835,650 +3844,651 @@ +@@ -3811,645 +3820,645 @@ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ - -+ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - - -+ -+ ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -+ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ @@ -4321,132 +4269,132 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - - -+ -+ ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - - - -+ -+ -+ ++ ++ ++ - - - -+ -+ -+ ++ ++ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- +- - -- -+ +- ++ + -+ ++ -- -+ +- ++ - -+ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ @@ -4454,316 +4402,316 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ -- -+ +- ++ -- -+ +- ++ -- +- - -+ -+ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - - -+ -+ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - - - -+ -+ -+ ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - - -+ -+ ++ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ - -+ ++ - - -- -- -+ -+ -+ -+ +- +- ++ ++ ++ ++ - -+ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- +- - -- -+ -+ -+ +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -4771,146 +4719,146 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ ++ ++ ++ ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- +- +- - - -+ -+ -+ -+ ++ ++ ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ -- +- - -+ -+ ++ ++ -- -+ +- ++ - - -+ -+ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ - -+ ++ - - -+ -+ ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ - -+ ++ - -+ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -4918,54 +4866,54 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ @@ -4973,265 +4921,239 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ ++ ++ ++ -- -- +- +- - -- -+ -+ +- ++ ++ + -+ ++ - -+ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -@@ -4486,947 +4496,947 @@ +@@ -4457,934 +4466,934 @@ -- +- - -+ ++ + -- +- - -+ -+ ++ ++ -- +- - -+ ++ + -- -+ +- ++ -- -- +- +- - -+ -+ ++ ++ + -- +- - -+ ++ + -- -- +- +- - -+ -+ -+ ++ ++ ++ -- +- - -+ ++ + - -+ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ - -+ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - - -+ -+ ++ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ - -+ ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -5239,118 +5161,118 @@ index a0c1b53fea55..d2fead61ff77 100644 - - -+ -+ ++ ++ - - -+ -+ ++ ++ -- -+ +- ++ - - -+ -+ ++ ++ -- +- - -+ -+ ++ ++ - -+ ++ -- -+ +- ++ - -+ ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ -- +- - -- -- -- -+ -+ -+ -+ -+ +- +- +- ++ ++ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ - - -+ -+ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ @@ -5358,11 +5280,11 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ -- -+ +- ++ @@ -5370,160 +5292,160 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ -- -+ +- ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- +- - -- -+ -+ -+ +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ - - -+ -+ ++ ++ -- +- - -- -- -+ -+ -+ -+ +- +- ++ ++ ++ ++ - -+ ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ @@ -5531,12 +5453,12 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ ++ ++ ++ - -+ ++ - @@ -5544,81 +5466,81 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - -- -+ -+ +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- +- - -+ -+ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ -- -+ +- ++ @@ -5627,425 +5549,425 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ ++ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - - -+ -+ ++ ++ - -+ ++ - - - -+ -+ -+ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- +- - -- -- -+ -+ -+ -+ +- +- ++ ++ ++ ++ - -+ ++ -- -+ +- ++ -- +- - -- -+ -+ -+ +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - - -+ -+ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - - -+ -+ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ @@ -6053,65 +5975,65 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ - -+ ++ - -+ ++ - @@ -6119,150 +6041,150 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -- -+ -+ -+ -+ -+ -+ +- ++ ++ ++ ++ ++ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ -- +- - -+ -+ ++ ++ -- +- - -+ -+ ++ ++ -- +- - -+ -+ ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -- +- +- - - -+ -+ -+ -+ ++ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ @@ -6270,93 +6192,93 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ ++ ++ ++ - - - -+ -+ -+ ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -@@ -5434,26 +5444,26 @@ +@@ -5392,26 +5401,26 @@ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -@@ -5461,163 +5471,163 @@ +@@ -5419,163 +5428,163 @@ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ - -+ ++ -- -+ +- ++ @@ -6369,45 +6291,45 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - - -+ -+ ++ ++ -- -- -+ -+ +- +- ++ ++ @@ -6417,275 +6339,275 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ - - -+ -+ ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- +- - -+ ++ + -- +- - - - -- -+ +- ++ + -+ -+ -+ ++ ++ ++ -- +- - -+ ++ + -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ - -+ ++ -- -+ +- ++ -@@ -5625,571 +5635,571 @@ +@@ -5583,554 +5592,554 @@ -- -+ +- ++ -- +- - -+ ++ + -- +- - -- -+ +- ++ + -+ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- +- - - - -+ -+ -+ -+ ++ ++ ++ ++ - -+ ++ - - - -+ -+ -+ ++ ++ ++ -- +- - - - -- -+ +- ++ + -+ -+ -+ ++ ++ ++ -- +- - -- -+ +- ++ + -+ ++ -- +- - -+ ++ + @@ -6693,41 +6615,41 @@ index a0c1b53fea55..d2fead61ff77 100644 - - -+ -+ ++ ++ - - -- -- -+ -+ -+ -+ +- +- ++ ++ ++ ++ - - -- -- -+ -+ -+ -+ +- +- ++ ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ @@ -6735,99 +6657,99 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ -- +- - -+ -+ ++ ++ -- +- - -+ -+ ++ ++ -- +- - -+ -+ ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ -- +- - -+ -+ ++ ++ - -+ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -6835,188 +6757,188 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ - -+ ++ - -+ ++ - -+ ++ - -+ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ - -+ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ - -+ ++ - -+ ++ - - - -+ -+ -+ ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ -- +- - - - - - -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ -- -+ +- ++ - -+ ++ - -+ ++ - @@ -7025,580 +6947,546 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ -- +- - - -+ -+ -+ ++ ++ ++ - -+ ++ -- -+ +- ++ - -+ ++ - -+ ++ - -+ ++ - -+ ++ - - -+ -+ ++ ++ - -+ ++ - - -+ -+ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -@@ -6197,51 +6207,51 @@ +@@ -6138,51 +6147,51 @@ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -@@ -6252,865 +6262,865 @@ +@@ -6193,865 +6202,865 @@ - - - -+ -+ -+ ++ ++ ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ @@ -7611,109 +7499,109 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ -- -+ +- ++ - - - - -+ -+ -+ -+ ++ ++ ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ - -+ ++ -- -+ +- ++ - - -+ -+ ++ ++ - -+ ++ - - - -+ -+ -+ ++ ++ ++ - -+ ++ - - -+ -+ ++ ++ @@ -7722,231 +7610,231 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ - - - -+ -+ -+ ++ ++ ++ - - -+ -+ ++ ++ - -+ ++ -- -+ +- ++ - - -+ -+ ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- +- +- - -- -+ -+ +- ++ ++ + -+ ++ -- +- - -+ ++ + - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ - -+ ++ - -+ ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- +- - -+ -+ ++ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- +- - -+ -+ ++ ++ - -+ ++ - -+ ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -+ +- ++ @@ -7955,25 +7843,25 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ ++ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ @@ -7982,79 +7870,79 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ ++ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ - -+ ++ - -+ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ @@ -8062,25 +7950,25 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ ++ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ @@ -8088,12 +7976,12 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ ++ ++ ++ - -+ ++ - @@ -8102,482 +7990,480 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ - -+ ++ - - - - -+ -+ -+ -+ ++ ++ ++ ++ - -+ ++ - - - - -+ -+ -+ -+ ++ ++ ++ ++ - - -- -- -+ -+ -+ -+ +- +- ++ ++ ++ ++ - - -- -- -+ -+ -+ -+ +- +- ++ ++ ++ ++ - - -+ -+ ++ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ - -+ ++ - -+ ++ -- +- - - -+ -+ -+ ++ ++ ++ - -+ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ - -+ ++ -- +- - -- -+ -+ -+ +- ++ ++ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ - -+ ++ - - - -+ -+ -+ ++ ++ ++ - -+ ++ - -+ ++ - -+ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ - -+ ++ - - -+ -+ ++ ++ - -+ ++ - - -+ -+ ++ ++ - -+ ++ - -+ ++ - - -+ -+ ++ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -- -- -- -+ -+ -+ -+ +- ++ ++ ++ + +- +- -- +- - -+ -+ ++ ++ -- -+ +- ++ -- -- -- -- ++ ++ + +- +- +- - -+ -+ -+ -+ -+ ++ ++ -- +- - -+ -+ ++ ++ -- +- - -+ -+ ++ ++ -- -- +- +- - - -+ -+ -+ -+ ++ ++ ++ ++ -- -- -- -- +- +- +- +- - -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ -- -- -- +- +- +- - - -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ - - - -- +- - -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- +- - -+ -+ ++ ++ - -+ ++ - -+ ++ - - - -+ -+ -+ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- +- - -+ ++ + - - -+ -+ ++ ++ - -+ ++ - @@ -8586,139 +8472,135 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ -- -+ +- ++ - - -+ -+ ++ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -@@ -7118,444 +7128,444 @@ +@@ -7059,442 +7068,442 @@ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ - -+ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ @@ -8737,19 +8619,19 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ - - @@ -8758,124 +8640,124 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ - -+ ++ -- -+ +- ++ -- +- - - -+ -+ -+ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ - - -+ -+ ++ ++ -- +- - - - -- -+ +- ++ + -+ -+ -+ ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -8883,16 +8765,16 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ ++ ++ ++ ++ - - -+ -+ ++ ++ @@ -8901,122 +8783,121 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -- -+ -+ -+ -+ -+ +- ++ ++ ++ ++ ++ -- -+ +- ++ - - -+ -+ ++ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ - -+ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ -- -- -- -- -+ -+ -+ -+ ++ ++ + +- +- +- ++ - - - -+ -+ -+ ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ - -+ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ @@ -9024,103 +8905,103 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ ++ ++ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -- -- -- -+ -+ -+ -+ +- +- +- +- ++ ++ ++ ++ - -+ ++ - - -- -- -+ -+ -+ -+ +- +- ++ ++ ++ ++ - -+ ++ - -+ ++ - -+ ++ - - - -+ -+ -+ ++ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ - -+ ++ - - -+ -+ ++ ++ - -+ ++ - -+ ++ - -+ ++ - -+ ++ - @@ -9129,67 +9010,67 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ -- -+ +- ++ -- +- - -+ -+ ++ ++ -- +- - -+ -+ ++ ++ -- +- - -+ -+ ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ - -+ ++ - -+ ++ - -+ ++ -- -+ +- ++ @@ -9197,14 +9078,14 @@ index a0c1b53fea55..d2fead61ff77 100644 - - -+ -+ ++ ++ -- -- -+ -+ +- +- ++ ++ @@ -9216,54 +9097,54 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ ++ ++ - -+ ++ - -+ ++ - -+ ++ - -+ ++ - - -+ -+ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- +- - - -+ ++ + -+ ++ @@ -9271,98 +9152,98 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ ++ ++ ++ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -@@ -7563,235 +7573,235 @@ +@@ -7502,235 +7511,235 @@ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ - -+ ++ - -+ ++ -- +- - -+ -+ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ - @@ -9370,37 +9251,37 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ - -+ ++ - -+ ++ -- -+ +- ++ -- +- - -+ -+ ++ ++ -- -- -+ -+ +- +- ++ ++ @@ -9410,11 +9291,11 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ - @@ -9430,110 +9311,110 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ - -+ ++ -- -+ +- ++ - -+ ++ - -+ ++ - - -+ -+ ++ ++ -- -+ +- ++ -- +- - - -+ -+ -+ ++ ++ ++ -- +- - - -+ -+ -+ ++ ++ ++ -- -- +- +- - - -+ -+ -+ -+ ++ ++ ++ ++ -- -- +- +- - - -+ -+ -+ -+ ++ ++ ++ ++ -- -- +- +- - - -+ -+ -+ -+ ++ ++ ++ ++ -- -+ +- ++ @@ -9541,12 +9422,12 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ ++ ++ ++ - -+ ++ - @@ -9555,30 +9436,30 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ -- -+ +- ++ -- +- - -+ ++ + -- -+ +- ++ @@ -9586,154 +9467,154 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ ++ ++ ++ - -+ ++ - -+ ++ - - -+ -+ ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ - - -+ -+ ++ ++ - -+ ++ - - -+ -+ ++ ++ - -+ ++ - -+ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -@@ -7799,819 +7809,819 @@ +@@ -7738,819 +7747,819 @@ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -- -- -- -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -9748,15 +9629,15 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ ++ ++ ++ - - @@ -9764,117 +9645,117 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- +- - -- -+ +- ++ + -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -9884,14 +9765,14 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ - -+ ++ - @@ -9900,120 +9781,120 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ - - -+ -+ ++ ++ -- +- - -- -+ -+ -+ +- ++ ++ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -- -- -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ -+ -+ -+ +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ -- -- -- +- +- +- - -+ -+ -+ -+ ++ ++ ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ -- +- - - -+ -+ -+ ++ ++ ++ - - - -+ -+ -+ ++ ++ ++ -- +- - -+ -+ ++ ++ -- +- - -+ -+ ++ ++ -- +- - -+ -+ ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ - @@ -10024,102 +9905,102 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ -+ -+ -+ -+ -+ ++ ++ ++ ++ ++ ++ ++ ++ -- +- - -+ -+ ++ ++ -- +- - -+ -+ ++ ++ - -- +- - -+ -+ -+ ++ ++ ++ -- +- - -+ -+ ++ ++ - - -+ -+ ++ ++ - -+ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ - -+ ++ - -+ ++ - -+ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -10127,19 +10008,19 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -10147,19 +10028,19 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ @@ -10167,391 +10048,391 @@ index a0c1b53fea55..d2fead61ff77 100644 - -+ ++ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- +- - - -+ ++ + -+ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- +- - - -+ ++ + -+ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- +- - -- -+ +- ++ + -+ ++ - -+ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- +- - -+ -+ ++ ++ -- +- - -+ -+ ++ ++ -- +- - -+ -+ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- -+ +- ++ -- +- - -+ -+ ++ ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -+ +- ++ - - -+ -+ ++ ++ - -+ ++ - - - -+ -+ -+ ++ ++ ++ - -+ ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ @@ -10560,322 +10441,322 @@ index a0c1b53fea55..d2fead61ff77 100644 - - - -+ -+ -+ ++ ++ ++ -- +- - - -- -+ -+ -+ -+ +- ++ ++ ++ ++ -- +- - -+ -+ ++ ++ -- -+ +- ++ -- +- - -- -+ -+ -+ +- ++ ++ ++ -- -+ +- ++ -- +- - -+ -+ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- +- - -+ -+ ++ ++ -- -+ +- ++ -- +- - -+ -+ ++ ++ -- -+ +- ++ -- +- - -- -+ -+ -+ +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- +- - -+ -+ ++ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -- +- +- - -- -+ -+ +- ++ ++ + -+ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ - -+ ++ -- -+ +- ++ -- -+ +- ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -+ -+ +- +- ++ ++ -- -+ +- ++ -- -+ +- ++ - -+ ++ -- -+ +- ++ - -+ ++ - -+ ++ -- -+ +- ++ - -+ ++ - - - -+ -+ -+ ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -@@ -8619,26 +8629,26 @@ +@@ -8558,26 +8567,26 @@ - -+ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -- -- -- -+ -+ -+ +- +- +- ++ ++ ++ -@@ -8647,28 +8657,28 @@ +@@ -8586,28 +8595,28 @@ - - -+ -+ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ -- -- +- +- - -+ -+ -+ ++ ++ ++ - -+ ++ -- -- -+ -+ +- +- ++ ++ @@ -62165,6 +62046,794 @@ index c0a31efbc13d..d2493374ebe6 100644 +diff --git a/tests/data/test-read-dwarf/test16-pr18904.so.abi b/tests/data/test-read-dwarf/test16-pr18904.so.abi +index 31992791f7f7..3b7a4177cbbb 100644 +--- a/tests/data/test-read-dwarf/test16-pr18904.so.abi ++++ b/tests/data/test-read-dwarf/test16-pr18904.so.abi +@@ -35191,7 +35191,7 @@ + + + +- ++ + + + +@@ -35201,7 +35201,7 @@ + + + +- ++ + + + +@@ -36488,13 +36488,13 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +@@ -36624,14 +36624,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -36641,7 +36641,7 @@ + + + +- ++ + + + +@@ -36680,9 +36680,9 @@ + + + +- +- +- ++ ++ ++ + + + +@@ -36710,7 +36710,7 @@ + + + +- ++ + + + +@@ -36718,13 +36718,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -36732,7 +36732,7 @@ + + + +- ++ + + + +@@ -36740,23 +36740,23 @@ + + + +- ++ + +- ++ + + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + + +@@ -36805,53 +36805,53 @@ + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + + + +- +- ++ ++ + + + + + +- +- +- ++ ++ ++ + + + + + +- +- ++ ++ + + + + + + +- ++ + + + +@@ -36863,92 +36863,92 @@ + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + +- ++ + + +- +- ++ ++ + +- ++ + + +- ++ + +- ++ + + +- ++ + +- ++ + + +- ++ + +- ++ + + +- +- +- ++ ++ ++ + +- ++ + + +- ++ + + +- ++ + + + +- ++ + +- ++ + + +- ++ + + +- ++ + + + + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + + + +- +- ++ ++ + + + +@@ -36961,19 +36961,19 @@ + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + +@@ -36984,7 +36984,7 @@ + + + +- ++ + + + +@@ -36998,7 +36998,7 @@ + + + +- ++ + + + +@@ -37012,7 +37012,7 @@ + + + +- ++ + + + +@@ -37026,7 +37026,7 @@ + + + +- ++ + + + +@@ -37040,7 +37040,7 @@ + + + +- ++ + + + +@@ -37054,7 +37054,7 @@ + + + +- ++ + + + +@@ -37068,7 +37068,7 @@ + + + +- ++ + + + +@@ -37082,7 +37082,7 @@ + + + +- ++ + + + +@@ -37098,19 +37098,19 @@ + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + + +@@ -37135,37 +37135,37 @@ + + + +- +- ++ ++ + + + + + +- +- ++ ++ + + + + + +- ++ + +- ++ + + + + + +- +- ++ ++ + + + + + + +- ++ + + + +@@ -37195,26 +37195,26 @@ + + + +- +- ++ ++ + +- ++ + +- ++ + + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + + +@@ -37268,13 +37268,13 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +@@ -37295,13 +37295,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -37333,35 +37333,35 @@ + + + +- +- ++ ++ + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -37374,13 +37374,13 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +@@ -37401,13 +37401,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -37439,35 +37439,35 @@ + + + +- +- ++ ++ + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -38096,71 +38096,71 @@ + + + +- ++ + + +- +- ++ ++ + +- ++ + + +- ++ + + +- +- ++ ++ + + + + + +- +- ++ ++ + +- ++ + + +- +- +- +- ++ ++ ++ ++ + + + + +- +- +- +- +- ++ ++ ++ ++ ++ + + + +- +- ++ ++ + + + +- ++ + + +- +- ++ ++ + + + + + +- +- ++ ++ + + + + + +- +- ++ ++ + + + diff --git a/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi b/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi index 340bdd5ecd99..41ea591544ad 100644 --- a/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi @@ -69897,11 +70566,3 @@ index ab8420112386..967b1395df55 100644 -diff --git a/tests/data/test-symtab/basic/ofov_function.whitelist b/tests/data/test-symtab/basic/ofov_function.whitelist -new file mode 100644 -index 000000000000..893accc14118 ---- /dev/null -+++ b/tests/data/test-symtab/basic/ofov_function.whitelist -@@ -0,0 +1,2 @@ -+[abi_whitelist] -+ exported_function diff --git a/patches/abg-writer.cc-fix-write_elf_symbol_reference-loop.patch b/patches/abg-writer.cc-fix-write_elf_symbol_reference-loop.patch new file mode 100644 index 00000000..a84c09f9 --- /dev/null +++ b/patches/abg-writer.cc-fix-write_elf_symbol_reference-loop.patch @@ -0,0 +1,77 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Giuliano Procida +Date: Thu, 15 Oct 2020 10:23:51 +0100 +Subject: abg-writer.cc: fix write_elf_symbol_reference loop + +The function write_elf_symbol_reference iterates through aliases, +looking for an unsuppressed alias to use. The existing code went wrong +in the case when aliases are present. In the case of all symbols +suppressed, it would also have selected the last alias, rather than +the first, if the data structure invariants had matched the code's +expectations. + +The main symbol is always distinguished. When aliases are absent, the +sole symbol's next pointer is null, but when aliases are present, they +form a circular list. This makes traversal of aliases a bit tricky. + +The code now picks the first symbol from the following: + +- the given symbol, if unsuppressed +- the main symbol, if unsuppressed +- the unsuppressed aliases in the remainder of the alias chain +- the main symbol (suppressed) + +The given symbol, which need not be the same as the main symbol, will +be tested twice, if suppressed, but addressing this would make the +code even more elaborate and fragile. + +The last case may be unreachable if symbol suppression triggers when +all aliases are suppressed. + + * src/abg-writer.cc (write_elf_symbol_reference): Check main + symbol and aliases with more care. + +Fixes: f0fdfcbadc76 ("dwarf-reader/writer: consider aliases when dealing with suppressions") +Signed-off-by: Giuliano Procida +Signed-off-by: Matthias Maennich +--- + src/abg-writer.cc | 26 ++++++++++++++++++++++---- + 1 file changed, 22 insertions(+), 4 deletions(-) + +diff --git a/src/abg-writer.cc b/src/abg-writer.cc +index 2834298d10b6..dcd03fcef6a2 100644 +--- a/src/abg-writer.cc ++++ b/src/abg-writer.cc +@@ -1738,10 +1738,28 @@ write_elf_symbol_aliases(const elf_symbol& sym, ostream& out) + static bool + write_elf_symbol_reference(const elf_symbol& sym, ostream& o) + { +- auto actual_sym = &sym; +- while (actual_sym->is_suppressed() && actual_sym->has_aliases()) +- actual_sym = actual_sym->get_next_alias().get(); +- o << " elf-symbol-id='" << actual_sym->get_id_string() << "'"; ++ const elf_symbol* main = sym.get_main_symbol().get(); ++ const elf_symbol* alias = &sym; ++ bool found = !alias->is_suppressed(); ++ // If the symbol itself is suppressed, check the alias chain. ++ if (!found) ++ { ++ alias = main; ++ found = !alias->is_suppressed(); ++ } ++ // If main sym is suppressed, search the remainder of the chain. ++ while (!found) ++ { ++ alias = alias->get_next_alias().get(); ++ // Two separate termination conditions at present. ++ if (!alias || alias == main) ++ break; ++ found = !alias->is_suppressed(); ++ } ++ // If all aliases are suppressed, just stick with main sym. ++ if (!found) ++ alias = main; ++ o << " elf-symbol-id='" << alias->get_id_string() << "'"; + return true; + } + diff --git a/patches/abidiff-Flag-indirect-struct-union-changes.patch b/patches/abidiff-Flag-indirect-struct-union-changes.patch index a988968a..29b5a5cb 100644 --- a/patches/abidiff-Flag-indirect-struct-union-changes.patch +++ b/patches/abidiff-Flag-indirect-struct-union-changes.patch @@ -15,9 +15,9 @@ Signed-off-by: Matthias Maennich src/abg-leaf-reporter.cc | 55 ++++++++++++++++++- tests/data/Makefile.am | 1 + .../test-leaf-peeling-report-indirect.txt | 41 ++++++++++++++ - tests/test-abidiff-exit.cc | 9 +++ + tests/test-abidiff-exit.cc | 11 ++++ tools/abidiff.cc | 9 ++- - 8 files changed, 136 insertions(+), 3 deletions(-) + 8 files changed, 138 insertions(+), 3 deletions(-) create mode 100644 tests/data/test-abidiff-exit/test-leaf-peeling-report-indirect.txt diff --git a/include/abg-comparison.h b/include/abg-comparison.h @@ -38,10 +38,10 @@ index c4eb59250bae..33c993da9923 100644 show_symbols_unreferenced_by_debug_info() const; diff --git a/src/abg-comparison-priv.h b/src/abg-comparison-priv.h -index b82b5d070c83..817df7061e3f 100644 +index 1e5953132c27..c235ee42fb40 100644 --- a/src/abg-comparison-priv.h +++ b/src/abg-comparison-priv.h -@@ -215,6 +215,7 @@ struct diff_context::priv +@@ -212,6 +212,7 @@ struct diff_context::priv bool show_linkage_names_; bool show_locs_; bool show_redundant_changes_; @@ -49,7 +49,7 @@ index b82b5d070c83..817df7061e3f 100644 bool show_syms_unreferenced_by_di_; bool show_added_syms_unreferenced_by_di_; bool show_unreachable_types_; -@@ -244,6 +245,7 @@ struct diff_context::priv +@@ -241,6 +242,7 @@ struct diff_context::priv show_linkage_names_(false), show_locs_(true), show_redundant_changes_(true), @@ -58,10 +58,10 @@ index b82b5d070c83..817df7061e3f 100644 show_added_syms_unreferenced_by_di_(true), show_unreachable_types_(false), diff --git a/src/abg-comparison.cc b/src/abg-comparison.cc -index 7f91753a421d..f04c54bcca28 100644 +index bae9c266f8ee..9acc915a9d1b 100644 --- a/src/abg-comparison.cc +++ b/src/abg-comparison.cc -@@ -1747,6 +1747,22 @@ void +@@ -1680,6 +1680,22 @@ void diff_context::show_redundant_changes(bool f) {priv_->show_redundant_changes_ = f;} @@ -85,7 +85,7 @@ index 7f91753a421d..f04c54bcca28 100644 /// any debug info are to be compared and reported about. /// diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc -index 0875c968de7e..b6e21206406d 100644 +index c2a766e64020..67ec50010177 100644 --- a/src/abg-leaf-reporter.cc +++ b/src/abg-leaf-reporter.cc @@ -81,6 +81,50 @@ leaf_reporter::diff_has_net_changes(const corpus_diff *d) const @@ -159,7 +159,7 @@ index 0875c968de7e..b6e21206406d 100644 } } diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am -index 5e2e8b184f12..1f2a2605bf9d 100644 +index 40a575faa60b..2898a2d02298 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -135,6 +135,7 @@ test-abidiff-exit/test-leaf-peeling-v0.o \ @@ -218,10 +218,10 @@ index 000000000000..6a3e479978a5 + type 'int*' of 'ops5::x' changed: + pointer type changed from: 'int*' to: 'int***' diff --git a/tests/test-abidiff-exit.cc b/tests/test-abidiff-exit.cc -index 936d1d630a8d..5921282e6cf2 100644 +index 6ebe2a09d660..6d37533a51e3 100644 --- a/tests/test-abidiff-exit.cc +++ b/tests/test-abidiff-exit.cc -@@ -166,6 +166,15 @@ InOutSpec in_out_specs[] = +@@ -193,6 +193,17 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-leaf-peeling-report.txt", "output/test-abidiff-exit/test-leaf-peeling-report.txt" }, @@ -229,6 +229,8 @@ index 936d1d630a8d..5921282e6cf2 100644 + "data/test-abidiff-exit/test-leaf-peeling-v0.o", + "data/test-abidiff-exit/test-leaf-peeling-v1.o", + "", ++ "", ++ "", + "--leaf-changes-only --flag-indirect", + abigail::tools_utils::ABIDIFF_ABI_CHANGE, + "data/test-abidiff-exit/test-leaf-peeling-report-indirect.txt", @@ -238,7 +240,7 @@ index 936d1d630a8d..5921282e6cf2 100644 "data/test-abidiff-exit/test-leaf-cxx-members-v0.o", "data/test-abidiff-exit/test-leaf-cxx-members-v1.o", diff --git a/tools/abidiff.cc b/tools/abidiff.cc -index 162d5ebc388a..f9cd71135859 100644 +index 6ac81eeb716f..170dc967064e 100644 --- a/tools/abidiff.cc +++ b/tools/abidiff.cc @@ -109,6 +109,7 @@ struct options @@ -266,7 +268,7 @@ index 162d5ebc388a..f9cd71135859 100644 << " --impacted-interfaces display interfaces impacted by leaf changes\n" << " --dump-diff-tree emit a debug dump of the internal diff tree to " "the error output stream\n" -@@ -570,6 +574,8 @@ parse_command_line(int argc, char* argv[], options& opts) +@@ -574,6 +578,8 @@ parse_command_line(int argc, char* argv[], options& opts) opts.show_redundant_changes = true; else if (!strcmp(argv[i], "--no-redundant")) opts.show_redundant_changes = false; @@ -275,7 +277,7 @@ index 162d5ebc388a..f9cd71135859 100644 else if (!strcmp(argv[i], "--impacted-interfaces")) opts.show_impacted_interfaces = true; else if (!strcmp(argv[i], "--dump-diff-tree")) -@@ -690,7 +696,8 @@ set_diff_context_from_opts(diff_context_sptr ctxt, +@@ -694,7 +700,8 @@ set_diff_context_from_opts(diff_context_sptr ctxt, // redundancy analysis pass altogether. That could help save a // couple of CPU cycle here and there! ctxt->show_redundant_changes(opts.show_redundant_changes diff --git a/patches/comp-filter-Consider-CRC-changes-harmful.patch b/patches/comp-filter-Consider-CRC-changes-harmful.patch new file mode 100644 index 00000000..dd050d8a --- /dev/null +++ b/patches/comp-filter-Consider-CRC-changes-harmful.patch @@ -0,0 +1,220 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Matthias Maennich +Date: Thu, 15 Oct 2020 11:51:49 +0100 +Subject: comp-filter: Consider CRC changes harmful + +In case a function or variable symbol changes in a harmless way, we +would previously also consider a CRC change harmless (or more precise: +not harmful). + +Fix that by explicitly testing for CRC changes when analyzing whether +diff nodes need to be considered harmful. + + * src/abg-comp-filter.cc (crc_changed): New function. + (categorize_harmful_diff_node): Also test for CRC changes. + * tests/data/Makefile.am: Add new test files. + * tests/data/test-abidiff-exit/test-crc-report.txt: New test file. + * tests/data/test-abidiff-exit/test-crc-v0.abi: Likewise. + * tests/data/test-abidiff-exit/test-crc-v1.abi: Likewise. + * tests/test-abidiff-exit.cc: Add new test case. + +Fixes: 6a56bcb744e8 ("symtab: Add support for MODVERSIONS (CRC checksums)") +Reviewed-by: Giuliano Procida +Signed-off-by: Matthias Maennich +--- + src/abg-comp-filter.cc | 39 ++++++++++++++++++- + tests/data/Makefile.am | 3 ++ + .../test-abidiff-exit/test-crc-report.txt | 15 +++++++ + tests/data/test-abidiff-exit/test-crc-v0.abi | 29 ++++++++++++++ + tests/data/test-abidiff-exit/test-crc-v1.abi | 30 ++++++++++++++ + tests/test-abidiff-exit.cc | 11 ++++++ + 6 files changed, 126 insertions(+), 1 deletion(-) + create mode 100644 tests/data/test-abidiff-exit/test-crc-report.txt + create mode 100644 tests/data/test-abidiff-exit/test-crc-v0.abi + create mode 100644 tests/data/test-abidiff-exit/test-crc-v1.abi + +diff --git a/src/abg-comp-filter.cc b/src/abg-comp-filter.cc +index 35c927727690..81dc367819cd 100644 +--- a/src/abg-comp-filter.cc ++++ b/src/abg-comp-filter.cc +@@ -233,6 +233,42 @@ access_changed(const decl_base_sptr& f, const decl_base_sptr& s) + return false; + } + ++/// Test if there was a function or variable CRC change. ++/// ++/// @param f the first function or variable to consider. ++/// ++/// @param s the second function or variable to consider. ++/// ++/// @return true if the test is positive, false otherwise. ++template ++static bool ++crc_changed(const function_or_var_decl_sptr& f, ++ const function_or_var_decl_sptr& s) ++{ ++ const auto symbol_f = f->get_symbol(), symbol_s = s->get_symbol(); ++ if (!symbol_f || !symbol_s) ++ return false; ++ const auto crc_f = symbol_f->get_crc(), crc_s = symbol_s->get_crc(); ++ return (crc_f != 0 && crc_s != 0 && crc_f != crc_s); ++} ++ ++/// Test if the current diff tree node carries a CRC change in either a ++/// function or a variable. ++/// ++/// @param diff the diff tree node to consider. ++/// ++/// @return true if the test is positive, false otherwise. ++static bool ++crc_changed(const diff* diff) ++{ ++ if (const function_decl_diff* d = ++ dynamic_cast(diff)) ++ return crc_changed(d->first_function_decl(), d->second_function_decl()); ++ if (const var_diff* d = dynamic_cast(diff)) ++ return crc_changed(d->first_var(), d->second_var()); ++ return false; ++} ++ + /// Test if there was a function name change, but there there was no + /// change in name of the underlying symbol. IOW, if the name of a + /// function changed, but the symbol of the new function is equal to +@@ -1732,7 +1768,8 @@ categorize_harmful_diff_node(diff *d, bool pre) + || non_static_data_member_type_size_changed(f, s) + || non_static_data_member_added_or_removed(d) + || base_classes_added_or_removed(d) +- || has_harmful_enum_change(d))) ++ || has_harmful_enum_change(d) ++ || crc_changed(d))) + category |= SIZE_OR_OFFSET_CHANGE_CATEGORY; + + if (has_virtual_mem_fn_change(d)) +diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am +index 79e142174979..544298df8504 100644 +--- a/tests/data/Makefile.am ++++ b/tests/data/Makefile.am +@@ -191,6 +191,9 @@ test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.o \ + test-abidiff-exit/test-missing-alias-report.txt \ + test-abidiff-exit/test-missing-alias.abi \ + test-abidiff-exit/test-missing-alias.suppr \ ++test-abidiff-exit/test-crc-report.txt \ ++test-abidiff-exit/test-crc-v0.abi \ ++test-abidiff-exit/test-crc-v1.abi \ + \ + test-diff-dwarf/test0-v0.cc \ + test-diff-dwarf/test0-v0.o \ +diff --git a/tests/data/test-abidiff-exit/test-crc-report.txt b/tests/data/test-abidiff-exit/test-crc-report.txt +new file mode 100644 +index 000000000000..ddba41f40dad +--- /dev/null ++++ b/tests/data/test-abidiff-exit/test-crc-report.txt +@@ -0,0 +1,15 @@ ++Functions changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added functions ++Variables changes summary: 0 Removed, 1 Changed, 0 Added variable ++ ++1 function with some indirect sub-type change: ++ ++ [C] 'function void func1(E)' has some indirect sub-type changes: ++ ++ CRC value (modversions) changed from 0x10000001 to 0x10000002 ++ ++1 Changed variable: ++ ++ [C] 'int var1' was changed: ++ ++ CRC value (modversions) changed from 0x30000001 to 0x30000002 ++ +diff --git a/tests/data/test-abidiff-exit/test-crc-v0.abi b/tests/data/test-abidiff-exit/test-crc-v0.abi +new file mode 100644 +index 000000000000..320899fc97ff +--- /dev/null ++++ b/tests/data/test-abidiff-exit/test-crc-v0.abi +@@ -0,0 +1,29 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/tests/data/test-abidiff-exit/test-crc-v1.abi b/tests/data/test-abidiff-exit/test-crc-v1.abi +new file mode 100644 +index 000000000000..0baa66e4766b +--- /dev/null ++++ b/tests/data/test-abidiff-exit/test-crc-v1.abi +@@ -0,0 +1,30 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/tests/test-abidiff-exit.cc b/tests/test-abidiff-exit.cc +index dd903d70d132..955b0c036664 100644 +--- a/tests/test-abidiff-exit.cc ++++ b/tests/test-abidiff-exit.cc +@@ -374,6 +374,17 @@ InOutSpec in_out_specs[] = + "data/test-abidiff-exit/test-missing-alias-report.txt", + "output/test-abidiff-exit/test-missing-alias-report.txt" + }, ++ { ++ "data/test-abidiff-exit/test-crc-v0.abi", ++ "data/test-abidiff-exit/test-crc-v1.abi", ++ "", ++ "", ++ "", ++ "", ++ abigail::tools_utils::ABIDIFF_ABI_CHANGE, ++ "data/test-abidiff-exit/test-crc-report.txt", ++ "output/test-abidiff-exit/test-crc-report.txt" ++ }, + {0, 0, 0 ,0, 0, 0, abigail::tools_utils::ABIDIFF_OK, 0, 0} + }; + diff --git a/patches/corpus-make-get_-undefined_-_-var-fun-_symbols-use-the-new-symtab.patch b/patches/corpus-make-get_-undefined_-_-var-fun-_symbols-use-the-new-symtab.patch index c6581de3..bec65821 100644 --- a/patches/corpus-make-get_-undefined_-_-var-fun-_symbols-use-the-new-symtab.patch +++ b/patches/corpus-make-get_-undefined_-_-var-fun-_symbols-use-the-new-symtab.patch @@ -98,7 +98,7 @@ index 5c1e915ad2f3..ad96f260aa89 100644 get_public_types_pretty_representations(); diff --git a/src/abg-corpus.cc b/src/abg-corpus.cc -index 94702047dd82..6d4bedfd57b7 100644 +index 3d74b8163f22..3d52250d72e9 100644 --- a/src/abg-corpus.cc +++ b/src/abg-corpus.cc @@ -453,6 +453,88 @@ const type_maps& @@ -429,7 +429,7 @@ index 4c751c26020e..377afacad732 100644 /// Write an XML attribute for the reference to a symbol for the diff --git a/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi b/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi -index cbe8d20eb04e..4bfcd041c9c4 100644 +index c6f407197519..62b6efb555e0 100644 --- a/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi +++ b/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi @@ -2,8 +2,6 @@ diff --git a/patches/corpus-make-get_unreferenced_-function-variable-_symbols-use-the-new-symtab.patch b/patches/corpus-make-get_unreferenced_-function-variable-_symbols-use-the-new-symtab.patch index c38831b0..45d00be4 100644 --- a/patches/corpus-make-get_unreferenced_-function-variable-_symbols-use-the-new-symtab.patch +++ b/patches/corpus-make-get_unreferenced_-function-variable-_symbols-use-the-new-symtab.patch @@ -83,7 +83,7 @@ index ad96f260aa89..f2e895bf1e7d 100644 get_public_types_pretty_representations(); diff --git a/src/abg-corpus.cc b/src/abg-corpus.cc -index 6d4bedfd57b7..0f5d51820891 100644 +index 3d52250d72e9..84d6683dbf9d 100644 --- a/src/abg-corpus.cc +++ b/src/abg-corpus.cc @@ -317,132 +317,6 @@ struct comp_elf_symbols_functor diff --git a/patches/dwarf-reader-drop-now-unused-code-related-symbol-table-reading.patch b/patches/dwarf-reader-drop-now-unused-code-related-symbol-table-reading.patch index ddee2588..5c85a1de 100644 --- a/patches/dwarf-reader-drop-now-unused-code-related-symbol-table-reading.patch +++ b/patches/dwarf-reader-drop-now-unused-code-related-symbol-table-reading.patch @@ -74,7 +74,7 @@ index d0329aed9ccf..3f062e04502d 100644 set_environment(read_context& ctxt, ir::environment*); diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc -index f0421d31e41b..184211057c0e 100644 +index ac12d6de0eff..88b0c8ceaa05 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc @@ -295,10 +295,6 @@ static bool @@ -775,7 +775,7 @@ index f0421d31e41b..184211057c0e 100644 /// Test if a given DIE is anonymous /// /// @param die the DIE to consider. -@@ -13778,33 +13157,6 @@ build_or_get_var_decl_if_not_suppressed(read_context& ctxt, +@@ -13788,33 +13167,6 @@ build_or_get_var_decl_if_not_suppressed(read_context& ctxt, return var; } @@ -809,7 +809,7 @@ index f0421d31e41b..184211057c0e 100644 /// Build a @ref var_decl out of a DW_TAG_variable DIE. /// /// @param ctxt the read context to use. -@@ -13876,23 +13228,9 @@ build_var_decl(read_context& ctxt, +@@ -13886,23 +13238,9 @@ build_var_decl(read_context& ctxt, if (!result->get_symbol()) { elf_symbol_sptr var_sym; @@ -836,7 +836,7 @@ index f0421d31e41b..184211057c0e 100644 if (var_sym) { -@@ -13956,15 +13294,9 @@ function_is_suppressed(const read_context& ctxt, +@@ -13966,15 +13304,9 @@ function_is_suppressed(const read_context& ctxt, Dwarf_Addr fn_addr; if (!ctxt.get_function_address(function_die, fn_addr)) return true; @@ -855,7 +855,7 @@ index f0421d31e41b..184211057c0e 100644 } return suppr::function_is_suppressed(ctxt, qualified_name, -@@ -14071,15 +13403,9 @@ variable_is_suppressed(const read_context& ctxt, +@@ -14081,15 +13413,9 @@ variable_is_suppressed(const read_context& ctxt, Dwarf_Addr var_addr = 0; if (!ctxt.get_variable_address(variable_die, var_addr)) return true; @@ -874,7 +874,7 @@ index f0421d31e41b..184211057c0e 100644 } return suppr::variable_is_suppressed(ctxt, qualified_name, -@@ -14365,23 +13691,9 @@ build_function_decl(read_context& ctxt, +@@ -14375,23 +13701,9 @@ build_function_decl(read_context& ctxt, if (!result->get_symbol()) { elf_symbol_sptr fn_sym; @@ -901,7 +901,7 @@ index f0421d31e41b..184211057c0e 100644 if (fn_sym) { -@@ -14411,29 +13723,6 @@ build_function_decl(read_context& ctxt, +@@ -14421,29 +13733,6 @@ build_function_decl(read_context& ctxt, return result; } @@ -931,7 +931,7 @@ index f0421d31e41b..184211057c0e 100644 /// Read all @ref abigail::translation_unit possible from the debug info /// accessible through a DWARF Front End Library handle, and stuff /// them into a libabigail ABI Corpus. -@@ -15728,13 +15017,6 @@ read_corpus_from_elf(read_context& ctxt, status& status) +@@ -15738,13 +15027,6 @@ read_corpus_from_elf(read_context& ctxt, status& status) ctxt.load_elf_properties(); // DT_SONAME, DT_NEEDED, architecture @@ -946,10 +946,10 @@ index f0421d31e41b..184211057c0e 100644 status |= STATUS_NO_SYMBOLS_FOUND; diff --git a/src/abg-tools-utils.cc b/src/abg-tools-utils.cc -index 38e2f1755bc4..b3cee850bf38 100644 +index bc3d587128c0..6f4ec6fa4d41 100644 --- a/src/abg-tools-utils.cc +++ b/src/abg-tools-utils.cc -@@ -2547,12 +2547,6 @@ build_corpus_group_from_kernel_dist_under(const string& root, +@@ -2589,12 +2589,6 @@ build_corpus_group_from_kernel_dist_under(const string& root, << t << "\n"; @@ -962,7 +962,7 @@ index 38e2f1755bc4..b3cee850bf38 100644 group.reset(new corpus_group(env.get(), root)); set_read_context_corpus_group(*ctxt, group); -@@ -2592,13 +2586,6 @@ build_corpus_group_from_kernel_dist_under(const string& root, +@@ -2634,13 +2628,6 @@ build_corpus_group_from_kernel_dist_under(const string& root, /*read_all_types=*/false, /*linux_kernel_mode=*/true); @@ -977,7 +977,7 @@ index 38e2f1755bc4..b3cee850bf38 100644 kabi_wl_paths, supprs); diff --git a/tools/abidw.cc b/tools/abidw.cc -index 27a9e4849b54..fe2f3e22c753 100644 +index 756a29ec25c1..94354f6b6b73 100644 --- a/tools/abidw.cc +++ b/tools/abidw.cc @@ -829,8 +829,6 @@ main(int argc, char* argv[]) diff --git a/patches/dwarf-reader-read_context-use-new-symtab-in-_symbols_is_exported.patch b/patches/dwarf-reader-read_context-use-new-symtab-in-_symbols_is_exported.patch index dcf1be9d..2624a099 100644 --- a/patches/dwarf-reader-read_context-use-new-symtab-in-_symbols_is_exported.patch +++ b/patches/dwarf-reader-read_context-use-new-symtab-in-_symbols_is_exported.patch @@ -18,7 +18,7 @@ Signed-off-by: Matthias Maennich 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc -index 788b167db388..58eb9e92a6d2 100644 +index d6e130ad4a74..b3b7ad88688e 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc @@ -5720,11 +5720,11 @@ public: diff --git a/patches/dwarf-reader-sort-the-types-for-canonicalization.patch b/patches/dwarf-reader-sort-the-types-for-canonicalization.patch new file mode 100644 index 00000000..953c95d6 --- /dev/null +++ b/patches/dwarf-reader-sort-the-types-for-canonicalization.patch @@ -0,0 +1,17550 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Giuliano Procida +Date: Tue, 22 Sep 2020 11:52:16 +0100 +Subject: dwarf-reader: sort the types for canonicalization + +This works around an issue where the order matters for canonicalization +depending on whether we see a type declaration-only or fully defined +first. The fully defined type is to prefer, hence partition the +types_to_canonicalize by whether they are declaration-only. + +Signed-off-by: Giuliano Procida +Signed-off-by: Matthias Maennich +--- + src/abg-dwarf-reader.cc | 16 + + .../data/test-annotate/test13-pr18894.so.abi | 858 ++++--- + .../data/test-annotate/test15-pr18892.so.abi | 2155 +++++++++-------- + .../test-read-dwarf/test13-pr18894.so.abi | 782 +++--- + .../test-read-dwarf/test15-pr18892.so.abi | 2149 ++++++++-------- + 5 files changed, 3238 insertions(+), 2722 deletions(-) + +diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc +index c45dfbbf2a64..a3e6ac3e8324 100644 +--- a/src/abg-dwarf-reader.cc ++++ b/src/abg-dwarf-reader.cc +@@ -4661,6 +4661,22 @@ public: + cn_timer.start(); + } + ++ { ++ // first let's "sort" the types so that definitions appear before ++ // declarations ++ vector replacement, incomplete; ++ for (const auto& doff : types_to_canonicalize(source)) ++ { ++ const type_base_sptr& t = lookup_type_from_die_offset(doff, source); ++ decl_base* db = dynamic_cast(t.get()); ++ (db && db->get_is_declaration_only() ? incomplete : replacement) ++ .push_back(doff); ++ } ++ replacement.insert(replacement.end(), incomplete.begin(), ++ incomplete.end()); ++ std::swap(types_to_canonicalize(source), replacement); ++ } ++ + if (!types_to_canonicalize(source).empty()) + { + tools_utils::timer single_type_cn_timer; +diff --git a/tests/data/test-annotate/test13-pr18894.so.abi b/tests/data/test-annotate/test13-pr18894.so.abi +index efb83bccf8d9..7c8902374ede 100644 +--- a/tests/data/test-annotate/test13-pr18894.so.abi ++++ b/tests/data/test-annotate/test13-pr18894.so.abi +@@ -665,19 +665,17 @@ + + + +- +- + +- ++ + +- ++ + +- ++ + + + + +- ++ + + + +@@ -767,7 +765,7 @@ + + + +- ++ + + + +@@ -826,7 +824,7 @@ + + + +- ++ + + + +@@ -838,50 +836,207 @@ + + + +- +- + +- +- +- ++ + +- ++ + +- +- +- ++ + +- ++ + +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +- ++ + +- ++ + + +- ++ + + + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + + +- ++ + + + +- ++ + + + +@@ -901,7 +1056,7 @@ + + + +- ++ + + + +@@ -909,7 +1064,7 @@ + + + +- ++ + + + +@@ -929,13 +1084,13 @@ + + + +- ++ + + + +- ++ + +- ++ + + + +@@ -954,21 +1109,21 @@ + + + +- ++ + +- ++ + + + + + + +- ++ + +- ++ + + +- ++ + + + +@@ -976,113 +1131,113 @@ + + + +- ++ + +- ++ + + + + + + +- ++ + + + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- +- ++ ++ + + + + + +- ++ + +- ++ + +- ++ + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + +- ++ + +- ++ + +- +- ++ ++ + + + + + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + + + +@@ -1097,75 +1252,75 @@ + + + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + + + + + +- ++ + + + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + + + +- ++ + + + +@@ -1178,7 +1333,7 @@ + + + +- ++ + + + +@@ -1187,11 +1342,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -1241,28 +1396,28 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -1271,14 +1426,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -1287,14 +1442,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -1303,14 +1458,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -1386,7 +1541,7 @@ + + + +- ++ + + + +@@ -1397,11 +1552,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -1428,11 +1583,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -1450,11 +1605,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -1510,11 +1665,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -1523,11 +1678,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -1536,15 +1691,15 @@ + + + +- ++ + +- ++ + +- ++ + + + +- ++ + + + +@@ -1553,15 +1708,15 @@ + + + +- ++ + +- ++ + +- ++ + + + +- ++ + + + +@@ -1593,7 +1748,7 @@ + + + +- ++ + + + +@@ -1607,7 +1762,7 @@ + + + +- ++ + + + +@@ -1646,28 +1801,28 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -1676,7 +1831,7 @@ + + + +- ++ + + + +@@ -1692,9 +1847,9 @@ + + + +- ++ + +- ++ + + + +@@ -1705,7 +1860,7 @@ + + + +- ++ + + + +@@ -1741,9 +1896,9 @@ + + + +- ++ + +- ++ + + + +@@ -1754,20 +1909,20 @@ + + + +- ++ + + + + + +- ++ + + + + + + +- ++ + + + +@@ -1792,11 +1947,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -1814,7 +1969,7 @@ + + + +- ++ + + + +@@ -1823,7 +1978,7 @@ + + + +- ++ + + + +@@ -1832,7 +1987,7 @@ + + + +- ++ + + + +@@ -1843,7 +1998,7 @@ + + + +- ++ + + + +@@ -1861,7 +2016,7 @@ + + + +- ++ + + + +@@ -1870,7 +2025,7 @@ + + + +- ++ + + + +@@ -1954,7 +2109,7 @@ + + + +- ++ + + + +@@ -2084,13 +2239,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -2120,22 +2275,22 @@ + + + +- ++ + +- ++ + + + + + + +- ++ + +- ++ + + + +- ++ + + + +@@ -2156,21 +2311,21 @@ + + + +- ++ + +- ++ + + + + +- ++ + + + + + + +- ++ + + + +@@ -2179,14 +2334,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -2195,21 +2350,21 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -2218,14 +2373,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -2234,14 +2389,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -2250,21 +2405,21 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -2273,7 +2428,7 @@ + + + +- ++ + + + +@@ -2282,7 +2437,7 @@ + + + +- ++ + + + +@@ -2291,7 +2446,7 @@ + + + +- ++ + + + +@@ -2300,7 +2455,7 @@ + + + +- ++ + + + +@@ -2309,7 +2464,7 @@ + + + +- ++ + + + +@@ -2318,7 +2473,7 @@ + + + +- ++ + + + +@@ -2327,7 +2482,7 @@ + + + +- ++ + + + +@@ -2336,7 +2491,7 @@ + + + +- ++ + + + +@@ -2345,21 +2500,21 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -2368,7 +2523,7 @@ + + + +- ++ + + + +@@ -2432,7 +2587,7 @@ + + + +- ++ + + + +@@ -2512,7 +2667,7 @@ + + + +- ++ + + + +@@ -2521,7 +2676,7 @@ + + + +- ++ + + + +@@ -2532,7 +2687,7 @@ + + + +- ++ + + + +@@ -2542,14 +2697,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -2558,7 +2713,7 @@ + + + +- ++ + + + +@@ -2569,7 +2724,7 @@ + + + +- ++ + + + +@@ -2580,7 +2735,7 @@ + + + +- ++ + + + +@@ -2593,14 +2748,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -2611,7 +2766,7 @@ + + + +- ++ + + + +@@ -2624,56 +2779,56 @@ + + + +- ++ + + + + + + +- ++ + + + + +- ++ + + + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + + + +- ++ + + + + +- ++ + +- ++ + + + + +- ++ + + + +@@ -2686,7 +2841,7 @@ + + + +- ++ + + + +@@ -2700,21 +2855,21 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -2725,7 +2880,7 @@ + + + +- ++ + + + +@@ -2751,30 +2906,73 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +- ++ + +- ++ + + + +- ++ + +- ++ + + + + + + +- ++ + +- ++ + + + + +- ++ + + + +@@ -2795,61 +2993,61 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + +- ++ + + + + + + +- ++ + +- ++ + + + +- ++ + + + + + + +- ++ + + + +@@ -2860,18 +3058,18 @@ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + +@@ -2879,7 +3077,7 @@ + + + +- ++ + + + +@@ -2891,11 +3089,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -2911,7 +3109,7 @@ + + + +- ++ + + + +@@ -2923,7 +3121,7 @@ + + + +- ++ + + + +@@ -2998,7 +3196,7 @@ + + + +- ++ + + + +@@ -3018,7 +3216,7 @@ + + + +- ++ + + + +@@ -3050,15 +3248,15 @@ + + + +- ++ + +- ++ + +- ++ + + + +- ++ + + + +@@ -3067,15 +3265,15 @@ + + + +- ++ + +- ++ + +- ++ + + + +- ++ + + + +@@ -3485,7 +3683,7 @@ + + + +- ++ + + + +@@ -3495,7 +3693,7 @@ + + + +- ++ + + + +@@ -3518,14 +3716,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -3540,46 +3738,81 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +- ++ + +- ++ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -3614,14 +3847,57 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +- ++ + +- ++ + + + +- ++ + + + +@@ -3630,60 +3906,60 @@ + + + +- ++ + + + + + + +- ++ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +diff --git a/tests/data/test-annotate/test15-pr18892.so.abi b/tests/data/test-annotate/test15-pr18892.so.abi +index 1af9906fa404..7b61907ec50c 100644 +--- a/tests/data/test-annotate/test15-pr18892.so.abi ++++ b/tests/data/test-annotate/test15-pr18892.so.abi +@@ -3051,17 +3051,15 @@ + + + +- +- + +- ++ + + + + + + +- ++ + + + +@@ -3069,7 +3067,7 @@ + + + +- ++ + + + +@@ -3077,7 +3075,7 @@ + + + +- ++ + + + +@@ -3085,54 +3083,54 @@ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + +- ++ + +- ++ + + + + + + +- ++ + + + +- ++ + + + +- ++ + +- ++ + +- ++ + +- ++ + + + + + +- ++ + +- ++ + +- ++ + + + +@@ -3142,25 +3140,25 @@ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + +- ++ + + + +@@ -3168,14 +3166,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -3190,12 +3188,12 @@ + + + +- ++ + + + + +- ++ + + + +@@ -3204,7 +3202,7 @@ + + + +- ++ + + + +@@ -3217,9 +3215,9 @@ + + + +- ++ + +- ++ + + + +@@ -3230,11 +3228,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -3243,9 +3241,9 @@ + + + +- ++ + +- ++ + + + +@@ -3254,14 +3252,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -3274,11 +3272,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -3293,7 +3291,7 @@ + + + +- ++ + + + +@@ -3308,7 +3306,7 @@ + + + +- ++ + + + +@@ -3334,7 +3332,7 @@ + + + +- ++ + + + +@@ -3351,7 +3349,7 @@ + + + +- ++ + + + +@@ -3366,7 +3364,7 @@ + + + +- ++ + + + +@@ -3379,14 +3377,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -3394,10 +3392,21 @@ + + + +- ++ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -3429,7 +3438,7 @@ + + + +- ++ + + + +@@ -3439,11 +3448,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -3451,7 +3460,7 @@ + + + +- ++ + + + +@@ -3469,20 +3478,20 @@ + + + +- ++ + + + + + + +- ++ + +- ++ + +- ++ + +- ++ + + + +@@ -3493,42 +3502,42 @@ + + + +- ++ + +- ++ + + + + + + +- ++ + + + + + +- ++ + + + + + + +- ++ + + +- ++ + + + + +- ++ + +- ++ + + +- ++ + + + +@@ -3538,9 +3547,9 @@ + + + +- ++ + +- ++ + + + +@@ -3549,7 +3558,7 @@ + + + +- ++ + + + +@@ -3719,7 +3728,7 @@ + + + +- ++ + + + +@@ -3741,18 +3750,18 @@ + + + +- ++ + + + +- ++ + + + + + + +- ++ + + + +@@ -3829,7 +3838,7 @@ + + + +- ++ + + + +@@ -3837,7 +3846,7 @@ + + + +- ++ + + + +@@ -3866,7 +3875,7 @@ + + + +- ++ + + + +@@ -3880,7 +3889,7 @@ + + + +- ++ + + + +@@ -3902,7 +3911,7 @@ + + + +- ++ + + + +@@ -3917,7 +3926,7 @@ + + + +- ++ + + + +@@ -3929,11 +3938,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -3941,15 +3950,15 @@ + + + +- ++ + + + +- ++ + + + +- ++ + + + +@@ -3957,15 +3966,15 @@ + + + +- ++ + + + +- ++ + + + +- ++ + + + +@@ -3993,20 +4002,20 @@ + + + +- ++ + +- ++ + + + + + + +- ++ + + + +- ++ + + + +@@ -4017,7 +4026,7 @@ + + + +- ++ + + + +@@ -4028,7 +4037,7 @@ + + + +- ++ + + + +@@ -4042,14 +4051,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -4057,16 +4066,16 @@ + + + +- ++ + + + + +- ++ + + + +- ++ + + + +@@ -4077,9 +4086,9 @@ + + + +- ++ + +- ++ + + + +@@ -4090,7 +4099,7 @@ + + + +- ++ + + + +@@ -4099,13 +4108,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -4123,7 +4132,7 @@ + + + +- ++ + + + +@@ -4155,7 +4164,7 @@ + + + +- ++ + + + +@@ -4166,7 +4175,7 @@ + + + +- ++ + + + +@@ -4175,7 +4184,7 @@ + + + +- ++ + + + +@@ -4185,7 +4194,7 @@ + + + +- ++ + + + +@@ -4194,9 +4203,9 @@ + + + +- ++ + +- ++ + + + +@@ -4205,9 +4214,9 @@ + + + +- ++ + +- ++ + + + +@@ -4451,9 +4460,9 @@ + + + +- ++ + +- ++ + + + +@@ -4801,7 +4810,7 @@ + + + +- ++ + + + +@@ -4824,7 +4833,7 @@ + + + +- ++ + + + +@@ -4888,7 +4897,7 @@ + + + +- ++ + + + +@@ -5061,7 +5070,7 @@ + + + +- ++ + + + +@@ -5221,7 +5230,7 @@ + + + +- ++ + + + +@@ -5234,7 +5243,7 @@ + + + +- ++ + + + +@@ -5248,7 +5257,7 @@ + + + +- ++ + + + +@@ -5266,7 +5275,7 @@ + + + +- ++ + + + +@@ -5297,7 +5306,7 @@ + + + +- ++ + + + +@@ -5319,7 +5328,7 @@ + + + +- ++ + + + +@@ -5350,11 +5359,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -5447,7 +5456,7 @@ + + + +- ++ + + + +@@ -5489,7 +5498,7 @@ + + + +- ++ + + + +@@ -5509,7 +5518,7 @@ + + + +- ++ + + + +@@ -5550,11 +5559,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -5618,9 +5627,9 @@ + + + +- ++ + +- ++ + + + +@@ -5631,11 +5640,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -5647,7 +5656,7 @@ + + + +- ++ + + + +@@ -5703,7 +5712,7 @@ + + + +- ++ + + + +@@ -5716,7 +5725,7 @@ + + + +- ++ + + + +@@ -5759,7 +5768,7 @@ + + + +- ++ + + + +@@ -5878,7 +5887,7 @@ + + + +- ++ + + + +@@ -5917,7 +5926,7 @@ + + + +- ++ + + + +@@ -5953,11 +5962,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -5973,7 +5982,7 @@ + + + +- ++ + + + +@@ -5981,7 +5990,7 @@ + + + +- ++ + + + +@@ -5992,7 +6001,7 @@ + + + +- ++ + + + +@@ -6003,7 +6012,7 @@ + + + +- ++ + + + +@@ -6039,7 +6048,7 @@ + + + +- ++ + + + +@@ -6050,7 +6059,7 @@ + + + +- ++ + + + +@@ -6060,7 +6069,7 @@ + + + +- ++ + + + +@@ -6125,7 +6134,7 @@ + + + +- ++ + + + +@@ -6186,7 +6195,7 @@ + + + +- ++ + + + +@@ -6235,7 +6244,7 @@ + + + +- ++ + + + +@@ -6249,30 +6258,30 @@ + + + +- ++ + + +- ++ + + + + +- ++ + + + +- ++ + +- ++ + + + + + + +- ++ + +- ++ + + + +@@ -6377,15 +6386,15 @@ + + + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + + + +@@ -6395,43 +6404,43 @@ + + + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + + + + + +- ++ + +- ++ + +- ++ + +- ++ + + + +@@ -7474,7 +7483,7 @@ + + + +- ++ + + + +@@ -7492,11 +7501,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -7505,7 +7514,7 @@ + + + +- ++ + + + +@@ -7519,7 +7528,7 @@ + + + +- ++ + + + +@@ -7531,14 +7540,14 @@ + + + +- ++ + + + + +- ++ + +- ++ + + + +@@ -7551,13 +7560,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -7771,7 +7780,7 @@ + + + +- ++ + + + +@@ -7985,7 +7994,7 @@ + + + +- ++ + + + +@@ -8043,7 +8052,7 @@ + + + +- ++ + + + +@@ -8077,7 +8086,7 @@ + + + +- ++ + + + +@@ -8156,7 +8165,7 @@ + + + +- ++ + + + +@@ -8173,7 +8182,7 @@ + + + +- ++ + + + +@@ -8227,18 +8236,18 @@ + + + +- ++ + + + +- ++ + + + + + + +- ++ + + + +@@ -8251,7 +8260,7 @@ + + + +- ++ + + + +@@ -8313,9 +8322,9 @@ + + + +- ++ + +- ++ + + + +@@ -8326,7 +8335,7 @@ + + + +- ++ + + + +@@ -8339,7 +8348,7 @@ + + + +- ++ + + + +@@ -8504,11 +8513,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -8764,7 +8773,7 @@ + + + +- ++ + + + +@@ -8793,7 +8802,7 @@ + + + +- ++ + + + +@@ -8802,7 +8811,7 @@ + + + +- ++ + + + +@@ -8975,7 +8984,7 @@ + + + +- ++ + + + +@@ -9517,7 +9526,7 @@ + + + +- ++ + + + +@@ -9560,7 +9569,7 @@ + + + +- ++ + + + +@@ -9594,7 +9603,7 @@ + + + +- ++ + + + +@@ -9621,7 +9630,7 @@ + + + +- ++ + + + +@@ -9677,7 +9686,7 @@ + + + +- ++ + + + +@@ -9703,7 +9712,7 @@ + + + +- ++ + + + +@@ -9717,7 +9726,7 @@ + + + +- ++ + + + +@@ -9818,7 +9827,7 @@ + + + +- ++ + + + +@@ -9830,7 +9839,7 @@ + + + +- ++ + + + +@@ -9838,7 +9847,7 @@ + + + +- ++ + + + +@@ -9924,13 +9933,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -9942,7 +9951,7 @@ + + + +- ++ + + + +@@ -9950,13 +9959,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -9980,7 +9989,7 @@ + + + +- ++ + + + +@@ -10100,7 +10109,7 @@ + + + +- ++ + + + +@@ -10348,9 +10357,9 @@ + + + +- ++ + +- ++ + + + +@@ -10396,19 +10405,19 @@ + + + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + + + +- ++ + + + +@@ -10882,7 +10891,7 @@ + + + +- ++ + + + +@@ -11046,9 +11055,9 @@ + + + +- ++ + +- ++ + + + +@@ -11086,11 +11095,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -11142,7 +11151,7 @@ + + + +- ++ + + + +@@ -11172,7 +11181,7 @@ + + + +- ++ + + + +@@ -11225,7 +11234,7 @@ + + + +- ++ + + + +@@ -11341,7 +11350,7 @@ + + + +- ++ + + + +@@ -11498,7 +11507,7 @@ + + + +- ++ + + + +@@ -11864,7 +11873,7 @@ + + + +- ++ + + + +@@ -11892,7 +11901,7 @@ + + + +- ++ + + + +@@ -11957,11 +11966,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -12046,7 +12055,7 @@ + + + +- ++ + + + +@@ -12061,11 +12070,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -12076,39 +12085,39 @@ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +@@ -12162,7 +12171,7 @@ + + + +- ++ + + + +@@ -12173,7 +12182,7 @@ + + + +- ++ + + + +@@ -12195,7 +12204,7 @@ + + + +- ++ + + + +@@ -12206,7 +12215,7 @@ + + + +- ++ + + + +@@ -12217,9 +12226,9 @@ + + + +- ++ + +- ++ + + + +@@ -12230,7 +12239,7 @@ + + + +- ++ + + + +@@ -12241,7 +12250,7 @@ + + + +- ++ + + + +@@ -12268,7 +12277,7 @@ + + + +- ++ + + + +@@ -12279,7 +12288,7 @@ + + + +- ++ + + + +@@ -12297,9 +12306,9 @@ + + + +- ++ + +- ++ + + + +@@ -12310,7 +12319,7 @@ + + + +- ++ + + + +@@ -12321,7 +12330,7 @@ + + + +- ++ + + + +@@ -12332,7 +12341,7 @@ + + + +- ++ + + + +@@ -12343,7 +12352,7 @@ + + + +- ++ + + + +@@ -12354,7 +12363,7 @@ + + + +- ++ + + + +@@ -12365,7 +12374,7 @@ + + + +- ++ + + + +@@ -12376,9 +12385,9 @@ + + + +- ++ + +- ++ + + + +@@ -12531,7 +12540,7 @@ + + + +- ++ + + + +@@ -12540,47 +12549,47 @@ + + + +- ++ + + + + +- ++ + +- ++ + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -19009,7 +19018,7 @@ + + + +- ++ + + + +@@ -19033,7 +19042,7 @@ + + + +- ++ + + + +@@ -19042,7 +19051,7 @@ + + + +- ++ + + + +@@ -19165,7 +19174,7 @@ + + + +- ++ + + + +@@ -19199,7 +19208,7 @@ + + + +- ++ + + + +@@ -19208,7 +19217,7 @@ + + + +- ++ + + + +@@ -19219,7 +19228,7 @@ + + + +- ++ + + + +@@ -19228,7 +19237,7 @@ + + + +- ++ + + + +@@ -19237,7 +19246,7 @@ + + + +- ++ + + + +@@ -19246,7 +19255,7 @@ + + + +- ++ + + + +@@ -19255,7 +19264,7 @@ + + + +- ++ + + + +@@ -19264,7 +19273,7 @@ + + + +- ++ + + + +@@ -19273,7 +19282,7 @@ + + + +- ++ + + + +@@ -19282,18 +19291,18 @@ + + + +- ++ + + + + +- ++ + +- ++ + + + +- ++ + + + +@@ -19322,7 +19331,7 @@ + + + +- ++ + + + +@@ -19331,7 +19340,7 @@ + + + +- ++ + + + +@@ -19340,7 +19349,7 @@ + + + +- ++ + + + +@@ -19363,16 +19372,16 @@ + + + +- ++ + + + + +- ++ + + + +- ++ + + + +@@ -19381,16 +19390,16 @@ + + + +- ++ + + + + +- ++ + + + +- ++ + + + +@@ -19399,16 +19408,16 @@ + + + +- ++ + + + + +- ++ + + + +- ++ + + + +@@ -19417,16 +19426,16 @@ + + + +- ++ + + + + +- ++ + + + +- ++ + + + +@@ -19435,7 +19444,7 @@ + + + +- ++ + + + +@@ -19446,7 +19455,7 @@ + + + +- ++ + + + +@@ -19462,14 +19471,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -19478,7 +19487,7 @@ + + + +- ++ + + + +@@ -19487,26 +19496,26 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + +- ++ + + + +@@ -19515,7 +19524,7 @@ + + + +- ++ + + + +@@ -19524,41 +19533,41 @@ + + + +- ++ + +- ++ + + + + +- ++ + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -19569,7 +19578,7 @@ + + + +- ++ + + + +@@ -19578,7 +19587,7 @@ + + + +- ++ + + + +@@ -19587,7 +19596,7 @@ + + + +- ++ + + + +@@ -19596,9 +19605,9 @@ + + + +- ++ + +- ++ + + + +@@ -19611,7 +19620,7 @@ + + + +- ++ + + + +@@ -19620,18 +19629,18 @@ + + + +- ++ + +- ++ + + + + +- ++ + + + +- ++ + + + +@@ -19644,7 +19653,7 @@ + + + +- ++ + + + +@@ -19657,23 +19666,23 @@ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + +@@ -19684,25 +19693,25 @@ + + + +- ++ + + + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + +@@ -19720,11 +19729,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -19811,7 +19820,7 @@ + + + +- ++ + + + +@@ -19822,14 +19831,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -19845,7 +19854,7 @@ + + + +- ++ + + + +@@ -19854,9 +19863,9 @@ + + + +- ++ + +- ++ + + + +@@ -19873,7 +19882,7 @@ + + + +- ++ + + + +@@ -19891,7 +19900,7 @@ + + + +- ++ + + + +@@ -19905,27 +19914,27 @@ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + +- ++ + + + +@@ -19959,48 +19968,48 @@ + + + +- ++ + + + + + +- ++ + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + +- ++ + +- ++ + + + + + +- ++ + + + + + + +- ++ + + + +@@ -20012,7 +20021,7 @@ + + + +- ++ + + + +@@ -20029,16 +20038,16 @@ + + + +- ++ + + + + + + +- ++ + +- ++ + + + +@@ -20050,7 +20059,7 @@ + + + +- ++ + + + +@@ -20065,21 +20074,21 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -20088,9 +20097,9 @@ + + + +- ++ + +- ++ + + + +@@ -20104,13 +20113,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -20121,7 +20130,7 @@ + + + +- ++ + + + +@@ -20130,23 +20139,23 @@ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + +@@ -20159,77 +20168,77 @@ + + + +- ++ + + + +- ++ + + + +- ++ + + + + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + +- ++ + +- ++ + + + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + +- ++ + + + +@@ -20238,7 +20247,7 @@ + + + +- ++ + + + +@@ -20247,7 +20256,7 @@ + + + +- ++ + + + +@@ -20256,18 +20265,18 @@ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + +@@ -20278,7 +20287,7 @@ + + + +- ++ + + + +@@ -20288,7 +20297,7 @@ + + + +- ++ + + + +@@ -20299,7 +20308,7 @@ + + + +- ++ + + + +@@ -20309,7 +20318,7 @@ + + + +- ++ + + + +@@ -20318,7 +20327,7 @@ + + + +- ++ + + + +@@ -20326,7 +20335,7 @@ + + + +- ++ + + + +@@ -20337,7 +20346,7 @@ + + + +- ++ + + + +@@ -20347,7 +20356,7 @@ + + + +- ++ + + + +@@ -20358,7 +20367,7 @@ + + + +- ++ + + + +@@ -20368,7 +20377,7 @@ + + + +- ++ + + + +@@ -20377,7 +20386,7 @@ + + + +- ++ + + + +@@ -20385,7 +20394,7 @@ + + + +- ++ + + + +@@ -20472,7 +20481,7 @@ + + + +- ++ + + + +@@ -20482,16 +20491,16 @@ + + + +- ++ + + + + +- ++ + + + +- ++ + + + +@@ -20500,11 +20509,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -20513,18 +20522,18 @@ + + + +- ++ + + + +- ++ + + + + + + +- ++ + + + +@@ -20537,7 +20546,7 @@ + + + +- ++ + + + +@@ -20550,7 +20559,7 @@ + + + +- ++ + + + +@@ -20561,11 +20570,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -20574,11 +20583,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -20587,18 +20596,18 @@ + + + +- ++ + + + +- ++ + + + + + + +- ++ + + + +@@ -20611,7 +20620,7 @@ + + + +- ++ + + + +@@ -20624,7 +20633,7 @@ + + + +- ++ + + + +@@ -20668,7 +20677,7 @@ + + + +- ++ + + + +@@ -20677,7 +20686,7 @@ + + + +- ++ + + + +@@ -20688,7 +20697,7 @@ + + + +- ++ + + + +@@ -20697,7 +20706,7 @@ + + + +- ++ + + + +@@ -20709,9 +20718,9 @@ + + + +- ++ + +- ++ + + + +@@ -20724,7 +20733,7 @@ + + + +- ++ + + + +@@ -20733,55 +20742,55 @@ + + + +- ++ + + + + + + +- ++ + +- ++ + + + + +- ++ + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + +@@ -20790,28 +20799,28 @@ + + + +- ++ + + + +- ++ + +- ++ + +- ++ + + + + +- ++ + +- ++ + +- ++ + + + +- ++ + + + +@@ -20825,19 +20834,19 @@ + + + +- ++ + + + + + + +- ++ + + + + +- ++ + + + +@@ -20846,7 +20855,7 @@ + + + +- ++ + + + +@@ -20879,7 +20888,7 @@ + + + +- ++ + + + +@@ -20906,42 +20915,42 @@ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + + + +- ++ + + + +- ++ + + + + + + +- ++ + + + + + +- ++ + + + +@@ -20950,16 +20959,16 @@ + + + +- ++ + +- ++ + + + + + + +- ++ + + + +@@ -20973,226 +20982,226 @@ + + + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + + +- ++ + +- ++ + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + +- ++ + +- ++ + + + +- ++ + + + + +- ++ + +- ++ + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + + +- ++ + + + +- ++ + +- ++ + + + + + + +- ++ + +- ++ + + + + +- ++ + +- ++ + +- ++ + +- ++ + + + + +- ++ + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + + + + +- ++ + +- ++ + + + + + + +- ++ + +- ++ + + + + + + +- ++ + +- ++ + +- ++ + + + + + + +- ++ + +- ++ + +- ++ + + + + +- ++ + + + +- ++ + + + + +- ++ + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + + +- ++ + +- ++ + + + +- ++ + + + +@@ -21201,18 +21210,18 @@ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + +@@ -21221,18 +21230,18 @@ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + +@@ -21241,18 +21250,18 @@ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + +@@ -21261,18 +21270,18 @@ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + +@@ -21281,14 +21290,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -21297,39 +21306,39 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +- ++ + + + +@@ -21338,21 +21347,21 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -21363,7 +21372,7 @@ + + + +- ++ + + + +@@ -21374,21 +21383,21 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -21397,21 +21406,21 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -21420,28 +21429,28 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -21450,44 +21459,44 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + +- ++ + + + +@@ -21496,21 +21505,21 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -21519,14 +21528,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -21535,7 +21544,7 @@ + + + +- ++ + + + +@@ -21548,7 +21557,7 @@ + + + +- ++ + + + +@@ -21569,7 +21578,7 @@ + + + +- ++ + + + +@@ -21580,7 +21589,7 @@ + + + +- ++ + + + +@@ -21612,7 +21621,7 @@ + + + +- ++ + + + +@@ -21621,11 +21630,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -21638,11 +21647,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -21689,7 +21698,7 @@ + + + +- ++ + + + +@@ -21698,7 +21707,7 @@ + + + +- ++ + + + +@@ -21707,7 +21716,7 @@ + + + +- ++ + + + +@@ -21727,7 +21736,7 @@ + + + +- ++ + + + +@@ -21738,7 +21747,7 @@ + + + +- ++ + + + +@@ -21753,7 +21762,7 @@ + + + +- ++ + + + +@@ -21771,7 +21780,7 @@ + + + +- ++ + + + +@@ -21917,7 +21926,7 @@ + + + +- ++ + + + +@@ -21926,7 +21935,7 @@ + + + +- ++ + + + +@@ -21939,7 +21948,7 @@ + + + +- ++ + + + +@@ -21948,28 +21957,28 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -21980,14 +21989,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -23804,23 +23813,23 @@ + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + +@@ -23832,7 +23841,7 @@ + + + +- ++ + + + +@@ -23841,21 +23850,21 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -23885,11 +23894,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -23898,7 +23907,7 @@ + + + +- ++ + + + +@@ -23942,14 +23951,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -23958,9 +23967,9 @@ + + + +- ++ + +- ++ + + + +@@ -23980,7 +23989,7 @@ + + + +- ++ + + + +@@ -24084,7 +24093,7 @@ + + + +- ++ + + + +@@ -24116,14 +24125,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -24132,7 +24141,7 @@ + + + +- ++ + + + +@@ -24143,7 +24152,7 @@ + + + +- ++ + + + +@@ -24174,7 +24183,7 @@ + + + +- ++ + + + +@@ -24262,7 +24271,7 @@ + + + +- ++ + + + +@@ -24277,7 +24286,7 @@ + + + +- ++ + + + +@@ -24286,9 +24295,9 @@ + + + +- ++ + +- ++ + + + +@@ -24301,14 +24310,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -24317,7 +24326,7 @@ + + + +- ++ + + + +@@ -24326,7 +24335,7 @@ + + + +- ++ + + + +@@ -24337,14 +24346,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -24357,7 +24366,7 @@ + + + +- ++ + + + +@@ -24370,7 +24379,7 @@ + + + +- ++ + + + +@@ -24379,7 +24388,7 @@ + + + +- ++ + + + +@@ -24390,7 +24399,7 @@ + + + +- ++ + + + +@@ -24407,7 +24416,7 @@ + + + +- ++ + + + +@@ -24416,16 +24425,16 @@ + + + +- ++ + +- ++ + + + + + + +- ++ + + + +@@ -24437,7 +24446,7 @@ + + + +- ++ + + + +@@ -24446,7 +24455,7 @@ + + + +- ++ + + + +@@ -24455,14 +24464,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -24471,14 +24480,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -24487,21 +24496,21 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -24510,7 +24519,7 @@ + + + +- ++ + + + +@@ -24521,7 +24530,7 @@ + + + +- ++ + + + +@@ -24532,7 +24541,7 @@ + + + +- ++ + + + +@@ -24543,7 +24552,7 @@ + + + +- ++ + + + +@@ -24553,27 +24562,27 @@ + + + +- ++ + + + + + + +- ++ + +- ++ + + + + + + +- ++ + +- ++ + +- ++ + + + +@@ -24582,7 +24591,7 @@ + + + +- ++ + + + +@@ -24590,7 +24599,7 @@ + + + +- ++ + + + +@@ -24599,230 +24608,230 @@ + + + +- ++ + + + + +- ++ + +- ++ + + + + + + +- ++ + + + + + + +- ++ + +- ++ + + + + + + +- ++ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + +- ++ + +- ++ + + + + +- ++ + + + +- ++ + +- ++ + + + + +- ++ + + + +- ++ + + + +- ++ + + + + +- ++ + +- ++ + +- ++ + +- ++ + + + + +- ++ + +- ++ + +- ++ + + + +- ++ + + + + +- ++ + +- ++ + +- ++ + + + +- ++ + + + + +- ++ + +- ++ + +- ++ + + + + + +- ++ + + + + +- ++ + +- ++ + + + +- ++ + + + + +- ++ + +- ++ + + + +- ++ + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + +@@ -24832,97 +24841,97 @@ + + + +- ++ + + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + +- ++ + +- ++ + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + + +- ++ + +- ++ + + + + +- ++ + + + + + +- ++ + + + +@@ -24931,7 +24940,7 @@ + + + +- ++ + + + +@@ -24940,7 +24949,7 @@ + + + +- ++ + + + +@@ -24951,30 +24960,30 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + +- ++ + + + + + + +- ++ + + + +@@ -24983,7 +24992,7 @@ + + + +- ++ + + + +@@ -24994,23 +25003,23 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + +- ++ + + + +@@ -25021,7 +25030,7 @@ + + + +- ++ + + + +@@ -25032,7 +25041,7 @@ + + + +- ++ + + + +@@ -25043,7 +25052,7 @@ + + + +- ++ + + + +@@ -25052,7 +25061,7 @@ + + + +- ++ + + + +@@ -25063,7 +25072,7 @@ + + + +- ++ + + + +@@ -25073,7 +25082,7 @@ + + + +- ++ + + + +@@ -25082,16 +25091,16 @@ + + + +- ++ + + + + + + +- ++ + +- ++ + + + +@@ -25100,16 +25109,16 @@ + + + +- ++ + + + + + + +- ++ + +- ++ + + + +@@ -25121,18 +25130,18 @@ + + + +- ++ + + + + + + +- ++ + + + +- ++ + + + +@@ -25141,7 +25150,7 @@ + + + +- ++ + + + +@@ -25152,7 +25161,7 @@ + + + +- ++ + + + +@@ -25161,7 +25170,7 @@ + + + +- ++ + + + +@@ -25170,7 +25179,7 @@ + + + +- ++ + + + +@@ -25179,7 +25188,7 @@ + + + +- ++ + + + +@@ -25188,7 +25197,7 @@ + + + +- ++ + + + +@@ -25197,7 +25206,7 @@ + + + +- ++ + + + +@@ -25208,7 +25217,7 @@ + + + +- ++ + + + +@@ -25219,7 +25228,7 @@ + + + +- ++ + + + +@@ -25230,7 +25239,7 @@ + + + +- ++ + + + +@@ -25243,7 +25252,7 @@ + + + +- ++ + + + +@@ -25254,7 +25263,7 @@ + + + +- ++ + + + +@@ -25267,7 +25276,7 @@ + + + +- ++ + + + +@@ -25312,7 +25321,7 @@ + + + +- ++ + + + +@@ -25358,7 +25367,7 @@ + + + +- ++ + + + +@@ -25427,7 +25436,7 @@ + + + +- ++ + + + +@@ -25447,22 +25456,22 @@ + + + +- ++ + + + +- ++ + + + + + + +- ++ + + + +- ++ + + + +@@ -25471,11 +25480,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -25484,18 +25493,18 @@ + + + +- ++ + + + +- ++ + + + + + + +- ++ + + + +@@ -25508,7 +25517,7 @@ + + + +- ++ + + + +@@ -25519,7 +25528,7 @@ + + + +- ++ + + + +@@ -25532,7 +25541,7 @@ + + + +- ++ + + + +@@ -25559,9 +25568,9 @@ + + + +- ++ + +- ++ + + + +@@ -25592,31 +25601,31 @@ + + + +- ++ + + + +- ++ + + + + + + +- ++ + + + + + +- ++ + + + + + + +- ++ + + + +@@ -25641,7 +25650,7 @@ + + + +- ++ + + + +@@ -25670,14 +25679,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -25688,7 +25697,7 @@ + + + +- ++ + + + +@@ -25746,7 +25755,7 @@ + + + +- ++ + + + +@@ -25757,7 +25766,7 @@ + + + +- ++ + + + +@@ -25789,7 +25798,7 @@ + + + +- ++ + + + +@@ -25811,11 +25820,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -25828,11 +25837,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -25893,7 +25902,7 @@ + + + +- ++ + + + +@@ -25906,7 +25915,7 @@ + + + +- ++ + + + +@@ -25926,7 +25935,7 @@ + + + +- ++ + + + +@@ -26074,7 +26083,7 @@ + + + +- ++ + + + +@@ -26124,11 +26133,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -26144,7 +26153,7 @@ + + + +- ++ + + + +@@ -26186,7 +26195,7 @@ + + + +- ++ + + + +@@ -26318,7 +26327,7 @@ + + + +- ++ + + + +@@ -26331,7 +26340,7 @@ + + + +- ++ + + + +@@ -26343,7 +26352,7 @@ + + + +- ++ + + + +@@ -26354,7 +26363,7 @@ + + + +- ++ + + + +@@ -26365,7 +26374,7 @@ + + + +- ++ + + + +@@ -26376,7 +26385,7 @@ + + + +- ++ + + + +@@ -26387,7 +26396,7 @@ + + + +- ++ + + + +@@ -26398,7 +26407,7 @@ + + + +- ++ + + + +@@ -26411,7 +26420,7 @@ + + + +- ++ + + + +@@ -26422,7 +26431,7 @@ + + + +- ++ + + + +@@ -26433,7 +26442,7 @@ + + + +- ++ + + + +@@ -26444,7 +26453,7 @@ + + + +- ++ + + + +@@ -26457,7 +26466,7 @@ + + + +- ++ + + + +@@ -26470,7 +26479,7 @@ + + + +- ++ + + + +@@ -26481,7 +26490,7 @@ + + + +- ++ + + + +@@ -26490,7 +26499,7 @@ + + + +- ++ + + + +@@ -26503,7 +26512,7 @@ + + + +- ++ + + + +@@ -26514,7 +26523,7 @@ + + + +- ++ + + + +@@ -26523,9 +26532,9 @@ + + + +- ++ + +- ++ + + + +@@ -26534,7 +26543,7 @@ + + + +- ++ + + + +@@ -26545,7 +26554,7 @@ + + + +- ++ + + + +@@ -26556,7 +26565,7 @@ + + + +- ++ + + + +@@ -26567,7 +26576,7 @@ + + + +- ++ + + + +@@ -26578,7 +26587,7 @@ + + + +- ++ + + + +@@ -26589,7 +26598,7 @@ + + + +- ++ + + + +@@ -26602,7 +26611,7 @@ + + + +- ++ + + + +@@ -26617,7 +26626,7 @@ + + + +- ++ + + + +@@ -26630,7 +26639,7 @@ + + + +- ++ + + + +@@ -26639,7 +26648,7 @@ + + + +- ++ + + + +@@ -26648,7 +26657,7 @@ + + + +- ++ + + + +@@ -26657,7 +26666,7 @@ + + + +- ++ + + + +@@ -26666,7 +26675,7 @@ + + + +- ++ + + + +@@ -26675,7 +26684,7 @@ + + + +- ++ + + + +@@ -26684,7 +26693,7 @@ + + + +- ++ + + + +@@ -26697,7 +26706,7 @@ + + + +- ++ + + + +@@ -26710,7 +26719,7 @@ + + + +- ++ + + + +@@ -26721,7 +26730,7 @@ + + + +- ++ + + + +@@ -26732,7 +26741,7 @@ + + + +- ++ + + + +@@ -26743,7 +26752,7 @@ + + + +- ++ + + + +@@ -26756,7 +26765,7 @@ + + + +- ++ + + + +@@ -26775,7 +26784,7 @@ + + + +- ++ + + + +@@ -26923,7 +26932,7 @@ + + + +- ++ + + + +@@ -26954,7 +26963,7 @@ + + + +- ++ + + + +@@ -27202,7 +27211,7 @@ + + + +- ++ + + + +@@ -27266,7 +27275,7 @@ + + + +- ++ + + + +@@ -29369,7 +29378,7 @@ + + + +- ++ + + + +@@ -29396,7 +29405,7 @@ + + + +- ++ + + + +@@ -29499,7 +29508,7 @@ + + + +- ++ + + + +@@ -29720,7 +29729,7 @@ + + + +- ++ + + + +@@ -29905,7 +29914,7 @@ + + + +- ++ + + + +@@ -29913,7 +29922,7 @@ + + + +- ++ + + + +@@ -29947,11 +29956,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -30015,7 +30024,7 @@ + + + +- ++ + + + +@@ -30079,7 +30088,7 @@ + + + +- ++ + + + +@@ -30089,9 +30098,9 @@ + + + +- ++ + +- ++ + + + +@@ -30114,9 +30123,9 @@ + + + +- ++ + +- ++ + + + +@@ -30256,7 +30265,7 @@ + + + +- ++ + + + +@@ -30267,7 +30276,7 @@ + + + +- ++ + + + +@@ -30377,7 +30386,7 @@ + + + +- ++ + + + +@@ -30523,7 +30532,7 @@ + + + +- ++ + + + +@@ -30678,7 +30687,7 @@ + + + +- ++ + + + +@@ -30689,7 +30698,7 @@ + + + +- ++ + + + +@@ -30700,7 +30709,7 @@ + + + +- ++ + + + +@@ -30711,7 +30720,7 @@ + + + +- ++ + + + +@@ -30848,15 +30857,15 @@ + + + +- ++ + + + +- ++ + + + +- ++ + + + +@@ -30879,11 +30888,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -31004,7 +31013,7 @@ + + + +- ++ + + + +@@ -31088,7 +31097,7 @@ + + + +- ++ + + + +@@ -31147,7 +31156,7 @@ + + + +- ++ + + + +@@ -31178,7 +31187,7 @@ + + + +- ++ + + + +@@ -31269,7 +31278,7 @@ + + + +- ++ + + + +@@ -31750,7 +31759,7 @@ + + + +- ++ + + + +@@ -31758,7 +31767,7 @@ + + + +- ++ + + + +@@ -31882,7 +31891,7 @@ + + + +- ++ + + + +@@ -32063,7 +32072,7 @@ + + + +- ++ + + + +@@ -32268,7 +32277,7 @@ + + + +- ++ + + + +@@ -32276,7 +32285,7 @@ + + + +- ++ + + + +@@ -32284,15 +32293,15 @@ + + + +- ++ + + + +- ++ + + + +- ++ + + + +@@ -32304,11 +32313,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -32331,14 +32340,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -32375,7 +32384,7 @@ + + + +- ++ + + + +@@ -32393,7 +32402,7 @@ + + + +- ++ + + + +@@ -32966,7 +32975,7 @@ + + + +- ++ + + + +@@ -32981,7 +32990,7 @@ + + + +- ++ + + + +@@ -32996,7 +33005,7 @@ + + + +- ++ + + + +@@ -33011,7 +33020,7 @@ + + + +- ++ + + + +@@ -33026,7 +33035,7 @@ + + + +- ++ + + + +@@ -33041,7 +33050,7 @@ + + + +- ++ + + + +@@ -33056,7 +33065,7 @@ + + + +- ++ + + + +@@ -33071,7 +33080,7 @@ + + + +- ++ + + + +@@ -33086,7 +33095,7 @@ + + + +- ++ + + + +@@ -33101,7 +33110,7 @@ + + + +- ++ + + + +@@ -33263,7 +33272,7 @@ + + + +- ++ + + + +@@ -33326,7 +33335,7 @@ + + + +- ++ + + + +@@ -33345,7 +33354,7 @@ + + + +- ++ + + + +@@ -33409,7 +33418,7 @@ + + + +- ++ + + + +@@ -33418,7 +33427,7 @@ + + + +- ++ + + + +@@ -34737,7 +34746,7 @@ + + + +- ++ + + + +@@ -34863,7 +34872,7 @@ + + + +- ++ + + + +@@ -34952,7 +34961,7 @@ + + + +- ++ + + + +@@ -35007,7 +35016,7 @@ + + + +- ++ + + + +@@ -35016,43 +35025,43 @@ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +@@ -35084,7 +35093,7 @@ + + + +- ++ + + + +@@ -35162,7 +35171,7 @@ + + + +- ++ + + + +@@ -35257,7 +35266,7 @@ + + + +- ++ + + + +@@ -35384,7 +35393,7 @@ + + + +- ++ + + + +@@ -35432,7 +35441,7 @@ + + + +- ++ + + + +@@ -35568,9 +35577,9 @@ + + + +- ++ + +- ++ + + + +@@ -35579,9 +35588,9 @@ + + + +- ++ + +- ++ + + + +@@ -35591,11 +35600,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -35612,7 +35621,7 @@ + + + +- ++ + + + +@@ -35632,7 +35641,7 @@ + + + +- ++ + + + +@@ -35646,7 +35655,7 @@ + + + +- ++ + + + +@@ -35817,7 +35826,7 @@ + + + +- ++ + + + +@@ -35839,7 +35848,7 @@ + + + +- ++ + + + +@@ -35966,7 +35975,7 @@ + + + +- ++ + + + +@@ -35998,11 +36007,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -36051,7 +36060,7 @@ + + + +- ++ + + + +@@ -36068,7 +36077,7 @@ + + + +- ++ + + + +@@ -36110,7 +36119,7 @@ + + + +- ++ + + + +@@ -36151,7 +36160,7 @@ + + + +- ++ + + + +@@ -36296,7 +36305,7 @@ + + + +- ++ + + + +@@ -36410,7 +36419,7 @@ + + + +- ++ + + + +@@ -36418,7 +36427,7 @@ + + + +- ++ + + + +@@ -36490,7 +36499,7 @@ + + + +- ++ + + + +@@ -36646,7 +36655,7 @@ + + + +- ++ + + + +@@ -36780,11 +36789,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -36796,7 +36805,7 @@ + + + +- ++ + + + +@@ -36847,7 +36856,7 @@ + + + +- ++ + + + +@@ -37007,7 +37016,7 @@ + + + +- ++ + + + +@@ -37121,7 +37130,7 @@ + + + +- ++ + + + +@@ -37137,7 +37146,7 @@ + + + +- ++ + + + +@@ -37420,7 +37429,7 @@ + + + +- ++ + + + +@@ -37435,7 +37444,7 @@ + + + +- ++ + + + +@@ -37456,7 +37465,7 @@ + + + +- ++ + + + +@@ -37496,7 +37505,7 @@ + + + +- ++ + + + +@@ -37576,7 +37585,7 @@ + + + +- ++ + + + +@@ -37627,7 +37636,7 @@ + + + +- ++ + + + +@@ -37670,7 +37679,7 @@ + + + +- ++ + + + +@@ -37706,7 +37715,7 @@ + + + +- ++ + + + +@@ -37748,7 +37757,7 @@ + + + +- ++ + + + +@@ -38030,7 +38039,7 @@ + + + +- ++ + + + +@@ -38096,7 +38105,7 @@ + + + +- ++ + + + +@@ -38154,7 +38163,7 @@ + + + +- ++ + + + +@@ -38177,7 +38186,7 @@ + + + +- ++ + + + +@@ -38208,7 +38217,7 @@ + + + +- ++ + + + +@@ -38292,7 +38301,7 @@ + + + +- ++ + + + +@@ -38396,7 +38405,7 @@ + + + +- ++ + + + +@@ -38565,7 +38574,7 @@ + + + +- ++ + + + +@@ -38628,7 +38637,7 @@ + + + +- ++ + + + +@@ -38641,14 +38650,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -38670,7 +38679,7 @@ + + + +- ++ + + + +@@ -38679,7 +38688,7 @@ + + + +- ++ + + + +@@ -38690,7 +38699,7 @@ + + + +- ++ + + + +@@ -38817,7 +38826,7 @@ + + + +- ++ + + + +@@ -38956,7 +38965,7 @@ + + + +- ++ + + + +@@ -38965,7 +38974,7 @@ + + + +- ++ + + + +@@ -39031,7 +39040,7 @@ + + + +- ++ + + + +@@ -39116,7 +39125,7 @@ + + + +- ++ + + + +@@ -39180,7 +39189,7 @@ + + + +- ++ + + + +@@ -39520,7 +39529,7 @@ + + + +- ++ + + + +@@ -39638,7 +39647,7 @@ + + + +- ++ + + + +@@ -39751,7 +39760,7 @@ + + + +- ++ + + + +@@ -39759,7 +39768,7 @@ + + + +- ++ + + + +@@ -39833,7 +39842,7 @@ + + + +- ++ + + + +@@ -39914,11 +39923,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -39980,7 +39989,7 @@ + + + +- ++ + + + +@@ -40002,7 +40011,7 @@ + + + +- ++ + + + +@@ -40304,14 +40313,14 @@ + + + +- ++ + +- ++ + + + + +- ++ + + + +@@ -40340,7 +40349,7 @@ + + + +- ++ + + + +@@ -40401,7 +40410,7 @@ + + + +- ++ + + + +@@ -40415,9 +40424,9 @@ + + + +- ++ + +- ++ + + + +@@ -40426,7 +40435,7 @@ + + + +- ++ + + + +@@ -40444,14 +40453,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -40466,12 +40475,12 @@ + + + +- ++ + + + + +- ++ + + + +@@ -40482,7 +40491,7 @@ + + + +- ++ + + + +@@ -40491,11 +40500,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -40555,7 +40564,7 @@ + + + +- ++ + + + +@@ -40606,7 +40615,7 @@ + + + +- ++ + + + +@@ -40642,7 +40651,7 @@ + + + +- ++ + + + +diff --git a/tests/data/test-read-dwarf/test13-pr18894.so.abi b/tests/data/test-read-dwarf/test13-pr18894.so.abi +index 70fddaed7ddc..2eb934b0c7eb 100644 +--- a/tests/data/test-read-dwarf/test13-pr18894.so.abi ++++ b/tests/data/test-read-dwarf/test13-pr18894.so.abi +@@ -363,13 +363,12 @@ + + + +- +- +- +- ++ ++ ++ + + +- ++ + + + +@@ -419,7 +418,7 @@ + + + +- ++ + + + +@@ -453,38 +452,157 @@ + + + +- ++ + + + + + + +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ + +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ + +- ++ + + +- ++ + + + +@@ -499,13 +617,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -520,11 +638,11 @@ + + + +- ++ + + +- +- ++ ++ + + + +@@ -538,89 +656,89 @@ + + + +- +- ++ ++ + + + + +- +- ++ ++ + +- ++ + + + + + +- +- ++ ++ + + + + +- ++ + + +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + + +- +- +- ++ ++ ++ + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- +- +- +- +- ++ ++ ++ ++ ++ + + + + +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -631,55 +749,55 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + +- ++ + +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +- ++ + + + + + + +- ++ + + + + +- ++ + +- ++ + + + +@@ -707,46 +825,46 @@ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + +@@ -787,15 +905,15 @@ + + + +- ++ + + + + + +- ++ + +- ++ + + + +@@ -810,9 +928,9 @@ + + + +- ++ + +- ++ + + + +@@ -822,9 +940,9 @@ + + + +- ++ + +- ++ + + + +@@ -855,34 +973,34 @@ + + + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + + +- +- +- ++ ++ ++ + +- ++ + + + + +- +- +- ++ ++ ++ + +- ++ + + + +@@ -900,7 +1018,7 @@ + + + +- ++ + + + +@@ -908,7 +1026,7 @@ + + + +- ++ + + + +@@ -930,24 +1048,24 @@ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + + +- ++ + + + +@@ -956,14 +1074,14 @@ + + + +- +- ++ ++ + + + + + +- ++ + + + +@@ -983,21 +1101,21 @@ + + + +- +- ++ ++ + + + + + +- ++ + + +- ++ + + + +- ++ + + + +@@ -1011,9 +1129,9 @@ + + + +- ++ + +- ++ + + + +@@ -1023,23 +1141,23 @@ + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + +@@ -1049,12 +1167,12 @@ + + + +- ++ + + + + +- ++ + + + +@@ -1103,7 +1221,7 @@ + + + +- ++ + + + +@@ -1191,10 +1309,10 @@ + + + +- ++ + + +- ++ + + + +@@ -1211,15 +1329,15 @@ + + + +- +- ++ ++ + + + +- +- ++ ++ + +- ++ + + + +@@ -1231,126 +1349,126 @@ + + + +- +- ++ ++ + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + +- ++ + + + +- ++ + + + + +- ++ + + + +@@ -1385,7 +1503,7 @@ + + + +- ++ + + + +@@ -1430,104 +1548,104 @@ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + + +- ++ + + + +- ++ + + + + + +- ++ + + + + + + +- ++ + + + +- ++ + + +- ++ + + + +- ++ + + +- ++ + + +- ++ + + + +- ++ + + +- +- ++ ++ + + +- ++ + + + + + + +- ++ + + + +@@ -1535,21 +1653,21 @@ + + + +- ++ + + + +- ++ + + + +- ++ + + + + + +- ++ + + + +@@ -1566,19 +1684,51 @@ + + + +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +- +- ++ ++ + + + +- +- ++ ++ + + +- ++ + + + +@@ -1590,57 +1740,57 @@ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- +- ++ ++ + + +- +- ++ ++ + +- ++ + + + +- +- ++ ++ + +- ++ + + + +- ++ + + + + + + +- ++ + + +- ++ + + + +- ++ + + + + + +- ++ + + + +@@ -1649,10 +1799,10 @@ + + + +- ++ + + +- ++ + + + +@@ -1664,7 +1814,7 @@ + + + +- ++ + + + +@@ -1673,7 +1823,7 @@ + + + +- ++ + + + +@@ -1720,7 +1870,7 @@ + + + +- ++ + + + +@@ -1731,7 +1881,7 @@ + + + +- ++ + + + +@@ -1749,20 +1899,20 @@ + + + +- +- +- ++ ++ ++ + +- ++ + + + + +- +- +- ++ ++ ++ + +- ++ + + + +@@ -2011,13 +2161,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -2030,11 +2180,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -2044,28 +2194,54 @@ + + + +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +- ++ + + + +- ++ + + + +- ++ + +- ++ + + + +- ++ + + + +- ++ + + + +@@ -2087,45 +2263,77 @@ + + + +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +- ++ + + + + +- ++ + + + +- ++ + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +diff --git a/tests/data/test-read-dwarf/test15-pr18892.so.abi b/tests/data/test-read-dwarf/test15-pr18892.so.abi +index be9a931ee5c8..96b7bea38681 100644 +--- a/tests/data/test-read-dwarf/test15-pr18892.so.abi ++++ b/tests/data/test-read-dwarf/test15-pr18892.so.abi +@@ -1535,83 +1535,82 @@ + + + +- +- ++ + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + +- ++ + + +- ++ + + +- +- +- ++ ++ ++ + + + + +- ++ + + +- ++ + + +- +- +- +- ++ ++ ++ ++ + + +- +- +- ++ ++ ++ + + + + +- ++ + +- ++ + +- ++ + +- ++ + +- +- ++ ++ + + + +- ++ + + + +- ++ + + + +@@ -1619,55 +1618,55 @@ + + + +- ++ + + +- ++ + + + + +- ++ + + + + + + +- +- ++ ++ + + + + + +- +- +- ++ ++ ++ + + + + +- +- ++ ++ + + + + +- ++ + + + +- ++ + + + + + + ++ ++ + +- +- + + + +@@ -1675,7 +1674,7 @@ + + + +- ++ + + + +@@ -1683,7 +1682,7 @@ + + + +- ++ + + + +@@ -1698,7 +1697,7 @@ + + + +- ++ + + + +@@ -1708,7 +1707,7 @@ + + + +- ++ + + + +@@ -1716,25 +1715,33 @@ + + + +- ++ + + + + + + +- ++ + + + +- ++ + + + +- ++ + + + ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -1754,19 +1761,19 @@ + + + +- ++ + + + + + +- ++ + +- ++ + + + +- ++ + + + +@@ -1776,54 +1783,54 @@ + + + +- ++ + + + +- +- +- +- ++ ++ ++ ++ + + + + + +- +- ++ ++ + + + + +- ++ + + +- ++ + + + +- ++ + +- ++ + + +- +- ++ ++ + +- ++ + + + + + +- +- ++ ++ + + + + + +- ++ + + + +@@ -1966,7 +1973,7 @@ + + + +- ++ + + + +@@ -1982,15 +1989,15 @@ + + + +- ++ + + +- ++ + + + + +- ++ + + + +@@ -2049,13 +2056,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -2079,7 +2086,7 @@ + + + +- ++ + + + +@@ -2089,7 +2096,7 @@ + + + +- ++ + + + +@@ -2105,7 +2112,7 @@ + + + +- ++ + + + +@@ -2116,7 +2123,7 @@ + + + +- ++ + + + +@@ -2125,34 +2132,34 @@ + + + +- ++ + + +- ++ + + + + + +- ++ + + +- ++ + + +- ++ + + + + + +- ++ + + +- ++ + + +- ++ + + + +@@ -2167,26 +2174,26 @@ + + + +- +- ++ ++ + + + +- ++ + +- ++ + + + + + +- ++ + + + + + +- ++ + + + +@@ -2194,41 +2201,41 @@ + + + +- ++ + + + +- ++ + + + +- ++ + + +- ++ + +- ++ + + + + + +- +- ++ ++ + + + + + +- ++ + + + + +- ++ + + +- ++ + + + +@@ -2238,7 +2245,7 @@ + + + +- ++ + + + +@@ -2256,36 +2263,36 @@ + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- +- ++ ++ + + + + +- +- ++ ++ + + + +@@ -2433,8 +2440,8 @@ + + + +- +- ++ ++ + + + +@@ -2651,7 +2658,7 @@ + + + +- ++ + + + +@@ -2665,7 +2672,7 @@ + + + +- ++ + + + +@@ -2704,7 +2711,7 @@ + + + +- ++ + + + +@@ -2816,7 +2823,7 @@ + + + +- ++ + + + +@@ -2920,14 +2927,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -2935,7 +2942,7 @@ + + + +- ++ + + + +@@ -2945,7 +2952,7 @@ + + + +- ++ + + + +@@ -2962,7 +2969,7 @@ + + + +- ++ + + + +@@ -2974,7 +2981,7 @@ + + + +- ++ + + + +@@ -2995,10 +3002,10 @@ + + + +- ++ + + +- ++ + + + +@@ -3057,7 +3064,7 @@ + + + +- ++ + + + +@@ -3080,7 +3087,7 @@ + + + +- ++ + + + +@@ -3091,7 +3098,7 @@ + + + +- ++ + + + +@@ -3117,9 +3124,9 @@ + + + +- +- +- ++ ++ ++ + + + +@@ -3155,23 +3162,23 @@ + + + +- +- ++ ++ + + + + + +- ++ + +- ++ + + + + + + +- ++ + + + +@@ -3208,14 +3215,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -3239,7 +3246,7 @@ + + + +- ++ + + + +@@ -3315,7 +3322,7 @@ + + + +- ++ + + + +@@ -3339,7 +3346,7 @@ + + + +- ++ + + + +@@ -3364,10 +3371,10 @@ + + + +- ++ + + +- ++ + + + +@@ -3379,26 +3386,26 @@ + + + +- ++ + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -3422,21 +3429,21 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -3479,7 +3486,7 @@ + + + +- ++ + + + +@@ -3513,7 +3520,7 @@ + + + +- ++ + + + +@@ -3541,7 +3548,7 @@ + + + +- ++ + + + +@@ -3549,20 +3556,20 @@ + + + +- ++ + +- ++ + + +- ++ + +- +- ++ ++ + + + +- +- ++ ++ + + + +@@ -3618,34 +3625,34 @@ + + + +- +- +- +- +- ++ ++ ++ ++ ++ + + + + +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + +- +- +- +- ++ ++ ++ ++ + + + +@@ -4176,7 +4183,7 @@ + + + +- ++ + + + +@@ -4187,14 +4194,14 @@ + + + +- +- +- ++ ++ ++ + + + + +- ++ + + + +@@ -4202,18 +4209,18 @@ + + + +- ++ + + + + + + +- ++ + + +- +- ++ ++ + + + +@@ -4221,10 +4228,10 @@ + + + +- ++ + + +- ++ + + + +@@ -4360,7 +4367,7 @@ + + + +- ++ + + + +@@ -4495,7 +4502,7 @@ + + + +- ++ + + + +@@ -4534,7 +4541,7 @@ + + + +- ++ + + + +@@ -4556,7 +4563,7 @@ + + + +- ++ + + + +@@ -4609,7 +4616,7 @@ + + + +- ++ + + + +@@ -4620,7 +4627,7 @@ + + + +- ++ + + + +@@ -4653,20 +4660,20 @@ + + + +- ++ + +- ++ + + + +- ++ + + + + + + +- ++ + + + +@@ -4701,21 +4708,21 @@ + + + +- +- ++ ++ + + + + + +- ++ + + + + + + +- ++ + + + +@@ -4823,10 +4830,10 @@ + + + +- ++ + + +- ++ + + + +@@ -4992,7 +4999,7 @@ + + + +- ++ + + + +@@ -5008,14 +5015,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -5125,7 +5132,7 @@ + + + +- ++ + + + +@@ -5473,7 +5480,7 @@ + + + +- ++ + + + +@@ -5502,7 +5509,7 @@ + + + +- ++ + + + +@@ -5527,7 +5534,7 @@ + + + +- ++ + + + +@@ -5543,7 +5550,7 @@ + + + +- ++ + + + +@@ -5580,7 +5587,7 @@ + + + +- ++ + + + +@@ -5596,7 +5603,7 @@ + + + +- ++ + + + +@@ -5606,7 +5613,7 @@ + + + +- ++ + + + +@@ -5676,7 +5683,7 @@ + + + +- ++ + + + +@@ -5684,11 +5691,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -5731,23 +5738,23 @@ + + + +- ++ + + +- ++ + + + + + +- ++ + + + +- ++ + + +- ++ + + + +@@ -5759,7 +5766,7 @@ + + + +- ++ + + + +@@ -5819,7 +5826,7 @@ + + + +- ++ + + + +@@ -5943,8 +5950,8 @@ + + + +- +- ++ ++ + + + +@@ -5967,13 +5974,13 @@ + + + +- +- +- +- +- ++ ++ ++ ++ ++ + +- ++ + + + +@@ -6210,7 +6217,7 @@ + + + +- ++ + + + +@@ -6292,8 +6299,8 @@ + + + +- +- ++ ++ + + + +@@ -6316,9 +6323,9 @@ + + + +- +- +- ++ ++ ++ + + + +@@ -6347,7 +6354,7 @@ + + + +- ++ + + + +@@ -6364,7 +6371,7 @@ + + + +- ++ + + + +@@ -6395,7 +6402,7 @@ + + + +- ++ + + + +@@ -6470,7 +6477,7 @@ + + + +- ++ + + + +@@ -6573,7 +6580,7 @@ + + + +- ++ + + + +@@ -6822,7 +6829,7 @@ + + + +- ++ + + + +@@ -6842,7 +6849,7 @@ + + + +- ++ + + + +@@ -6889,10 +6896,10 @@ + + + +- ++ + + +- ++ + + + +@@ -6954,7 +6961,7 @@ + + + +- ++ + + + +@@ -6965,10 +6972,10 @@ + + + +- ++ + + +- ++ + + + +@@ -6976,31 +6983,31 @@ + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + + +@@ -7032,13 +7039,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -7050,32 +7057,32 @@ + + + +- ++ + + + + + +- ++ + + + + + +- +- ++ ++ + + + + + +- ++ + + + + + +- ++ + + + +@@ -7090,13 +7097,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -7106,51 +7113,51 @@ + + + +- +- ++ ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- +- ++ ++ + + + +@@ -7238,35 +7245,35 @@ + + + +- ++ + + + + +- ++ + + +- +- ++ ++ + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +@@ -10769,7 +10776,7 @@ + + + +- ++ + + + +@@ -10782,12 +10789,12 @@ + + + +- ++ + + + + +- ++ + + + +@@ -10855,7 +10862,7 @@ + + + +- ++ + + + +@@ -10874,59 +10881,59 @@ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + +- +- ++ ++ + +- ++ + + + +@@ -10942,17 +10949,17 @@ + + + +- ++ + + + + +- ++ + + + + +- ++ + + + +@@ -10965,53 +10972,53 @@ + + + +- ++ + + +- ++ + +- ++ + + + + +- ++ + + +- ++ + +- ++ + + + + +- ++ + + +- ++ + +- ++ + + + + +- ++ + + +- ++ + +- ++ + + + + +- ++ + + + + + +- ++ + + + +@@ -11020,140 +11027,140 @@ + + + +- ++ + + + +- ++ + + + + +- ++ + + + + +- ++ + + + +- ++ + + + +- ++ + + +- ++ + + + + +- ++ + + + + +- +- ++ ++ + + +- ++ + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- +- ++ ++ + + + + + + +- ++ + + + + +- +- ++ ++ + + +- ++ + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + + + + +- ++ + + + +- ++ + + +- ++ + + +- ++ + + + +@@ -11163,9 +11170,9 @@ + + + +- ++ + +- ++ + + + +@@ -11212,17 +11219,17 @@ + + + +- ++ + + + + + +- ++ + + + +- ++ + + + +@@ -11231,13 +11238,13 @@ + + + +- ++ + + + + +- +- ++ ++ + + + +@@ -11246,7 +11253,7 @@ + + + +- ++ + + + +@@ -11256,7 +11263,7 @@ + + + +- ++ + + + +@@ -11264,18 +11271,18 @@ + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + +- ++ + + + +@@ -11294,35 +11301,35 @@ + + + +- ++ + + +- +- ++ ++ + + +- ++ + + +- ++ + + +- +- +- ++ ++ ++ + + +- ++ + + + +- ++ + + + + + +- ++ + + + +@@ -11331,18 +11338,18 @@ + + + +- ++ + + + +- +- ++ ++ + + + + + +- ++ + + + +@@ -11350,21 +11357,21 @@ + + + +- ++ + + + +- ++ + + + +- ++ + + + + +- +- ++ ++ + + + +@@ -11372,164 +11379,164 @@ + + + +- ++ + + +- ++ + + + + + +- ++ + + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + + + + + +- ++ + +- ++ + +- ++ + + + +- ++ + +- ++ + + +- ++ + +- +- ++ ++ + + +- +- ++ ++ + +- +- ++ ++ + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + +- ++ + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + +@@ -11578,89 +11585,89 @@ + + + +- ++ + + + + +- ++ + + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -11684,86 +11691,86 @@ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + + + +- +- ++ ++ + + + + + + +- ++ + + + + +- ++ + + + +- +- ++ ++ + + +- +- +- ++ ++ ++ + + +- +- ++ ++ + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + + + +- ++ + +- +- +- ++ ++ ++ + + +- +- +- ++ ++ ++ + +- ++ + + + +@@ -11771,19 +11778,19 @@ + + + +- ++ + + + +- ++ + + +- ++ + + + + +- ++ + + + +@@ -11801,7 +11808,7 @@ + + + +- ++ + + + +@@ -11816,36 +11823,36 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +- ++ + +- ++ + + + +- ++ + + +- ++ + + + + +- +- ++ ++ + + + +- ++ + + + +@@ -11853,327 +11860,327 @@ + + + +- +- ++ ++ + + +- +- ++ ++ + + +- +- ++ ++ + + +- +- ++ ++ + + +- +- +- ++ ++ ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- +- +- ++ ++ ++ + +- ++ + + +- +- +- +- ++ ++ ++ ++ + + +- +- ++ ++ + + +- +- ++ ++ + + +- ++ + +- +- ++ ++ + + + +- +- ++ ++ + + +- +- +- +- ++ ++ ++ ++ + + +- +- +- ++ ++ ++ + + +- +- ++ ++ + + + +- +- ++ ++ + + + +- +- ++ ++ + + + +- +- +- ++ ++ ++ + + + +- +- +- ++ ++ ++ + + +- ++ + +- ++ + + +- +- ++ ++ + +- ++ + + +- ++ + +- ++ + + +- +- ++ ++ + +- ++ + + + + +- ++ + + +- ++ + + +- ++ + + + + +- ++ + + +- ++ + + +- ++ + + + + +- ++ + + +- ++ + + +- ++ + + + + +- ++ + + +- ++ + + +- ++ + + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + +- ++ + + + + +- ++ + + + +- ++ + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + +- +- ++ ++ + + + + +- ++ + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + + +- ++ + + + + + + +- ++ + + + +@@ -12185,13 +12192,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -12209,23 +12216,23 @@ + + + +- ++ + + + + +- +- +- ++ ++ ++ + + + + + + +- +- +- ++ ++ ++ + + + +@@ -12251,17 +12258,17 @@ + + + +- ++ + + + + +- ++ + + + + +- ++ + + + +@@ -12272,13 +12279,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -12286,7 +12293,7 @@ + + + +- ++ + + + +@@ -12296,7 +12303,7 @@ + + + +- ++ + + + +@@ -12378,46 +12385,46 @@ + + + +- ++ + + + + +- ++ + + + + + + +- ++ + + + + +- ++ + + + +- ++ + + + +- ++ + + + +- ++ + + + + + +- ++ + + + +- ++ + + + +@@ -13380,36 +13387,36 @@ + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + + + + + +- ++ + + + + +- ++ + + + +- ++ + + + +- ++ + + + +@@ -13426,14 +13433,14 @@ + + + +- +- +- ++ ++ ++ + + + + +- ++ + + + +@@ -13458,17 +13465,17 @@ + + + +- ++ + + + +- ++ + + + + +- +- ++ ++ + + + +@@ -13479,7 +13486,7 @@ + + + +- ++ + + + +@@ -13537,7 +13544,7 @@ + + + +- ++ + + + +@@ -13555,22 +13562,22 @@ + + + +- ++ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + +@@ -13587,7 +13594,7 @@ + + + +- ++ + + + +@@ -13636,7 +13643,7 @@ + + + +- ++ + + + +@@ -13644,69 +13651,69 @@ + + + +- ++ + + + + +- +- ++ ++ + + + + + + +- ++ + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + +@@ -13715,480 +13722,480 @@ + + + +- ++ + + + + +- +- ++ ++ + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + + +- ++ + + + +- ++ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + +- +- ++ ++ + + + +- +- +- ++ ++ ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + +- +- ++ ++ + + + +- ++ + + + +- +- ++ ++ + + + +- ++ + +- ++ + + +- ++ + + +- ++ + + +- ++ + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- +- +- ++ ++ ++ + + +- ++ + +- +- ++ ++ + + +- ++ + +- ++ + +- ++ + + +- +- +- +- ++ ++ ++ ++ + + +- +- +- ++ ++ ++ + +- ++ + + +- +- +- ++ ++ ++ + +- ++ + + +- +- +- ++ ++ ++ + + +- ++ + + +- +- ++ ++ + +- ++ + + +- +- ++ ++ + +- +- ++ ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + + + +- ++ + + +- ++ + +- ++ + + +- ++ + +- +- ++ ++ + + +- ++ + + +- ++ + + +- ++ + +- +- +- ++ ++ ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- +- ++ ++ + + +- ++ + + +- ++ + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + +- ++ + + + +- +- ++ ++ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + +- ++ + + + +- +- ++ ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + +- +- ++ ++ + + + + +- ++ + + + +- +- ++ ++ + + + + + +- ++ + + + +- ++ + +- ++ + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + + +- ++ + + + + + +- ++ + + + + + + +- ++ + + + +@@ -14213,7 +14220,7 @@ + + + +- ++ + + + +@@ -14238,7 +14245,7 @@ + + + +- ++ + + + +@@ -14275,7 +14282,7 @@ + + + +- ++ + + + +@@ -14286,53 +14293,53 @@ + + + +- ++ + +- ++ + + + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + + +- ++ + +- ++ + + + +- ++ + + + + + + +- ++ + + + + + +- ++ + + + + + + +- ++ + + + +@@ -14347,8 +14354,8 @@ + + + +- +- ++ ++ + + + +@@ -14365,20 +14372,20 @@ + + + +- ++ + +- ++ + + + +- ++ + + +- ++ + + + +- ++ + + + +@@ -14392,7 +14399,7 @@ + + + +- ++ + + + +@@ -14408,17 +14415,17 @@ + + + +- ++ + + + +- ++ + + + + + +- ++ + + + +@@ -14450,13 +14457,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -14474,7 +14481,7 @@ + + + +- ++ + + + +@@ -14486,18 +14493,18 @@ + + + +- +- +- ++ ++ ++ + + + + + + +- +- +- ++ ++ ++ + + + +@@ -14530,14 +14537,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -14548,7 +14555,7 @@ + + + +- ++ + + + +@@ -14631,7 +14638,7 @@ + + + +- ++ + + + +@@ -14665,10 +14672,10 @@ + + + +- ++ + + +- ++ + + + +@@ -14680,7 +14687,7 @@ + + + +- ++ + + + +@@ -14709,7 +14716,7 @@ + + + +- ++ + + + +@@ -14794,7 +14801,7 @@ + + + +- ++ + + + +@@ -14802,7 +14809,7 @@ + + + +- ++ + + + +@@ -14810,148 +14817,148 @@ + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + +- ++ + + + + +- ++ + + + + + + +- ++ + + + + + +- ++ + + + + +- +- ++ ++ + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + + +- ++ + + + +@@ -14959,83 +14966,83 @@ + + + +- ++ + + + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + + +- ++ + + + +@@ -15046,7 +15053,7 @@ + + + +- ++ + + + +@@ -15135,7 +15142,7 @@ + + + +- ++ + + + +@@ -15156,7 +15163,7 @@ + + + +- ++ + + + +@@ -15280,7 +15287,7 @@ + + + +- ++ + + + +@@ -15312,7 +15319,7 @@ + + + +- ++ + + + +@@ -16713,7 +16720,7 @@ + + + +- ++ + + + +@@ -16731,7 +16738,7 @@ + + + +- ++ + + + +@@ -16796,7 +16803,7 @@ + + + +- ++ + + + +@@ -16942,7 +16949,7 @@ + + + +- ++ + + + +@@ -17070,13 +17077,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -17101,10 +17108,10 @@ + + + +- ++ + + +- ++ + + + +@@ -17152,7 +17159,7 @@ + + + +- ++ + + + +@@ -17200,14 +17207,14 @@ + + + +- ++ + + + + + +- +- ++ ++ + + + +@@ -17220,8 +17227,8 @@ + + + +- +- ++ ++ + + + +@@ -17313,14 +17320,14 @@ + + + +- ++ + + + + + + +- ++ + + + +@@ -17395,7 +17402,7 @@ + + + +- ++ + + + +@@ -17492,7 +17499,7 @@ + + + +- ++ + + + +@@ -17595,28 +17602,28 @@ + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + + + + +- ++ + + + +@@ -17711,13 +17718,13 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +@@ -17734,10 +17741,10 @@ + + + +- ++ + + +- ++ + + + +@@ -17823,7 +17830,7 @@ + + + +- ++ + + + +@@ -17874,7 +17881,7 @@ + + + +- ++ + + + +@@ -17911,7 +17918,7 @@ + + + +- ++ + + + +@@ -17931,7 +17938,7 @@ + + + +- ++ + + + +@@ -17990,7 +17997,7 @@ + + + +- ++ + + + +@@ -18460,13 +18467,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -18549,7 +18556,7 @@ + + + +- ++ + + + +@@ -18668,7 +18675,7 @@ + + + +- ++ + + + +@@ -18811,25 +18818,25 @@ + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + +- ++ + + +- ++ + + + +@@ -18838,10 +18845,10 @@ + + + +- ++ + + +- ++ + + + +@@ -18854,11 +18861,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -18882,7 +18889,7 @@ + + + +- ++ + + + +@@ -18892,7 +18899,7 @@ + + + +- ++ + + + +@@ -19206,7 +19213,7 @@ + + + +- ++ + + + +@@ -19214,7 +19221,7 @@ + + + +- ++ + + + +@@ -19222,7 +19229,7 @@ + + + +- ++ + + + +@@ -19230,7 +19237,7 @@ + + + +- ++ + + + +@@ -19238,7 +19245,7 @@ + + + +- ++ + + + +@@ -19246,7 +19253,7 @@ + + + +- ++ + + + +@@ -19254,7 +19261,7 @@ + + + +- ++ + + + +@@ -19262,7 +19269,7 @@ + + + +- ++ + + + +@@ -19270,7 +19277,7 @@ + + + +- ++ + + + +@@ -19278,7 +19285,7 @@ + + + +- ++ + + + +@@ -19369,7 +19376,7 @@ + + + +- ++ + + + +@@ -19412,7 +19419,7 @@ + + + +- ++ + + + +@@ -19424,7 +19431,7 @@ + + + +- ++ + + + +@@ -19460,12 +19467,12 @@ + + + +- ++ + + + + +- ++ + + + +@@ -20313,7 +20320,7 @@ + + + +- ++ + + + +@@ -20392,7 +20399,7 @@ + + + +- ++ + + + +@@ -20442,7 +20449,7 @@ + + + +- ++ + + + +@@ -20482,39 +20489,39 @@ + + + +- ++ + + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + + +@@ -20531,7 +20538,7 @@ + + + +- ++ + + + +@@ -20576,7 +20583,7 @@ + + + +- ++ + + + +@@ -20639,7 +20646,7 @@ + + + +- ++ + + + +@@ -20722,7 +20729,7 @@ + + + +- ++ + + + +@@ -20751,7 +20758,7 @@ + + + +- ++ + + + +@@ -20833,24 +20840,24 @@ + + + +- +- ++ ++ + + + + +- +- ++ ++ + + + + + + +- ++ + + +- ++ + + + +@@ -20861,7 +20868,7 @@ + + + +- ++ + + + +@@ -20874,7 +20881,7 @@ + + + +- ++ + + + +@@ -20883,7 +20890,7 @@ + + + +- ++ + + + +@@ -20972,7 +20979,7 @@ + + + +- ++ + + + +@@ -20985,7 +20992,7 @@ + + + +- ++ + + + +@@ -21068,7 +21075,7 @@ + + + +- ++ + + + +@@ -21091,10 +21098,10 @@ + + + +- ++ + + +- ++ + + + +@@ -21128,7 +21135,7 @@ + + + +- ++ + + + +@@ -21139,7 +21146,7 @@ + + + +- ++ + + + +@@ -21166,7 +21173,7 @@ + + + +- ++ + + + +@@ -21194,7 +21201,7 @@ + + + +- ++ + + + +@@ -21289,7 +21296,7 @@ + + + +- ++ + + + +@@ -21363,13 +21370,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -21419,7 +21426,7 @@ + + + +- ++ + + + +@@ -21522,7 +21529,7 @@ + + + +- ++ + + + +@@ -21611,10 +21618,10 @@ + + + +- ++ + + +- ++ + + + +@@ -21623,7 +21630,7 @@ + + + +- ++ + + + +@@ -21660,7 +21667,7 @@ + + + +- ++ + + + +@@ -21766,7 +21773,7 @@ + + + +- ++ + + + +@@ -21840,7 +21847,7 @@ + + + +- ++ + + + +@@ -21852,7 +21859,7 @@ + + + +- ++ + + + +@@ -22023,7 +22030,7 @@ + + + +- ++ + + + +@@ -22031,7 +22038,7 @@ + + + +- ++ + + + +@@ -22043,7 +22050,7 @@ + + + +- ++ + + + +@@ -22068,7 +22075,7 @@ + + + +- ++ + + + +@@ -22120,7 +22127,7 @@ + + + +- ++ + + + +@@ -22153,7 +22160,7 @@ + + + +- ++ + + + +@@ -22180,7 +22187,7 @@ + + + +- ++ + + + +@@ -22200,7 +22207,7 @@ + + + +- ++ + + + +@@ -22223,7 +22230,7 @@ + + + +- ++ + + + +@@ -22384,7 +22391,7 @@ + + + +- ++ + + + +@@ -22421,7 +22428,7 @@ + + + +- ++ + + + +@@ -22453,7 +22460,7 @@ + + + +- ++ + + + +@@ -22466,7 +22473,7 @@ + + + +- ++ + + + +@@ -22486,7 +22493,7 @@ + + + +- ++ + + + +@@ -22541,7 +22548,7 @@ + + + +- ++ + + + +@@ -22605,7 +22612,7 @@ + + + +- ++ + + + +@@ -22702,7 +22709,7 @@ + + + +- ++ + + + +@@ -22740,18 +22747,18 @@ + + + +- ++ + + + + + + +- ++ + + + +- ++ + + + +@@ -22763,18 +22770,18 @@ + + + +- ++ + + + + +- ++ + + + + + +- ++ + + + +@@ -22857,7 +22864,7 @@ + + + +- ++ + + + +@@ -22946,13 +22953,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -22992,7 +22999,7 @@ + + + +- ++ + + + +@@ -23045,7 +23052,7 @@ + + + +- ++ + + + +@@ -23086,7 +23093,7 @@ + + + +- ++ + + + +@@ -23304,7 +23311,7 @@ + + + +- ++ + + + +@@ -23381,7 +23388,7 @@ + + + +- ++ + + + +@@ -23447,11 +23454,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -23495,7 +23502,7 @@ + + + +- ++ + + + +@@ -23550,10 +23557,10 @@ + + + +- ++ + + +- ++ + + + +@@ -23593,7 +23600,7 @@ + + + +- ++ + + + +@@ -23607,7 +23614,7 @@ + + + +- ++ + + + +@@ -23804,12 +23811,12 @@ + + + +- +- ++ ++ + + + +- ++ + + + +@@ -23830,7 +23837,7 @@ + + + +- ++ + + + +@@ -23871,20 +23878,20 @@ + + + +- ++ + + + + + + +- +- ++ ++ + + + + +- ++ + + + +@@ -23895,11 +23902,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -23908,23 +23915,23 @@ + + + +- ++ + + +- ++ + + + + + +- ++ + + + + +- ++ + +- ++ + + + +@@ -23959,7 +23966,7 @@ + + + +- ++ + + + +@@ -23992,7 +23999,7 @@ + + + +- ++ + + + +@@ -24015,7 +24022,7 @@ + + + +- ++ + + + diff --git a/patches/dwarf-reader-writer-consider-aliases-when-dealing-with-suppressions.patch b/patches/dwarf-reader-writer-consider-aliases-when-dealing-with-suppressions.patch index 0c06bb76..557cb3f3 100644 --- a/patches/dwarf-reader-writer-consider-aliases-when-dealing-with-suppressions.patch +++ b/patches/dwarf-reader-writer-consider-aliases-when-dealing-with-suppressions.patch @@ -65,10 +65,10 @@ Signed-off-by: Matthias Maennich create mode 100644 tests/data/test-read-dwarf/test3-alias-4.suppr diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc -index f305798a06f6..9fddfad50037 100644 +index ef708466ed45..c45dfbbf2a64 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc -@@ -13301,8 +13301,16 @@ function_is_suppressed(const read_context& ctxt, +@@ -13311,8 +13311,16 @@ function_is_suppressed(const read_context& ctxt, if (!ctxt.get_function_address(function_die, fn_addr)) return true; @@ -86,7 +86,7 @@ index f305798a06f6..9fddfad50037 100644 } return suppr::function_is_suppressed(ctxt, qualified_name, -@@ -13410,8 +13418,16 @@ variable_is_suppressed(const read_context& ctxt, +@@ -13420,8 +13428,16 @@ variable_is_suppressed(const read_context& ctxt, if (!ctxt.get_variable_address(variable_die, var_addr)) return true; @@ -121,10 +121,10 @@ index 377afacad732..bcbf9ce8ee06 100644 } diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am -index 7c10dd31517c..809dd262a26e 100644 +index b8a553fc73d4..679577508895 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am -@@ -428,6 +428,14 @@ test-read-dwarf/test3.c \ +@@ -438,6 +438,14 @@ test-read-dwarf/test3.c \ test-read-dwarf/test3.so \ test-read-dwarf/test3.so.abi \ test-read-dwarf/test3.so.hash.abi \ @@ -1014,7 +1014,7 @@ index 000000000000..25a2c437f51e + symbol_name_not_regexp = ^_init$ + drop = true diff --git a/tests/test-read-dwarf.cc b/tests/test-read-dwarf.cc -index 3f93d6dbe5f6..bfd66eecd010 100644 +index c93f1761f368..4089367895cd 100644 --- a/tests/test-read-dwarf.cc +++ b/tests/test-read-dwarf.cc @@ -124,6 +124,38 @@ InOutSpec in_out_specs[] = diff --git a/patches/ir-Add-better-comments-to-types_have_similar_structure.patch b/patches/ir-Add-better-comments-to-types_have_similar_structure.patch new file mode 100644 index 00000000..942d9f55 --- /dev/null +++ b/patches/ir-Add-better-comments-to-types_have_similar_structure.patch @@ -0,0 +1,65 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dodji Seketeli +Date: Fri, 4 Dec 2020 12:05:14 +0100 +Subject: ir: Add better comments to types_have_similar_structure + + * src/abg-ir.cc (types_have_similar_structure): Arrays are also + indirect types, just like pointers and references, for the purpose + of the concept of "type similarity". Add that to the introductory + comment of the function. Add some more misc comments throughout + the code base. + +Signed-off-by: Dodji Seketeli +Signed-off-by: Matthias Maennich +--- + src/abg-ir.cc | 16 +++++++++------- + 1 file changed, 9 insertions(+), 7 deletions(-) + +diff --git a/src/abg-ir.cc b/src/abg-ir.cc +index 0b3739fa5a9c..34c2a0a6c43c 100644 +--- a/src/abg-ir.cc ++++ b/src/abg-ir.cc +@@ -23633,10 +23633,10 @@ types_have_similar_structure(const type_base_sptr& first, + /// + /// typedef are resolved to their definitions; their names are ignored. + /// +-/// Two indirect types (pointers or references) have similar structure +-/// if their underlying types are of the same kind and have the same +-/// name. In the indirect types case, the size of the underlying type +-/// does not matter. ++/// Two indirect types (pointers, references or arrays) have similar ++/// structure if their underlying types are of the same kind and have ++/// the same name. In the indirect types case, the size of the ++/// underlying type does not matter. + /// + /// Two direct types (i.e, non indirect) have a similar structure if + /// they have the same kind, name and size. Two class types have +@@ -23647,7 +23647,9 @@ types_have_similar_structure(const type_base_sptr& first, + /// + /// @param second the second type to consider. + /// +-/// @param indirect_type whether to do an indirect comparison ++/// @param indirect_type if true, then consider @p first and @p ++/// second as being underlying types of indirect types. Meaning that ++/// their size does'nt matter. + /// + /// @return true iff @p first and @p second have similar structures. + bool +@@ -23676,7 +23678,7 @@ types_have_similar_structure(const type_base* first, + const pointer_type_def* ty2 = is_pointer_type(second); + return types_have_similar_structure(ty1->get_pointed_to_type(), + ty2->get_pointed_to_type(), +- true); ++ /*indirect_type=*/true); + } + + // Peel off matching references. +@@ -23687,7 +23689,7 @@ types_have_similar_structure(const type_base* first, + return false; + return types_have_similar_structure(ty1->get_pointed_to_type(), + ty2->get_pointed_to_type(), +- true); ++ /*indirect_type=*/true); + } + + if (const type_decl* ty1 = is_type_decl(first)) diff --git a/patches/ir-Arrays-are-indirect-types-for-type-similarity-purposes.patch b/patches/ir-Arrays-are-indirect-types-for-type-similarity-purposes.patch new file mode 100644 index 00000000..51a20ae0 --- /dev/null +++ b/patches/ir-Arrays-are-indirect-types-for-type-similarity-purposes.patch @@ -0,0 +1,218 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dodji Seketeli +Date: Mon, 7 Dec 2020 15:03:47 +0100 +Subject: ir: Arrays are indirect types for type similarity purposes + +As described in the comments of types_have_similar_structure: + + "Two indirect types have similar structure if their underlying + types are of the same kind and have the same name. [...] The size + of their underlying type does not matter" + +Yet, the size of array elements (a.k.a the underlying type of an array type) +is wrongly considered to matter when assessing the "type similarity" +relationship for arrays. + +This patch fixes that. + + * src/abg-ir.cc (types_have_similar_structure): When + examining array types, always treat element type changes as + indirect changes. + * tests/data/Makefile.am: Add new test case files. + * tests/data/test-abidiff-exit/test-non-leaf-array-report.txt: + New test case showing correct --leaf-changes-only reporting. + * tests/data/test-abidiff-exit/test-non-leaf-array-v0.c: + Likewise. + * tests/data/test-abidiff-exit/test-non-leaf-array-v0.o: + Likewise. + * tests/data/test-abidiff-exit/test-non-leaf-array-v1.c: + Likewise. + * tests/data/test-abidiff-exit/test-non-leaf-array-v1.o: + Likewise. + * tests/test-abidiff-exit.cc: Run new test case. + +Signed-off-by: Giuliano Procida +Signed-off-by: Dodji Seketeli +Signed-off-by: Matthias Maennich +--- + src/abg-ir.cc | 2 +- + tests/data/Makefile.am | 5 +++++ + .../test-non-leaf-array-report.txt | 11 +++++++++++ + .../test-abidiff-exit/test-non-leaf-array-v0.c | 12 ++++++++++++ + .../test-abidiff-exit/test-non-leaf-array-v0.o | Bin 0 -> 3096 bytes + .../test-abidiff-exit/test-non-leaf-array-v1.c | 12 ++++++++++++ + .../test-abidiff-exit/test-non-leaf-array-v1.o | Bin 0 -> 3072 bytes + tests/test-abidiff-exit.cc | 11 +++++++++++ + 8 files changed, 52 insertions(+), 1 deletion(-) + create mode 100644 tests/data/test-abidiff-exit/test-non-leaf-array-report.txt + create mode 100644 tests/data/test-abidiff-exit/test-non-leaf-array-v0.c + create mode 100644 tests/data/test-abidiff-exit/test-non-leaf-array-v0.o + create mode 100644 tests/data/test-abidiff-exit/test-non-leaf-array-v1.c + create mode 100644 tests/data/test-abidiff-exit/test-non-leaf-array-v1.o + +diff --git a/src/abg-ir.cc b/src/abg-ir.cc +index 34c2a0a6c43c..28cbf7aced41 100644 +--- a/src/abg-ir.cc ++++ b/src/abg-ir.cc +@@ -23767,7 +23767,7 @@ types_have_similar_structure(const type_base* first, + || ty1->get_dimension_count() != ty2->get_dimension_count() + || !types_have_similar_structure(ty1->get_element_type(), + ty2->get_element_type(), +- indirect_type)) ++ /*indirect_type=*/true)) + return false; + + return true; +diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am +index b8bdb3512c29..86f697550106 100644 +--- a/tests/data/Makefile.am ++++ b/tests/data/Makefile.am +@@ -188,6 +188,11 @@ test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.c \ + test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.o \ + test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.c \ + test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.o \ ++test-abidiff-exit/test-non-leaf-array-v0.c \ ++test-abidiff-exit/test-non-leaf-array-v0.o \ ++test-abidiff-exit/test-non-leaf-array-v1.c \ ++test-abidiff-exit/test-non-leaf-array-v1.o \ ++test-abidiff-exit/test-non-leaf-array-report.txt \ + test-abidiff-exit/test-missing-alias-report.txt \ + test-abidiff-exit/test-missing-alias.abi \ + test-abidiff-exit/test-missing-alias.suppr \ +diff --git a/tests/data/test-abidiff-exit/test-non-leaf-array-report.txt b/tests/data/test-abidiff-exit/test-non-leaf-array-report.txt +new file mode 100644 +index 000000000000..f13cd0d4a8b5 +--- /dev/null ++++ b/tests/data/test-abidiff-exit/test-non-leaf-array-report.txt +@@ -0,0 +1,11 @@ ++Leaf changes summary: 1 artifact changed ++Changed leaf types summary: 1 leaf type changed ++Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function ++Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable ++ ++'struct buzz at test-non-leaf-array-v0.c:1:1' changed: ++ type size changed from 32 to 64 (in bits) ++ there are data member changes: ++ type 'int' of 'buzz::a' changed: ++ type name changed from 'int' to 'long int' ++ type size changed from 32 to 64 (in bits) +diff --git a/tests/data/test-abidiff-exit/test-non-leaf-array-v0.c b/tests/data/test-abidiff-exit/test-non-leaf-array-v0.c +new file mode 100644 +index 000000000000..9594c396a1f4 +--- /dev/null ++++ b/tests/data/test-abidiff-exit/test-non-leaf-array-v0.c +@@ -0,0 +1,12 @@ ++struct buzz { ++ int a; ++}; ++ ++struct flexible { ++ long count; ++ struct buzz lightyear[0]; ++}; ++ ++struct flexible var; ++void fun(struct flexible flex) { (void) flex; } ++ +diff --git a/tests/data/test-abidiff-exit/test-non-leaf-array-v0.o b/tests/data/test-abidiff-exit/test-non-leaf-array-v0.o +new file mode 100644 +index 0000000000000000000000000000000000000000..f45eecb207f8ed7a78ae672d348ec9995b25b378 +GIT binary patch +literal 3096 +zcmbtW-D@0G6hC)oKV~z{n$0RUiO5tcwctz=scozzU5%y<)lv(EqDYwCo&CVw*)lsD +zH&Llb5ekA81Qql_eep%G|AC-?fP()*!B^izAM~6%=WcFpC-~rjz4x5o`Ml?T%-(wW +zm93l*ph&<597qZUxKTRb>yoWQ4d&tcr91a8-FffNyKnv^(O+=POU{;Ij!9k{9F5Nr +zpBKX3!r2Ny;1$&HGffS-Bc@|0!y^EL)MO!LM9!eh(LIWTyi!Sd5 +zF^HM!s|b}Xslj2UJ&r&)MJ21c#Fvs2&LY|8KIvl8s(7+ebF9izr7Gr2bB`ik6IR7> +z&O6UL&pD!o)z5-ur{Z>P4MXHlg5zvBmW`F8uA=LTtg8T&gxIc80Q&@N*Uq71`HU9n +z!b0vi*6NE33o87n1uCL`{IeGq0GxsrnoQwos#-1zGi#*Qr$LgXRa&r&qY!^rW^t6K +z0XI)T5{?ot8b)3}4BB20$HAVryW%&cW5I=TnusFIh{Ey*ISbv}{czH2^g|#9E?&9r +zZmynlS6BRJ{1w+5B;zPt?}Skp_nIgMakINVSv%{UJ>z;E*J}r(y{OrZhtY66^2X8I +zy{P3S0md6ae;9S#aWv|6qOj%C0g;GgdYx{v7ve@Y#{2t67rvYfZbEZ7MqjwNxq04w +z>ZP#J3nH%1TYdI4vvQ395A!VcuYs7%iKSyD`z|);F~sRdBwPDJW$we==4^2b4N^FB +zq)U;9KmN&5V)wFO+@5Kl59uw`WRb-;(9~HlJ?)277HF4S(^yc}qyyGUS9}04XTj_P +z7y%aGLC+uy9(WyK5$&qlx>PS8M|@uE&-6GSc}D5h(;ZJqt$YSW#gj%=Ksc>dRazw_ +zlEQDNB0R#g!oOk}@1i8yL4CJQGfwtuEd==*PI+&!e8s?7gf|TQ8!R=5R0w@#XNNVG{cIvU#Hdf!YWiPgAN?#7WXh|EnK8*u`Ts_OMy4%&#^`@UU9%zfcLI^R +z>_F#=AeEm!fkf;0Gh-5dlELpu(8#o`BVM$`kM8( +zGGZcxf01YecrBf#qnUpPHCg%J=lrTql%MXdng1qY6jRlStfXt4|2qZntn#b*9mKQz +z|6+glKm2dAzhMT8=7D4bl~>t+!Ty|1!Qit0+7w9{wSEPEicD7jKF{bMeKVB5>MPY_ +v=BC&;IKMi-^qryi*7T=6$y(}OFqWBUIKkucXI + +literal 0 +HcmV?d00001 + +diff --git a/tests/data/test-abidiff-exit/test-non-leaf-array-v1.c b/tests/data/test-abidiff-exit/test-non-leaf-array-v1.c +new file mode 100644 +index 000000000000..516c8b1fc9f9 +--- /dev/null ++++ b/tests/data/test-abidiff-exit/test-non-leaf-array-v1.c +@@ -0,0 +1,12 @@ ++struct buzz { ++ long a; ++}; ++ ++struct flexible { ++ long count; ++ struct buzz lightyear[0]; ++}; ++ ++struct flexible var; ++void fun(struct flexible flex) { (void) flex; } ++ +diff --git a/tests/data/test-abidiff-exit/test-non-leaf-array-v1.o b/tests/data/test-abidiff-exit/test-non-leaf-array-v1.o +new file mode 100644 +index 0000000000000000000000000000000000000000..298dda06b0fbf53e001eede352f049a0196e5264 +GIT binary patch +literal 3072 +zcmbtW-D@0G6hC(-yF1A=+iX^`X;h}7)Pgg~N^N5$>1s4>uoe~iqDYwCz59W?vt?#B +zCJ|9Y#lA=d!7BPvUyA>O_~4Tdg8zizoA@U9py$k-JGr@?;DZPD-gAEE^Pc-L`~FMU +zwn{>PA^{t4C@B=6Rn_>EZ9xMT;l|Zlzg@lc-e0%h`YA@>`Yl-CAF<4eTb +zLfBh4TLFkt%3%b%Oe)rw?I{W=A}X0hCR9(7!iI{6)5rL$(m?KMwf1fhftahmg3zp$ +zYKZGiLl90y$*Lgn%^X3(IZgJZ&j-lY#S^uLW7U>xb+K4ocnI-^uxgHT$$8Fs))5UX +zdmb!16So^{7;NToaGVWv!je%}({&Xgwj1PCJp1 +z%&k*jzOV!^SJvW@DLh4`;*YwZlUkIH5l>6AU +zupi2*K +zlXv)t-a<_gS$xw>odx;fKBBTfyTqEtf>}*EWUXw)hX8XH%-@F*U;&=_0gA(|FKYeC5Av~lPM4gnbVh3Bbe9!R8dU+|v|3eZos>ulrw4`T!EDO$Z&}7$ +zm=f)vzFX%Qr#NaY1o;|HdGD~iZQvu8uNydv@TP&^WqDxWpRxR@fxp4>*F01G`YwL2 +z;rhCMU|jWw)v4M8JR@=v)z`^3%tUXdQoM +zOu`>w@Gc1&nYL7?iIMq_46bUv#G1C$=c4-8cte#x)laXlS%0@6CPMHBCwh$pjm-Qz +zs4L1p;QXpjl%MXdng1qY6jRlSY)UP@jQ144v&ygLcM&i0|DFBa|M35a{S7m)%>&5> +zDzCEtiv2mAf^+}19LX59eg%JlOi}+nDCi%3GnBvTE7fD>rr0g6U!7n2&d_^n`qQ2i +dE%hE1h4ff9<)gWNid*D=hwJ|?_skg6|6ia;)N%j- + +literal 0 +HcmV?d00001 + +diff --git a/tests/test-abidiff-exit.cc b/tests/test-abidiff-exit.cc +index 955b0c036664..88de4131c958 100644 +--- a/tests/test-abidiff-exit.cc ++++ b/tests/test-abidiff-exit.cc +@@ -363,6 +363,17 @@ InOutSpec in_out_specs[] = + "data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-2.txt", + "output/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-2.txt" + }, ++ { ++ "data/test-abidiff-exit/test-non-leaf-array-v0.o", ++ "data/test-abidiff-exit/test-non-leaf-array-v1.o", ++ "", ++ "", ++ "", ++ "--leaf-changes-only", ++ abigail::tools_utils::ABIDIFF_ABI_CHANGE, ++ "data/test-abidiff-exit/test-non-leaf-array-report.txt", ++ "output/test-abidiff-exit/test-non-leaf-array-report.txt" ++ }, + { + "data/test-abidiff-exit/test-missing-alias.abi", + "data/test-abidiff-exit/test-missing-alias.abi", diff --git a/patches/reader-symtab-Improve-handling-for-suppressed-aliases.patch b/patches/reader-symtab-Improve-handling-for-suppressed-aliases.patch index 1474be64..ef2ab487 100644 --- a/patches/reader-symtab-Improve-handling-for-suppressed-aliases.patch +++ b/patches/reader-symtab-Improve-handling-for-suppressed-aliases.patch @@ -30,14 +30,14 @@ Signed-off-by: Matthias Maennich .../test-missing-alias-report.txt | 0 .../test-abidiff-exit/test-missing-alias.abi | 12 ++++++++++++ .../test-abidiff-exit/test-missing-alias.suppr | 4 ++++ - tests/test-abidiff-exit.cc | 9 +++++++++ - 7 files changed, 47 insertions(+), 4 deletions(-) + tests/test-abidiff-exit.cc | 11 +++++++++++ + 7 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 tests/data/test-abidiff-exit/test-missing-alias-report.txt create mode 100644 tests/data/test-abidiff-exit/test-missing-alias.abi create mode 100644 tests/data/test-abidiff-exit/test-missing-alias.suppr diff --git a/src/abg-reader.cc b/src/abg-reader.cc -index 31aa567af038..4d3db686b944 100644 +index 8ee45a540d44..2e13f7eef111 100644 --- a/src/abg-reader.cc +++ b/src/abg-reader.cc @@ -2789,7 +2789,8 @@ build_elf_symbol(read_context& ctxt, const xmlNodePtr node, @@ -103,13 +103,13 @@ index c50c0f643386..424817106e70 100644 } diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am -index f523fe41f768..d420418bb017 100644 +index b37c96af35c2..92eed744c561 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am -@@ -178,6 +178,9 @@ test-abidiff-exit/test-net-change-report0.txt \ - test-abidiff-exit/test-net-change-report1.txt \ - test-abidiff-exit/test-net-change-report2.txt \ - test-abidiff-exit/test-net-change-report3.txt \ +@@ -188,6 +188,9 @@ test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.c \ + test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.o \ + test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.c \ + test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.o \ +test-abidiff-exit/test-missing-alias-report.txt \ +test-abidiff-exit/test-missing-alias.abi \ +test-abidiff-exit/test-missing-alias.suppr \ @@ -148,22 +148,24 @@ index 000000000000..bcebae43a350 + drop = true + diff --git a/tests/test-abidiff-exit.cc b/tests/test-abidiff-exit.cc -index 5921282e6cf2..2e6c4d3b9a6e 100644 +index 6d37533a51e3..dd903d70d132 100644 --- a/tests/test-abidiff-exit.cc +++ b/tests/test-abidiff-exit.cc -@@ -286,6 +286,15 @@ InOutSpec in_out_specs[] = - "data/test-abidiff-exit/test-net-change-report3.txt", - "output/test-abidiff-exit/test-net-change-report3.txt" +@@ -363,6 +363,17 @@ InOutSpec in_out_specs[] = + "data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-2.txt", + "output/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-2.txt" }, + { + "data/test-abidiff-exit/test-missing-alias.abi", + "data/test-abidiff-exit/test-missing-alias.abi", + "data/test-abidiff-exit/test-missing-alias.suppr", + "", ++ "", ++ "", + abigail::tools_utils::ABIDIFF_OK, + "data/test-abidiff-exit/test-missing-alias-report.txt", + "output/test-abidiff-exit/test-missing-alias-report.txt" + }, - {0, 0, 0 ,0, abigail::tools_utils::ABIDIFF_OK, 0, 0} + {0, 0, 0 ,0, 0, 0, abigail::tools_utils::ABIDIFF_OK, 0, 0} }; diff --git a/patches/series b/patches/series index d86109e9..c0d2e868 100644 --- a/patches/series +++ b/patches/series @@ -21,3 +21,10 @@ dwarf-reader-writer-consider-aliases-when-dealing-with-suppressions.patch symtab-Add-support-for-MODVERSIONS-CRC-checksums.patch reader-symtab-Improve-handling-for-suppressed-aliases.patch abg-writer.cc-Track-types-by-plain-address.patch +KMI-Whitelists-allow-alternative-section-suffix-symbol_list.patch +dwarf-reader-sort-the-types-for-canonicalization.patch +abg-writer.cc-fix-write_elf_symbol_reference-loop.patch +comp-filter-Consider-CRC-changes-harmful.patch +abg-ir.cc-improve-update_main_alias.patch +ir-Add-better-comments-to-types_have_similar_structure.patch +ir-Arrays-are-indirect-types-for-type-similarity-purposes.patch diff --git a/patches/symtab-Add-support-for-MODVERSIONS-CRC-checksums.patch b/patches/symtab-Add-support-for-MODVERSIONS-CRC-checksums.patch index 06ace6b6..b8372a7a 100644 --- a/patches/symtab-Add-support-for-MODVERSIONS-CRC-checksums.patch +++ b/patches/symtab-Add-support-for-MODVERSIONS-CRC-checksums.patch @@ -99,7 +99,7 @@ Signed-off-by: Matthias Maennich create mode 100644 tests/data/test-symtab/kernel-modversions/one_of_each.ko diff --git a/include/abg-ir.h b/include/abg-ir.h -index c3c35c37a2cc..41b6f8ba3adf 100644 +index 559bf78bf7b6..1483afb8acbd 100644 --- a/include/abg-ir.h +++ b/include/abg-ir.h @@ -854,6 +854,7 @@ private: @@ -132,7 +132,7 @@ index c3c35c37a2cc..41b6f8ba3adf 100644 is_suppressed() const; diff --git a/src/abg-ir.cc b/src/abg-ir.cc -index bc6bc9546443..ca46ae2c0e8b 100644 +index d896d0bb7278..a9323aad0013 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc @@ -24,13 +24,14 @@ @@ -154,7 +154,7 @@ index bc6bc9546443..ca46ae2c0e8b 100644 #include "abg-cxx-compat.h" #include "abg-internal.h" -@@ -1320,6 +1321,7 @@ struct elf_symbol::priv +@@ -1324,6 +1325,7 @@ struct elf_symbol::priv bool is_common_; bool is_linux_string_cst_; bool is_in_ksymtab_; @@ -162,7 +162,7 @@ index bc6bc9546443..ca46ae2c0e8b 100644 bool is_suppressed_; elf_symbol_wptr main_symbol_; elf_symbol_wptr next_alias_; -@@ -1337,6 +1339,7 @@ struct elf_symbol::priv +@@ -1341,6 +1343,7 @@ struct elf_symbol::priv is_common_(false), is_linux_string_cst_(false), is_in_ksymtab_(false), @@ -170,7 +170,7 @@ index bc6bc9546443..ca46ae2c0e8b 100644 is_suppressed_(false) {} -@@ -1352,6 +1355,7 @@ struct elf_symbol::priv +@@ -1356,6 +1359,7 @@ struct elf_symbol::priv elf_symbol::visibility vi, bool is_linux_string_cst, bool is_in_ksymtab, @@ -178,7 +178,7 @@ index bc6bc9546443..ca46ae2c0e8b 100644 bool is_suppressed) : env_(e), index_(i), -@@ -1365,6 +1369,7 @@ struct elf_symbol::priv +@@ -1369,6 +1373,7 @@ struct elf_symbol::priv is_common_(c), is_linux_string_cst_(is_linux_string_cst), is_in_ksymtab_(is_in_ksymtab), @@ -186,7 +186,7 @@ index bc6bc9546443..ca46ae2c0e8b 100644 is_suppressed_(is_suppressed) { if (!is_common_) -@@ -1423,6 +1428,7 @@ elf_symbol::elf_symbol(const environment* e, +@@ -1427,6 +1432,7 @@ elf_symbol::elf_symbol(const environment* e, visibility vi, bool is_linux_string_cst, bool is_in_ksymtab, @@ -194,7 +194,7 @@ index bc6bc9546443..ca46ae2c0e8b 100644 bool is_suppressed) : priv_(new priv(e, i, -@@ -1436,6 +1442,7 @@ elf_symbol::elf_symbol(const environment* e, +@@ -1440,6 +1446,7 @@ elf_symbol::elf_symbol(const environment* e, vi, is_linux_string_cst, is_in_ksymtab, @@ -202,7 +202,7 @@ index bc6bc9546443..ca46ae2c0e8b 100644 is_suppressed)) {} -@@ -1495,11 +1502,12 @@ elf_symbol::create(const environment* e, +@@ -1499,11 +1506,12 @@ elf_symbol::create(const environment* e, visibility vi, bool is_linux_string_cst, bool is_in_ksymtab, @@ -216,7 +216,7 @@ index bc6bc9546443..ca46ae2c0e8b 100644 sym->priv_->main_symbol_ = sym; return sym; } -@@ -1520,7 +1528,9 @@ textually_equals(const elf_symbol&l, +@@ -1524,7 +1532,9 @@ textually_equals(const elf_symbol&l, && l.is_public() == r.is_public() && l.is_defined() == r.is_defined() && l.is_common_symbol() == r.is_common_symbol() @@ -227,7 +227,7 @@ index bc6bc9546443..ca46ae2c0e8b 100644 if (equals && l.is_variable()) // These are variable symbols. Let's compare their symbol size. -@@ -1727,6 +1737,14 @@ void +@@ -1731,6 +1741,14 @@ void elf_symbol::set_is_in_ksymtab(bool is_in_ksymtab) {priv_->is_in_ksymtab_ = is_in_ksymtab;} @@ -243,7 +243,7 @@ index bc6bc9546443..ca46ae2c0e8b 100644 elf_symbol::is_suppressed() const {return priv_->is_suppressed_;} diff --git a/src/abg-reader.cc b/src/abg-reader.cc -index d7771e02a66b..31aa567af038 100644 +index 525732e044b6..8ee45a540d44 100644 --- a/src/abg-reader.cc +++ b/src/abg-reader.cc @@ -2774,6 +2774,10 @@ build_elf_symbol(read_context& ctxt, const xmlNodePtr node, @@ -390,7 +390,7 @@ index bcbf9ce8ee06..1ffaca8cec6e 100644 return true; diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am -index 809dd262a26e..f523fe41f768 100644 +index 679577508895..b37c96af35c2 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -35,6 +35,7 @@ test-read-write/test28-without-std-fns-ref.xml \ @@ -431,7 +431,7 @@ index 809dd262a26e..f523fe41f768 100644 \ test-abidiff-exit/test1-voffset-change-report0.txt \ test-abidiff-exit/test1-voffset-change-report1.txt \ -@@ -1884,4 +1887,7 @@ test-symtab/kernel-5.6/single_function_gpl.ko \ +@@ -1905,4 +1908,7 @@ test-symtab/kernel-5.6/single_function_gpl.ko \ test-symtab/kernel-5.6/single_variable.c \ test-symtab/kernel-5.6/single_variable.ko \ test-symtab/kernel-5.6/single_variable_gpl.c \ @@ -5299,7 +5299,7 @@ index a9d032e74e35..000000000000 -Variables changes summary: 0 Removed, 0 Changed, 0 Added variable - diff --git a/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi b/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi -index de9ad546e6d0..7afee59b6f1f 100644 +index 5b8e0437fb66..fce35f72667b 100644 --- a/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi +++ b/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi @@ -1,41 +1,41 @@ diff --git a/patches/symtab-dwarf-reader-allow-hinting-of-main-symbols-for-aliases.patch b/patches/symtab-dwarf-reader-allow-hinting-of-main-symbols-for-aliases.patch index df2a36aa..cab7572d 100644 --- a/patches/symtab-dwarf-reader-allow-hinting-of-main-symbols-for-aliases.patch +++ b/patches/symtab-dwarf-reader-allow-hinting-of-main-symbols-for-aliases.patch @@ -100,15 +100,20 @@ Signed-off-by: Matthias Maennich src/abg-ir.cc | 46 +- src/abg-symtab-reader.cc | 21 + tests/data/Makefile.am | 2 + + .../test5-fn-changed-report-0.txt | 4 - + .../test5-fn-changed-report-1.txt | 4 - .../data/test-annotate/test15-pr18892.so.abi | 918 ++++++++--------- ...19-pr19023-libtcmalloc_and_profiler.so.abi | 60 +- tests/data/test-annotate/test2.so.abi | 12 +- tests/data/test-annotate/test3.so.abi | 6 +- tests/data/test-diff-dwarf/test12-report.txt | 7 + + .../test36-ppc64-aliases-report-0.txt | 4 +- .../test42-PR21296-clanggcc-report0.txt | 4 +- + .../test31-pr18535-libstdc++-report-0.txt | 4 +- + .../test31-pr18535-libstdc++-report-1.txt | 4 +- ...bb-4.3-3.20141204.fc23.x86_64-report-0.txt | 6 +- ...bb-4.3-3.20141204.fc23.x86_64-report-1.txt | 6 +- - .../test23-alias-filter-4.suppr | 4 +- + .../test23-alias-filter-4.suppr | 2 +- .../test23-alias-filter-report-0.txt | 4 +- .../test23-alias-filter-report-2.txt | 4 +- .../PR22015-libboost_iostreams.so.abi | 48 +- @@ -127,12 +132,12 @@ Signed-off-by: Matthias Maennich tests/data/test-symtab/basic/aliases.c | 13 + tests/data/test-symtab/basic/aliases.so | Bin 0 -> 17176 bytes tests/test-symtab.cc | 47 + - 33 files changed, 2512 insertions(+), 2358 deletions(-) + 38 files changed, 2517 insertions(+), 2371 deletions(-) create mode 100644 tests/data/test-symtab/basic/aliases.c create mode 100755 tests/data/test-symtab/basic/aliases.so diff --git a/include/abg-ir.h b/include/abg-ir.h -index 14358f47dd5b..c3c35c37a2cc 100644 +index 4ad0572ebd3d..559bf78bf7b6 100644 --- a/include/abg-ir.h +++ b/include/abg-ir.h @@ -968,6 +968,9 @@ public: @@ -170,10 +175,10 @@ index 06001b26ebeb..9065b6ad4209 100644 /// Default constructor. Private to enforce creation by factory methods. symtab(); diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc -index 184211057c0e..f305798a06f6 100644 +index 88b0c8ceaa05..ef708466ed45 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc -@@ -13230,7 +13230,13 @@ build_var_decl(read_context& ctxt, +@@ -13240,7 +13240,13 @@ build_var_decl(read_context& ctxt, elf_symbol_sptr var_sym; Dwarf_Addr var_addr; if (ctxt.get_variable_address(die, var_addr)) @@ -188,7 +193,7 @@ index 184211057c0e..f305798a06f6 100644 if (var_sym) { -@@ -13693,7 +13699,13 @@ build_function_decl(read_context& ctxt, +@@ -13703,7 +13709,13 @@ build_function_decl(read_context& ctxt, elf_symbol_sptr fn_sym; Dwarf_Addr fn_addr; if (ctxt.get_function_address(die, fn_addr)) @@ -204,10 +209,10 @@ index 184211057c0e..f305798a06f6 100644 if (fn_sym) { diff --git a/src/abg-ir.cc b/src/abg-ir.cc -index eb5d12e18035..bc6bc9546443 100644 +index 74f985bcc6b7..d896d0bb7278 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc -@@ -1763,14 +1763,14 @@ elf_symbol::set_is_suppressed(bool is_suppressed) +@@ -1767,14 +1767,14 @@ elf_symbol::set_is_suppressed(bool is_suppressed) ///@return the main symbol. const elf_symbol_sptr elf_symbol::get_main_symbol() const @@ -224,7 +229,7 @@ index eb5d12e18035..bc6bc9546443 100644 /// Tests whether this symbol is the main symbol. /// -@@ -1847,6 +1847,48 @@ elf_symbol::add_alias(const elf_symbol_sptr& alias) +@@ -1851,6 +1851,48 @@ elf_symbol::add_alias(const elf_symbol_sptr& alias) alias->priv_->main_symbol_ = get_main_symbol(); } @@ -306,10 +311,10 @@ index aefc8d6dcd86..f84ed79dae17 100644 symtab::update_function_entry_address_symbol_map( Elf* elf_handle, diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am -index 09f5b4949a1a..7c10dd31517c 100644 +index aa279147855c..b8a553fc73d4 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am -@@ -1793,6 +1793,8 @@ test-kmi-whitelist/whitelist-with-duplicate-entry \ +@@ -1814,6 +1814,8 @@ test-kmi-whitelist/whitelist-with-duplicate-entry \ test-kmi-whitelist/whitelist-with-two-sections \ \ test-symtab/basic/Makefile \ @@ -318,6 +323,30 @@ index 09f5b4949a1a..7c10dd31517c 100644 test-symtab/basic/empty.c \ test-symtab/basic/empty.so \ test-symtab/basic/link_against_me.c \ +diff --git a/tests/data/test-abicompat/test5-fn-changed-report-0.txt b/tests/data/test-abicompat/test5-fn-changed-report-0.txt +index ccde357d75ce..04676908c7c2 100644 +--- a/tests/data/test-abicompat/test5-fn-changed-report-0.txt ++++ b/tests/data/test-abicompat/test5-fn-changed-report-0.txt +@@ -15,7 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e + 1 data member deletion: + 'unsigned char S1::m1', at offset 32 (in bits) + +- method S0::S0(): +- implicit parameter 0 of type 'S0*' has sub-type changes: +- pointed to type 'struct S0' changed, as reported earlier +- +diff --git a/tests/data/test-abicompat/test5-fn-changed-report-1.txt b/tests/data/test-abicompat/test5-fn-changed-report-1.txt +index dbdcbe5e7607..b39f650de332 100644 +--- a/tests/data/test-abicompat/test5-fn-changed-report-1.txt ++++ b/tests/data/test-abicompat/test5-fn-changed-report-1.txt +@@ -15,7 +15,3 @@ have sub-types that are different from what application 'test5-fn-changed-app' e + 1 data member deletion: + 'unsigned char S1::m1', at offset 32 (in bits) at test5-fn-changed-libapp-v0.h:11:1 + +- method S0::S0(): +- implicit parameter 0 of type 'S0*' has sub-type changes: +- pointed to type 'struct S0' changed at test5-fn-changed-libapp-v0.h:1:1, as reported earlier +- diff --git a/tests/data/test-annotate/test15-pr18892.so.abi b/tests/data/test-annotate/test15-pr18892.so.abi index 60ccfae78455..1af9906fa404 100644 --- a/tests/data/test-annotate/test15-pr18892.so.abi @@ -3473,8 +3502,29 @@ index e69de29bb2d1..62dd8337d694 100644 + + [A] 'function int _foo3(int, int)' + +diff --git a/tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt b/tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt +index 4f4a765f9381..a79c11bed2dc 100644 +--- a/tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt ++++ b/tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt +@@ -3,14 +3,14 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable + + 4 functions with some indirect sub-type change: + +- [C] 'method S::S()' has some indirect sub-type changes: ++ [C] 'method S::S(int)' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + in pointed to type 'struct S': + type size changed from 32 to 64 (in bits) + 1 data member insertion: + 'int S::m1', at offset 32 (in bits) + +- [C] 'method S::S(int)' has some indirect sub-type changes: ++ [C] 'method S::S()' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as reported earlier + diff --git a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt -index 087cfd4edb89..47250ac7d02a 100644 +index bc3072299347..25e19a28f35a 100644 --- a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt +++ b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt @@ -9,9 +9,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable @@ -3488,11 +3538,41 @@ index 087cfd4edb89..47250ac7d02a 100644 parameter 1 of type 'int' was removed [C] 'function std::tuple my_forward_as_tuple(STR&&)' has some indirect sub-type changes: +diff --git a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt +index 7e09ed0d8778..e0e9e3d30b7f 100644 +--- a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt ++++ b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt +@@ -96,8 +96,8 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere + no member function changes (10 filtered); + + [C] 'method std::codecvt_byname* std::codecvt_byname::codecvt_byname(const char*, std::size_t)' has some indirect sub-type changes: +- Please note that the symbol of this function is _ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj@@GLIBCXX_3.4 +- and it aliases symbol: _ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj@@GLIBCXX_3.4 ++ Please note that the symbol of this function is _ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj@@GLIBCXX_3.4 ++ and it aliases symbol: _ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj@@GLIBCXX_3.4 + implicit parameter 0 of type 'std::codecvt_byname*' has sub-type changes: + in pointed to type 'class std::codecvt_byname': + type size hasn't changed +diff --git a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt +index f5bc3001baae..4b0149dd9a1a 100644 +--- a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt ++++ b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt +@@ -96,8 +96,8 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere + no member function changes (10 filtered); + + [C] 'method std::codecvt_byname* std::codecvt_byname::codecvt_byname(const char*, std::size_t)' at codecvt.h:462:1 has some indirect sub-type changes: +- Please note that the symbol of this function is _ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj@@GLIBCXX_3.4 +- and it aliases symbol: _ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj@@GLIBCXX_3.4 ++ Please note that the symbol of this function is _ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj@@GLIBCXX_3.4 ++ and it aliases symbol: _ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj@@GLIBCXX_3.4 + implicit parameter 0 of type 'std::codecvt_byname*' has sub-type changes: + in pointed to type 'class std::codecvt_byname' at codecvt.h:458:1: + type size hasn't changed diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt -index ba49f8adaeb6..4fc20c36bce3 100644 +index 1594161c3bcf..ffbcea329001 100644 --- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt +++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt -@@ -266,20 +266,18 @@ +@@ -304,20 +304,18 @@ ================ end of changes of 'libtbbmalloc.so.2'=============== ================ changes of 'libtbbmalloc_proxy.so.2'=============== @@ -3516,10 +3596,10 @@ index ba49f8adaeb6..4fc20c36bce3 100644 ================ end of changes of 'libtbbmalloc_proxy.so.2'=============== diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt -index bef715b6feca..b201cb46d6b1 100644 +index dda2fb764344..a33b61503335 100644 --- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt +++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt -@@ -140,20 +140,18 @@ +@@ -154,20 +154,18 @@ ================ end of changes of 'libtbbmalloc.so.2'=============== ================ changes of 'libtbbmalloc_proxy.so.2'=============== @@ -3543,16 +3623,14 @@ index bef715b6feca..b201cb46d6b1 100644 ================ end of changes of 'libtbbmalloc_proxy.so.2'=============== diff --git a/tests/data/test-diff-suppr/test23-alias-filter-4.suppr b/tests/data/test-diff-suppr/test23-alias-filter-4.suppr -index 2a7e5893eb43..16edb095bbbf 100644 +index b7429d14505f..16edb095bbbf 100644 --- a/tests/data/test-diff-suppr/test23-alias-filter-4.suppr +++ b/tests/data/test-diff-suppr/test23-alias-filter-4.suppr @@ -1,3 +1,3 @@ [suppress_function] - symbol_name_regexp = function1 -- allow_other_aliases = no -\ No newline at end of file + symbol_name_regexp = __private_function -+ allow_other_aliases = no + allow_other_aliases = no diff --git a/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt b/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt index 0788d48931f7..8b06f3151b63 100644 --- a/tests/data/test-diff-suppr/test23-alias-filter-report-0.txt @@ -3738,7 +3816,7 @@ index c4b1e75499f2..a156b274b0bf 100644 diff --git a/tests/data/test-read-dwarf/PR22122-libftdc.so.abi b/tests/data/test-read-dwarf/PR22122-libftdc.so.abi -index 4901fc5c1a7d..a0c1b53fea55 100644 +index ba918b7e3ec8..305535b1dc86 100644 --- a/tests/data/test-read-dwarf/PR22122-libftdc.so.abi +++ b/tests/data/test-read-dwarf/PR22122-libftdc.so.abi @@ -151,8 +151,8 @@ @@ -3752,13 +3830,13 @@ index 4901fc5c1a7d..a0c1b53fea55 100644 -@@ -6939,7 +6939,7 @@ +@@ -6880,7 +6880,7 @@ - + - + diff --git a/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi b/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi @@ -4328,7 +4406,7 @@ index cb4d90710707..1da50a0a8a82 100644 diff --git a/tests/data/test-read-dwarf/test11-pr18828.so.abi b/tests/data/test-read-dwarf/test11-pr18828.so.abi -index bc70b4817a2e..663f9ccc10c5 100644 +index 32934d89f024..a66a31e03f9f 100644 --- a/tests/data/test-read-dwarf/test11-pr18828.so.abi +++ b/tests/data/test-read-dwarf/test11-pr18828.so.abi @@ -40,24 +40,24 @@ @@ -4928,7 +5006,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -4954,7 +5032,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -4971,7 +5049,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -4995,7 +5073,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -5035,7 +5113,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -5052,7 +5130,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -8617,7 +8617,7 @@ @@ -5115,7 +5193,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -5132,7 +5210,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -5158,7 +5236,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -11328,7 +11328,7 @@ @@ -5167,7 +5245,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -11374,7 +11374,7 @@ @@ -5176,7 +5254,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -11539,7 +11539,7 @@ @@ -5185,7 +5263,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -16071,7 +16071,7 @@ @@ -5194,7 +5272,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -19525,7 +19525,7 @@ @@ -5203,7 +5281,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -19591,7 +19591,7 @@ @@ -5314,7 +5392,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -22535,7 +22535,7 @@ @@ -5350,7 +5428,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -5367,7 +5445,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -5393,7 +5471,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -5418,7 +5496,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -5451,7 +5529,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -5495,7 +5573,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -5503,7 +5581,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -32293,7 +32293,7 @@ @@ -5521,7 +5599,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -33541,14 +33541,14 @@ @@ -5530,7 +5608,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -5538,7 +5616,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -33948,7 +33948,7 @@ @@ -5548,7 +5626,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 + - + @@ -33988,7 +33988,7 @@ @@ -5556,7 +5634,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -34047,7 +34047,7 @@ @@ -5566,7 +5644,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 + - + @@ -34069,7 +34069,7 @@ @@ -5574,7 +5652,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -34129,7 +34129,7 @@ @@ -5610,7 +5688,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -34386,7 +34386,7 @@ @@ -5628,7 +5706,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + @@ -35206,13 +35206,13 @@ @@ -5644,7 +5722,7 @@ index bc70b4817a2e..663f9ccc10c5 100644 - + - + diff --git a/tests/data/test-read-dwarf/test12-pr18844.so.abi b/tests/data/test-read-dwarf/test12-pr18844.so.abi index 5b6d24b8415c..c0a31efbc13d 100644 @@ -7977,7 +8055,7 @@ index bb0c2ea8dbdc..be9a931ee5c8 100644 diff --git a/tests/data/test-read-dwarf/test16-pr18904.so.abi b/tests/data/test-read-dwarf/test16-pr18904.so.abi -index 0075a6ec289f..3b7a4177cbbb 100644 +index 377d322475f9..31992791f7f7 100644 --- a/tests/data/test-read-dwarf/test16-pr18904.so.abi +++ b/tests/data/test-read-dwarf/test16-pr18904.so.abi @@ -41,16 +41,16 @@ diff --git a/patches/test-symtab-add-tests-for-whitelisted-functions.patch b/patches/test-symtab-add-tests-for-whitelisted-functions.patch index a0371b3d..2a5b8079 100644 --- a/patches/test-symtab-add-tests-for-whitelisted-functions.patch +++ b/patches/test-symtab-add-tests-for-whitelisted-functions.patch @@ -31,10 +31,10 @@ Signed-off-by: Matthias Maennich create mode 100644 tests/data/test-symtab/basic/one_function_one_variable_variable.whitelist diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am -index 1f2a2605bf9d..09f5b4949a1a 100644 +index 2898a2d02298..aa279147855c 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am -@@ -1801,6 +1801,10 @@ test-symtab/basic/no_debug_info.c \ +@@ -1822,6 +1822,10 @@ test-symtab/basic/no_debug_info.c \ test-symtab/basic/no_debug_info.so \ test-symtab/basic/one_function_one_variable.c \ test-symtab/basic/one_function_one_variable.so \ diff --git a/src/abg-comp-filter.cc b/src/abg-comp-filter.cc index abfa3c0c..81dc3678 100644 --- a/src/abg-comp-filter.cc +++ b/src/abg-comp-filter.cc @@ -233,6 +233,42 @@ access_changed(const decl_base_sptr& f, const decl_base_sptr& s) return false; } +/// Test if there was a function or variable CRC change. +/// +/// @param f the first function or variable to consider. +/// +/// @param s the second function or variable to consider. +/// +/// @return true if the test is positive, false otherwise. +template +static bool +crc_changed(const function_or_var_decl_sptr& f, + const function_or_var_decl_sptr& s) +{ + const auto symbol_f = f->get_symbol(), symbol_s = s->get_symbol(); + if (!symbol_f || !symbol_s) + return false; + const auto crc_f = symbol_f->get_crc(), crc_s = symbol_s->get_crc(); + return (crc_f != 0 && crc_s != 0 && crc_f != crc_s); +} + +/// Test if the current diff tree node carries a CRC change in either a +/// function or a variable. +/// +/// @param diff the diff tree node to consider. +/// +/// @return true if the test is positive, false otherwise. +static bool +crc_changed(const diff* diff) +{ + if (const function_decl_diff* d = + dynamic_cast(diff)) + return crc_changed(d->first_function_decl(), d->second_function_decl()); + if (const var_diff* d = dynamic_cast(diff)) + return crc_changed(d->first_var(), d->second_var()); + return false; +} + /// Test if there was a function name change, but there there was no /// change in name of the underlying symbol. IOW, if the name of a /// function changed, but the symbol of the new function is equal to @@ -258,6 +294,8 @@ function_name_changed_but_not_symbol(const function_decl_sptr& f, elf_symbol_sptr fs = f->get_symbol(), ss = s->get_symbol(); if (fs == ss) return true; + if (!!fs != !!ss) + return false; for (elf_symbol_sptr s = fs->get_next_alias(); s && !s->is_main_symbol(); s = s->get_next_alias()) @@ -1730,7 +1768,8 @@ categorize_harmful_diff_node(diff *d, bool pre) || non_static_data_member_type_size_changed(f, s) || non_static_data_member_added_or_removed(d) || base_classes_added_or_removed(d) - || has_harmful_enum_change(d))) + || has_harmful_enum_change(d) + || crc_changed(d))) category |= SIZE_OR_OFFSET_CHANGE_CATEGORY; if (has_virtual_mem_fn_change(d)) diff --git a/src/abg-comparison-priv.h b/src/abg-comparison-priv.h index 817df706..c235ee42 100644 --- a/src/abg-comparison-priv.h +++ b/src/abg-comparison-priv.h @@ -191,9 +191,6 @@ struct diff_context::priv vector filters_; suppressions_type suppressions_; pointer_map visited_diff_nodes_; - // This is the last visited diff node, per class of equivalence. - // It's set during the redundant diff node marking process. - pointer_map last_visited_diff_node_; corpus_diff_sptr corpus_diff_; ostream* default_output_stream_; ostream* error_output_stream_; @@ -508,7 +505,9 @@ struct class_or_union_diff::priv string_decl_base_sptr_map dms_replaced_by_adms_; mutable changed_var_sptrs_type dms_replaced_by_adms_ordered_; string_member_function_sptr_map deleted_member_functions_; + class_or_union::member_functions sorted_deleted_member_functions_; string_member_function_sptr_map inserted_member_functions_; + class_or_union::member_functions sorted_inserted_member_functions_; string_function_decl_diff_sptr_map changed_member_functions_; function_decl_diff_sptrs_type sorted_changed_member_functions_; string_decl_base_sptr_map deleted_member_class_tmpls_; @@ -1392,9 +1391,14 @@ void sort_string_function_ptr_map(const string_function_ptr_map& map, vector& sorted); +void +sort_string_member_function_sptr_map(const string_member_function_sptr_map& map, + class_or_union::member_functions& sorted); + void sort_string_type_base_sptr_map(string_type_base_sptr_map& map, vector& sorted); + void sort_string_function_decl_diff_sptr_map (const string_function_decl_diff_sptr_map& map, diff --git a/src/abg-comparison.cc b/src/abg-comparison.cc index f04c54bc..9acc915a 100644 --- a/src/abg-comparison.cc +++ b/src/abg-comparison.cc @@ -201,6 +201,27 @@ sort_string_function_ptr_map(const string_function_ptr_map& map, std::sort(sorted.begin(), sorted.end(), comp); } +/// Sort a map that's an instance of @ref +/// string_member_function_sptr_map and fill a vector of member +/// functions with the sorted result. +/// +/// @param map the map to sort. +/// +/// @param sorted the resulting sorted vector. +void +sort_string_member_function_sptr_map(const string_member_function_sptr_map& map, + class_or_union::member_functions& sorted) +{ + sorted.reserve(map.size()); + for (string_member_function_sptr_map::const_iterator i = map.begin(); + i != map.end(); + ++i) + sorted.push_back(i->second); + + function_comp comp; + std::sort(sorted.begin(), sorted.end(), comp); +} + /// Sort the values of a @ref string_function_decl_diff_sptr_map map /// and store the result in a vector of @ref function_decl_diff_sptr /// objects. @@ -885,55 +906,6 @@ bool is_child_node_of_base_diff(const diff* diff) {return diff && is_base_diff(diff->parent_node());} -/// Test if the current diff node has an ancestor node that has been -/// filtered out. -/// -/// This function detects cycles when walking through the "parent" -/// path. -/// -/// @param diff the diff node to take into account. -/// -/// @param ancestor this is a hash map of the pointers of the parents -/// that are visited. It's used to detect cycles while visiting -/// parents of this diff tree node. -/// -/// @return true iff the current diff node has an ancestor node that -/// has been filtered out. -static bool -diff_has_ancestor_filtered_out(const diff* d, - unordered_map& ancestors) -{ - if (!d || !d->parent_node()) - return false; - if (d->parent_node()->is_filtered_out()) - return true; - - const diff* parent = d->parent_node(); - unordered_map::const_iterator i = - ancestors.find(reinterpret_cast(parent)); - if (i != ancestors.end()) - // We've just detected a cycle in the path made of the parents - // that we are visiting. - return false; - ancestors[reinterpret_cast(parent)] = true; - - return diff_has_ancestor_filtered_out(parent, ancestors); -} - -/// Test if the current diff node has an ancestor node that has been -/// filtered out. -/// -/// @param diff the diff node to take into account. -/// -/// @return true iff the current diff node has an ancestor node that -/// has been filtered out. -static bool -diff_has_ancestor_filtered_out(const diff* diff) -{ - unordered_map ancestors_trace; - return diff_has_ancestor_filtered_out(diff, ancestors_trace); -} - /// The default traverse function. /// /// @return true. @@ -1324,45 +1296,6 @@ void diff_context::forget_visited_diffs() {priv_->visited_diff_nodes_.clear();} -/// Mark a given diff node as being the last one that has been visited -/// in its class of equivalence. -/// -/// @param d the diff node to mark. -void -diff_context::mark_last_diff_visited_per_class_of_equivalence(const diff* d) -{ - if (!d->get_canonical_diff()) - return; - - size_t v0 = reinterpret_cast(d->get_canonical_diff()); - size_t v1 = reinterpret_cast(d); - priv_->last_visited_diff_node_[v0]= v1; -} - -/// Clear the marking about the diff diff nodes in a given class of -/// equivalence. -void -diff_context::clear_last_diffs_visited_per_class_of_equivalence() -{priv_->last_visited_diff_node_.clear();} - -/// Return the last diff node visited in the class of equivalence of -/// a given diff node. -/// -/// @param d the diff node which class of equivalence to consider. -/// -/// @return the last diff node visited in the class of equivalence of -/// the diff node @p d. -const diff* -diff_context::get_last_visited_diff_of_class_of_equivalence(const diff* d) -{ - size_t v0 = reinterpret_cast(d); - - pointer_map::const_iterator it = priv_->last_visited_diff_node_.find(v0); - if (it != priv_->last_visited_diff_node_.end()) - return reinterpret_cast(it->second); - return 0; -} - /// This sets a flag that, if it's true, then during the traversing of /// a diff nodes tree each node is visited at most once. /// @@ -5280,11 +5213,11 @@ class_or_union_diff::chain_into_hierarchy() if (diff_sptr d = *i) append_child_node(d); - for (unsigned_var_diff_sptr_map::const_iterator i = - get_priv()->changed_dm_.begin(); - i != get_priv()->changed_dm_.end(); + for (var_diff_sptrs_type::const_iterator i = + get_priv()->sorted_changed_dm_.begin(); + i != get_priv()->sorted_changed_dm_.end(); ++i) - if (diff_sptr d = i->second) + if (diff_sptr d = *i) append_child_node(d); // member types changes @@ -5503,6 +5436,12 @@ class_diff::ensure_lookup_tables_populated(void) const ++i) p->inserted_member_functions_.erase(*i); + sort_string_member_function_sptr_map(p->deleted_member_functions_, + p->sorted_deleted_member_functions_); + + sort_string_member_function_sptr_map(p->inserted_member_functions_, + p->sorted_inserted_member_functions_); + sort_string_virtual_member_function_diff_sptr_map (p->changed_member_functions_, p->sorted_changed_member_functions_); @@ -6845,7 +6784,7 @@ function_type_diff::ensure_lookup_tables_populated() i != priv_->parm_changes_.deletions().end(); ++i) { - parm = *(first_function_type()->get_first_non_implicit_parm() + parm = *(first_function_type()->get_first_parm() + i->index()); parm_name = parm->get_name_id(); // If for a reason the type name is empty we want to know and @@ -6865,7 +6804,7 @@ function_type_diff::ensure_lookup_tables_populated() j != i->inserted_indexes().end(); ++j) { - parm = *(second_function_type()->get_first_non_implicit_parm() + *j); + parm = *(second_function_type()->get_first_parm() + *j); parm_name = parm->get_name_id(); // If for a reason the type name is empty we want to know and // fix that. @@ -7117,9 +7056,9 @@ compute_diff(const function_type_sptr first, function_type_diff_sptr result(new function_type_diff(first, second, ctxt)); - diff_utils::compute_diff(first->get_first_non_implicit_parm(), + diff_utils::compute_diff(first->get_first_parm(), first->get_parameters().end(), - second->get_first_non_implicit_parm(), + second->get_first_parm(), second->get_parameters().end(), result->priv_->parm_changes_); @@ -10917,14 +10856,15 @@ struct leaf_diff_node_marker_visitor : public diff_node_visitor // Similarly, a *local* change describing a type that changed // its nature doesn't make sense. && !is_distinct_diff(d) - // Similarly, a pointer (or reference or array) or qualified - // type change in itself doesn't make sense. It's would - // rather make sense to show that pointer change as part of - // the variable change whose pointer type changed, for + // Similarly, a pointer (or reference or array), a typedef or + // qualified type change in itself doesn't make sense. It + // would rather make sense to show that pointer change as part + // of the variable change whose pointer type changed, for // instance. && !is_pointer_diff(d) && !is_reference_diff(d) && !is_qualified_type_diff(d) + && !is_typedef_diff(d) && !is_array_diff(d) // Similarly a parameter change in itself doesn't make sense. // It should have already been reported as part of the change @@ -11686,16 +11626,16 @@ struct suppression_categorization_visitor : public diff_node_visitor // 2/ and has no local change (unless it's a pointer, // reference or qualified diff node). // - // Note that qualified type diff nodes are a bit special. - // The local changes of the underlying type are considered - // local for the qualified type, just like for - // pointer/reference types. But then the qualified type - // itself can have local changes of its own, and those - // changes are of the kind LOCAL_NON_TYPE_CHANGE_KIND. So a - // qualified type which have local changes that are *NOT* of - // LOCAL_NON_TYPE_CHANGE_KIND (or that has no local changes - // at all) and which is in the PRIVATE_TYPE_CATEGORY or - // SUPPRESSED_CATEGORY can see these categories be + // Note that qualified type and typedef diff nodes are a bit + // special. The local changes of the underlying type are + // considered local for the qualified/typedef type, just like + // for pointer/reference types. But then the qualified or + // typedef type itself can have local changes of its own, and + // those changes are of the kind LOCAL_NON_TYPE_CHANGE_KIND. + // So a qualified type which have local changes that are + // *NOT* of LOCAL_NON_TYPE_CHANGE_KIND (or that has no local + // changes at all) and which is in the PRIVATE_TYPE_CATEGORY + // or SUPPRESSED_CATEGORY can see these categories be // propagated. // // Note that all pointer/reference diff node changes are @@ -11703,7 +11643,7 @@ struct suppression_categorization_visitor : public diff_node_visitor // pointed-to-type are considered local to the pointer itself. // // Similarly, changes local to the type of function parameters, - // variables (and data members) and classe (that are not of + // variables (and data members) and classes (that are not of // LOCAL_NON_TYPE_CHANGE_KIND kind) and that have been // suppressed can propagate their SUPPRESSED_CATEGORY-ness to // those kinds of diff node. @@ -11713,6 +11653,8 @@ struct suppression_categorization_visitor : public diff_node_visitor || is_reference_diff(d) || (is_qualified_type_diff(d) && (!(d->has_local_changes() & LOCAL_NON_TYPE_CHANGE_KIND))) + || (is_typedef_diff(d) + && (!(d->has_local_changes() & LOCAL_NON_TYPE_CHANGE_KIND))) || (is_function_decl_diff(d) && (!(d->has_local_changes() & LOCAL_NON_TYPE_CHANGE_KIND))) || (is_fn_parm_diff(d) @@ -11774,12 +11716,19 @@ struct suppression_categorization_visitor : public diff_node_visitor canonical_diff->add_to_category(SUPPRESSED_CATEGORY); } - if (// We don't propagate "private type"-ness to typedefs - // because defining "public" typedefs of private (opaque) - // types is a common idiom. So the typedef must stay - // public. - !is_typedef_diff(d) - && has_non_empty_child + // Note that the private-ness of a an underlying type won't be + // propagated to its parent typedef, by virtue of the big "if" + // clause at the beginning of this function. So we don't have + // to handle that case here. So the idiom of defining + // typedefs of private (opaque) types will be respected; + // meaning that changes to opaque underlying type will be + // flagged as private and the typedef will be flagged private + // as well, unless the typedef itself has local non-type + // changes. In the later case, changes to the typedef will be + // emitted because the typedef won't inherit the privateness + // of its underlying type. So in practise, the typedef + // remains public for the purpose of change reporting. + if (has_non_empty_child && has_private_child && !has_non_private_child) { @@ -12161,11 +12110,11 @@ struct redundancy_marking_visitor : public diff_node_visitor && !is_diff_of_variadic_parameter(d) && !is_diff_of_variadic_parameter_type(d) // If the canonical diff itself has been filtered out, - // then this one is not marked redundant, obviously. - && !d->get_canonical_diff()->is_filtered_out() - && !(diff_has_ancestor_filtered_out - (d->context()-> - get_last_visited_diff_of_class_of_equivalence(d))) + // then this one is not marked redundant, unless the + // canonical diff was already redundant. + && (!d->get_canonical_diff()->is_filtered_out() + || (d->get_canonical_diff()->get_category() + & REDUNDANT_CATEGORY)) // If the *same* diff node (not one that is merely // equivalent to this one) has already been visited // the do not mark it as beind redundant. It's only @@ -12203,8 +12152,6 @@ struct redundancy_marking_visitor : public diff_node_visitor set_visiting_kind(get_visiting_kind() | SKIP_CHILDREN_VISITING_KIND); skip_children_nodes_ = true; } - - d->context()->mark_last_diff_visited_per_class_of_equivalence(d); } virtual void @@ -12239,8 +12186,21 @@ struct redundancy_marking_visitor : public diff_node_visitor // in the same sense as other types. So we always // propagate redundancy to them, regardless of if they // have local changes or not. + // + // We also propagate redundancy to typedef types if + // these /only/ carry changes to their underlying + // type. + // + // Note that changes to the underlying type of a + // typedef is considered local of + // LOCAL_TYPE_CHANGE_KIND kind. The other changes to the + // typedef itself are considered local of + // LOCAL_NON_TYPE_CHANGE_KIND kind. || is_pointer_diff(d) - || is_qualified_type_diff(d))) + || is_qualified_type_diff(d) + || (is_typedef_diff(d) + && (!(d->has_local_changes() + & LOCAL_NON_TYPE_CHANGE_KIND))))) { bool has_non_redundant_child = false; bool has_non_empty_child = false; @@ -12252,6 +12212,12 @@ struct redundancy_marking_visitor : public diff_node_visitor if ((*i)->has_changes()) { has_non_empty_child = true; + // Let's see if the current child node '*i' is + // "non-redundant". + // + // A non-redundant node would be a node that + // carries a change to be reported and has not + // been marked as being redundant. if ((*i)->to_be_reported() && ((*i)->get_category() & REDUNDANT_CATEGORY) == 0) has_non_redundant_child = true; @@ -12315,12 +12281,10 @@ categorize_redundancy(diff* diff_tree) if (diff_tree->context()->show_redundant_changes()) return; redundancy_marking_visitor v; - diff_tree->context()->clear_last_diffs_visited_per_class_of_equivalence(); bool s = diff_tree->context()->visiting_a_node_twice_is_forbidden(); diff_tree->context()->forbid_visiting_a_node_twice(false); diff_tree->traverse(v); diff_tree->context()->forbid_visiting_a_node_twice(s); - diff_tree->context()->clear_last_diffs_visited_per_class_of_equivalence(); } /// Walk a given @ref diff sub-tree to categorize each of the nodes diff --git a/src/abg-corpus.cc b/src/abg-corpus.cc index 1f72904d..67f878dd 100644 --- a/src/abg-corpus.cc +++ b/src/abg-corpus.cc @@ -1647,8 +1647,13 @@ corpus_group::add_corpus(const corpus_sptr& corp) corp_arch = corp->get_architecture_name(); if (cur_arch.empty()) set_architecture_name(corp_arch); - else - ABG_ASSERT(cur_arch == corp_arch); + else if (cur_arch != corp_arch) + { + std::cerr << "corpus '" << corp->get_path() << "'" + << " has architecture '" << corp_arch << "'" + << " but expected '" << cur_arch << "'\n"; + ABG_ASSERT_NOT_REACHED; + } priv_->corpora.push_back(corp); corp->set_group(this); diff --git a/src/abg-default-reporter.cc b/src/abg-default-reporter.cc index f8572f25..dc48f4b8 100644 --- a/src/abg-default-reporter.cc +++ b/src/abg-default-reporter.cc @@ -231,7 +231,11 @@ default_reporter::report(const enum_diff& d, ostream& out, d.reported_once(true); } -/// For a @ref typedef_diff node, report the changes that are local. +/// For a @ref typedef_diff node, report the local changes to the +/// typedef rather the changes to its underlying type. +/// +/// Note that changes to the underlying type are also considered +/// local. /// /// @param d the @ref typedef_diff node to consider. /// @@ -239,9 +243,9 @@ default_reporter::report(const enum_diff& d, ostream& out, /// /// @param indent the white space string to use for indentation. void -default_reporter::report_local_typedef_changes(const typedef_diff &d, - ostream& out, - const string& indent) const +default_reporter::report_non_type_typedef_changes(const typedef_diff &d, + ostream& out, + const string& indent) const { if (!d.to_be_reported()) return; @@ -283,7 +287,7 @@ default_reporter::report(const typedef_diff& d, typedef_decl_sptr f = d.first_typedef_decl(), s = d.second_typedef_decl(); - report_local_typedef_changes(d, out, indent); + report_non_type_typedef_changes(d, out, indent); diff_sptr dif = d.underlying_type_diff(); if (dif && dif->has_changes()) @@ -532,8 +536,10 @@ default_reporter::report(const fn_parm_diff& d, ostream& out, diff_category saved_category = type_diff->get_category(); // Parameter type changes are never redundants. type_diff->set_category(saved_category & ~REDUNDANT_CATEGORY); - out << indent - << "parameter " << f->get_index(); + out << indent; + if (f->get_is_artificial()) + out << "implicit "; + out << "parameter " << f->get_index(); report_loc_info(f, *d.context(), out); out << " of type '" << f->get_type_pretty_representation(); @@ -928,17 +934,17 @@ default_reporter::report(const class_or_union_diff& d, if (numdels) report_mem_header(out, numdels, num_filtered, del_kind, "member function", indent); - for (string_member_function_sptr_map::const_iterator i = - d.get_priv()->deleted_member_functions_.begin(); - i != d.get_priv()->deleted_member_functions_.end(); + for (class_or_union::member_functions::const_iterator i = + d.get_priv()->sorted_deleted_member_functions_.begin(); + i != d.get_priv()->sorted_deleted_member_functions_.end(); ++i) { if (!(ctxt->get_allowed_category() & NON_VIRT_MEM_FUN_CHANGE_CATEGORY) - && !get_member_function_is_virtual(i->second)) + && !get_member_function_is_virtual(*i)) continue; - method_decl_sptr mem_fun = i->second; + method_decl_sptr mem_fun = *i; out << indent << " "; represent(*ctxt, mem_fun, out); } @@ -949,17 +955,17 @@ default_reporter::report(const class_or_union_diff& d, if (numins) report_mem_header(out, numins, num_filtered, ins_kind, "member function", indent); - for (string_member_function_sptr_map::const_iterator i = - d.get_priv()->inserted_member_functions_.begin(); - i != d.get_priv()->inserted_member_functions_.end(); + for (class_or_union::member_functions::const_iterator i = + d.get_priv()->sorted_inserted_member_functions_.begin(); + i != d.get_priv()->sorted_inserted_member_functions_.end(); ++i) { if (!(ctxt->get_allowed_category() & NON_VIRT_MEM_FUN_CHANGE_CATEGORY) - && !get_member_function_is_virtual(i->second)) + && !get_member_function_is_virtual(*i)) continue; - method_decl_sptr mem_fun = i->second; + method_decl_sptr mem_fun = *i; out << indent << " "; represent(*ctxt, mem_fun, out); } diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc index 9fddfad5..4f3df769 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc @@ -390,25 +390,12 @@ die_signed_constant_attribute(const Dwarf_Die*die, static bool die_constant_attribute(const Dwarf_Die *die, unsigned attr_name, + bool is_signed, array_type_def::subrange_type::bound_value &value); -static bool -die_attribute_has_form(const Dwarf_Die* die, - unsigned attr_name, - unsigned int form); - static bool form_is_DW_FORM_strx(unsigned form); -static bool -die_attribute_is_signed(const Dwarf_Die* die, unsigned attr_name); - -static bool -die_attribute_is_unsigned(const Dwarf_Die* die, unsigned attr_name); - -static bool -die_attribute_has_no_signedness(const Dwarf_Die* die, unsigned attr_name); - static bool die_address_attribute(Dwarf_Die* die, unsigned attr_name, Dwarf_Addr& result); @@ -442,7 +429,8 @@ get_internal_anonymous_die_name(Dwarf_Die *die, static string build_internal_underlying_enum_type_name(const string &base_name, - bool is_anonymous); + bool is_anonymous, + uint64_t size); static string die_qualified_type_name(const read_context& ctxt, @@ -4661,6 +4649,22 @@ class read_context cn_timer.start(); } + { + // first let's "sort" the types so that definitions appear before + // declarations + vector replacement, incomplete; + for (const auto& doff : types_to_canonicalize(source)) + { + const type_base_sptr& t = lookup_type_from_die_offset(doff, source); + decl_base* db = dynamic_cast(t.get()); + (db && db->get_is_declaration_only() ? incomplete : replacement) + .push_back(doff); + } + replacement.insert(replacement.end(), incomplete.begin(), + incomplete.end()); + std::swap(types_to_canonicalize(source), replacement); + } + if (!types_to_canonicalize(source).empty()) { tools_utils::timer single_type_cn_timer; @@ -6196,7 +6200,7 @@ die_unsigned_constant_attribute(const Dwarf_Die* die, /// Read a signed constant value from a given attribute. /// -/// The signed constant expected must be of form DW_FORM_sdata. +/// The signed constant expected must be of constant form. /// /// @param die the DIE to get the attribute from. /// @@ -6234,6 +6238,9 @@ die_signed_constant_attribute(const Dwarf_Die *die, /// /// @param attr_name the attribute name to consider. /// +/// @param is_signed true if the attribute value has to read as +/// signed. +/// /// @param value the resulting value read from attribute @p attr_name /// on DIE @p die. /// @@ -6242,10 +6249,10 @@ die_signed_constant_attribute(const Dwarf_Die *die, static bool die_constant_attribute(const Dwarf_Die *die, unsigned attr_name, + bool is_signed, array_type_def::subrange_type::bound_value &value) { - if (die_attribute_is_unsigned(die, attr_name) - || die_attribute_has_no_signedness(die, attr_name)) + if (!is_signed) { uint64_t l = 0; if (!die_unsigned_constant_attribute(die, attr_name, l)) @@ -6262,29 +6269,6 @@ die_constant_attribute(const Dwarf_Die *die, return true; } -/// Test if a given attribute on a DIE has a particular form. -/// -/// @param die the DIE to consider. -/// -/// @param attr_name the attribute name to consider on DIE @p die. -/// -/// @param attr_form the attribute form that we expect attribute @p -/// attr_name has on DIE @p die. -/// -/// @return true iff the attribute named @p attr_name on DIE @p die -/// has the form @p attr_form. -static bool -die_attribute_has_form(const Dwarf_Die *die, - unsigned attr_name, - unsigned int attr_form) -{ - Dwarf_Attribute attr; - if (!dwarf_attr_integrate(const_cast(die), attr_name, &attr)) - return false; - - return dwarf_hasform(&attr, attr_form); -} - /// Test if a given DWARF form is DW_FORM_strx{1,4}. /// /// Unfortunaly, the DW_FORM_strx{1,4} are enumerators of an untagged @@ -6313,55 +6297,6 @@ form_is_DW_FORM_strx(unsigned form) return false; } -/// Test if a given DIE attribute is signed. -/// -/// @param die the DIE to consider. -/// -/// @param attr_name the attribute name to consider. -/// -/// @return true iff the attribute named @p attr_name on DIE @p die is -/// signed. -static bool -die_attribute_is_signed(const Dwarf_Die* die, unsigned attr_name) -{ - if (die_attribute_has_form(die, attr_name, DW_FORM_sdata)) - return true; - return false; -} - -/// Test if a given DIE attribute is unsigned. -/// -/// @param die the DIE to consider. -/// -/// @param attr_name the attribute name to consider. -/// -/// @return true iff the attribute named @p attr_name on DIE @p die is -/// unsigned. -static bool -die_attribute_is_unsigned(const Dwarf_Die* die, unsigned attr_name) -{ - if (die_attribute_has_form(die, attr_name, DW_FORM_udata)) - return true; - return false; -} - -/// Test if a given DIE attribute is neither explicitely signed nor -/// unsigned. Usually this is the case for attribute of the form -/// DW_FORM_data*. -/// -/// @param die the DIE to consider. -/// -/// @param attr_name the name of the attribute to consider. -/// -/// @return true iff the attribute named @p attr_name of DIE @p die is -/// neither specifically signed nor unsigned. -static bool -die_attribute_has_no_signedness(const Dwarf_Die *die, unsigned attr_name) -{ - return (!die_attribute_is_unsigned(die, attr_name) - && !die_attribute_is_signed(die, attr_name)); -} - /// Get the value of a DIE attribute; that value is meant to be a /// flag. /// @@ -6472,17 +6407,17 @@ die_die_attribute(const Dwarf_Die* die, return dwarf_formref_die(&attr, &result); } -/// Read and return a DW_FORM_addr attribute from a given DIE. +/// Read and return an addresss class attribute from a given DIE. /// /// @param die the DIE to consider. /// -/// @param attr_name the name of the DW_FORM_addr attribute to read +/// @param attr_name the name of the address class attribute to read /// the value from. /// /// @param the resulting address. /// /// @return true iff the attribute could be read, was of the expected -/// DW_FORM_addr and could thus be translated into the @p result. +/// address class and could thus be translated into the @p result. static bool die_address_attribute(Dwarf_Die* die, unsigned attr_name, Dwarf_Addr& result) { @@ -7551,9 +7486,9 @@ compare_dies_cu_decl_file(const Dwarf_Die* l, const Dwarf_Die *r, bool &result) /// @param expr_len the length of the resulting dwarf expression. /// This is set iff the function returns true. /// -/// @return true if the attribute exists and has a dwarf expression as -/// value. In that case the expr and expr_len arguments are set to -/// the resulting dwarf exprssion. +/// @return true if the attribute exists and has a non-empty dwarf expression +/// as value. In that case the expr and expr_len arguments are set to the +/// resulting dwarf expression. static bool die_location_expr(const Dwarf_Die* die, unsigned attr_name, @@ -7570,6 +7505,10 @@ die_location_expr(const Dwarf_Die* die, size_t len = 0; bool result = (dwarf_getlocation(&attr, expr, &len) == 0); + // Ignore location expressions where reading them succeeded but + // their length is 0. + result &= len > 0; + if (result) *expr_len = len; @@ -8575,7 +8514,8 @@ build_internal_anonymous_die_name(const string &base_name, /// be anonymous. static string build_internal_underlying_enum_type_name(const string &base_name, - bool is_anonymous = true) + bool is_anonymous, + uint64_t size) { std::ostringstream o; @@ -8584,7 +8524,7 @@ build_internal_underlying_enum_type_name(const string &base_name, else o << "enum-" << base_name; - o << "-underlying-type"; + o << "-underlying-type-" << size; return o.str(); } @@ -10906,7 +10846,8 @@ build_translation_unit_and_add_to_ir(read_context& ctxt, // unit. That is, it's going to be the union of all the translation // units of the same path. { - string abs_path = compilation_dir + "/" + path; + const string& abs_path = + compilation_dir.empty() ? path : compilation_dir + "/" + path; result = ctxt.current_corpus()->find_translation_unit(abs_path); } @@ -11140,7 +11081,8 @@ build_enum_underlying_type(read_context& ctxt, bool is_anonymous = true) { string underlying_type_name = - build_internal_underlying_enum_type_name(enum_name, is_anonymous); + build_internal_underlying_enum_type_name(enum_name, is_anonymous, + enum_size); type_decl_sptr result(new type_decl(ctxt.env(), underlying_type_name, enum_size, enum_size, location())); @@ -11781,8 +11723,7 @@ add_or_update_class_type(read_context& ctxt, decl_base::VISIBILITY_DEFAULT, is_anonymous)); - if (is_declaration_only) - result->set_is_declaration_only(true); + result->set_is_declaration_only(is_declaration_only); res = add_decl_to_scope(result, scope); result = dynamic_pointer_cast(res); @@ -11792,6 +11733,24 @@ add_or_update_class_type(read_context& ctxt, if (size) result->set_size_in_bits(size); + if (klass) + // We are amending a class that was built before. So let's check + // if we need to amend its "declaration-only-ness" status. + if (!!result->get_size_in_bits() == result->get_is_declaration_only()) + // The size of the class doesn't match its + // 'declaration-only-ness". We might have a non-zero sized + // class which is declaration-only, or a zero sized class that + // is not declaration-only. Let's set the declaration-only-ness + // according to what we are instructed to. + // + // Note however that there are binaries out there emitted by + // compilers (Clang, in C++) emit declarations-only classes that + // have non-zero size. So we must honor these too. That is why + // we are not forcing the declaration-only-ness to false when a + // class has non-zero size. An example of such binary is + // tests/data/test-diff-filter/test41-PR21486-abg-writer.llvm.o. + result->set_is_declaration_only(is_declaration_only); + result->set_is_artificial(is_artificial); ctxt.associate_die_to_type(die, result, where_offset); @@ -12173,7 +12132,11 @@ add_or_update_union_type(read_context& ctxt, location loc; die_loc_and_name(ctxt, &child, loc, n, m); - if (lookup_var_decl_in_scope(n, result)) + // Because we can be updating an existing union, let's + // make sure we don't already have a member of the same + // name. Anonymous member are handled a bit later below + // so let's not consider them here. + if (!n.empty() && lookup_var_decl_in_scope(n, result)) continue; ssize_t offset_in_bits = 0; @@ -12194,6 +12157,12 @@ add_or_update_union_type(read_context& ctxt, die_access_specifier(&child, access); var_decl_sptr dm(new var_decl(n, t, loc, m)); + // If dm is an anonymous data member, let's make sure + // the current union doesn't already have it as a data + // member. + if (n.empty() && result->find_data_member(dm)) + continue; + result->add_data_member(dm, access, /*is_laid_out=*/true, /*is_static=*/false, offset_in_bits); @@ -12369,53 +12338,59 @@ maybe_strip_qualification(const qualified_type_def_sptr t, // this function. result = is_decl(u); } - else if (is_array_of_qualified_element(u)) + else if (is_array_type(u) || is_typedef_of_array(u)) { - // In C and C++, a cv qualifiers of a qualified array apply to - // the array element type. So the qualifiers of the array can - // be dropped and applied to the element type. - // - // Here, the element type is qualified already. So apply the - // qualifiers of the array itself to the already qualified - // element type and drop the array qualifiers. - array_type_def_sptr array = is_array_type(u); - qualified_type_def_sptr element_type = - is_qualified_type(array->get_element_type()); - qualified_type_def::CV quals = element_type->get_cv_quals(); - quals |= t->get_cv_quals(); - element_type->set_cv_quals(quals); - result = is_decl(u); - if (u->get_canonical_type() - || element_type->get_canonical_type()) - // We shouldn't be editing types that were already - // canonicalized. For those, canonicalization should be - // delayed until after all editing is done. + array_type_def_sptr array; + scope_decl * scope = 0; + if ((array = is_array_type(u))) + { + scope = array->get_scope(); + ABG_ASSERT(scope); + array = is_array_type(clone_array_tree(array)); + add_decl_to_scope(array, scope); + t->set_underlying_type(array); + u = t->get_underlying_type(); + } + else if (is_typedef_of_array(u)) + { + scope = is_decl(u)->get_scope(); + ABG_ASSERT(scope); + typedef_decl_sptr typdef = + is_typedef(clone_array_tree(is_typedef(u))); + ABG_ASSERT(typdef); + add_decl_to_scope(typdef, scope); + t->set_underlying_type(typdef); + u = t->get_underlying_type(); + array = is_typedef_of_array(u); + } + else ABG_ASSERT_NOT_REACHED; - } - else if (is_array_type(u) && !is_array_of_qualified_element(is_array_type(u))) - { - // In C and C++, a cv qualifiers of a qualified array apply to - // the array element type. So the qualifiers of the array can - // be dropped and applied to the element type. - // - // Here, the element type is not qualified. So apply the - // qualifiers of the array itself to the element type and drop - // the array qualifiers. - array_type_def_sptr array = is_array_type(u); + + ABG_ASSERT(array); + // We should not be editing types that are already canonicalized. + ABG_ASSERT(!array->get_canonical_type()); type_base_sptr element_type = array->get_element_type(); - qualified_type_def_sptr qual_type - (new qualified_type_def(element_type, - t->get_cv_quals(), - t->get_location())); - add_decl_to_scope(qual_type, is_decl(element_type)->get_scope()); - array->set_element_type(qual_type); - ctxt.schedule_type_for_late_canonicalization(is_type(qual_type)); - result = is_decl(u); - if (u->get_canonical_type()) - // We shouldn't be editing types that were already - // canonicalized. For those, canonicalization should be - // delayed until after all editing is done. - ABG_ASSERT_NOT_REACHED; + + if (qualified_type_def_sptr qualified = is_qualified_type(element_type)) + { + // We should not be editing types that are already canonicalized. + ABG_ASSERT(!qualified->get_canonical_type()); + qualified_type_def::CV quals = qualified->get_cv_quals(); + quals |= t->get_cv_quals(); + qualified->set_cv_quals(quals); + result = is_decl(u); + } + else + { + qualified_type_def_sptr qual_type + (new qualified_type_def(element_type, + t->get_cv_quals(), + t->get_location())); + add_decl_to_scope(qual_type, is_decl(element_type)->get_scope()); + array->set_element_type(qual_type); + ctxt.schedule_type_for_late_canonicalization(is_type(qual_type)); + result = is_decl(u); + } } return result; @@ -12819,6 +12794,27 @@ build_subrange_type(read_context& ctxt, string name = die_name(die); + // load the underlying type. + Dwarf_Die underlying_type_die; + type_base_sptr underlying_type; + /* Unless there is an underlying type which says differently. */ + bool is_signed = false; + if (die_die_attribute(die, DW_AT_type, underlying_type_die)) + underlying_type = + is_type(build_ir_node_from_die(ctxt, + &underlying_type_die, + /*called_from_public_decl=*/true, + where_offset)); + + if (underlying_type) + { + uint64_t ate; + if (die_unsigned_constant_attribute (&underlying_type_die, + DW_AT_encoding, + ate)) + is_signed = (ate == DW_ATE_signed || ate == DW_ATE_signed_char); + } + translation_unit::language language = ctxt.cur_transl_unit()->get_language(); array_type_def::subrange_type::bound_value lower_bound = get_default_array_lower_bound(language); @@ -12835,10 +12831,10 @@ build_subrange_type(read_context& ctxt, // values of the subrange. // // So let's look for DW_AT_lower_bound first. - die_constant_attribute(die, DW_AT_lower_bound, lower_bound); + die_constant_attribute(die, DW_AT_lower_bound, is_signed, lower_bound); // Then, DW_AT_upper_bound. - if (!die_constant_attribute(die, DW_AT_upper_bound, upper_bound)) + if (!die_constant_attribute(die, DW_AT_upper_bound, is_signed, upper_bound)) { // The DWARF 4 spec says, in [5.11 Subrange Type // Entries]: @@ -12882,16 +12878,6 @@ build_subrange_type(read_context& ctxt, location())); result->is_infinite(is_infinite); - // load the underlying type. - Dwarf_Die underlying_type_die; - type_base_sptr underlying_type; - if (die_die_attribute(die, DW_AT_type, underlying_type_die)) - underlying_type = - is_type(build_ir_node_from_die(ctxt, - &underlying_type_die, - /*called_from_public_decl=*/true, - where_offset)); - if (underlying_type) result->set_underlying_type(underlying_type); diff --git a/src/abg-hash.cc b/src/abg-hash.cc index 5d2861f3..ca67689c 100644 --- a/src/abg-hash.cc +++ b/src/abg-hash.cc @@ -991,6 +991,11 @@ operator()(const shared_ptr t) const /// inheritance hierarchy, make sure to handle the most derived type /// first. /// +/// FIXME: This hashing function is not maintained and is surely +/// broken in subtle ways. In pratice, the various *::hash functors +/// should be audited before they are used here. They should all +/// match what is done in the 'equals' functions in abg-ir.cc. +/// /// @param t a pointer to the type declaration to be hashed /// /// @return the resulting hash diff --git a/src/abg-ir.cc b/src/abg-ir.cc index ca46ae2c..28cbf7ac 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc @@ -267,6 +267,10 @@ operator+(const std::string& s1, const interned_string& s2) namespace ir { + +static size_t +hash_as_canonical_type_or_constant(const type_base *t); + /// @brief the location of a token represented in its simplest form. /// Instances of this type are to be stored in a sorted vector, so the /// type must have proper relational operators. @@ -1881,12 +1885,13 @@ elf_symbol::add_alias(const elf_symbol_sptr& alias) elf_symbol_sptr elf_symbol::update_main_symbol(const std::string& name) { - - if (!has_aliases() || (is_main_symbol() && get_name() == name)) + ABG_ASSERT(is_main_symbol()); + if (!has_aliases() || get_name() == name) return get_main_symbol(); // find the new main symbol elf_symbol_sptr new_main; + // we've already checked this; check the rest of the aliases for (elf_symbol_sptr a = get_next_alias(); a.get() != this; a = a->get_next_alias()) if (a->get_name() == name) @@ -1899,8 +1904,8 @@ elf_symbol::update_main_symbol(const std::string& name) return get_main_symbol(); // now update all main symbol references - for (elf_symbol_sptr a = get_next_alias(); - a->get_main_symbol() != new_main; + priv_->main_symbol_ = new_main; + for (elf_symbol_sptr a = get_next_alias(); a.get() != this; a = a->get_next_alias()) a->priv_->main_symbol_ = new_main; @@ -2806,6 +2811,58 @@ is_ptr_ref_or_qual_type(const type_base *t) return false; } +/// A functor to sort decls somewhat topologically. That is, types +/// are sorted in a way that makes the ones that are defined "first" +/// to come first. +/// +/// The topological criteria is a lexicographic sort of the definition +/// location of the type. For types that have no location (or the +/// same location), it's their qualified name that is used for the +/// lexicographic sort. +struct decl_topo_comp +{ + + /// The "Less Than" comparison operator of this functor. + /// + /// @param f the first decl to be considered for the comparison. + /// + /// @param s the second decl to be considered for the comparison. + /// + /// @return true iff @p f is less than @p s. + bool + operator()(const decl_base *f, + const decl_base *s) + { + if (!!f != !!s) + return f && !s; + + if (!f) + return false; + + location fl = f->get_location(); + location sl = s->get_location(); + if (fl.get_value() != sl.get_value()) + return fl.get_value() < sl.get_value(); + + // We reach this point if location data is useless. + return (get_pretty_representation(f, true) + < get_pretty_representation(s, true)); + } + + /// The "Less Than" comparison operator of this functor. + /// + /// @param f the first decl to be considered for the comparison. + /// + /// @param s the second decl to be considered for the comparison. + /// + /// @return true iff @p f is less than @p s. + bool + operator()(const decl_base_sptr &f, + const decl_base_sptr &s) + {return operator()(f.get(), s.get());} + +}; // end struct decl_topo_comp + /// A functor to sort types somewhat topologically. That is, types /// are sorted in a way that makes the ones that are defined "first" /// to come first. @@ -2903,18 +2960,8 @@ struct type_topo_comp } // From this point, fd and sd should be non-nil - - location fl = fd->get_location(); - location sl = sd->get_location(); - if (fl.get_value() == sl.get_value()) - { - if (fl) - return fl.expand() < sl.expand(); - return (get_pretty_representation(f, true) - < get_pretty_representation(s, true)); - } - - return fl.get_value() < sl.get_value(); + decl_topo_comp decl_comp; + return decl_comp(fd, sd); } }; //end struct type_topo_comp @@ -5909,6 +5956,35 @@ peel_qualified_or_typedef_type(const type_base* type) return const_cast(type); } +/// Return the leaf underlying type of a qualified or typedef type. +/// +/// If the underlying type is itself a qualified or typedef type, then +/// recursively return the first underlying type of that qualified or +/// typedef type to return the first underlying type that is not a +/// qualified or typedef type. +/// +/// If the underlying type is NOT a qualified nor a typedef type, then +/// just return that underlying type. +/// +/// @param type the qualified or typedef type to consider. +/// +/// @return the leaf underlying type. +type_base_sptr +peel_qualified_or_typedef_type(const type_base_sptr &t) +{ + type_base_sptr type = t; + while (is_typedef(type) || is_qualified_type(type)) + { + if (typedef_decl_sptr t = is_typedef(type)) + type = peel_typedef_type(t); + + if (qualified_type_def_sptr t = is_qualified_type(type)) + type = peel_qualified_type(t); + } + + return type; +} + /// Return the leaf underlying or pointed-to type node of a @ref /// typedef_decl, @ref pointer_type_def or @ref reference_type_def /// node. @@ -5998,6 +6074,226 @@ peel_pointer_or_reference_type(const type_base *type, return const_cast(type); } +/// Clone an array type. +/// +/// Note that the element type of the new array is shared witht the +/// old one. +/// +/// @param array the array type to clone. +/// +/// @return a newly built array type. Note that it needs to be added +/// to a scope (e.g, using add_decl_to_scope) for its lifetime to be +/// bound to the one of that scope. Otherwise, its lifetime is bound +/// to the lifetime of its containing shared pointer. +array_type_def_sptr +clone_array(const array_type_def_sptr& array) +{ + vector subranges; + + for (vector::const_iterator i = + array->get_subranges().begin(); + i != array->get_subranges().end(); + ++i) + { + array_type_def::subrange_sptr subrange + (new array_type_def::subrange_type(array->get_environment(), + (*i)->get_name(), + (*i)->get_lower_bound(), + (*i)->get_upper_bound(), + (*i)->get_underlying_type(), + (*i)->get_location(), + (*i)->get_language())); + subrange->is_infinite((*i)->is_infinite()); + subranges.push_back(subrange); + } + + array_type_def_sptr result + (new array_type_def(array->get_element_type(), + subranges, array->get_location())); + + return result; +} + +/// Clone a typedef type. +/// +/// Note that the underlying type of the newly constructed typedef is +/// shared with the old one. +/// +/// @param t the typedef to clone. +/// +/// @return the newly constructed typedef. Note that it needs to be +/// added to a scope (e.g, using add_decl_to_scope) for its lifetime +/// to be bound to the one of that scope. Otherwise, its lifetime is +/// bound to the lifetime of its containing shared pointer. +typedef_decl_sptr +clone_typedef(const typedef_decl_sptr& t) +{ + if (!t) + return t; + + typedef_decl_sptr result + (new typedef_decl(t->get_name(), t->get_underlying_type(), + t->get_location(), t->get_linkage_name(), + t->get_visibility())); + return result; +} + +/// Clone a qualifiend type. +/// +/// Note that underlying type of the newly constructed qualified type +/// is shared with the old one. +/// +/// @param t the qualified type to clone. +/// +/// @return the newly constructed qualified type. Note that it needs +/// to be added to a scope (e.g, using add_decl_to_scope) for its +/// lifetime to be bound to the one of that scope. Otherwise, its +/// lifetime is bound to the lifetime of its containing shared +/// pointer. +qualified_type_def_sptr +clone_qualified_type(const qualified_type_def_sptr& t) +{ + if (!t) + return t; + + qualified_type_def_sptr result + (new qualified_type_def(t->get_underlying_type(), + t->get_cv_quals(), t->get_location())); + + return result; +} + +/// Clone a typedef, an array or a qualified tree. +/// +/// @param type the typedef, array or qualified tree to clone. any +/// order. +/// +/// @return the cloned type, or NULL if @type was neither a typedef, +/// array nor a qualified type. +static type_base_sptr +clone_typedef_array_qualified_type(type_base_sptr type) +{ + if (!type) + return type; + + scope_decl* scope = is_decl(type) ? is_decl(type)->get_scope() : 0; + type_base_sptr result; + + if (typedef_decl_sptr t = is_typedef(type)) + result = clone_typedef(is_typedef(t)); + else if (qualified_type_def_sptr t = is_qualified_type(type)) + result = clone_qualified_type(t); + else if (array_type_def_sptr t = is_array_type(type)) + result = clone_array(t); + else + return type_base_sptr(); + + if (scope) + add_decl_to_scope(is_decl(result), scope); + + return result; +} + +/// Clone a type tree made of an array or a typedef of array. +/// +/// Note that this can be a tree which root node is a typedef an which +/// sub-tree can be any arbitrary combination of typedef, qualified +/// type and arrays. +/// +/// @param t the array or typedef of qualified array to consider. +/// +/// @return a clone of @p t. +type_base_sptr +clone_array_tree(const type_base_sptr t) +{ + ABG_ASSERT(is_typedef_of_array(t) || is_array_type(t)); + + scope_decl* scope = is_decl(t)->get_scope(); + type_base_sptr result = clone_typedef_array_qualified_type(t); + ABG_ASSERT(is_typedef_of_array(result) || is_array_type(result)); + + type_base_sptr subtree; + if (typedef_decl_sptr type = is_typedef(result)) + { + type_base_sptr s = + clone_typedef_array_qualified_type(type->get_underlying_type()); + if (s) + { + subtree = s; + type->set_underlying_type(subtree); + } + } + else if (array_type_def_sptr type = is_array_type(result)) + { + type_base_sptr s = + clone_typedef_array_qualified_type(type->get_element_type()); + if (s) + { + subtree = s; + type->set_element_type(subtree); + } + } + add_decl_to_scope(is_decl(subtree), scope); + + for (;;) + { + if (typedef_decl_sptr t = is_typedef(subtree)) + { + type_base_sptr s = + clone_typedef_array_qualified_type(t->get_underlying_type()); + if (s) + { + scope_decl* scope = + is_decl(t->get_underlying_type())->get_scope(); + ABG_ASSERT(scope); + add_decl_to_scope(is_decl(s), scope); + t->set_underlying_type (s); + subtree = s; + } + else + break; + } + else if (qualified_type_def_sptr t = is_qualified_type(subtree)) + { + type_base_sptr s = + clone_typedef_array_qualified_type(t->get_underlying_type()); + if (s) + { + scope_decl* scope = + is_decl(t->get_underlying_type())->get_scope(); + ABG_ASSERT(scope); + add_decl_to_scope(is_decl(s), scope); + t->set_underlying_type(s); + subtree = s; + } + else + break; + } + else if (array_type_def_sptr t = is_array_type(subtree)) + { + type_base_sptr e = t->get_element_type(); + if (is_typedef(e) || is_qualified_type(e)) + { + type_base_sptr s = + clone_typedef_array_qualified_type(e); + if (s) + { + scope_decl* scope = is_decl(e)->get_scope(); + ABG_ASSERT(scope); + add_decl_to_scope(is_decl(s), scope); + t->set_element_type(s); + } + else + break; + } + break; + } + else + break; + } + return result; +} + /// Update the qualified name of a given sub-tree. /// /// @param d the sub-tree for which to update the qualified name. @@ -6038,6 +6334,7 @@ canonical_type_hash::operator()(const type_base *l) const struct scope_decl::priv { declarations members_; + declarations sorted_members_; scopes member_scopes_; canonical_type_sptr_set_type canonical_types_; type_base_sptrs_type sorted_canonical_types_; @@ -6104,9 +6401,9 @@ scope_decl::get_sorted_canonical_types() const priv_->sorted_canonical_types_.push_back(*e); type_topo_comp comp; - std::sort(priv_->sorted_canonical_types_.begin(), - priv_->sorted_canonical_types_.end(), - comp); + std::stable_sort(priv_->sorted_canonical_types_.begin(), + priv_->sorted_canonical_types_.end(), + comp); } return priv_->sorted_canonical_types_; } @@ -6129,6 +6426,29 @@ scope_decl::declarations& scope_decl::get_member_decls() {return priv_->members_;} +/// Getter for the sorted member declarations carried by the current +/// @ref scope_decl. +/// +/// @return the sorted member declarations carried by the current @ref +/// scope_decl. The declarations are sorted topologically. +const scope_decl::declarations& +scope_decl::get_sorted_member_decls() const +{ + decl_topo_comp comp; + if (priv_->sorted_members_.empty()) + { + for (declarations::const_iterator i = get_member_decls().begin(); + i != get_member_decls().end(); + ++i) + priv_->sorted_members_.push_back(*i); + + std::stable_sort(priv_->sorted_members_.begin(), + priv_->sorted_members_.end(), + comp); + } + return priv_->sorted_members_; +} + /// Getter for the number of anonymous classes contained in this /// scope. /// @@ -6918,6 +7238,39 @@ interned_string get_type_name(const type_base_sptr& t, bool qualified, bool internal) {return get_type_name(t.get(), qualified, internal);} +/// Return the generic internal name of an anonymous type. +/// +/// For internal purposes, we want to define a generic name for all +/// anonymous types of a certain kind. For instance, all anonymous +/// structs will be have a generic name of "__anonymous_struct__", all +/// anonymous unions will have a generic name of +/// "__anonymous_union__", etc. +/// +/// That generic name can be used as a hash to put all anonymous types +/// of a certain kind in the same hash table bucket, for instance. +static interned_string +get_generic_anonymous_internal_type_name(const decl_base *d) +{ + ABG_ASSERT(d); + + const environment *env = d->get_environment(); + + interned_string result; + if (is_class_type(d)) + result = + env->intern(tools_utils::get_anonymous_struct_internal_name_prefix()); + else if (is_union_type(d)) + result = + env->intern(tools_utils::get_anonymous_union_internal_name_prefix()); + else if (is_enum_type(d)) + result = + env->intern(tools_utils::get_anonymous_enum_internal_name_prefix()); + else + ABG_ASSERT_NOT_REACHED; + + return result; +} + /// Get the name of a given type and return a copy of it. /// /// @param t the type to consider. @@ -6942,6 +7295,13 @@ get_type_name(const type_base* t, bool qualified, bool internal) ABG_ASSERT(fn_type); return fn_type->get_cached_name(internal); } + + // All anonymous types of a given kind get to have the same internal + // name for internal purpose. This to allow them to be compared + // among themselves during type canonicalization. + if (internal && d->get_is_anonymous()) + return get_generic_anonymous_internal_type_name(d); + if (qualified) return d->get_qualified_name(internal); return d->get_name(); @@ -8693,7 +9053,7 @@ is_array_of_qualified_element(const array_type_def_sptr& array) /// @return true the array @p type iff it's an array to a qualified /// element type. array_type_def_sptr -is_array_of_qualified_element(type_base_sptr& type) +is_array_of_qualified_element(const type_base_sptr& type) { if (array_type_def_sptr array = is_array_type(type)) if (is_array_of_qualified_element(array)) @@ -8702,6 +9062,34 @@ is_array_of_qualified_element(type_base_sptr& type) return array_type_def_sptr(); } +/// Test if a type is a typedef of an array. +/// +/// Note that the function looks through qualified and typedefs types +/// of the underlying type of the current typedef. In other words, if +/// we are looking at a typedef of a CV-qualified array, or at a +/// typedef of a CV-qualified typedef of an array, this function will +/// still return TRUE. +/// +/// @param t the type to consider. +/// +/// @return true if t is a typedef which underlying type is an array. +/// That array might be either cv-qualified array or a typedef'ed +/// array, or a combination of both. +array_type_def_sptr +is_typedef_of_array(const type_base_sptr& t) +{ + array_type_def_sptr result; + + if (typedef_decl_sptr typdef = is_typedef(t)) + { + type_base_sptr u = + peel_qualified_or_typedef_type(typdef->get_underlying_type()); + result = is_array_type(u); + } + + return result; +} + /// Test if a type is an array_type_def::subrange_type. /// /// @param type the type to consider. @@ -13707,10 +14095,17 @@ qualified_type_def::get_cv_quals_string_prefix() const {return get_string_representation_of_cv_quals(priv_->cv_quals_);} /// Getter of the underlying type -shared_ptr +type_base_sptr qualified_type_def::get_underlying_type() const {return priv_->underlying_type_.lock();} +/// Setter of the underlying type. +/// +/// @param t the new underlying type. +void +qualified_type_def::set_underlying_type(const type_base_sptr& t) +{priv_->underlying_type_ = t;} + /// Non-member equality operator for @ref qualified_type_def /// /// @param l the left-hand side of the equality operator @@ -14461,12 +14856,14 @@ struct array_type_def::subrange_type::priv priv(bound_value lb, bound_value ub, translation_unit::language l = translation_unit::LANG_C11) - : lower_bound_(lb), upper_bound_(ub), language_(l) + : lower_bound_(lb), upper_bound_(ub), + language_(l), infinite_(false) {} priv(bound_value lb, bound_value ub, const type_base_sptr &u, translation_unit::language l = translation_unit::LANG_C11) - : lower_bound_(lb), upper_bound_(ub), underlying_type_(u), language_(l) + : lower_bound_(lb), upper_bound_(ub), underlying_type_(u), + language_(l), infinite_(false) {} }; @@ -14488,7 +14885,7 @@ array_type_def::subrange_type::subrange_type(const environment* env, const string& name, bound_value lower_bound, bound_value upper_bound, - type_base_sptr& underlying_type, + const type_base_sptr& utype, const location& loc, translation_unit::language l) : type_or_decl_base(env, ABSTRACT_TYPE_BASE | ABSTRACT_DECL_BASE), @@ -14497,7 +14894,7 @@ array_type_def::subrange_type::subrange_type(const environment* env, - lower_bound.get_unsigned_value(), 0), decl_base(env, name, loc, ""), - priv_(new priv(lower_bound, upper_bound, underlying_type, l)) + priv_(new priv(lower_bound, upper_bound, utype, l)) { runtime_type_instance(this); } @@ -15878,9 +16275,11 @@ equals(const typedef_decl& l, const typedef_decl& r, change_kind* k) if (*l.get_underlying_type() != *r.get_underlying_type()) { + // Changes to the underlying type of a typedef are considered + // local, a bit like for pointers. result = false; if (k) - *k |= SUBTYPE_CHANGE_KIND; + *k |= LOCAL_TYPE_CHANGE_KIND; else return false; } @@ -15948,6 +16347,13 @@ type_base_sptr typedef_decl::get_underlying_type() const {return priv_->underlying_type_.lock();} +/// Setter ofthe underlying type of the typedef. +/// +/// @param t the new underlying type of the typedef. +void +typedef_decl::set_underlying_type(const type_base_sptr& t) +{priv_->underlying_type_ = t;} + /// This implements the ir_traversable_base::traverse pure virtual /// function. /// @@ -16874,24 +17280,11 @@ equals(const function_type& lhs, RETURN(result); } - class_decl* lcl = 0, * rcl = 0; vector >::const_iterator i,j; - for (i = lhs.get_first_non_implicit_parm(), - j = rhs.get_first_non_implicit_parm(); - (i != lhs.get_parameters().end() - && j != rhs.get_parameters().end()); + for (i = lhs.get_first_parm(), j = rhs.get_first_parm(); + i != lhs.get_parameters().end() && j != rhs.get_parameters().end(); ++i, ++j) { - if (lhs_class) - lcl = dynamic_cast((*i)->get_type().get()); - if (rhs_class) - rcl = dynamic_cast((*j)->get_type().get()); - if (lcl && rcl - && lcl == lhs_class - && rcl == rhs_class) - // Do not compare the class types of two methods that we are - // probably comparing atm; otherwise we can recurse indefinitely. - continue; if (**i != **j) { result = false; @@ -16922,12 +17315,12 @@ equals(const function_type& lhs, #undef RETURN } -/// Get the parameter of the function. +/// Get the first parameter of the function. /// /// If the function is a non-static member function, the parameter /// returned is the first one following the implicit 'this' parameter. /// -/// @return the first non implicit parm. +/// @return the first non implicit parameter of the function. function_type::parameters::const_iterator function_type::get_first_non_implicit_parm() const { @@ -16944,6 +17337,16 @@ function_type::get_first_non_implicit_parm() const return i; } +/// Get the first parameter of the function. +/// +/// Note that if the function is a non-static member function, the +/// parameter returned is the implicit 'this' parameter. +/// +/// @return the first parameter of the function. +function_type::parameters::const_iterator +function_type::get_first_parm() const +{return get_parameters().begin();} + /// Get the name of the current @ref function_type. /// /// The name is retrieved from a cache. If the cache is empty, this @@ -20060,20 +20463,7 @@ class_decl::get_pretty_representation(bool internal, // if an anonymous class is named by a typedef, then consider that // it has a name, which is the typedef name. if (get_is_anonymous()) - { - if (internal) - { - if (typedef_decl_sptr d = get_naming_typedef()) - { - string qualified_name = - decl_base::priv_->qualified_parent_name_ + "::" + d->get_name(); - return cl + qualified_name; - } - } - else - return get_class_or_union_flat_representation(this, "", - /*one_line=*/true); - } + return get_class_or_union_flat_representation(this, "",/*one_line=*/true); string result = cl; if (qualified_name) @@ -20557,53 +20947,45 @@ struct virtual_member_function_less_than ABG_ASSERT(get_member_function_is_virtual(f)); ABG_ASSERT(get_member_function_is_virtual(s)); - if (get_member_function_vtable_offset(f) - == get_member_function_vtable_offset(s)) - { - string fn, sn; + ssize_t f_offset = get_member_function_vtable_offset(f); + ssize_t s_offset = get_member_function_vtable_offset(s); + if (f_offset != s_offset) return f_offset < s_offset; - // If the functions have symbols, then compare their symbol-id - // string. - if (f.get_symbol() && s.get_symbol()) - { - fn = f.get_symbol()->get_id_string(); - sn = s.get_symbol()->get_id_string(); - } - else if (f.get_symbol()) - return false; - else if (s.get_symbol()) - return true; - else - { - // None of the functions have symbols, so compare their - // pretty representation. - if (fn.empty()) - { - fn = f.get_pretty_representation(); - sn = s.get_pretty_representation(); - } - } + string fn, sn; - /// If it's just the file paths that are different then sort - /// them too. - if (fn == sn) - { - string fn_filepath, sn_filepath; - unsigned line = 0, column = 0; - location fn_loc = f.get_location(), sn_loc = s.get_location(); - if (fn_loc) - fn_loc.expand(fn_filepath, line, column); - if (sn_loc) - sn_loc.expand(sn_filepath, line, column); - - if (!fn_filepath.empty() && !sn_filepath.empty()) - return fn_filepath < sn_filepath; - } - return fn < sn; + // If the functions have symbols, then compare their symbol-id + // string. + elf_symbol_sptr f_sym = f.get_symbol(); + elf_symbol_sptr s_sym = s.get_symbol(); + if ((!f_sym) != (!s_sym)) return !f_sym; + if (f_sym && s_sym) + { + fn = f_sym->get_id_string(); + sn = s_sym->get_id_string(); + if (fn != sn) return fn < sn; } - return (get_member_function_vtable_offset(f) - < get_member_function_vtable_offset(s)); + // Try the linkage names (important for destructors). + fn = f.get_linkage_name(); + sn = s.get_linkage_name(); + if (fn != sn) return fn < sn; + + // None of the functions have symbols or linkage names that + // distinguish them, so compare their pretty representation. + fn = f.get_pretty_representation(); + sn = s.get_pretty_representation(); + if (fn != sn) return fn < sn; + + /// If it's just the file paths that are different then sort them + /// too. + string fn_filepath, sn_filepath; + unsigned line = 0, column = 0; + location fn_loc = f.get_location(), sn_loc = s.get_location(); + if (fn_loc) + fn_loc.expand(fn_filepath, line, column); + if (sn_loc) + sn_loc.expand(sn_filepath, line, column); + return fn_filepath < sn_filepath; } /// The less than operator. First, it sorts the methods by their @@ -20630,7 +21012,7 @@ static void sort_virtual_member_functions(class_decl::member_functions& mem_fns) { virtual_member_function_less_than lt; - std::sort(mem_fns.begin(), mem_fns.end(), lt); + std::stable_sort(mem_fns.begin(), mem_fns.end(), lt); } /// Add a member function to the current instance of @ref class_or_union. @@ -21845,7 +22227,7 @@ union_decl::get_pretty_representation(bool internal, bool qualified_name) const { string repr; - if (get_is_anonymous() && !internal) + if (get_is_anonymous()) repr = get_class_or_union_flat_representation(this, "", /*one_line=*/true); else @@ -23051,36 +23433,7 @@ hash_type_or_decl(const type_or_decl_base *tod) if (tod == 0) ; else if (const type_base* t = is_type(tod)) - { - // If the type has a canonical type, then use the pointer value - // as a hash. This is the fastest we can get. - if (type_base* ct = t->get_naked_canonical_type()) - result = reinterpret_cast(ct); - else if (const class_decl* cl = is_class_type(t)) - { - if (cl->get_is_declaration_only() - && cl->get_naked_definition_of_declaration()) - // The is a declaration-only class, so it has no canonical - // type; but then it's class definition has one. Let's - // use that one. - return hash_type_or_decl(cl->get_naked_definition_of_declaration()); - else - { - // The class really has no canonical type, let's use the - // slow path of hashing the class recursively. Well - // it's not that slow as the hash value is quickly going - // to result to zero anyway. - type_base::dynamic_hash hash; - result = hash(t); - } - } - else - { - // Let's use the slow path of hashing the class recursively. - type_base::dynamic_hash hash; - result = hash(t); - } - } + result = hash_type(t); else if (const decl_base* d = is_decl(tod)) { if (var_decl* v = is_var_decl(d)) @@ -23153,41 +23506,7 @@ hash_type_or_decl(const type_or_decl_base *tod) /// @return the resulting hash value. size_t hash_type(const type_base *t) -{ - size_t result = 0; - - // If the type has a canonical type, then use the pointer value - // as a hash. This is the fastest we can get. - if (type_base* ct = t->get_naked_canonical_type()) - result = reinterpret_cast(ct); - else if (const class_decl* cl = is_class_type(t)) - { - if (cl->get_is_declaration_only() - && cl->get_naked_definition_of_declaration()) - // The is a declaration-only class, so it has no canonical - // type; but then it's class definition has one. Let's - // use that one. - return hash_type - (is_class_type(cl->get_naked_definition_of_declaration())); - else - { - // The class really has no canonical type, let's use the - // slow path of hashing the class recursively. Well - // it's not that slow as the hash value is quickly going - // to result to zero anyway. - type_base::dynamic_hash hash; - result = hash(t); - } - } - else - { - // Let's use the slow path of hashing the class recursively. - type_base::dynamic_hash hash; - result = hash(t); - } - - return result; -} +{return hash_as_canonical_type_or_constant(t);} /// Hash an ABI artifact that is either a type of a decl. /// @@ -23198,6 +23517,47 @@ size_t hash_type_or_decl(const type_or_decl_base_sptr& tod) {return hash_type_or_decl(tod.get());} +/// Hash a type by either returning the pointer value of its canonical +/// type or by returning a constant if the type doesn't have a +/// canonical type. +/// +/// This is a subroutine of hash_type. +/// +/// @param t the type to consider. +/// +/// @return the hash value. +static size_t +hash_as_canonical_type_or_constant(const type_base *t) +{ + type_base *canonical_type = 0; + + if (t) + canonical_type = t->get_naked_canonical_type(); + + if (!canonical_type) + { + // If the type doesn't have a canonical type, maybe it's because + // it's a declaration-only type? If that's the case, let's try + // to get the canonical type of the definition of this + // declaration. + decl_base *decl = is_decl(t); + if (decl + && decl->get_is_declaration_only() + && decl->get_naked_definition_of_declaration()) + { + type_base *definition = + is_type(decl->get_naked_definition_of_declaration()); + ABG_ASSERT(definition); + canonical_type = definition->get_naked_canonical_type(); + } + } + + if (canonical_type) + return reinterpret_cast(canonical_type); + + return 0xDEADBABE; +} + /// Test if the pretty representation of a given @ref function_decl is /// lexicographically less then the pretty representation of another /// @ref function_decl. @@ -23273,10 +23633,10 @@ types_have_similar_structure(const type_base_sptr& first, /// /// typedef are resolved to their definitions; their names are ignored. /// -/// Two indirect types (pointers or references) have similar structure -/// if their underlying types are of the same kind and have the same -/// name. In the indirect types case, the size of the underlying type -/// does not matter. +/// Two indirect types (pointers, references or arrays) have similar +/// structure if their underlying types are of the same kind and have +/// the same name. In the indirect types case, the size of the +/// underlying type does not matter. /// /// Two direct types (i.e, non indirect) have a similar structure if /// they have the same kind, name and size. Two class types have @@ -23287,7 +23647,9 @@ types_have_similar_structure(const type_base_sptr& first, /// /// @param second the second type to consider. /// -/// @param indirect_type whether to do an indirect comparison +/// @param indirect_type if true, then consider @p first and @p +/// second as being underlying types of indirect types. Meaning that +/// their size does'nt matter. /// /// @return true iff @p first and @p second have similar structures. bool @@ -23316,7 +23678,7 @@ types_have_similar_structure(const type_base* first, const pointer_type_def* ty2 = is_pointer_type(second); return types_have_similar_structure(ty1->get_pointed_to_type(), ty2->get_pointed_to_type(), - true); + /*indirect_type=*/true); } // Peel off matching references. @@ -23327,7 +23689,7 @@ types_have_similar_structure(const type_base* first, return false; return types_have_similar_structure(ty1->get_pointed_to_type(), ty2->get_pointed_to_type(), - true); + /*indirect_type=*/true); } if (const type_decl* ty1 = is_type_decl(first)) @@ -23405,7 +23767,7 @@ types_have_similar_structure(const type_base* first, || ty1->get_dimension_count() != ty2->get_dimension_count() || !types_have_similar_structure(ty1->get_element_type(), ty2->get_element_type(), - indirect_type)) + /*indirect_type=*/true)) return false; return true; diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc index b6e21206..67ec5001 100644 --- a/src/abg-leaf-reporter.cc +++ b/src/abg-leaf-reporter.cc @@ -253,7 +253,9 @@ leaf_reporter::report(const typedef_diff& d, if (!diff_to_be_reported(&d)) return; - report_local_typedef_changes(d, out, indent); + // all changes carried by a typedef_diff are considered local, so + // let's just call the default reporter here. + default_reporter::report(d, out, indent); maybe_report_interfaces_impacted_by_diff(&d, out, indent); } diff --git a/src/abg-reader.cc b/src/abg-reader.cc index 4d3db686..2e13f7ee 100644 --- a/src/abg-reader.cc +++ b/src/abg-reader.cc @@ -4931,7 +4931,7 @@ build_union_decl(read_context& ctxt, if (var_decl_sptr v = build_var_decl(ctxt, p, /*add_to_cur_scope=*/false)) { - if (decl->find_data_member(v->get_name())) + if (decl->find_data_member(v)) { // We are in updating mode and the current // version of this class already has this data diff --git a/src/abg-suppression.cc b/src/abg-suppression.cc index ae7cc95c..0d8604a6 100644 --- a/src/abg-suppression.cc +++ b/src/abg-suppression.cc @@ -725,6 +725,7 @@ type_suppression::suppresses_diff(const diff* diff) const if (!d) // This might be of, e.g, distinct_diff type. return false; + d = is_type_diff(peel_qualified_diff(d)); } else return false; @@ -737,6 +738,7 @@ type_suppression::suppresses_diff(const diff* diff) const if (!d) // This might be of, e.g, distinct_diff type. return false; + d = is_type_diff(peel_qualified_diff(d)); } else return false; @@ -747,11 +749,13 @@ type_suppression::suppresses_diff(const diff* diff) const { d = is_type_diff(ptr_diff->underlying_type_diff().get()); ABG_ASSERT(d); + d = is_type_diff(peel_qualified_diff(d)); } else if (const reference_diff* ref_diff = is_reference_diff(diff)) { d = is_type_diff(ref_diff->underlying_type_diff().get()); ABG_ASSERT(d); + d = is_type_diff(peel_qualified_diff(d)); } else return false; diff --git a/src/abg-tools-utils.cc b/src/abg-tools-utils.cc index b3cee850..428dcc6b 100644 --- a/src/abg-tools-utils.cc +++ b/src/abg-tools-utils.cc @@ -1842,12 +1842,44 @@ handle_fts_entry(const FTSENT *entry, } } +/// Populate a type_supression from header files found in a given +/// directory tree. +/// +/// The suppression suppresses types defined in source files that are +/// *NOT* found in the directory tree. +/// +/// This is a subroutine for gen_suppr_spect_from_headers. +/// +/// @param headers_root_dir the directory tree to consider for header +/// files. +/// +/// @param result the type_supression to populate from the content of +/// @p headers_root_dir. +static void +gen_suppr_spec_from_headers_root_dir(const string& headers_root_dir, + type_suppression_sptr &result) +{ + if (!headers_root_dir.empty()) + { + char* paths[] = {const_cast(headers_root_dir.c_str()), 0}; + + if (FTS *file_hierarchy = fts_open(paths, FTS_LOGICAL|FTS_NOCHDIR, NULL)) + { + FTSENT *entry; + while ((entry = fts_read(file_hierarchy))) + handle_fts_entry(entry, result); + fts_close(file_hierarchy); + } + } +} + /// Generate a type suppression specification that suppresses ABI /// changes for types defined in source files that are neither in a -/// given header root dir, not in a set of header files. +/// given set of header root directories nor in a set of header +/// files. /// -/// @param headers_root_dir ABI changes in types defined in files -/// *NOT* found in this directory tree are going be suppressed. +/// @param headers_root_dirs ABI changes in types defined in files +/// *NOT* found in these directory trees are going be suppressed. /// /// @param header_files a set of additional header files that define /// types that are to be kept (not supressed) by the returned type @@ -1856,29 +1888,15 @@ handle_fts_entry(const FTSENT *entry, /// @return the resulting type suppression generated, if any file was /// found in the directory tree @p headers_root_dir. type_suppression_sptr -gen_suppr_spec_from_headers(const string& headers_root_dir, +gen_suppr_spec_from_headers(const vector& headers_root_dirs, const vector& header_files) { type_suppression_sptr result; - if (headers_root_dir.empty() && header_files.empty()) - // We were given no headers root dir and no header files - // so the resulting suppression specification shall be empty. - return result; - - if (!headers_root_dir.empty()) - { - char* paths[] = {const_cast(headers_root_dir.c_str()), 0}; - - FTS *file_hierarchy = fts_open(paths, FTS_LOGICAL|FTS_NOCHDIR, NULL); - if (!file_hierarchy) - return result; - - FTSENT *entry; - while ((entry = fts_read(file_hierarchy))) - handle_fts_entry(entry, result); - fts_close(file_hierarchy); - } + for (vector::const_iterator root_dir = headers_root_dirs.begin(); + root_dir != headers_root_dirs.end(); + ++root_dir) + gen_suppr_spec_from_headers_root_dir(*root_dir, result); for (vector::const_iterator file = header_files.begin(); file != header_files.end(); @@ -1888,6 +1906,32 @@ gen_suppr_spec_from_headers(const string& headers_root_dir, return result; } +/// Generate a type suppression specification that suppresses ABI +/// changes for types defined in source files that are neither in a +/// given header root dir, not in a set of header files. +/// +/// @param headers_root_dir ABI changes in types defined in files +/// *NOT* found in this directory tree are going be suppressed. +/// +/// @param header_files a set of additional header files that define +/// types that are to be kept (not supressed) by the returned type +/// suppression. +/// +/// @return the resulting type suppression generated, if any file was +/// found in the directory tree @p headers_root_dir. +type_suppression_sptr +gen_suppr_spec_from_headers(const string& headers_root_dir, + const vector& header_files) +{ + type_suppression_sptr result; + vector root_dirs; + + if (!headers_root_dir.empty()) + root_dirs.push_back(headers_root_dir); + + return gen_suppr_spec_from_headers(root_dirs, header_files); +} + /// Generate a type suppression specification that suppresses ABI /// changes for types defined in source files that are not in a given /// header root dir. @@ -1910,8 +1954,8 @@ gen_suppr_spec_from_headers(const string& headers_root_dir) /// /// A kernel ABI whitelist file is an INI file that usually has only /// one section. The name of the section is a string that ends up -/// with the sub-string "whitelist". For instance -/// RHEL7_x86_64_whitelist. +/// with the sub-string "symbol_list" or "whitelist". For instance +/// RHEL7_x86_64_symbol_list. /// /// Then the content of the section is a set of function or variable /// names, one name per line. Each function or variable name is the @@ -1957,7 +2001,8 @@ gen_suppr_spec_from_kernel_abi_whitelists ++section_iter) { std::string section_name = (*section_iter)->get_name(); - if (!string_ends_with(section_name, "whitelist")) + if (!string_ends_with(section_name, "symbol_list") + && !string_ends_with(section_name, "whitelist")) continue; for (ini::config::properties_type::const_iterator prop_iter = (*section_iter)->get_properties().begin(), @@ -2414,17 +2459,15 @@ get_vmlinux_path_from_kernel_dist(const string& from, if (!dir_exists(from)) return false; - // For now, we assume either an Enterprise Linux or a Fedora kernel - // distribution directory. - // - // We also take into account split debug info package for these. In - // this case, the content split debug info package is installed - // under the 'dist_root' directory as well, and its content is - // accessible from /usr/lib/debug directory. + // For now, we assume the possibility of having either an Enterprise + // Linux or a Fedora kernel distribution directory. In those cases, + // the vmlinux binary is located under the /lib/modules + // sub-directory. So we might as well save some time by picking it + // from there directly. string dist_root = from; if (dir_exists(dist_root + "/lib/modules")) - dist_root + "/lib/modules"; + dist_root += "/lib/modules"; bool found = false; if (find_vmlinux_path(dist_root, vmlinux_path)) diff --git a/src/abg-writer.cc b/src/abg-writer.cc index 23dbf384..c3124621 100644 --- a/src/abg-writer.cc +++ b/src/abg-writer.cc @@ -1738,10 +1738,28 @@ write_elf_symbol_aliases(const elf_symbol& sym, ostream& out) static bool write_elf_symbol_reference(const elf_symbol& sym, ostream& o) { - auto actual_sym = &sym; - while (actual_sym->is_suppressed() && actual_sym->has_aliases()) - actual_sym = actual_sym->get_next_alias().get(); - o << " elf-symbol-id='" << actual_sym->get_id_string() << "'"; + const elf_symbol* main = sym.get_main_symbol().get(); + const elf_symbol* alias = &sym; + bool found = !alias->is_suppressed(); + // If the symbol itself is suppressed, check the alias chain. + if (!found) + { + alias = main; + found = !alias->is_suppressed(); + } + // If main sym is suppressed, search the remainder of the chain. + while (!found) + { + alias = alias->get_next_alias().get(); + // Two separate termination conditions at present. + if (!alias || alias == main) + break; + found = !alias->is_suppressed(); + } + // If all aliases are suppressed, just stick with main sym. + if (!found) + alias = main; + o << " elf-symbol-id='" << alias->get_id_string() << "'"; return true; } @@ -2275,7 +2293,7 @@ write_translation_unit(write_context& ctxt, typedef scope_decl::declarations declarations; typedef declarations::const_iterator const_iterator; - const declarations& d = tu.get_global_scope()->get_member_decls(); + const declarations& d = tu.get_global_scope()->get_sorted_member_decls(); for (const_iterator i = d.begin(); i != d.end(); ++i) { diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index d420418b..86f69755 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -178,9 +178,27 @@ test-abidiff-exit/test-net-change-report0.txt \ test-abidiff-exit/test-net-change-report1.txt \ test-abidiff-exit/test-net-change-report2.txt \ test-abidiff-exit/test-net-change-report3.txt \ +test-abidiff-exit/test-headers-dirs/headers-a/header-a-v0.h \ +test-abidiff-exit/test-headers-dirs/headers-a/header-a-v1.h \ +test-abidiff-exit/test-headers-dirs/headers-b/header-b-v0.h \ +test-abidiff-exit/test-headers-dirs/headers-b/header-b-v1.h \ +test-abidiff-exit/test-headers-dirs/test-headers-dir-report-1.txt \ +test-abidiff-exit/test-headers-dirs/test-headers-dir-report-2.txt \ +test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.c \ +test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.o \ +test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.c \ +test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.o \ +test-abidiff-exit/test-non-leaf-array-v0.c \ +test-abidiff-exit/test-non-leaf-array-v0.o \ +test-abidiff-exit/test-non-leaf-array-v1.c \ +test-abidiff-exit/test-non-leaf-array-v1.o \ +test-abidiff-exit/test-non-leaf-array-report.txt \ test-abidiff-exit/test-missing-alias-report.txt \ test-abidiff-exit/test-missing-alias.abi \ test-abidiff-exit/test-missing-alias.suppr \ +test-abidiff-exit/test-crc-report.txt \ +test-abidiff-exit/test-crc-v0.abi \ +test-abidiff-exit/test-crc-v1.abi \ \ test-diff-dwarf/test0-v0.cc \ test-diff-dwarf/test0-v0.o \ @@ -519,6 +537,14 @@ test-read-dwarf/PR26261/PR26261-exe \ test-read-dwarf/PR26261/PR26261-main.c \ test-read-dwarf/PR26261/PR26261-obja.h \ test-read-dwarf/PR26261/PR26261-objb.h \ +test-read-dwarf/test-PR26568-1.c \ +test-read-dwarf/test-PR26568-2.c \ +test-read-dwarf/test-PR26568-2.o \ +test-read-dwarf/test-PR26568-1.o \ +test-read-dwarf/test-PR26568-1.o.abi \ +test-read-dwarf/test-PR26568-2.o.abi \ +test-read-dwarf/test-libandroid.so \ +test-read-dwarf/test-libandroid.so.abi \ \ test-annotate/test0.abi \ test-annotate/test1.abi \ @@ -528,20 +554,20 @@ test-annotate/test4.so.abi \ test-annotate/test5.o.abi \ test-annotate/test6.so.abi \ test-annotate/test7.so.abi \ -test-annotate/test8-qualified-this-pointer.so.abi \ +test-annotate/test8-qualified-this-pointer.so.abi \ test-annotate/test13-pr18894.so.abi \ test-annotate/test14-pr18893.so.abi \ test-annotate/test15-pr18892.so.abi \ test-annotate/test17-pr19027.so.abi \ -test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi \ +test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi \ test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi \ -test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi \ +test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi \ test-annotate/test21-pr19092.so.abi \ test-annotate/libtest23.so.abi \ -test-annotate/libtest24-drop-fns-2.so.abi \ -test-annotate/libtest24-drop-fns.so.abi \ -test-annotate/test-anonymous-members-0.cc \ -test-annotate/test-anonymous-members-0.o \ +test-annotate/libtest24-drop-fns-2.so.abi \ +test-annotate/libtest24-drop-fns.so.abi \ +test-annotate/test-anonymous-members-0.cc \ +test-annotate/test-anonymous-members-0.o \ test-annotate/test-anonymous-members-0.o.abi \ \ test-types-stability/pr19434-elf0 \ @@ -882,6 +908,21 @@ test-diff-filter/test-PR25661-7-report-1.txt \ test-diff-filter/test-PR25661-7-report-2.txt \ test-diff-filter/test-PR25661-7-report-3.txt \ test-diff-filter/test-PR25661-7-report-4.txt \ +test-diff-filter/test-PR26309-v0.c \ +test-diff-filter/test-PR26309-v1.c \ +test-diff-filter/test-PR26309-v0.o \ +test-diff-filter/test-PR26309-v1.o \ +test-diff-filter/test-PR26309-report-0.txt \ +test-diff-filter/test-PR26739-v0.c \ +test-diff-filter/test-PR26739-v1.c \ +test-diff-filter/test-PR26739-v0.o \ +test-diff-filter/test-PR26739-v1.o \ +test-diff-filter/test-PR26739-report-0.txt \ +test-diff-filter/test-PR26739-2-v1.c \ +test-diff-filter/test-PR26739-2-v0.c \ +test-diff-filter/test-PR26739-2-v0.o \ +test-diff-filter/test-PR26739-2-v1.o \ +test-diff-filter/test-PR26739-2-report-0.txt \ \ test-diff-suppr/test0-type-suppr-v0.cc \ test-diff-suppr/test0-type-suppr-v1.cc \ @@ -1805,6 +1846,10 @@ test-kmi-whitelist/whitelist-with-single-entry \ test-kmi-whitelist/whitelist-with-another-single-entry \ test-kmi-whitelist/whitelist-with-duplicate-entry \ test-kmi-whitelist/whitelist-with-two-sections \ +test-kmi-whitelist/symbol-list-with-single-entry \ +test-kmi-whitelist/symbol-list-with-another-single-entry \ +test-kmi-whitelist/symbol-list-with-duplicate-entry \ +test-kmi-whitelist/symbol-list-with-two-sections \ \ test-symtab/basic/Makefile \ test-symtab/basic/aliases.c \ diff --git a/tests/data/test-abidiff-exit/test-crc-report.txt b/tests/data/test-abidiff-exit/test-crc-report.txt new file mode 100644 index 00000000..ddba41f4 --- /dev/null +++ b/tests/data/test-abidiff-exit/test-crc-report.txt @@ -0,0 +1,15 @@ +Functions changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added functions +Variables changes summary: 0 Removed, 1 Changed, 0 Added variable + +1 function with some indirect sub-type change: + + [C] 'function void func1(E)' has some indirect sub-type changes: + + CRC value (modversions) changed from 0x10000001 to 0x10000002 + +1 Changed variable: + + [C] 'int var1' was changed: + + CRC value (modversions) changed from 0x30000001 to 0x30000002 + diff --git a/tests/data/test-abidiff-exit/test-crc-v0.abi b/tests/data/test-abidiff-exit/test-crc-v0.abi new file mode 100644 index 00000000..320899fc --- /dev/null +++ b/tests/data/test-abidiff-exit/test-crc-v0.abi @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/data/test-abidiff-exit/test-crc-v1.abi b/tests/data/test-abidiff-exit/test-crc-v1.abi new file mode 100644 index 00000000..0baa66e4 --- /dev/null +++ b/tests/data/test-abidiff-exit/test-crc-v1.abi @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/data/test-abidiff-exit/test-decl-enum-report-3.txt b/tests/data/test-abidiff-exit/test-decl-enum-report-3.txt index b5b84c71..b3b11368 100644 --- a/tests/data/test-abidiff-exit/test-decl-enum-report-3.txt +++ b/tests/data/test-abidiff-exit/test-decl-enum-report-3.txt @@ -1,5 +1,5 @@ -Leaf changes summary: 0 artifact changed +Leaf changes summary: 0 artifact changed (2 filtered out) Changed leaf types summary: 0 leaf type changed -Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function +Removed/Changed/Added functions summary: 0 Removed, 0 Changed (2 filtered out), 0 Added function Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable diff --git a/tests/data/test-abidiff-exit/test-headers-dirs/headers-a/header-a-v0.h b/tests/data/test-abidiff-exit/test-headers-dirs/headers-a/header-a-v0.h new file mode 100644 index 00000000..49f956f6 --- /dev/null +++ b/tests/data/test-abidiff-exit/test-headers-dirs/headers-a/header-a-v0.h @@ -0,0 +1,26 @@ +typedef struct opaque_struct * opaque_struct_pointer_type; + +typedef struct public_struct_type *public_struct_pointer_type; +typedef struct public_struct_type2 *public_struct_pointer_type2; + +typedef void (*FuncPointerType0) (public_struct_pointer_type, + public_struct_pointer_type); + +typedef void (*FuncPointerType1) (public_struct_pointer_type, int); + +typedef struct public_struct_type2 +{ + FuncPointerType0 m0; + FuncPointerType1 m1; +} public_struct_type2; + +typedef struct public_struct_type +{ + opaque_struct_pointer_type m0; + public_struct_type2 *m1; +} public_struct_type; + +void foo(public_struct_pointer_type p1); + +void bar(second_public_struct_pointer_type p1, + second_opaque_struct_pointer_type p2); diff --git a/tests/data/test-abidiff-exit/test-headers-dirs/headers-a/header-a-v1.h b/tests/data/test-abidiff-exit/test-headers-dirs/headers-a/header-a-v1.h new file mode 100644 index 00000000..49f956f6 --- /dev/null +++ b/tests/data/test-abidiff-exit/test-headers-dirs/headers-a/header-a-v1.h @@ -0,0 +1,26 @@ +typedef struct opaque_struct * opaque_struct_pointer_type; + +typedef struct public_struct_type *public_struct_pointer_type; +typedef struct public_struct_type2 *public_struct_pointer_type2; + +typedef void (*FuncPointerType0) (public_struct_pointer_type, + public_struct_pointer_type); + +typedef void (*FuncPointerType1) (public_struct_pointer_type, int); + +typedef struct public_struct_type2 +{ + FuncPointerType0 m0; + FuncPointerType1 m1; +} public_struct_type2; + +typedef struct public_struct_type +{ + opaque_struct_pointer_type m0; + public_struct_type2 *m1; +} public_struct_type; + +void foo(public_struct_pointer_type p1); + +void bar(second_public_struct_pointer_type p1, + second_opaque_struct_pointer_type p2); diff --git a/tests/data/test-abidiff-exit/test-headers-dirs/headers-b/header-b-v0.h b/tests/data/test-abidiff-exit/test-headers-dirs/headers-b/header-b-v0.h new file mode 100644 index 00000000..1fe1b37c --- /dev/null +++ b/tests/data/test-abidiff-exit/test-headers-dirs/headers-b/header-b-v0.h @@ -0,0 +1,8 @@ +typedef struct second_opaque_struct *second_opaque_struct_pointer_type; + +typedef struct second_public_struct * second_public_struct_pointer_type; + +struct second_public_struct +{ + int m1; +}; diff --git a/tests/data/test-abidiff-exit/test-headers-dirs/headers-b/header-b-v1.h b/tests/data/test-abidiff-exit/test-headers-dirs/headers-b/header-b-v1.h new file mode 100644 index 00000000..cd7802dd --- /dev/null +++ b/tests/data/test-abidiff-exit/test-headers-dirs/headers-b/header-b-v1.h @@ -0,0 +1,9 @@ +typedef struct second_opaque_struct *second_opaque_struct_pointer_type; + +typedef struct second_public_struct * second_public_struct_pointer_type; + +struct second_public_struct +{ + int m1; + char m2; +}; diff --git a/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-1.txt b/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-1.txt new file mode 100644 index 00000000..41fc64d9 --- /dev/null +++ b/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-1.txt @@ -0,0 +1,3 @@ +Functions changes summary: 0 Removed, 0 Changed (2 filtered out), 0 Added functions +Variables changes summary: 0 Removed, 0 Changed, 0 Added variable + diff --git a/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-2.txt b/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-2.txt new file mode 100644 index 00000000..75d5a61f --- /dev/null +++ b/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-2.txt @@ -0,0 +1,13 @@ +Functions changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added functions +Variables changes summary: 0 Removed, 0 Changed, 0 Added variable + +1 function with some indirect sub-type change: + + [C] 'function void bar(second_public_struct_pointer_type, second_opaque_struct_pointer_type)' at test-headers-dir-v1.c:33:1 has some indirect sub-type changes: + parameter 1 of type 'typedef second_public_struct_pointer_type' has sub-type changes: + underlying type 'second_public_struct*' changed: + in pointed to type 'struct second_public_struct' at header-b-v1.h:5:1: + type size changed from 32 to 64 (in bits) + 1 data member insertion: + 'char second_public_struct::m2', at offset 32 (in bits) at header-b-v1.h:8:1 + diff --git a/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.c b/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.c new file mode 100644 index 00000000..0784f53d --- /dev/null +++ b/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.c @@ -0,0 +1,33 @@ +/* + * Compile this test with: + * gcc -c -g test-headers-dir-v0.c + * + * This test exhibits changes that are redundant in a weird way. + * The redundant path through the diff graph involves typedefs, + * function types and function parameter diff nodes. + * + */ +#include "headers-b/header-b-v0.h" +#include "headers-a/header-a-v0.h" + +struct opaque_struct +{ + int m0; + int m1; + struct public_struct_type *m2; +}; + +struct second_opaque_struct +{ + int m0; +}; + +void foo(public_struct_pointer_type p __attribute__((unused))) +{ +} + +void +bar(second_public_struct_pointer_type p1 __attribute__((unused)), + second_opaque_struct_pointer_type p2 __attribute__((unused))) +{ +} diff --git a/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.o b/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.o new file mode 100644 index 00000000..477198bc Binary files /dev/null and b/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.o differ diff --git a/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.c b/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.c new file mode 100644 index 00000000..a600757a --- /dev/null +++ b/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.c @@ -0,0 +1,36 @@ +/* + * Compile this test with: + * gcc -c -g test-headers-dir-v1.c + * + * This test exhibits changes that are redundant in a weird way. + * The redundant path through the diff graph involves typedefs, + * function types and function parameter diff nodes. + * + */ + +#include "headers-b/header-b-v1.h" +#include "headers-a/header-a-v1.h" + +struct opaque_struct +{ + int m0; + int m1; + struct public_struct_type *m2; + char m3; +}; + +struct second_opaque_struct +{ + int m0; + char m1; +}; + +void foo(public_struct_pointer_type p __attribute__((unused))) +{ +} + +void +bar(second_public_struct_pointer_type p1 __attribute__((unused)), + second_opaque_struct_pointer_type p2 __attribute__((unused))) +{ +} diff --git a/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.o b/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.o new file mode 100644 index 00000000..a7978e2e Binary files /dev/null and b/tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.o differ diff --git a/tests/data/test-abidiff-exit/test-non-leaf-array-report.txt b/tests/data/test-abidiff-exit/test-non-leaf-array-report.txt new file mode 100644 index 00000000..f13cd0d4 --- /dev/null +++ b/tests/data/test-abidiff-exit/test-non-leaf-array-report.txt @@ -0,0 +1,11 @@ +Leaf changes summary: 1 artifact changed +Changed leaf types summary: 1 leaf type changed +Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function +Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable + +'struct buzz at test-non-leaf-array-v0.c:1:1' changed: + type size changed from 32 to 64 (in bits) + there are data member changes: + type 'int' of 'buzz::a' changed: + type name changed from 'int' to 'long int' + type size changed from 32 to 64 (in bits) diff --git a/tests/data/test-abidiff-exit/test-non-leaf-array-v0.c b/tests/data/test-abidiff-exit/test-non-leaf-array-v0.c new file mode 100644 index 00000000..9594c396 --- /dev/null +++ b/tests/data/test-abidiff-exit/test-non-leaf-array-v0.c @@ -0,0 +1,12 @@ +struct buzz { + int a; +}; + +struct flexible { + long count; + struct buzz lightyear[0]; +}; + +struct flexible var; +void fun(struct flexible flex) { (void) flex; } + diff --git a/tests/data/test-abidiff-exit/test-non-leaf-array-v0.o b/tests/data/test-abidiff-exit/test-non-leaf-array-v0.o new file mode 100644 index 00000000..f45eecb2 Binary files /dev/null and b/tests/data/test-abidiff-exit/test-non-leaf-array-v0.o differ diff --git a/tests/data/test-abidiff-exit/test-non-leaf-array-v1.c b/tests/data/test-abidiff-exit/test-non-leaf-array-v1.c new file mode 100644 index 00000000..516c8b1f --- /dev/null +++ b/tests/data/test-abidiff-exit/test-non-leaf-array-v1.c @@ -0,0 +1,12 @@ +struct buzz { + long a; +}; + +struct flexible { + long count; + struct buzz lightyear[0]; +}; + +struct flexible var; +void fun(struct flexible flex) { (void) flex; } + diff --git a/tests/data/test-abidiff-exit/test-non-leaf-array-v1.o b/tests/data/test-abidiff-exit/test-non-leaf-array-v1.o new file mode 100644 index 00000000..298dda06 Binary files /dev/null and b/tests/data/test-abidiff-exit/test-non-leaf-array-v1.o differ diff --git a/tests/data/test-abidiff-exit/test1-voffset-change-report0.txt b/tests/data/test-abidiff-exit/test1-voffset-change-report0.txt index 7080934a..4d832e2d 100644 --- a/tests/data/test-abidiff-exit/test1-voffset-change-report0.txt +++ b/tests/data/test-abidiff-exit/test1-voffset-change-report0.txt @@ -1,13 +1,16 @@ -Functions changes summary: 0 Removed, 2 Changed, 0 Added functions +Functions changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable -2 functions with some indirect sub-type change: +1 function with some indirect sub-type change: [C] 'method virtual int C::virtual_func0()' has some indirect sub-type changes: the vtable offset of method virtual int C::virtual_func0() changed from 0 to 1 note that this is an ABI incompatible change to the vtable of class C - - [C] 'method virtual char C::virtual_func1()' has some indirect sub-type changes: - the vtable offset of method virtual char C::virtual_func1() changed from 1 to 0 - note that this is an ABI incompatible change to the vtable of class C + implicit parameter 0 of type 'C*' has sub-type changes: + in pointed to type 'class C': + type size hasn't changed + 1 member function changes (1 filtered): + 'method virtual char C::virtual_func1()' has some sub-type changes: + the vtable offset of method virtual char C::virtual_func1() changed from 1 to 0 + note that this is an ABI incompatible change to the vtable of class C diff --git a/tests/data/test-abidiff/test-PR18791-report0.txt b/tests/data/test-abidiff/test-PR18791-report0.txt index 5bc2d08b..41d151ef 100644 --- a/tests/data/test-abidiff/test-PR18791-report0.txt +++ b/tests/data/test-abidiff/test-PR18791-report0.txt @@ -1,4 +1,4 @@ -Functions changes summary: 1 Removed, 17 Changed, 1 Added functions +Functions changes summary: 1 Removed, 51 Changed, 1 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 Removed function: @@ -9,71 +9,135 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [A] 'method void std::__cxx11::_List_base >::_M_clear()' -17 functions with some indirect sub-type change: +51 functions with some indirect sub-type change: - [C] 'method sigc::connection::connection(sigc::slot_base&)' has some indirect sub-type changes: - parameter 1 of type 'sigc::slot_base&' has sub-type changes: - in referenced type 'class sigc::slot_base': + [C] 'method bool sigc::connection::block(bool)' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::connection*' has sub-type changes: + in pointed to type 'struct sigc::connection': type size hasn't changed 1 data member change: - type of 'sigc::slot_base::rep_type* sigc::slot_base::rep_' changed: - in pointed to type 'typedef sigc::slot_base::rep_type': - underlying type 'struct sigc::internal::slot_rep' changed: - type size hasn't changed - 1 base class change: - 'struct sigc::trackable' changed: - type size hasn't changed - 1 data member change: - type of 'sigc::internal::trackable_callback_list* sigc::trackable::callback_list_' changed: - in pointed to type 'struct sigc::internal::trackable_callback_list': - type size changed from 192 to 256 (in bits) - 2 data member changes: - type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed: - underlying type 'class std::list >' changed: - type name changed from 'std::list >' to 'std::__cxx11::list >' - type size changed from 128 to 192 (in bits) - 1 base class change: - 'class std::_List_base >' changed: - type name changed from 'std::_List_base >' to 'std::__cxx11::_List_base >' - type size changed from 128 to 192 (in bits) - 1 data member change: - type of 'std::_List_base >::_List_impl std::_List_base >::_M_impl' changed: - type name changed from 'std::_List_base >::_List_impl' to 'std::__cxx11::_List_base >::_List_impl' - type size changed from 128 to 192 (in bits) - 1 data member change: - type of 'std::__detail::_List_node_base std::_List_base >::_List_impl::_M_node' changed: - type name changed from 'std::__detail::_List_node_base' to 'std::_List_node' - type size changed from 128 to 192 (in bits) - 1 base class insertion: - struct std::__detail::_List_node_base - 2 data member deletions: - 'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits) - 'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits) - 1 data member insertion: - 'unsigned long int std::_List_node::_M_data', at offset 128 (in bits) - and name of 'std::_List_base >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base >::_List_impl::_M_node' - and name of 'std::_List_base >::_M_impl' changed to 'std::__cxx11::_List_base >::_M_impl' - 'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits) + type of 'sigc::slot_base* sigc::connection::slot_' changed: + in pointed to type 'class sigc::slot_base': + type size hasn't changed + 1 data member change: + type of 'sigc::slot_base::rep_type* sigc::slot_base::rep_' changed: + in pointed to type 'typedef sigc::slot_base::rep_type': + underlying type 'struct sigc::internal::slot_rep' changed: + type size hasn't changed + 1 base class change: + 'struct sigc::trackable' changed: + type size hasn't changed + 1 data member change: + type of 'sigc::internal::trackable_callback_list* sigc::trackable::callback_list_' changed: + in pointed to type 'struct sigc::internal::trackable_callback_list': + type size changed from 192 to 256 (in bits) + 2 data member changes: + type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed: + underlying type 'class std::list >' changed: + type name changed from 'std::list >' to 'std::__cxx11::list >' + type size changed from 128 to 192 (in bits) + 1 base class change: + 'class std::_List_base >' changed: + type name changed from 'std::_List_base >' to 'std::__cxx11::_List_base >' + type size changed from 128 to 192 (in bits) + 1 data member change: + type of 'std::_List_base >::_List_impl std::_List_base >::_M_impl' changed: + type name changed from 'std::_List_base >::_List_impl' to 'std::__cxx11::_List_base >::_List_impl' + type size changed from 128 to 192 (in bits) + 1 data member change: + type of 'std::__detail::_List_node_base std::_List_base >::_List_impl::_M_node' changed: + type name changed from 'std::__detail::_List_node_base' to 'std::_List_node' + type size changed from 128 to 192 (in bits) + 1 base class insertion: + struct std::__detail::_List_node_base + 2 data member deletions: + 'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits) + 'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits) + 1 data member insertion: + 'unsigned long int std::_List_node::_M_data', at offset 128 (in bits) + and name of 'std::_List_base >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base >::_List_impl::_M_node' + and name of 'std::_List_base >::_M_impl' changed to 'std::__cxx11::_List_base >::_M_impl' + 'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits) + + [C] 'method bool sigc::connection::blocked()' has some indirect sub-type changes: + implicit parameter 0 of type 'const sigc::connection*' has sub-type changes: + in pointed to type 'const sigc::connection': + unqualified underlying type 'struct sigc::connection' changed, as reported earlier + + [C] 'method sigc::connection::connection(sigc::slot_base&)' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::connection*' has sub-type changes: + pointed to type 'struct sigc::connection' changed, as reported earlier + parameter 1 of type 'sigc::slot_base&' has sub-type changes: + referenced type 'class sigc::slot_base' changed, as reported earlier + + [C] 'method void sigc::connection::disconnect()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::connection*' has sub-type changes: + pointed to type 'struct sigc::connection' changed, as reported earlier + + [C] 'method bool sigc::connection::empty()' has some indirect sub-type changes: + implicit parameter 0 of type 'const sigc::connection*' has sub-type changes: + in pointed to type 'const sigc::connection': + unqualified underlying type 'struct sigc::connection' changed, as reported earlier + + [C] 'method bool sigc::connection::operator bool()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::connection*' has sub-type changes: + pointed to type 'struct sigc::connection' changed, as reported earlier [C] 'method sigc::connection& sigc::connection::operator=(const sigc::connection&)' has some indirect sub-type changes: return type changed: - in referenced type 'struct sigc::connection': - type size hasn't changed - 1 data member change: - type of 'sigc::slot_base* sigc::connection::slot_' changed: - pointed to type 'class sigc::slot_base' changed, as reported earlier + referenced type 'struct sigc::connection' changed, as reported earlier + implicit parameter 0 of type 'sigc::connection*' has sub-type changes: + pointed to type 'struct sigc::connection' changed, as reported earlier parameter 1 of type 'const sigc::connection&' has sub-type changes: in referenced type 'const sigc::connection': unqualified underlying type 'struct sigc::connection' changed, as reported earlier [C] 'method void sigc::connection::set_slot(sigc::slot_base*)' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::connection*' has sub-type changes: + pointed to type 'struct sigc::connection' changed, as reported earlier parameter 1 of type 'sigc::slot_base*' has sub-type changes: pointed to type 'class sigc::slot_base' changed, as reported earlier + [C] 'method bool sigc::connection::unblock()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::connection*' has sub-type changes: + pointed to type 'struct sigc::connection' changed, as reported earlier + + [C] 'method void sigc::internal::signal_impl::block(bool)' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::internal::signal_impl*' has sub-type changes: + in pointed to type 'struct sigc::internal::signal_impl': + type size changed from 192 to 256 (in bits) + 1 data member change: + type of 'std::list > sigc::internal::signal_impl::slots_' changed: + type name changed from 'std::list >' to 'std::__cxx11::list >' + type size changed from 128 to 192 (in bits) + 1 base class change: + 'class std::_List_base >' changed: + type name changed from 'std::_List_base >' to 'std::__cxx11::_List_base >' + type size changed from 128 to 192 (in bits) + 1 data member change: + type of 'std::_List_base >::_List_impl std::_List_base >::_M_impl' changed: + type name changed from 'std::_List_base >::_List_impl' to 'std::__cxx11::_List_base >::_List_impl' + type size changed from 128 to 192 (in bits) + 1 data member change: + type of 'std::__detail::_List_node_base std::_List_base >::_List_impl::_M_node' changed, as reported earlier + and name of 'std::_List_base >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base >::_List_impl::_M_node' + and name of 'std::_List_base >::_M_impl' changed to 'std::__cxx11::_List_base >::_M_impl' + + [C] 'method bool sigc::internal::signal_impl::blocked()' has some indirect sub-type changes: + implicit parameter 0 of type 'const sigc::internal::signal_impl*' has sub-type changes: + in pointed to type 'const sigc::internal::signal_impl': + unqualified underlying type 'struct sigc::internal::signal_impl' changed, as reported earlier + + [C] 'method void sigc::internal::signal_impl::clear()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::internal::signal_impl*' has sub-type changes: + pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier + [C] 'method sigc::internal::signal_impl::iterator_type sigc::internal::signal_impl::connect(const sigc::slot_base&)' has some indirect sub-type changes: return type changed: underlying type 'typedef std::list >::iterator' changed: typedef name changed from std::list >::iterator to std::__cxx11::list >::iterator + implicit parameter 0 of type 'sigc::internal::signal_impl*' has sub-type changes: + pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier parameter 1 of type 'const sigc::slot_base&' has sub-type changes: in referenced type 'const sigc::slot_base': unqualified underlying type 'class sigc::slot_base' changed, as reported earlier @@ -81,21 +145,80 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C] 'method sigc::internal::signal_impl::iterator_type sigc::internal::signal_impl::erase(sigc::internal::signal_impl::iterator_type)' has some indirect sub-type changes: return type changed: underlying type 'typedef std::list >::iterator' changed, as reported earlier + implicit parameter 0 of type 'sigc::internal::signal_impl*' has sub-type changes: + pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier parameter 1 of type 'typedef sigc::internal::signal_impl::iterator_type' changed: underlying type 'typedef std::list >::iterator' changed, as reported earlier [C] 'method sigc::internal::signal_impl::iterator_type sigc::internal::signal_impl::insert(sigc::internal::signal_impl::iterator_type, const sigc::slot_base&)' has some indirect sub-type changes: return type changed: underlying type 'typedef std::list >::iterator' changed, as reported earlier + implicit parameter 0 of type 'sigc::internal::signal_impl*' has sub-type changes: + pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier parameter 1 of type 'typedef sigc::internal::signal_impl::iterator_type' changed: underlying type 'typedef std::list >::iterator' changed, as reported earlier parameter 2 of type 'const sigc::slot_base&' has sub-type changes: in referenced type 'const sigc::slot_base': unqualified underlying type 'class sigc::slot_base' changed, as reported earlier + [C] 'method sigc::internal::signal_impl::signal_impl()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::internal::signal_impl*' has sub-type changes: + pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier + + [C] 'method sigc::internal::signal_impl::size_type sigc::internal::signal_impl::size()' has some indirect sub-type changes: + implicit parameter 0 of type 'const sigc::internal::signal_impl*' has sub-type changes: + in pointed to type 'const sigc::internal::signal_impl': + unqualified underlying type 'struct sigc::internal::signal_impl' changed, as reported earlier + + [C] 'method void sigc::internal::signal_impl::sweep()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::internal::signal_impl*' has sub-type changes: + pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier + + [C] 'method void sigc::internal::signal_impl::unreference_exec()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::internal::signal_impl*' has sub-type changes: + pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier + + [C] 'method void sigc::internal::slot_rep::disconnect()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::internal::slot_rep*' has sub-type changes: + pointed to type 'struct sigc::internal::slot_rep' changed, as reported earlier + + [C] 'method void sigc::internal::trackable_callback_list::add_callback(void*)' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::internal::trackable_callback_list*' has sub-type changes: + pointed to type 'struct sigc::internal::trackable_callback_list' changed, as reported earlier + + [C] 'method void sigc::internal::trackable_callback_list::clear()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::internal::trackable_callback_list*' has sub-type changes: + pointed to type 'struct sigc::internal::trackable_callback_list' changed, as reported earlier + + [C] 'method void sigc::internal::trackable_callback_list::remove_callback(void*)' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::internal::trackable_callback_list*' has sub-type changes: + pointed to type 'struct sigc::internal::trackable_callback_list' changed, as reported earlier + + [C] 'method void sigc::signal_base::block(bool)' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::signal_base*' has sub-type changes: + in pointed to type 'struct sigc::signal_base': + type size hasn't changed + 1 base class change: + 'struct sigc::trackable' changed: + details were reported earlier + 1 data member change: + type of 'sigc::internal::signal_impl* sigc::signal_base::impl_' changed: + pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier + + [C] 'method bool sigc::signal_base::blocked()' has some indirect sub-type changes: + implicit parameter 0 of type 'const sigc::signal_base*' has sub-type changes: + in pointed to type 'const sigc::signal_base': + unqualified underlying type 'struct sigc::signal_base' changed, as reported earlier + + [C] 'method void sigc::signal_base::clear()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::signal_base*' has sub-type changes: + pointed to type 'struct sigc::signal_base' changed, as reported earlier + [C] 'method sigc::signal_base::iterator_type sigc::signal_base::connect(const sigc::slot_base&)' has some indirect sub-type changes: return type changed: underlying type 'typedef sigc::internal::signal_impl::iterator_type' changed, as reported earlier + implicit parameter 0 of type 'sigc::signal_base*' has sub-type changes: + pointed to type 'struct sigc::signal_base' changed, as reported earlier parameter 1 of type 'const sigc::slot_base&' has sub-type changes: in referenced type 'const sigc::slot_base': unqualified underlying type 'class sigc::slot_base' changed, as reported earlier @@ -103,33 +226,23 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C] 'method sigc::signal_base::iterator_type sigc::signal_base::erase(sigc::signal_base::iterator_type)' has some indirect sub-type changes: return type changed: underlying type 'typedef sigc::internal::signal_impl::iterator_type' changed, as reported earlier + implicit parameter 0 of type 'sigc::signal_base*' has sub-type changes: + pointed to type 'struct sigc::signal_base' changed, as reported earlier parameter 1 of type 'typedef sigc::signal_base::iterator_type' changed: underlying type 'typedef sigc::internal::signal_impl::iterator_type' changed, as reported earlier [C] 'method sigc::internal::signal_impl* sigc::signal_base::impl()' has some indirect sub-type changes: return type changed: - in pointed to type 'struct sigc::internal::signal_impl': - type size changed from 192 to 256 (in bits) - 1 data member change: - type of 'std::list > sigc::internal::signal_impl::slots_' changed: - type name changed from 'std::list >' to 'std::__cxx11::list >' - type size changed from 128 to 192 (in bits) - 1 base class change: - 'class std::_List_base >' changed: - type name changed from 'std::_List_base >' to 'std::__cxx11::_List_base >' - type size changed from 128 to 192 (in bits) - 1 data member change: - type of 'std::_List_base >::_List_impl std::_List_base >::_M_impl' changed: - type name changed from 'std::_List_base >::_List_impl' to 'std::__cxx11::_List_base >::_List_impl' - type size changed from 128 to 192 (in bits) - 1 data member change: - type of 'std::__detail::_List_node_base std::_List_base >::_List_impl::_M_node' changed, as reported earlier - and name of 'std::_List_base >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base >::_List_impl::_M_node' - and name of 'std::_List_base >::_M_impl' changed to 'std::__cxx11::_List_base >::_M_impl' + pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier + implicit parameter 0 of type 'const sigc::signal_base*' has sub-type changes: + in pointed to type 'const sigc::signal_base': + unqualified underlying type 'struct sigc::signal_base' changed, as reported earlier [C] 'method sigc::signal_base::iterator_type sigc::signal_base::insert(sigc::signal_base::iterator_type, const sigc::slot_base&)' has some indirect sub-type changes: return type changed: underlying type 'typedef sigc::internal::signal_impl::iterator_type' changed, as reported earlier + implicit parameter 0 of type 'sigc::signal_base*' has sub-type changes: + pointed to type 'struct sigc::signal_base' changed, as reported earlier parameter 1 of type 'typedef sigc::signal_base::iterator_type' changed: underlying type 'typedef sigc::internal::signal_impl::iterator_type' changed, as reported earlier parameter 2 of type 'const sigc::slot_base&' has sub-type changes: @@ -138,48 +251,119 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C] 'method sigc::signal_base& sigc::signal_base::operator=(const sigc::signal_base&)' has some indirect sub-type changes: return type changed: - in referenced type 'struct sigc::signal_base': - type size hasn't changed - 1 base class change: - 'struct sigc::trackable' changed: - details were reported earlier - 1 data member change: - type of 'sigc::internal::signal_impl* sigc::signal_base::impl_' changed: - pointed to type 'struct sigc::internal::signal_impl' changed, as reported earlier + referenced type 'struct sigc::signal_base' changed, as reported earlier + implicit parameter 0 of type 'sigc::signal_base*' has sub-type changes: + pointed to type 'struct sigc::signal_base' changed, as reported earlier parameter 1 of type 'const sigc::signal_base&' has sub-type changes: in referenced type 'const sigc::signal_base': unqualified underlying type 'struct sigc::signal_base' changed, as reported earlier [C] 'method sigc::signal_base::signal_base(const sigc::signal_base&)' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::signal_base*' has sub-type changes: + pointed to type 'struct sigc::signal_base' changed, as reported earlier parameter 1 of type 'const sigc::signal_base&' has sub-type changes: in referenced type 'const sigc::signal_base': unqualified underlying type 'struct sigc::signal_base' changed, as reported earlier + [C] 'method sigc::signal_base::size_type sigc::signal_base::size()' has some indirect sub-type changes: + implicit parameter 0 of type 'const sigc::signal_base*' has sub-type changes: + in pointed to type 'const sigc::signal_base': + unqualified underlying type 'struct sigc::signal_base' changed, as reported earlier + + [C] 'method void sigc::signal_base::unblock()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::signal_base*' has sub-type changes: + pointed to type 'struct sigc::signal_base' changed, as reported earlier + + [C] 'method void sigc::slot_base::add_destroy_notify_callback(void*)' has some indirect sub-type changes: + implicit parameter 0 of type 'const sigc::slot_base*' has sub-type changes: + in pointed to type 'const sigc::slot_base': + unqualified underlying type 'class sigc::slot_base' changed, as reported earlier + + [C] 'method bool sigc::slot_base::block(bool)' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::slot_base*' has sub-type changes: + pointed to type 'class sigc::slot_base' changed, as reported earlier + + [C] 'method void sigc::slot_base::disconnect()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::slot_base*' has sub-type changes: + pointed to type 'class sigc::slot_base' changed, as reported earlier + + [C] 'method bool sigc::slot_base::operator bool()' has some indirect sub-type changes: + implicit parameter 0 of type 'const sigc::slot_base*' has sub-type changes: + in pointed to type 'const sigc::slot_base': + unqualified underlying type 'class sigc::slot_base' changed, as reported earlier + [C] 'method sigc::slot_base& sigc::slot_base::operator=(const sigc::slot_base&)' has some indirect sub-type changes: return type changed: referenced type 'class sigc::slot_base' changed, as reported earlier + implicit parameter 0 of type 'sigc::slot_base*' has sub-type changes: + pointed to type 'class sigc::slot_base' changed, as reported earlier parameter 1 of type 'const sigc::slot_base&' has sub-type changes: in referenced type 'const sigc::slot_base': unqualified underlying type 'class sigc::slot_base' changed, as reported earlier + [C] 'method void sigc::slot_base::remove_destroy_notify_callback(void*)' has some indirect sub-type changes: + implicit parameter 0 of type 'const sigc::slot_base*' has sub-type changes: + in pointed to type 'const sigc::slot_base': + unqualified underlying type 'class sigc::slot_base' changed, as reported earlier + + [C] 'method void sigc::slot_base::set_parent(void*)' has some indirect sub-type changes: + implicit parameter 0 of type 'const sigc::slot_base*' has sub-type changes: + in pointed to type 'const sigc::slot_base': + unqualified underlying type 'class sigc::slot_base' changed, as reported earlier + [C] 'method sigc::slot_base::slot_base(const sigc::slot_base&)' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::slot_base*' has sub-type changes: + pointed to type 'class sigc::slot_base' changed, as reported earlier parameter 1 of type 'const sigc::slot_base&' has sub-type changes: in referenced type 'const sigc::slot_base': unqualified underlying type 'class sigc::slot_base' changed, as reported earlier + [C] 'method bool sigc::slot_base::unblock()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::slot_base*' has sub-type changes: + pointed to type 'class sigc::slot_base' changed, as reported earlier + + [C] 'method sigc::slot_base::~slot_base(int)' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::slot_base*' has sub-type changes: + pointed to type 'class sigc::slot_base' changed, as reported earlier + + [C] 'method void sigc::trackable::add_destroy_notify_callback(void*)' has some indirect sub-type changes: + implicit parameter 0 of type 'const sigc::trackable*' has sub-type changes: + in pointed to type 'const sigc::trackable': + unqualified underlying type 'struct sigc::trackable' changed, as reported earlier + [C] 'method sigc::internal::trackable_callback_list* sigc::trackable::callback_list()' has some indirect sub-type changes: return type changed: pointed to type 'struct sigc::internal::trackable_callback_list' changed, as reported earlier + implicit parameter 0 of type 'const sigc::trackable*' has sub-type changes: + in pointed to type 'const sigc::trackable': + unqualified underlying type 'struct sigc::trackable' changed, as reported earlier + + [C] 'method void sigc::trackable::notify_callbacks()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::trackable*' has sub-type changes: + pointed to type 'struct sigc::trackable' changed, as reported earlier [C] 'method sigc::trackable& sigc::trackable::operator=(const sigc::trackable&)' has some indirect sub-type changes: return type changed: referenced type 'struct sigc::trackable' changed, as reported earlier + implicit parameter 0 of type 'sigc::trackable*' has sub-type changes: + pointed to type 'struct sigc::trackable' changed, as reported earlier parameter 1 of type 'const sigc::trackable&' has sub-type changes: in referenced type 'const sigc::trackable': unqualified underlying type 'struct sigc::trackable' changed, as reported earlier + [C] 'method void sigc::trackable::remove_destroy_notify_callback(void*)' has some indirect sub-type changes: + implicit parameter 0 of type 'const sigc::trackable*' has sub-type changes: + in pointed to type 'const sigc::trackable': + unqualified underlying type 'struct sigc::trackable' changed, as reported earlier + [C] 'method sigc::trackable::trackable(const sigc::trackable&)' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::trackable*' has sub-type changes: + pointed to type 'struct sigc::trackable' changed, as reported earlier parameter 1 of type 'const sigc::trackable&' has sub-type changes: in referenced type 'const sigc::trackable': unqualified underlying type 'struct sigc::trackable' changed, as reported earlier + [C] 'method sigc::trackable::trackable()' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::trackable*' has sub-type changes: + pointed to type 'struct sigc::trackable' changed, as reported earlier + diff --git a/tests/data/test-abidiff/test-struct1-report.txt b/tests/data/test-abidiff/test-struct1-report.txt index fe5064c6..d74f5200 100644 --- a/tests/data/test-abidiff/test-struct1-report.txt +++ b/tests/data/test-abidiff/test-struct1-report.txt @@ -3,6 +3,10 @@ type size changed from 192 to 256 (in bits) 1 member function insertion: 'method virtual int s0::foo(int, char) const', virtual at voffset 2/2 + 1 member function change: + 'method virtual s0::__deleting_dtor ()' has some sub-type changes: + parameter 1 of type 's0*' has sub-type changes: + pointed to type 'class s0' changed, as being reported 1 data member deletion: 'char s0::m1', at offset 96 (in bits) 1 data member insertion: diff --git a/tests/data/test-annotate/libtest23.so.abi b/tests/data/test-annotate/libtest23.so.abi index 5001d02c..56abffca 100644 --- a/tests/data/test-annotate/libtest23.so.abi +++ b/tests/data/test-annotate/libtest23.so.abi @@ -20,45 +20,45 @@ - - - + - + - + - + - + - + - + - + - + - + - + - + - + + + - + @@ -71,7 +71,7 @@ - + @@ -88,7 +88,7 @@ - + @@ -99,43 +99,43 @@ - + - + - + - + - + - + - + - + - + - + @@ -147,11 +147,11 @@ - + - + @@ -175,15 +175,15 @@ - + - + - + @@ -221,930 +221,257 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + @@ -1312,9 +639,9 @@ - + - + @@ -1353,7 +680,7 @@ - + @@ -1499,7 +826,7 @@ - + @@ -1552,7 +879,7 @@ - + @@ -1570,7 +897,7 @@ - + @@ -1579,7 +906,7 @@ - + @@ -1588,7 +915,7 @@ - + @@ -1597,7 +924,7 @@ - + @@ -1606,7 +933,7 @@ - + @@ -1706,7 +1033,7 @@ - + @@ -1717,7 +1044,7 @@ - + @@ -1728,7 +1055,7 @@ - + @@ -1739,7 +1066,7 @@ - + @@ -2258,9 +1585,9 @@ - + - + @@ -2375,7 +1702,7 @@ - + @@ -2723,7 +2050,7 @@ - + @@ -2738,7 +2065,7 @@ - + @@ -2757,7 +2084,7 @@ - + @@ -2768,7 +2095,7 @@ - + @@ -2783,7 +2110,7 @@ - + @@ -2800,70 +2127,743 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/data/test-annotate/test-anonymous-members-0.o.abi b/tests/data/test-annotate/test-anonymous-members-0.o.abi index 5eca89dd..51d01dfc 100644 --- a/tests/data/test-annotate/test-anonymous-members-0.o.abi +++ b/tests/data/test-annotate/test-anonymous-members-0.o.abi @@ -10,8 +10,8 @@ - - + + diff --git a/tests/data/test-annotate/test0.abi b/tests/data/test-annotate/test0.abi index 5ac64e70..06cb2044 100644 --- a/tests/data/test-annotate/test0.abi +++ b/tests/data/test-annotate/test0.abi @@ -44,8 +44,8 @@ - - + + diff --git a/tests/data/test-annotate/test13-pr18894.so.abi b/tests/data/test-annotate/test13-pr18894.so.abi index efb83bcc..ee057ef1 100644 --- a/tests/data/test-annotate/test13-pr18894.so.abi +++ b/tests/data/test-annotate/test13-pr18894.so.abi @@ -665,19 +665,17 @@ - - - - + + - + - + - + @@ -767,7 +765,7 @@ - + @@ -826,7 +824,7 @@ - + @@ -838,50 +836,207 @@ - - - - - + - + - - - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + @@ -901,7 +1056,7 @@ - + @@ -909,7 +1064,7 @@ - + @@ -929,13 +1084,13 @@ - + - + - + @@ -954,21 +1109,21 @@ - + - + - + - + - + @@ -976,113 +1131,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1097,75 +1252,75 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1178,7 +1333,7 @@ - + @@ -1187,11 +1342,11 @@ - + - + @@ -1241,28 +1396,28 @@ - + - + - + - + @@ -1271,14 +1426,14 @@ - + - + @@ -1287,14 +1442,14 @@ - + - + @@ -1303,14 +1458,14 @@ - + - + @@ -1386,7 +1541,7 @@ - + @@ -1397,11 +1552,11 @@ - + - + @@ -1428,11 +1583,11 @@ - + - + @@ -1450,11 +1605,11 @@ - + - + @@ -1510,11 +1665,11 @@ - + - + @@ -1523,11 +1678,11 @@ - + - + @@ -1536,15 +1691,15 @@ - + - + - + - + @@ -1553,15 +1708,15 @@ - + - + - + - + @@ -1593,7 +1748,7 @@ - + @@ -1607,7 +1762,7 @@ - + @@ -1646,28 +1801,28 @@ - + - + - + - + @@ -1676,7 +1831,7 @@ - + @@ -1692,9 +1847,9 @@ - + - + @@ -1705,7 +1860,7 @@ - + @@ -1741,9 +1896,9 @@ - + - + @@ -1754,20 +1909,20 @@ - + - + - + @@ -1792,11 +1947,11 @@ - + - + @@ -1814,7 +1969,7 @@ - + @@ -1823,7 +1978,7 @@ - + @@ -1832,7 +1987,7 @@ - + @@ -1843,7 +1998,7 @@ - + @@ -1861,7 +2016,7 @@ - + @@ -1870,7 +2025,7 @@ - + @@ -1954,7 +2109,7 @@ - + @@ -2084,13 +2239,13 @@ - + - + @@ -2120,22 +2275,22 @@ - + - + - + - + - + @@ -2156,21 +2311,21 @@ - + - + - + - + @@ -2179,14 +2334,14 @@ - + - + @@ -2195,21 +2350,21 @@ - + - + - + @@ -2218,14 +2373,14 @@ - + - + @@ -2234,14 +2389,14 @@ - + - + @@ -2250,21 +2405,21 @@ - + - + - + @@ -2273,7 +2428,7 @@ - + @@ -2282,7 +2437,7 @@ - + @@ -2291,7 +2446,7 @@ - + @@ -2300,7 +2455,7 @@ - + @@ -2309,7 +2464,7 @@ - + @@ -2318,7 +2473,7 @@ - + @@ -2327,7 +2482,7 @@ - + @@ -2336,7 +2491,7 @@ - + @@ -2345,21 +2500,21 @@ - + - + - + @@ -2368,7 +2523,7 @@ - + @@ -2432,7 +2587,7 @@ - + @@ -2512,7 +2667,7 @@ - + @@ -2521,7 +2676,7 @@ - + @@ -2532,7 +2687,7 @@ - + @@ -2542,14 +2697,14 @@ - + - + @@ -2558,7 +2713,7 @@ - + @@ -2569,7 +2724,7 @@ - + @@ -2580,7 +2735,7 @@ - + @@ -2593,14 +2748,14 @@ - + - + @@ -2611,7 +2766,7 @@ - + @@ -2624,56 +2779,56 @@ - + - + - + - + - + - + - + - + - + - + @@ -2686,7 +2841,7 @@ - + @@ -2700,21 +2855,21 @@ - + - + - + @@ -2725,7 +2880,7 @@ - + @@ -2751,30 +2906,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + @@ -2795,61 +2993,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -2860,18 +3058,18 @@ - + - + - + @@ -2879,7 +3077,7 @@ - + @@ -2891,11 +3089,11 @@ - + - + @@ -2911,7 +3109,7 @@ - + @@ -2923,7 +3121,7 @@ - + @@ -2998,7 +3196,7 @@ - + @@ -3018,7 +3216,7 @@ - + @@ -3050,15 +3248,15 @@ - + - + - + - + @@ -3067,15 +3265,15 @@ - + - + - + - + @@ -3485,7 +3683,7 @@ - + @@ -3495,7 +3693,7 @@ - + @@ -3518,14 +3716,14 @@ - + - + @@ -3540,46 +3738,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + @@ -3614,14 +3847,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -3630,60 +3906,60 @@ - + - + - + - + - + - + - + - + - + diff --git a/tests/data/test-annotate/test14-pr18893.so.abi b/tests/data/test-annotate/test14-pr18893.so.abi index c3a4a673..195163bd 100644 --- a/tests/data/test-annotate/test14-pr18893.so.abi +++ b/tests/data/test-annotate/test14-pr18893.so.abi @@ -137,209 +137,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -351,458 +447,458 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -814,11 +910,11 @@ - + - + @@ -830,141 +926,45 @@ - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + @@ -985,11 +985,11 @@ - + - + @@ -997,9 +997,9 @@ - + - + @@ -1008,11 +1008,11 @@ - + - + - + @@ -1021,9 +1021,9 @@ - + - + @@ -1041,7 +1041,7 @@ - + @@ -1050,9 +1050,9 @@ - + - + @@ -1061,9 +1061,9 @@ - + - + @@ -1072,9 +1072,9 @@ - + - + @@ -1083,7 +1083,7 @@ - + @@ -1092,7 +1092,7 @@ - + @@ -1101,13 +1101,13 @@ - + - + - + @@ -1116,7 +1116,7 @@ - + @@ -1125,7 +1125,7 @@ - + @@ -1134,9 +1134,9 @@ - + - + @@ -1145,7 +1145,7 @@ - + @@ -1154,9 +1154,9 @@ - + - + @@ -1169,7 +1169,7 @@ - + @@ -1180,7 +1180,7 @@ - + @@ -1189,7 +1189,7 @@ - + @@ -1202,7 +1202,7 @@ - + @@ -1215,7 +1215,7 @@ - + @@ -1224,7 +1224,7 @@ - + @@ -1233,7 +1233,7 @@ - + @@ -1242,9 +1242,9 @@ - + - + @@ -1258,15 +1258,15 @@ - + - + - + @@ -1278,71 +1278,71 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1362,19 +1362,19 @@ - + - + - + - + @@ -1410,11 +1410,11 @@ - + - + @@ -1426,11 +1426,11 @@ - + - + @@ -1442,11 +1442,11 @@ - + - + @@ -1462,7 +1462,7 @@ - + @@ -1474,7 +1474,7 @@ - + @@ -1494,27 +1494,27 @@ - + - + - + - + - + - + @@ -1522,9 +1522,9 @@ - + - + @@ -1533,9 +1533,9 @@ - + - + @@ -1544,7 +1544,7 @@ - + @@ -1555,7 +1555,7 @@ - + @@ -1568,7 +1568,7 @@ - + @@ -1577,11 +1577,11 @@ - + - + - + @@ -1594,7 +1594,7 @@ - + @@ -1603,11 +1603,11 @@ - + - + - + @@ -1616,11 +1616,11 @@ - + - + - + @@ -1629,7 +1629,7 @@ - + @@ -1638,9 +1638,9 @@ - + - + @@ -1649,7 +1649,7 @@ - + @@ -1658,9 +1658,9 @@ - + - + @@ -1669,11 +1669,11 @@ - + - + - + @@ -1682,9 +1682,9 @@ - + - + @@ -1693,11 +1693,11 @@ - + - + - + @@ -1706,11 +1706,11 @@ - + - + - + @@ -1719,11 +1719,11 @@ - + - + - + @@ -1732,11 +1732,11 @@ - + - + - + @@ -1745,15 +1745,15 @@ - + - + - + - + - + @@ -1762,15 +1762,15 @@ - + - + - + - + - + @@ -1779,7 +1779,7 @@ - + @@ -1789,23 +1789,23 @@ - + - + - + - + - + - + - + @@ -1814,13 +1814,13 @@ - + - + - + @@ -1829,15 +1829,15 @@ - + - + - + - + @@ -1846,13 +1846,13 @@ - + - + - + - + @@ -1861,13 +1861,13 @@ - + - + - + - + @@ -1880,11 +1880,11 @@ - + - + - + @@ -1893,27 +1893,27 @@ - + - + - + - + - + - + - + @@ -1922,19 +1922,19 @@ - + - + - + @@ -1943,15 +1943,15 @@ - + - + - + - + - + @@ -1960,11 +1960,11 @@ - + - + - + @@ -1977,7 +1977,7 @@ - + @@ -1986,19 +1986,19 @@ - + - + - + - + @@ -2007,19 +2007,19 @@ - + - + - + - + @@ -2028,19 +2028,19 @@ - + - + - + - + - + @@ -2049,19 +2049,19 @@ - + - + - + - + - + @@ -2070,17 +2070,17 @@ - + - + - + - + - + @@ -2089,17 +2089,17 @@ - + - + - + - + - + @@ -2108,7 +2108,7 @@ - + @@ -2118,23 +2118,23 @@ - + - + - + - + - + - + - + @@ -2143,7 +2143,7 @@ - + @@ -2153,23 +2153,23 @@ - + - + - + - + - + - + - + @@ -2180,7 +2180,7 @@ - + @@ -2191,7 +2191,7 @@ - + @@ -2200,29 +2200,29 @@ - + - + - + - + - + - + - + - + @@ -2237,13 +2237,13 @@ - + - + - + - + @@ -2258,9 +2258,9 @@ - + - + @@ -2273,7 +2273,7 @@ - + @@ -2284,7 +2284,7 @@ - + @@ -2295,7 +2295,7 @@ - + @@ -2304,9 +2304,9 @@ - + - + @@ -2315,13 +2315,13 @@ - + - + - + - + @@ -2338,7 +2338,7 @@ - + @@ -2347,9 +2347,9 @@ - + - + @@ -2358,9 +2358,9 @@ - + - + @@ -2369,9 +2369,9 @@ - + - + @@ -2380,27 +2380,27 @@ - + - + - + - + - + - + - + @@ -2409,19 +2409,19 @@ - + - + - + @@ -2430,17 +2430,17 @@ - + - + - + - + - + - + @@ -2449,13 +2449,13 @@ - + - + @@ -2464,11 +2464,11 @@ - + - + - + @@ -2477,7 +2477,7 @@ - + @@ -2486,9 +2486,9 @@ - + - + @@ -2497,7 +2497,7 @@ - + @@ -2506,7 +2506,7 @@ - + @@ -2515,7 +2515,7 @@ - + @@ -2524,7 +2524,7 @@ - + @@ -2533,7 +2533,7 @@ - + @@ -2542,7 +2542,7 @@ - + @@ -2551,7 +2551,7 @@ - + @@ -2560,7 +2560,7 @@ - + @@ -2569,7 +2569,7 @@ - + @@ -2578,7 +2578,7 @@ - + @@ -2587,7 +2587,7 @@ - + @@ -2596,19 +2596,19 @@ - + - + - + - + - + @@ -2617,19 +2617,19 @@ - + - + - + - + - + @@ -2642,11 +2642,11 @@ - + - + - + @@ -2659,11 +2659,11 @@ - + - + - + @@ -2676,11 +2676,11 @@ - + - + - + @@ -2691,7 +2691,7 @@ - + @@ -2702,7 +2702,7 @@ - + @@ -2711,77 +2711,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2806,9 +2806,9 @@ - + - + @@ -2825,9 +2825,9 @@ - + - + @@ -2840,51 +2840,51 @@ - + - + - + - + - + - + - + - + @@ -2894,12 +2894,12 @@ - + - + @@ -2960,39 +2960,39 @@ - + - + - + - + - + - + - + - + - + @@ -3040,7 +3040,7 @@ - + @@ -3049,11 +3049,11 @@ - + - + @@ -3062,13 +3062,13 @@ - + - + - + @@ -3077,11 +3077,11 @@ - + - + - + @@ -3090,13 +3090,13 @@ - + - + - + - + @@ -3105,13 +3105,13 @@ - + - + - + @@ -3120,17 +3120,17 @@ - + - + - + - + - + @@ -3139,9 +3139,9 @@ - + - + @@ -3150,7 +3150,7 @@ - + @@ -3159,7 +3159,7 @@ - + @@ -3168,7 +3168,7 @@ - + @@ -3177,9 +3177,9 @@ - + - + @@ -3188,7 +3188,7 @@ - + @@ -3197,15 +3197,15 @@ - + - + - + - + @@ -3214,19 +3214,19 @@ - + - + - + - + - + @@ -3235,27 +3235,27 @@ - + - + - + - + - + - + - + - + @@ -3264,13 +3264,13 @@ - + - + - + - + @@ -3279,7 +3279,7 @@ - + @@ -3288,9 +3288,9 @@ - + - + @@ -3299,7 +3299,7 @@ - + @@ -3308,7 +3308,7 @@ - + @@ -3317,9 +3317,9 @@ - + - + @@ -3330,7 +3330,7 @@ - + @@ -3341,7 +3341,7 @@ - + @@ -3350,9 +3350,9 @@ - + - + @@ -3361,7 +3361,7 @@ - + @@ -3374,7 +3374,7 @@ - + @@ -3383,9 +3383,9 @@ - + - + @@ -3396,7 +3396,7 @@ - + @@ -3405,7 +3405,7 @@ - + @@ -3414,7 +3414,7 @@ - + @@ -3425,7 +3425,7 @@ - + @@ -3436,7 +3436,7 @@ - + @@ -3447,7 +3447,7 @@ - + @@ -3458,7 +3458,7 @@ - + @@ -3469,7 +3469,7 @@ - + @@ -3480,7 +3480,7 @@ - + @@ -3491,7 +3491,7 @@ - + @@ -3502,7 +3502,7 @@ - + @@ -3511,7 +3511,7 @@ - + @@ -3522,7 +3522,7 @@ - + @@ -3531,7 +3531,7 @@ - + @@ -3542,7 +3542,7 @@ - + @@ -3553,7 +3553,7 @@ - + @@ -3564,7 +3564,7 @@ - + @@ -3575,7 +3575,7 @@ - + @@ -3586,7 +3586,7 @@ - + @@ -3597,7 +3597,7 @@ - + @@ -3606,9 +3606,9 @@ - + - + @@ -3617,7 +3617,7 @@ - + @@ -3626,7 +3626,7 @@ - + @@ -3635,9 +3635,9 @@ - + - + @@ -3646,7 +3646,7 @@ - + @@ -3655,9 +3655,9 @@ - + - + @@ -3698,7 +3698,7 @@ - + @@ -3706,7 +3706,7 @@ - + @@ -3722,7 +3722,7 @@ - + @@ -3731,9 +3731,9 @@ - + - + @@ -3746,7 +3746,7 @@ - + @@ -3755,11 +3755,11 @@ - + - + - + @@ -3770,23 +3770,23 @@ - + - + - + - + @@ -3795,13 +3795,13 @@ - + - + - + - + @@ -3818,7 +3818,7 @@ - + @@ -3827,9 +3827,9 @@ - + - + @@ -3838,9 +3838,9 @@ - + - + @@ -3849,9 +3849,9 @@ - + - + @@ -3860,27 +3860,27 @@ - + - + - + - + - + - + - + @@ -3889,19 +3889,19 @@ - + - + - + @@ -3910,17 +3910,17 @@ - + - + - + - + - + - + @@ -3929,13 +3929,13 @@ - + - + @@ -3944,11 +3944,11 @@ - + - + - + @@ -3957,7 +3957,7 @@ - + @@ -3966,9 +3966,9 @@ - + - + @@ -3977,7 +3977,7 @@ - + @@ -3986,7 +3986,7 @@ - + @@ -3995,7 +3995,7 @@ - + @@ -4004,7 +4004,7 @@ - + @@ -4013,7 +4013,7 @@ - + @@ -4022,7 +4022,7 @@ - + @@ -4031,7 +4031,7 @@ - + @@ -4040,7 +4040,7 @@ - + @@ -4049,7 +4049,7 @@ - + @@ -4058,7 +4058,7 @@ - + @@ -4067,7 +4067,7 @@ - + @@ -4076,19 +4076,19 @@ - + - + - + - + - + @@ -4097,19 +4097,19 @@ - + - + - + - + - + @@ -4122,11 +4122,11 @@ - + - + - + @@ -4139,11 +4139,11 @@ - + - + - + @@ -4156,11 +4156,11 @@ - + - + - + @@ -4171,7 +4171,7 @@ - + @@ -4182,7 +4182,7 @@ - + @@ -4220,27 +4220,27 @@ - + - + - + - + - + - + @@ -4269,31 +4269,31 @@ - + - + - + - + - + - + - + @@ -4318,7 +4318,7 @@ - + @@ -4330,11 +4330,11 @@ - + - + @@ -4346,11 +4346,11 @@ - + - + @@ -4376,7 +4376,7 @@ - + @@ -4388,7 +4388,7 @@ - + @@ -4442,11 +4442,11 @@ - + - + @@ -4458,7 +4458,7 @@ - + @@ -4469,9 +4469,9 @@ - + - + @@ -4491,7 +4491,7 @@ - + @@ -4500,7 +4500,7 @@ - + @@ -4509,7 +4509,7 @@ - + @@ -4518,7 +4518,7 @@ - + @@ -4527,7 +4527,7 @@ - + @@ -4538,7 +4538,7 @@ - + @@ -4547,7 +4547,7 @@ - + @@ -4556,7 +4556,7 @@ - + @@ -4569,7 +4569,7 @@ - + @@ -4578,7 +4578,7 @@ - + @@ -4587,7 +4587,7 @@ - + @@ -4596,7 +4596,7 @@ - + @@ -4605,7 +4605,7 @@ - + @@ -4614,7 +4614,7 @@ - + @@ -4632,7 +4632,7 @@ - + @@ -4641,7 +4641,7 @@ - + @@ -4650,7 +4650,7 @@ - + @@ -4659,7 +4659,7 @@ - + @@ -4668,7 +4668,7 @@ - + @@ -4677,7 +4677,7 @@ - + @@ -4686,7 +4686,7 @@ - + @@ -4697,7 +4697,7 @@ - + @@ -4715,7 +4715,7 @@ - + @@ -4724,7 +4724,7 @@ - + @@ -4733,7 +4733,7 @@ - + @@ -4742,7 +4742,7 @@ - + @@ -4757,7 +4757,7 @@ - + @@ -4765,19 +4765,19 @@ - + - + - + - + @@ -4793,13 +4793,13 @@ - + - + - + @@ -4808,9 +4808,9 @@ - + - + @@ -4819,7 +4819,7 @@ - + @@ -4828,9 +4828,9 @@ - + - + @@ -4839,7 +4839,7 @@ - + @@ -4848,7 +4848,7 @@ - + @@ -4871,7 +4871,7 @@ - + @@ -4880,9 +4880,9 @@ - + - + @@ -4891,27 +4891,27 @@ - + - + - + - + - + @@ -4922,7 +4922,7 @@ - + @@ -4930,7 +4930,7 @@ - + @@ -4947,11 +4947,11 @@ - + - + @@ -4959,7 +4959,7 @@ - + @@ -4968,11 +4968,11 @@ - + - + @@ -4981,13 +4981,13 @@ - + - + - + @@ -4999,7 +4999,7 @@ - + @@ -5027,7 +5027,7 @@ - + @@ -5058,11 +5058,11 @@ - + - + @@ -5076,7 +5076,7 @@ - + @@ -5089,7 +5089,7 @@ - + @@ -5098,9 +5098,9 @@ - + - + @@ -5109,7 +5109,7 @@ - + @@ -5118,7 +5118,7 @@ - + @@ -5127,7 +5127,7 @@ - + @@ -5151,19 +5151,19 @@ - + - + - + - + @@ -5171,7 +5171,7 @@ - + @@ -5180,7 +5180,7 @@ - + @@ -5189,9 +5189,9 @@ - + - + @@ -5200,7 +5200,7 @@ - + @@ -5211,11 +5211,11 @@ - + - + @@ -5223,7 +5223,7 @@ - + @@ -5231,9 +5231,9 @@ - + - + @@ -5242,11 +5242,11 @@ - + - + - + @@ -5259,7 +5259,7 @@ - + @@ -5268,9 +5268,9 @@ - + - + @@ -5283,7 +5283,7 @@ - + @@ -5296,7 +5296,7 @@ - + @@ -5311,7 +5311,7 @@ - + @@ -5331,7 +5331,7 @@ - + @@ -5342,9 +5342,9 @@ - + - + @@ -5357,7 +5357,7 @@ - + @@ -5370,7 +5370,7 @@ - + @@ -5385,7 +5385,7 @@ - + @@ -5399,7 +5399,7 @@ - + @@ -5408,11 +5408,11 @@ - + - + - + @@ -5421,9 +5421,9 @@ - + - + @@ -5436,7 +5436,7 @@ - + @@ -5449,7 +5449,7 @@ - + @@ -5464,7 +5464,7 @@ - + @@ -5472,19 +5472,19 @@ - + - + - + - + @@ -5496,7 +5496,7 @@ - + @@ -5505,9 +5505,9 @@ - + - + @@ -5518,7 +5518,7 @@ - + @@ -5527,7 +5527,7 @@ - + @@ -5536,9 +5536,9 @@ - + - + @@ -5551,7 +5551,7 @@ - + @@ -5567,11 +5567,11 @@ - + - + @@ -5579,7 +5579,7 @@ - + @@ -5588,9 +5588,9 @@ - + - + @@ -5599,7 +5599,7 @@ - + @@ -5608,7 +5608,7 @@ - + @@ -5630,7 +5630,7 @@ - + @@ -5639,9 +5639,9 @@ - + - + @@ -5677,7 +5677,7 @@ - + @@ -5688,7 +5688,7 @@ - + @@ -5699,7 +5699,7 @@ - + @@ -5708,7 +5708,7 @@ - + @@ -5717,7 +5717,7 @@ - + @@ -5726,7 +5726,7 @@ - + @@ -5737,7 +5737,7 @@ - + @@ -5746,7 +5746,7 @@ - + @@ -5774,7 +5774,7 @@ - + @@ -5783,9 +5783,9 @@ - + - + @@ -5804,7 +5804,7 @@ - + @@ -5825,7 +5825,7 @@ - + @@ -5844,7 +5844,7 @@ - + @@ -5863,7 +5863,7 @@ - + @@ -5882,7 +5882,7 @@ - + @@ -5901,7 +5901,7 @@ - + @@ -5916,9 +5916,9 @@ - + - + @@ -5933,9 +5933,9 @@ - + - + @@ -5944,11 +5944,11 @@ - + - + - + @@ -5962,7 +5962,7 @@ - + @@ -5984,7 +5984,7 @@ - + @@ -5995,7 +5995,7 @@ - + @@ -6008,9 +6008,9 @@ - + - + @@ -6025,9 +6025,9 @@ - + - + @@ -6036,11 +6036,11 @@ - + - + - + @@ -6049,7 +6049,7 @@ - + @@ -6060,7 +6060,7 @@ - + @@ -6069,13 +6069,13 @@ - + - + - + @@ -6084,7 +6084,7 @@ - + @@ -6093,15 +6093,15 @@ - + - + - + @@ -6110,15 +6110,15 @@ - + - + - + - + @@ -6127,13 +6127,13 @@ - + - + - + @@ -6146,9 +6146,9 @@ - + - + @@ -6161,7 +6161,7 @@ - + @@ -6170,7 +6170,7 @@ - + @@ -6179,7 +6179,7 @@ - + @@ -6232,11 +6232,11 @@ - + - + @@ -6264,11 +6264,11 @@ - + - + @@ -6280,7 +6280,7 @@ - + @@ -6292,7 +6292,7 @@ - + @@ -6301,9 +6301,9 @@ - + - + @@ -6312,7 +6312,7 @@ - + @@ -6321,7 +6321,7 @@ - + @@ -6330,7 +6330,7 @@ - + @@ -6339,13 +6339,13 @@ - + - + - + @@ -6354,13 +6354,13 @@ - + - + - + @@ -6369,7 +6369,7 @@ - + @@ -6378,7 +6378,7 @@ - + @@ -6387,7 +6387,7 @@ - + @@ -6398,7 +6398,7 @@ - + @@ -6407,7 +6407,7 @@ - + @@ -6416,7 +6416,7 @@ - + @@ -6425,9 +6425,9 @@ - + - + @@ -6440,7 +6440,7 @@ - + @@ -6453,7 +6453,7 @@ - + @@ -6466,7 +6466,7 @@ - + @@ -6479,7 +6479,7 @@ - + @@ -6490,7 +6490,7 @@ - + @@ -6501,7 +6501,7 @@ - + @@ -6512,7 +6512,7 @@ - + @@ -6521,9 +6521,9 @@ - + - + @@ -6540,7 +6540,7 @@ - + @@ -6557,7 +6557,7 @@ - + @@ -6574,7 +6574,7 @@ - + @@ -6591,7 +6591,7 @@ - + @@ -6608,7 +6608,7 @@ - + @@ -6625,7 +6625,7 @@ - + @@ -6642,7 +6642,7 @@ - + @@ -6659,7 +6659,7 @@ - + @@ -6672,7 +6672,7 @@ - + @@ -6685,7 +6685,7 @@ - + @@ -6696,7 +6696,7 @@ - + @@ -6709,7 +6709,7 @@ - + @@ -6720,9 +6720,9 @@ - + - + @@ -6733,7 +6733,7 @@ - + @@ -6744,11 +6744,11 @@ - + - + - + @@ -6759,11 +6759,11 @@ - + - + - + @@ -6776,11 +6776,11 @@ - + - + - + @@ -6793,11 +6793,11 @@ - + - + - + @@ -6810,7 +6810,7 @@ - + @@ -6821,11 +6821,11 @@ - + - + - + @@ -6836,11 +6836,11 @@ - + - + - + @@ -6851,7 +6851,7 @@ - + @@ -6862,7 +6862,7 @@ - + @@ -6873,7 +6873,7 @@ - + @@ -6888,11 +6888,11 @@ - + - + @@ -6911,7 +6911,7 @@ - + @@ -6920,7 +6920,7 @@ - + @@ -6929,7 +6929,7 @@ - + @@ -6938,7 +6938,7 @@ - + @@ -6947,7 +6947,7 @@ - + @@ -6956,7 +6956,7 @@ - + @@ -6965,7 +6965,7 @@ - + @@ -6978,7 +6978,7 @@ - + @@ -6989,15 +6989,15 @@ - + - + - + - + @@ -7016,11 +7016,11 @@ - + - + @@ -7031,7 +7031,7 @@ - + @@ -7042,7 +7042,7 @@ - + @@ -7057,9 +7057,9 @@ - + - + @@ -7078,7 +7078,7 @@ - + @@ -7091,7 +7091,7 @@ - + @@ -7108,7 +7108,7 @@ - + @@ -7125,7 +7125,7 @@ - + @@ -7136,13 +7136,13 @@ - + - + - + @@ -7155,7 +7155,7 @@ - + @@ -7168,7 +7168,7 @@ - + @@ -7185,7 +7185,7 @@ - + @@ -7198,7 +7198,7 @@ - + @@ -7223,11 +7223,11 @@ - + - + @@ -7241,11 +7241,11 @@ - + - + - + @@ -7256,11 +7256,11 @@ - + - + @@ -7269,9 +7269,9 @@ - + - + @@ -7280,7 +7280,7 @@ - + @@ -7289,7 +7289,7 @@ - + @@ -7298,7 +7298,7 @@ - + @@ -7307,7 +7307,7 @@ - + @@ -7316,7 +7316,7 @@ - + @@ -7325,9 +7325,9 @@ - + - + @@ -7336,7 +7336,7 @@ - + @@ -7347,9 +7347,9 @@ - + - + @@ -7358,7 +7358,7 @@ - + @@ -7367,7 +7367,7 @@ - + @@ -7395,15 +7395,15 @@ - + - + - + @@ -7411,13 +7411,13 @@ - + - + @@ -7426,11 +7426,11 @@ - + - + @@ -7441,7 +7441,7 @@ - + @@ -7452,7 +7452,7 @@ - + @@ -7463,7 +7463,7 @@ - + @@ -7474,7 +7474,7 @@ - + @@ -7487,7 +7487,7 @@ - + @@ -7498,7 +7498,7 @@ - + @@ -7511,7 +7511,7 @@ - + @@ -7520,9 +7520,9 @@ - + - + @@ -7531,9 +7531,9 @@ - + - + @@ -7542,9 +7542,9 @@ - + - + @@ -7553,7 +7553,7 @@ - + @@ -7562,7 +7562,7 @@ - + @@ -7571,9 +7571,9 @@ - + - + @@ -7589,15 +7589,15 @@ - + - + - + @@ -7605,7 +7605,7 @@ - + @@ -7617,7 +7617,7 @@ - + @@ -7626,13 +7626,13 @@ - + - + - + - + @@ -7649,7 +7649,7 @@ - + @@ -7658,17 +7658,17 @@ - + - + - + - + - + - + @@ -7678,7 +7678,7 @@ - + @@ -7687,13 +7687,13 @@ - + - + - + - + @@ -7706,15 +7706,15 @@ - + - + - + @@ -7723,15 +7723,15 @@ - + - + - + - + - + @@ -7742,7 +7742,7 @@ - + @@ -7751,7 +7751,7 @@ - + @@ -7760,7 +7760,7 @@ - + @@ -7771,7 +7771,7 @@ - + @@ -7782,7 +7782,7 @@ - + @@ -7793,7 +7793,7 @@ - + @@ -7806,7 +7806,7 @@ - + @@ -7817,7 +7817,7 @@ - + @@ -7828,7 +7828,7 @@ - + @@ -7837,7 +7837,7 @@ - + @@ -7846,7 +7846,7 @@ - + @@ -7855,7 +7855,7 @@ - + @@ -7870,7 +7870,7 @@ - + @@ -7879,7 +7879,7 @@ - + @@ -7888,7 +7888,7 @@ - + @@ -7897,7 +7897,7 @@ - + @@ -7906,7 +7906,7 @@ - + @@ -7915,19 +7915,19 @@ - + - + - + - + - + @@ -7936,19 +7936,19 @@ - + - + - + - + - + @@ -7959,7 +7959,7 @@ - + @@ -7970,7 +7970,7 @@ - + @@ -7981,7 +7981,7 @@ - + @@ -7992,7 +7992,7 @@ - + @@ -8003,7 +8003,7 @@ - + @@ -8012,7 +8012,7 @@ - + @@ -8025,7 +8025,7 @@ - + @@ -8034,19 +8034,19 @@ - + - + - + - + - + @@ -8059,9 +8059,9 @@ - + - + @@ -8070,11 +8070,11 @@ - + - + - + @@ -8085,7 +8085,7 @@ - + @@ -8094,7 +8094,7 @@ - + @@ -8103,7 +8103,7 @@ - + @@ -8112,7 +8112,7 @@ - + @@ -8128,7 +8128,7 @@ - + @@ -8141,7 +8141,7 @@ - + @@ -8157,7 +8157,7 @@ - + @@ -8170,7 +8170,7 @@ - + @@ -8258,7 +8258,7 @@ - + @@ -8267,11 +8267,11 @@ - + - + - + @@ -8280,11 +8280,11 @@ - + - + - + @@ -8293,7 +8293,7 @@ - + @@ -8302,7 +8302,7 @@ - + @@ -8332,7 +8332,7 @@ - + @@ -8341,11 +8341,11 @@ - + - + - + @@ -8358,7 +8358,7 @@ - + @@ -8369,7 +8369,7 @@ - + @@ -8378,7 +8378,7 @@ - + @@ -8387,7 +8387,7 @@ - + @@ -8396,7 +8396,7 @@ - + @@ -8405,7 +8405,7 @@ - + @@ -8414,7 +8414,7 @@ - + @@ -8449,11 +8449,11 @@ - + - + - + @@ -8480,7 +8480,7 @@ - + @@ -8492,15 +8492,15 @@ - + - + - + @@ -8528,7 +8528,7 @@ - + @@ -8537,9 +8537,9 @@ - + - + @@ -8548,7 +8548,7 @@ - + @@ -8559,7 +8559,7 @@ - + @@ -8574,7 +8574,7 @@ - + @@ -8583,7 +8583,7 @@ - + @@ -8592,9 +8592,9 @@ - + - + @@ -8605,7 +8605,7 @@ - + @@ -8614,13 +8614,13 @@ - + - + - + @@ -8629,7 +8629,7 @@ - + @@ -8638,7 +8638,7 @@ - + @@ -8651,7 +8651,7 @@ - + @@ -8664,7 +8664,7 @@ - + @@ -8675,7 +8675,7 @@ - + @@ -8686,7 +8686,7 @@ - + @@ -8730,15 +8730,15 @@ - + - + - + @@ -8746,7 +8746,7 @@ - + @@ -8755,9 +8755,9 @@ - + - + @@ -8772,7 +8772,7 @@ - + @@ -8808,7 +8808,7 @@ - + @@ -8819,7 +8819,7 @@ - + @@ -8834,7 +8834,7 @@ - + @@ -8845,7 +8845,7 @@ - + @@ -8854,11 +8854,11 @@ - + - + @@ -8869,7 +8869,7 @@ - + @@ -8880,7 +8880,7 @@ - + @@ -8893,7 +8893,7 @@ - + @@ -8902,7 +8902,7 @@ - + @@ -8911,7 +8911,7 @@ - + @@ -8919,7 +8919,7 @@ - + @@ -8927,15 +8927,15 @@ - + - + - + @@ -8956,13 +8956,13 @@ - + - + @@ -8971,11 +8971,11 @@ - + - + @@ -8984,7 +8984,7 @@ - + @@ -8993,13 +8993,13 @@ - + - + - + - + @@ -9008,7 +9008,7 @@ - + @@ -9017,7 +9017,7 @@ - + @@ -9026,7 +9026,7 @@ - + @@ -9035,7 +9035,7 @@ - + @@ -9046,7 +9046,7 @@ - + @@ -9057,7 +9057,7 @@ - + @@ -9068,7 +9068,7 @@ - + @@ -9079,7 +9079,7 @@ - + @@ -9088,7 +9088,7 @@ - + @@ -9097,7 +9097,7 @@ - + @@ -9106,7 +9106,7 @@ - + @@ -9115,7 +9115,7 @@ - + @@ -9126,7 +9126,7 @@ - + @@ -9137,7 +9137,7 @@ - + @@ -9148,7 +9148,7 @@ - + @@ -9191,12 +9191,12 @@ - + - + @@ -9212,19 +9212,19 @@ - + - + - + - + @@ -9260,7 +9260,7 @@ - + @@ -9275,7 +9275,7 @@ - + @@ -9284,7 +9284,7 @@ - + @@ -9295,7 +9295,7 @@ - + @@ -9304,7 +9304,7 @@ - + @@ -9313,7 +9313,7 @@ - + @@ -9322,7 +9322,7 @@ - + @@ -9370,27 +9370,27 @@ - + - + - + - + - + - + @@ -9438,15 +9438,15 @@ - + - + - + - + @@ -9455,9 +9455,9 @@ - + - + @@ -9466,7 +9466,7 @@ - + @@ -9477,11 +9477,11 @@ - + - + @@ -9490,7 +9490,7 @@ - + @@ -9499,7 +9499,7 @@ - + @@ -9508,7 +9508,7 @@ - + @@ -9517,7 +9517,7 @@ - + @@ -9526,7 +9526,7 @@ - + @@ -9535,7 +9535,7 @@ - + @@ -9544,7 +9544,7 @@ - + @@ -9553,7 +9553,7 @@ - + @@ -9562,7 +9562,7 @@ - + @@ -9571,7 +9571,7 @@ - + @@ -9580,7 +9580,7 @@ - + @@ -9589,7 +9589,7 @@ - + @@ -9598,17 +9598,17 @@ - + - + - + - + - + @@ -9617,13 +9617,13 @@ - + - + - + - + @@ -9632,17 +9632,17 @@ - + - + - + - + - + - + @@ -9651,17 +9651,17 @@ - + - + - + - + - + - + @@ -9670,17 +9670,17 @@ - + - + - + - + - + - + @@ -9691,17 +9691,17 @@ - + - + - + - + - + - + @@ -9710,13 +9710,13 @@ - + - + - + - + @@ -9729,17 +9729,17 @@ - + - + - + - + - + - + @@ -9748,11 +9748,11 @@ - + - + - + @@ -9763,11 +9763,11 @@ - + - + - + @@ -9778,21 +9778,21 @@ - + - + - + - + - + - + - + @@ -9801,17 +9801,17 @@ - + - + - + - + - + - + @@ -9820,23 +9820,23 @@ - + - + - + - + - + - + - + - + - + @@ -9845,23 +9845,23 @@ - + - + - + - + - + - + - + - + - + @@ -9870,23 +9870,23 @@ - + - + - + - + - + - + - + - + - + @@ -9897,23 +9897,23 @@ - + - + - + - + - + - + - + - + - + @@ -9922,27 +9922,27 @@ - + - + - + - + - + - + - + - + - + @@ -9953,23 +9953,23 @@ - + - + - + - + - + - + - + - + - + @@ -9980,7 +9980,7 @@ - + @@ -9989,19 +9989,19 @@ - + - + - + - + - + - + @@ -10010,17 +10010,17 @@ - + - + - + - + - + - + @@ -10031,7 +10031,7 @@ - + @@ -10042,7 +10042,7 @@ - + @@ -10053,11 +10053,11 @@ - + - + - + @@ -10068,11 +10068,11 @@ - + - + - + @@ -10083,11 +10083,11 @@ - + - + - + @@ -10096,7 +10096,7 @@ - + @@ -10105,7 +10105,7 @@ - + @@ -10116,17 +10116,17 @@ - + - + - + - + - + - + @@ -10135,11 +10135,11 @@ - + - + - + @@ -10150,15 +10150,15 @@ - + - + - + - + @@ -10171,7 +10171,7 @@ - + @@ -10184,7 +10184,7 @@ - + @@ -10193,11 +10193,11 @@ - + - + - + @@ -10206,17 +10206,17 @@ - + - + - + - + @@ -10225,11 +10225,11 @@ - + - + - + @@ -10238,11 +10238,11 @@ - + - + - + @@ -10253,11 +10253,11 @@ - + - + - + @@ -10268,11 +10268,11 @@ - + - + - + @@ -10281,7 +10281,7 @@ - + @@ -10291,15 +10291,15 @@ - + - + - + @@ -10311,7 +10311,7 @@ - + @@ -10320,9 +10320,9 @@ - + - + @@ -10331,15 +10331,15 @@ - + - + - + - + @@ -10348,7 +10348,7 @@ - + @@ -10359,7 +10359,7 @@ - + @@ -10367,23 +10367,23 @@ - + - + - + - + - + @@ -10423,7 +10423,7 @@ - + @@ -10441,7 +10441,7 @@ - + @@ -10459,11 +10459,11 @@ - + - + @@ -10477,7 +10477,7 @@ - + @@ -10506,7 +10506,7 @@ - + @@ -10515,9 +10515,9 @@ - + - + @@ -10526,7 +10526,7 @@ - + @@ -10537,11 +10537,11 @@ - + - + @@ -10550,7 +10550,7 @@ - + @@ -10569,9 +10569,9 @@ - + - + @@ -10600,7 +10600,7 @@ - + @@ -10626,11 +10626,11 @@ - + - + @@ -10639,11 +10639,11 @@ - + - + @@ -10652,7 +10652,7 @@ - + @@ -10718,7 +10718,7 @@ - + @@ -10727,13 +10727,13 @@ - + - + - + - + @@ -10742,9 +10742,9 @@ - + - + @@ -10753,9 +10753,9 @@ - + - + @@ -10764,7 +10764,7 @@ - + @@ -10773,7 +10773,7 @@ - + @@ -10784,7 +10784,7 @@ - + @@ -10795,13 +10795,13 @@ - + - + - + - + @@ -10812,7 +10812,7 @@ - + @@ -10821,7 +10821,7 @@ - + @@ -10868,11 +10868,11 @@ - + - + @@ -10880,13 +10880,13 @@ - + - + @@ -10895,11 +10895,11 @@ - + - + @@ -10910,7 +10910,7 @@ - + @@ -10919,7 +10919,7 @@ - + @@ -10928,7 +10928,7 @@ - + @@ -10937,7 +10937,7 @@ - + @@ -10946,7 +10946,7 @@ - + @@ -10955,9 +10955,9 @@ - + - + @@ -10966,9 +10966,9 @@ - + - + @@ -10977,7 +10977,7 @@ - + @@ -10988,7 +10988,7 @@ - + @@ -10997,9 +10997,9 @@ - + - + @@ -11008,11 +11008,11 @@ - + - + - + @@ -11021,11 +11021,11 @@ - + - + - + @@ -11034,11 +11034,11 @@ - + - + - + @@ -11047,9 +11047,9 @@ - + - + @@ -11058,7 +11058,7 @@ - + @@ -11067,7 +11067,7 @@ - + @@ -11076,7 +11076,7 @@ - + @@ -11087,7 +11087,7 @@ - + @@ -11098,7 +11098,7 @@ - + @@ -11107,7 +11107,7 @@ - + @@ -11116,9 +11116,9 @@ - + - + @@ -11141,7 +11141,7 @@ - + @@ -11154,7 +11154,7 @@ - + @@ -11163,9 +11163,9 @@ - + - + @@ -11176,7 +11176,7 @@ - + @@ -11313,7 +11313,7 @@ - + @@ -11345,7 +11345,7 @@ - + @@ -11354,9 +11354,9 @@ - + - + @@ -11369,7 +11369,7 @@ - + @@ -11380,7 +11380,7 @@ - + @@ -11393,7 +11393,7 @@ - + @@ -11406,7 +11406,7 @@ - + @@ -11419,7 +11419,7 @@ - + @@ -11432,7 +11432,7 @@ - + @@ -11441,7 +11441,7 @@ - + @@ -11491,7 +11491,7 @@ - + @@ -11500,9 +11500,9 @@ - + - + @@ -11551,7 +11551,7 @@ - + @@ -11564,7 +11564,7 @@ - + @@ -11575,7 +11575,7 @@ - + @@ -11586,7 +11586,7 @@ - + @@ -11610,7 +11610,7 @@ - + @@ -11619,7 +11619,7 @@ - + @@ -11628,7 +11628,7 @@ - + @@ -11662,7 +11662,7 @@ - + @@ -11670,11 +11670,11 @@ - + - + @@ -11686,17 +11686,17 @@ - + - + - + - + @@ -11706,11 +11706,11 @@ - + - + @@ -11718,7 +11718,7 @@ - + @@ -11726,13 +11726,13 @@ - + - + - + - + @@ -11741,11 +11741,11 @@ - + - + - + @@ -11759,7 +11759,7 @@ - + @@ -11771,11 +11771,11 @@ - + - + @@ -11783,9 +11783,9 @@ - + - + @@ -11803,11 +11803,11 @@ - + - + @@ -11815,7 +11815,7 @@ - + @@ -11833,7 +11833,7 @@ - + @@ -11841,7 +11841,7 @@ - + @@ -11880,15 +11880,15 @@ - + - + - + @@ -11896,7 +11896,7 @@ - + @@ -11910,7 +11910,7 @@ - + @@ -11918,7 +11918,7 @@ - + @@ -11926,11 +11926,11 @@ - + - + @@ -11942,15 +11942,15 @@ - + - + - + @@ -12020,7 +12020,7 @@ - + @@ -12035,15 +12035,15 @@ - + - + - + @@ -12073,13 +12073,13 @@ - + - + - + @@ -12090,13 +12090,13 @@ - + - + @@ -12105,7 +12105,7 @@ - + @@ -12114,7 +12114,7 @@ - + @@ -12123,7 +12123,7 @@ - + @@ -12132,7 +12132,7 @@ - + @@ -12141,9 +12141,9 @@ - + - + @@ -12152,7 +12152,7 @@ - + @@ -12161,7 +12161,7 @@ - + @@ -12170,7 +12170,7 @@ - + @@ -12179,7 +12179,7 @@ - + @@ -12188,7 +12188,7 @@ - + @@ -12198,11 +12198,11 @@ - + - + @@ -12212,7 +12212,7 @@ - + @@ -12223,7 +12223,7 @@ - + @@ -12232,7 +12232,7 @@ - + @@ -12287,7 +12287,7 @@ - + @@ -12296,9 +12296,9 @@ - + - + @@ -12352,7 +12352,7 @@ - + @@ -12365,7 +12365,7 @@ - + @@ -12425,7 +12425,7 @@ - + @@ -12442,7 +12442,7 @@ - + @@ -12451,9 +12451,9 @@ - + - + @@ -12462,7 +12462,7 @@ - + @@ -12575,7 +12575,7 @@ - + @@ -12584,7 +12584,7 @@ - + @@ -12619,7 +12619,7 @@ - + @@ -12628,9 +12628,9 @@ - + - + @@ -12661,7 +12661,7 @@ - + @@ -12679,7 +12679,7 @@ - + @@ -12692,7 +12692,7 @@ - + @@ -12738,7 +12738,7 @@ - + @@ -12747,9 +12747,9 @@ - + - + @@ -12857,7 +12857,7 @@ - + @@ -12870,7 +12870,7 @@ - + @@ -12894,7 +12894,7 @@ - + @@ -12903,7 +12903,7 @@ - + @@ -12925,7 +12925,7 @@ - + @@ -12973,35 +12973,35 @@ - + - + - + - + - + - + - + - + @@ -13017,7 +13017,7 @@ - + @@ -13026,9 +13026,9 @@ - + - + @@ -13037,7 +13037,7 @@ - + @@ -13046,9 +13046,9 @@ - + - + @@ -13057,7 +13057,7 @@ - + @@ -13066,7 +13066,7 @@ - + @@ -13077,9 +13077,9 @@ - + - + @@ -13088,7 +13088,7 @@ - + @@ -13097,7 +13097,7 @@ - + @@ -13106,9 +13106,9 @@ - + - + @@ -13117,9 +13117,9 @@ - + - + @@ -13128,11 +13128,11 @@ - + - + @@ -13141,11 +13141,11 @@ - + - + - + @@ -13154,22 +13154,22 @@ - + - + - + - + - + @@ -13178,11 +13178,11 @@ - + - + @@ -13193,11 +13193,11 @@ - + - + @@ -13205,9 +13205,9 @@ - + - + @@ -13216,9 +13216,9 @@ - + - + @@ -13229,7 +13229,7 @@ - + @@ -13242,7 +13242,7 @@ - + @@ -13251,7 +13251,7 @@ - + @@ -13260,9 +13260,9 @@ - + - + @@ -13273,7 +13273,7 @@ - + @@ -13284,7 +13284,7 @@ - + @@ -13293,7 +13293,7 @@ - + @@ -13313,7 +13313,7 @@ - + @@ -13321,7 +13321,7 @@ - + @@ -13333,11 +13333,11 @@ - + - + @@ -13345,7 +13345,7 @@ - + @@ -13354,9 +13354,9 @@ - + - + @@ -13371,7 +13371,7 @@ - + @@ -13386,7 +13386,7 @@ - + @@ -13395,9 +13395,9 @@ - + - + @@ -13408,14 +13408,14 @@ - + - + @@ -13442,7 +13442,7 @@ - + @@ -13455,7 +13455,7 @@ - + @@ -13468,7 +13468,7 @@ - + @@ -13477,7 +13477,7 @@ - + @@ -13486,9 +13486,9 @@ - + - + @@ -13501,7 +13501,7 @@ - + @@ -13514,7 +13514,7 @@ - + @@ -13534,7 +13534,7 @@ - + @@ -13565,7 +13565,7 @@ - + @@ -13578,7 +13578,7 @@ - + @@ -13587,7 +13587,7 @@ - + @@ -13631,7 +13631,7 @@ - + @@ -13640,7 +13640,7 @@ - + @@ -13649,9 +13649,9 @@ - + - + @@ -13664,7 +13664,7 @@ - + @@ -13758,7 +13758,7 @@ - + @@ -13769,7 +13769,7 @@ - + @@ -13780,7 +13780,7 @@ - + @@ -13791,7 +13791,7 @@ - + @@ -13800,7 +13800,7 @@ - + @@ -13809,7 +13809,7 @@ - + @@ -13818,7 +13818,7 @@ - + @@ -13827,7 +13827,7 @@ - + @@ -13838,7 +13838,7 @@ - + @@ -13961,7 +13961,7 @@ - + @@ -13970,7 +13970,7 @@ - + @@ -13979,7 +13979,7 @@ - + @@ -13990,7 +13990,7 @@ - + @@ -14057,7 +14057,7 @@ - + @@ -14076,7 +14076,7 @@ - + @@ -14098,7 +14098,7 @@ - + @@ -14107,7 +14107,7 @@ - + @@ -14127,7 +14127,7 @@ - + @@ -14160,7 +14160,7 @@ - + @@ -14231,7 +14231,7 @@ - + @@ -14240,9 +14240,9 @@ - + - + @@ -14253,7 +14253,7 @@ - + @@ -14264,7 +14264,7 @@ - + @@ -14275,7 +14275,7 @@ - + @@ -14320,7 +14320,7 @@ - + @@ -14329,7 +14329,7 @@ - + @@ -14338,7 +14338,7 @@ - + @@ -14349,7 +14349,7 @@ - + @@ -14422,7 +14422,7 @@ - + @@ -14431,7 +14431,7 @@ - + @@ -14440,7 +14440,7 @@ - + @@ -14482,16 +14482,16 @@ - + - + - + - - + + @@ -14517,7 +14517,7 @@ - + @@ -14537,7 +14537,7 @@ - + @@ -14573,7 +14573,7 @@ - + @@ -14581,11 +14581,11 @@ - + - + @@ -14597,7 +14597,7 @@ - + @@ -14605,7 +14605,7 @@ - + @@ -14617,11 +14617,11 @@ - + - + @@ -14633,12 +14633,12 @@ - + - + @@ -14675,7 +14675,7 @@ - + @@ -14696,7 +14696,7 @@ - + @@ -14712,7 +14712,7 @@ - + @@ -14733,7 +14733,7 @@ - + @@ -14764,7 +14764,7 @@ - + @@ -14799,7 +14799,7 @@ - + @@ -14831,7 +14831,7 @@ - + @@ -14848,7 +14848,7 @@ - + @@ -14881,7 +14881,7 @@ - + @@ -14902,11 +14902,11 @@ - + - + @@ -14914,7 +14914,7 @@ - + @@ -14931,7 +14931,7 @@ - + @@ -14946,13 +14946,13 @@ - + - + @@ -14963,7 +14963,7 @@ - + @@ -14996,7 +14996,7 @@ - + @@ -15026,36 +15026,36 @@ - + - + - + - + - + - + - + - + @@ -15068,71 +15068,71 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -15141,16 +15141,16 @@ - + - + - + @@ -15164,7 +15164,7 @@ - + @@ -15173,25 +15173,25 @@ - + - + - + - + @@ -15204,7 +15204,7 @@ - + @@ -15217,57 +15217,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -15278,7 +15278,7 @@ - + @@ -15286,26 +15286,26 @@ - + - + - + - + - + - + - + @@ -15315,18 +15315,18 @@ - + - + - + - + @@ -15336,9 +15336,9 @@ - + - + @@ -15346,62 +15346,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -15409,14 +15409,14 @@ - + - + @@ -15424,18 +15424,18 @@ - + - + - + - + @@ -15443,9 +15443,9 @@ - + - + @@ -15453,7 +15453,7 @@ - + @@ -15567,7 +15567,7 @@ - + @@ -15590,7 +15590,7 @@ - + @@ -15603,7 +15603,7 @@ - + @@ -15616,7 +15616,7 @@ - + @@ -15648,11 +15648,11 @@ - + - + @@ -15660,20 +15660,20 @@ - + - + - + - + - + @@ -15682,25 +15682,25 @@ - + - + - + - + - + @@ -15713,7 +15713,7 @@ - + @@ -15732,7 +15732,7 @@ - + @@ -15747,7 +15747,7 @@ - + @@ -15764,14 +15764,14 @@ - + - + @@ -15781,21 +15781,21 @@ - + - + - + diff --git a/tests/data/test-annotate/test15-pr18892.so.abi b/tests/data/test-annotate/test15-pr18892.so.abi index 1af9906f..ec26e38a 100644 --- a/tests/data/test-annotate/test15-pr18892.so.abi +++ b/tests/data/test-annotate/test15-pr18892.so.abi @@ -3051,17 +3051,15 @@ - - - + - + @@ -3069,7 +3067,7 @@ - + @@ -3077,7 +3075,7 @@ - + @@ -3085,54 +3083,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3142,25 +3140,25 @@ - + - + - + - + - + - + @@ -3168,14 +3166,14 @@ - + - + @@ -3190,12 +3188,12 @@ - + - + @@ -3204,7 +3202,7 @@ - + @@ -3217,9 +3215,9 @@ - + - + @@ -3230,11 +3228,11 @@ - + - + - + @@ -3243,9 +3241,9 @@ - + - + @@ -3254,14 +3252,14 @@ - + - + @@ -3274,11 +3272,11 @@ - + - + - + @@ -3293,7 +3291,7 @@ - + @@ -3308,7 +3306,7 @@ - + @@ -3334,7 +3332,7 @@ - + @@ -3351,7 +3349,7 @@ - + @@ -3366,7 +3364,7 @@ - + @@ -3379,14 +3377,14 @@ - + - + @@ -3394,10 +3392,21 @@ - + + + + + + + + + + + + @@ -3429,7 +3438,7 @@ - + @@ -3439,11 +3448,11 @@ - + - + @@ -3451,7 +3460,7 @@ - + @@ -3469,20 +3478,20 @@ - + - + - + - + - + @@ -3493,42 +3502,42 @@ - + - + - + - + - + - + - + - + - + @@ -3538,9 +3547,9 @@ - + - + @@ -3549,7 +3558,7 @@ - + @@ -3569,20 +3578,30 @@ + + + + + + + + + + - + - + - + - - + + @@ -3661,76 +3680,76 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3741,53 +3760,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -3795,19 +3814,19 @@ - + - + - + - - + + @@ -3815,21 +3834,21 @@ - + - + - + - + @@ -3837,16 +3856,16 @@ - + - + - - + + @@ -3859,54 +3878,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -3917,7 +3936,7 @@ - + @@ -3925,150 +3944,150 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4077,11 +4096,11 @@ - + - + - + @@ -4090,7 +4109,7 @@ - + @@ -4099,13 +4118,13 @@ - + - + - + @@ -4119,25 +4138,25 @@ - + - + - + - + @@ -4155,7 +4174,7 @@ - + @@ -4166,7 +4185,7 @@ - + @@ -4175,7 +4194,7 @@ - + @@ -4185,7 +4204,7 @@ - + @@ -4194,9 +4213,9 @@ - + - + @@ -4205,30 +4224,30 @@ - + - + - + - + - + - + - + - + @@ -4248,16 +4267,16 @@ - + - + - + - + @@ -4266,18 +4285,18 @@ - + - + - + - + @@ -4290,9 +4309,9 @@ - + - + @@ -4300,46 +4319,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4352,38 +4371,38 @@ - + - + - + - + - + - + - + - + - + @@ -4395,20 +4414,20 @@ - + - + - + - + - + @@ -4417,16 +4436,16 @@ - + - + - + @@ -4435,7 +4454,7 @@ - + @@ -4447,54 +4466,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4503,11 +4522,11 @@ - + - + - + @@ -4516,28 +4535,28 @@ - + - + - + - + - + - + - + - + - + @@ -4546,33 +4565,33 @@ - + - + - + - + - + - + - + - + - + @@ -4581,11 +4600,11 @@ - + - + - + @@ -4594,9 +4613,9 @@ - + - + @@ -4605,11 +4624,11 @@ - + - + - + @@ -4618,34 +4637,34 @@ - + - + - + - + - + - + - + @@ -4653,17 +4672,17 @@ - + - + - + - + @@ -4673,29 +4692,29 @@ - + - + - + - + - + - + @@ -4704,11 +4723,11 @@ - + - + - + @@ -4717,18 +4736,18 @@ - + - + - + - + @@ -4737,20 +4756,20 @@ - + - + - + - + @@ -4759,17 +4778,17 @@ - + - + - + - + - + - + @@ -4786,24 +4805,24 @@ - + - + - + - + - + - + - + @@ -4812,7 +4831,7 @@ - + @@ -4822,62 +4841,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4886,9 +4905,9 @@ - + - + @@ -4897,31 +4916,31 @@ - + - + - + - + - + - + - + - + @@ -4930,16 +4949,16 @@ - + - + - + @@ -4948,34 +4967,34 @@ - + - + - + - + - + - + - + @@ -4984,9 +5003,9 @@ - + - + @@ -4995,9 +5014,9 @@ - + - + @@ -5006,9 +5025,9 @@ - + - + @@ -5017,11 +5036,11 @@ - + - + - + @@ -5031,26 +5050,26 @@ - + - + - + - + - + - + @@ -5059,9 +5078,9 @@ - + - + @@ -5070,31 +5089,31 @@ - + - + - + - + - + - + - + - + @@ -5103,16 +5122,16 @@ - + - + - + @@ -5121,34 +5140,34 @@ - + - + - + - + - + - + - + @@ -5157,9 +5176,9 @@ - + - + @@ -5168,9 +5187,9 @@ - + - + @@ -5179,9 +5198,9 @@ - + - + @@ -5211,7 +5230,7 @@ - + @@ -5221,9 +5240,9 @@ - + - + @@ -5232,43 +5251,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -5279,7 +5298,7 @@ - + @@ -5288,7 +5307,7 @@ - + @@ -5297,7 +5316,7 @@ - + @@ -5308,7 +5327,7 @@ - + @@ -5317,20 +5336,20 @@ - + - + - + - + - + @@ -5338,30 +5357,30 @@ - + - + - + - + - + - + - + @@ -5369,77 +5388,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5447,20 +5466,20 @@ - + - + - + - + - + @@ -5469,29 +5488,29 @@ - + - + - + - + - + - + - + - + @@ -5500,74 +5519,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5576,21 +5595,21 @@ - + - + - + @@ -5607,116 +5626,116 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5725,9 +5744,9 @@ - + - + @@ -5741,25 +5760,25 @@ - + - + - + - + - + @@ -5769,29 +5788,29 @@ - + - + - + - + - + - + - + @@ -5799,19 +5818,19 @@ - + - + - + - + @@ -5820,28 +5839,28 @@ - + - + - + - + - + - + - + - + @@ -5850,19 +5869,19 @@ - + - + - + - + - + - + @@ -5876,9 +5895,9 @@ - + - + @@ -5887,7 +5906,7 @@ - + @@ -5896,28 +5915,28 @@ - + - + - + - + - + - + - + - + @@ -5926,62 +5945,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5990,9 +6009,9 @@ - + - + @@ -6001,16 +6020,16 @@ - + - + - + @@ -6019,27 +6038,27 @@ - + - + - + - + - + - + @@ -6048,9 +6067,9 @@ - + - + @@ -6058,9 +6077,9 @@ - + - + @@ -6069,26 +6088,26 @@ - + - + - + - + - + - - + + @@ -6100,14 +6119,14 @@ - + - + - + - + @@ -6115,53 +6134,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6172,23 +6191,23 @@ - + - + - + - + @@ -6198,44 +6217,44 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6249,1123 +6268,1123 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7374,30 +7393,30 @@ - + - + - + - + - + - + @@ -7416,36 +7435,36 @@ - + - + - + - + - + - + - + - + - + - + @@ -7455,12 +7474,12 @@ - + - + @@ -7472,54 +7491,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7529,21 +7548,21 @@ - + - + - + - + - + @@ -7551,18 +7570,18 @@ - + - + - + - + @@ -7574,10 +7593,10 @@ - + - + @@ -7586,88 +7605,88 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7676,22 +7695,22 @@ - + - + - + - + - + - + @@ -7700,9 +7719,9 @@ - + - + @@ -7711,56 +7730,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7769,9 +7788,9 @@ - + - + @@ -7780,31 +7799,31 @@ - + - + - + - + - + - + - + - + @@ -7813,16 +7832,16 @@ - + - + - + @@ -7831,34 +7850,34 @@ - + - + - + - + - + - + - + @@ -7867,9 +7886,9 @@ - + - + @@ -7878,9 +7897,9 @@ - + - + @@ -7889,9 +7908,9 @@ - + - + @@ -7900,63 +7919,63 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7965,27 +7984,27 @@ - + - + - + - + - + - + - + - + - + @@ -7994,10 +8013,10 @@ - + - + @@ -8005,34 +8024,34 @@ - + - + - + - + - + - + - + - + @@ -8041,9 +8060,9 @@ - + - + @@ -8052,21 +8071,21 @@ - + - + - + - + @@ -8075,31 +8094,31 @@ - + - + - + - + - + - + - + @@ -8108,16 +8127,16 @@ - + - + - + @@ -8126,7 +8145,7 @@ - + @@ -8135,34 +8154,34 @@ - + - + - + - + - + - + - + - + @@ -8171,9 +8190,9 @@ - + - + @@ -8191,7 +8210,7 @@ - + @@ -8199,27 +8218,27 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -8227,36 +8246,36 @@ - + - + - + - + - + - + - + @@ -8271,34 +8290,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + @@ -8313,83 +8348,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8398,13 +8433,13 @@ - + - + - + @@ -8413,64 +8448,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8479,7 +8514,7 @@ - + @@ -8490,51 +8525,51 @@ - + - + - + - + - + - + - + - + - + - + @@ -8545,13 +8580,13 @@ - + - + - + @@ -8560,7 +8595,7 @@ - + @@ -8569,22 +8604,22 @@ - + - + - + - + - + @@ -8593,67 +8628,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8662,7 +8697,7 @@ - + @@ -8671,7 +8706,7 @@ - + @@ -8682,14 +8717,14 @@ - + - + @@ -8698,46 +8733,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -8748,7 +8783,7 @@ - + @@ -8760,102 +8795,86 @@ - + - + - + - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8863,23 +8882,23 @@ - + - + - + - + - + @@ -8897,8 +8916,8 @@ - - + + @@ -8927,9 +8946,9 @@ - + - + @@ -8941,30 +8960,30 @@ - + - + - + - + - + - + - + @@ -8973,9 +8992,9 @@ - + - + @@ -8984,7 +9003,7 @@ - + @@ -8993,49 +9012,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -9044,9 +9063,9 @@ - + - + @@ -9055,9 +9074,9 @@ - + - + @@ -9066,9 +9085,9 @@ - + - + @@ -9077,29 +9096,29 @@ - + - + - + - + - + - + @@ -9108,22 +9127,22 @@ - + - + - + - + - + - + @@ -9132,9 +9151,9 @@ - + - + @@ -9143,18 +9162,18 @@ - + - + - + - + @@ -9163,9 +9182,9 @@ - + - + @@ -9174,9 +9193,9 @@ - + - + @@ -9185,9 +9204,9 @@ - + - + @@ -9196,23 +9215,23 @@ - + - + - + - + @@ -9221,16 +9240,16 @@ - + - + - + @@ -9239,7 +9258,7 @@ - + @@ -9253,36 +9272,36 @@ - + - + - + - + - + - + - + - + - + @@ -9293,7 +9312,7 @@ - + @@ -9313,14 +9332,14 @@ - + - + @@ -9332,7 +9351,7 @@ - + @@ -9344,7 +9363,7 @@ - + @@ -9356,39 +9375,39 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -9400,61 +9419,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -9463,15 +9482,15 @@ - + - + - + @@ -9479,34 +9498,34 @@ - + - + - + - + - + - + - + - + - + @@ -9515,41 +9534,41 @@ - + - + - + - + - + - + - + - + - + - + @@ -9558,49 +9577,49 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -9609,64 +9628,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -9675,9 +9694,9 @@ - + - + @@ -9686,13 +9705,13 @@ - + - + - + @@ -9701,31 +9720,31 @@ - + - + - + - + - + - + @@ -9733,1448 +9752,1453 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -11183,7 +11207,7 @@ - + @@ -11197,11 +11221,11 @@ - + - + - + @@ -11209,45 +11233,45 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -11256,7 +11280,7 @@ - + @@ -11267,70 +11291,70 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -11339,9 +11363,9 @@ - + - + @@ -11350,31 +11374,31 @@ - + - + - + - + - + - + - + - + @@ -11383,16 +11407,16 @@ - + - + - + @@ -11401,34 +11425,34 @@ - + - + - + - + - + - + - + @@ -11437,9 +11461,9 @@ - + - + @@ -11448,9 +11472,9 @@ - + - + @@ -11459,35 +11483,35 @@ - + - + - + - + - + - + - + - + @@ -11496,9 +11520,9 @@ - + - + @@ -11507,31 +11531,31 @@ - + - + - + - + - + - + - + - + @@ -11540,16 +11564,16 @@ - + - + - + @@ -11558,34 +11582,34 @@ - + - + - + - + - + - + - + @@ -11594,9 +11618,9 @@ - + - + @@ -11605,9 +11629,9 @@ - + - + @@ -11616,19 +11640,19 @@ - + - + - + - + @@ -11643,54 +11667,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -11699,9 +11723,9 @@ - + - + @@ -11710,7 +11734,7 @@ - + @@ -11721,7 +11745,7 @@ - + @@ -11730,20 +11754,20 @@ - + - + - + - + - + @@ -11752,9 +11776,9 @@ - + - + @@ -11763,136 +11787,136 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -11900,7 +11924,7 @@ - + @@ -11908,37 +11932,37 @@ - + - + - + - + - + - + - + - + - + - + @@ -11957,84 +11981,84 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -12042,73 +12066,73 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -12120,137 +12144,137 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -12259,27 +12283,27 @@ - + - + - + - + - + - + - + @@ -12288,160 +12312,160 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -12450,31 +12474,31 @@ - + - + - + - + - + - + - + @@ -12488,9 +12512,9 @@ - + - + @@ -12500,87 +12524,82 @@ - + - + - + - + - + - - - - - - + - + - + - + - + - + - + - + - + - + - + @@ -12589,7 +12608,7 @@ - + @@ -12602,7 +12621,7 @@ - + @@ -12621,7 +12640,7 @@ - + @@ -12957,7 +12976,7 @@ - + @@ -13150,7 +13169,7 @@ - + @@ -13161,7 +13180,7 @@ - + @@ -13978,9 +13997,9 @@ - + - + @@ -14000,7 +14019,7 @@ - + @@ -15342,7 +15361,7 @@ - + @@ -15371,7 +15390,7 @@ - + @@ -15380,9 +15399,9 @@ - + - + @@ -15408,7 +15427,7 @@ - + @@ -15436,7 +15455,7 @@ - + @@ -15723,11 +15742,11 @@ - + - + - + @@ -15771,11 +15790,11 @@ - + - + - + @@ -15816,7 +15835,7 @@ - + @@ -15827,7 +15846,7 @@ - + @@ -15836,7 +15855,7 @@ - + @@ -15847,7 +15866,7 @@ - + @@ -16000,7 +16019,7 @@ - + @@ -16013,7 +16032,7 @@ - + @@ -16037,7 +16056,7 @@ - + @@ -16050,7 +16069,7 @@ - + @@ -16104,7 +16123,7 @@ - + @@ -16121,7 +16140,7 @@ - + @@ -16136,7 +16155,7 @@ - + @@ -16153,7 +16172,7 @@ - + @@ -16231,7 +16250,7 @@ - + @@ -16244,7 +16263,7 @@ - + @@ -16384,7 +16403,7 @@ - + @@ -16397,7 +16416,7 @@ - + @@ -16408,7 +16427,7 @@ - + @@ -16421,7 +16440,7 @@ - + @@ -16432,7 +16451,7 @@ - + @@ -16445,7 +16464,7 @@ - + @@ -16456,7 +16475,7 @@ - + @@ -16471,7 +16490,7 @@ - + @@ -16484,7 +16503,7 @@ - + @@ -16497,7 +16516,7 @@ - + @@ -16508,7 +16527,7 @@ - + @@ -16521,7 +16540,7 @@ - + @@ -16566,7 +16585,7 @@ - + @@ -16585,7 +16604,7 @@ - + @@ -16680,7 +16699,7 @@ - + @@ -16699,7 +16718,7 @@ - + @@ -16813,7 +16832,7 @@ - + @@ -16826,11 +16845,11 @@ - + - + - + @@ -16843,11 +16862,11 @@ - + - + - + @@ -17696,7 +17715,7 @@ - + @@ -17956,9 +17975,9 @@ - + - + @@ -18113,9 +18132,9 @@ - + - + @@ -18408,7 +18427,7 @@ - + @@ -18423,7 +18442,7 @@ - + @@ -18545,7 +18564,7 @@ - + @@ -18571,7 +18590,7 @@ - + @@ -18699,11 +18718,11 @@ - + - + - + @@ -18718,11 +18737,11 @@ - + - + - + @@ -18735,7 +18754,7 @@ - + @@ -18768,7 +18787,7 @@ - + @@ -18913,7 +18932,7 @@ - + @@ -18932,7 +18951,7 @@ - + @@ -18949,7 +18968,7 @@ - + @@ -18968,7 +18987,7 @@ - + @@ -18985,187 +19004,187 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19195,11 +19214,11 @@ - + - + @@ -19208,18 +19227,18 @@ - + - + - + - + @@ -19228,7 +19247,7 @@ - + @@ -19237,7 +19256,7 @@ - + @@ -19246,7 +19265,7 @@ - + @@ -19255,7 +19274,7 @@ - + @@ -19264,7 +19283,7 @@ - + @@ -19273,41 +19292,41 @@ - + - + - + - + - + - + - + - + - + @@ -19318,41 +19337,41 @@ - + - + - + - + - + - + - + - + @@ -19361,18 +19380,18 @@ - + - + - + - + @@ -19381,16 +19400,16 @@ - + - + - + @@ -19399,16 +19418,16 @@ - + - + - + @@ -19417,16 +19436,16 @@ - + - + - + @@ -19435,41 +19454,41 @@ - + - + - + - + - + - + - + @@ -19478,7 +19497,7 @@ - + @@ -19487,228 +19506,228 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19720,116 +19739,116 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19838,14 +19857,14 @@ - + - + @@ -19854,274 +19873,274 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -20130,144 +20149,144 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -20276,9 +20295,9 @@ - + - + @@ -20288,7 +20307,7 @@ - + @@ -20297,9 +20316,9 @@ - + - + @@ -20309,16 +20328,16 @@ - + - + - + @@ -20326,7 +20345,7 @@ - + @@ -20335,9 +20354,9 @@ - + - + @@ -20347,7 +20366,7 @@ - + @@ -20356,9 +20375,9 @@ - + - + @@ -20368,16 +20387,16 @@ - + - + - + @@ -20385,7 +20404,7 @@ - + @@ -20394,14 +20413,14 @@ - + - + @@ -20410,14 +20429,14 @@ - + - + @@ -20426,238 +20445,238 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -20666,9 +20685,9 @@ - + - + @@ -20677,7 +20696,7 @@ - + @@ -20686,9 +20705,9 @@ - + - + @@ -20697,7 +20716,7 @@ - + @@ -20709,9 +20728,9 @@ - + - + @@ -20724,7 +20743,7 @@ - + @@ -20733,85 +20752,85 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -20825,19 +20844,19 @@ - + - + - + @@ -20846,40 +20865,40 @@ - + - + - + - + - + - + - + - + @@ -20906,293 +20925,293 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -21201,18 +21220,18 @@ - + - + - + @@ -21221,18 +21240,18 @@ - + - + - + @@ -21241,18 +21260,18 @@ - + - + - + @@ -21261,18 +21280,18 @@ - + - + - + @@ -21281,14 +21300,14 @@ - + - + @@ -21297,62 +21316,62 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -21361,9 +21380,9 @@ - + - + @@ -21374,21 +21393,21 @@ - + - + - + @@ -21397,21 +21416,21 @@ - + - + - + @@ -21420,28 +21439,28 @@ - + - + - + - + @@ -21450,44 +21469,44 @@ - + - + - + - + - + - + - + @@ -21496,21 +21515,21 @@ - + - + - + @@ -21519,23 +21538,23 @@ - + - + - + - + @@ -21544,64 +21563,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -21610,24 +21629,24 @@ - + - + - + - + - + - + - + @@ -21636,15 +21655,15 @@ - + - + - + - + - + @@ -21671,7 +21690,7 @@ - + @@ -21689,7 +21708,7 @@ - + @@ -21698,7 +21717,7 @@ - + @@ -21707,7 +21726,7 @@ - + @@ -21718,7 +21737,7 @@ - + @@ -21727,9 +21746,9 @@ - + - + @@ -21738,9 +21757,9 @@ - + - + @@ -21751,9 +21770,9 @@ - + - + @@ -21762,7 +21781,7 @@ - + @@ -21771,9 +21790,9 @@ - + - + @@ -21782,14 +21801,14 @@ - + - + @@ -21798,7 +21817,7 @@ - + @@ -21819,32 +21838,32 @@ - + - + - + - + - + - + @@ -21853,7 +21872,7 @@ - + @@ -21874,32 +21893,32 @@ - + - + - + - + - + - + @@ -21915,61 +21934,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -21980,21 +21999,21 @@ - + - + - + - + - + @@ -22032,7 +22051,7 @@ - + @@ -22043,7 +22062,7 @@ - + @@ -22060,7 +22079,7 @@ - + @@ -22158,7 +22177,7 @@ - + @@ -22459,7 +22478,7 @@ - + @@ -22472,7 +22491,7 @@ - + @@ -22633,7 +22652,7 @@ - + @@ -22767,7 +22786,7 @@ - + @@ -22839,9 +22858,9 @@ - + - + @@ -23076,13 +23095,13 @@ - + - + @@ -23091,7 +23110,7 @@ - + @@ -23114,7 +23133,7 @@ - + @@ -23127,9 +23146,9 @@ - + - + @@ -23140,26 +23159,26 @@ - + - + - + - + - + - + @@ -23171,656 +23190,656 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -23832,7 +23851,7 @@ - + @@ -23841,26 +23860,26 @@ - + - + - + - + @@ -23869,178 +23888,178 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24049,29 +24068,29 @@ - + - + - + - + - + @@ -24080,32 +24099,32 @@ - + - + - + - + - + - + @@ -24114,72 +24133,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24188,1065 +24207,1065 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -25254,10 +25273,10 @@ - + - + @@ -25267,462 +25286,462 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -25731,7 +25750,7 @@ - + @@ -25742,217 +25761,217 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -25979,48 +25998,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -26041,30 +26060,30 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -26074,7 +26093,7 @@ - + @@ -26082,61 +26101,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -26144,38 +26163,38 @@ - + - + - + - + - + - + - + - + - + @@ -26184,9 +26203,9 @@ - + - + @@ -26195,7 +26214,7 @@ - + @@ -26204,49 +26223,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -26255,9 +26274,9 @@ - + - + @@ -26266,9 +26285,9 @@ - + - + @@ -26277,9 +26296,9 @@ - + - + @@ -26288,39 +26307,39 @@ - + - + - + - + - + - + - + - + - + @@ -26329,9 +26348,9 @@ - + - + @@ -26343,9 +26362,9 @@ - + - + @@ -26354,9 +26373,9 @@ - + - + @@ -26365,9 +26384,9 @@ - + - + @@ -26376,9 +26395,9 @@ - + - + @@ -26387,9 +26406,9 @@ - + - + @@ -26398,11 +26417,11 @@ - + - + - + @@ -26411,9 +26430,9 @@ - + - + @@ -26422,9 +26441,9 @@ - + - + @@ -26433,9 +26452,9 @@ - + - + @@ -26444,11 +26463,11 @@ - + - + - + @@ -26457,11 +26476,11 @@ - + - + - + @@ -26470,9 +26489,9 @@ - + - + @@ -26481,7 +26500,7 @@ - + @@ -26490,11 +26509,11 @@ - + - + - + @@ -26503,9 +26522,9 @@ - + - + @@ -26514,7 +26533,7 @@ - + @@ -26523,9 +26542,9 @@ - + - + @@ -26534,9 +26553,9 @@ - + - + @@ -26545,9 +26564,9 @@ - + - + @@ -26556,9 +26575,9 @@ - + - + @@ -26567,9 +26586,9 @@ - + - + @@ -26578,9 +26597,9 @@ - + - + @@ -26589,9 +26608,9 @@ - + - + @@ -26602,11 +26621,11 @@ - + - + - + @@ -26617,9 +26636,9 @@ - + - + @@ -26630,7 +26649,7 @@ - + @@ -26639,7 +26658,7 @@ - + @@ -26648,7 +26667,7 @@ - + @@ -26657,7 +26676,7 @@ - + @@ -26666,7 +26685,7 @@ - + @@ -26675,7 +26694,7 @@ - + @@ -26684,11 +26703,11 @@ - + - + - + @@ -26697,11 +26716,11 @@ - + - + - + @@ -26710,7 +26729,7 @@ - + @@ -26721,9 +26740,9 @@ - + - + @@ -26732,9 +26751,9 @@ - + - + @@ -26743,11 +26762,11 @@ - + - + - + @@ -26756,12 +26775,12 @@ - + - + @@ -26775,142 +26794,142 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + @@ -26921,21 +26940,21 @@ - + - + - + - + - - + + @@ -26944,321 +26963,321 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -27266,60 +27285,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -27328,11 +27347,11 @@ - + - + - + @@ -27341,11 +27360,11 @@ - + - + - + @@ -27354,11 +27373,11 @@ - + - + - + @@ -27369,9 +27388,9 @@ - + - + @@ -27380,7 +27399,7 @@ - + @@ -27389,11 +27408,11 @@ - + - + - + @@ -27402,35 +27421,35 @@ - + - + - + - + - + - + - + - + @@ -27439,11 +27458,11 @@ - + - + - + @@ -27452,11 +27471,11 @@ - + - + - + @@ -27465,28 +27484,28 @@ - + - + - + - + - + - + - - + + @@ -27494,18 +27513,18 @@ - + - + - + - + @@ -27514,9 +27533,9 @@ - + - + @@ -27525,9 +27544,9 @@ - + - + @@ -27536,23 +27555,23 @@ - + - + - + - + - + @@ -27561,9 +27580,9 @@ - + - + @@ -27572,25 +27591,25 @@ - + - + - + - + - + @@ -27599,7 +27618,7 @@ - + @@ -27608,16 +27627,16 @@ - + - + - + @@ -27626,7 +27645,7 @@ - + @@ -27635,105 +27654,105 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -27742,11 +27761,11 @@ - + - + - + @@ -27755,11 +27774,11 @@ - + - + - + @@ -27768,39 +27787,39 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -27811,7 +27830,7 @@ - + @@ -27820,14 +27839,14 @@ - + - + @@ -27840,25 +27859,25 @@ - + - + - + - + - + @@ -27869,16 +27888,16 @@ - + - + - + @@ -27887,7 +27906,7 @@ - + @@ -27896,7 +27915,7 @@ - + @@ -27905,7 +27924,7 @@ - + @@ -27914,9 +27933,9 @@ - + - + @@ -27927,66 +27946,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -27995,7 +28014,7 @@ - + @@ -28004,7 +28023,7 @@ - + @@ -28013,7 +28032,7 @@ - + @@ -28022,7 +28041,7 @@ - + @@ -28031,9 +28050,9 @@ - + - + @@ -28042,39 +28061,39 @@ - + - + - + - + - + - + - + - + @@ -28083,18 +28102,18 @@ - + - + - + - + @@ -28103,100 +28122,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -28210,9 +28229,9 @@ - + - + @@ -28224,49 +28243,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -28275,11 +28294,11 @@ - + - + - + @@ -28288,11 +28307,11 @@ - + - + - + @@ -28301,11 +28320,11 @@ - + - + - + @@ -28316,9 +28335,9 @@ - + - + @@ -28327,7 +28346,7 @@ - + @@ -28336,11 +28355,11 @@ - + - + - + @@ -28349,68 +28368,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -28419,9 +28438,9 @@ - + - + @@ -28430,11 +28449,11 @@ - + - + - + @@ -28443,18 +28462,18 @@ - + - + - + - + @@ -28465,28 +28484,28 @@ - + - + - + - + - + - + - + - + - + @@ -28495,29 +28514,29 @@ - + - + - + - + - + @@ -28528,38 +28547,38 @@ - + - + - + - + - + - + - + - + @@ -28568,7 +28587,7 @@ - + @@ -28577,7 +28596,7 @@ - + @@ -28586,9 +28605,9 @@ - + - + @@ -28599,7 +28618,7 @@ - + @@ -28608,85 +28627,85 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -28695,27 +28714,27 @@ - + - + - + - + - + - + @@ -28724,9 +28743,9 @@ - + - + @@ -28735,7 +28754,7 @@ - + @@ -28744,27 +28763,27 @@ - + - + - + - + - + - + @@ -28773,9 +28792,9 @@ - + - + @@ -28784,100 +28803,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -28891,9 +28910,9 @@ - + - + @@ -28905,20 +28924,20 @@ - + - + - + - + @@ -28927,7 +28946,7 @@ - + @@ -28936,38 +28955,38 @@ - + - + - + - + - + - + - + - + - + @@ -28976,122 +28995,122 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -29100,13 +29119,13 @@ - + - + - + - + @@ -29115,16 +29134,16 @@ - + - + - + @@ -29133,7 +29152,7 @@ - + @@ -29142,7 +29161,7 @@ - + @@ -29151,37 +29170,37 @@ - + - + - + - + - + - + - + - + - + - + @@ -29192,46 +29211,46 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -29242,9 +29261,9 @@ - + - + @@ -29255,9 +29274,9 @@ - + - + @@ -29266,9 +29285,9 @@ - + - + @@ -29279,9 +29298,9 @@ - + - + @@ -29290,11 +29309,11 @@ - + - + - + @@ -29305,9 +29324,9 @@ - + - + @@ -29316,76 +29335,76 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -29394,9 +29413,9 @@ - + - + @@ -29405,7 +29424,7 @@ - + @@ -29416,7 +29435,7 @@ - + @@ -29425,7 +29444,7 @@ - + @@ -29436,7 +29455,7 @@ - + @@ -29445,9 +29464,9 @@ - + - + @@ -29458,15 +29477,15 @@ - + - + - + - + - + @@ -29477,7 +29496,7 @@ - + @@ -29486,9 +29505,9 @@ - + - + @@ -29497,9 +29516,9 @@ - + - + @@ -29508,7 +29527,7 @@ - + @@ -29517,7 +29536,7 @@ - + @@ -29528,7 +29547,7 @@ - + @@ -29537,7 +29556,7 @@ - + @@ -29548,7 +29567,7 @@ - + @@ -29559,33 +29578,33 @@ - + - + - + - + - + - + - + @@ -29594,27 +29613,27 @@ - + - + - + - + - + - + @@ -29623,9 +29642,9 @@ - + - + @@ -29634,7 +29653,7 @@ - + @@ -29643,27 +29662,27 @@ - + - + - + - + - + - + @@ -29672,9 +29691,9 @@ - + - + @@ -29683,33 +29702,33 @@ - + - + - + - + - + - + - + @@ -29718,9 +29737,9 @@ - + - + @@ -29729,31 +29748,31 @@ - + - + - + - + - + - + - + - + @@ -29762,16 +29781,16 @@ - + - + - + @@ -29780,34 +29799,34 @@ - + - + - + - + - + - + - + @@ -29816,9 +29835,9 @@ - + - + @@ -29827,9 +29846,9 @@ - + - + @@ -29838,19 +29857,19 @@ - + - + - + - + @@ -29858,16 +29877,16 @@ - + - + - - + + @@ -29878,10 +29897,10 @@ - + - + @@ -29893,19 +29912,19 @@ - + - + - + - + @@ -29913,195 +29932,195 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30110,59 +30129,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30171,9 +30190,9 @@ - + - + @@ -30182,43 +30201,43 @@ - + - + - + - + - + - + - + - + - + @@ -30227,7 +30246,7 @@ - + @@ -30236,7 +30255,7 @@ - + @@ -30245,18 +30264,18 @@ - + - + - + - + @@ -30265,16 +30284,16 @@ - + - + - + @@ -30283,31 +30302,31 @@ - + - + - + - + - + - + - + @@ -30316,9 +30335,9 @@ - + - + @@ -30327,7 +30346,7 @@ - + @@ -30336,72 +30355,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30410,13 +30429,13 @@ - + - + - + - + @@ -30425,11 +30444,11 @@ - + - + - + @@ -30438,9 +30457,9 @@ - + - + @@ -30449,29 +30468,29 @@ - + - + - + - + - + - + - + @@ -30480,39 +30499,39 @@ - + - + - + - + - + - + - + - + - + @@ -30521,9 +30540,9 @@ - + - + @@ -30532,7 +30551,7 @@ - + @@ -30541,49 +30560,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -30592,9 +30611,9 @@ - + - + @@ -30603,9 +30622,9 @@ - + - + @@ -30614,9 +30633,9 @@ - + - + @@ -30625,60 +30644,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30687,9 +30706,9 @@ - + - + @@ -30698,9 +30717,9 @@ - + - + @@ -30709,9 +30728,9 @@ - + - + @@ -30720,7 +30739,7 @@ - + @@ -30729,7 +30748,7 @@ - + @@ -30740,7 +30759,7 @@ - + @@ -30749,7 +30768,7 @@ - + @@ -30760,7 +30779,7 @@ - + @@ -30771,27 +30790,27 @@ - + - + - + - + - + @@ -30800,9 +30819,9 @@ - + - + @@ -30811,9 +30830,9 @@ - + - + @@ -30822,15 +30841,15 @@ - + - - + + @@ -30845,87 +30864,87 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30934,34 +30953,34 @@ - + - + - + - + - + - + - + @@ -30970,7 +30989,7 @@ - + @@ -30979,21 +30998,21 @@ - + - + - + - + @@ -31002,9 +31021,9 @@ - + - + @@ -31013,110 +31032,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31125,9 +31144,9 @@ - + - + @@ -31136,7 +31155,7 @@ - + @@ -31145,29 +31164,29 @@ - + - + - + - + - + - + - + @@ -31176,9 +31195,9 @@ - + - + @@ -31187,7 +31206,7 @@ - + @@ -31196,7 +31215,7 @@ - + @@ -31205,7 +31224,7 @@ - + @@ -31214,7 +31233,7 @@ - + @@ -31223,7 +31242,7 @@ - + @@ -31232,9 +31251,9 @@ - + - + @@ -31243,9 +31262,9 @@ - + - + @@ -31254,11 +31273,11 @@ - + - + - + @@ -31267,17 +31286,17 @@ - + - + - - + + @@ -31719,76 +31738,76 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31797,81 +31816,81 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31880,9 +31899,9 @@ - + - + @@ -31891,7 +31910,7 @@ - + @@ -31900,49 +31919,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -31951,9 +31970,9 @@ - + - + @@ -31962,9 +31981,9 @@ - + - + @@ -31973,9 +31992,9 @@ - + - + @@ -31984,75 +32003,75 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -32061,9 +32080,9 @@ - + - + @@ -32072,7 +32091,7 @@ - + @@ -32081,49 +32100,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -32132,9 +32151,9 @@ - + - + @@ -32143,9 +32162,9 @@ - + - + @@ -32154,9 +32173,9 @@ - + - + @@ -32165,43 +32184,43 @@ - + - + - + - + - + - + - + - + - + - - + + @@ -32211,48 +32230,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -32260,23 +32279,23 @@ - + - + - + - + - + @@ -32284,67 +32303,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -32356,871 +32375,871 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33229,30 +33248,30 @@ - + - + - + - + - + - + - + - + - + @@ -33261,61 +33280,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33324,9 +33343,9 @@ - + - + @@ -33336,166 +33355,166 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33504,161 +33523,161 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33667,15 +33686,15 @@ - + - + - + - + - + @@ -33684,9 +33703,9 @@ - + - + @@ -33697,15 +33716,15 @@ - + - + - + - + @@ -33714,29 +33733,29 @@ - + - + - + - + - + @@ -33747,7 +33766,7 @@ - + @@ -33758,7 +33777,7 @@ - + @@ -33769,27 +33788,27 @@ - + - + - + - + - + @@ -33798,9 +33817,9 @@ - + - + @@ -33809,9 +33828,9 @@ - + - + @@ -33820,9 +33839,9 @@ - + - + @@ -33831,9 +33850,9 @@ - + - + @@ -33842,7 +33861,7 @@ - + @@ -33851,7 +33870,7 @@ - + @@ -33860,7 +33879,7 @@ - + @@ -33869,9 +33888,9 @@ - + - + @@ -33880,94 +33899,94 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33976,13 +33995,13 @@ - + - + - + - + @@ -33991,9 +34010,9 @@ - + - + @@ -34004,38 +34023,38 @@ - + - + - + - + - + - + - + @@ -34046,7 +34065,7 @@ - + @@ -34057,7 +34076,7 @@ - + @@ -34068,7 +34087,7 @@ - + @@ -34077,7 +34096,7 @@ - + @@ -34086,7 +34105,7 @@ - + @@ -34095,9 +34114,9 @@ - + - + @@ -34108,31 +34127,31 @@ - + - + - + - + - + - + - + @@ -34141,60 +34160,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -34203,15 +34222,15 @@ - + - + - + - + - + @@ -34220,9 +34239,9 @@ - + - + @@ -34233,15 +34252,15 @@ - + - + - + - + @@ -34250,29 +34269,29 @@ - + - + - + - + - + @@ -34283,7 +34302,7 @@ - + @@ -34294,7 +34313,7 @@ - + @@ -34305,27 +34324,27 @@ - + - + - + - + - + @@ -34334,9 +34353,9 @@ - + - + @@ -34345,9 +34364,9 @@ - + - + @@ -34356,9 +34375,9 @@ - + - + @@ -34367,9 +34386,9 @@ - + - + @@ -34378,7 +34397,7 @@ - + @@ -34387,7 +34406,7 @@ - + @@ -34396,7 +34415,7 @@ - + @@ -34405,9 +34424,9 @@ - + - + @@ -34416,94 +34435,94 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -34512,13 +34531,13 @@ - + - + - + - + @@ -34527,9 +34546,9 @@ - + - + @@ -34540,38 +34559,38 @@ - + - + - + - + - + - + - + @@ -34582,7 +34601,7 @@ - + @@ -34593,7 +34612,7 @@ - + @@ -34604,7 +34623,7 @@ - + @@ -34613,7 +34632,7 @@ - + @@ -34622,7 +34641,7 @@ - + @@ -34631,9 +34650,9 @@ - + - + @@ -34644,31 +34663,31 @@ - + - + - + - + - + - + - + @@ -34677,25 +34696,25 @@ - + - + - + - + - + - + - + @@ -34704,29 +34723,29 @@ - + - + - + - + - + - + - + @@ -34735,9 +34754,9 @@ - + - + @@ -34746,9 +34765,9 @@ - + - + @@ -34757,9 +34776,9 @@ - + - + @@ -34769,34 +34788,34 @@ - + - + - + - + - + - + - + - + @@ -34805,11 +34824,11 @@ - + - + - + @@ -34819,26 +34838,26 @@ - + - + - + - + - + - + - + - + - - + + @@ -34849,96 +34868,96 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -34949,24 +34968,24 @@ - + - + - + - + - + @@ -34975,18 +34994,18 @@ - + - + - + - + @@ -34996,145 +35015,145 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -35143,62 +35162,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -35207,9 +35226,9 @@ - + - + @@ -35218,35 +35237,35 @@ - + - + - + - + - + - + - + @@ -35255,9 +35274,9 @@ - + - + @@ -35266,31 +35285,31 @@ - + - + - + - + - + - + - + - + @@ -35299,16 +35318,16 @@ - + - + - + @@ -35317,34 +35336,34 @@ - + - + - + - + - + - + - + @@ -35353,9 +35372,9 @@ - + - + @@ -35364,9 +35383,9 @@ - + - + @@ -35375,22 +35394,22 @@ - + - + - + - + - + @@ -35399,29 +35418,29 @@ - + - + - + - + - + - + - + @@ -35430,9 +35449,9 @@ - + - + @@ -35441,38 +35460,38 @@ - + - + - + - + - + - + - + - + - + @@ -35481,9 +35500,9 @@ - + - + @@ -35495,31 +35514,31 @@ - + - + - + - + - + - + - + - + - + @@ -35530,14 +35549,14 @@ - + - + @@ -35557,9 +35576,9 @@ - + - + @@ -35568,9 +35587,9 @@ - + - + @@ -35579,29 +35598,29 @@ - + - + - + - + - + - + - + @@ -35610,9 +35629,9 @@ - + - + @@ -35621,7 +35640,7 @@ - + @@ -35630,9 +35649,9 @@ - + - + @@ -35642,169 +35661,169 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -35812,12 +35831,12 @@ - + - + @@ -35830,7 +35849,7 @@ - + @@ -35839,7 +35858,7 @@ - + @@ -35848,21 +35867,21 @@ - + - + - + - + - + @@ -35871,7 +35890,7 @@ - + @@ -35880,7 +35899,7 @@ - + @@ -35889,7 +35908,7 @@ - + @@ -35898,7 +35917,7 @@ - + @@ -35907,7 +35926,7 @@ - + @@ -35916,7 +35935,7 @@ - + @@ -35925,7 +35944,7 @@ - + @@ -35934,7 +35953,7 @@ - + @@ -35943,7 +35962,7 @@ - + @@ -35952,7 +35971,7 @@ - + @@ -35966,15 +35985,15 @@ - + - + - + @@ -35982,11 +36001,11 @@ - + - + @@ -35998,66 +36017,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -36066,9 +36085,9 @@ - + - + @@ -36077,9 +36096,9 @@ - + - + @@ -36088,9 +36107,9 @@ - + - + @@ -36099,7 +36118,7 @@ - + @@ -36108,39 +36127,39 @@ - + - + - + - + - + - + - + - + - + @@ -36149,9 +36168,9 @@ - + - + @@ -36160,7 +36179,7 @@ - + @@ -36169,49 +36188,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -36220,9 +36239,9 @@ - + - + @@ -36231,9 +36250,9 @@ - + - + @@ -36242,9 +36261,9 @@ - + - + @@ -36253,39 +36272,39 @@ - + - + - + - + - + - + - + - + - + @@ -36294,9 +36313,9 @@ - + - + @@ -36305,7 +36324,7 @@ - + @@ -36314,49 +36333,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -36365,9 +36384,9 @@ - + - + @@ -36376,9 +36395,9 @@ - + - + @@ -36387,9 +36406,9 @@ - + - + @@ -36398,49 +36417,49 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -36449,37 +36468,37 @@ - + - + - + - + - + - + - + - + @@ -36488,9 +36507,9 @@ - + - + @@ -36499,7 +36518,7 @@ - + @@ -36508,49 +36527,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -36559,9 +36578,9 @@ - + - + @@ -36570,9 +36589,9 @@ - + - + @@ -36581,9 +36600,9 @@ - + - + @@ -36592,50 +36611,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -36644,9 +36663,9 @@ - + - + @@ -36655,7 +36674,7 @@ - + @@ -36664,49 +36683,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -36715,9 +36734,9 @@ - + - + @@ -36726,9 +36745,9 @@ - + - + @@ -36737,9 +36756,9 @@ - + - + @@ -36748,27 +36767,27 @@ - + - + - + - + - + - + @@ -36776,15 +36795,15 @@ - + - + - + @@ -36796,16 +36815,16 @@ - + - + - - + + @@ -36813,30 +36832,30 @@ - + - + - + - + - + - + - + @@ -36845,9 +36864,9 @@ - + - + @@ -36856,7 +36875,7 @@ - + @@ -36865,49 +36884,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -36916,9 +36935,9 @@ - + - + @@ -36927,9 +36946,9 @@ - + - + @@ -36938,9 +36957,9 @@ - + - + @@ -36949,54 +36968,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -37005,9 +37024,9 @@ - + - + @@ -37016,7 +37035,7 @@ - + @@ -37025,49 +37044,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -37076,9 +37095,9 @@ - + - + @@ -37087,9 +37106,9 @@ - + - + @@ -37098,9 +37117,9 @@ - + - + @@ -37109,27 +37128,27 @@ - + - + - + - + - + - + @@ -37137,36 +37156,36 @@ - + - + - + - + - + - + - + - + @@ -37175,7 +37194,7 @@ - + @@ -37184,7 +37203,7 @@ - + @@ -37193,7 +37212,7 @@ - + @@ -37202,7 +37221,7 @@ - + @@ -37211,7 +37230,7 @@ - + @@ -37220,7 +37239,7 @@ - + @@ -37229,7 +37248,7 @@ - + @@ -37238,7 +37257,7 @@ - + @@ -37247,7 +37266,7 @@ - + @@ -37256,7 +37275,7 @@ - + @@ -37265,7 +37284,7 @@ - + @@ -37274,7 +37293,7 @@ - + @@ -37284,208 +37303,208 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -37494,9 +37513,9 @@ - + - + @@ -37505,18 +37524,18 @@ - + - + - + - + @@ -37525,18 +37544,18 @@ - + - + - + - + @@ -37545,27 +37564,27 @@ - + - + - + - + - + - + @@ -37574,9 +37593,9 @@ - + - + @@ -37585,9 +37604,9 @@ - + - + @@ -37596,27 +37615,27 @@ - + - + - + - + - + - + @@ -37625,9 +37644,9 @@ - + - + @@ -37636,9 +37655,9 @@ - + - + @@ -37647,9 +37666,9 @@ - + - + @@ -37661,117 +37680,117 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -37786,62 +37805,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -37873,7 +37892,7 @@ - + @@ -37882,7 +37901,7 @@ - + @@ -37904,12 +37923,12 @@ - + - + @@ -37970,7 +37989,7 @@ - + @@ -37979,7 +37998,7 @@ - + @@ -38000,7 +38019,7 @@ - + @@ -38009,7 +38028,7 @@ - + @@ -38021,27 +38040,27 @@ - + - + - + - + - + - + @@ -38054,64 +38073,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -38119,31 +38138,31 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -38152,9 +38171,9 @@ - + - + @@ -38168,36 +38187,36 @@ - + - + - + - + - + - + - + - + - + @@ -38206,9 +38225,9 @@ - + - + @@ -38217,38 +38236,38 @@ - + - + - + - + - + - + - + - + - + @@ -38257,31 +38276,31 @@ - + - + - + - + - + - + - + @@ -38290,9 +38309,9 @@ - + - + @@ -38301,38 +38320,38 @@ - + - + - + - + - + - + - + - + - + @@ -38341,9 +38360,9 @@ - + - + @@ -38355,36 +38374,36 @@ - + - + - + - + - + - + - + - + - + - + @@ -38396,120 +38415,120 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -38521,21 +38540,21 @@ - + - + - + - + - + - - + + @@ -38543,18 +38562,18 @@ - + - + - + - + @@ -38563,9 +38582,9 @@ - + - + @@ -38574,9 +38593,9 @@ - + - + @@ -38585,9 +38604,9 @@ - + - + @@ -38599,105 +38618,105 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -38706,94 +38725,94 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -38802,11 +38821,11 @@ - + - + - + @@ -38815,9 +38834,9 @@ - + - + @@ -38826,7 +38845,7 @@ - + @@ -38835,11 +38854,11 @@ - + - + - + @@ -38848,11 +38867,11 @@ - + - + - + @@ -38861,47 +38880,47 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -38910,9 +38929,9 @@ - + - + @@ -38921,9 +38940,9 @@ - + - + @@ -38932,7 +38951,7 @@ - + @@ -38941,11 +38960,11 @@ - + - + - + @@ -38954,9 +38973,9 @@ - + - + @@ -38965,62 +38984,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -39029,9 +39048,9 @@ - + - + @@ -39040,9 +39059,9 @@ - + - + @@ -39051,15 +39070,15 @@ - + - + - + - + - + @@ -39068,9 +39087,9 @@ - + - + @@ -39079,9 +39098,9 @@ - + - + @@ -39090,11 +39109,11 @@ - + - + - + @@ -39103,9 +39122,9 @@ - + - + @@ -39114,9 +39133,9 @@ - + - + @@ -39125,18 +39144,18 @@ - + - + - + - + @@ -39145,9 +39164,9 @@ - + - + @@ -39156,9 +39175,9 @@ - + - + @@ -39167,9 +39186,9 @@ - + - + @@ -39178,41 +39197,41 @@ - + - + - + - + - + - + - + - + - + - + @@ -39221,9 +39240,9 @@ - + - + @@ -39232,11 +39251,11 @@ - + - + - + @@ -39245,9 +39264,9 @@ - + - + @@ -39256,9 +39275,9 @@ - + - + @@ -39267,105 +39286,105 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -39374,142 +39393,142 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -39518,9 +39537,9 @@ - + - + @@ -39529,7 +39548,7 @@ - + @@ -39538,49 +39557,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -39589,9 +39608,9 @@ - + - + @@ -39600,9 +39619,9 @@ - + - + @@ -39611,9 +39630,9 @@ - + - + @@ -39622,23 +39641,23 @@ - + - + - + - + - + @@ -39647,19 +39666,19 @@ - + - + - + - + - + - + - + @@ -39670,32 +39689,32 @@ - + - + - + - + - + - + - + - + @@ -39705,53 +39724,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -39759,9 +39778,9 @@ - + - + @@ -39775,7 +39794,7 @@ - + @@ -39786,7 +39805,7 @@ - + @@ -39802,27 +39821,27 @@ - + - + - + - + - + - + @@ -39831,9 +39850,9 @@ - + - + @@ -39842,38 +39861,38 @@ - + - + - + - + - + - + - + - + - + @@ -39882,19 +39901,19 @@ - + - + - + - + @@ -39902,7 +39921,7 @@ - + @@ -39914,17 +39933,17 @@ - + - + - + @@ -39933,7 +39952,7 @@ - + @@ -39942,34 +39961,34 @@ - + - + - + - + - + - + - + - + @@ -39978,9 +39997,9 @@ - + - + @@ -39989,9 +40008,9 @@ - + - + @@ -40000,9 +40019,9 @@ - + - + @@ -40011,37 +40030,37 @@ - + - + - + - + - + - + - + - + @@ -40050,18 +40069,18 @@ - + - + - + - + @@ -40070,21 +40089,21 @@ - + - + - + @@ -40093,7 +40112,7 @@ - + @@ -40102,14 +40121,14 @@ - + - + @@ -40118,7 +40137,7 @@ - + @@ -40127,53 +40146,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -40182,7 +40201,7 @@ - + @@ -40193,17 +40212,17 @@ - + - + - + @@ -40211,7 +40230,7 @@ - + @@ -40219,11 +40238,11 @@ - + - + @@ -40242,42 +40261,42 @@ - + - + - + - + - + - + - + - + - + - + @@ -40287,36 +40306,36 @@ - + - + - + - + - + - + - + - + - + - + @@ -40324,23 +40343,23 @@ - + - + - + - + - + @@ -40348,85 +40367,85 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -40436,27 +40455,27 @@ - + - + - + - + - + @@ -40466,12 +40485,12 @@ - + - + @@ -40480,71 +40499,71 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -40553,9 +40572,9 @@ - + - + @@ -40564,9 +40583,9 @@ - + - + @@ -40575,27 +40594,27 @@ - + - + - + - + - + - + @@ -40604,9 +40623,9 @@ - + - + @@ -40615,9 +40634,9 @@ - + - + @@ -40626,9 +40645,9 @@ - + - + @@ -40640,55 +40659,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -40697,45 +40716,45 @@ - + - + - + - + - + - + - + - + - + - + @@ -40744,16 +40763,16 @@ - + - + - + @@ -40762,7 +40781,7 @@ - + @@ -40771,7 +40790,7 @@ - + @@ -40780,22 +40799,22 @@ - + - + - + - + - + - + diff --git a/tests/data/test-annotate/test17-pr19027.so.abi b/tests/data/test-annotate/test17-pr19027.so.abi index 9caf6bc6..2cc0a54c 100644 --- a/tests/data/test-annotate/test17-pr19027.so.abi +++ b/tests/data/test-annotate/test17-pr19027.so.abi @@ -537,8 +537,8 @@ - - + + @@ -2009,50 +2009,48 @@ - - - + - + - + - + - + - + - + - + - + @@ -2089,7 +2087,7 @@ - + @@ -2138,21 +2136,21 @@ - + - + - + - + @@ -2187,7 +2185,7 @@ - + @@ -2209,7 +2207,7 @@ - + @@ -2222,7 +2220,7 @@ - + @@ -2235,9 +2233,9 @@ - + - + @@ -2250,7 +2248,7 @@ - + @@ -2285,14 +2283,16 @@ + + - + - + - + - + @@ -2326,11 +2326,11 @@ - + - + - + @@ -2463,11 +2463,11 @@ - + - + - + @@ -2487,7 +2487,7 @@ - + @@ -2529,14 +2529,14 @@ - + - + @@ -2569,8 +2569,6 @@ - - @@ -2579,7 +2577,7 @@ - + @@ -2594,6 +2592,8 @@ + + @@ -2770,7 +2770,7 @@ - + @@ -2908,7 +2908,7 @@ - + @@ -3074,7 +3074,7 @@ - + @@ -3145,7 +3145,7 @@ - + @@ -3159,7 +3159,7 @@ - + @@ -3252,7 +3252,7 @@ - + @@ -3274,7 +3274,7 @@ - + @@ -3283,9 +3283,9 @@ - + - + @@ -3300,7 +3300,7 @@ - + @@ -3324,7 +3324,7 @@ - + @@ -3353,7 +3353,7 @@ - + @@ -3368,7 +3368,7 @@ - + @@ -3395,7 +3395,7 @@ - + @@ -3410,7 +3410,7 @@ - + @@ -3437,7 +3437,7 @@ - + @@ -3452,7 +3452,7 @@ - + @@ -3478,7 +3478,7 @@ - + @@ -3543,7 +3543,7 @@ - + @@ -3639,7 +3639,7 @@ - + @@ -3846,16 +3846,21 @@ + + + + + - + - + - + @@ -3865,7 +3870,7 @@ - + @@ -3876,33 +3881,33 @@ - + - + - + - + - + - + - + - + @@ -3910,12 +3915,12 @@ - + - + @@ -3931,14 +3936,14 @@ - + - + - + @@ -3972,9 +3977,9 @@ - + - + @@ -3983,7 +3988,7 @@ - + @@ -4018,74 +4023,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4134,7 +4139,7 @@ - + @@ -4191,28 +4196,28 @@ - + - + - + - + - + @@ -4231,7 +4236,7 @@ - + @@ -4239,7 +4244,7 @@ - + @@ -4253,24 +4258,24 @@ - + - + - + - + - + @@ -4284,7 +4289,7 @@ - + @@ -4312,13 +4317,13 @@ - + - + @@ -4327,9 +4332,9 @@ - + - + @@ -4338,7 +4343,7 @@ - + @@ -4347,7 +4352,7 @@ - + @@ -4356,7 +4361,7 @@ - + @@ -4365,21 +4370,21 @@ - + - + - + - + @@ -4391,7 +4396,7 @@ - + @@ -4410,43 +4415,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4459,14 +4464,14 @@ - + - + - + @@ -4486,7 +4491,7 @@ - + @@ -4497,247 +4502,247 @@ - + - - - + - + - + - + - + - + - + - + - + - + + + - + - + - + - + - + - + - - + + - + - - - + - + - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4746,7 +4751,7 @@ - + @@ -4757,7 +4762,7 @@ - + @@ -4766,9 +4771,9 @@ - + - + @@ -4777,25 +4782,25 @@ - + - + - + - + - + @@ -4806,7 +4811,7 @@ - + @@ -4815,9 +4820,9 @@ - + - + @@ -4826,19 +4831,19 @@ - + - + - + - + @@ -4852,7 +4857,7 @@ - + @@ -4863,7 +4868,7 @@ - + @@ -4872,9 +4877,9 @@ - + - + @@ -4883,9 +4888,9 @@ - + - + @@ -4894,9 +4899,9 @@ - + - + @@ -4905,9 +4910,9 @@ - + - + @@ -4916,7 +4921,7 @@ - + @@ -4927,9 +4932,9 @@ - + - + @@ -4938,17 +4943,17 @@ - + - + - + @@ -4982,7 +4987,7 @@ - + @@ -4991,16 +4996,16 @@ - + - + - + @@ -5009,7 +5014,7 @@ - + @@ -5020,7 +5025,7 @@ - + @@ -5029,7 +5034,7 @@ - + @@ -5038,7 +5043,7 @@ - + @@ -5051,7 +5056,7 @@ - + @@ -5066,7 +5071,7 @@ - + @@ -5079,11 +5084,11 @@ - + - + - + @@ -5092,9 +5097,9 @@ - + - + @@ -5103,9 +5108,9 @@ - + - + @@ -5114,9 +5119,9 @@ - + - + @@ -5125,9 +5130,9 @@ - + - + @@ -5136,9 +5141,9 @@ - + - + @@ -5147,9 +5152,9 @@ - + - + @@ -5158,9 +5163,9 @@ - + - + @@ -5169,11 +5174,11 @@ - + - + - + @@ -5182,11 +5187,11 @@ - + - + - + @@ -5195,11 +5200,11 @@ - + - + - + @@ -5208,9 +5213,9 @@ - + - + @@ -5219,9 +5224,9 @@ - + - + @@ -5230,9 +5235,9 @@ - + - + @@ -5241,9 +5246,9 @@ - + - + @@ -5252,11 +5257,11 @@ - + - + - + @@ -5265,9 +5270,9 @@ - + - + @@ -5276,9 +5281,9 @@ - + - + @@ -5287,9 +5292,9 @@ - + - + @@ -5298,9 +5303,9 @@ - + - + @@ -5309,9 +5314,9 @@ - + - + @@ -5320,9 +5325,9 @@ - + - + @@ -5331,9 +5336,9 @@ - + - + @@ -5342,9 +5347,9 @@ - + - + @@ -5353,9 +5358,9 @@ - + - + @@ -5364,9 +5369,9 @@ - + - + @@ -5375,9 +5380,9 @@ - + - + @@ -5386,9 +5391,9 @@ - + - + @@ -5397,9 +5402,9 @@ - + - + @@ -5408,9 +5413,9 @@ - + - + @@ -5419,9 +5424,9 @@ - + - + @@ -5430,9 +5435,9 @@ - + - + @@ -5441,9 +5446,9 @@ - + - + @@ -5452,9 +5457,9 @@ - + - + @@ -5463,11 +5468,11 @@ - + - + - + @@ -5476,11 +5481,11 @@ - + - + - + @@ -5489,11 +5494,11 @@ - + - + - + @@ -5502,11 +5507,11 @@ - + - + - + @@ -5515,11 +5520,11 @@ - + - + - + @@ -5528,11 +5533,11 @@ - + - + - + @@ -5541,11 +5546,11 @@ - + - + - + @@ -5554,11 +5559,11 @@ - + - + - + @@ -5567,11 +5572,11 @@ - + - + - + @@ -5580,11 +5585,11 @@ - + - + - + @@ -5593,11 +5598,11 @@ - + - + - + @@ -5606,11 +5611,11 @@ - + - + - + @@ -5619,11 +5624,11 @@ - + - + - + @@ -5632,11 +5637,11 @@ - + - + - + @@ -5645,11 +5650,11 @@ - + - + - + @@ -5658,11 +5663,11 @@ - + - + - + @@ -5671,11 +5676,11 @@ - + - + - + @@ -5684,11 +5689,11 @@ - + - + - + @@ -5697,11 +5702,11 @@ - + - + - + @@ -5710,11 +5715,11 @@ - + - + - + @@ -5723,11 +5728,11 @@ - + - + - + @@ -5736,11 +5741,11 @@ - + - + - + @@ -5749,11 +5754,11 @@ - + - + - + @@ -5762,11 +5767,11 @@ - + - + - + @@ -5775,11 +5780,11 @@ - + - + - + @@ -5788,11 +5793,11 @@ - + - + - + @@ -5801,11 +5806,11 @@ - + - + - + @@ -5814,11 +5819,11 @@ - + - + - + @@ -5827,11 +5832,11 @@ - + - + - + @@ -5840,11 +5845,11 @@ - + - + - + @@ -5853,11 +5858,11 @@ - + - + - + @@ -5866,11 +5871,11 @@ - + - + - + @@ -5879,11 +5884,11 @@ - + - + - + @@ -5892,11 +5897,11 @@ - + - + - + @@ -5905,11 +5910,11 @@ - + - + - + @@ -5918,11 +5923,11 @@ - + - + - + @@ -5931,9 +5936,9 @@ - + - + @@ -5942,9 +5947,9 @@ - + - + @@ -5953,9 +5958,9 @@ - + - + @@ -5964,9 +5969,9 @@ - + - + @@ -5975,9 +5980,9 @@ - + - + @@ -5986,9 +5991,9 @@ - + - + @@ -5997,9 +6002,9 @@ - + - + @@ -6008,9 +6013,9 @@ - + - + @@ -6019,9 +6024,9 @@ - + - + @@ -6030,9 +6035,9 @@ - + - + @@ -6041,9 +6046,9 @@ - + - + @@ -6052,9 +6057,9 @@ - + - + @@ -6063,9 +6068,9 @@ - + - + @@ -6074,9 +6079,9 @@ - + - + @@ -6085,9 +6090,9 @@ - + - + @@ -6096,9 +6101,9 @@ - + - + @@ -6107,9 +6112,9 @@ - + - + @@ -6118,9 +6123,9 @@ - + - + @@ -6129,9 +6134,9 @@ - + - + @@ -6140,9 +6145,9 @@ - + - + @@ -6151,9 +6156,9 @@ - + - + @@ -6162,9 +6167,9 @@ - + - + @@ -6173,9 +6178,9 @@ - + - + @@ -6184,9 +6189,9 @@ - + - + @@ -6195,9 +6200,9 @@ - + - + @@ -6206,9 +6211,9 @@ - + - + @@ -6217,9 +6222,9 @@ - + - + @@ -6228,9 +6233,9 @@ - + - + @@ -6239,9 +6244,9 @@ - + - + @@ -6250,9 +6255,9 @@ - + - + @@ -6261,9 +6266,9 @@ - + - + @@ -6272,9 +6277,9 @@ - + - + @@ -6283,9 +6288,9 @@ - + - + @@ -6294,9 +6299,9 @@ - + - + @@ -6305,9 +6310,9 @@ - + - + @@ -6316,9 +6321,9 @@ - + - + @@ -6327,11 +6332,11 @@ - + - + - + @@ -6340,9 +6345,9 @@ - + - + @@ -6351,9 +6356,9 @@ - + - + @@ -6362,9 +6367,9 @@ - + - + @@ -6373,9 +6378,9 @@ - + - + @@ -6384,9 +6389,9 @@ - + - + @@ -6395,9 +6400,9 @@ - + - + @@ -6406,9 +6411,9 @@ - + - + @@ -6417,9 +6422,9 @@ - + - + @@ -6428,9 +6433,9 @@ - + - + @@ -6439,9 +6444,9 @@ - + - + @@ -6450,9 +6455,9 @@ - + - + @@ -6461,9 +6466,9 @@ - + - + @@ -6472,9 +6477,9 @@ - + - + @@ -6483,9 +6488,9 @@ - + - + @@ -6494,9 +6499,9 @@ - + - + @@ -6505,9 +6510,9 @@ - + - + @@ -6516,9 +6521,9 @@ - + - + @@ -6527,9 +6532,9 @@ - + - + @@ -6538,9 +6543,9 @@ - + - + @@ -6549,9 +6554,9 @@ - + - + @@ -6560,9 +6565,9 @@ - + - + @@ -6571,9 +6576,9 @@ - + - + @@ -6582,9 +6587,9 @@ - + - + @@ -6593,9 +6598,9 @@ - + - + @@ -6604,9 +6609,9 @@ - + - + @@ -6615,9 +6620,9 @@ - + - + @@ -6626,9 +6631,9 @@ - + - + @@ -6637,9 +6642,9 @@ - + - + @@ -6648,9 +6653,9 @@ - + - + @@ -6659,9 +6664,9 @@ - + - + @@ -6670,9 +6675,9 @@ - + - + @@ -6681,9 +6686,9 @@ - + - + @@ -6692,9 +6697,9 @@ - + - + @@ -6703,9 +6708,9 @@ - + - + @@ -6714,9 +6719,9 @@ - + - + @@ -6725,9 +6730,9 @@ - + - + @@ -6736,9 +6741,9 @@ - + - + @@ -6747,9 +6752,9 @@ - + - + @@ -6758,9 +6763,9 @@ - + - + @@ -6769,9 +6774,9 @@ - + - + @@ -6780,9 +6785,9 @@ - + - + @@ -6791,9 +6796,9 @@ - + - + @@ -6802,9 +6807,9 @@ - + - + @@ -6813,9 +6818,9 @@ - + - + @@ -6824,9 +6829,9 @@ - + - + @@ -6835,9 +6840,9 @@ - + - + @@ -6846,9 +6851,9 @@ - + - + @@ -6857,9 +6862,9 @@ - + - + @@ -6868,9 +6873,9 @@ - + - + @@ -6879,9 +6884,9 @@ - + - + @@ -6890,9 +6895,9 @@ - + - + @@ -6901,9 +6906,9 @@ - + - + @@ -6912,9 +6917,9 @@ - + - + @@ -6923,9 +6928,9 @@ - + - + @@ -6934,9 +6939,9 @@ - + - + @@ -6945,9 +6950,9 @@ - + - + @@ -6956,9 +6961,9 @@ - + - + @@ -6967,9 +6972,9 @@ - + - + @@ -6978,9 +6983,9 @@ - + - + @@ -6989,18 +6994,18 @@ - + - + - + - + @@ -7013,33 +7018,33 @@ - + - + - + - + - + - + - + @@ -7050,9 +7055,9 @@ - + - + @@ -7061,16 +7066,16 @@ - + - + - + @@ -7083,7 +7088,7 @@ - + @@ -7092,17 +7097,17 @@ - + - + - + @@ -7116,7 +7121,7 @@ - + @@ -7127,7 +7132,7 @@ - + @@ -7136,9 +7141,9 @@ - + - + @@ -7147,9 +7152,9 @@ - + - + @@ -7158,9 +7163,9 @@ - + - + @@ -7169,9 +7174,9 @@ - + - + @@ -7180,7 +7185,7 @@ - + @@ -7191,9 +7196,9 @@ - + - + @@ -7202,37 +7207,37 @@ - + - + - + - + - + - + - + - + @@ -7242,7 +7247,7 @@ - + @@ -7251,20 +7256,20 @@ - + - + - + - + @@ -7275,20 +7280,20 @@ - + - + - + - + - + @@ -7297,7 +7302,7 @@ - + @@ -7306,16 +7311,16 @@ - + - + - + @@ -7328,7 +7333,7 @@ - + @@ -7337,7 +7342,7 @@ - + @@ -7346,31 +7351,31 @@ - + - + - + - + - + - + - + @@ -7384,9 +7389,9 @@ - + - + @@ -7395,16 +7400,16 @@ - + - + - + @@ -7417,18 +7422,18 @@ - + - + - + - + @@ -7441,16 +7446,16 @@ - + - + - + @@ -7475,7 +7480,7 @@ - + @@ -7488,7 +7493,7 @@ - + @@ -7497,7 +7502,7 @@ - + @@ -7508,508 +7513,508 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8023,7 +8028,7 @@ - + @@ -8032,9 +8037,9 @@ - + - + @@ -8043,21 +8048,21 @@ - + - + - + - + @@ -8071,18 +8076,18 @@ - + - + - + - + @@ -8091,85 +8096,85 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8183,7 +8188,7 @@ - + @@ -8192,9 +8197,9 @@ - + - + @@ -8203,21 +8208,21 @@ - + - + - + - + @@ -8231,9 +8236,9 @@ - + - + @@ -8242,17 +8247,17 @@ - + - + - + @@ -8266,7 +8271,7 @@ - + @@ -8277,7 +8282,7 @@ - + @@ -8286,9 +8291,9 @@ - + - + @@ -8297,9 +8302,9 @@ - + - + @@ -8308,9 +8313,9 @@ - + - + @@ -8319,9 +8324,9 @@ - + - + @@ -8330,7 +8335,7 @@ - + @@ -8341,9 +8346,9 @@ - + - + @@ -8352,14 +8357,14 @@ - + - + @@ -8368,7 +8373,7 @@ - + @@ -8379,7 +8384,7 @@ - + @@ -8388,9 +8393,9 @@ - + - + @@ -8399,21 +8404,21 @@ - + - + - + - + - + @@ -8427,7 +8432,7 @@ - + @@ -8438,7 +8443,7 @@ - + @@ -8447,9 +8452,9 @@ - + - + @@ -8458,9 +8463,9 @@ - + - + @@ -8469,9 +8474,9 @@ - + - + @@ -8480,9 +8485,9 @@ - + - + @@ -8491,7 +8496,7 @@ - + @@ -8502,9 +8507,9 @@ - + - + @@ -8513,23 +8518,23 @@ - + - + - + - + @@ -8540,7 +8545,7 @@ - + @@ -8549,9 +8554,9 @@ - + - + @@ -8560,25 +8565,25 @@ - + - + - + - + - + - + @@ -8588,42 +8593,42 @@ - + - + - + - + - + - + - + @@ -8632,9 +8637,9 @@ - + - + @@ -8645,11 +8650,11 @@ - + - + - + @@ -8660,9 +8665,9 @@ - + - + @@ -8671,9 +8676,9 @@ - + - + @@ -8684,9 +8689,9 @@ - + - + @@ -8695,7 +8700,7 @@ - + @@ -8704,27 +8709,27 @@ - + - + - + - + - + - + @@ -8734,7 +8739,7 @@ - + @@ -8743,20 +8748,20 @@ - + - + - + - + @@ -8765,7 +8770,7 @@ - + @@ -8774,51 +8779,51 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -8827,27 +8832,27 @@ - + - + - + - + - + @@ -8863,12 +8868,12 @@ - + - + @@ -8884,12 +8889,12 @@ - + - + @@ -8905,56 +8910,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8964,16 +8969,16 @@ - + - + - + @@ -8982,20 +8987,20 @@ - + - + - + - + @@ -9004,7 +9009,7 @@ - + @@ -9105,7 +9110,7 @@ - + @@ -9125,7 +9130,7 @@ - + @@ -9153,18 +9158,18 @@ - + - + - + @@ -9174,14 +9179,14 @@ - + - + @@ -9198,7 +9203,7 @@ - + @@ -9213,7 +9218,7 @@ - + @@ -9230,7 +9235,7 @@ - + @@ -9240,14 +9245,14 @@ - + - + @@ -9266,22 +9271,22 @@ - + - + - + - + @@ -9296,7 +9301,7 @@ - + @@ -9311,7 +9316,7 @@ - + @@ -9329,7 +9334,7 @@ - + @@ -9342,7 +9347,7 @@ - + @@ -9355,7 +9360,7 @@ - + @@ -9368,7 +9373,7 @@ - + @@ -9381,7 +9386,7 @@ - + @@ -9394,7 +9399,7 @@ - + @@ -9407,7 +9412,7 @@ - + @@ -9420,7 +9425,7 @@ - + @@ -9433,7 +9438,7 @@ - + @@ -9446,7 +9451,7 @@ - + @@ -9459,7 +9464,7 @@ - + @@ -9476,7 +9481,7 @@ - + @@ -9627,9 +9632,9 @@ - + - + @@ -9832,7 +9837,7 @@ - + @@ -9845,7 +9850,7 @@ - + @@ -9937,122 +9942,122 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10060,71 +10065,71 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10147,108 +10152,108 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10260,11 +10265,11 @@ - + - + @@ -10272,71 +10277,71 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10345,9 +10350,9 @@ - + - + @@ -10362,7 +10367,7 @@ - + @@ -10382,9 +10387,9 @@ - + - + @@ -10395,7 +10400,7 @@ - + @@ -10403,7 +10408,7 @@ - + @@ -10411,103 +10416,103 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10519,37 +10524,37 @@ - + - + - + - + - + - + - + - + - + @@ -10560,33 +10565,33 @@ - + - + - + - + - + - + - + - + - + - + @@ -10594,63 +10599,63 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10662,7 +10667,7 @@ - + @@ -10671,7 +10676,7 @@ - + @@ -10680,52 +10685,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -10736,21 +10741,21 @@ - + - + - + - + - + - + - + @@ -10888,83 +10893,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10974,7 +10979,7 @@ - + @@ -10985,7 +10990,7 @@ - + @@ -10994,20 +10999,20 @@ - + - + - + @@ -11022,7 +11027,7 @@ - + @@ -11032,13 +11037,13 @@ - + - + - + @@ -11049,7 +11054,7 @@ - + @@ -11058,7 +11063,7 @@ - + @@ -11067,267 +11072,267 @@ - - + + - + - - - + - + - + + + - + - + - - - + + + - + - + - - - + - + + + - + - + - + - + - + - + - + - - - + - + - + - + - + - + + + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -11340,33 +11345,33 @@ - + - + - + - + - + - + - + @@ -11377,9 +11382,9 @@ - + - + @@ -11388,32 +11393,32 @@ - + - + - + - + - + - + - + @@ -11426,33 +11431,33 @@ - + - + - + - + - + - + - + @@ -11463,9 +11468,9 @@ - + - + @@ -11474,32 +11479,32 @@ - + - + - + - + - + - + - + @@ -11512,33 +11517,33 @@ - + - + - + - + - + - + - + @@ -11549,9 +11554,9 @@ - + - + @@ -11560,54 +11565,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -11617,11 +11622,11 @@ - + - + @@ -11630,24 +11635,24 @@ - + - + - + - + - + @@ -11656,29 +11661,29 @@ - + - + - + - + - + - + @@ -11692,11 +11697,11 @@ - + - + @@ -11705,9 +11710,9 @@ - + - + @@ -11716,47 +11721,47 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -11766,11 +11771,11 @@ - + - + @@ -11779,9 +11784,9 @@ - + - + @@ -11790,7 +11795,7 @@ - + @@ -11799,38 +11804,38 @@ - + - + - + - + - + - + - + - + - + @@ -11840,11 +11845,11 @@ - + - + @@ -11853,9 +11858,9 @@ - + - + @@ -11864,7 +11869,7 @@ - + @@ -11873,21 +11878,21 @@ - + - + - + - + @@ -11897,42 +11902,42 @@ - + - + - + - + - + - + - + @@ -11941,9 +11946,9 @@ - + - + @@ -11954,11 +11959,11 @@ - + - + - + @@ -11969,9 +11974,9 @@ - + - + @@ -11980,9 +11985,9 @@ - + - + @@ -11993,9 +11998,9 @@ - + - + @@ -12004,7 +12009,7 @@ - + @@ -12013,29 +12018,29 @@ - + - + - + - + - + @@ -12046,18 +12051,18 @@ - + - + - + @@ -12068,9 +12073,9 @@ - + - + @@ -12079,40 +12084,40 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -12122,11 +12127,11 @@ - + - + @@ -12135,9 +12140,9 @@ - + - + @@ -12146,7 +12151,7 @@ - + @@ -12155,21 +12160,21 @@ - + - + - + - + @@ -12179,42 +12184,42 @@ - + - + - + - + - + - + - + @@ -12223,9 +12228,9 @@ - + - + @@ -12236,11 +12241,11 @@ - + - + - + @@ -12251,9 +12256,9 @@ - + - + @@ -12262,9 +12267,9 @@ - + - + @@ -12275,9 +12280,9 @@ - + - + @@ -12286,7 +12291,7 @@ - + @@ -12295,21 +12300,21 @@ - + - + - + - + @@ -12318,26 +12323,26 @@ - + - + - + - + - + - + @@ -12347,11 +12352,11 @@ - + - + @@ -12360,9 +12365,9 @@ - + - + @@ -12371,7 +12376,7 @@ - + @@ -12380,37 +12385,37 @@ - + - + - + - + - + - + - + - + @@ -12420,42 +12425,42 @@ - + - + - + - + - + - + - + @@ -12464,9 +12469,9 @@ - + - + @@ -12477,11 +12482,11 @@ - + - + - + @@ -12492,9 +12497,9 @@ - + - + @@ -12503,9 +12508,9 @@ - + - + @@ -12516,9 +12521,9 @@ - + - + @@ -12527,7 +12532,7 @@ - + @@ -12536,25 +12541,25 @@ - + - + - + - + - + @@ -12568,7 +12573,7 @@ - + @@ -12579,9 +12584,9 @@ - + - + @@ -12590,23 +12595,23 @@ - + - + - + - + - + @@ -12615,26 +12620,26 @@ - + - + - + - + - + - + @@ -12644,11 +12649,11 @@ - + - + @@ -12657,9 +12662,9 @@ - + - + @@ -12668,7 +12673,7 @@ - + @@ -12677,25 +12682,25 @@ - + - + - + - + - + @@ -12705,24 +12710,24 @@ - + - + - + - + - + @@ -12731,7 +12736,7 @@ - + @@ -12740,37 +12745,37 @@ - + - + - + - + - + - + - + - + @@ -12780,42 +12785,42 @@ - + - + - + - + - + - + - + @@ -12824,9 +12829,9 @@ - + - + @@ -12837,11 +12842,11 @@ - + - + - + @@ -12852,9 +12857,9 @@ - + - + @@ -12863,9 +12868,9 @@ - + - + @@ -12876,9 +12881,9 @@ - + - + @@ -12887,7 +12892,7 @@ - + @@ -12896,25 +12901,25 @@ - + - + - + - + - + @@ -12928,24 +12933,24 @@ - + - + - + - + - + @@ -12954,9 +12959,9 @@ - + - + @@ -12967,17 +12972,17 @@ - + - + - + @@ -12991,7 +12996,7 @@ - + @@ -13002,7 +13007,7 @@ - + @@ -13011,9 +13016,9 @@ - + - + @@ -13022,9 +13027,9 @@ - + - + @@ -13033,9 +13038,9 @@ - + - + @@ -13044,9 +13049,9 @@ - + - + @@ -13055,7 +13060,7 @@ - + @@ -13066,9 +13071,9 @@ - + - + @@ -13077,23 +13082,23 @@ - + - + - + - + @@ -13104,7 +13109,7 @@ - + @@ -13113,9 +13118,9 @@ - + - + @@ -13124,34 +13129,34 @@ - + - + - + - + - + - + - + - + @@ -13161,42 +13166,42 @@ - + - + - + - + - + - + - + @@ -13205,9 +13210,9 @@ - + - + @@ -13218,11 +13223,11 @@ - + - + - + @@ -13233,9 +13238,9 @@ - + - + @@ -13244,9 +13249,9 @@ - + - + @@ -13257,9 +13262,9 @@ - + - + @@ -13268,7 +13273,7 @@ - + @@ -13277,7 +13282,7 @@ - + @@ -13286,27 +13291,27 @@ - + - + - + - + - + - + @@ -13320,9 +13325,9 @@ - + - + @@ -13331,9 +13336,9 @@ - + - + @@ -13344,23 +13349,23 @@ - + - + - + - + - + @@ -13370,42 +13375,42 @@ - + - + - + - + - + - + - + @@ -13414,9 +13419,9 @@ - + - + @@ -13427,11 +13432,11 @@ - + - + - + @@ -13442,9 +13447,9 @@ - + - + @@ -13453,9 +13458,9 @@ - + - + @@ -13466,9 +13471,9 @@ - + - + @@ -13477,7 +13482,7 @@ - + @@ -13486,21 +13491,21 @@ - + - + - + - + @@ -13514,9 +13519,9 @@ - + - + @@ -13525,9 +13530,9 @@ - + - + @@ -13536,23 +13541,23 @@ - + - + - + - + - + @@ -13562,42 +13567,42 @@ - + - + - + - + - + - + - + @@ -13606,9 +13611,9 @@ - + - + @@ -13619,11 +13624,11 @@ - + - + - + @@ -13634,9 +13639,9 @@ - + - + @@ -13645,9 +13650,9 @@ - + - + @@ -13658,9 +13663,9 @@ - + - + @@ -13669,7 +13674,7 @@ - + @@ -13678,21 +13683,21 @@ - + - + - + - + @@ -13706,9 +13711,9 @@ - + - + @@ -13717,9 +13722,9 @@ - + - + @@ -13728,29 +13733,29 @@ - + - + - + - + - + - + - + @@ -13760,22 +13765,22 @@ - + - + - + - + @@ -13784,7 +13789,7 @@ - + @@ -13793,98 +13798,98 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -13898,9 +13903,9 @@ - + - + @@ -13909,37 +13914,37 @@ - + - + - + - + - + - + - + - + - + @@ -13949,9 +13954,9 @@ - + - + @@ -13960,7 +13965,7 @@ - + @@ -13969,21 +13974,21 @@ - + - + - + - + @@ -13997,14 +14002,14 @@ - + - + @@ -14020,12 +14025,12 @@ - + - + @@ -14041,12 +14046,12 @@ - + - + @@ -14062,7 +14067,7 @@ - + @@ -14077,213 +14082,213 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -14291,13 +14296,13 @@ - + - + @@ -14314,9 +14319,9 @@ - + - + @@ -14325,10 +14330,10 @@ - + - + @@ -14362,9 +14367,9 @@ - + - + @@ -14373,11 +14378,11 @@ - + - + @@ -14385,21 +14390,21 @@ - + - + - + - + @@ -14408,7 +14413,7 @@ - + @@ -14417,9 +14422,9 @@ - + - + @@ -14430,9 +14435,9 @@ - + - + @@ -14441,9 +14446,9 @@ - + - + @@ -14452,11 +14457,11 @@ - + - + @@ -14465,11 +14470,11 @@ - + - + @@ -14478,13 +14483,13 @@ - + - + @@ -14495,11 +14500,11 @@ - + - + @@ -14508,9 +14513,9 @@ - + - + @@ -14523,9 +14528,9 @@ - + - + @@ -14538,7 +14543,7 @@ - + @@ -14547,7 +14552,7 @@ - + @@ -14566,11 +14571,11 @@ - + - + - + @@ -14583,11 +14588,11 @@ - + - + - + @@ -14598,7 +14603,7 @@ - + @@ -14609,17 +14614,17 @@ - + - + - + @@ -14628,38 +14633,38 @@ - + - + - + - + - + - + - + @@ -14668,7 +14673,7 @@ - + @@ -14679,7 +14684,7 @@ - + @@ -14690,7 +14695,7 @@ - + @@ -14699,7 +14704,7 @@ - + @@ -14712,7 +14717,7 @@ - + @@ -14721,16 +14726,16 @@ - + - + - + - + @@ -14741,17 +14746,17 @@ - + - + - + @@ -14760,38 +14765,38 @@ - + - + - + - + - + - + - + @@ -14800,7 +14805,7 @@ - + @@ -14811,7 +14816,7 @@ - + @@ -14822,7 +14827,7 @@ - + @@ -14831,7 +14836,7 @@ - + @@ -14844,14 +14849,14 @@ - + - + @@ -14862,17 +14867,17 @@ - + - + - + @@ -14881,38 +14886,38 @@ - + - + - + - + - + - + - + @@ -14921,7 +14926,7 @@ - + @@ -14932,7 +14937,7 @@ - + @@ -14943,7 +14948,7 @@ - + @@ -14952,7 +14957,7 @@ - + @@ -14965,25 +14970,25 @@ - + - + - + - + @@ -15025,11 +15030,11 @@ - + - + - + @@ -15038,7 +15043,7 @@ - + @@ -15051,7 +15056,7 @@ - + @@ -15064,14 +15069,14 @@ - + - + @@ -15092,7 +15097,7 @@ - + @@ -15101,7 +15106,7 @@ - + @@ -15110,7 +15115,7 @@ - + @@ -15121,7 +15126,7 @@ - + @@ -15134,7 +15139,7 @@ - + @@ -15152,7 +15157,7 @@ - + @@ -15173,7 +15178,7 @@ - + @@ -15182,7 +15187,7 @@ - + @@ -15191,7 +15196,7 @@ - + @@ -15202,7 +15207,7 @@ - + @@ -15215,7 +15220,7 @@ - + @@ -15233,7 +15238,7 @@ - + @@ -15254,7 +15259,7 @@ - + @@ -15263,7 +15268,7 @@ - + @@ -15272,7 +15277,7 @@ - + @@ -15283,7 +15288,7 @@ - + @@ -15296,7 +15301,7 @@ - + @@ -15314,20 +15319,20 @@ - + - + - + - + @@ -15336,7 +15341,7 @@ - + @@ -15345,7 +15350,7 @@ - + @@ -15356,7 +15361,7 @@ - + @@ -15369,7 +15374,7 @@ - + @@ -15378,20 +15383,20 @@ - + - + - + - + @@ -15400,7 +15405,7 @@ - + @@ -15409,7 +15414,7 @@ - + @@ -15420,7 +15425,7 @@ - + @@ -15433,7 +15438,7 @@ - + @@ -15442,12 +15447,12 @@ - + - + @@ -15467,31 +15472,31 @@ - + - + - + - + - + - + - + - + @@ -15500,9 +15505,9 @@ - + - + @@ -15511,9 +15516,9 @@ - + - + @@ -15522,9 +15527,9 @@ - + - + @@ -15533,25 +15538,25 @@ - + - + - + - + - + - + @@ -15571,21 +15576,21 @@ - + - + - + - + - + @@ -15593,21 +15598,21 @@ - + - + - + - + @@ -15616,10 +15621,10 @@ - + - + @@ -15627,21 +15632,21 @@ - + - + - + - + @@ -15650,7 +15655,7 @@ - + @@ -15659,1651 +15664,1651 @@ - + - + - - + + - + - + - - - + + + - + - + - - + + - + - - - + + + - + - - - + - + - + - + - + - + + + - + - + - - - + - + - + - + - + - + - + - + - + - + - + + + - + - + - + - + - - - + - + + + - - - + + + - - - + + + - + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - + - - - + + + - + - + - + - + - - - + + + - + - + - + - + - - - + - + - + - + - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - - + - + - + + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - - + - + + + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + - + - - - + - + - + - + - + - + - + - + - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + @@ -17313,9 +17318,9 @@ - + - + @@ -17324,7 +17329,7 @@ - + @@ -17333,7 +17338,7 @@ - + @@ -17342,7 +17347,7 @@ - + @@ -17351,7 +17356,7 @@ - + @@ -17360,11 +17365,11 @@ - + - + @@ -17374,7 +17379,7 @@ - + @@ -17385,11 +17390,11 @@ - + - + - + @@ -17400,9 +17405,9 @@ - + - + @@ -17411,9 +17416,9 @@ - + - + @@ -17424,7 +17429,7 @@ - + @@ -17433,7 +17438,7 @@ - + @@ -17442,9 +17447,9 @@ - + - + @@ -17453,22 +17458,22 @@ - + - + - + - + - + @@ -17486,9 +17491,9 @@ - + - + @@ -17497,7 +17502,7 @@ - + @@ -17506,7 +17511,7 @@ - + @@ -17515,7 +17520,7 @@ - + @@ -17524,7 +17529,7 @@ - + @@ -17533,11 +17538,11 @@ - + - + @@ -17547,7 +17552,7 @@ - + @@ -17558,11 +17563,11 @@ - + - + - + @@ -17573,9 +17578,9 @@ - + - + @@ -17584,9 +17589,9 @@ - + - + @@ -17597,7 +17602,7 @@ - + @@ -17606,7 +17611,7 @@ - + @@ -17615,9 +17620,9 @@ - + - + @@ -17626,22 +17631,22 @@ - + - + - + - + - + @@ -17650,7 +17655,7 @@ - + @@ -17659,7 +17664,7 @@ - + @@ -17683,7 +17688,7 @@ - + @@ -17693,7 +17698,7 @@ - + @@ -17702,7 +17707,7 @@ - + @@ -17713,7 +17718,7 @@ - + @@ -17724,7 +17729,7 @@ - + @@ -17735,7 +17740,7 @@ - + @@ -17746,7 +17751,7 @@ - + @@ -17757,9 +17762,9 @@ - + - + @@ -17770,48 +17775,48 @@ - + - + - + - + - + - + - + - + - + - + @@ -17821,9 +17826,9 @@ - + - + @@ -17838,7 +17843,7 @@ - + @@ -17849,7 +17854,7 @@ - + @@ -17860,13 +17865,13 @@ - + - + - + @@ -17875,7 +17880,7 @@ - + @@ -17884,7 +17889,7 @@ - + @@ -17893,7 +17898,7 @@ - + @@ -17902,22 +17907,22 @@ - + - + - + - + @@ -17931,9 +17936,9 @@ - + - + @@ -17948,7 +17953,7 @@ - + @@ -17959,7 +17964,7 @@ - + @@ -17970,13 +17975,13 @@ - + - + - + @@ -17985,7 +17990,7 @@ - + @@ -17994,7 +17999,7 @@ - + @@ -18003,7 +18008,7 @@ - + @@ -18012,11 +18017,11 @@ - + - + @@ -18052,7 +18057,7 @@ - + @@ -18064,7 +18069,7 @@ - + @@ -18078,7 +18083,7 @@ - + @@ -18087,16 +18092,16 @@ - + - + - + @@ -18105,18 +18110,18 @@ - + - + - + @@ -18131,7 +18136,7 @@ - + @@ -18142,7 +18147,7 @@ - + @@ -18153,9 +18158,9 @@ - + - + @@ -18164,7 +18169,7 @@ - + @@ -18175,9 +18180,9 @@ - + - + @@ -18186,7 +18191,7 @@ - + @@ -18201,9 +18206,9 @@ - + - + @@ -18214,7 +18219,7 @@ - + @@ -18231,7 +18236,7 @@ - + @@ -18242,7 +18247,7 @@ - + @@ -18253,7 +18258,7 @@ - + @@ -18266,7 +18271,7 @@ - + @@ -18279,230 +18284,230 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -18516,11 +18521,11 @@ - + - + @@ -18549,9 +18554,9 @@ - + - + @@ -18560,37 +18565,37 @@ - + - + - + - + - + - + - + - + @@ -18604,7 +18609,7 @@ - + @@ -18613,24 +18618,24 @@ - + - + - + - + @@ -18639,20 +18644,20 @@ - + - + - + - + @@ -18663,7 +18668,7 @@ - + @@ -18672,24 +18677,24 @@ - + - + - + - + @@ -18698,20 +18703,20 @@ - + - + - + - + @@ -18722,7 +18727,7 @@ - + @@ -18731,20 +18736,20 @@ - + - + - + - + @@ -18753,16 +18758,16 @@ - + - + - + @@ -18775,33 +18780,33 @@ - + - + - + - + - + - + - + @@ -18812,9 +18817,9 @@ - + - + @@ -18823,16 +18828,16 @@ - + - + - + @@ -18845,7 +18850,7 @@ - + @@ -18854,43 +18859,43 @@ - + - + - + - + - + - + - + - + - + @@ -18903,33 +18908,33 @@ - + - + - + - + - + - + - + @@ -18940,9 +18945,9 @@ - + - + @@ -18951,7 +18956,7 @@ - + @@ -18960,31 +18965,31 @@ - + - + - + - + - + - + - + @@ -18994,7 +18999,7 @@ - + @@ -19003,18 +19008,18 @@ - + - + - + @@ -19029,7 +19034,7 @@ - + @@ -19038,7 +19043,7 @@ - + @@ -19047,11 +19052,11 @@ - + - + - + @@ -19060,7 +19065,7 @@ - + @@ -19069,25 +19074,25 @@ - + - + - + - + - + @@ -19101,7 +19106,7 @@ - + @@ -19112,9 +19117,9 @@ - + - + @@ -19125,16 +19130,16 @@ - + - + - + @@ -19147,33 +19152,33 @@ - + - + - + - + - + - + - + @@ -19184,9 +19189,9 @@ - + - + @@ -19195,7 +19200,7 @@ - + @@ -19204,9 +19209,9 @@ - + - + @@ -19217,27 +19222,27 @@ - + - + - + - + - + - + @@ -19251,11 +19256,11 @@ - + - + - + @@ -19264,44 +19269,44 @@ - + - + - + - + - + - + - + - + - + - + @@ -19315,9 +19320,9 @@ - + - + @@ -19326,21 +19331,21 @@ - + - + - + - + @@ -19354,9 +19359,9 @@ - + - + @@ -19365,41 +19370,41 @@ - + - + - + - + - + - + - + - + - + @@ -19409,9 +19414,9 @@ - + - + @@ -19420,7 +19425,7 @@ - + @@ -19429,21 +19434,21 @@ - + - + - + - + @@ -19453,42 +19458,42 @@ - + - + - + - + - + - + - + @@ -19497,9 +19502,9 @@ - + - + @@ -19510,11 +19515,11 @@ - + - + - + @@ -19525,9 +19530,9 @@ - + - + @@ -19536,9 +19541,9 @@ - + - + @@ -19549,9 +19554,9 @@ - + - + @@ -19560,7 +19565,7 @@ - + @@ -19569,18 +19574,18 @@ - + - + - + - + @@ -19593,33 +19598,33 @@ - + - + - + - + - + - + - + @@ -19630,9 +19635,9 @@ - + - + @@ -19641,27 +19646,27 @@ - + - + - + - + - + - + @@ -19671,13 +19676,13 @@ - + - + @@ -19686,9 +19691,9 @@ - + - + @@ -19697,7 +19702,7 @@ - + @@ -19706,7 +19711,7 @@ - + @@ -19715,7 +19720,7 @@ - + @@ -19724,7 +19729,7 @@ - + @@ -19733,24 +19738,24 @@ - + - + - + - + - + @@ -19760,7 +19765,7 @@ - + @@ -19771,11 +19776,11 @@ - + - + - + @@ -19786,9 +19791,9 @@ - + - + @@ -19797,9 +19802,9 @@ - + - + @@ -19808,9 +19813,9 @@ - + - + @@ -19821,7 +19826,7 @@ - + @@ -19830,9 +19835,9 @@ - + - + @@ -19841,55 +19846,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19899,42 +19904,42 @@ - + - + - + - + - + - + - + @@ -19943,9 +19948,9 @@ - + - + @@ -19956,11 +19961,11 @@ - + - + - + @@ -19971,9 +19976,9 @@ - + - + @@ -19982,9 +19987,9 @@ - + - + @@ -19995,9 +20000,9 @@ - + - + @@ -20006,7 +20011,7 @@ - + @@ -20015,25 +20020,25 @@ - + - + - + - + - + @@ -20047,7 +20052,7 @@ - + @@ -20058,9 +20063,9 @@ - + - + @@ -20069,9 +20074,9 @@ - + - + @@ -20080,7 +20085,7 @@ - + @@ -20089,9 +20094,9 @@ - + - + @@ -20100,20 +20105,20 @@ - + - + - + - + - + @@ -20126,33 +20131,33 @@ - + - + - + - + - + - + - + @@ -20163,9 +20168,9 @@ - + - + @@ -20174,29 +20179,29 @@ - + - + - + - + - + - + @@ -20206,7 +20211,7 @@ - + @@ -20217,7 +20222,7 @@ - + @@ -20228,7 +20233,7 @@ - + @@ -20241,7 +20246,7 @@ - + @@ -20252,7 +20257,7 @@ - + @@ -20261,9 +20266,9 @@ - + - + @@ -20272,7 +20277,7 @@ - + @@ -20281,16 +20286,16 @@ - + - + - + @@ -20303,33 +20308,33 @@ - + - + - + - + - + - + - + @@ -20340,9 +20345,9 @@ - + - + @@ -20351,34 +20356,34 @@ - + - + - + - + - + - + - + @@ -20388,7 +20393,7 @@ - + @@ -20399,9 +20404,9 @@ - + - + @@ -20410,9 +20415,9 @@ - + - + @@ -20423,9 +20428,9 @@ - + - + @@ -20436,25 +20441,25 @@ - + - + - + - + - + @@ -20464,7 +20469,7 @@ - + @@ -20475,9 +20480,9 @@ - + - + @@ -20486,9 +20491,9 @@ - + - + @@ -20499,7 +20504,7 @@ - + @@ -20508,7 +20513,7 @@ - + @@ -20517,9 +20522,9 @@ - + - + @@ -20528,14 +20533,14 @@ - + - + - + @@ -20545,7 +20550,7 @@ - + @@ -20556,9 +20561,9 @@ - + - + @@ -20567,9 +20572,9 @@ - + - + @@ -20580,7 +20585,7 @@ - + @@ -20589,7 +20594,7 @@ - + @@ -20598,9 +20603,9 @@ - + - + @@ -20609,9 +20614,9 @@ - + - + @@ -20624,33 +20629,33 @@ - + - + - + - + - + - + - + @@ -20661,9 +20666,9 @@ - + - + @@ -20672,21 +20677,21 @@ - + - + - + - + @@ -20696,7 +20701,7 @@ - + @@ -20713,9 +20718,9 @@ - + - + @@ -20724,7 +20729,7 @@ - + @@ -20733,26 +20738,26 @@ - + - + - + - + - + - + @@ -20762,42 +20767,42 @@ - + - + - + - + - + - + - + @@ -20806,9 +20811,9 @@ - + - + @@ -20819,11 +20824,11 @@ - + - + - + @@ -20834,9 +20839,9 @@ - + - + @@ -20845,9 +20850,9 @@ - + - + @@ -20858,9 +20863,9 @@ - + - + @@ -20869,7 +20874,7 @@ - + @@ -20878,16 +20883,16 @@ - + - + - + @@ -20900,33 +20905,33 @@ - + - + - + - + - + - + - + @@ -20937,9 +20942,9 @@ - + - + @@ -20948,18 +20953,18 @@ - + - + - + - + @@ -20972,33 +20977,33 @@ - + - + - + - + - + - + - + @@ -21009,9 +21014,9 @@ - + - + @@ -21020,21 +21025,21 @@ - + - + - + - + @@ -21044,7 +21049,7 @@ - + @@ -21065,9 +21070,9 @@ - + - + @@ -21076,7 +21081,7 @@ - + @@ -21085,26 +21090,26 @@ - + - + - + - + - + - + @@ -21114,42 +21119,42 @@ - + - + - + - + - + - + - + @@ -21158,9 +21163,9 @@ - + - + @@ -21171,11 +21176,11 @@ - + - + - + @@ -21186,9 +21191,9 @@ - + - + @@ -21197,9 +21202,9 @@ - + - + @@ -21210,9 +21215,9 @@ - + - + @@ -21221,7 +21226,7 @@ - + @@ -21230,16 +21235,16 @@ - + - + - + @@ -21252,33 +21257,33 @@ - + - + - + - + - + - + - + @@ -21289,9 +21294,9 @@ - + - + @@ -21300,17 +21305,17 @@ - + - + - + @@ -21320,7 +21325,7 @@ - + @@ -21341,9 +21346,9 @@ - + - + @@ -21352,7 +21357,7 @@ - + @@ -21361,26 +21366,26 @@ - + - + - + - + - + - + @@ -21390,42 +21395,42 @@ - + - + - + - + - + - + - + @@ -21434,9 +21439,9 @@ - + - + @@ -21447,11 +21452,11 @@ - + - + - + @@ -21462,9 +21467,9 @@ - + - + @@ -21473,9 +21478,9 @@ - + - + @@ -21486,9 +21491,9 @@ - + - + @@ -21497,7 +21502,7 @@ - + @@ -21506,16 +21511,16 @@ - + - + - + @@ -21528,33 +21533,33 @@ - + - + - + - + - + - + - + @@ -21565,9 +21570,9 @@ - + - + @@ -21576,38 +21581,38 @@ - + - + - + - + - + - + - + - + @@ -21617,7 +21622,7 @@ - + @@ -21632,9 +21637,9 @@ - + - + @@ -21643,21 +21648,21 @@ - + - + - + - + @@ -21671,7 +21676,7 @@ - + @@ -21686,9 +21691,9 @@ - + - + @@ -21697,21 +21702,21 @@ - + - + - + - + @@ -21725,7 +21730,7 @@ - + @@ -21740,9 +21745,9 @@ - + - + @@ -21751,25 +21756,25 @@ - + - + - + - + - + @@ -21783,7 +21788,7 @@ - + @@ -21798,9 +21803,9 @@ - + - + @@ -21809,20 +21814,20 @@ - + - + - + - + - + @@ -21835,33 +21840,33 @@ - + - + - + - + - + - + - + @@ -21872,9 +21877,9 @@ - + - + @@ -21883,30 +21888,30 @@ - + - + - + - + - + - + @@ -21916,7 +21921,7 @@ - + @@ -21929,9 +21934,9 @@ - + - + @@ -21940,21 +21945,21 @@ - + - + - + - + @@ -21964,7 +21969,7 @@ - + @@ -21977,9 +21982,9 @@ - + - + @@ -21988,7 +21993,7 @@ - + @@ -21997,21 +22002,21 @@ - + - + - + - + @@ -22021,42 +22026,42 @@ - + - + - + - + - + - + - + @@ -22065,9 +22070,9 @@ - + - + @@ -22078,11 +22083,11 @@ - + - + - + @@ -22093,9 +22098,9 @@ - + - + @@ -22104,9 +22109,9 @@ - + - + @@ -22117,9 +22122,9 @@ - + - + @@ -22128,7 +22133,7 @@ - + @@ -22137,16 +22142,16 @@ - + - + - + @@ -22159,33 +22164,33 @@ - + - + - + - + - + - + - + @@ -22196,9 +22201,9 @@ - + - + @@ -22207,18 +22212,18 @@ - + - + - + - + @@ -22231,33 +22236,33 @@ - + - + - + - + - + - + - + @@ -22268,9 +22273,9 @@ - + - + @@ -22279,43 +22284,43 @@ - + - + - + - + - + - + - + - + - + @@ -22328,33 +22333,33 @@ - + - + - + - + - + - + - + @@ -22365,9 +22370,9 @@ - + - + @@ -22376,43 +22381,43 @@ - + - + - + - + - + - + - + - + - + @@ -22425,33 +22430,33 @@ - + - + - + - + - + - + - + @@ -22462,9 +22467,9 @@ - + - + @@ -22473,43 +22478,43 @@ - + - + - + - + - + - + - + - + - + @@ -22522,33 +22527,33 @@ - + - + - + - + - + - + - + @@ -22559,9 +22564,9 @@ - + - + @@ -22570,38 +22575,38 @@ - + - + - + - + - + - + - + - + @@ -22611,7 +22616,7 @@ - + @@ -22628,9 +22633,9 @@ - + - + @@ -22639,25 +22644,25 @@ - + - + - + - + - + @@ -22671,7 +22676,7 @@ - + @@ -22688,9 +22693,9 @@ - + - + @@ -22699,29 +22704,29 @@ - + - + - + - + - + - + @@ -22735,7 +22740,7 @@ - + @@ -22752,9 +22757,9 @@ - + - + @@ -22763,33 +22768,33 @@ - + - + - + - + - + - + - + @@ -22803,7 +22808,7 @@ - + @@ -22820,9 +22825,9 @@ - + - + @@ -22831,16 +22836,16 @@ - + - + - + @@ -22853,33 +22858,33 @@ - + - + - + - + - + - + - + @@ -22890,9 +22895,9 @@ - + - + @@ -22901,29 +22906,29 @@ - + - + - + - + - + - + @@ -22936,23 +22941,23 @@ - + - + - + - + - + @@ -22962,42 +22967,42 @@ - + - + - + - + - + - + - + @@ -23006,9 +23011,9 @@ - + - + @@ -23019,11 +23024,11 @@ - + - + - + @@ -23034,9 +23039,9 @@ - + - + @@ -23045,9 +23050,9 @@ - + - + @@ -23058,9 +23063,9 @@ - + - + @@ -23069,7 +23074,7 @@ - + @@ -23078,21 +23083,21 @@ - + - + - + - + @@ -23106,9 +23111,9 @@ - + - + @@ -23119,23 +23124,23 @@ - + - + - + - + - + @@ -23145,7 +23150,7 @@ - + @@ -23153,18 +23158,18 @@ - + - + - + - + @@ -23175,7 +23180,7 @@ - + @@ -23184,16 +23189,16 @@ - + - + - + @@ -23206,33 +23211,33 @@ - + - + - + - + - + - + - + @@ -23243,9 +23248,9 @@ - + - + @@ -23254,7 +23259,7 @@ - + @@ -23263,9 +23268,9 @@ - + - + @@ -23276,9 +23281,9 @@ - + - + @@ -23291,33 +23296,33 @@ - + - + - + - + - + - + - + @@ -23328,9 +23333,9 @@ - + - + @@ -23339,7 +23344,7 @@ - + @@ -23348,9 +23353,9 @@ - + - + @@ -23361,27 +23366,27 @@ - + - + - + - + - + - + @@ -23390,9 +23395,9 @@ - + - + @@ -23401,9 +23406,9 @@ - + - + @@ -23416,33 +23421,33 @@ - + - + - + - + - + - + - + @@ -23453,9 +23458,9 @@ - + - + @@ -23464,43 +23469,43 @@ - + - + - + - + - + - + - + - + - + @@ -23513,33 +23518,33 @@ - + - + - + - + - + - + - + @@ -23550,9 +23555,9 @@ - + - + @@ -23561,29 +23566,29 @@ - + - + - + - + - + - + @@ -23593,11 +23598,11 @@ - + - + - + @@ -23606,11 +23611,11 @@ - + - + - + @@ -23619,11 +23624,11 @@ - + - + - + @@ -23632,11 +23637,11 @@ - + - + - + @@ -23645,9 +23650,9 @@ - + - + @@ -23656,7 +23661,7 @@ - + @@ -23665,21 +23670,21 @@ - + - + - + - + @@ -23693,9 +23698,9 @@ - + - + @@ -23704,21 +23709,21 @@ - + - + - + - + @@ -23730,11 +23735,11 @@ - + - + @@ -23748,7 +23753,7 @@ - + @@ -23757,16 +23762,16 @@ - + - + - + @@ -23775,22 +23780,22 @@ - + - + - + - + @@ -23801,9 +23806,9 @@ - + - + @@ -23812,148 +23817,148 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -23967,9 +23972,9 @@ - + - + @@ -23978,9 +23983,9 @@ - + - + @@ -23989,18 +23994,18 @@ - + - + - + - + @@ -24009,9 +24014,9 @@ - + - + @@ -24020,11 +24025,11 @@ - + - + - + @@ -24037,9 +24042,9 @@ - + - + @@ -24048,21 +24053,21 @@ - + - + - + - + @@ -24074,27 +24079,27 @@ - + - + - + - + - + - + @@ -24108,7 +24113,7 @@ - + @@ -24117,16 +24122,16 @@ - + - + - + @@ -24135,28 +24140,28 @@ - + - + - + - + - + - + - + @@ -24167,7 +24172,7 @@ - + @@ -24178,9 +24183,9 @@ - + - + @@ -24189,236 +24194,236 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24428,9 +24433,9 @@ - + - + @@ -24439,9 +24444,9 @@ - + - + @@ -24450,18 +24455,18 @@ - + - + - + - + @@ -24470,9 +24475,9 @@ - + - + @@ -24481,13 +24486,13 @@ - + - + - + - + @@ -24498,9 +24503,9 @@ - + - + @@ -24509,7 +24514,7 @@ - + @@ -24518,17 +24523,17 @@ - + - + - + @@ -24558,7 +24563,7 @@ - + @@ -24567,16 +24572,16 @@ - + - + - + @@ -24585,7 +24590,7 @@ - + @@ -24602,148 +24607,148 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24753,9 +24758,9 @@ - + - + @@ -24764,9 +24769,9 @@ - + - + @@ -24775,18 +24780,18 @@ - + - + - + - + @@ -24795,9 +24800,9 @@ - + - + @@ -24806,17 +24811,17 @@ - + - + - + - + - + @@ -24825,9 +24830,9 @@ - + - + @@ -24836,7 +24841,7 @@ - + @@ -24845,26 +24850,26 @@ - + - + - + - + - + - + @@ -24874,42 +24879,42 @@ - + - + - + - + - + - + - + @@ -24918,9 +24923,9 @@ - + - + @@ -24931,11 +24936,11 @@ - + - + - + @@ -24946,9 +24951,9 @@ - + - + @@ -24957,9 +24962,9 @@ - + - + @@ -24970,9 +24975,9 @@ - + - + @@ -24981,7 +24986,7 @@ - + @@ -24990,16 +24995,16 @@ - + - + - + @@ -25012,33 +25017,33 @@ - + - + - + - + - + - + - + @@ -25049,9 +25054,9 @@ - + - + @@ -25060,17 +25065,17 @@ - + - + - + @@ -25080,9 +25085,9 @@ - + - + @@ -25091,9 +25096,9 @@ - + - + @@ -25102,9 +25107,9 @@ - + - + @@ -25113,11 +25118,11 @@ - + - + - + @@ -25128,9 +25133,9 @@ - + - + @@ -25139,7 +25144,7 @@ - + @@ -25148,31 +25153,31 @@ - + - + - + - + - + - + @@ -25183,7 +25188,7 @@ - + @@ -25194,7 +25199,7 @@ - + @@ -25205,9 +25210,9 @@ - + - + @@ -25216,27 +25221,27 @@ - + - + - + - + - + - + - + @@ -25246,9 +25251,9 @@ - + - + @@ -25257,9 +25262,9 @@ - + - + @@ -25268,18 +25273,18 @@ - + - + - + - + @@ -25288,9 +25293,9 @@ - + - + @@ -25299,17 +25304,17 @@ - + - + - + - + - + @@ -25318,9 +25323,9 @@ - + - + @@ -25329,7 +25334,7 @@ - + @@ -25338,33 +25343,33 @@ - + - + - + - + - + - + - + @@ -25374,9 +25379,9 @@ - + - + @@ -25385,9 +25390,9 @@ - + - + @@ -25396,18 +25401,18 @@ - + - + - + - + @@ -25416,9 +25421,9 @@ - + - + @@ -25427,9 +25432,9 @@ - + - + @@ -25438,26 +25443,26 @@ - + - + - + - + - + - + @@ -25467,42 +25472,42 @@ - + - + - + - + - + - + - + @@ -25511,9 +25516,9 @@ - + - + @@ -25524,11 +25529,11 @@ - + - + - + @@ -25539,9 +25544,9 @@ - + - + @@ -25550,9 +25555,9 @@ - + - + @@ -25563,9 +25568,9 @@ - + - + @@ -25574,7 +25579,7 @@ - + @@ -25583,27 +25588,27 @@ - + - + - + - + - + - + @@ -25613,9 +25618,9 @@ - + - + @@ -25624,9 +25629,9 @@ - + - + @@ -25635,18 +25640,18 @@ - + - + - + - + @@ -25655,9 +25660,9 @@ - + - + @@ -25666,21 +25671,21 @@ - + - + - + - + - + - + - + @@ -25689,9 +25694,9 @@ - + - + @@ -25700,7 +25705,7 @@ - + @@ -25709,26 +25714,26 @@ - + - + - + - + - + - + @@ -25738,42 +25743,42 @@ - + - + - + - + - + - + - + @@ -25782,9 +25787,9 @@ - + - + @@ -25795,11 +25800,11 @@ - + - + - + @@ -25810,9 +25815,9 @@ - + - + @@ -25821,9 +25826,9 @@ - + - + @@ -25834,9 +25839,9 @@ - + - + @@ -25845,7 +25850,7 @@ - + @@ -25854,16 +25859,16 @@ - + - + - + @@ -25876,33 +25881,33 @@ - + - + - + - + - + - + - + @@ -25913,9 +25918,9 @@ - + - + @@ -25924,17 +25929,17 @@ - + - + - + @@ -25944,9 +25949,9 @@ - + - + @@ -25955,9 +25960,9 @@ - + - + @@ -25966,9 +25971,9 @@ - + - + @@ -25977,9 +25982,9 @@ - + - + @@ -25988,17 +25993,17 @@ - + - + - + - + - + @@ -26007,9 +26012,9 @@ - + - + @@ -26018,7 +26023,7 @@ - + @@ -26027,26 +26032,26 @@ - + - + - + - + - + - + @@ -26056,42 +26061,42 @@ - + - + - + - + - + - + - + @@ -26100,9 +26105,9 @@ - + - + @@ -26113,11 +26118,11 @@ - + - + - + @@ -26128,9 +26133,9 @@ - + - + @@ -26139,9 +26144,9 @@ - + - + @@ -26152,9 +26157,9 @@ - + - + @@ -26163,7 +26168,7 @@ - + @@ -26172,16 +26177,16 @@ - + - + - + @@ -26194,33 +26199,33 @@ - + - + - + - + - + - + - + @@ -26231,9 +26236,9 @@ - + - + @@ -26242,21 +26247,21 @@ - + - + - + - + @@ -26266,9 +26271,9 @@ - + - + @@ -26277,9 +26282,9 @@ - + - + @@ -26288,9 +26293,9 @@ - + - + @@ -26299,9 +26304,9 @@ - + - + @@ -26310,13 +26315,13 @@ - + - + - + - + @@ -26327,9 +26332,9 @@ - + - + @@ -26338,7 +26343,7 @@ - + @@ -26347,21 +26352,21 @@ - + - + - + - + @@ -26371,18 +26376,18 @@ - + - + - + @@ -26391,11 +26396,11 @@ - + - + - + @@ -26406,9 +26411,9 @@ - + - + @@ -26417,9 +26422,9 @@ - + - + @@ -26428,7 +26433,7 @@ - + @@ -26437,29 +26442,29 @@ - + - + - + - + - + - + - + @@ -26469,9 +26474,9 @@ - + - + @@ -26480,9 +26485,9 @@ - + - + @@ -26491,9 +26496,9 @@ - + - + @@ -26502,18 +26507,18 @@ - + - + - + - + @@ -26522,9 +26527,9 @@ - + - + @@ -26533,7 +26538,7 @@ - + @@ -26542,26 +26547,26 @@ - + - + - + - + - + - + @@ -26571,42 +26576,42 @@ - + - + - + - + - + - + - + @@ -26615,9 +26620,9 @@ - + - + @@ -26628,11 +26633,11 @@ - + - + - + @@ -26643,9 +26648,9 @@ - + - + @@ -26654,9 +26659,9 @@ - + - + @@ -26667,9 +26672,9 @@ - + - + @@ -26678,7 +26683,7 @@ - + @@ -26687,16 +26692,16 @@ - + - + - + @@ -26709,33 +26714,33 @@ - + - + - + - + - + - + - + @@ -26746,9 +26751,9 @@ - + - + @@ -26757,17 +26762,17 @@ - + - + - + @@ -26777,11 +26782,11 @@ - + - + - + @@ -26790,11 +26795,11 @@ - + - + - + @@ -26803,11 +26808,11 @@ - + - + - + @@ -26816,11 +26821,11 @@ - + - + - + @@ -26829,9 +26834,9 @@ - + - + @@ -26840,7 +26845,7 @@ - + @@ -26849,26 +26854,26 @@ - + - + - + - + - + - + @@ -26878,42 +26883,42 @@ - + - + - + - + - + - + - + @@ -26922,9 +26927,9 @@ - + - + @@ -26935,11 +26940,11 @@ - + - + - + @@ -26950,9 +26955,9 @@ - + - + @@ -26961,9 +26966,9 @@ - + - + @@ -26974,9 +26979,9 @@ - + - + @@ -26985,7 +26990,7 @@ - + @@ -26994,19 +26999,19 @@ - + - + - + - + @@ -27014,19 +27019,19 @@ - + - + - + - + - + @@ -27034,19 +27039,19 @@ - + - + - + - + - + @@ -27054,33 +27059,33 @@ - + - + - + - + - + - + - + - + - + @@ -27090,9 +27095,9 @@ - + - + @@ -27101,9 +27106,9 @@ - + - + @@ -27112,9 +27117,9 @@ - + - + @@ -27123,18 +27128,18 @@ - + - + - + - + @@ -27143,9 +27148,9 @@ - + - + @@ -27154,7 +27159,7 @@ - + @@ -27163,33 +27168,33 @@ - + - + - + - + - + - + - + @@ -27199,9 +27204,9 @@ - + - + @@ -27210,9 +27215,9 @@ - + - + @@ -27221,9 +27226,9 @@ - + - + @@ -27232,18 +27237,18 @@ - + - + - + - + @@ -27252,9 +27257,9 @@ - + - + @@ -27263,7 +27268,7 @@ - + @@ -27272,25 +27277,25 @@ - + - + - + - + - + @@ -27300,9 +27305,9 @@ - + - + @@ -27311,9 +27316,9 @@ - + - + @@ -27322,9 +27327,9 @@ - + - + @@ -27333,18 +27338,18 @@ - + - + - + - + @@ -27353,9 +27358,9 @@ - + - + @@ -27364,7 +27369,7 @@ - + @@ -27373,26 +27378,26 @@ - + - + - + - + - + - + @@ -27402,42 +27407,42 @@ - + - + - + - + - + - + - + @@ -27446,9 +27451,9 @@ - + - + @@ -27459,11 +27464,11 @@ - + - + - + @@ -27474,9 +27479,9 @@ - + - + @@ -27485,9 +27490,9 @@ - + - + @@ -27498,9 +27503,9 @@ - + - + @@ -27509,7 +27514,7 @@ - + @@ -27518,16 +27523,16 @@ - + - + - + @@ -27540,33 +27545,33 @@ - + - + - + - + - + - + - + @@ -27577,9 +27582,9 @@ - + - + @@ -27588,17 +27593,17 @@ - + - + - + @@ -27608,11 +27613,11 @@ - + - + - + @@ -27621,11 +27626,11 @@ - + - + - + @@ -27634,11 +27639,11 @@ - + - + - + @@ -27647,11 +27652,11 @@ - + - + - + @@ -27660,9 +27665,9 @@ - + - + @@ -27671,7 +27676,7 @@ - + @@ -27680,26 +27685,26 @@ - + - + - + - + - + - + @@ -27709,42 +27714,42 @@ - + - + - + - + - + - + - + @@ -27753,9 +27758,9 @@ - + - + @@ -27766,11 +27771,11 @@ - + - + - + @@ -27781,9 +27786,9 @@ - + - + @@ -27792,9 +27797,9 @@ - + - + @@ -27805,9 +27810,9 @@ - + - + @@ -27816,7 +27821,7 @@ - + @@ -27825,16 +27830,16 @@ - + - + - + @@ -27847,33 +27852,33 @@ - + - + - + - + - + - + - + @@ -27884,9 +27889,9 @@ - + - + @@ -27895,29 +27900,29 @@ - + - + - + - + - + - + @@ -27927,11 +27932,11 @@ - + - + - + @@ -27940,11 +27945,11 @@ - + - + - + @@ -27953,11 +27958,11 @@ - + - + - + @@ -27966,11 +27971,11 @@ - + - + - + @@ -27979,9 +27984,9 @@ - + - + @@ -27990,21 +27995,21 @@ - + - + - + - + @@ -28014,42 +28019,42 @@ - + - + - + - + - + - + - + @@ -28058,9 +28063,9 @@ - + - + @@ -28071,11 +28076,11 @@ - + - + - + @@ -28086,9 +28091,9 @@ - + - + @@ -28097,9 +28102,9 @@ - + - + @@ -28110,9 +28115,9 @@ - + - + @@ -28121,7 +28126,7 @@ - + @@ -28130,76 +28135,76 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -28209,9 +28214,9 @@ - + - + @@ -28220,9 +28225,9 @@ - + - + @@ -28231,9 +28236,9 @@ - + - + @@ -28242,18 +28247,18 @@ - + - + - + - + @@ -28262,9 +28267,9 @@ - + - + @@ -28273,7 +28278,7 @@ - + @@ -28282,33 +28287,33 @@ - + - + - + - + - + - + - + @@ -28318,9 +28323,9 @@ - + - + @@ -28329,9 +28334,9 @@ - + - + @@ -28340,9 +28345,9 @@ - + - + @@ -28351,18 +28356,18 @@ - + - + - + - + @@ -28371,9 +28376,9 @@ - + - + @@ -28382,29 +28387,29 @@ - + - + - + - + - + - + @@ -28414,9 +28419,9 @@ - + - + @@ -28425,18 +28430,18 @@ - + - + - + - + @@ -28445,9 +28450,9 @@ - + - + @@ -28456,7 +28461,7 @@ - + @@ -28465,19 +28470,19 @@ - + - + - + - + @@ -28496,7 +28501,7 @@ - + @@ -28505,7 +28510,7 @@ - + @@ -28514,7 +28519,7 @@ - + @@ -28522,7 +28527,7 @@ - + @@ -28533,13 +28538,13 @@ - + - + - + @@ -28548,34 +28553,34 @@ - + - + - + - + - + - + - + @@ -28584,13 +28589,13 @@ - + - + - + @@ -28599,13 +28604,13 @@ - + - + - + @@ -28616,13 +28621,13 @@ - + - + - + @@ -28633,30 +28638,30 @@ - + - + - + - + - + - + - + - + @@ -28666,9 +28671,9 @@ - + - + @@ -28677,18 +28682,18 @@ - + - + - + - + @@ -28697,9 +28702,9 @@ - + - + @@ -28708,7 +28713,7 @@ - + @@ -28717,25 +28722,25 @@ - + - + - + - + - + @@ -28745,9 +28750,9 @@ - + - + @@ -28756,18 +28761,18 @@ - + - + - + - + @@ -28776,9 +28781,9 @@ - + - + @@ -28787,7 +28792,7 @@ - + @@ -28796,21 +28801,21 @@ - + - + - + - + @@ -28820,42 +28825,42 @@ - + - + - + - + - + - + - + @@ -28864,9 +28869,9 @@ - + - + @@ -28877,11 +28882,11 @@ - + - + - + @@ -28892,9 +28897,9 @@ - + - + @@ -28903,9 +28908,9 @@ - + - + @@ -28916,9 +28921,9 @@ - + - + @@ -28927,7 +28932,7 @@ - + @@ -28936,21 +28941,21 @@ - + - + - + - + @@ -28964,9 +28969,9 @@ - + - + @@ -28977,39 +28982,39 @@ - + - + - + - + - + - + - + - + - + @@ -29023,9 +29028,9 @@ - + - + @@ -29034,18 +29039,18 @@ - + - + - + - + @@ -29054,9 +29059,9 @@ - + - + @@ -29065,37 +29070,37 @@ - + - + - + - + - + - + - + - + @@ -29109,9 +29114,9 @@ - + - + @@ -29120,18 +29125,18 @@ - + - + - + - + @@ -29140,9 +29145,9 @@ - + - + @@ -29151,37 +29156,37 @@ - + - + - + - + - + - + - + - + @@ -29195,9 +29200,9 @@ - + - + @@ -29206,18 +29211,18 @@ - + - + - + - + @@ -29226,9 +29231,9 @@ - + - + @@ -29237,33 +29242,33 @@ - + - + - + - + - + - + - + @@ -29273,9 +29278,9 @@ - + - + @@ -29284,18 +29289,18 @@ - + - + - + - + @@ -29304,9 +29309,9 @@ - + - + @@ -29315,7 +29320,7 @@ - + @@ -29324,26 +29329,26 @@ - + - + - + - + - + - + @@ -29353,42 +29358,42 @@ - + - + - + - + - + - + - + @@ -29397,9 +29402,9 @@ - + - + @@ -29410,11 +29415,11 @@ - + - + - + @@ -29425,9 +29430,9 @@ - + - + @@ -29436,9 +29441,9 @@ - + - + @@ -29449,9 +29454,9 @@ - + - + @@ -29460,7 +29465,7 @@ - + @@ -29469,7 +29474,7 @@ - + @@ -29478,22 +29483,22 @@ - + - + - + - + - + @@ -29506,33 +29511,33 @@ - + - + - + - + - + - + - + @@ -29543,9 +29548,9 @@ - + - + @@ -29554,7 +29559,7 @@ - + @@ -29563,30 +29568,30 @@ - + - + - + - + - + - + @@ -29600,11 +29605,11 @@ - + - + @@ -29614,11 +29619,11 @@ - + - + - + @@ -29627,11 +29632,11 @@ - + - + - + @@ -29642,11 +29647,11 @@ - + - + - + @@ -29655,7 +29660,7 @@ - + @@ -29664,51 +29669,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -29718,9 +29723,9 @@ - + - + @@ -29729,18 +29734,18 @@ - + - + - + - + @@ -29749,9 +29754,9 @@ - + - + @@ -29760,7 +29765,7 @@ - + @@ -29769,16 +29774,16 @@ - + - + - + @@ -29791,33 +29796,33 @@ - + - + - + - + - + - + - + @@ -29828,9 +29833,9 @@ - + - + @@ -29839,7 +29844,7 @@ - + @@ -29848,9 +29853,9 @@ - + - + @@ -29861,10 +29866,10 @@ - + - + @@ -29878,57 +29883,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -29938,9 +29943,9 @@ - + - + @@ -29951,7 +29956,7 @@ - + @@ -29960,102 +29965,102 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30066,9 +30071,9 @@ - + - + @@ -30077,63 +30082,63 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30147,7 +30152,7 @@ - + @@ -30156,14 +30161,14 @@ - + - + @@ -30172,228 +30177,228 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30404,31 +30409,31 @@ - + - + - + - + - + - + - + @@ -30438,7 +30443,7 @@ - + @@ -30447,7 +30452,7 @@ - + @@ -30458,11 +30463,11 @@ - + - + @@ -30471,7 +30476,7 @@ - + @@ -30480,7 +30485,7 @@ - + @@ -30491,7 +30496,7 @@ - + @@ -30500,7 +30505,7 @@ - + @@ -30517,7 +30522,7 @@ - + @@ -30526,7 +30531,7 @@ - + @@ -30547,7 +30552,7 @@ - + @@ -30556,7 +30561,7 @@ - + @@ -30569,9 +30574,9 @@ - + - + @@ -30580,7 +30585,7 @@ - + @@ -30591,7 +30596,7 @@ - + @@ -30600,29 +30605,29 @@ - + - + - + - + - + - + @@ -30632,7 +30637,7 @@ - + @@ -30641,7 +30646,7 @@ - + @@ -30650,22 +30655,22 @@ - + - + - + - + - + @@ -30676,9 +30681,9 @@ - + - + @@ -30687,7 +30692,7 @@ - + @@ -30696,21 +30701,21 @@ - + - + - + - + @@ -30720,42 +30725,42 @@ - + - + - + - + - + - + - + @@ -30764,9 +30769,9 @@ - + - + @@ -30777,11 +30782,11 @@ - + - + - + @@ -30792,9 +30797,9 @@ - + - + @@ -30803,9 +30808,9 @@ - + - + @@ -30816,9 +30821,9 @@ - + - + @@ -30827,7 +30832,7 @@ - + @@ -30836,48 +30841,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -30886,9 +30891,9 @@ - + - + @@ -30897,92 +30902,92 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30991,9 +30996,9 @@ - + - + @@ -31002,96 +31007,96 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31100,9 +31105,9 @@ - + - + @@ -31111,97 +31116,97 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31210,97 +31215,97 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31309,96 +31314,96 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31407,7 +31412,7 @@ - + @@ -31416,9 +31421,9 @@ - + - + @@ -31427,9 +31432,9 @@ - + - + @@ -31438,80 +31443,80 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31525,7 +31530,7 @@ - + @@ -31534,7 +31539,7 @@ - + @@ -31543,9 +31548,9 @@ - + - + @@ -31554,38 +31559,38 @@ - + - + - + - + - + - + - + - + @@ -31594,62 +31599,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31662,33 +31667,33 @@ - + - + - + - + - + - + - + @@ -31699,9 +31704,9 @@ - + - + @@ -31710,7 +31715,7 @@ - + @@ -31719,9 +31724,9 @@ - + - + @@ -31732,10 +31737,10 @@ - + - + @@ -31750,61 +31755,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31814,9 +31819,9 @@ - + - + @@ -31827,7 +31832,7 @@ - + @@ -31836,72 +31841,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31910,66 +31915,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31978,62 +31983,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -32042,62 +32047,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -32106,62 +32111,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -32170,62 +32175,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -32234,75 +32239,75 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -32311,7 +32316,7 @@ - + @@ -32320,9 +32325,9 @@ - + - + @@ -32331,9 +32336,9 @@ - + - + @@ -32342,49 +32347,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -32397,33 +32402,33 @@ - + - + - + - + - + - + - + @@ -32434,9 +32439,9 @@ - + - + @@ -32445,16 +32450,16 @@ - + - + - + @@ -32467,33 +32472,33 @@ - + - + - + - + - + - + - + @@ -32504,9 +32509,9 @@ - + - + @@ -32515,25 +32520,25 @@ - + - + - + - + - + @@ -32549,7 +32554,7 @@ - + @@ -32558,33 +32563,33 @@ - + - + - + - + - + - + - + - + - + @@ -32593,9 +32598,9 @@ - + - + @@ -32604,7 +32609,7 @@ - + @@ -32615,28 +32620,28 @@ - + - + - + - + - + - + - + - + @@ -32647,19 +32652,19 @@ - + - + - + - + - + - + @@ -32668,19 +32673,19 @@ - + - + - + - + - + - + @@ -32689,23 +32694,23 @@ - + - + - + - + - + - + - + - + @@ -32714,9 +32719,9 @@ - + - + @@ -32725,9 +32730,9 @@ - + - + @@ -32736,73 +32741,73 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -32815,33 +32820,33 @@ - + - + - + - + - + - + - + @@ -32852,9 +32857,9 @@ - + - + @@ -32863,32 +32868,32 @@ - + - + - + - + - + - + @@ -32897,20 +32902,20 @@ - + - + - + - + - + @@ -32919,7 +32924,7 @@ - + @@ -32930,9 +32935,9 @@ - + - + @@ -32941,9 +32946,9 @@ - + - + @@ -32952,29 +32957,29 @@ - + - + - + - + - + - + - + - + @@ -32987,33 +32992,33 @@ - + - + - + - + - + - + - + @@ -33024,9 +33029,9 @@ - + - + @@ -33035,7 +33040,7 @@ - + @@ -33044,27 +33049,27 @@ - + - + - + - + - + - + @@ -33074,7 +33079,7 @@ - + @@ -33083,24 +33088,24 @@ - + - + - + - + @@ -33109,20 +33114,20 @@ - + - + - + - + @@ -33133,7 +33138,7 @@ - + @@ -33142,20 +33147,20 @@ - + - + - + - + - + @@ -33164,7 +33169,7 @@ - + @@ -33173,25 +33178,25 @@ - + - + - + - + - + @@ -33205,7 +33210,7 @@ - + @@ -33216,9 +33221,9 @@ - + - + @@ -33229,16 +33234,16 @@ - + - + - + @@ -33251,33 +33256,33 @@ - + - + - + - + - + - + - + @@ -33288,9 +33293,9 @@ - + - + @@ -33299,7 +33304,7 @@ - + @@ -33308,27 +33313,27 @@ - + - + - + - + - + - + @@ -33338,7 +33343,7 @@ - + @@ -33347,18 +33352,18 @@ - + - + - + @@ -33373,20 +33378,20 @@ - + - + - + - + - + @@ -33395,7 +33400,7 @@ - + @@ -33404,25 +33409,25 @@ - + - + - + - + - + @@ -33436,7 +33441,7 @@ - + @@ -33447,9 +33452,9 @@ - + - + @@ -33460,21 +33465,21 @@ - + - + - + - + @@ -33484,42 +33489,42 @@ - + - + - + - + - + - + - + @@ -33528,9 +33533,9 @@ - + - + @@ -33541,11 +33546,11 @@ - + - + - + @@ -33556,9 +33561,9 @@ - + - + @@ -33567,9 +33572,9 @@ - + - + @@ -33580,9 +33585,9 @@ - + - + @@ -33591,7 +33596,7 @@ - + @@ -33600,23 +33605,23 @@ - + - + - + - + - + @@ -33626,42 +33631,42 @@ - + - + - + - + - + - + - + @@ -33670,9 +33675,9 @@ - + - + @@ -33683,11 +33688,11 @@ - + - + - + @@ -33698,9 +33703,9 @@ - + - + @@ -33709,9 +33714,9 @@ - + - + @@ -33722,9 +33727,9 @@ - + - + @@ -33733,7 +33738,7 @@ - + @@ -33742,32 +33747,32 @@ - + - + - + - + - + - + - + @@ -33777,42 +33782,42 @@ - + - + - + - + - + - + - + @@ -33821,9 +33826,9 @@ - + - + @@ -33834,11 +33839,11 @@ - + - + - + @@ -33849,9 +33854,9 @@ - + - + @@ -33860,9 +33865,9 @@ - + - + @@ -33873,9 +33878,9 @@ - + - + @@ -33884,7 +33889,7 @@ - + @@ -33893,23 +33898,23 @@ - + - + - + - + - + @@ -33919,42 +33924,42 @@ - + - + - + - + - + - + - + @@ -33963,9 +33968,9 @@ - + - + @@ -33976,11 +33981,11 @@ - + - + - + @@ -33991,9 +33996,9 @@ - + - + @@ -34002,9 +34007,9 @@ - + - + @@ -34015,9 +34020,9 @@ - + - + @@ -34026,7 +34031,7 @@ - + @@ -34035,23 +34040,23 @@ - + - + - + - + - + @@ -34061,42 +34066,42 @@ - + - + - + - + - + - + - + @@ -34105,9 +34110,9 @@ - + - + @@ -34118,11 +34123,11 @@ - + - + - + @@ -34133,9 +34138,9 @@ - + - + @@ -34144,9 +34149,9 @@ - + - + @@ -34157,9 +34162,9 @@ - + - + @@ -34168,7 +34173,7 @@ - + @@ -34177,23 +34182,23 @@ - + - + - + - + - + @@ -34203,42 +34208,42 @@ - + - + - + - + - + - + - + @@ -34247,9 +34252,9 @@ - + - + @@ -34260,11 +34265,11 @@ - + - + - + @@ -34275,9 +34280,9 @@ - + - + @@ -34286,9 +34291,9 @@ - + - + @@ -34299,9 +34304,9 @@ - + - + @@ -34310,7 +34315,7 @@ - + @@ -34319,23 +34324,23 @@ - + - + - + - + - + @@ -34345,42 +34350,42 @@ - + - + - + - + - + - + - + @@ -34389,9 +34394,9 @@ - + - + @@ -34402,11 +34407,11 @@ - + - + - + @@ -34417,9 +34422,9 @@ - + - + @@ -34428,9 +34433,9 @@ - + - + @@ -34441,9 +34446,9 @@ - + - + @@ -34452,7 +34457,7 @@ - + @@ -34461,7 +34466,7 @@ - + @@ -34470,9 +34475,9 @@ - + - + @@ -34483,16 +34488,16 @@ - + - + - + - + @@ -34502,42 +34507,42 @@ - + - + - + - + - + - + - + @@ -34546,9 +34551,9 @@ - + - + @@ -34559,11 +34564,11 @@ - + - + - + @@ -34574,9 +34579,9 @@ - + - + @@ -34585,9 +34590,9 @@ - + - + @@ -34598,9 +34603,9 @@ - + - + @@ -34609,7 +34614,7 @@ - + @@ -34618,23 +34623,23 @@ - + - + - + - + - + @@ -34644,42 +34649,42 @@ - + - + - + - + - + - + - + @@ -34688,9 +34693,9 @@ - + - + @@ -34701,11 +34706,11 @@ - + - + - + @@ -34716,9 +34721,9 @@ - + - + @@ -34727,9 +34732,9 @@ - + - + @@ -34740,9 +34745,9 @@ - + - + @@ -34751,7 +34756,7 @@ - + @@ -34760,7 +34765,7 @@ - + @@ -34769,9 +34774,9 @@ - + - + @@ -34782,16 +34787,16 @@ - + - + - + - + @@ -34801,42 +34806,42 @@ - + - + - + - + - + - + - + @@ -34845,9 +34850,9 @@ - + - + @@ -34858,11 +34863,11 @@ - + - + - + @@ -34873,9 +34878,9 @@ - + - + @@ -34884,9 +34889,9 @@ - + - + @@ -34897,9 +34902,9 @@ - + - + @@ -34908,7 +34913,7 @@ - + @@ -34917,7 +34922,7 @@ - + @@ -34926,9 +34931,9 @@ - + - + @@ -34939,49 +34944,49 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -34990,7 +34995,7 @@ - + @@ -35001,52 +35006,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -35055,7 +35060,7 @@ - + @@ -35066,19 +35071,19 @@ - + - + - + - + - + @@ -35091,31 +35096,31 @@ - + - + - + - + - + - + @@ -35124,7 +35129,7 @@ - + @@ -35135,22 +35140,22 @@ - + - + - + - + - + - + - + @@ -35164,11 +35169,11 @@ - + - + @@ -35197,9 +35202,9 @@ - + - + @@ -35208,19 +35213,19 @@ - + - + - + - + @@ -35236,12 +35241,12 @@ - + - + @@ -35257,12 +35262,12 @@ - + - + @@ -35278,7 +35283,7 @@ - + @@ -35288,7 +35293,7 @@ - + @@ -35311,7 +35316,7 @@ - + @@ -35328,7 +35333,7 @@ - + @@ -35336,7 +35341,7 @@ - + @@ -35345,13 +35350,13 @@ - + - + @@ -35360,13 +35365,13 @@ - + - + @@ -35399,13 +35404,13 @@ - + - + @@ -35416,7 +35421,7 @@ - + @@ -35426,7 +35431,7 @@ - + @@ -35435,7 +35440,7 @@ - + @@ -35454,7 +35459,7 @@ - + @@ -35462,7 +35467,7 @@ - + @@ -35471,7 +35476,7 @@ - + @@ -35486,11 +35491,11 @@ - + - + @@ -35531,13 +35536,13 @@ - + - + - + @@ -35554,7 +35559,7 @@ - + @@ -35563,9 +35568,9 @@ - + - + @@ -35574,9 +35579,9 @@ - + - + @@ -35587,15 +35592,15 @@ - + - + - + - + - + @@ -35604,17 +35609,17 @@ - + - + - + - + - + @@ -35625,7 +35630,7 @@ - + @@ -35636,61 +35641,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -35699,11 +35704,11 @@ - + - + - + @@ -35712,28 +35717,28 @@ - + - + - + - + - + - + - + @@ -35745,7 +35750,7 @@ - + @@ -35759,9 +35764,9 @@ - + - + @@ -35770,14 +35775,14 @@ - + - + @@ -35791,11 +35796,11 @@ - + - + @@ -35811,17 +35816,17 @@ - + - + - + @@ -35834,13 +35839,13 @@ - + - + - + @@ -35849,9 +35854,9 @@ - + - + @@ -35860,9 +35865,9 @@ - + - + @@ -35871,9 +35876,9 @@ - + - + @@ -35882,9 +35887,9 @@ - + - + @@ -35893,7 +35898,7 @@ - + @@ -35902,18 +35907,18 @@ - + - + - + @@ -35921,7 +35926,7 @@ - + @@ -35932,17 +35937,17 @@ - + - + - + @@ -35951,38 +35956,38 @@ - + - + - + - + - + - + - + @@ -35991,7 +35996,7 @@ - + @@ -36002,7 +36007,7 @@ - + @@ -36013,7 +36018,7 @@ - + @@ -36022,7 +36027,7 @@ - + @@ -36035,14 +36040,14 @@ - + - + @@ -36053,17 +36058,17 @@ - + - + - + @@ -36072,38 +36077,38 @@ - + - + - + - + - + - + - + @@ -36112,7 +36117,7 @@ - + @@ -36123,7 +36128,7 @@ - + @@ -36134,7 +36139,7 @@ - + @@ -36143,7 +36148,7 @@ - + @@ -36156,98 +36161,98 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -36259,15 +36264,15 @@ - + - + - + - + @@ -36279,29 +36284,29 @@ - + - + - + - + - + - + @@ -36310,21 +36315,21 @@ - + - + - + - + @@ -36336,34 +36341,34 @@ - + - + - + - + - + - + - + @@ -36373,7 +36378,7 @@ - + @@ -36381,23 +36386,23 @@ - + - + - + - + @@ -36411,11 +36416,11 @@ - + - + - + @@ -36426,7 +36431,7 @@ - + @@ -36439,19 +36444,19 @@ - + - + - + - + - + - + - + @@ -36467,27 +36472,27 @@ - + - + - + - + - + - + @@ -36495,27 +36500,27 @@ - + - + - + - + - + - + @@ -36523,7 +36528,7 @@ - + @@ -36534,19 +36539,19 @@ - + - + - + - + @@ -36555,7 +36560,7 @@ - + @@ -36566,9 +36571,9 @@ - + - + @@ -36577,9 +36582,9 @@ - + - + @@ -36588,16 +36593,16 @@ - + - + - + - + @@ -36606,10 +36611,10 @@ - + - + @@ -36625,15 +36630,15 @@ - + - + - + @@ -36642,43 +36647,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -36689,44 +36694,44 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -36735,27 +36740,27 @@ - + - + - + - + - + - + @@ -36764,38 +36769,38 @@ - + - + - + - + - + - + - + - + - + - + @@ -36831,13 +36836,13 @@ - + - + @@ -36846,7 +36851,7 @@ - + @@ -36855,7 +36860,7 @@ - + @@ -36864,7 +36869,7 @@ - + @@ -36873,7 +36878,7 @@ - + @@ -36882,7 +36887,7 @@ - + @@ -36893,7 +36898,7 @@ - + @@ -36906,7 +36911,7 @@ - + @@ -36917,7 +36922,7 @@ - + @@ -36930,7 +36935,7 @@ - + @@ -36941,7 +36946,7 @@ - + @@ -36954,9 +36959,9 @@ - + - + @@ -36965,9 +36970,9 @@ - + - + @@ -36976,9 +36981,9 @@ - + - + @@ -36987,9 +36992,9 @@ - + - + @@ -36998,9 +37003,9 @@ - + - + @@ -37009,9 +37014,9 @@ - + - + @@ -37020,7 +37025,7 @@ - + @@ -37029,9 +37034,9 @@ - + - + @@ -37040,11 +37045,11 @@ - + - + - + @@ -37053,7 +37058,7 @@ - + @@ -37062,7 +37067,7 @@ - + @@ -37071,7 +37076,7 @@ - + @@ -37080,92 +37085,92 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -37174,59 +37179,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -37237,7 +37242,7 @@ - + @@ -37246,7 +37251,7 @@ - + @@ -37257,7 +37262,7 @@ - + @@ -37266,21 +37271,21 @@ - + - + - + @@ -37289,7 +37294,7 @@ - + @@ -37304,39 +37309,39 @@ - + - + - + - + - + - + - + - + - + @@ -37345,25 +37350,25 @@ - + - + - + - + @@ -37372,7 +37377,7 @@ - + @@ -37381,7 +37386,7 @@ - + @@ -37396,14 +37401,14 @@ - + - + - + @@ -37414,13 +37419,13 @@ - + - + - + @@ -37429,20 +37434,20 @@ - + - + - + - + - + @@ -37450,11 +37455,11 @@ - + - + @@ -37465,7 +37470,7 @@ - + @@ -37479,7 +37484,7 @@ - + @@ -37494,7 +37499,7 @@ - + @@ -37537,7 +37542,7 @@ - + @@ -37550,7 +37555,7 @@ - + @@ -37563,7 +37568,7 @@ - + @@ -37576,7 +37581,7 @@ - + @@ -37589,7 +37594,7 @@ - + @@ -37602,7 +37607,7 @@ - + @@ -37615,7 +37620,7 @@ - + @@ -37648,7 +37653,7 @@ - + @@ -37666,7 +37671,7 @@ - + @@ -37675,9 +37680,9 @@ - + - + @@ -37688,7 +37693,7 @@ - + @@ -37701,7 +37706,7 @@ - + diff --git a/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi b/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi index e1ae2420..45c35f7a 100644 --- a/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi +++ b/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi @@ -931,8 +931,8 @@ - - + + @@ -3434,3871 +3434,22 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - + + + + + @@ -7461,11 +3612,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -7490,118 +3714,39 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + @@ -7841,115 +3986,90 @@ - - + + - - + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - + + + + + + + - - + + - - - - - - + + + + + + - - - - - - - + + + + + + + + + + + + - - + + - - + + @@ -7957,7 +4077,7 @@ - + @@ -8025,55 +4145,3935 @@ - - - - - - - - - - + + - - - - - - - - + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8260,7 +8260,7 @@ - + @@ -8473,7 +8473,7 @@ - + @@ -10057,7 +10057,7 @@ - + @@ -10077,9 +10077,36 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10094,9 +10121,9 @@ - + - + @@ -10139,9 +10166,9 @@ - + - + @@ -10159,29 +10186,29 @@ - + - + - + - + - + @@ -10192,7 +10219,7 @@ - + @@ -10292,10 +10319,10 @@ - + - + @@ -10387,11 +10414,11 @@ - + - + - + @@ -12316,7 +12343,7 @@ - + @@ -12355,7 +12382,7 @@ - + @@ -12367,15 +12394,15 @@ - + - + - + @@ -12482,7 +12509,7 @@ - + @@ -12491,7 +12518,7 @@ - + @@ -12813,7 +12840,7 @@ - + @@ -12990,7 +13017,7 @@ - + @@ -13006,9 +13033,9 @@ - + - + @@ -13018,7 +13045,7 @@ - + @@ -13764,9 +13791,9 @@ - + - + @@ -13779,7 +13806,7 @@ - + @@ -13875,7 +13902,7 @@ - + @@ -13932,7 +13959,7 @@ - + @@ -13956,7 +13983,7 @@ - + @@ -13965,7 +13992,7 @@ - + @@ -13987,7 +14014,7 @@ - + @@ -14000,7 +14027,7 @@ - + @@ -14439,35 +14466,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -14979,6 +14979,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15038,76 +15102,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -15623,11 +15623,11 @@ - + - + @@ -15639,9 +15639,9 @@ - + - + @@ -15702,9 +15702,9 @@ - + - + @@ -15713,9 +15713,9 @@ - + - + @@ -15731,9 +15731,9 @@ - + - + @@ -15789,7 +15789,7 @@ - + @@ -15904,9 +15904,9 @@ - + - + @@ -15926,7 +15926,7 @@ - + @@ -15939,9 +15939,9 @@ - + - + @@ -15952,9 +15952,9 @@ - + - + @@ -15969,9 +15969,9 @@ - + - + @@ -16290,9 +16290,9 @@ - + - + @@ -16316,9 +16316,9 @@ - + - + @@ -16339,9 +16339,9 @@ - + - + @@ -16380,9 +16380,9 @@ - + - + @@ -16392,9 +16392,9 @@ - + - + @@ -16446,9 +16446,9 @@ - + - + @@ -18624,48 +18624,132 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -18798,90 +18882,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -21623,7 +21623,7 @@ - + @@ -21717,7 +21717,7 @@ - + @@ -21813,7 +21813,7 @@ - + @@ -21826,6 +21826,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -22113,7 +22302,7 @@ - + @@ -22122,7 +22311,7 @@ - + @@ -22131,7 +22320,7 @@ - + @@ -22140,7 +22329,7 @@ - + @@ -22149,7 +22338,7 @@ - + @@ -22158,7 +22347,7 @@ - + @@ -22167,7 +22356,7 @@ - + @@ -22176,7 +22365,7 @@ - + @@ -22374,11 +22563,11 @@ - + - + @@ -22387,7 +22576,7 @@ - + @@ -22402,9 +22591,9 @@ - + - + @@ -22413,11 +22602,11 @@ - + - + - + @@ -22472,7 +22661,7 @@ - + @@ -22487,7 +22676,7 @@ - + @@ -22528,7 +22717,7 @@ - + @@ -22543,7 +22732,7 @@ - + @@ -22565,16 +22754,16 @@ - + - + - + - + @@ -22700,7 +22889,7 @@ - + @@ -22865,195 +23054,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi b/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi index 51ed1f7d..5d500d67 100644 --- a/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi +++ b/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi @@ -4914,7 +4914,7 @@ - + @@ -23557,416 +23557,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24008,7 +23664,7 @@ - + @@ -24021,9 +23677,9 @@ - + - + @@ -24032,7 +23688,7 @@ - + @@ -24041,9 +23697,9 @@ - + - + @@ -24052,9 +23708,9 @@ - + - + @@ -24065,7 +23721,7 @@ - + @@ -24074,25 +23730,25 @@ - + - + - + - + - + - + @@ -24105,9 +23761,9 @@ - + - + @@ -24116,7 +23772,7 @@ - + @@ -24125,9 +23781,9 @@ - + - + @@ -24136,9 +23792,9 @@ - + - + @@ -24149,7 +23805,7 @@ - + @@ -24158,25 +23814,25 @@ - + - + - + - + - + - + @@ -24189,9 +23845,9 @@ - + - + @@ -24200,7 +23856,7 @@ - + @@ -24209,9 +23865,9 @@ - + - + @@ -24220,9 +23876,9 @@ - + - + @@ -24233,7 +23889,7 @@ - + @@ -24242,25 +23898,25 @@ - + - + - + - + - + - + @@ -24273,9 +23929,9 @@ - + - + @@ -24284,7 +23940,7 @@ - + @@ -24293,9 +23949,9 @@ - + - + @@ -24304,9 +23960,9 @@ - + - + @@ -24317,7 +23973,7 @@ - + @@ -24326,25 +23982,25 @@ - + - + - + - + - + - + @@ -24357,9 +24013,9 @@ - + - + @@ -24368,7 +24024,7 @@ - + @@ -24377,9 +24033,9 @@ - + - + @@ -24388,9 +24044,9 @@ - + - + @@ -24401,7 +24057,7 @@ - + @@ -24410,41 +24066,41 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24453,18 +24109,18 @@ - + - + - + - + @@ -24498,7 +24154,7 @@ - + @@ -24546,16 +24202,16 @@ - + - + - + @@ -24574,16 +24230,16 @@ - + - + - + - + @@ -24595,9 +24251,9 @@ - + - + @@ -24609,7 +24265,7 @@ - + @@ -24630,14 +24286,14 @@ - + - + @@ -24651,21 +24307,21 @@ - + - + - + @@ -24686,35 +24342,35 @@ - + - + - + - + - + @@ -24740,7 +24396,7 @@ - + @@ -24751,7 +24407,7 @@ - + @@ -24770,23 +24426,14 @@ - + - - - - - - - - - - + @@ -24803,7 +24450,7 @@ - + @@ -24822,13 +24469,13 @@ - + - + - + @@ -24837,7 +24484,7 @@ - + @@ -24846,21 +24493,21 @@ - + - + - + @@ -24869,9 +24516,9 @@ - + - + @@ -24890,15 +24537,15 @@ - + - + - + @@ -24907,7 +24554,7 @@ - + @@ -24916,7 +24563,7 @@ - + @@ -24931,7 +24578,7 @@ - + @@ -24944,7 +24591,7 @@ - + @@ -24974,65 +24621,27 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + @@ -25041,9 +24650,9 @@ - + - + @@ -25052,7 +24661,7 @@ - + @@ -25063,9 +24672,9 @@ - + - + @@ -25074,9 +24683,9 @@ - + - + @@ -25085,7 +24694,7 @@ - + @@ -25098,7 +24707,7 @@ - + @@ -25111,7 +24720,7 @@ - + @@ -25120,11 +24729,11 @@ - + - + @@ -25133,7 +24742,7 @@ - + @@ -25144,7 +24753,7 @@ - + @@ -25155,21 +24764,21 @@ - + - + - + - + @@ -25178,9 +24787,9 @@ - + - + @@ -25189,7 +24798,7 @@ - + @@ -25200,7 +24809,7 @@ - + @@ -25211,7 +24820,7 @@ - + @@ -25222,7 +24831,7 @@ - + @@ -25235,7 +24844,7 @@ - + @@ -25248,7 +24857,7 @@ - + @@ -25257,7 +24866,7 @@ - + @@ -25270,7 +24879,7 @@ - + @@ -25281,7 +24890,7 @@ - + @@ -25292,9 +24901,9 @@ - + - + @@ -25303,9 +24912,9 @@ - + - + @@ -25320,77 +24929,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -25452,13 +25061,13 @@ - + - + @@ -25467,11 +25076,11 @@ - + - + - + @@ -25480,9 +25089,9 @@ - + - + @@ -25491,18 +25100,18 @@ - + - + - + - + @@ -25511,7 +25120,7 @@ - + @@ -25520,16 +25129,16 @@ - + - + - + @@ -25538,7 +25147,7 @@ - + @@ -25547,25 +25156,25 @@ - + - + - + - + - + @@ -25574,7 +25183,7 @@ - + @@ -25583,7 +25192,7 @@ - + @@ -25592,9 +25201,9 @@ - + - + @@ -25603,18 +25212,18 @@ - + - + - + @@ -25627,7 +25236,7 @@ - + @@ -25638,7 +25247,7 @@ - + @@ -25649,7 +25258,7 @@ - + @@ -25662,7 +25271,7 @@ - + @@ -25671,7 +25280,7 @@ - + @@ -25682,7 +25291,7 @@ - + @@ -25693,7 +25302,7 @@ - + @@ -25704,7 +25313,7 @@ - + @@ -25715,7 +25324,7 @@ - + @@ -25726,7 +25335,7 @@ - + @@ -25737,7 +25346,7 @@ - + @@ -25748,32 +25357,32 @@ - + - + - + - + - + - + - + @@ -25790,7 +25399,7 @@ - + @@ -25799,11 +25408,11 @@ - + - + - + @@ -25812,7 +25421,7 @@ - + @@ -25821,40 +25430,40 @@ - + - + - + - + - + - + - + - + @@ -25863,7 +25472,7 @@ - + @@ -25874,7 +25483,7 @@ - + @@ -25885,7 +25494,7 @@ - + @@ -25896,7 +25505,7 @@ - + @@ -25907,7 +25516,7 @@ - + @@ -25916,7 +25525,7 @@ - + @@ -25925,7 +25534,7 @@ - + @@ -25934,7 +25543,7 @@ - + @@ -25943,7 +25552,7 @@ - + @@ -25952,7 +25561,7 @@ - + @@ -25961,7 +25570,7 @@ - + @@ -25970,7 +25579,7 @@ - + @@ -25979,7 +25588,7 @@ - + @@ -25988,7 +25597,7 @@ - + @@ -26105,7 +25714,7 @@ - + @@ -26120,7 +25729,7 @@ - + @@ -26135,7 +25744,7 @@ - + @@ -26146,7 +25755,7 @@ - + @@ -26159,7 +25768,7 @@ - + @@ -26170,7 +25779,7 @@ - + @@ -26185,7 +25794,7 @@ - + @@ -26200,7 +25809,7 @@ - + @@ -26215,7 +25824,7 @@ - + @@ -26230,7 +25839,7 @@ - + @@ -26239,11 +25848,11 @@ - + - + - + @@ -26252,9 +25861,9 @@ - + - + @@ -26263,7 +25872,7 @@ - + @@ -26274,18 +25883,18 @@ - + - + - + - + @@ -26294,7 +25903,7 @@ - + @@ -26303,7 +25912,7 @@ - + @@ -26312,7 +25921,7 @@ - + @@ -26321,7 +25930,7 @@ - + @@ -26330,43 +25939,43 @@ - + - + - + - + - + - + - + - + - + @@ -26375,7 +25984,7 @@ - + @@ -26384,7 +25993,7 @@ - + @@ -26393,9 +26002,9 @@ - + - + @@ -26404,18 +26013,18 @@ - + - + - + @@ -26426,7 +26035,7 @@ - + @@ -26439,7 +26048,7 @@ - + @@ -26452,7 +26061,7 @@ - + @@ -26463,7 +26072,7 @@ - + @@ -26474,7 +26083,7 @@ - + @@ -26485,7 +26094,7 @@ - + @@ -26498,7 +26107,7 @@ - + @@ -26511,7 +26120,7 @@ - + @@ -26524,7 +26133,7 @@ - + @@ -26533,7 +26142,7 @@ - + @@ -26544,7 +26153,7 @@ - + @@ -26555,7 +26164,7 @@ - + @@ -26566,7 +26175,7 @@ - + @@ -26577,7 +26186,7 @@ - + @@ -26588,7 +26197,7 @@ - + @@ -26599,7 +26208,7 @@ - + @@ -26610,40 +26219,40 @@ - + - + - + - + - + - + - + - + @@ -26656,7 +26265,7 @@ - + @@ -26665,7 +26274,7 @@ - + @@ -26676,11 +26285,11 @@ - + - + - + @@ -26693,7 +26302,7 @@ - + @@ -26702,7 +26311,7 @@ - + @@ -26713,14 +26322,14 @@ - + - + - + @@ -26731,7 +26340,7 @@ - + @@ -26740,9 +26349,9 @@ - + - + @@ -26768,7 +26377,7 @@ - + @@ -26808,34 +26417,34 @@ - + - + - + - + - + - + - + - + - + @@ -26845,27 +26454,27 @@ - + - + - + - + - + - + @@ -26893,11 +26502,11 @@ - + - + @@ -26909,13 +26518,13 @@ - + - + @@ -26924,22 +26533,22 @@ - + - + - + - + - + @@ -26948,7 +26557,7 @@ - + @@ -26957,9 +26566,9 @@ - + - + @@ -26968,14 +26577,14 @@ - + - + @@ -26984,7 +26593,7 @@ - + @@ -27002,7 +26611,7 @@ - + @@ -27011,7 +26620,7 @@ - + @@ -27020,7 +26629,7 @@ - + @@ -27029,7 +26638,7 @@ - + @@ -27038,7 +26647,7 @@ - + @@ -27047,7 +26656,7 @@ - + @@ -27058,7 +26667,7 @@ - + @@ -27069,9 +26678,9 @@ - + - + @@ -27080,18 +26689,18 @@ - + - + - + - + @@ -27110,114 +26719,114 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -27226,9 +26835,9 @@ - + - + @@ -27237,67 +26846,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -27306,31 +26915,31 @@ - + - + - + - + - + - + - + @@ -27339,11 +26948,11 @@ - + - + - + @@ -27352,7 +26961,7 @@ - + @@ -27361,9 +26970,9 @@ - + - + @@ -27372,32 +26981,32 @@ - + - + - + - + - + - + - + @@ -27406,9 +27015,9 @@ - + - + @@ -27417,13 +27026,13 @@ - + - + - + @@ -27432,9 +27041,9 @@ - + - + @@ -27443,22 +27052,22 @@ - + - + - + - + - + @@ -27467,88 +27076,88 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -27557,7 +27166,7 @@ - + @@ -27566,7 +27175,7 @@ - + @@ -27575,11 +27184,11 @@ - + - + @@ -27588,45 +27197,45 @@ - + - + - + - + - + - + - + - + - + - + @@ -27635,7 +27244,7 @@ - + @@ -27644,9 +27253,9 @@ - + - + @@ -27655,7 +27264,7 @@ - + @@ -27664,26 +27273,26 @@ - + - + - + - + - + - + - + @@ -27692,33 +27301,33 @@ - + - + - + - + - + - + - + - + - + @@ -27727,7 +27336,7 @@ - + @@ -27736,11 +27345,11 @@ - + - + - + @@ -27749,13 +27358,13 @@ - + - + - + - + @@ -27764,15 +27373,15 @@ - + - + - + - + - + @@ -27781,9 +27390,9 @@ - + - + @@ -27792,7 +27401,7 @@ - + @@ -27801,9 +27410,9 @@ - + - + @@ -27812,7 +27421,7 @@ - + @@ -27821,7 +27430,7 @@ - + @@ -27830,11 +27439,11 @@ - + - + @@ -27843,11 +27452,11 @@ - + - + @@ -27856,13 +27465,13 @@ - + - + - + - + @@ -27871,11 +27480,11 @@ - + - + - + @@ -27884,9 +27493,9 @@ - + - + @@ -27895,30 +27504,30 @@ - + - + - + - + - + - + - + @@ -27927,9 +27536,9 @@ - + - + @@ -27938,24 +27547,24 @@ - + - + - + - + - + @@ -27964,43 +27573,43 @@ - + - + - + - + - + - + - + - + - + @@ -28009,9 +27618,9 @@ - + - + @@ -28020,7 +27629,7 @@ - + @@ -28031,7 +27640,7 @@ - + @@ -28040,21 +27649,21 @@ - + - + - + - + @@ -28063,9 +27672,9 @@ - + - + @@ -28074,7 +27683,7 @@ - + @@ -28083,16 +27692,16 @@ - + - + - + - + @@ -28101,9 +27710,9 @@ - + - + @@ -28112,7 +27721,7 @@ - + @@ -28123,30 +27732,30 @@ - + - + - + - + - + - + - + @@ -28155,9 +27764,9 @@ - + - + @@ -28166,7 +27775,7 @@ - + @@ -28177,44 +27786,44 @@ - + - + - + - + - + - + - + - + - + - + @@ -28225,7 +27834,7 @@ - + @@ -28234,11 +27843,11 @@ - + - + - + @@ -28247,21 +27856,21 @@ - + - + - + - + @@ -28270,9 +27879,9 @@ - + - + @@ -28281,7 +27890,7 @@ - + @@ -28292,44 +27901,44 @@ - + - + - + - + - + - + - + - + - + - + @@ -28340,7 +27949,7 @@ - + @@ -28349,11 +27958,11 @@ - + - + - + @@ -28362,9 +27971,9 @@ - + - + @@ -28374,7 +27983,7 @@ - + @@ -28386,18 +27995,18 @@ - + - + - + @@ -28405,11 +28014,11 @@ - + - + @@ -28422,30 +28031,30 @@ - + - + - + - + - + - + - + - + - + @@ -28454,7 +28063,7 @@ - + @@ -28463,7 +28072,7 @@ - + @@ -28472,7 +28081,7 @@ - + @@ -28483,18 +28092,18 @@ - + - + - + @@ -28504,31 +28113,31 @@ - + - + - + - + - + - + - + @@ -28550,11 +28159,11 @@ - + - + @@ -28582,13 +28191,13 @@ - + - + @@ -28597,7 +28206,7 @@ - + @@ -28608,11 +28217,11 @@ - + - + @@ -28621,7 +28230,7 @@ - + @@ -28630,7 +28239,7 @@ - + @@ -28639,7 +28248,7 @@ - + @@ -28652,7 +28261,7 @@ - + @@ -28661,7 +28270,7 @@ - + @@ -28670,9 +28279,9 @@ - + - + @@ -28681,9 +28290,9 @@ - + - + @@ -28692,7 +28301,7 @@ - + @@ -28701,9 +28310,9 @@ - + - + @@ -28712,19 +28321,19 @@ - + - + - + - + @@ -28734,9 +28343,9 @@ - + - + @@ -28745,30 +28354,30 @@ - + - + - + - + - + - + - + @@ -28779,37 +28388,37 @@ - + - + - + - + - + - + @@ -28817,17 +28426,17 @@ - + - + - + @@ -28836,7 +28445,7 @@ - + @@ -28849,31 +28458,31 @@ - + - + - + - + - + - + - + @@ -28891,14 +28500,14 @@ - + - + - + @@ -28906,11 +28515,11 @@ - + - + @@ -28918,13 +28527,13 @@ - + - + @@ -28933,7 +28542,7 @@ - + @@ -28944,11 +28553,11 @@ - + - + @@ -28957,7 +28566,7 @@ - + @@ -28966,7 +28575,7 @@ - + @@ -28975,7 +28584,7 @@ - + @@ -28984,9 +28593,9 @@ - + - + @@ -28995,7 +28604,7 @@ - + @@ -29004,7 +28613,7 @@ - + @@ -29015,7 +28624,7 @@ - + @@ -29026,10 +28635,10 @@ - + - + @@ -29037,18 +28646,18 @@ - + - + - + @@ -29056,13 +28665,13 @@ - + - + - + - + @@ -29073,47 +28682,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -29154,7 +28763,7 @@ - + @@ -29163,7 +28772,7 @@ - + @@ -29175,7 +28784,7 @@ - + @@ -29184,17 +28793,17 @@ - + - + - + - + - + @@ -29211,7 +28820,7 @@ - + @@ -29224,7 +28833,7 @@ - + @@ -29233,7 +28842,7 @@ - + @@ -29242,7 +28851,7 @@ - + @@ -29254,9 +28863,9 @@ - + - + @@ -29265,9 +28874,9 @@ - + - + @@ -29281,11 +28890,11 @@ - + - + - + @@ -29302,21 +28911,21 @@ - + - + - + @@ -29330,60 +28939,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -29391,17 +29000,17 @@ - + - + - + @@ -29426,13 +29035,13 @@ - + - + @@ -29441,7 +29050,7 @@ - + @@ -29452,9 +29061,9 @@ - + - + @@ -29463,7 +29072,7 @@ - + @@ -29472,7 +29081,7 @@ - + @@ -29481,7 +29090,7 @@ - + @@ -29547,10 +29156,10 @@ - + - + @@ -29558,7 +29167,7 @@ - + @@ -29568,7 +29177,7 @@ - + @@ -29577,7 +29186,7 @@ - + @@ -29588,7 +29197,7 @@ - + @@ -29599,7 +29208,7 @@ - + @@ -29610,132 +29219,132 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -29749,7 +29358,7 @@ - + @@ -29758,11 +29367,11 @@ - + - - + + @@ -29771,7 +29380,7 @@ - + @@ -29780,51 +29389,51 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -29833,20 +29442,20 @@ - + - + - + - + - + @@ -29855,18 +29464,18 @@ - + - + - + - + @@ -29875,7 +29484,7 @@ - + @@ -29884,7 +29493,7 @@ - + @@ -29893,7 +29502,7 @@ - + @@ -29902,7 +29511,7 @@ - + @@ -29911,7 +29520,7 @@ - + @@ -29920,52 +29529,52 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -29976,7 +29585,7 @@ - + @@ -29985,7 +29594,7 @@ - + @@ -29994,7 +29603,7 @@ - + @@ -30003,7 +29612,7 @@ - + @@ -30012,7 +29621,7 @@ - + @@ -30064,63 +29673,63 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30129,67 +29738,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30198,11 +29807,11 @@ - + - + - + @@ -30211,9 +29820,9 @@ - + - + @@ -30222,7 +29831,7 @@ - + @@ -30233,99 +29842,99 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30334,7 +29943,7 @@ - + @@ -30343,7 +29952,7 @@ - + @@ -30352,9 +29961,9 @@ - + - + @@ -30363,57 +29972,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30422,9 +30031,9 @@ - + - + @@ -30433,7 +30042,7 @@ - + @@ -30444,11 +30053,11 @@ - + - + - + @@ -30457,11 +30066,11 @@ - + - + - + @@ -30470,7 +30079,7 @@ - + @@ -30483,7 +30092,7 @@ - + @@ -30492,29 +30101,29 @@ - + - + - + - + - + @@ -30525,87 +30134,87 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30614,9 +30223,9 @@ - + - + @@ -30625,7 +30234,7 @@ - + @@ -30634,16 +30243,16 @@ - + - + - + - + @@ -30654,16 +30263,16 @@ - + - + - + - + @@ -30672,9 +30281,9 @@ - + - + @@ -30683,7 +30292,7 @@ - + @@ -30694,16 +30303,16 @@ - + - + - + @@ -30716,7 +30325,7 @@ - + @@ -30725,7 +30334,7 @@ - + @@ -30736,7 +30345,7 @@ - + @@ -30745,7 +30354,7 @@ - + @@ -30754,9 +30363,9 @@ - + - + @@ -30765,67 +30374,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30834,16 +30443,16 @@ - + - + - + @@ -30852,7 +30461,7 @@ - + @@ -30861,9 +30470,9 @@ - + - + @@ -30872,9 +30481,9 @@ - + - + @@ -30883,67 +30492,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30952,23 +30561,23 @@ - + - + - + - + - + - + @@ -30978,7 +30587,7 @@ - + @@ -30987,9 +30596,9 @@ - + - + @@ -30998,20 +30607,20 @@ - + - + - + - + - + - + @@ -31020,31 +30629,31 @@ - + - + - + - + - + - + - + @@ -31053,11 +30662,11 @@ - + - + - + @@ -31066,9 +30675,9 @@ - + - + @@ -31077,99 +30686,99 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -31178,7 +30787,7 @@ - + @@ -31187,7 +30796,7 @@ - + @@ -31196,29 +30805,29 @@ - + - + - + - + - + @@ -31229,33 +30838,33 @@ - + - + - + - + - + - + - + - + - + @@ -31264,7 +30873,7 @@ - + @@ -31275,11 +30884,11 @@ - + - + - + @@ -31288,9 +30897,9 @@ - + - + @@ -31299,7 +30908,7 @@ - + @@ -31308,47 +30917,47 @@ - + - + - + - + - + - + - + - + - + @@ -31359,66 +30968,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -31426,12 +31035,12 @@ - + - + @@ -31440,9 +31049,9 @@ - + - + @@ -31451,7 +31060,7 @@ - + @@ -31462,44 +31071,44 @@ - + - + - + - + - + - + - + - + - + - + @@ -31510,7 +31119,7 @@ - + @@ -31519,11 +31128,11 @@ - + - + - + @@ -31532,21 +31141,21 @@ - + - + - + - + @@ -31555,9 +31164,9 @@ - + - + @@ -31566,7 +31175,7 @@ - + @@ -31577,44 +31186,44 @@ - + - + - + - + - + - + - + - + - + - + @@ -31625,7 +31234,7 @@ - + @@ -31634,11 +31243,11 @@ - + - + - + @@ -31647,9 +31256,9 @@ - + - + @@ -31676,29 +31285,29 @@ - + - + - + - + - + - + - + - + - + @@ -31707,7 +31316,7 @@ - + @@ -31720,14 +31329,14 @@ - + - + - + @@ -31736,7 +31345,7 @@ - + @@ -31749,30 +31358,30 @@ - + - + - + - + - + - + @@ -31781,11 +31390,11 @@ - + - + - + @@ -31796,7 +31405,7 @@ - + @@ -31809,14 +31418,14 @@ - + - + - + @@ -31825,7 +31434,7 @@ - + @@ -31838,13 +31447,13 @@ - + - - + + - + @@ -31874,9 +31483,9 @@ - + - + @@ -31913,7 +31522,7 @@ - + @@ -31921,41 +31530,41 @@ - + - + - + - + - + - + - + - + - + - + @@ -31969,112 +31578,117 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + + + + + + - + - + - + - + - + - + - + - + - + - + - + @@ -32094,7 +31708,7 @@ - + @@ -32104,16 +31718,16 @@ - + - + - + @@ -32124,7 +31738,7 @@ - + @@ -32135,7 +31749,7 @@ - + @@ -32148,7 +31762,7 @@ - + @@ -32161,7 +31775,7 @@ - + @@ -32170,7 +31784,7 @@ - + @@ -32179,9 +31793,9 @@ - + - + @@ -32195,32 +31809,32 @@ - + - + - + - + - + @@ -32237,7 +31851,7 @@ - + @@ -32273,7 +31887,7 @@ - + @@ -32306,7 +31920,7 @@ - + @@ -32328,7 +31942,7 @@ - + @@ -32339,14 +31953,14 @@ - + - + @@ -32357,7 +31971,7 @@ - + @@ -32370,7 +31984,7 @@ - + @@ -32383,7 +31997,7 @@ - + @@ -32393,9 +32007,9 @@ - + - + @@ -32430,13 +32044,13 @@ - + - + @@ -32447,7 +32061,7 @@ - + @@ -32460,7 +32074,7 @@ - + @@ -32471,7 +32085,7 @@ - + @@ -32484,7 +32098,7 @@ - + @@ -32531,9 +32145,353 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -32584,11 +32542,11 @@ - + - + @@ -32608,19 +32566,19 @@ - + - + - + - + @@ -32648,44 +32606,82 @@ - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + @@ -32695,11 +32691,11 @@ - + - + @@ -32746,7 +32742,7 @@ - + @@ -32849,23 +32845,23 @@ - + - + - + - + - + @@ -32874,7 +32870,7 @@ - + @@ -32885,7 +32881,7 @@ - + @@ -32894,46 +32890,46 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -32959,7 +32955,7 @@ - + @@ -32968,7 +32964,7 @@ - + @@ -32977,7 +32973,7 @@ - + @@ -32986,7 +32982,7 @@ - + @@ -32995,53 +32991,53 @@ - + - + - + - + - + - + - + - + - + @@ -33154,7 +33150,7 @@ - + @@ -33370,7 +33366,7 @@ - + @@ -33379,7 +33375,7 @@ - + @@ -33388,7 +33384,7 @@ - + @@ -33397,7 +33393,7 @@ - + @@ -33406,7 +33402,7 @@ - + @@ -33415,7 +33411,7 @@ - + @@ -33424,7 +33420,7 @@ - + @@ -33433,24 +33429,24 @@ - + - + - + - + - + - + @@ -33469,7 +33465,7 @@ - + @@ -33477,12 +33473,12 @@ - + - + @@ -33492,7 +33488,7 @@ - + @@ -33501,7 +33497,7 @@ - + @@ -33514,9 +33510,9 @@ - + - + @@ -33525,11 +33521,11 @@ - + - + @@ -33538,7 +33534,7 @@ - + @@ -33551,7 +33547,7 @@ - + @@ -33564,7 +33560,7 @@ - + @@ -33573,7 +33569,7 @@ - + @@ -33582,18 +33578,18 @@ - + - + - + - + @@ -33602,7 +33598,7 @@ - + @@ -33613,7 +33609,7 @@ - + @@ -33624,7 +33620,7 @@ - + @@ -33633,7 +33629,7 @@ - + @@ -33644,7 +33640,7 @@ - + @@ -33655,20 +33651,20 @@ - + - + - + - + @@ -33677,7 +33673,7 @@ - + @@ -33688,21 +33684,21 @@ - + - + - + - + @@ -33711,7 +33707,7 @@ - + @@ -33720,7 +33716,7 @@ - + @@ -33763,59 +33759,59 @@ - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33823,57 +33819,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33883,85 +33879,85 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33969,151 +33965,151 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -34122,9 +34118,9 @@ - + - + @@ -34133,7 +34129,7 @@ - + @@ -34144,92 +34140,92 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -34243,36 +34239,36 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -34290,29 +34286,29 @@ - + - + - + - + - + - + - + @@ -34321,9 +34317,9 @@ - + - + @@ -34332,40 +34328,40 @@ - + - + - + - + - + - + - + - + @@ -34374,9 +34370,9 @@ - + - + @@ -34385,11 +34381,11 @@ - + - + @@ -34398,7 +34394,7 @@ - + @@ -34409,20 +34405,20 @@ - + - + - + - + @@ -34431,14 +34427,14 @@ - + - + - + @@ -34447,9 +34443,9 @@ - + - + @@ -34458,13 +34454,13 @@ - + - + - + @@ -34473,9 +34469,9 @@ - + - + @@ -34484,7 +34480,7 @@ - + @@ -34495,22 +34491,22 @@ - + - + - + - + - + @@ -34519,79 +34515,79 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -34600,7 +34596,7 @@ - + @@ -34609,11 +34605,11 @@ - + - + @@ -34622,7 +34618,7 @@ - + @@ -34631,7 +34627,7 @@ - + @@ -34640,7 +34636,7 @@ - + @@ -34651,29 +34647,29 @@ - + - + - + - + - + @@ -34684,85 +34680,85 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -34771,7 +34767,7 @@ - + @@ -34780,26 +34776,26 @@ - + - + - + - + - + - + - + @@ -34808,33 +34804,33 @@ - + - + - + - + - + - + - + - + - + @@ -34843,7 +34839,7 @@ - + @@ -34852,11 +34848,11 @@ - + - + @@ -34865,11 +34861,11 @@ - + - + @@ -34878,13 +34874,13 @@ - + - + - + @@ -34893,11 +34889,11 @@ - + - + - + @@ -34906,7 +34902,7 @@ - + @@ -34919,31 +34915,31 @@ - + - + - + - + - + - + - + - + - + @@ -34987,42 +34983,42 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -35066,18 +35062,18 @@ - + - + - + - + - + @@ -35095,7 +35091,7 @@ - + @@ -35154,7 +35150,7 @@ - + @@ -35182,7 +35178,7 @@ - + @@ -35242,14 +35238,14 @@ - + - + @@ -35258,24 +35254,24 @@ - + - + - + - + @@ -35287,7 +35283,7 @@ - + @@ -35304,7 +35300,7 @@ - + @@ -35329,7 +35325,7 @@ - + @@ -35338,7 +35334,7 @@ - + @@ -35347,7 +35343,7 @@ - + @@ -35358,7 +35354,7 @@ - + @@ -35367,11 +35363,11 @@ - + - + - + @@ -35384,18 +35380,18 @@ - + - + - + - + @@ -35404,9 +35400,9 @@ - + - + @@ -35415,7 +35411,7 @@ - + @@ -35424,9 +35420,9 @@ - + - + @@ -35437,9 +35433,9 @@ - + - + @@ -35448,11 +35444,11 @@ - + - + @@ -35461,7 +35457,7 @@ - + @@ -35482,13 +35478,13 @@ - + - + @@ -35497,7 +35493,7 @@ - + @@ -35508,34 +35504,34 @@ - + - + - + - + - + - + - + @@ -35544,7 +35540,7 @@ - + @@ -35557,7 +35553,7 @@ - + @@ -35572,7 +35568,7 @@ - + @@ -35585,7 +35581,7 @@ - + @@ -35637,9 +35633,9 @@ - + - + @@ -35650,9 +35646,9 @@ - + - + @@ -35698,7 +35694,7 @@ - + @@ -35713,7 +35709,7 @@ - + @@ -35722,14 +35718,14 @@ - + - + @@ -35738,9 +35734,9 @@ - + - + @@ -35749,7 +35745,7 @@ - + @@ -35760,7 +35756,7 @@ - + @@ -35775,7 +35771,7 @@ - + @@ -35783,7 +35779,7 @@ - + @@ -35792,13 +35788,13 @@ - + - + @@ -35807,11 +35803,11 @@ - + - + @@ -35820,13 +35816,13 @@ - + - + @@ -35835,7 +35831,7 @@ - + @@ -35846,112 +35842,112 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -35960,7 +35956,7 @@ - + @@ -35969,7 +35965,7 @@ - + @@ -35978,7 +35974,7 @@ - + @@ -35991,7 +35987,7 @@ - + @@ -36002,7 +35998,7 @@ - + @@ -36011,7 +36007,7 @@ - + @@ -36022,7 +36018,7 @@ - + @@ -36031,7 +36027,7 @@ - + @@ -36040,7 +36036,7 @@ - + @@ -36051,7 +36047,7 @@ - + @@ -36062,7 +36058,7 @@ - + @@ -36073,7 +36069,7 @@ - + @@ -36084,51 +36080,51 @@ - + - + - + - + - + - + - + - + - + @@ -36136,51 +36132,51 @@ - + - + - + - + - + - + - + - + @@ -36191,18 +36187,18 @@ - + - + - + @@ -36210,53 +36206,53 @@ - + - + - + - + - + - + - + - + - + @@ -36269,20 +36265,20 @@ - + - + - + @@ -36292,14 +36288,14 @@ - + - + @@ -36307,27 +36303,27 @@ - + - + - + - + @@ -36335,64 +36331,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -36400,14 +36396,14 @@ - + - + @@ -36419,14 +36415,14 @@ - + - + @@ -36436,14 +36432,14 @@ - + - + @@ -36451,14 +36447,14 @@ - + - + @@ -36468,146 +36464,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -36617,14 +36613,14 @@ - + - + @@ -36634,7 +36630,7 @@ - + @@ -36645,7 +36641,7 @@ - + @@ -36654,7 +36650,7 @@ - + @@ -36669,9 +36665,9 @@ - + - + @@ -36680,7 +36676,7 @@ - + @@ -36689,7 +36685,7 @@ - + @@ -36698,16 +36694,16 @@ - + - + - + @@ -36722,7 +36718,7 @@ - + @@ -36735,7 +36731,7 @@ - + @@ -36748,7 +36744,7 @@ - + @@ -36761,7 +36757,7 @@ - + @@ -36774,7 +36770,7 @@ - + @@ -36789,7 +36785,7 @@ - + @@ -36802,7 +36798,7 @@ - + @@ -36815,7 +36811,7 @@ - + @@ -36828,7 +36824,7 @@ - + @@ -36843,7 +36839,7 @@ - + @@ -36856,7 +36852,7 @@ - + @@ -36869,7 +36865,7 @@ - + @@ -36882,7 +36878,7 @@ - + @@ -36897,7 +36893,7 @@ - + @@ -36910,7 +36906,7 @@ - + @@ -36923,7 +36919,7 @@ - + @@ -36936,7 +36932,7 @@ - + @@ -36951,7 +36947,7 @@ - + @@ -36964,7 +36960,7 @@ - + @@ -36977,7 +36973,7 @@ - + @@ -36990,7 +36986,7 @@ - + @@ -37005,7 +37001,7 @@ - + @@ -37018,7 +37014,7 @@ - + @@ -37031,7 +37027,7 @@ - + @@ -37044,7 +37040,7 @@ - + @@ -37055,7 +37051,7 @@ - + @@ -37070,7 +37066,7 @@ - + @@ -37089,7 +37085,7 @@ - + @@ -37100,7 +37096,7 @@ - + @@ -37115,7 +37111,7 @@ - + @@ -37130,14 +37126,14 @@ - + - + - + @@ -37146,9 +37142,9 @@ - + - + @@ -37157,7 +37153,7 @@ - + @@ -37166,387 +37162,43 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + @@ -37555,9 +37207,9 @@ - + - + @@ -37566,141 +37218,141 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -37709,9 +37361,9 @@ - + - + @@ -37720,7 +37372,7 @@ - + @@ -37731,44 +37383,44 @@ - + - + - + - + - + - + - + - + - + - + @@ -37779,7 +37431,7 @@ - + @@ -37788,11 +37440,11 @@ - + - + - + @@ -37801,23 +37453,23 @@ - + - + - + - + - + @@ -37826,9 +37478,9 @@ - + - + @@ -37837,7 +37489,7 @@ - + @@ -37848,7 +37500,7 @@ - + @@ -37859,7 +37511,7 @@ - + @@ -37870,7 +37522,7 @@ - + @@ -37883,7 +37535,7 @@ - + @@ -37896,7 +37548,7 @@ - + @@ -37905,7 +37557,7 @@ - + @@ -37918,7 +37570,7 @@ - + @@ -37927,9 +37579,9 @@ - + - + @@ -37970,7 +37622,7 @@ - + @@ -37990,7 +37642,7 @@ - + @@ -38013,7 +37665,7 @@ - + @@ -38034,7 +37686,7 @@ - + @@ -38045,7 +37697,7 @@ - + @@ -38062,7 +37714,7 @@ - + @@ -38083,7 +37735,7 @@ - + @@ -38130,7 +37782,7 @@ - + @@ -38141,25 +37793,25 @@ - + - + - + - + - + @@ -38170,7 +37822,7 @@ - + @@ -38181,7 +37833,7 @@ - + @@ -38190,7 +37842,7 @@ - + @@ -38199,55 +37851,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -38256,9 +37908,9 @@ - + - + @@ -38266,9 +37918,9 @@ - + - + @@ -38276,14 +37928,14 @@ - + - + - + @@ -38292,67 +37944,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -38360,9 +38012,9 @@ - + - + @@ -38370,18 +38022,18 @@ - + - + - + - + - + @@ -38390,9 +38042,9 @@ - + - + @@ -38401,11 +38053,11 @@ - + - + @@ -38414,9 +38066,9 @@ - + - + @@ -38425,7 +38077,7 @@ - + @@ -38434,7 +38086,7 @@ - + @@ -38445,94 +38097,94 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -38541,71 +38193,71 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -38614,9 +38266,9 @@ - + - + @@ -38625,9 +38277,9 @@ - + - + @@ -38636,16 +38288,16 @@ - + - + - + @@ -38654,40 +38306,40 @@ - + - + - + - + - + - + - + - + - + - + @@ -38695,7 +38347,7 @@ - + @@ -38703,80 +38355,80 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -38790,14 +38442,14 @@ - + - + @@ -38810,7 +38462,7 @@ - + @@ -38821,7 +38473,7 @@ - + @@ -38830,7 +38482,7 @@ - + @@ -38841,9 +38493,9 @@ - + - + @@ -38854,7 +38506,7 @@ - + @@ -38863,7 +38515,7 @@ - + @@ -38872,7 +38524,7 @@ - + @@ -38881,7 +38533,7 @@ - + @@ -38894,7 +38546,7 @@ - + @@ -38905,7 +38557,7 @@ - + @@ -38914,7 +38566,7 @@ - + @@ -38925,9 +38577,9 @@ - + - + @@ -38938,7 +38590,7 @@ - + @@ -38947,7 +38599,7 @@ - + @@ -38956,7 +38608,7 @@ - + @@ -38988,13 +38640,13 @@ - + - + - + @@ -39018,15 +38670,15 @@ - + - + - + @@ -39044,7 +38696,7 @@ - + @@ -39062,7 +38714,7 @@ - + @@ -39072,7 +38724,7 @@ - + @@ -39083,7 +38735,7 @@ - + @@ -39094,7 +38746,7 @@ - + @@ -39104,17 +38756,17 @@ - + - + - + @@ -39123,7 +38775,7 @@ - + @@ -39134,7 +38786,7 @@ - + @@ -39145,7 +38797,7 @@ - + @@ -39156,9 +38808,9 @@ - + - + @@ -39167,9 +38819,9 @@ - + - + @@ -39178,7 +38830,7 @@ - + @@ -39189,9 +38841,9 @@ - + - + @@ -39200,7 +38852,7 @@ - + @@ -39211,7 +38863,7 @@ - + @@ -39264,7 +38916,7 @@ - + @@ -39273,32 +38925,32 @@ - + - + - + - + - + - + - + @@ -39306,15 +38958,15 @@ - + - + - + @@ -39334,49 +38986,49 @@ - + - + - + - + - + - + - + @@ -39385,14 +39037,14 @@ - + - + @@ -39404,10 +39056,10 @@ - + - + @@ -39419,15 +39071,15 @@ - + - + - + @@ -39442,7 +39094,7 @@ - + @@ -39453,7 +39105,7 @@ - + @@ -39462,7 +39114,7 @@ - + @@ -39471,7 +39123,7 @@ - + @@ -39482,7 +39134,7 @@ - + @@ -39493,7 +39145,7 @@ - + @@ -39504,7 +39156,7 @@ - + @@ -39515,7 +39167,7 @@ - + @@ -39524,24 +39176,24 @@ - + - + - + - + - + - + @@ -39582,7 +39234,7 @@ - + @@ -39600,7 +39252,7 @@ - + @@ -39609,7 +39261,7 @@ - + @@ -39620,7 +39272,7 @@ - + @@ -39635,7 +39287,7 @@ - + @@ -39650,7 +39302,7 @@ - + @@ -39659,7 +39311,7 @@ - + @@ -39668,7 +39320,7 @@ - + @@ -39677,7 +39329,7 @@ - + @@ -39686,7 +39338,7 @@ - + @@ -39695,7 +39347,7 @@ - + @@ -39710,7 +39362,7 @@ - + @@ -39725,7 +39377,7 @@ - + @@ -39736,7 +39388,7 @@ - + @@ -39747,7 +39399,7 @@ - + @@ -39756,7 +39408,7 @@ - + @@ -39776,7 +39428,7 @@ - + @@ -39790,19 +39442,19 @@ - + - + - + - + @@ -39810,23 +39462,23 @@ - + - + - + - + - + @@ -39851,7 +39503,7 @@ - + @@ -39860,18 +39512,18 @@ - + - + - + - + @@ -39880,14 +39532,14 @@ - + - + @@ -39912,7 +39564,7 @@ - + @@ -39921,18 +39573,18 @@ - + - + - + - + @@ -39941,14 +39593,14 @@ - + - + @@ -39973,7 +39625,7 @@ - + @@ -39982,18 +39634,18 @@ - + - + - + - + @@ -40002,14 +39654,14 @@ - + - + @@ -40020,14 +39672,14 @@ - + - + - + @@ -40048,7 +39700,7 @@ - + @@ -40057,20 +39709,20 @@ - + - + - + - + @@ -40087,7 +39739,7 @@ - + @@ -40100,11 +39752,11 @@ - + - + @@ -40124,27 +39776,27 @@ - + - + - + - + - + - + @@ -40158,7 +39810,7 @@ - + @@ -40167,20 +39819,20 @@ - + - + - + - + - + @@ -40189,9 +39841,9 @@ - + - + @@ -40202,35 +39854,35 @@ - + - + - + - + - + - + - + - + - + - + @@ -40239,18 +39891,18 @@ - + - + - + - + @@ -40259,9 +39911,9 @@ - + - + @@ -40270,7 +39922,7 @@ - + @@ -40279,7 +39931,7 @@ - + @@ -40288,13 +39940,13 @@ - + - + - + - + @@ -40305,20 +39957,20 @@ - + - + - + - + - + @@ -40327,9 +39979,9 @@ - + - + @@ -40340,7 +39992,7 @@ - + @@ -40349,7 +40001,7 @@ - + @@ -40360,20 +40012,20 @@ - + - + - + - + - + @@ -40382,22 +40034,22 @@ - + - + - + - + - + - + @@ -40406,20 +40058,20 @@ - + - + - + - + - + @@ -40428,9 +40080,9 @@ - + - + @@ -40439,9 +40091,9 @@ - + - + @@ -40450,9 +40102,9 @@ - + - + @@ -40461,9 +40113,9 @@ - + - + @@ -40472,9 +40124,9 @@ - + - + @@ -40483,20 +40135,20 @@ - + - + - + - + - + @@ -40507,21 +40159,21 @@ - + - + - + - + - + @@ -40546,7 +40198,7 @@ - + @@ -40555,7 +40207,7 @@ - + @@ -40564,7 +40216,7 @@ - + @@ -40573,7 +40225,7 @@ - + @@ -40584,7 +40236,7 @@ - + @@ -40593,7 +40245,7 @@ - + @@ -40604,7 +40256,7 @@ - + @@ -40613,7 +40265,7 @@ - + @@ -40622,7 +40274,7 @@ - + @@ -40631,7 +40283,7 @@ - + @@ -40642,7 +40294,7 @@ - + @@ -40651,7 +40303,7 @@ - + @@ -40660,7 +40312,7 @@ - + @@ -40675,7 +40327,7 @@ - + @@ -40690,10 +40342,10 @@ - + - + @@ -40703,22 +40355,22 @@ - + - + - + - + @@ -40726,11 +40378,11 @@ - + - + @@ -40738,7 +40390,7 @@ - + @@ -40746,7 +40398,7 @@ - + @@ -40762,11 +40414,11 @@ - + - + @@ -40780,7 +40432,7 @@ - + @@ -40791,7 +40443,7 @@ - + @@ -40800,7 +40452,7 @@ - + @@ -40811,7 +40463,7 @@ - + @@ -40820,7 +40472,7 @@ - + @@ -40833,7 +40485,7 @@ - + @@ -40846,7 +40498,7 @@ - + @@ -40855,7 +40507,7 @@ - + @@ -40864,7 +40516,7 @@ - + @@ -40889,35 +40541,35 @@ - + - + - + - + - + @@ -40961,9 +40613,9 @@ - + - + @@ -40988,7 +40640,7 @@ - + @@ -41001,9 +40653,9 @@ - + - + @@ -41014,9 +40666,9 @@ - + - + @@ -41029,7 +40681,7 @@ - + @@ -41038,7 +40690,7 @@ - + @@ -41049,7 +40701,7 @@ - + @@ -41065,7 +40717,7 @@ - + @@ -41079,7 +40731,7 @@ - + @@ -41098,13 +40750,13 @@ - + - + @@ -41115,7 +40767,7 @@ - + @@ -41124,7 +40776,7 @@ - + @@ -41135,7 +40787,7 @@ - + @@ -41151,7 +40803,7 @@ - + @@ -41169,7 +40821,7 @@ - + @@ -41183,7 +40835,7 @@ - + @@ -41208,7 +40860,7 @@ - + @@ -41217,18 +40869,18 @@ - + - + - + - + @@ -41237,7 +40889,7 @@ - + @@ -41251,44 +40903,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -41296,7 +40910,7 @@ - + @@ -41331,7 +40945,7 @@ - + @@ -41372,7 +40986,7 @@ - + @@ -41388,7 +41002,7 @@ - + @@ -41448,7 +41062,7 @@ - + @@ -41464,7 +41078,7 @@ - + @@ -41478,15 +41092,15 @@ - + - + - + - + - + @@ -41495,19 +41109,28 @@ - + - + + + + + + + + + + - + @@ -41516,7 +41139,7 @@ - + @@ -41525,7 +41148,7 @@ - + @@ -41536,7 +41159,7 @@ - + @@ -41545,14 +41168,14 @@ - + - + @@ -41564,34 +41187,16 @@ - - - - - - - - - - - - - - - - - - - + - + - + @@ -41603,5 +41208,23 @@ + + + + + + + + + + + + + + + + + + diff --git a/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi b/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi index 82dfd635..ffc37efa 100644 --- a/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi +++ b/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi @@ -817,8 +817,8 @@ - - + + @@ -2467,30 +2467,14 @@ - - - - - - - - - - - - - - - - - + - + @@ -2501,13 +2485,13 @@ - + - + @@ -2518,13 +2502,29 @@ - + + + + + + + + + + + + + + + + + @@ -2543,7 +2543,7 @@ - + @@ -2610,7 +2610,7 @@ - + @@ -2627,7 +2627,7 @@ - + @@ -2644,7 +2644,7 @@ - + @@ -2661,7 +2661,7 @@ - + @@ -2678,7 +2678,7 @@ - + @@ -2695,7 +2695,7 @@ - + @@ -2712,7 +2712,7 @@ - + @@ -2729,7 +2729,7 @@ - + @@ -2804,7 +2804,7 @@ - + @@ -2821,7 +2821,7 @@ - + @@ -2838,7 +2838,7 @@ - + @@ -2855,7 +2855,7 @@ - + @@ -2872,7 +2872,7 @@ - + @@ -2889,7 +2889,7 @@ - + @@ -2906,7 +2906,7 @@ - + @@ -2923,7 +2923,7 @@ - + @@ -2955,7 +2955,7 @@ - + @@ -2970,7 +2970,7 @@ - + @@ -2985,7 +2985,7 @@ - + @@ -3000,7 +3000,7 @@ - + @@ -3015,7 +3015,7 @@ - + @@ -3030,7 +3030,7 @@ - + @@ -3045,7 +3045,7 @@ - + @@ -3060,7 +3060,7 @@ - + @@ -3116,7 +3116,7 @@ - + @@ -3133,7 +3133,7 @@ - + @@ -3150,7 +3150,7 @@ - + @@ -3167,7 +3167,7 @@ - + @@ -3184,7 +3184,7 @@ - + @@ -3201,7 +3201,7 @@ - + @@ -3218,7 +3218,7 @@ - + @@ -3250,7 +3250,7 @@ - + @@ -3271,7 +3271,7 @@ - + @@ -3292,7 +3292,7 @@ - + @@ -3313,7 +3313,7 @@ - + @@ -3334,7 +3334,7 @@ - + @@ -3355,7 +3355,7 @@ - + @@ -3376,7 +3376,7 @@ - + @@ -3431,7 +3431,7 @@ - + @@ -3448,7 +3448,7 @@ - + @@ -3465,7 +3465,7 @@ - + @@ -3482,7 +3482,7 @@ - + @@ -3499,7 +3499,7 @@ - + @@ -3516,7 +3516,7 @@ - + @@ -3533,7 +3533,7 @@ - + @@ -3569,7 +3569,7 @@ - + @@ -3590,7 +3590,7 @@ - + @@ -3611,7 +3611,7 @@ - + @@ -3632,7 +3632,7 @@ - + @@ -3653,7 +3653,7 @@ - + @@ -3674,7 +3674,7 @@ - + @@ -3695,7 +3695,7 @@ - + @@ -3712,7 +3712,7 @@ - + @@ -3727,7 +3727,7 @@ - + @@ -3742,7 +3742,7 @@ - + @@ -3757,7 +3757,7 @@ - + @@ -3772,7 +3772,7 @@ - + @@ -3787,7 +3787,7 @@ - + @@ -3802,7 +3802,7 @@ - + @@ -3830,7 +3830,7 @@ - + @@ -3849,7 +3849,7 @@ - + @@ -3868,7 +3868,7 @@ - + @@ -3887,7 +3887,7 @@ - + @@ -3906,7 +3906,7 @@ - + @@ -3925,7 +3925,7 @@ - + @@ -3944,7 +3944,7 @@ - + @@ -3993,7 +3993,7 @@ - + @@ -4012,7 +4012,7 @@ - + @@ -4031,7 +4031,7 @@ - + @@ -4050,7 +4050,7 @@ - + @@ -4069,7 +4069,7 @@ - + @@ -4088,7 +4088,7 @@ - + @@ -4107,7 +4107,7 @@ - + @@ -4126,7 +4126,7 @@ - + @@ -4162,9 +4162,9 @@ - - + + @@ -4181,9 +4181,9 @@ - - + + @@ -4200,9 +4200,9 @@ - - + + @@ -4219,9 +4219,9 @@ - - + + @@ -4238,9 +4238,9 @@ - - + + @@ -4257,9 +4257,9 @@ - - + + @@ -4276,9 +4276,9 @@ - - + + @@ -4295,7 +4295,7 @@ - + @@ -4312,7 +4312,7 @@ - + @@ -4329,7 +4329,7 @@ - + @@ -4346,7 +4346,7 @@ - + @@ -4363,7 +4363,7 @@ - + @@ -4380,7 +4380,7 @@ - + @@ -4397,7 +4397,7 @@ - + @@ -4414,7 +4414,7 @@ - + @@ -4446,9 +4446,9 @@ - - + + @@ -4463,9 +4463,9 @@ - - + + @@ -4480,9 +4480,9 @@ - - + + @@ -4497,9 +4497,9 @@ - - + + @@ -4514,9 +4514,9 @@ - - + + @@ -4531,9 +4531,9 @@ - - + + @@ -4548,9 +4548,9 @@ - - + + @@ -4565,7 +4565,7 @@ - + @@ -4824,7 +4824,7 @@ - + @@ -4843,7 +4843,7 @@ - + @@ -4860,7 +4860,7 @@ - + @@ -4880,7 +4880,7 @@ - + @@ -4899,7 +4899,7 @@ - + @@ -4918,7 +4918,7 @@ - + @@ -4941,7 +4941,7 @@ - + @@ -4964,7 +4964,7 @@ - + @@ -4983,7 +4983,7 @@ - + @@ -5000,7 +5000,7 @@ - + @@ -5021,7 +5021,7 @@ - + @@ -5042,11 +5042,11 @@ - + - + @@ -5063,7 +5063,7 @@ - + @@ -5082,11 +5082,11 @@ - + - + @@ -5118,7 +5118,7 @@ - + @@ -5143,7 +5143,7 @@ - + @@ -5154,7 +5154,7 @@ - + @@ -5174,7 +5174,7 @@ - + @@ -5185,7 +5185,7 @@ - + @@ -5205,7 +5205,7 @@ - + @@ -5216,7 +5216,7 @@ - + @@ -5236,7 +5236,7 @@ - + @@ -5247,7 +5247,7 @@ - + @@ -5267,7 +5267,7 @@ - + @@ -5278,7 +5278,7 @@ - + @@ -5298,7 +5298,7 @@ - + @@ -5309,7 +5309,7 @@ - + @@ -5329,7 +5329,7 @@ - + @@ -5340,7 +5340,7 @@ - + @@ -5360,7 +5360,7 @@ - + @@ -5371,7 +5371,7 @@ - + @@ -5391,7 +5391,7 @@ - + @@ -5402,7 +5402,7 @@ - + @@ -5422,7 +5422,7 @@ - + @@ -5433,7 +5433,7 @@ - + @@ -6431,7 +6431,7 @@ - + @@ -6609,7 +6609,7 @@ - + @@ -6653,7 +6653,7 @@ - + @@ -6708,6 +6708,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6863,10 +7064,10 @@ - + - + @@ -6874,7 +7075,7 @@ - + @@ -6900,7 +7101,7 @@ - + @@ -6928,7 +7129,7 @@ - + @@ -6962,7 +7163,7 @@ - + @@ -6974,11 +7175,11 @@ - + - + @@ -7095,9 +7296,9 @@ - + - + @@ -7108,13 +7309,13 @@ - + - + - + @@ -7125,9 +7326,9 @@ - + - + @@ -7136,11 +7337,11 @@ - + - + @@ -7158,7 +7359,7 @@ - + @@ -7167,7 +7368,7 @@ - + @@ -7178,11 +7379,11 @@ - + - + - + @@ -7204,7 +7405,7 @@ - + @@ -7215,10 +7416,10 @@ - + - + @@ -7229,7 +7430,7 @@ - + @@ -7297,7 +7498,7 @@ - + @@ -7634,17 +7835,17 @@ - + - + - + - + @@ -7654,7 +7855,7 @@ - + @@ -7763,7 +7964,7 @@ - + @@ -7776,7 +7977,7 @@ - + @@ -7813,7 +8014,7 @@ - + @@ -7824,7 +8025,7 @@ - + @@ -7837,7 +8038,7 @@ - + @@ -7846,7 +8047,7 @@ - + @@ -7987,7 +8188,7 @@ - + @@ -8045,7 +8246,7 @@ - + @@ -8054,7 +8255,7 @@ - + @@ -8163,9 +8364,9 @@ - + - + @@ -8176,9 +8377,9 @@ - + - + @@ -8407,7 +8608,7 @@ - + @@ -8416,7 +8617,7 @@ - + @@ -8425,7 +8626,7 @@ - + @@ -8434,7 +8635,7 @@ - + @@ -8443,7 +8644,7 @@ - + @@ -8452,7 +8653,7 @@ - + @@ -8461,7 +8662,7 @@ - + @@ -8470,7 +8671,7 @@ - + @@ -8782,7 +8983,7 @@ - + @@ -8870,11 +9071,11 @@ - + - + @@ -8896,9 +9097,9 @@ - + - + @@ -8907,11 +9108,11 @@ - + - + - + @@ -9003,9 +9204,9 @@ - + - + @@ -9018,9 +9219,9 @@ - + - + @@ -9035,9 +9236,9 @@ - + - + @@ -9050,9 +9251,9 @@ - + - + @@ -9067,9 +9268,9 @@ - + - + @@ -9084,9 +9285,9 @@ - + - + @@ -9101,13 +9302,13 @@ - + - + - + - + @@ -9118,13 +9319,13 @@ - + - + - + - + @@ -9692,9 +9893,9 @@ - + - + @@ -9797,7 +9998,7 @@ - + @@ -9815,7 +10016,7 @@ - + @@ -9824,7 +10025,7 @@ - + @@ -9833,7 +10034,7 @@ - + @@ -9842,7 +10043,7 @@ - + @@ -9851,7 +10052,7 @@ - + @@ -10195,7 +10396,7 @@ - + @@ -10233,9 +10434,9 @@ - + - + @@ -10244,9 +10445,9 @@ - + - + @@ -10255,9 +10456,9 @@ - + - + @@ -10266,9 +10467,9 @@ - + - + @@ -10277,9 +10478,9 @@ - + - + @@ -10438,7 +10639,7 @@ - + @@ -10450,7 +10651,7 @@ - + @@ -10485,7 +10686,7 @@ - + @@ -10494,11 +10695,11 @@ - + - + @@ -10507,11 +10708,11 @@ - + - + @@ -10520,11 +10721,11 @@ - + - + @@ -10672,7 +10873,7 @@ - + @@ -10690,65 +10891,65 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10792,7 +10993,7 @@ - + @@ -10804,7 +11005,7 @@ - + @@ -10822,9 +11023,9 @@ - + - + @@ -10835,65 +11036,65 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10937,7 +11138,7 @@ - + @@ -10955,100 +11156,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -11083,7 +11284,7 @@ - + @@ -11095,7 +11296,7 @@ - + @@ -11107,9 +11308,9 @@ - + - + @@ -11201,7 +11402,7 @@ - + @@ -11210,7 +11411,7 @@ - + @@ -11219,7 +11420,7 @@ - + @@ -11228,7 +11429,7 @@ - + @@ -11237,7 +11438,7 @@ - + @@ -11246,7 +11447,7 @@ - + @@ -11255,7 +11456,7 @@ - + @@ -11264,7 +11465,7 @@ - + @@ -11462,11 +11663,11 @@ - + - + @@ -11475,7 +11676,7 @@ - + @@ -11490,9 +11691,9 @@ - + - + @@ -11501,11 +11702,11 @@ - + - + - + @@ -11560,7 +11761,7 @@ - + @@ -11575,7 +11776,7 @@ - + @@ -11608,11 +11809,11 @@ - + - + - + @@ -12297,11 +12498,11 @@ - + - + - + @@ -12310,7 +12511,7 @@ - + @@ -12319,9 +12520,9 @@ - + - + @@ -12330,7 +12531,7 @@ - + @@ -12339,7 +12540,7 @@ - + @@ -12348,47 +12549,47 @@ - + - + - + - + - + - + - + - + - + @@ -12399,60 +12600,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -13529,207 +13730,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -13895,7 +13895,7 @@ - + @@ -13914,7 +13914,7 @@ - + @@ -14305,7 +14305,7 @@ - + @@ -14322,7 +14322,7 @@ - + @@ -14339,7 +14339,7 @@ - + @@ -14356,7 +14356,7 @@ - + @@ -14373,7 +14373,7 @@ - + @@ -14390,7 +14390,7 @@ - + @@ -14407,7 +14407,7 @@ - + @@ -14424,7 +14424,7 @@ - + @@ -14486,7 +14486,7 @@ - + @@ -14503,7 +14503,7 @@ - + @@ -14520,7 +14520,7 @@ - + @@ -14537,7 +14537,7 @@ - + @@ -14554,7 +14554,7 @@ - + @@ -14571,7 +14571,7 @@ - + @@ -14588,7 +14588,7 @@ - + @@ -14605,7 +14605,7 @@ - + @@ -14678,7 +14678,7 @@ - + @@ -14689,7 +14689,7 @@ - + @@ -14704,7 +14704,7 @@ - + @@ -14719,7 +14719,7 @@ - + @@ -14734,7 +14734,7 @@ - + @@ -14749,7 +14749,7 @@ - + @@ -14764,7 +14764,7 @@ - + @@ -14779,7 +14779,7 @@ - + @@ -14794,7 +14794,7 @@ - + @@ -14850,7 +14850,7 @@ - + @@ -14867,7 +14867,7 @@ - + @@ -14884,7 +14884,7 @@ - + @@ -14901,7 +14901,7 @@ - + @@ -14918,7 +14918,7 @@ - + @@ -14935,7 +14935,7 @@ - + @@ -14952,7 +14952,7 @@ - + @@ -14984,7 +14984,7 @@ - + @@ -15005,7 +15005,7 @@ - + @@ -15026,7 +15026,7 @@ - + @@ -15047,7 +15047,7 @@ - + @@ -15068,7 +15068,7 @@ - + @@ -15089,7 +15089,7 @@ - + @@ -15110,7 +15110,7 @@ - + @@ -15165,7 +15165,7 @@ - + @@ -15182,7 +15182,7 @@ - + @@ -15199,7 +15199,7 @@ - + @@ -15216,7 +15216,7 @@ - + @@ -15233,7 +15233,7 @@ - + @@ -15250,7 +15250,7 @@ - + @@ -15267,7 +15267,7 @@ - + @@ -15303,7 +15303,7 @@ - + @@ -15324,7 +15324,7 @@ - + @@ -15345,7 +15345,7 @@ - + @@ -15366,7 +15366,7 @@ - + @@ -15387,7 +15387,7 @@ - + @@ -15408,7 +15408,7 @@ - + @@ -15429,7 +15429,7 @@ - + @@ -15446,7 +15446,7 @@ - + @@ -15461,7 +15461,7 @@ - + @@ -15476,7 +15476,7 @@ - + @@ -15491,7 +15491,7 @@ - + @@ -15506,7 +15506,7 @@ - + @@ -15521,7 +15521,7 @@ - + @@ -15536,7 +15536,7 @@ - + @@ -15564,7 +15564,7 @@ - + @@ -15583,7 +15583,7 @@ - + @@ -15602,7 +15602,7 @@ - + @@ -15621,7 +15621,7 @@ - + @@ -15640,7 +15640,7 @@ - + @@ -15659,7 +15659,7 @@ - + @@ -15678,7 +15678,7 @@ - + @@ -15727,7 +15727,7 @@ - + @@ -15746,7 +15746,7 @@ - + @@ -15765,7 +15765,7 @@ - + @@ -15784,7 +15784,7 @@ - + @@ -15803,7 +15803,7 @@ - + @@ -15822,7 +15822,7 @@ - + @@ -15841,7 +15841,7 @@ - + @@ -15860,7 +15860,7 @@ - + @@ -15896,9 +15896,9 @@ - - + + @@ -15915,9 +15915,9 @@ - - + + @@ -15934,9 +15934,9 @@ - - + + @@ -15953,9 +15953,9 @@ - - + + @@ -15972,9 +15972,9 @@ - - + + @@ -15991,9 +15991,9 @@ - - + + @@ -16010,9 +16010,9 @@ - - + + @@ -16029,7 +16029,7 @@ - + @@ -16046,7 +16046,7 @@ - + @@ -16063,7 +16063,7 @@ - + @@ -16080,7 +16080,7 @@ - + @@ -16097,7 +16097,7 @@ - + @@ -16114,7 +16114,7 @@ - + @@ -16131,7 +16131,7 @@ - + @@ -16148,7 +16148,7 @@ - + @@ -16180,9 +16180,9 @@ - - + + @@ -16197,9 +16197,9 @@ - - + + @@ -16214,9 +16214,9 @@ - - + + @@ -16231,9 +16231,9 @@ - - + + @@ -16248,9 +16248,9 @@ - - + + @@ -16265,9 +16265,9 @@ - - + + @@ -16282,9 +16282,9 @@ - - + + @@ -16299,7 +16299,7 @@ - + @@ -17207,6 +17207,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -17290,41 +17325,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -18136,9 +18136,9 @@ - + - + @@ -18188,7 +18188,7 @@ - + @@ -18306,7 +18306,7 @@ - + @@ -18332,7 +18332,7 @@ - + @@ -18526,9 +18526,9 @@ - + - + @@ -18816,13 +18816,13 @@ - + - + - + @@ -18860,19 +18860,19 @@ - + - + - + - + - + @@ -18880,19 +18880,19 @@ - + - + - + - + - + @@ -18900,19 +18900,19 @@ - + - + - + - + - + @@ -18946,7 +18946,7 @@ - + @@ -18957,7 +18957,7 @@ - + @@ -19519,9 +19519,9 @@ - + - + @@ -19556,7 +19556,7 @@ - + @@ -19596,7 +19596,7 @@ - + @@ -19644,7 +19644,7 @@ - + @@ -19800,7 +19800,7 @@ - + @@ -19833,7 +19833,7 @@ - + @@ -19851,7 +19851,7 @@ - + @@ -19869,7 +19869,7 @@ - + @@ -19878,7 +19878,7 @@ - + @@ -19887,7 +19887,7 @@ - + @@ -19896,7 +19896,7 @@ - + @@ -19918,7 +19918,7 @@ - + @@ -19933,7 +19933,7 @@ - + @@ -19990,7 +19990,7 @@ - + @@ -20003,7 +20003,7 @@ - + @@ -20018,7 +20018,7 @@ - + @@ -20031,7 +20031,7 @@ - + @@ -20055,7 +20055,7 @@ - + @@ -20068,11 +20068,11 @@ - + - + - + @@ -20085,15 +20085,15 @@ - + - + - + @@ -20200,7 +20200,7 @@ - + @@ -20209,7 +20209,7 @@ - + @@ -20384,7 +20384,7 @@ - + @@ -20424,7 +20424,7 @@ - + @@ -20472,7 +20472,7 @@ - + @@ -20628,7 +20628,7 @@ - + @@ -20661,7 +20661,7 @@ - + @@ -20679,7 +20679,7 @@ - + @@ -20697,7 +20697,7 @@ - + @@ -20706,7 +20706,7 @@ - + @@ -20715,7 +20715,7 @@ - + @@ -20724,7 +20724,7 @@ - + @@ -20746,7 +20746,7 @@ - + @@ -20761,7 +20761,7 @@ - + @@ -20818,7 +20818,7 @@ - + @@ -20831,7 +20831,7 @@ - + @@ -20846,7 +20846,7 @@ - + @@ -20859,7 +20859,7 @@ - + @@ -20883,7 +20883,7 @@ - + @@ -20896,11 +20896,11 @@ - + - + - + @@ -20913,15 +20913,15 @@ - + - + - + @@ -21028,7 +21028,7 @@ - + @@ -21037,7 +21037,7 @@ - + @@ -21212,7 +21212,7 @@ - + @@ -21252,7 +21252,7 @@ - + @@ -21300,7 +21300,7 @@ - + @@ -21456,7 +21456,7 @@ - + @@ -21489,7 +21489,7 @@ - + @@ -21507,7 +21507,7 @@ - + @@ -21525,7 +21525,7 @@ - + @@ -21534,7 +21534,7 @@ - + @@ -21543,7 +21543,7 @@ - + @@ -21552,7 +21552,7 @@ - + @@ -21574,7 +21574,7 @@ - + @@ -21589,7 +21589,7 @@ - + @@ -21646,7 +21646,7 @@ - + @@ -21659,7 +21659,7 @@ - + @@ -21674,7 +21674,7 @@ - + @@ -21687,7 +21687,7 @@ - + @@ -21711,7 +21711,7 @@ - + @@ -21724,11 +21724,11 @@ - + - + - + @@ -21741,15 +21741,15 @@ - + - + - + @@ -21856,7 +21856,7 @@ - + @@ -21865,7 +21865,7 @@ - + @@ -22030,7 +22030,7 @@ - + @@ -22048,7 +22048,7 @@ - + @@ -22244,7 +22244,7 @@ - + @@ -22253,7 +22253,7 @@ - + @@ -22421,7 +22421,7 @@ - + @@ -22430,36 +22430,36 @@ - + - + - + - + - + - + - + - + @@ -22493,33 +22493,33 @@ - + - + - + - + - + - + - + - + - + @@ -22530,7 +22530,7 @@ - + @@ -22541,7 +22541,7 @@ - + @@ -22552,7 +22552,7 @@ - + @@ -22648,7 +22648,7 @@ - + @@ -22881,44 +22881,44 @@ - + - + - + - + - + - + - + - + - + - + @@ -22927,44 +22927,44 @@ - + - + - + - + - + - + - + - + - + - + @@ -22973,44 +22973,44 @@ - + - + - + - + - + - + - + - + - + - + @@ -23019,68 +23019,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -23121,15 +23121,15 @@ - + - + - + - + @@ -23156,46 +23156,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -23244,231 +23244,231 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -23477,22 +23477,22 @@ - + - + - + - + - + - + @@ -23501,35 +23501,35 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -23547,9 +23547,9 @@ - + - + @@ -23558,44 +23558,44 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -23604,35 +23604,35 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -23661,41 +23661,41 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -24984,15 +24984,15 @@ - + - + - + @@ -25099,7 +25099,7 @@ - + @@ -25108,7 +25108,7 @@ - + @@ -25122,9 +25122,9 @@ - + - + @@ -25134,9 +25134,9 @@ - + - + @@ -25146,9 +25146,9 @@ - + - + @@ -25324,13 +25324,13 @@ - + - + - + - + @@ -25390,26 +25390,26 @@ - + - + - + - + - + - + - + - + @@ -25612,9 +25612,9 @@ - + - + @@ -25624,9 +25624,9 @@ - + - + @@ -25638,7 +25638,7 @@ - + @@ -25664,9 +25664,9 @@ - + - + @@ -25676,9 +25676,9 @@ - + - + @@ -25700,9 +25700,9 @@ - + - + @@ -25712,9 +25712,9 @@ - + - + @@ -25724,9 +25724,9 @@ - + - + @@ -25762,7 +25762,7 @@ - + @@ -25810,7 +25810,7 @@ - + @@ -25966,7 +25966,7 @@ - + @@ -25999,7 +25999,7 @@ - + @@ -26017,7 +26017,7 @@ - + @@ -26035,7 +26035,7 @@ - + @@ -26062,7 +26062,7 @@ - + @@ -26084,7 +26084,7 @@ - + @@ -26099,7 +26099,7 @@ - + @@ -26156,7 +26156,7 @@ - + @@ -26169,7 +26169,7 @@ - + @@ -26184,7 +26184,7 @@ - + @@ -26197,7 +26197,7 @@ - + @@ -26241,7 +26241,7 @@ - + @@ -26274,7 +26274,7 @@ - + @@ -26311,7 +26311,7 @@ - + @@ -26452,7 +26452,7 @@ - + @@ -26470,7 +26470,7 @@ - + @@ -26479,7 +26479,7 @@ - + @@ -26499,7 +26499,7 @@ - + @@ -26521,7 +26521,7 @@ - + @@ -26536,7 +26536,7 @@ - + @@ -26636,7 +26636,7 @@ - + @@ -26687,7 +26687,7 @@ - + @@ -26700,7 +26700,7 @@ - + @@ -26728,7 +26728,7 @@ - + @@ -26962,7 +26962,7 @@ - + @@ -26973,7 +26973,7 @@ - + @@ -26984,7 +26984,7 @@ - + @@ -26995,7 +26995,7 @@ - + @@ -27006,7 +27006,7 @@ - + @@ -27017,7 +27017,7 @@ - + @@ -27028,7 +27028,7 @@ - + @@ -27413,7 +27413,7 @@ - + @@ -27424,7 +27424,7 @@ - + @@ -27435,7 +27435,7 @@ - + @@ -27446,7 +27446,7 @@ - + @@ -27457,7 +27457,7 @@ - + @@ -27468,7 +27468,7 @@ - + @@ -27569,7 +27569,7 @@ - + @@ -27591,7 +27591,7 @@ - + @@ -27729,7 +27729,7 @@ - + @@ -28013,7 +28013,7 @@ - + @@ -28024,7 +28024,7 @@ - + @@ -28035,7 +28035,7 @@ - + @@ -28046,7 +28046,7 @@ - + @@ -28057,7 +28057,7 @@ - + @@ -28068,7 +28068,7 @@ - + @@ -28079,7 +28079,7 @@ - + @@ -28464,7 +28464,7 @@ - + @@ -28475,7 +28475,7 @@ - + @@ -28486,7 +28486,7 @@ - + @@ -28497,7 +28497,7 @@ - + @@ -28508,7 +28508,7 @@ - + @@ -28519,7 +28519,7 @@ - + @@ -28620,7 +28620,7 @@ - + @@ -28642,7 +28642,7 @@ - + @@ -28760,7 +28760,7 @@ - + @@ -28953,7 +28953,7 @@ - + @@ -28964,7 +28964,7 @@ - + @@ -28975,7 +28975,7 @@ - + @@ -28986,7 +28986,7 @@ - + @@ -28997,7 +28997,7 @@ - + @@ -29008,7 +29008,7 @@ - + @@ -29019,7 +29019,7 @@ - + @@ -29404,7 +29404,7 @@ - + @@ -29415,7 +29415,7 @@ - + @@ -29426,7 +29426,7 @@ - + @@ -29437,7 +29437,7 @@ - + @@ -29448,7 +29448,7 @@ - + @@ -29459,7 +29459,7 @@ - + @@ -29560,7 +29560,7 @@ - + @@ -29582,7 +29582,7 @@ - + @@ -29700,7 +29700,7 @@ - + @@ -29806,7 +29806,7 @@ - + @@ -29843,7 +29843,7 @@ - + @@ -29973,7 +29973,7 @@ - + @@ -30010,7 +30010,7 @@ - + @@ -30131,7 +30131,7 @@ - + @@ -30168,7 +30168,7 @@ - + @@ -30289,7 +30289,7 @@ - + @@ -30326,7 +30326,7 @@ - + @@ -30599,7 +30599,7 @@ - + @@ -30608,9 +30608,9 @@ - + - + @@ -30623,7 +30623,7 @@ - + @@ -30632,7 +30632,7 @@ - + @@ -30654,9 +30654,9 @@ - + - + @@ -30667,7 +30667,7 @@ - + @@ -30831,7 +30831,7 @@ - + @@ -30840,9 +30840,9 @@ - + - + @@ -30855,7 +30855,7 @@ - + @@ -30864,7 +30864,7 @@ - + @@ -30886,9 +30886,9 @@ - + - + @@ -30899,7 +30899,7 @@ - + @@ -31063,7 +31063,7 @@ - + @@ -31072,9 +31072,9 @@ - + - + @@ -31087,7 +31087,7 @@ - + @@ -31096,7 +31096,7 @@ - + @@ -31118,9 +31118,9 @@ - + - + @@ -31131,7 +31131,7 @@ - + @@ -31189,7 +31189,7 @@ - + @@ -31237,7 +31237,7 @@ - + @@ -31410,7 +31410,7 @@ - + @@ -31421,7 +31421,7 @@ - + @@ -31434,7 +31434,7 @@ - + @@ -31443,7 +31443,7 @@ - + @@ -31465,7 +31465,7 @@ - + @@ -31478,17 +31478,17 @@ - + - + - + @@ -31525,7 +31525,7 @@ - + @@ -31545,7 +31545,7 @@ - + @@ -31565,7 +31565,7 @@ - + @@ -31598,7 +31598,7 @@ - + @@ -31620,7 +31620,7 @@ - + @@ -32374,22 +32374,22 @@ - + - + - + - + - + @@ -32401,13 +32401,13 @@ - + - + @@ -32419,7 +32419,7 @@ - + @@ -32429,19 +32429,19 @@ - + - + - + - + - + @@ -32449,13 +32449,13 @@ - + - + - + @@ -32470,7 +32470,7 @@ - + @@ -32487,7 +32487,7 @@ - + @@ -32547,7 +32547,7 @@ - + @@ -32567,7 +32567,7 @@ - + @@ -32589,7 +32589,7 @@ - + @@ -32611,7 +32611,7 @@ - + @@ -32631,7 +32631,7 @@ - + @@ -32663,16 +32663,16 @@ - + - + - + @@ -32687,7 +32687,7 @@ - + @@ -32704,7 +32704,7 @@ - + @@ -32764,7 +32764,7 @@ - + @@ -32784,7 +32784,7 @@ - + @@ -32806,7 +32806,7 @@ - + @@ -32828,7 +32828,7 @@ - + @@ -32848,7 +32848,7 @@ - + @@ -32866,24 +32866,24 @@ - + - + - + - + - + - + - + - + @@ -32895,9 +32895,9 @@ - + - + @@ -32917,13 +32917,13 @@ - + - + - + - + @@ -32939,42 +32939,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -32990,9 +32990,9 @@ - + - + @@ -33001,9 +33001,9 @@ - + - + @@ -33012,9 +33012,9 @@ - + - + @@ -33023,31 +33023,31 @@ - + - + - + - + - + - + - + - + - + - + @@ -33058,9 +33058,9 @@ - + - + @@ -33069,46 +33069,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33135,13 +33135,13 @@ - + - + - + - + @@ -33155,43 +33155,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33207,43 +33207,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33261,13 +33261,13 @@ - + - + - + - + @@ -33278,19 +33278,19 @@ - + - + - + - + - + @@ -33326,85 +33326,85 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33513,7 +33513,7 @@ - + @@ -33522,7 +33522,7 @@ - + @@ -33531,7 +33531,7 @@ - + @@ -33540,7 +33540,7 @@ - + @@ -33756,11 +33756,11 @@ - + - + @@ -33769,7 +33769,7 @@ - + @@ -33784,9 +33784,9 @@ - + - + @@ -33795,11 +33795,11 @@ - + - + - + @@ -33892,7 +33892,7 @@ - + @@ -33907,11 +33907,11 @@ - + - + @@ -33920,7 +33920,7 @@ - + @@ -33935,9 +33935,9 @@ - + - + @@ -33948,9 +33948,9 @@ - + - + @@ -33963,7 +33963,7 @@ - + @@ -33974,7 +33974,7 @@ - + @@ -33987,7 +33987,7 @@ - + @@ -33998,7 +33998,7 @@ - + @@ -34064,11 +34064,11 @@ - + - + - + @@ -34081,11 +34081,11 @@ - + - + - + @@ -34098,11 +34098,11 @@ - + - + - + @@ -34113,11 +34113,11 @@ - + - + - + @@ -34128,11 +34128,11 @@ - + - + - + @@ -34145,11 +34145,11 @@ - + - + - + @@ -34162,11 +34162,11 @@ - + - + - + @@ -34179,11 +34179,11 @@ - + - + - + @@ -34207,7 +34207,7 @@ - + @@ -34215,11 +34215,11 @@ - + - + @@ -34355,7 +34355,7 @@ - + @@ -34364,7 +34364,7 @@ - + @@ -34388,9 +34388,9 @@ - + - + @@ -34401,9 +34401,9 @@ - + - + @@ -34468,9 +34468,9 @@ - + - + @@ -34480,9 +34480,9 @@ - + - + @@ -34492,9 +34492,9 @@ - + - + @@ -34504,9 +34504,9 @@ - + - + @@ -34516,9 +34516,9 @@ - + - + @@ -34532,9 +34532,9 @@ - + - + @@ -34544,9 +34544,9 @@ - + - + @@ -34615,7 +34615,7 @@ - + @@ -34626,7 +34626,7 @@ - + @@ -34639,7 +34639,7 @@ - + @@ -34648,7 +34648,7 @@ - + @@ -34670,7 +34670,7 @@ - + @@ -34683,7 +34683,7 @@ - + @@ -35232,7 +35232,7 @@ - + @@ -35251,7 +35251,7 @@ - + @@ -35279,7 +35279,7 @@ - + @@ -35298,7 +35298,7 @@ - + @@ -35317,7 +35317,7 @@ - + @@ -35340,7 +35340,7 @@ - + @@ -35363,7 +35363,7 @@ - + @@ -35382,7 +35382,7 @@ - + @@ -35399,7 +35399,7 @@ - + @@ -35420,7 +35420,7 @@ - + @@ -35441,11 +35441,11 @@ - + - + @@ -35462,7 +35462,7 @@ - + @@ -35481,11 +35481,11 @@ - + - + @@ -35883,9 +35883,9 @@ - + - + @@ -35909,7 +35909,7 @@ - + @@ -36155,7 +36155,7 @@ - + @@ -36170,16 +36170,28 @@ + + + + + + + + + + + + - + - + - + @@ -36506,7 +36518,7 @@ - + @@ -36524,7 +36536,7 @@ - + @@ -37068,7 +37080,7 @@ - + @@ -37086,9 +37098,9 @@ - + - + @@ -37097,9 +37109,9 @@ - + - + @@ -37108,9 +37120,9 @@ - + - + @@ -37255,9 +37267,9 @@ - + - + @@ -37347,7 +37359,7 @@ - + @@ -37376,11 +37388,11 @@ - + - + - + @@ -37636,7 +37648,7 @@ - + @@ -37690,7 +37702,7 @@ - + @@ -37804,7 +37816,7 @@ - + @@ -37819,7 +37831,7 @@ - + @@ -37834,7 +37846,7 @@ - + @@ -37849,7 +37861,7 @@ - + @@ -38104,7 +38116,7 @@ - + @@ -38163,7 +38175,7 @@ - + @@ -38174,7 +38186,7 @@ - + @@ -38185,7 +38197,7 @@ - + @@ -38196,7 +38208,7 @@ - + @@ -38207,7 +38219,7 @@ - + @@ -38218,7 +38230,7 @@ - + @@ -38229,7 +38241,7 @@ - + @@ -38240,7 +38252,7 @@ - + @@ -38251,7 +38263,7 @@ - + @@ -38314,9 +38326,9 @@ - + - + @@ -38463,7 +38475,7 @@ - + @@ -38936,7 +38948,7 @@ - + @@ -38947,7 +38959,7 @@ - + @@ -38958,7 +38970,7 @@ - + @@ -39004,7 +39016,7 @@ - + @@ -39066,7 +39078,7 @@ - + @@ -39077,7 +39089,7 @@ - + @@ -39088,7 +39100,7 @@ - + @@ -39099,7 +39111,7 @@ - + @@ -39110,7 +39122,7 @@ - + @@ -39121,7 +39133,7 @@ - + @@ -39132,7 +39144,7 @@ - + @@ -39143,7 +39155,7 @@ - + @@ -39154,7 +39166,7 @@ - + @@ -39710,11 +39722,11 @@ - + - + @@ -39727,7 +39739,7 @@ - + @@ -39990,7 +40002,7 @@ - + @@ -40001,7 +40013,7 @@ - + @@ -40226,7 +40238,7 @@ - + @@ -40238,9 +40250,9 @@ - + - + @@ -40443,7 +40455,7 @@ - + @@ -40503,7 +40515,7 @@ - + @@ -40523,7 +40535,7 @@ - + @@ -40556,7 +40568,7 @@ - + @@ -40578,7 +40590,7 @@ - + @@ -41052,18 +41064,6 @@ - - - - - - - - - - - - @@ -41487,7 +41487,7 @@ - + @@ -41506,7 +41506,7 @@ - + @@ -42270,13 +42270,13 @@ - + - + - + - + diff --git a/tests/data/test-annotate/test21-pr19092.so.abi b/tests/data/test-annotate/test21-pr19092.so.abi index b979f913..81cdcf9d 100644 --- a/tests/data/test-annotate/test21-pr19092.so.abi +++ b/tests/data/test-annotate/test21-pr19092.so.abi @@ -981,8 +981,8 @@ - - + + @@ -1612,8 +1612,6 @@ - - @@ -1642,6 +1640,8 @@ + + @@ -4820,90 +4820,105 @@ - - + + - - + + - - + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4912,21 +4927,21 @@ - + - + - + - + - + @@ -4936,13 +4951,13 @@ - + - + - + - + @@ -4950,28 +4965,28 @@ - + - + - + - + - + - + - + - + @@ -4986,13 +5001,13 @@ - + - + @@ -5001,7 +5016,7 @@ - + @@ -5018,21 +5033,21 @@ - + - + - + @@ -5041,59 +5056,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5102,7 +5117,7 @@ - + @@ -5111,7 +5126,7 @@ - + @@ -5120,7 +5135,7 @@ - + @@ -5129,7 +5144,7 @@ - + @@ -5138,7 +5153,7 @@ - + @@ -5148,16 +5163,16 @@ - + - + - + @@ -5166,16 +5181,16 @@ - + - + - + - + @@ -5191,7 +5206,7 @@ - + @@ -5200,9 +5215,9 @@ - + - + @@ -5222,20 +5237,20 @@ - + - + - + @@ -5246,7 +5261,7 @@ - + @@ -5255,16 +5270,16 @@ - + - + - + @@ -5275,9 +5290,9 @@ - + - + @@ -5286,22 +5301,22 @@ - + - + - + - + - + @@ -5310,14 +5325,14 @@ - + - + - + @@ -5331,9 +5346,9 @@ - + - + @@ -5346,7 +5361,7 @@ - + @@ -5367,16 +5382,16 @@ - + - + - + - + @@ -5388,9 +5403,9 @@ - + - + @@ -5412,120 +5427,120 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5544,51 +5559,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5597,7 +5612,7 @@ - + @@ -5606,7 +5621,7 @@ - + @@ -5617,28 +5632,28 @@ - + - + - + - + @@ -5649,14 +5664,14 @@ - + - + @@ -5665,11 +5680,11 @@ - + - + - + @@ -5678,28 +5693,28 @@ - + - + - + - + - + - + @@ -5708,7 +5723,7 @@ - + @@ -5745,7 +5760,7 @@ - + @@ -5780,45 +5795,45 @@ - + - + - + - + - + - + - + - + - + - + @@ -5844,7 +5859,7 @@ - + @@ -5881,7 +5896,7 @@ - + @@ -5897,7 +5912,7 @@ - + @@ -5935,7 +5950,7 @@ - + @@ -5944,35 +5959,35 @@ - + - + - + - + - + - + - + - + @@ -5981,7 +5996,7 @@ - + @@ -5990,25 +6005,25 @@ - + - + - + - + - + - + @@ -6017,34 +6032,39 @@ - + + + + + + - + - + - + - + - + - + - + @@ -6053,21 +6073,21 @@ - + - + - + @@ -6076,14 +6096,14 @@ - + - + @@ -6092,21 +6112,21 @@ - + - - + + - + - + @@ -6118,7 +6138,7 @@ - + @@ -6129,10 +6149,10 @@ - + - + @@ -6140,13 +6160,13 @@ - + - + - + @@ -6157,13 +6177,13 @@ - + - + - + @@ -6177,14 +6197,14 @@ - + - + - + @@ -6193,14 +6213,14 @@ - + - + @@ -6209,7 +6229,7 @@ - + @@ -6218,18 +6238,18 @@ - + - + - + - + @@ -6238,14 +6258,14 @@ - + - + - + @@ -6254,31 +6274,31 @@ - + - + - + - + - + - + - + - + @@ -6287,17 +6307,17 @@ - + - + - + - + @@ -6313,37 +6333,37 @@ - + - + - + - + - + - + - + - + @@ -6361,7 +6381,7 @@ - + @@ -6369,14 +6389,14 @@ - + - + @@ -6398,15 +6418,15 @@ - + - + - + @@ -6414,47 +6434,47 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -6494,7 +6514,7 @@ - + @@ -6585,10 +6605,10 @@ - + - + @@ -6596,11 +6616,11 @@ - + - + @@ -6616,28 +6636,28 @@ - + - + - + - + - + - + - + - + @@ -6841,7 +6861,7 @@ - + @@ -6860,23 +6880,23 @@ - + - + - + - + - + @@ -6912,21 +6932,21 @@ - + - + - + - + - + @@ -6936,15 +6956,15 @@ - + - + - + @@ -6956,31 +6976,31 @@ - + - + - + - + - + - + - + @@ -6992,23 +7012,23 @@ - + - + - + - + - + @@ -7020,7 +7040,7 @@ - + @@ -7040,11 +7060,11 @@ - + - + @@ -7052,15 +7072,15 @@ - + - + - + @@ -7072,7 +7092,7 @@ - + @@ -7080,43 +7100,43 @@ - + - + - + - + - + - + - + - + - + - + @@ -7128,31 +7148,31 @@ - + - + - + - + - + - + - + @@ -7160,23 +7180,23 @@ - + - + - + - + - + @@ -7184,11 +7204,11 @@ - + - + @@ -7196,10 +7216,10 @@ - + - + @@ -7211,7 +7231,7 @@ - + @@ -7223,7 +7243,7 @@ - + @@ -7239,14 +7259,14 @@ - + - + - + - + @@ -7254,10 +7274,10 @@ - + - + @@ -7281,30 +7301,30 @@ - + - + - + - + - + - + - + - + @@ -7316,9 +7336,9 @@ - + - + @@ -7377,18 +7397,18 @@ - + - + - + @@ -7404,7 +7424,7 @@ - + @@ -7420,53 +7440,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7492,7 +7512,7 @@ - + @@ -7660,7 +7680,7 @@ - + @@ -7672,7 +7692,7 @@ - + @@ -7712,14 +7732,14 @@ - + - + - + @@ -7727,56 +7747,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7786,44 +7806,44 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -7838,112 +7858,112 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7959,19 +7979,19 @@ - + - + - + - + @@ -7995,36 +8015,36 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -8040,7 +8060,7 @@ - + @@ -8048,7 +8068,7 @@ - + @@ -8067,14 +8087,14 @@ - + - + - + - + @@ -8082,7 +8102,7 @@ - + @@ -8102,11 +8122,11 @@ - + - + - + @@ -8153,137 +8173,137 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8294,31 +8314,31 @@ - + - + - + - + - + - + - + - + @@ -8327,11 +8347,11 @@ - + - + @@ -8340,11 +8360,11 @@ - + - + @@ -8353,21 +8373,21 @@ - + - + - + @@ -8376,7 +8396,7 @@ - + @@ -8385,23 +8405,23 @@ - + - + - + - + - + @@ -8415,9 +8435,9 @@ - + - + @@ -8426,7 +8446,7 @@ - + @@ -8435,11 +8455,11 @@ - + - + @@ -8448,16 +8468,16 @@ - + - + - + - + @@ -8466,7 +8486,7 @@ - + @@ -8478,14 +8498,14 @@ - + - + - + @@ -8501,14 +8521,14 @@ - + - + - + @@ -8519,157 +8539,157 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8681,48 +8701,48 @@ - + - + - + - + - + - + - + - + - + - + @@ -8738,7 +8758,7 @@ - + @@ -8754,7 +8774,7 @@ - + @@ -8766,50 +8786,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -8826,51 +8846,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8879,32 +8899,32 @@ - + - + - + - + - + - + - + - + - + @@ -8915,66 +8935,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8983,19 +9003,19 @@ - + - + - + - + - + - + - + @@ -9006,10 +9026,10 @@ - + - + @@ -9023,20 +9043,20 @@ - + - + - + - + @@ -9047,7 +9067,7 @@ - + @@ -9056,7 +9076,7 @@ - + @@ -9065,7 +9085,7 @@ - + @@ -9076,7 +9096,7 @@ - + @@ -9085,7 +9105,7 @@ - + @@ -9094,7 +9114,7 @@ - + @@ -9107,9 +9127,9 @@ - + - + @@ -9118,9 +9138,9 @@ - + - + @@ -9133,7 +9153,7 @@ - + @@ -9147,7 +9167,7 @@ - + @@ -9155,9 +9175,9 @@ - + - + @@ -9166,49 +9186,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -9217,23 +9237,23 @@ - + - + - + - + @@ -9242,7 +9262,7 @@ - + @@ -9251,12 +9271,25 @@ - + + + + + + + + + + + + + + @@ -9342,19 +9375,6 @@ - - - - - - - - - - - - - @@ -9382,30 +9402,40 @@ - + - + - + - + + + + + + + + + + + - + - + - + - + - + @@ -9480,58 +9510,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -9542,14 +9572,14 @@ - + - + - + @@ -9568,44 +9598,44 @@ - + - + - + - + - + - + - + - + - + - + @@ -9613,18 +9643,18 @@ - + - + - + - + @@ -9632,14 +9662,14 @@ - + - + - + @@ -9658,11 +9688,11 @@ - + - + @@ -9676,7 +9706,7 @@ - + @@ -9687,35 +9717,35 @@ - + - + - + - + - + - + - + @@ -9723,7 +9753,7 @@ - + @@ -9742,7 +9772,7 @@ - + @@ -9754,7 +9784,7 @@ - + @@ -9770,7 +9800,7 @@ - + @@ -9778,31 +9808,31 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -9813,60 +9843,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -9877,7 +9907,7 @@ - + @@ -9894,7 +9924,7 @@ - + @@ -9905,7 +9935,7 @@ - + @@ -9916,7 +9946,7 @@ - + @@ -9927,19 +9957,19 @@ - + - + - + - + @@ -9950,7 +9980,7 @@ - + @@ -9963,12 +9993,17 @@ - + + + + + + - + - + @@ -9983,26 +10018,109 @@ - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10022,16 +10140,16 @@ - + - + - + @@ -10054,18 +10172,9 @@ - + - - - - - - - - - - + @@ -10082,17 +10191,6 @@ - - - - - - - - - - - @@ -10112,69 +10210,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -10240,7 +10275,7 @@ - + @@ -10379,7 +10414,7 @@ - + @@ -10390,7 +10425,7 @@ - + @@ -10415,7 +10450,7 @@ - + @@ -10451,35 +10486,35 @@ - + - + - + - + - + - + - + - + - + @@ -10487,26 +10522,26 @@ - + - + - + - + - + - + - + @@ -10519,7 +10554,7 @@ - + @@ -10530,14 +10565,14 @@ - + - + @@ -10601,7 +10636,7 @@ - + @@ -10609,7 +10644,7 @@ - + @@ -10637,7 +10672,7 @@ - + @@ -10645,11 +10680,11 @@ - + - + - + @@ -10668,66 +10703,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10737,7 +10772,7 @@ - + @@ -10798,12 +10833,12 @@ - + - + @@ -10814,7 +10849,7 @@ - + @@ -10825,7 +10860,7 @@ - + @@ -10834,7 +10869,7 @@ - + @@ -10845,7 +10880,7 @@ - + @@ -10865,33 +10900,33 @@ - + - + - + - + - + - + - + - + @@ -10900,12 +10935,12 @@ - + - + - + @@ -10913,22 +10948,22 @@ - + - + - + - + @@ -10943,7 +10978,7 @@ - + @@ -10954,14 +10989,14 @@ - + - + - + @@ -11021,24 +11056,24 @@ - + - + - + - + - + - + @@ -11059,31 +11094,31 @@ - + - + - + - + - + - + - + @@ -11098,7 +11133,7 @@ - + @@ -11117,7 +11152,7 @@ - + @@ -11149,18 +11184,23 @@ - + + + + + + - + - + - + - + - + @@ -11181,9 +11221,9 @@ - + - + @@ -11194,7 +11234,7 @@ - + diff --git a/tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi b/tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi index b613b043..480f9613 100644 --- a/tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi +++ b/tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi @@ -1,4 +1,4 @@ - + @@ -137,7 +137,7 @@ - + @@ -562,24 +562,17 @@ - - - - - - - - - - - + - + + + + - + @@ -593,7 +586,15 @@ - + + + + + + + + + @@ -653,7 +654,7 @@ - + @@ -669,7 +670,7 @@ - + @@ -691,7 +692,7 @@ - + @@ -1009,24 +1010,17 @@ - - - - - - - - - - - + - + + + + - + @@ -1049,35 +1043,29 @@ + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + - + @@ -1085,10 +1073,10 @@ - + - + @@ -1096,6 +1084,22 @@ + + + + + + + + + + + + + + + + @@ -1198,7 +1202,7 @@ - + @@ -1224,7 +1228,7 @@ - + @@ -1263,7 +1267,7 @@ - + @@ -1394,7 +1398,7 @@ - + @@ -1416,7 +1420,7 @@ - + @@ -1458,27 +1462,17 @@ - - - - - - - - - - - - - - + - + + + + - + @@ -1486,7 +1480,18 @@ - + + + + + + + + + + + + @@ -1619,7 +1624,7 @@ - + @@ -1644,7 +1649,7 @@ - + @@ -1673,7 +1678,7 @@ - + @@ -1739,7 +1744,7 @@ - + @@ -1989,10 +1994,10 @@ - + - + @@ -2008,10 +2013,10 @@ - + - + @@ -2062,7 +2067,7 @@ - + @@ -2180,7 +2185,7 @@ - + @@ -2326,7 +2331,7 @@ - + @@ -2341,7 +2346,7 @@ - + @@ -2369,7 +2374,7 @@ - + @@ -2399,7 +2404,7 @@ - + @@ -2415,7 +2420,7 @@ - + @@ -2437,7 +2442,7 @@ - + @@ -2595,7 +2600,7 @@ - + @@ -2639,7 +2644,7 @@ - + @@ -2661,7 +2666,7 @@ - + @@ -2701,7 +2706,7 @@ - + @@ -3052,85 +3057,78 @@ - + - - - - - - - - + - - - + + + - + - - - - - + + + + + - - - + + + - - + + - + - + - - + + - + - + - + - - + + - + - + - - + + - + - + - + - + - + - + @@ -3139,62 +3137,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3203,304 +3201,304 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + - + - + - - + + - - + + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + @@ -3515,16 +3513,16 @@ - + - + - + @@ -3536,13 +3534,13 @@ - + - + - + @@ -3563,37 +3561,37 @@ - + - + - + - + - + - + - + - + @@ -3607,7 +3605,7 @@ - + @@ -3621,38 +3619,38 @@ - + - + - + - + - + - + - + - + - + @@ -3673,7 +3671,7 @@ - + @@ -3684,9 +3682,9 @@ - + - + @@ -3710,28 +3708,28 @@ - + - + - + - + - + - + - + @@ -3742,9 +3740,9 @@ - + - + @@ -3756,20 +3754,20 @@ - + - + - + - + @@ -3777,22 +3775,22 @@ - + - + - + - + - + - + @@ -3810,70 +3808,62 @@ - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3881,27 +3871,27 @@ - + - + - + - + - + @@ -3919,7 +3909,7 @@ - + @@ -3936,12 +3926,12 @@ - + - + - + @@ -3953,7 +3943,7 @@ - + @@ -3961,21 +3951,21 @@ - + - + - + - + - + - + @@ -3984,15 +3974,15 @@ - + - + - + @@ -4003,7 +3993,7 @@ - + @@ -4012,325 +4002,325 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4338,21 +4328,21 @@ - - - + + + - + - - - + + + - + - + @@ -4364,7 +4354,7 @@ - + @@ -4415,10 +4405,10 @@ - + - + @@ -4430,10 +4420,10 @@ - + - + @@ -4445,16 +4435,16 @@ - + - + - + @@ -4463,9 +4453,9 @@ - + - + @@ -4486,7 +4476,7 @@ - + @@ -4497,9 +4487,9 @@ - + - + @@ -4520,7 +4510,7 @@ - + @@ -4537,7 +4527,7 @@ - + @@ -4548,9 +4538,9 @@ - + - + @@ -4559,13 +4549,13 @@ - - + + - + @@ -4574,55 +4564,55 @@ - - + + - + - - + + - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -4636,7 +4626,7 @@ - + @@ -4645,27 +4635,27 @@ - + - - - + + + - + - - - - + + + + @@ -4676,20 +4666,20 @@ - + - + - + - - - + + + @@ -4697,11 +4687,11 @@ - - - + + + - + @@ -4716,7 +4706,7 @@ - + @@ -4728,22 +4718,22 @@ - - - - - - + + + + + + - + - - - + + + @@ -4760,9 +4750,9 @@ - - - + + + @@ -4776,9 +4766,9 @@ - - - + + + @@ -4786,9 +4776,9 @@ - - - + + + @@ -4803,7 +4793,7 @@ - + @@ -4816,30 +4806,30 @@ - - + + - + - + - + - + - + - + - + @@ -4847,41 +4837,33 @@ - - - - - - - - - - - - + + + + - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -4895,16 +4877,16 @@ - - + + - + - + @@ -4912,16 +4894,16 @@ - - + + - + - + @@ -4933,16 +4915,16 @@ - + - + - + @@ -4950,7 +4932,7 @@ - + @@ -4965,9 +4947,9 @@ - + - + @@ -4976,10 +4958,10 @@ - + - + @@ -4987,49 +4969,49 @@ - + - - + + - + - + - + - + - + - + - + - + - - - + + + - + @@ -5040,166 +5022,166 @@ - + - + - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -5214,399 +5196,399 @@ - + - + + + + + + + + - - + + + + + + + + + + + - + + + + + + - - + - - + + - + - - - + + - + + - - + + - + + + + - - - + + + + - - + + + - - + + - - - - + + - - - - + + - - - + + - - + + - - + + - - + + - + - + - - + + + + - - + + + + - - + + - - + + - + - - + - - - - + + - - + + - - + + + - - - + + + + - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - + + - - + + - - - - + + - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - + - - + + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - + - + - - - + + + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - - + + - + - - + + - + - - + + - + - + - - + + diff --git a/tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1-report-0.txt b/tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1-report-0.txt index 3fce90b7..7f7f5043 100644 --- a/tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1-report-0.txt +++ b/tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1-report-0.txt @@ -1,3 +1,3 @@ -Functions changes summary: 0 Removed, 0 Changed (57 filtered out), 0 Added functions +Functions changes summary: 0 Removed, 0 Changed (217 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added variable diff --git a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt index 71df361e..30185227 100644 --- a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt +++ b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt @@ -121,19 +121,12 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables parameter 2 of type 'lttng_event_context*' has sub-type changes: in pointed to type 'struct lttng_event_context': type size hasn't changed - 2 data member changes: + 1 data member change: type of 'lttng_event_context_type lttng_event_context::ctx' changed: type size hasn't changed 2 enumerator insertions: 'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_KERNEL' value '20' 'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_USER' value '21' - type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed: - type name changed from '__anonymous_union__4' to '__anonymous_union__5' - type size hasn't changed - type changed from: - union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} - to: - union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} [C] 'function lttng_condition_status lttng_condition_buffer_usage_get_channel_name(const lttng_condition*, const char**)' has some indirect sub-type changes: parameter 1 of type 'const lttng_condition*' has sub-type changes: diff --git a/tests/data/test-diff-dwarf/test0-report.txt b/tests/data/test-diff-dwarf/test0-report.txt index d8a213a5..891859e1 100644 --- a/tests/data/test-diff-dwarf/test0-report.txt +++ b/tests/data/test-diff-dwarf/test0-report.txt @@ -1,21 +1,33 @@ -Functions changes summary: 0 Removed, 1 Changed, 1 Added functions +Functions changes summary: 0 Removed, 3 Changed, 1 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 Added function: [A] 'method int S0::get_member0() const' -1 function with some indirect sub-type change: +3 functions with some indirect sub-type change: + + [C] 'method void B0S0::member0() const' has some indirect sub-type changes: + implicit parameter 0 of type 'const B0S0*' has sub-type changes: + in pointed to type 'const B0S0': + in unqualified underlying type 'class B0S0': + type size changed from 64 to 96 (in bits) + 1 data member insertion: + 'unsigned int B0S0::m2', at offset 64 (in bits) + + [C] 'method void S0::member0() const' has some indirect sub-type changes: + 'method void S0::member0() const' access changed from 'private' to 'public' + implicit parameter 0 of type 'const S0*' has sub-type changes: + in pointed to type 'const S0': + in unqualified underlying type 'class S0': + type size changed from 96 to 128 (in bits) + 1 base class change: + 'class B0S0' changed: + details were reported earlier + 1 data member change: + 'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits), access changed from 'private' to 'protected' [C] 'function void foo(S0&, S1*)' has some indirect sub-type changes: parameter 1 of type 'S0&' has sub-type changes: - in referenced type 'class S0': - type size changed from 96 to 128 (in bits) - 1 base class change: - 'class B0S0' changed: - type size changed from 64 to 96 (in bits) - 1 data member insertion: - 'unsigned int B0S0::m2', at offset 64 (in bits) - 1 data member change: - 'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits), access changed from 'private' to 'protected' + referenced type 'class S0' changed, as reported earlier diff --git a/tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt b/tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt index f18439f5..34454f14 100644 --- a/tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt +++ b/tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt @@ -15,6 +15,9 @@ Variable symbols changes summary: 0 Removed, 3 Added variable symbols not refere [C] 'method void S::bar()' has some indirect sub-type changes: method void S::bar() is now declared virtual note that this is an ABI incompatible change to the vtable of struct S + implicit parameter 0 of type 'S*' has sub-type changes: + in pointed to type 'struct S': + type struct S was a declaration-only type and is now a defined type 3 Added variable symbols not referenced by debug info: diff --git a/tests/data/test-diff-dwarf/test29-vtable-changes-report-0.txt b/tests/data/test-diff-dwarf/test29-vtable-changes-report-0.txt index 423ddbee..b1fa4b3c 100644 --- a/tests/data/test-diff-dwarf/test29-vtable-changes-report-0.txt +++ b/tests/data/test-diff-dwarf/test29-vtable-changes-report-0.txt @@ -1,4 +1,4 @@ -Functions changes summary: 0 Removed, 0 Changed, 1 Added function +Functions changes summary: 0 Removed, 3 Changed, 1 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 Added function: @@ -6,3 +6,33 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [A] 'method virtual void S::fn1()' note that this adds a new entry to the vtable of struct S +3 functions with some indirect sub-type change: + + [C] 'method virtual void S::fn0()' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + in pointed to type 'struct S': + type size hasn't changed + 1 member function insertion: + 'method virtual void S::fn1()', virtual at voffset 3/3 + 4 member function changes: + 'method virtual S::~S(int)' has some sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported + 'method virtual S::~S(int)' has some sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported + 'method virtual S::~S(int)' has some sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported + 'method virtual void S::fn0()' has some sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported + + [C] 'method virtual S::~S(int)' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as reported earlier + + [C] 'method virtual S::~S(int)' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as reported earlier + diff --git a/tests/data/test-diff-dwarf/test30-vtable-changes-report-0.txt b/tests/data/test-diff-dwarf/test30-vtable-changes-report-0.txt index 64e5604e..f76d694a 100644 --- a/tests/data/test-diff-dwarf/test30-vtable-changes-report-0.txt +++ b/tests/data/test-diff-dwarf/test30-vtable-changes-report-0.txt @@ -1,4 +1,4 @@ -Functions changes summary: 0 Removed, 1 Changed, 1 Added functions +Functions changes summary: 0 Removed, 4 Changed, 1 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 Added function: @@ -6,9 +6,44 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [A] 'method virtual void S::fvtable_breaker()' note that this adds a new entry to the vtable of struct S -1 function with some indirect sub-type change: +4 functions with some indirect sub-type change: + + [C] 'method virtual void S::fn0()' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + in pointed to type 'struct S': + type size hasn't changed + 1 member function insertion: + 'method virtual void S::fvtable_breaker()', virtual at voffset 3/4 + 5 member function changes: + 'method virtual S::~S(int)' has some sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported + 'method virtual S::~S(int)' has some sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported + 'method virtual S::~S(int)' has some sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported + 'method virtual void S::fn0()' has some sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported + 'method virtual void S::fn1()' has some sub-type changes: + the vtable offset of method virtual void S::fn1() changed from 3 to 4 + note that this is an ABI incompatible change to the vtable of struct S + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported [C] 'method virtual void S::fn1()' has some indirect sub-type changes: the vtable offset of method virtual void S::fn1() changed from 3 to 4 note that this is an ABI incompatible change to the vtable of struct S + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as reported earlier + + [C] 'method virtual S::~S(int)' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as reported earlier + + [C] 'method virtual S::~S(int)' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as reported earlier diff --git a/tests/data/test-diff-dwarf/test31-vtable-changes-report-0.txt b/tests/data/test-diff-dwarf/test31-vtable-changes-report-0.txt index 624c1233..d7b596e1 100644 --- a/tests/data/test-diff-dwarf/test31-vtable-changes-report-0.txt +++ b/tests/data/test-diff-dwarf/test31-vtable-changes-report-0.txt @@ -1,4 +1,4 @@ -Functions changes summary: 1 Removed, 1 Changed, 0 Added functions +Functions changes summary: 1 Removed, 3 Changed, 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 Removed function: @@ -6,9 +6,37 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [D] 'method virtual void S::fn0()' note that this removes an entry from the vtable of struct S -1 function with some indirect sub-type change: +3 functions with some indirect sub-type change: [C] 'method virtual void S::fn1()' has some indirect sub-type changes: the vtable offset of method virtual void S::fn1() changed from 3 to 2 note that this is an ABI incompatible change to the vtable of struct S + implicit parameter 0 of type 'S*' has sub-type changes: + in pointed to type 'struct S': + type size hasn't changed + 1 member function deletion: + 'method virtual void S::fn0()', virtual at voffset 2/3 + 4 member function changes: + 'method virtual S::~S(int)' has some sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported + 'method virtual S::~S(int)' has some sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported + 'method virtual S::~S(int)' has some sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported + 'method virtual void S::fn1()' has some sub-type changes: + the vtable offset of method virtual void S::fn1() changed from 3 to 2 + note that this is an ABI incompatible change to the vtable of struct S + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as being reported + + [C] 'method virtual S::~S(int)' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as reported earlier + + [C] 'method virtual S::~S(int)' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as reported earlier diff --git a/tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt b/tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt index 54156226..a79c11be 100644 --- a/tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt +++ b/tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt @@ -1,12 +1,24 @@ -Functions changes summary: 0 Removed, 1 Changed, 0 Added function +Functions changes summary: 0 Removed, 4 Changed, 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable -1 function with some indirect sub-type change: +4 functions with some indirect sub-type change: - [C] 'function void foo(S&)' has some indirect sub-type changes: - parameter 1 of type 'S&' has sub-type changes: - in referenced type 'struct S': + [C] 'method S::S(int)' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + in pointed to type 'struct S': type size changed from 32 to 64 (in bits) 1 data member insertion: 'int S::m1', at offset 32 (in bits) + [C] 'method S::S()' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as reported earlier + + [C] 'method S::~S(int)' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + pointed to type 'struct S' changed, as reported earlier + + [C] 'function void foo(S&)' has some indirect sub-type changes: + parameter 1 of type 'S&' has sub-type changes: + referenced type 'struct S' changed, as reported earlier + diff --git a/tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt b/tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt index 78f91a58..fad1ed9a 100644 --- a/tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt +++ b/tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt @@ -1,16 +1,38 @@ -Functions changes summary: 0 Removed, 1 Changed, 0 Added function +Functions changes summary: 0 Removed, 3 Changed, 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable -1 function with some indirect sub-type change: +3 functions with some indirect sub-type change: - [C] 'function Interface* make_interface()' has some indirect sub-type changes: - return type changed: + [C] 'method virtual Interface::~Interface(int)' has some indirect sub-type changes: + implicit parameter 0 of type 'Interface*' has sub-type changes: in pointed to type 'class Interface': type size hasn't changed 1 member function insertion: 'method virtual void Interface::method2()', virtual at voffset 3/4 - 1 member function change: + 5 member function changes: + 'method virtual Interface::~Interface(int)' has some sub-type changes: + implicit parameter 0 of type 'Interface*' has sub-type changes: + pointed to type 'class Interface' changed, as being reported + 'method virtual Interface::~Interface(int)' has some sub-type changes: + implicit parameter 0 of type 'Interface*' has sub-type changes: + pointed to type 'class Interface' changed, as being reported + 'method virtual Interface::~Interface(int)' has some sub-type changes: + implicit parameter 0 of type 'Interface*' has sub-type changes: + pointed to type 'class Interface' changed, as being reported + 'method virtual void Interface::method1()' has some sub-type changes: + implicit parameter 0 of type 'Interface*' has sub-type changes: + pointed to type 'class Interface' changed, as being reported 'method virtual void Interface::method3()' has some sub-type changes: the vtable offset of method virtual void Interface::method3() changed from 3 to 4 note that this is an ABI incompatible change to the vtable of class Interface + implicit parameter 0 of type 'Interface*' has sub-type changes: + pointed to type 'class Interface' changed, as being reported + + [C] 'method virtual Interface::~Interface(int)' has some indirect sub-type changes: + implicit parameter 0 of type 'Interface*' has sub-type changes: + pointed to type 'class Interface' changed, as reported earlier + + [C] 'function Interface* make_interface()' has some indirect sub-type changes: + return type changed: + pointed to type 'class Interface' changed, as reported earlier diff --git a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt index 47250ac7..25e19a28 100644 --- a/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt +++ b/tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt @@ -23,12 +23,24 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C] 'method void std::_Head_base<0ul, STR&&, false>::_Head_base(STR&&)' has some indirect sub-type changes: 'method void std::_Head_base<0ul, STR&&, false>::_Head_base(STR&&) {_ZNSt10_Head_baseILm0EO3STRLb0EEC2IS0_St9true_typeEEOT_}' now becomes 'method void std::_Head_base<0, STR &&, false>::_Head_base(STR&&) {_ZNSt10_Head_baseILm0EO3STRLb0EEC2IS0_St9true_typeEEOT_}' + implicit parameter 0 of type 'std::_Head_base<0ul, STR&&, false>*' changed: + in pointed to type 'struct std::_Head_base<0ul, STR&&, false>': + type name changed from 'std::_Head_base<0ul, STR&&, false>' to 'std::_Head_base<0, STR &&, false>' + type size hasn't changed + 1 data member change: + name of 'std::_Head_base<0ul, STR&&, false>::_M_head_impl' changed to 'std::_Head_base<0, STR &&, false>::_M_head_impl' [C] 'method STR& std::_Head_base<0ul, STR&&, false>::_M_head()' has some indirect sub-type changes: 'method STR& std::_Head_base<0ul, STR&&, false>::_M_head() {_ZNSt10_Head_baseILm0EO3STRLb0EE7_M_headERKS2_}' now becomes 'method STR& std::_Head_base<0, STR &&, false>::_M_head() {_ZNSt10_Head_baseILm0EO3STRLb0EE7_M_headERKS2_}' + parameter 1 of type 'const std::_Head_base<0ul, STR&&, false>&' changed: + in referenced type 'const std::_Head_base<0ul, STR&&, false>': + 'const std::_Head_base<0ul, STR&&, false>' changed to 'const std::_Head_base<0, STR &&, false>' [C] 'method STR& std::_Tuple_impl<0ul, STR&&>::_M_head()' has some indirect sub-type changes: 'method STR& std::_Tuple_impl<0ul, STR&&>::_M_head() {_ZNSt11_Tuple_implILm0EJO3STREE7_M_headERKS2_}' now becomes 'method STR& std::_Tuple_impl<0, STR &&>::_M_head() {_ZNSt11_Tuple_implILm0EJO3STREE7_M_headERKS2_}' + parameter 1 of type 'const std::_Tuple_impl<0ul, STR&&>&' changed: + in referenced type 'const std::_Tuple_impl<0ul, STR&&>': + 'const std::_Tuple_impl<0ul, STR&&>' changed to 'const std::_Tuple_impl<0, STR &&>' [C] 'method void std::_Tuple_impl<0ul, STR&&>::_Tuple_impl(STR&&)' has some indirect sub-type changes: Please note that the symbol of this function is _ZNSt11_Tuple_implILm0EJO3STREEC2IS0_JESt10false_typeEEOT_DpOT0_ @@ -36,6 +48,16 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable linkage names of method void std::_Tuple_impl<0ul, STR&&>::_Tuple_impl(STR&&) changed from '_ZNSt11_Tuple_implILm0EJO3STREEC2IS0_JESt10false_typeEEOT_DpOT0_, _ZNSt11_Tuple_implILm0EJO3STREEC1IS0_JESt10false_typeEEOT_DpOT0_' to '_ZNSt11_Tuple_implILm0EJO3STREEC2IS0_JESt10false_typeEEOT_DpOT0_' 'method void std::_Tuple_impl<0ul, STR&&>::_Tuple_impl(STR&&) {_ZNSt11_Tuple_implILm0EJO3STREEC2IS0_JESt10false_typeEEOT_DpOT0_, _ZNSt11_Tuple_implILm0EJO3STREEC1IS0_JESt10false_typeEEOT_DpOT0_}' now becomes 'method void std::_Tuple_impl<0, STR &&>::_Tuple_impl(STR&&) {_ZNSt11_Tuple_implILm0EJO3STREEC2IS0_JESt10false_typeEEOT_DpOT0_}' + implicit parameter 0 of type 'std::_Tuple_impl<0ul, STR&&>*' changed: + in pointed to type 'struct std::_Tuple_impl<0ul, STR&&>': + type name changed from 'std::_Tuple_impl<0ul, STR&&>' to 'std::_Tuple_impl<0, STR &&>' + type size hasn't changed + 2 base class deletions: + struct std::_Head_base<0ul, STR&&, false> + struct std::_Tuple_impl<1ul> + 2 base class insertions: + struct std::_Head_base<0, STR &&, false> + struct std::_Tuple_impl<1> [C] 'function std::__add_c_ref::type std::__get_helper<0ul, STR&&>(const std::_Tuple_impl<0ul, STR&&>&)' has some indirect sub-type changes: 'function std::__add_c_ref::type std::__get_helper<0ul, STR&&>(const std::_Tuple_impl<0ul, STR&&>&) {_ZSt12__get_helperILm0EO3STRJEENSt11__add_c_refIT0_E4typeERKSt11_Tuple_implIXT_EJS3_DpT1_EE}' now becomes 'function std::__add_c_ref::type std::__get_helper<0, STR &&>(const std::_Tuple_impl<0, STR &&>&) {_ZSt12__get_helperILm0EO3STRJEENSt11__add_c_refIT0_E4typeERKSt11_Tuple_implIXT_EJS3_DpT1_EE}' @@ -65,6 +87,8 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable linkage names of method void std::tuple::tuple(STR&&) changed from '_ZNSt5tupleIJO3STREEC2IJS0_ESt9true_typeEEDpOT_, _ZNSt5tupleIJO3STREEC1IJS0_ESt9true_typeEEDpOT_' to '_ZNSt5tupleIJO3STREEC2IJS0_ESt9true_typeEEDpOT_' 'method void std::tuple::tuple(STR&&) {_ZNSt5tupleIJO3STREEC2IJS0_ESt9true_typeEEDpOT_, _ZNSt5tupleIJO3STREEC1IJS0_ESt9true_typeEEDpOT_}' now becomes 'method void std::tuple::tuple(STR&&) {_ZNSt5tupleIJO3STREEC2IJS0_ESt9true_typeEEDpOT_}' + implicit parameter 0 of type 'std::tuple*' changed: + pointed to type 'class std::tuple' changed, as reported earlier [C] 'function void tpl >(std::tuple)' has some indirect sub-type changes: 'function void tpl >(std::tuple) {_Z3tplISt5tupleIJO3STREEEvT_}' now becomes 'function void tpl >(std::tuple) {_Z3tplISt5tupleIJO3STREEEvT_}' diff --git a/tests/data/test-diff-dwarf/test5-report.txt b/tests/data/test-diff-dwarf/test5-report.txt index 63d7ffa9..6cf7522b 100644 --- a/tests/data/test-diff-dwarf/test5-report.txt +++ b/tests/data/test-diff-dwarf/test5-report.txt @@ -1,12 +1,17 @@ -Functions changes summary: 0 Removed, 1 Changed, 0 Added function +Functions changes summary: 0 Removed, 2 Changed, 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable -1 function with some indirect sub-type change: +2 functions with some indirect sub-type change: - [C] 'function C0 foo()' has some indirect sub-type changes: - return type changed: - entity changed from 'class C0' to compatible type 'typedef c0_type' + [C] 'method C0::C0()' has some indirect sub-type changes: + implicit parameter 0 of type 'C0*' has sub-type changes: + in pointed to type 'class C0': type size hasn't changed 1 data member change: 'int C0::m0' access changed from 'private' to 'public' + [C] 'function C0 foo()' has some indirect sub-type changes: + return type changed: + entity changed from 'class C0' to compatible type 'typedef c0_type' + details were reported earlier + diff --git a/tests/data/test-diff-dwarf/test8-report.txt b/tests/data/test-diff-dwarf/test8-report.txt index 59834a5a..26e0c103 100644 --- a/tests/data/test-diff-dwarf/test8-report.txt +++ b/tests/data/test-diff-dwarf/test8-report.txt @@ -1,21 +1,26 @@ -Functions changes summary: 0 Removed, 1 Changed, 1 Added functions +Functions changes summary: 0 Removed, 3 Changed, 1 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 Added function: [A] 'method B1::B1()' -1 function with some indirect sub-type change: +3 functions with some indirect sub-type change: - [C] 'function void foo(S&)' has some indirect sub-type changes: - parameter 1 of type 'S&' has sub-type changes: - in referenced type 'struct S': + [C] 'method B0::B0()' has some indirect sub-type changes: + implicit parameter 0 of type 'B0*' has sub-type changes: + in pointed to type 'struct B0': + type size hasn't changed + 1 data member change: + 'char B0::m0' access changed from 'public' to 'private' + + [C] 'method S::S()' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + in pointed to type 'struct S': type size changed from 64 to 96 (in bits) 1 base class change: 'struct B0' changed: - type size hasn't changed - 1 data member change: - 'char B0::m0' access changed from 'public' to 'private' + details were reported earlier 1 base class insertion: class B1 1 data member change: @@ -24,3 +29,7 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable type size changed from 32 to 8 (in bits) and offset changed from 32 to 64 (in bits) (by +32 bits), access changed from 'public' to 'private' + [C] 'function void foo(S&)' has some indirect sub-type changes: + parameter 1 of type 'S&' has sub-type changes: + referenced type 'struct S' changed, as reported earlier + diff --git a/tests/data/test-diff-filter/test-PR26309-report-0.txt b/tests/data/test-diff-filter/test-PR26309-report-0.txt new file mode 100644 index 00000000..dec3758f --- /dev/null +++ b/tests/data/test-diff-filter/test-PR26309-report-0.txt @@ -0,0 +1,13 @@ +Leaf changes summary: 1 artifact changed +Changed leaf types summary: 0 leaf type changed +Removed/Changed/Added functions summary: 0 Removed, 1 Changed, 0 Added function +Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable + +1 function with some sub-type change: + + [C] 'function void changed_fun(changed)' at test-PR26309-v1.c:3:1 has some sub-type changes: + parameter 1 of type 'typedef changed' changed: + underlying type 'int' changed: + type name changed from 'int' to 'long int' + type size changed from 32 to 64 (in bits) + diff --git a/tests/data/test-diff-filter/test-PR26309-v0.c b/tests/data/test-diff-filter/test-PR26309-v0.c new file mode 100644 index 00000000..853084b5 --- /dev/null +++ b/tests/data/test-diff-filter/test-PR26309-v0.c @@ -0,0 +1,5 @@ +typedef int changed; + +void changed_fun(changed y) { + (void) y; +} diff --git a/tests/data/test-diff-filter/test-PR26309-v0.o b/tests/data/test-diff-filter/test-PR26309-v0.o new file mode 100644 index 00000000..0e6fd52d Binary files /dev/null and b/tests/data/test-diff-filter/test-PR26309-v0.o differ diff --git a/tests/data/test-diff-filter/test-PR26309-v1.c b/tests/data/test-diff-filter/test-PR26309-v1.c new file mode 100644 index 00000000..5f453a3e --- /dev/null +++ b/tests/data/test-diff-filter/test-PR26309-v1.c @@ -0,0 +1,5 @@ +typedef long changed; + +void changed_fun(changed y) { + (void) y; +} diff --git a/tests/data/test-diff-filter/test-PR26309-v1.o b/tests/data/test-diff-filter/test-PR26309-v1.o new file mode 100644 index 00000000..4b9339a5 Binary files /dev/null and b/tests/data/test-diff-filter/test-PR26309-v1.o differ diff --git a/tests/data/test-diff-filter/test-PR26739-2-report-0.txt b/tests/data/test-diff-filter/test-PR26739-2-report-0.txt new file mode 100644 index 00000000..88f2930b --- /dev/null +++ b/tests/data/test-diff-filter/test-PR26739-2-report-0.txt @@ -0,0 +1,17 @@ +Functions changes summary: 0 Removed, 1 Changed, 0 Added function +Variables changes summary: 0 Removed, 0 Changed, 0 Added variable + +1 function with some indirect sub-type change: + + [C] 'function void f0(A*)' at test-PR26739-2-v1.c:17:1 has some indirect sub-type changes: + parameter 1 of type 'A*' has sub-type changes: + in pointed to type 'struct A' at test-PR26739-2-v1.c:6:1: + type size hasn't changed + 1 data member change: + type of 'const volatile const int A::m[5]' changed: + entity changed from 'const volatile const int[5]' to compatible type 'typedef array_type1' at test-PR26739-2-v1.c:3:1 + array element type 'const volatile const int' changed: + 'const volatile const int' changed to 'const int' + type name changed from 'volatile const int[5]' to 'const int[5]' + type size hasn't changed + diff --git a/tests/data/test-diff-filter/test-PR26739-2-v0.c b/tests/data/test-diff-filter/test-PR26739-2-v0.c new file mode 100644 index 00000000..2db5a861 --- /dev/null +++ b/tests/data/test-diff-filter/test-PR26739-2-v0.c @@ -0,0 +1,33 @@ +const int global[5]; //#0 + +typedef const int array_type1[5]; // #1 +typedef volatile array_type1 array_type2; // #2 + +struct A +{ + // The volatile qualifier here applies to the elements of array in + // declaration #1. So libabigail's IR should edit the IR for this + // this qualified type to make the qualifier apply to the element of + // #1. All types used for array_type1 should be cloned so that they + // are not shared with array_type2. + volatile array_type1 m; +}; + +void +f0 (struct A *a) +{ + (void)a; +} + +void +f1(array_type1 a) +{ + (void) a; +} + +void +f2(array_type2 i) +{ + (void) i; +} + diff --git a/tests/data/test-diff-filter/test-PR26739-2-v0.o b/tests/data/test-diff-filter/test-PR26739-2-v0.o new file mode 100644 index 00000000..2f582169 Binary files /dev/null and b/tests/data/test-diff-filter/test-PR26739-2-v0.o differ diff --git a/tests/data/test-diff-filter/test-PR26739-2-v1.c b/tests/data/test-diff-filter/test-PR26739-2-v1.c new file mode 100644 index 00000000..c0a6101f --- /dev/null +++ b/tests/data/test-diff-filter/test-PR26739-2-v1.c @@ -0,0 +1,33 @@ +const int global[5]; //#0 + +typedef const int array_type1[5]; // #1 +typedef volatile array_type1 array_type2; // #2 + +struct A +{ + // Compared to the previous version of this file, the qualifier has + // been removed below. So abidiff should report a change only for + // the type 'struct A'. Not for array_typ2 declared in #2. If + // abidiff reports a change for array_type2, it means it is making a + // mistake by editing types shared between array_type1 and array_type2. + array_type1 m; +}; + +void +f0 (struct A *a) +{ + (void)a; +} + +void +f1(array_type1 a) +{ + (void) a; +} + +void +f2(array_type2 i) // <-- abidiff should *not* report a change on f2's + // use of array_type2. +{ + (void) i; +} diff --git a/tests/data/test-diff-filter/test-PR26739-2-v1.o b/tests/data/test-diff-filter/test-PR26739-2-v1.o new file mode 100644 index 00000000..7e86f08b Binary files /dev/null and b/tests/data/test-diff-filter/test-PR26739-2-v1.o differ diff --git a/tests/data/test-diff-filter/test-PR26739-report-0.txt b/tests/data/test-diff-filter/test-PR26739-report-0.txt new file mode 100644 index 00000000..9666a8fd --- /dev/null +++ b/tests/data/test-diff-filter/test-PR26739-report-0.txt @@ -0,0 +1,3 @@ +Functions changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added function +Variables changes summary: 0 Removed, 0 Changed, 0 Added variable + diff --git a/tests/data/test-diff-filter/test-PR26739-v0.c b/tests/data/test-diff-filter/test-PR26739-v0.c new file mode 100644 index 00000000..e9148ac4 --- /dev/null +++ b/tests/data/test-diff-filter/test-PR26739-v0.c @@ -0,0 +1,8 @@ +typedef const int immutable[7]; +typedef immutable monster; + +struct A { + monster q; +}; + +void fun(struct A * a) { (void) a; } diff --git a/tests/data/test-diff-filter/test-PR26739-v0.o b/tests/data/test-diff-filter/test-PR26739-v0.o new file mode 100644 index 00000000..5a4ae08f Binary files /dev/null and b/tests/data/test-diff-filter/test-PR26739-v0.o differ diff --git a/tests/data/test-diff-filter/test-PR26739-v1.c b/tests/data/test-diff-filter/test-PR26739-v1.c new file mode 100644 index 00000000..5c31e40c --- /dev/null +++ b/tests/data/test-diff-filter/test-PR26739-v1.c @@ -0,0 +1,12 @@ +typedef int plain[7]; +typedef const plain monster; + +struct A { + monster q; +}; + +void fun(struct A * a) { + (void) a; + // assignment to read-only location + // a->q[0] = 0; +} diff --git a/tests/data/test-diff-filter/test-PR26739-v1.o b/tests/data/test-diff-filter/test-PR26739-v1.o new file mode 100644 index 00000000..99667625 Binary files /dev/null and b/tests/data/test-diff-filter/test-PR26739-v1.o differ diff --git a/tests/data/test-diff-filter/test0-report.txt b/tests/data/test-diff-filter/test0-report.txt index afa87571..ef7518b2 100644 --- a/tests/data/test-diff-filter/test0-report.txt +++ b/tests/data/test-diff-filter/test0-report.txt @@ -1,23 +1,30 @@ -Functions changes summary: 0 Removed, 1 Changed, 1 Added functions +Functions changes summary: 0 Removed, 2 Changed (1 filtered out), 1 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 Added function: [A] 'method int S0::get_member0() const' -1 function with some indirect sub-type change: +2 functions with some indirect sub-type change: - [C] 'function void foo(S0&, S1*)' has some indirect sub-type changes: - parameter 1 of type 'S0&' has sub-type changes: - in referenced type 'class S0': - type size changed from 96 to 128 (in bits) - 1 base class change: - 'class B0S0' changed: - type size changed from 64 to 96 (in bits) - 1 data member insertion: - 'unsigned int B0S0::m2', at offset 32 (in bits) - 1 data member change: - 'char B0S0::m1' offset changed from 32 to 64 (in bits) (by +32 bits) - 1 data member change: - 'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits) + [C] 'method void B0S0::member0() const' has some indirect sub-type changes: + implicit parameter 0 of type 'const B0S0*' has sub-type changes: + in pointed to type 'const B0S0': + in unqualified underlying type 'class B0S0': + type size changed from 64 to 96 (in bits) + 1 data member insertion: + 'unsigned int B0S0::m2', at offset 32 (in bits) + 1 data member change: + 'char B0S0::m1' offset changed from 32 to 64 (in bits) (by +32 bits) + + [C] 'method void S0::member0() const' has some indirect sub-type changes: + implicit parameter 0 of type 'const S0*' has sub-type changes: + in pointed to type 'const S0': + in unqualified underlying type 'class S0': + type size changed from 96 to 128 (in bits) + 1 base class change: + 'class B0S0' changed: + details were reported earlier + 1 data member change: + 'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits) diff --git a/tests/data/test-diff-filter/test01-report.txt b/tests/data/test-diff-filter/test01-report.txt index 73b907e5..b8d18728 100644 --- a/tests/data/test-diff-filter/test01-report.txt +++ b/tests/data/test-diff-filter/test01-report.txt @@ -1,23 +1,35 @@ -Functions changes summary: 0 Removed, 1 Changed, 1 Added functions +Functions changes summary: 0 Removed, 3 Changed, 1 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 Added function: [A] 'method int S0::get_member0() const' -1 function with some indirect sub-type change: +3 functions with some indirect sub-type change: + + [C] 'method void B0S0::member0() const' has some indirect sub-type changes: + implicit parameter 0 of type 'const B0S0*' has sub-type changes: + in pointed to type 'const B0S0': + in unqualified underlying type 'class B0S0': + type size changed from 64 to 96 (in bits) + 1 data member insertion: + 'unsigned int B0S0::m2', at offset 32 (in bits) + 1 data member change: + 'char B0S0::m1' offset changed from 32 to 64 (in bits) (by +32 bits) + + [C] 'method void S0::member0() const' has some indirect sub-type changes: + 'method void S0::member0() const' access changed from 'private' to 'public' + implicit parameter 0 of type 'const S0*' has sub-type changes: + in pointed to type 'const S0': + in unqualified underlying type 'class S0': + type size changed from 96 to 128 (in bits) + 1 base class change: + 'class B0S0' changed: + details were reported earlier + 1 data member change: + 'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits), access changed from 'private' to 'protected' [C] 'function void foo(S0&, S1*)' has some indirect sub-type changes: parameter 1 of type 'S0&' has sub-type changes: - in referenced type 'class S0': - type size changed from 96 to 128 (in bits) - 1 base class change: - 'class B0S0' changed: - type size changed from 64 to 96 (in bits) - 1 data member insertion: - 'unsigned int B0S0::m2', at offset 32 (in bits) - 1 data member change: - 'char B0S0::m1' offset changed from 32 to 64 (in bits) (by +32 bits) - 1 data member change: - 'int S0::m0' offset changed from 64 to 96 (in bits) (by +32 bits), access changed from 'private' to 'protected' + referenced type 'class S0' changed, as reported earlier diff --git a/tests/data/test-diff-filter/test10-report.txt b/tests/data/test-diff-filter/test10-report.txt index 4d08d4bd..35577b07 100644 --- a/tests/data/test-diff-filter/test10-report.txt +++ b/tests/data/test-diff-filter/test10-report.txt @@ -1,4 +1,4 @@ -Functions changes summary: 2 Removed, 1 Changed, 0 Added functions +Functions changes summary: 2 Removed, 1 Changed (2 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 2 Removed functions: @@ -8,9 +8,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 function with some indirect sub-type change: - [C] 'function void foo(S&)' has some indirect sub-type changes: - parameter 1 of type 'S&' has sub-type changes: - in referenced type 'struct S': + [C] 'method int S::mem_fn0()' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + in pointed to type 'struct S': type size changed from 32 to 8 (in bits) 1 data member deletion: 'unsigned int S::m', at offset 0 (in bits) diff --git a/tests/data/test-diff-filter/test13-report.txt b/tests/data/test-diff-filter/test13-report.txt index 17844fa6..edec8076 100644 --- a/tests/data/test-diff-filter/test13-report.txt +++ b/tests/data/test-diff-filter/test13-report.txt @@ -1,4 +1,4 @@ -Functions changes summary: 0 Removed, 1 Changed, 1 Added functions +Functions changes summary: 0 Removed, 1 Changed (2 filtered out), 1 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 Added function: @@ -7,9 +7,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 function with some indirect sub-type change: - [C] 'function void foo(S&)' has some indirect sub-type changes: - parameter 1 of type 'S&' has sub-type changes: - in referenced type 'struct S': + [C] 'method S::S()' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + in pointed to type 'struct S': type size changed from 64 to 96 (in bits) no base class change (1 filtered); 1 base class insertion: diff --git a/tests/data/test-diff-filter/test2-report.txt b/tests/data/test-diff-filter/test2-report.txt index 3e68ab6d..1755df61 100644 --- a/tests/data/test-diff-filter/test2-report.txt +++ b/tests/data/test-diff-filter/test2-report.txt @@ -1,4 +1,4 @@ -Functions changes summary: 0 Removed, 2 Changed, 1 Added functions +Functions changes summary: 0 Removed, 2 Changed (3 filtered out), 1 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 Added function: @@ -7,9 +7,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 2 functions with some indirect sub-type change: - [C] 'function void bar(C1&)' has some indirect sub-type changes: - parameter 1 of type 'C1&' has sub-type changes: - in referenced type 'class C1': + [C] 'method C1::C1()' has some indirect sub-type changes: + implicit parameter 0 of type 'C1*' has sub-type changes: + in pointed to type 'class C1': type size changed from 8 to 64 (in bits) 1 data member insertion: 'int C1::m1', at offset 32 (in bits) diff --git a/tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-0.txt b/tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-0.txt index 5db38b25..cd0c04ba 100644 --- a/tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-0.txt +++ b/tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-0.txt @@ -1,4 +1,4 @@ -Functions changes summary: 0 Removed, 1 Changed (2 filtered out), 0 Added functions +Functions changes summary: 0 Removed, 1 Changed (3 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 function with some indirect sub-type change: diff --git a/tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-1.txt b/tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-1.txt index 95dd372f..e7de99be 100644 --- a/tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-1.txt +++ b/tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-1.txt @@ -1,7 +1,7 @@ -Functions changes summary: 0 Removed, 3 Changed, 0 Added functions +Functions changes summary: 0 Removed, 4 Changed, 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable -3 functions with some indirect sub-type change: +4 functions with some indirect sub-type change: [C] 'function void bar(s*)' has some indirect sub-type changes: parameter 1 of type 's*' has sub-type changes: @@ -16,7 +16,13 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable [C] 'method s::s(const s&)' has some indirect sub-type changes: 'method s::s(const s&)' access changed from 'public' to 'private' + implicit parameter 0 of type 's*' has sub-type changes: + pointed to type 'class s' changed, as reported earlier parameter 1 of type 'const s&' has sub-type changes: in referenced type 'const s': unqualified underlying type 'class s' changed, as reported earlier + [C] 'method s::s()' has some indirect sub-type changes: + implicit parameter 0 of type 's*' has sub-type changes: + pointed to type 'class s' changed, as reported earlier + diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt index d30e8c6a..c8c6e48b 100644 --- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt +++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt @@ -1,4 +1,4 @@ -Functions changes summary: 82 Removed, 6 Changed (14 filtered out), 1081 Added functions +Functions changes summary: 82 Removed, 6 Changed (31 filtered out), 1081 Added functions Variables changes summary: 47 Removed, 1 Changed, 11 Added variables Function symbols changes summary: 7 Removed, 76 Added function symbols not referenced by debug info Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info @@ -1174,6 +1174,124 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen 6 functions with some indirect sub-type change: + [C] 'method void Engine::fini_process(bool)' has some indirect sub-type changes: + implicit parameter 0 of type 'Engine*' has sub-type changes: + in pointed to type 'struct Engine': + type size changed from 2752 to 5504 (in bits) + 1 data member deletion: + 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) + 7 data member insertions: + 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) + 'StreamMap Engine::m_stream_map', at offset 3072 (in bits) + 'mutex_t Engine::m_stream_lock', at offset 3456 (in bits) + 'int Engine::m_num_cores', at offset 3776 (in bits) + 'int Engine::m_num_threads', at offset 3808 (in bits) + 'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits) + 'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits) + 4 data member changes: + type of 'Engine::PtrSet Engine::m_ptr_set' changed: + entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' + type name changed from 'std::set, std::allocator >' to 'PtrDataTable' + type size changed from 384 to 704 (in bits) + 1 data member insertion: + 'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits) + 1 data member change: + type of 'std::set, std::allocator >::_Rep_type std::set, std::allocator >::_M_t' changed: + typedef name changed from std::set, std::allocator >::_Rep_type to PtrDataTable::PtrSet + underlying type 'class std::_Rb_tree, std::less, std::allocator >' changed: + type name changed from 'std::_Rb_tree, std::less, std::allocator >' to 'std::set, std::allocator >' + type size hasn't changed + 1 data member change: + type of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true> std::_Rb_tree, std::less, std::allocator >::_M_impl' changed: + entity changed from 'struct std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to compatible type 'typedef std::set, std::allocator >::_Rep_type' + type name changed from 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to 'std::_Rb_tree, std::less, std::allocator >' + type size hasn't changed + 1 base class deletion: + class std::allocator > + 2 data member deletions: + 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 64 (in bits) + 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 320 (in bits) + 1 data member change: + type of 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed: + type name changed from 'std::less' to 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' + type size changed from 8 to 384 (in bits) + 1 base class deletion: + struct std::binary_function + 1 base class insertion: + class std::allocator > + 3 data member insertions: + 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare', at offset 0 (in bits) + 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 64 (in bits) + 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 320 (in bits) + and name of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed to 'std::_Rb_tree, std::less, std::allocator >::_M_impl' + and name of 'std::_Rb_tree, std::less, std::allocator >::_M_impl' changed to 'std::set, std::allocator >::_M_t' + and name of 'std::set, std::allocator >::_M_t' changed to 'PtrDataTable::list' + 'Engine::SignalMap Engine::m_signal_map' offset changed from 1664 to 2368 (in bits) (by +704 bits) + 'mutex_t Engine::m_signal_lock' offset changed from 2048 to 2752 (in bits) (by +704 bits) + type of 'coifunction* Engine::m_funcs[6]' changed: + type name changed from 'coifunction*[6]' to 'coifunction*[7]' + array type size changed from 384 to 448 + array type subrange 1 changed length from 6 to 7 + and offset changed from 2368 to 5056 (in bits) (by +2688 bits) + + [C] 'method void OffloadDescriptor::cleanup()' has some indirect sub-type changes: + implicit parameter 0 of type 'OffloadDescriptor*' has sub-type changes: + in pointed to type 'struct OffloadDescriptor': + type size changed from 2240 to 2368 (in bits) + 9 data member insertions: + 'bool OffloadDescriptor::m_wait_all_devices', at offset 320 (in bits) + 'uint32_t OffloadDescriptor::m_in_deps_allocated', at offset 1824 (in bits) + 'uint32_t OffloadDescriptor::m_out_deps_allocated', at offset 1952 (in bits) + '_Offload_stream OffloadDescriptor::m_stream', at offset 1984 (in bits) + 'bool OffloadDescriptor::m_initial_need_runfunction', at offset 2248 (in bits) + 'bool OffloadDescriptor::m_out_with_preallocated', at offset 2256 (in bits) + 'bool OffloadDescriptor::m_preallocated_alloc', at offset 2264 (in bits) + 'bool OffloadDescriptor::m_traceback_called', at offset 2272 (in bits) + 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 2304 (in bits) + 8 data member changes (2 filtered): + 'bool OffloadDescriptor::m_is_mandatory' offset changed from 320 to 328 (in bits) (by +8 bits) + 'const bool OffloadDescriptor::m_is_openmp' offset changed from 328 to 336 (in bits) (by +8 bits) + type of 'VarDesc* OffloadDescriptor::m_vars' changed: + in pointed to type 'struct VarDesc': + type size hasn't changed + 1 data member change: + type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed: + type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags' + type size hasn't changed + 1 data member changes (1 filtered): + anonymous data member at offset 0 (in bits) changed from: + struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;} + to: + struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;} + type of 'OffloadDescriptor::VarExtra* OffloadDescriptor::m_vars_extra' changed: + in pointed to type 'struct OffloadDescriptor::VarExtra': + type size changed from 576 to 640 (in bits) + 2 data member insertions: + 'void* OffloadDescriptor::VarExtra::alloc', at offset 320 (in bits) + 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 608 (in bits) + 4 data member changes (3 filtered): + 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 320 to 384 (in bits) (by +64 bits) + type of 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_dst' changed: + in pointed to type 'struct CeanReadRanges': + type size changed from 512 to 576 (in bits) + 1 data member insertion: + 'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bits) + 7 data member changes: + 'void* CeanReadRanges::ptr' offset changed from 0 to 64 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::current_number' offset changed from 64 to 128 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::range_max_number' offset changed from 128 to 192 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::range_size' offset changed from 192 to 256 (in bits) (by +64 bits) + 'int CeanReadRanges::last_noncont_ind' offset changed from 256 to 320 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::init_offset' offset changed from 320 to 384 (in bits) (by +64 bits) + 'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 384 to 448 (in bits) (by +64 bits) + and offset changed from 384 to 448 (in bits) (by +64 bits) + 'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 448 to 512 (in bits) (by +64 bits) + 'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 512 to 576 (in bits) (by +64 bits) + 'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 1984 to 2048 (in bits) (by +64 bits) + 'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 2048 to 2112 (in bits) (by +64 bits) + 'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 2112 to 2176 (in bits) (by +64 bits) + 'bool OffloadDescriptor::m_need_runfunction' offset changed from 2176 to 2240 (in bits) (by +64 bits) + [C] 'method void OffloadDescriptor::report_coi_error(error_types, COIRESULT)' has some indirect sub-type changes: parameter 1 of type 'typedef error_types' changed: underlying type 'enum __anonymous_enum__' changed: @@ -1294,136 +1412,17 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen '__anonymous_enum__::c_report_myorelease' from value '122' to '126' '__anonymous_enum__::c_coipipe_max_number' from value '123' to '133' - [C] 'method bool OffloadDescriptor::setup_descriptors(VarDesc*, VarDesc2*, int, int, void*)' has some indirect sub-type changes: - parameter 1 of type 'VarDesc*' has sub-type changes: - in pointed to type 'struct VarDesc': - type size hasn't changed - 1 data member changes (2 filtered): - type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed: - type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags' - type size hasn't changed - 1 data member changes (1 filtered): - anonymous data member at offset 0 (in bits) changed from: - struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;} - to: - struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;} - [C] 'function void __offload_myoRegisterTables(InitTableEntry*, SharedTableEntry*, FptrTableEntry*)' has some indirect sub-type changes: parameter 1 of type 'InitTableEntry*' changed: in pointed to type 'struct InitTableEntry': entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' - type name changed from 'InitTableEntry' to '__anonymous_struct__2' + type name changed from 'InitTableEntry' to '__anonymous_struct__1' type size hasn't changed 1 data member change: type of 'void ()* InitTableEntry::func' changed: in pointed to type 'function type void ()': parameter 1 of type 'typedef MyoArena' was added - and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' - - [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' has some indirect sub-type changes: - parameter 1 of type 'typedef OFFLOAD' has sub-type changes: - underlying type 'OffloadDescriptor*' changed: - in pointed to type 'struct OffloadDescriptor': - type size changed from 2240 to 2368 (in bits) - 9 data member insertions: - 'bool OffloadDescriptor::m_wait_all_devices', at offset 320 (in bits) - 'uint32_t OffloadDescriptor::m_in_deps_allocated', at offset 1824 (in bits) - 'uint32_t OffloadDescriptor::m_out_deps_allocated', at offset 1952 (in bits) - '_Offload_stream OffloadDescriptor::m_stream', at offset 1984 (in bits) - 'bool OffloadDescriptor::m_initial_need_runfunction', at offset 2248 (in bits) - 'bool OffloadDescriptor::m_out_with_preallocated', at offset 2256 (in bits) - 'bool OffloadDescriptor::m_preallocated_alloc', at offset 2264 (in bits) - 'bool OffloadDescriptor::m_traceback_called', at offset 2272 (in bits) - 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 2304 (in bits) - 8 data member changes (2 filtered): - type of 'Engine& OffloadDescriptor::m_device' changed: - in referenced type 'struct Engine': - type size changed from 2752 to 5504 (in bits) - 1 data member deletion: - 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) - 7 data member insertions: - 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) - 'StreamMap Engine::m_stream_map', at offset 3072 (in bits) - 'mutex_t Engine::m_stream_lock', at offset 3456 (in bits) - 'int Engine::m_num_cores', at offset 3776 (in bits) - 'int Engine::m_num_threads', at offset 3808 (in bits) - 'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits) - 'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits) - 4 data member changes: - type of 'Engine::PtrSet Engine::m_ptr_set' changed: - entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' - type name changed from 'std::set, std::allocator >' to 'PtrDataTable' - type size changed from 384 to 704 (in bits) - 1 data member insertion: - 'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits) - 1 data member change: - type of 'std::set, std::allocator >::_Rep_type std::set, std::allocator >::_M_t' changed: - typedef name changed from std::set, std::allocator >::_Rep_type to PtrDataTable::PtrSet - underlying type 'class std::_Rb_tree, std::less, std::allocator >' changed: - type name changed from 'std::_Rb_tree, std::less, std::allocator >' to 'std::set, std::allocator >' - type size hasn't changed - 1 data member change: - type of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true> std::_Rb_tree, std::less, std::allocator >::_M_impl' changed: - entity changed from 'struct std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to compatible type 'typedef std::set, std::allocator >::_Rep_type' - type name changed from 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to 'std::_Rb_tree, std::less, std::allocator >' - type size hasn't changed - 1 base class deletion: - class std::allocator > - 2 data member deletions: - 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 64 (in bits) - 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 320 (in bits) - 1 data member change: - type of 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed: - type name changed from 'std::less' to 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' - type size changed from 8 to 384 (in bits) - 1 base class deletion: - struct std::binary_function - 1 base class insertion: - class std::allocator > - 3 data member insertions: - 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare', at offset 0 (in bits) - 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 64 (in bits) - 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 320 (in bits) - and name of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed to 'std::_Rb_tree, std::less, std::allocator >::_M_impl' - and name of 'std::_Rb_tree, std::less, std::allocator >::_M_impl' changed to 'std::set, std::allocator >::_M_t' - and name of 'std::set, std::allocator >::_M_t' changed to 'PtrDataTable::list' - 'Engine::SignalMap Engine::m_signal_map' offset changed from 1664 to 2368 (in bits) (by +704 bits) - 'mutex_t Engine::m_signal_lock' offset changed from 2048 to 2752 (in bits) (by +704 bits) - type of 'coifunction* Engine::m_funcs[6]' changed: - type name changed from 'coifunction*[6]' to 'coifunction*[7]' - array type size changed from 384 to 448 - array type subrange 1 changed length from 6 to 7 - and offset changed from 2368 to 5056 (in bits) (by +2688 bits) - 'bool OffloadDescriptor::m_is_mandatory' offset changed from 320 to 328 (in bits) (by +8 bits) - 'const bool OffloadDescriptor::m_is_openmp' offset changed from 328 to 336 (in bits) (by +8 bits) - type of 'OffloadDescriptor::VarExtra* OffloadDescriptor::m_vars_extra' changed: - in pointed to type 'struct OffloadDescriptor::VarExtra': - type size changed from 576 to 640 (in bits) - 2 data member insertions: - 'void* OffloadDescriptor::VarExtra::alloc', at offset 320 (in bits) - 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 608 (in bits) - 4 data member changes (3 filtered): - 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 320 to 384 (in bits) (by +64 bits) - type of 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_dst' changed: - in pointed to type 'struct CeanReadRanges': - type size changed from 512 to 576 (in bits) - 1 data member insertion: - 'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bits) - 7 data member changes: - 'void* CeanReadRanges::ptr' offset changed from 0 to 64 (in bits) (by +64 bits) - 'int64_t CeanReadRanges::current_number' offset changed from 64 to 128 (in bits) (by +64 bits) - 'int64_t CeanReadRanges::range_max_number' offset changed from 128 to 192 (in bits) (by +64 bits) - 'int64_t CeanReadRanges::range_size' offset changed from 192 to 256 (in bits) (by +64 bits) - 'int CeanReadRanges::last_noncont_ind' offset changed from 256 to 320 (in bits) (by +64 bits) - 'int64_t CeanReadRanges::init_offset' offset changed from 320 to 384 (in bits) (by +64 bits) - 'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 384 to 448 (in bits) (by +64 bits) - and offset changed from 384 to 448 (in bits) (by +64 bits) - 'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 448 to 512 (in bits) (by +64 bits) - 'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 512 to 576 (in bits) (by +64 bits) - 'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 1984 to 2048 (in bits) (by +64 bits) - 'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 2048 to 2112 (in bits) (by +64 bits) - 'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 2112 to 2176 (in bits) (by +64 bits) - 'bool OffloadDescriptor::m_need_runfunction' offset changed from 2176 to 2240 (in bits) (by +64 bits) + and name of 'InitTableEntry::func' changed to '__anonymous_struct__1::func' [C] 'function void __offload_register_image(void*)' has some indirect sub-type changes: return type changed: diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt index 800cc678..55b1c0a4 100644 --- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt +++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt @@ -1,4 +1,4 @@ -Functions changes summary: 82 Removed, 6 Changed (14 filtered out), 1081 Added functions +Functions changes summary: 82 Removed, 6 Changed (31 filtered out), 1081 Added functions Variables changes summary: 47 Removed, 1 Changed, 11 Added variables Function symbols changes summary: 7 Removed, 76 Added function symbols not referenced by debug info Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info @@ -1174,6 +1174,124 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen 6 functions with some indirect sub-type change: + [C] 'method void Engine::fini_process(bool)' at offload_engine.h:560:1 has some indirect sub-type changes: + implicit parameter 0 of type 'Engine*' has sub-type changes: + in pointed to type 'struct Engine' at offload_engine.h:395:1: + type size changed from 2752 to 5504 (in bits) + 1 data member deletion: + 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1 + 7 data member insertions: + 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1 + 'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1 + 'mutex_t Engine::m_stream_lock', at offset 3456 (in bits) at offload_engine.h:638:1 + 'int Engine::m_num_cores', at offset 3776 (in bits) at offload_engine.h:639:1 + 'int Engine::m_num_threads', at offset 3808 (in bits) at offload_engine.h:640:1 + 'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits) at offload_engine.h:641:1 + 'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits) at offload_engine.h:644:1 + 4 data member changes: + type of 'Engine::PtrSet Engine::m_ptr_set' changed: + entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1 + type name changed from 'std::set, std::allocator >' to 'PtrDataTable' + type size changed from 384 to 704 (in bits) + 1 data member insertion: + 'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits) at offload_engine.h:204:1 + 1 data member change: + type of 'std::set, std::allocator >::_Rep_type std::set, std::allocator >::_M_t' changed: + typedef name changed from std::set, std::allocator >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1 + underlying type 'class std::_Rb_tree, std::less, std::allocator >' at stl_tree.h:357:1 changed: + type name changed from 'std::_Rb_tree, std::less, std::allocator >' to 'std::set, std::allocator >' + type size hasn't changed + 1 data member change: + type of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true> std::_Rb_tree, std::less, std::allocator >::_M_impl' changed: + entity changed from 'struct std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to compatible type 'typedef std::set, std::allocator >::_Rep_type' at stl_set.h:115:1 + type name changed from 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to 'std::_Rb_tree, std::less, std::allocator >' + type size hasn't changed + 1 base class deletion: + class std::allocator > at allocator.h:95:1 + 2 data member deletions: + 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1 + 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1 + 1 data member change: + type of 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed: + type name changed from 'std::less' to 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' + type size changed from 8 to 384 (in bits) + 1 base class deletion: + struct std::binary_function at stl_function.h:118:1 + 1 base class insertion: + class std::allocator > at allocator.h:95:1 + 3 data member insertions: + 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare', at offset 0 (in bits) at stl_tree.h:592:1 + 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1 + 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1 + and name of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed to 'std::_Rb_tree, std::less, std::allocator >::_M_impl' at stl_tree.h:633:1 + and name of 'std::_Rb_tree, std::less, std::allocator >::_M_impl' changed to 'std::set, std::allocator >::_M_t' at stl_set.h:116:1 + and name of 'std::set, std::allocator >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1 + 'Engine::SignalMap Engine::m_signal_map' offset changed from 1664 to 2368 (in bits) (by +704 bits) + 'mutex_t Engine::m_signal_lock' offset changed from 2048 to 2752 (in bits) (by +704 bits) + type of 'coifunction* Engine::m_funcs[6]' changed: + type name changed from 'coifunction*[6]' to 'coifunction*[7]' + array type size changed from 384 to 448 + array type subrange 1 changed length from 6 to 7 + and offset changed from 2368 to 5056 (in bits) (by +2688 bits) + + [C] 'method void OffloadDescriptor::cleanup()' at offload_host.h:186:1 has some indirect sub-type changes: + implicit parameter 0 of type 'OffloadDescriptor*' has sub-type changes: + in pointed to type 'struct OffloadDescriptor' at offload_host.h:68:1: + type size changed from 2240 to 2368 (in bits) + 9 data member insertions: + 'bool OffloadDescriptor::m_wait_all_devices', at offset 320 (in bits) at offload_host.h:288:1 + 'uint32_t OffloadDescriptor::m_in_deps_allocated', at offset 1824 (in bits) at offload_host.h:326:1 + 'uint32_t OffloadDescriptor::m_out_deps_allocated', at offset 1952 (in bits) at offload_host.h:329:1 + '_Offload_stream OffloadDescriptor::m_stream', at offset 1984 (in bits) at offload_host.h:332:1 + 'bool OffloadDescriptor::m_initial_need_runfunction', at offset 2248 (in bits) at offload_host.h:347:1 + 'bool OffloadDescriptor::m_out_with_preallocated', at offset 2256 (in bits) at offload_host.h:352:1 + 'bool OffloadDescriptor::m_preallocated_alloc', at offset 2264 (in bits) at offload_host.h:357:1 + 'bool OffloadDescriptor::m_traceback_called', at offset 2272 (in bits) at offload_host.h:360:1 + 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 2304 (in bits) at offload_host.h:362:1 + 8 data member changes (2 filtered): + 'bool OffloadDescriptor::m_is_mandatory' offset changed from 320 to 328 (in bits) (by +8 bits) + 'const bool OffloadDescriptor::m_is_openmp' offset changed from 328 to 336 (in bits) (by +8 bits) + type of 'VarDesc* OffloadDescriptor::m_vars' changed: + in pointed to type 'struct VarDesc' at offload_common.h:254:1: + type size hasn't changed + 1 data member change: + type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed: + type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags' + type size hasn't changed + 1 data member changes (1 filtered): + anonymous data member at offset 0 (in bits) changed from: + struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;} + to: + struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;} + type of 'OffloadDescriptor::VarExtra* OffloadDescriptor::m_vars_extra' changed: + in pointed to type 'struct OffloadDescriptor::VarExtra' at offload_host.h:216:1: + type size changed from 576 to 640 (in bits) + 2 data member insertions: + 'void* OffloadDescriptor::VarExtra::alloc', at offset 320 (in bits) at offload_host.h:222:1 + 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 608 (in bits) at offload_host.h:227:1 + 4 data member changes (3 filtered): + 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 320 to 384 (in bits) (by +64 bits) + type of 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_dst' changed: + in pointed to type 'struct CeanReadRanges' at cean_util.h:58:1: + type size changed from 512 to 576 (in bits) + 1 data member insertion: + 'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bits) at cean_util.h:59:1 + 7 data member changes: + 'void* CeanReadRanges::ptr' offset changed from 0 to 64 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::current_number' offset changed from 64 to 128 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::range_max_number' offset changed from 128 to 192 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::range_size' offset changed from 192 to 256 (in bits) (by +64 bits) + 'int CeanReadRanges::last_noncont_ind' offset changed from 256 to 320 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::init_offset' offset changed from 320 to 384 (in bits) (by +64 bits) + 'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 384 to 448 (in bits) (by +64 bits) + and offset changed from 384 to 448 (in bits) (by +64 bits) + 'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 448 to 512 (in bits) (by +64 bits) + 'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 512 to 576 (in bits) (by +64 bits) + 'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 1984 to 2048 (in bits) (by +64 bits) + 'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 2048 to 2112 (in bits) (by +64 bits) + 'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 2112 to 2176 (in bits) (by +64 bits) + 'bool OffloadDescriptor::m_need_runfunction' offset changed from 2176 to 2240 (in bits) (by +64 bits) + [C] 'method void OffloadDescriptor::report_coi_error(error_types, COIRESULT)' at offload_host.h:206:1 has some indirect sub-type changes: parameter 1 of type 'typedef error_types' changed: underlying type 'enum __anonymous_enum__' at liboffload_error_codes.h:38:1 changed: @@ -1294,136 +1412,17 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen '__anonymous_enum__::c_report_myorelease' from value '122' to '126' at liboffload_error_codes.h:38:1 '__anonymous_enum__::c_coipipe_max_number' from value '123' to '133' at liboffload_error_codes.h:38:1 - [C] 'method bool OffloadDescriptor::setup_descriptors(VarDesc*, VarDesc2*, int, int, void*)' at offload_host.h:157:1 has some indirect sub-type changes: - parameter 1 of type 'VarDesc*' has sub-type changes: - in pointed to type 'struct VarDesc' at offload_common.h:254:1: - type size hasn't changed - 1 data member changes (2 filtered): - type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed: - type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags' - type size hasn't changed - 1 data member changes (1 filtered): - anonymous data member at offset 0 (in bits) changed from: - struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;} - to: - struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;} - [C] 'function void __offload_myoRegisterTables(InitTableEntry*, SharedTableEntry*, FptrTableEntry*)' at offload_myo_host.cpp:691:1 has some indirect sub-type changes: parameter 1 of type 'InitTableEntry*' changed: in pointed to type 'struct InitTableEntry' at offload_table.h:296:1: entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1 - type name changed from 'InitTableEntry' to '__anonymous_struct__2' + type name changed from 'InitTableEntry' to '__anonymous_struct__1' type size hasn't changed 1 data member change: type of 'void ()* InitTableEntry::func' changed: in pointed to type 'function type void ()': parameter 1 of type 'typedef MyoArena' was added - and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' at offload_table.h:295:1 - - [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' at compiler_if_host.cpp:456:1 has some indirect sub-type changes: - parameter 1 of type 'typedef OFFLOAD' has sub-type changes: - underlying type 'OffloadDescriptor*' changed: - in pointed to type 'struct OffloadDescriptor' at offload_host.h:68:1: - type size changed from 2240 to 2368 (in bits) - 9 data member insertions: - 'bool OffloadDescriptor::m_wait_all_devices', at offset 320 (in bits) at offload_host.h:288:1 - 'uint32_t OffloadDescriptor::m_in_deps_allocated', at offset 1824 (in bits) at offload_host.h:326:1 - 'uint32_t OffloadDescriptor::m_out_deps_allocated', at offset 1952 (in bits) at offload_host.h:329:1 - '_Offload_stream OffloadDescriptor::m_stream', at offset 1984 (in bits) at offload_host.h:332:1 - 'bool OffloadDescriptor::m_initial_need_runfunction', at offset 2248 (in bits) at offload_host.h:347:1 - 'bool OffloadDescriptor::m_out_with_preallocated', at offset 2256 (in bits) at offload_host.h:352:1 - 'bool OffloadDescriptor::m_preallocated_alloc', at offset 2264 (in bits) at offload_host.h:357:1 - 'bool OffloadDescriptor::m_traceback_called', at offset 2272 (in bits) at offload_host.h:360:1 - 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 2304 (in bits) at offload_host.h:362:1 - 8 data member changes (2 filtered): - type of 'Engine& OffloadDescriptor::m_device' changed: - in referenced type 'struct Engine' at offload_engine.h:395:1: - type size changed from 2752 to 5504 (in bits) - 1 data member deletion: - 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) at offload_engine.h:474:1 - 7 data member insertions: - 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) at offload_engine.h:630:1 - 'StreamMap Engine::m_stream_map', at offset 3072 (in bits) at offload_engine.h:637:1 - 'mutex_t Engine::m_stream_lock', at offset 3456 (in bits) at offload_engine.h:638:1 - 'int Engine::m_num_cores', at offset 3776 (in bits) at offload_engine.h:639:1 - 'int Engine::m_num_threads', at offset 3808 (in bits) at offload_engine.h:640:1 - 'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits) at offload_engine.h:641:1 - 'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits) at offload_engine.h:644:1 - 4 data member changes: - type of 'Engine::PtrSet Engine::m_ptr_set' changed: - entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1 - type name changed from 'std::set, std::allocator >' to 'PtrDataTable' - type size changed from 384 to 704 (in bits) - 1 data member insertion: - 'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits) at offload_engine.h:204:1 - 1 data member change: - type of 'std::set, std::allocator >::_Rep_type std::set, std::allocator >::_M_t' changed: - typedef name changed from std::set, std::allocator >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1 - underlying type 'class std::_Rb_tree, std::less, std::allocator >' at stl_tree.h:357:1 changed: - type name changed from 'std::_Rb_tree, std::less, std::allocator >' to 'std::set, std::allocator >' - type size hasn't changed - 1 data member change: - type of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true> std::_Rb_tree, std::less, std::allocator >::_M_impl' changed: - entity changed from 'struct std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to compatible type 'typedef std::set, std::allocator >::_Rep_type' at stl_set.h:115:1 - type name changed from 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to 'std::_Rb_tree, std::less, std::allocator >' - type size hasn't changed - 1 base class deletion: - class std::allocator > at allocator.h:95:1 - 2 data member deletions: - 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1 - 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1 - 1 data member change: - type of 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed: - type name changed from 'std::less' to 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' - type size changed from 8 to 384 (in bits) - 1 base class deletion: - struct std::binary_function at stl_function.h:118:1 - 1 base class insertion: - class std::allocator > at allocator.h:95:1 - 3 data member insertions: - 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare', at offset 0 (in bits) at stl_tree.h:592:1 - 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 64 (in bits) at stl_tree.h:593:1 - 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 320 (in bits) at stl_tree.h:594:1 - and name of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed to 'std::_Rb_tree, std::less, std::allocator >::_M_impl' at stl_tree.h:633:1 - and name of 'std::_Rb_tree, std::less, std::allocator >::_M_impl' changed to 'std::set, std::allocator >::_M_t' at stl_set.h:116:1 - and name of 'std::set, std::allocator >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1 - 'Engine::SignalMap Engine::m_signal_map' offset changed from 1664 to 2368 (in bits) (by +704 bits) - 'mutex_t Engine::m_signal_lock' offset changed from 2048 to 2752 (in bits) (by +704 bits) - type of 'coifunction* Engine::m_funcs[6]' changed: - type name changed from 'coifunction*[6]' to 'coifunction*[7]' - array type size changed from 384 to 448 - array type subrange 1 changed length from 6 to 7 - and offset changed from 2368 to 5056 (in bits) (by +2688 bits) - 'bool OffloadDescriptor::m_is_mandatory' offset changed from 320 to 328 (in bits) (by +8 bits) - 'const bool OffloadDescriptor::m_is_openmp' offset changed from 328 to 336 (in bits) (by +8 bits) - type of 'OffloadDescriptor::VarExtra* OffloadDescriptor::m_vars_extra' changed: - in pointed to type 'struct OffloadDescriptor::VarExtra' at offload_host.h:216:1: - type size changed from 576 to 640 (in bits) - 2 data member insertions: - 'void* OffloadDescriptor::VarExtra::alloc', at offset 320 (in bits) at offload_host.h:222:1 - 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 608 (in bits) at offload_host.h:227:1 - 4 data member changes (3 filtered): - 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 320 to 384 (in bits) (by +64 bits) - type of 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_dst' changed: - in pointed to type 'struct CeanReadRanges' at cean_util.h:58:1: - type size changed from 512 to 576 (in bits) - 1 data member insertion: - 'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bits) at cean_util.h:59:1 - 7 data member changes: - 'void* CeanReadRanges::ptr' offset changed from 0 to 64 (in bits) (by +64 bits) - 'int64_t CeanReadRanges::current_number' offset changed from 64 to 128 (in bits) (by +64 bits) - 'int64_t CeanReadRanges::range_max_number' offset changed from 128 to 192 (in bits) (by +64 bits) - 'int64_t CeanReadRanges::range_size' offset changed from 192 to 256 (in bits) (by +64 bits) - 'int CeanReadRanges::last_noncont_ind' offset changed from 256 to 320 (in bits) (by +64 bits) - 'int64_t CeanReadRanges::init_offset' offset changed from 320 to 384 (in bits) (by +64 bits) - 'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 384 to 448 (in bits) (by +64 bits) - and offset changed from 384 to 448 (in bits) (by +64 bits) - 'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 448 to 512 (in bits) (by +64 bits) - 'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 512 to 576 (in bits) (by +64 bits) - 'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 1984 to 2048 (in bits) (by +64 bits) - 'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 2048 to 2112 (in bits) (by +64 bits) - 'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 2112 to 2176 (in bits) (by +64 bits) - 'bool OffloadDescriptor::m_need_runfunction' offset changed from 2176 to 2240 (in bits) (by +64 bits) + and name of 'InitTableEntry::func' changed to '__anonymous_struct__1::func' at offload_table.h:295:1 [C] 'function void __offload_register_image(void*)' at offload_host.cpp:5531:1 has some indirect sub-type changes: return type changed: diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt index e7bfbe26..4b74dedd 100644 --- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt +++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt @@ -1,4 +1,4 @@ -Functions changes summary: 82 Removed, 6 Changed (14 filtered out), 1081 Added functions +Functions changes summary: 82 Removed, 6 Changed (31 filtered out), 1081 Added functions Variables changes summary: 47 Removed, 1 Changed, 11 Added variables Function symbols changes summary: 7 Removed, 76 Added function symbols not referenced by debug info Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info @@ -1174,6 +1174,124 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen 6 functions with some indirect sub-type change: + [C] 'method void Engine::fini_process(bool)' at offload_engine.h:560:1 has some indirect sub-type changes: + implicit parameter 0 of type 'Engine*' has sub-type changes: + in pointed to type 'struct Engine' at offload_engine.h:395:1: + type size changed from 0x158 to 0x2b0 (in bytes) + 1 data member deletion: + 'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1 + 7 data member insertions: + 'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1 + 'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1 + 'mutex_t Engine::m_stream_lock', at offset 0x1b0 (in bytes) at offload_engine.h:638:1 + 'int Engine::m_num_cores', at offset 0x1d8 (in bytes) at offload_engine.h:639:1 + 'int Engine::m_num_threads', at offset 0x1dc (in bytes) at offload_engine.h:640:1 + 'std::bitset<1024ul> Engine::m_cpus', at offset 0x1e0 (in bytes) at offload_engine.h:641:1 + 'DynLibList Engine::m_dyn_libs', at offset 0x260 (in bytes) at offload_engine.h:644:1 + 4 data member changes: + type of 'Engine::PtrSet Engine::m_ptr_set' changed: + entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1 + type name changed from 'std::set, std::allocator >' to 'PtrDataTable' + type size changed from 0x30 to 0x58 (in bytes) + 1 data member insertion: + 'mutex_t PtrDataTable::m_ptr_lock', at offset 0x30 (in bytes) at offload_engine.h:204:1 + 1 data member change: + type of 'std::set, std::allocator >::_Rep_type std::set, std::allocator >::_M_t' changed: + typedef name changed from std::set, std::allocator >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1 + underlying type 'class std::_Rb_tree, std::less, std::allocator >' at stl_tree.h:357:1 changed: + type name changed from 'std::_Rb_tree, std::less, std::allocator >' to 'std::set, std::allocator >' + type size hasn't changed + 1 data member change: + type of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true> std::_Rb_tree, std::less, std::allocator >::_M_impl' changed: + entity changed from 'struct std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to compatible type 'typedef std::set, std::allocator >::_Rep_type' at stl_set.h:115:1 + type name changed from 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to 'std::_Rb_tree, std::less, std::allocator >' + type size hasn't changed + 1 base class deletion: + class std::allocator > at allocator.h:95:1 + 2 data member deletions: + 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1 + 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1 + 1 data member change: + type of 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed: + type name changed from 'std::less' to 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' + type size changed from 0x1 to 0x30 (in bytes) + 1 base class deletion: + struct std::binary_function at stl_function.h:118:1 + 1 base class insertion: + class std::allocator > at allocator.h:95:1 + 3 data member insertions: + 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare', at offset 0 (in bytes) at stl_tree.h:592:1 + 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1 + 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1 + and name of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed to 'std::_Rb_tree, std::less, std::allocator >::_M_impl' at stl_tree.h:633:1 + and name of 'std::_Rb_tree, std::less, std::allocator >::_M_impl' changed to 'std::set, std::allocator >::_M_t' at stl_set.h:116:1 + and name of 'std::set, std::allocator >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1 + 'Engine::SignalMap Engine::m_signal_map' offset changed from 0xd0 to 0x128 (in bytes) (by +0x58 bytes) + 'mutex_t Engine::m_signal_lock' offset changed from 0x100 to 0x158 (in bytes) (by +0x58 bytes) + type of 'coifunction* Engine::m_funcs[6]' changed: + type name changed from 'coifunction*[6]' to 'coifunction*[7]' + array type size changed from 0x180 to 0x1c0 + array type subrange 1 changed length from 6 to 7 + and offset changed from 0x128 to 0x278 (in bytes) (by +0x150 bytes) + + [C] 'method void OffloadDescriptor::cleanup()' at offload_host.h:186:1 has some indirect sub-type changes: + implicit parameter 0 of type 'OffloadDescriptor*' has sub-type changes: + in pointed to type 'struct OffloadDescriptor' at offload_host.h:68:1: + type size changed from 0x118 to 0x128 (in bytes) + 9 data member insertions: + 'bool OffloadDescriptor::m_wait_all_devices', at offset 0x28 (in bytes) at offload_host.h:288:1 + 'uint32_t OffloadDescriptor::m_in_deps_allocated', at offset 0xe4 (in bytes) at offload_host.h:326:1 + 'uint32_t OffloadDescriptor::m_out_deps_allocated', at offset 0xf4 (in bytes) at offload_host.h:329:1 + '_Offload_stream OffloadDescriptor::m_stream', at offset 0xf8 (in bytes) at offload_host.h:332:1 + 'bool OffloadDescriptor::m_initial_need_runfunction', at offset 0x119 (in bytes) at offload_host.h:347:1 + 'bool OffloadDescriptor::m_out_with_preallocated', at offset 0x11a (in bytes) at offload_host.h:352:1 + 'bool OffloadDescriptor::m_preallocated_alloc', at offset 0x11b (in bytes) at offload_host.h:357:1 + 'bool OffloadDescriptor::m_traceback_called', at offset 0x11c (in bytes) at offload_host.h:360:1 + 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 0x120 (in bytes) at offload_host.h:362:1 + 8 data member changes (2 filtered): + 'bool OffloadDescriptor::m_is_mandatory' offset changed from 0x28 to 0x29 (in bytes) (by +0x1 bytes) + 'const bool OffloadDescriptor::m_is_openmp' offset changed from 0x29 to 0x2a (in bytes) (by +0x1 bytes) + type of 'VarDesc* OffloadDescriptor::m_vars' changed: + in pointed to type 'struct VarDesc' at offload_common.h:254:1: + type size hasn't changed + 1 data member change: + type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed: + type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags' + type size hasn't changed + 1 data member changes (1 filtered): + anonymous data member at offset 0 (in bytes) changed from: + struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;} + to: + struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;} + type of 'OffloadDescriptor::VarExtra* OffloadDescriptor::m_vars_extra' changed: + in pointed to type 'struct OffloadDescriptor::VarExtra' at offload_host.h:216:1: + type size changed from 0x48 to 0x50 (in bytes) + 2 data member insertions: + 'void* OffloadDescriptor::VarExtra::alloc', at offset 0x28 (in bytes) at offload_host.h:222:1 + 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 0x4c (in bytes) at offload_host.h:227:1 + 4 data member changes (3 filtered): + 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes) + type of 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_dst' changed: + in pointed to type 'struct CeanReadRanges' at cean_util.h:58:1: + type size changed from 0x40 to 0x48 (in bytes) + 1 data member insertion: + 'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bytes) at cean_util.h:59:1 + 7 data member changes: + 'void* CeanReadRanges::ptr' offset changed from 0 to 0x8 (in bytes) (by +0x8 bytes) + 'int64_t CeanReadRanges::current_number' offset changed from 0x8 to 0x10 (in bytes) (by +0x8 bytes) + 'int64_t CeanReadRanges::range_max_number' offset changed from 0x10 to 0x18 (in bytes) (by +0x8 bytes) + 'int64_t CeanReadRanges::range_size' offset changed from 0x18 to 0x20 (in bytes) (by +0x8 bytes) + 'int CeanReadRanges::last_noncont_ind' offset changed from 0x20 to 0x28 (in bytes) (by +0x8 bytes) + 'int64_t CeanReadRanges::init_offset' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes) + 'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes) + and offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes) + 'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 0x38 to 0x40 (in bytes) (by +0x8 bytes) + 'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 0x40 to 0x48 (in bytes) (by +0x8 bytes) + 'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 0xf8 to 0x100 (in bytes) (by +0x8 bytes) + 'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 0x100 to 0x108 (in bytes) (by +0x8 bytes) + 'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 0x108 to 0x110 (in bytes) (by +0x8 bytes) + 'bool OffloadDescriptor::m_need_runfunction' offset changed from 0x110 to 0x118 (in bytes) (by +0x8 bytes) + [C] 'method void OffloadDescriptor::report_coi_error(error_types, COIRESULT)' at offload_host.h:206:1 has some indirect sub-type changes: parameter 1 of type 'typedef error_types' changed: underlying type 'enum __anonymous_enum__' at liboffload_error_codes.h:38:1 changed: @@ -1294,136 +1412,17 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen '__anonymous_enum__::c_report_myorelease' from value '122' to '126' at liboffload_error_codes.h:38:1 '__anonymous_enum__::c_coipipe_max_number' from value '123' to '133' at liboffload_error_codes.h:38:1 - [C] 'method bool OffloadDescriptor::setup_descriptors(VarDesc*, VarDesc2*, int, int, void*)' at offload_host.h:157:1 has some indirect sub-type changes: - parameter 1 of type 'VarDesc*' has sub-type changes: - in pointed to type 'struct VarDesc' at offload_common.h:254:1: - type size hasn't changed - 1 data member changes (2 filtered): - type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed: - type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags' - type size hasn't changed - 1 data member changes (1 filtered): - anonymous data member at offset 0 (in bytes) changed from: - struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;} - to: - struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;} - [C] 'function void __offload_myoRegisterTables(InitTableEntry*, SharedTableEntry*, FptrTableEntry*)' at offload_myo_host.cpp:691:1 has some indirect sub-type changes: parameter 1 of type 'InitTableEntry*' changed: in pointed to type 'struct InitTableEntry' at offload_table.h:296:1: entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' at offload_table.h:296:1 - type name changed from 'InitTableEntry' to '__anonymous_struct__2' + type name changed from 'InitTableEntry' to '__anonymous_struct__1' type size hasn't changed 1 data member change: type of 'void ()* InitTableEntry::func' changed: in pointed to type 'function type void ()': parameter 1 of type 'typedef MyoArena' was added - and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' at offload_table.h:295:1 - - [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' at compiler_if_host.cpp:456:1 has some indirect sub-type changes: - parameter 1 of type 'typedef OFFLOAD' has sub-type changes: - underlying type 'OffloadDescriptor*' changed: - in pointed to type 'struct OffloadDescriptor' at offload_host.h:68:1: - type size changed from 0x118 to 0x128 (in bytes) - 9 data member insertions: - 'bool OffloadDescriptor::m_wait_all_devices', at offset 0x28 (in bytes) at offload_host.h:288:1 - 'uint32_t OffloadDescriptor::m_in_deps_allocated', at offset 0xe4 (in bytes) at offload_host.h:326:1 - 'uint32_t OffloadDescriptor::m_out_deps_allocated', at offset 0xf4 (in bytes) at offload_host.h:329:1 - '_Offload_stream OffloadDescriptor::m_stream', at offset 0xf8 (in bytes) at offload_host.h:332:1 - 'bool OffloadDescriptor::m_initial_need_runfunction', at offset 0x119 (in bytes) at offload_host.h:347:1 - 'bool OffloadDescriptor::m_out_with_preallocated', at offset 0x11a (in bytes) at offload_host.h:352:1 - 'bool OffloadDescriptor::m_preallocated_alloc', at offset 0x11b (in bytes) at offload_host.h:357:1 - 'bool OffloadDescriptor::m_traceback_called', at offset 0x11c (in bytes) at offload_host.h:360:1 - 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 0x120 (in bytes) at offload_host.h:362:1 - 8 data member changes (2 filtered): - type of 'Engine& OffloadDescriptor::m_device' changed: - in referenced type 'struct Engine' at offload_engine.h:395:1: - type size changed from 0x158 to 0x2b0 (in bytes) - 1 data member deletion: - 'mutex_t Engine::m_ptr_lock', at offset 0xa8 (in bytes) at offload_engine.h:474:1 - 7 data member insertions: - 'PtrDataTable Engine::m_targetptr_set', at offset 0xd0 (in bytes) at offload_engine.h:630:1 - 'StreamMap Engine::m_stream_map', at offset 0x180 (in bytes) at offload_engine.h:637:1 - 'mutex_t Engine::m_stream_lock', at offset 0x1b0 (in bytes) at offload_engine.h:638:1 - 'int Engine::m_num_cores', at offset 0x1d8 (in bytes) at offload_engine.h:639:1 - 'int Engine::m_num_threads', at offset 0x1dc (in bytes) at offload_engine.h:640:1 - 'std::bitset<1024ul> Engine::m_cpus', at offset 0x1e0 (in bytes) at offload_engine.h:641:1 - 'DynLibList Engine::m_dyn_libs', at offset 0x260 (in bytes) at offload_engine.h:644:1 - 4 data member changes: - type of 'Engine::PtrSet Engine::m_ptr_set' changed: - entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' at offload_engine.h:163:1 - type name changed from 'std::set, std::allocator >' to 'PtrDataTable' - type size changed from 0x30 to 0x58 (in bytes) - 1 data member insertion: - 'mutex_t PtrDataTable::m_ptr_lock', at offset 0x30 (in bytes) at offload_engine.h:204:1 - 1 data member change: - type of 'std::set, std::allocator >::_Rep_type std::set, std::allocator >::_M_t' changed: - typedef name changed from std::set, std::allocator >::_Rep_type to PtrDataTable::PtrSet at offload_engine.h:165:1 - underlying type 'class std::_Rb_tree, std::less, std::allocator >' at stl_tree.h:357:1 changed: - type name changed from 'std::_Rb_tree, std::less, std::allocator >' to 'std::set, std::allocator >' - type size hasn't changed - 1 data member change: - type of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true> std::_Rb_tree, std::less, std::allocator >::_M_impl' changed: - entity changed from 'struct std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to compatible type 'typedef std::set, std::allocator >::_Rep_type' at stl_set.h:115:1 - type name changed from 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to 'std::_Rb_tree, std::less, std::allocator >' - type size hasn't changed - 1 base class deletion: - class std::allocator > at allocator.h:95:1 - 2 data member deletions: - 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1 - 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1 - 1 data member change: - type of 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed: - type name changed from 'std::less' to 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' - type size changed from 0x1 to 0x30 (in bytes) - 1 base class deletion: - struct std::binary_function at stl_function.h:118:1 - 1 base class insertion: - class std::allocator > at allocator.h:95:1 - 3 data member insertions: - 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare', at offset 0 (in bytes) at stl_tree.h:592:1 - 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 0x8 (in bytes) at stl_tree.h:593:1 - 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 0x28 (in bytes) at stl_tree.h:594:1 - and name of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed to 'std::_Rb_tree, std::less, std::allocator >::_M_impl' at stl_tree.h:633:1 - and name of 'std::_Rb_tree, std::less, std::allocator >::_M_impl' changed to 'std::set, std::allocator >::_M_t' at stl_set.h:116:1 - and name of 'std::set, std::allocator >::_M_t' changed to 'PtrDataTable::list' at offload_engine.h:203:1 - 'Engine::SignalMap Engine::m_signal_map' offset changed from 0xd0 to 0x128 (in bytes) (by +0x58 bytes) - 'mutex_t Engine::m_signal_lock' offset changed from 0x100 to 0x158 (in bytes) (by +0x58 bytes) - type of 'coifunction* Engine::m_funcs[6]' changed: - type name changed from 'coifunction*[6]' to 'coifunction*[7]' - array type size changed from 0x180 to 0x1c0 - array type subrange 1 changed length from 6 to 7 - and offset changed from 0x128 to 0x278 (in bytes) (by +0x150 bytes) - 'bool OffloadDescriptor::m_is_mandatory' offset changed from 0x28 to 0x29 (in bytes) (by +0x1 bytes) - 'const bool OffloadDescriptor::m_is_openmp' offset changed from 0x29 to 0x2a (in bytes) (by +0x1 bytes) - type of 'OffloadDescriptor::VarExtra* OffloadDescriptor::m_vars_extra' changed: - in pointed to type 'struct OffloadDescriptor::VarExtra' at offload_host.h:216:1: - type size changed from 0x48 to 0x50 (in bytes) - 2 data member insertions: - 'void* OffloadDescriptor::VarExtra::alloc', at offset 0x28 (in bytes) at offload_host.h:222:1 - 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 0x4c (in bytes) at offload_host.h:227:1 - 4 data member changes (3 filtered): - 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes) - type of 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_dst' changed: - in pointed to type 'struct CeanReadRanges' at cean_util.h:58:1: - type size changed from 0x40 to 0x48 (in bytes) - 1 data member insertion: - 'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bytes) at cean_util.h:59:1 - 7 data member changes: - 'void* CeanReadRanges::ptr' offset changed from 0 to 0x8 (in bytes) (by +0x8 bytes) - 'int64_t CeanReadRanges::current_number' offset changed from 0x8 to 0x10 (in bytes) (by +0x8 bytes) - 'int64_t CeanReadRanges::range_max_number' offset changed from 0x10 to 0x18 (in bytes) (by +0x8 bytes) - 'int64_t CeanReadRanges::range_size' offset changed from 0x18 to 0x20 (in bytes) (by +0x8 bytes) - 'int CeanReadRanges::last_noncont_ind' offset changed from 0x20 to 0x28 (in bytes) (by +0x8 bytes) - 'int64_t CeanReadRanges::init_offset' offset changed from 0x28 to 0x30 (in bytes) (by +0x8 bytes) - 'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes) - and offset changed from 0x30 to 0x38 (in bytes) (by +0x8 bytes) - 'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 0x38 to 0x40 (in bytes) (by +0x8 bytes) - 'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 0x40 to 0x48 (in bytes) (by +0x8 bytes) - 'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 0xf8 to 0x100 (in bytes) (by +0x8 bytes) - 'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 0x100 to 0x108 (in bytes) (by +0x8 bytes) - 'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 0x108 to 0x110 (in bytes) (by +0x8 bytes) - 'bool OffloadDescriptor::m_need_runfunction' offset changed from 0x110 to 0x118 (in bytes) (by +0x8 bytes) + and name of 'InitTableEntry::func' changed to '__anonymous_struct__1::func' at offload_table.h:295:1 [C] 'function void __offload_register_image(void*)' at offload_host.cpp:5531:1 has some indirect sub-type changes: return type changed: diff --git a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt index 28feddff..e0e9e3d3 100644 --- a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt +++ b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt @@ -1,4 +1,4 @@ -Functions changes summary: 0 Removed, 2 Changed (63 filtered out), 13 Added functions +Functions changes summary: 0 Removed, 5 Changed (179 filtered out), 13 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable Function symbols changes summary: 0 Removed, 0 Added function symbol not referenced by debug info Variable symbols changes summary: 0 Removed, 6 Added variable symbols not referenced by debug info @@ -25,7 +25,7 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere [A] 'function std::unexpected_handler std::get_unexpected()' [A] 'method std::regex_error::regex_error(std::regex_constants::error_type)' -2 functions with some indirect sub-type change: +5 functions with some indirect sub-type change: [C] 'function __cxxabiv1::__cxa_dependent_exception* __cxxabiv1::__cxa_allocate_dependent_exception()' has some indirect sub-type changes: return type changed: @@ -41,12 +41,71 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere '__cxxabiv1::__cxa_exception* __cxxabiv1::__cxa_dependent_exception::nextPropagatingException' offset changed from 160 to 192 (in bits) (by +32 bits) 'int __cxxabiv1::__cxa_dependent_exception::propagationCount' offset changed from 192 to 224 (in bits) (by +32 bits) + [C] 'method virtual std::__future_base::_Async_state_common::~_Async_state_common(int)' has some indirect sub-type changes: + implicit parameter 0 of type 'std::__future_base::_Async_state_common*' has sub-type changes: + in pointed to type 'class std::__future_base::_Async_state_common': + type size hasn't changed + 1 base class change: + 'class std::__future_base::_State_base' changed: + type size hasn't changed + 1 member function changes (3 filtered): + 'method virtual std::__future_base::_State_base* std::__future_base::_State_base::_M_run_deferred()' has some sub-type changes: + return type changed: + entity changed from 'std::__future_base::_State_base*' to 'void' + type size changed from 32 to 0 (in bits) + 1 data member change: + type of 'std::__future_base::_State_base::_Ptr_type std::__future_base::_State_base::_M_result' changed: + underlying type 'typedef std::__future_base::_Ptr' changed: + underlying type 'class std::unique_ptr, std::__future_base::_Result_base::_Deleter>' changed: + type name changed from 'std::unique_ptr, std::__future_base::_Result_base::_Deleter>' to 'std::unique_ptr' + type size hasn't changed + 1 data member change: + type of 'std::unique_ptr, std::__future_base::_Result_base::_Deleter>::__tuple_type std::unique_ptr, std::__future_base::_Result_base::_Deleter>::_M_t' changed: + typedef name changed from std::unique_ptr, std::__future_base::_Result_base::_Deleter>::__tuple_type to std::unique_ptr::__tuple_type + underlying type 'class std::tuple*, std::__future_base::_Result_base::_Deleter>' changed: + type name changed from 'std::tuple*, std::__future_base::_Result_base::_Deleter>' to 'std::tuple' + type size hasn't changed + 1 base class deletion: + struct std::_Tuple_impl<0u, std::__future_base::_Result*, std::__future_base::_Result_base::_Deleter> + 1 base class insertion: + struct std::_Tuple_impl<0u, std::__future_base::_Result_base*, std::__future_base::_Result_base::_Deleter> + and name of 'std::unique_ptr, std::__future_base::_Result_base::_Deleter>::_M_t' changed to 'std::unique_ptr::_M_t' + no member function changes (4 filtered); + [C] 'function void std::__throw_regex_error(std::regex_constants::error_type)' has some indirect sub-type changes: parameter 1 of type 'enum std::regex_constants::error_type' has sub-type changes: type size hasn't changed 1 enumerator deletion: 'std::regex_constants::error_type::_S_error_last' value '13' + [C] 'method void std::basic_filebuf >::_M_allocate_internal_buffer()' has some indirect sub-type changes: + implicit parameter 0 of type 'std::basic_filebuf >*' has sub-type changes: + in pointed to type 'class std::basic_filebuf >': + type size hasn't changed + no member function changes (14 filtered); + 1 data member change: + type of 'const std::basic_filebuf >::__codecvt_type* std::basic_filebuf >::_M_codecvt' changed: + in pointed to type 'const std::basic_filebuf >::__codecvt_type': + in unqualified underlying type 'typedef std::basic_filebuf >::__codecvt_type': + underlying type 'class std::codecvt' changed: + type size hasn't changed + no base class change (1 filtered); + 2 member function insertions: + 'method virtual std::codecvt_base::result std::codecvt::do_in(std::codecvt::state_type&, const std::codecvt::extern_type*, const std::codecvt::extern_type*, const std::codecvt::extern_type*&, std::codecvt::intern_type*, std::codecvt::intern_type*, std::codecvt::intern_type*&) const', virtual at voffset 4/8 + 'method virtual std::codecvt_base::result std::codecvt::do_out(std::codecvt::state_type&, const std::codecvt::intern_type*, const std::codecvt::intern_type*, const std::codecvt::intern_type*&, std::codecvt::extern_type*, std::codecvt::extern_type*, std::codecvt::extern_type*&) const', virtual at voffset 2/8 + no member function changes (10 filtered); + + [C] 'method std::codecvt_byname* std::codecvt_byname::codecvt_byname(const char*, std::size_t)' has some indirect sub-type changes: + Please note that the symbol of this function is _ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj@@GLIBCXX_3.4 + and it aliases symbol: _ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj@@GLIBCXX_3.4 + implicit parameter 0 of type 'std::codecvt_byname*' has sub-type changes: + in pointed to type 'class std::codecvt_byname': + type size hasn't changed + 1 base class change: + 'class std::codecvt' changed: + details were reported earlier + no member function changes (3 filtered); + 6 Added variable symbols not referenced by debug info: [A] _ZTISt16bad_array_length@@CXXABI_1.3.8 diff --git a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt index ec25bf6d..4b0149dd 100644 --- a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt +++ b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt @@ -1,4 +1,4 @@ -Functions changes summary: 0 Removed, 2 Changed (63 filtered out), 13 Added functions +Functions changes summary: 0 Removed, 5 Changed (179 filtered out), 13 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable Function symbols changes summary: 0 Removed, 0 Added function symbol not referenced by debug info Variable symbols changes summary: 0 Removed, 6 Added variable symbols not referenced by debug info @@ -25,7 +25,7 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere [A] 'function std::unexpected_handler std::get_unexpected()' [A] 'method std::regex_error::regex_error(std::regex_constants::error_type)' -2 functions with some indirect sub-type change: +5 functions with some indirect sub-type change: [C] 'function __cxxabiv1::__cxa_dependent_exception* __cxxabiv1::__cxa_allocate_dependent_exception()' at eh_alloc.cc:158:1 has some indirect sub-type changes: return type changed: @@ -41,12 +41,71 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere '__cxxabiv1::__cxa_exception* __cxxabiv1::__cxa_dependent_exception::nextPropagatingException' offset changed from 160 to 192 (in bits) (by +32 bits) 'int __cxxabiv1::__cxa_dependent_exception::propagationCount' offset changed from 192 to 224 (in bits) (by +32 bits) + [C] 'method virtual std::__future_base::_Async_state_common::~_Async_state_common(int)' at compatibility-thread-c++0x.cc:117:1 has some indirect sub-type changes: + implicit parameter 0 of type 'std::__future_base::_Async_state_common*' has sub-type changes: + in pointed to type 'class std::__future_base::_Async_state_common' at compatibility-thread-c++0x.cc:106:1: + type size hasn't changed + 1 base class change: + 'class std::__future_base::_State_base' at future:306:1 changed: + type size hasn't changed + 1 member function changes (3 filtered): + 'method virtual std::__future_base::_State_base* std::__future_base::_State_base::_M_run_deferred()' has some sub-type changes: + return type changed: + entity changed from 'std::__future_base::_State_base*' to 'void' + type size changed from 32 to 0 (in bits) + 1 data member change: + type of 'std::__future_base::_State_base::_Ptr_type std::__future_base::_State_base::_M_result' changed: + underlying type 'typedef std::__future_base::_Ptr' at future:253:1 changed: + underlying type 'class std::unique_ptr, std::__future_base::_Result_base::_Deleter>' at unique_ptr.h:109:1 changed: + type name changed from 'std::unique_ptr, std::__future_base::_Result_base::_Deleter>' to 'std::unique_ptr' + type size hasn't changed + 1 data member change: + type of 'std::unique_ptr, std::__future_base::_Result_base::_Deleter>::__tuple_type std::unique_ptr, std::__future_base::_Result_base::_Deleter>::_M_t' changed: + typedef name changed from std::unique_ptr, std::__future_base::_Result_base::_Deleter>::__tuple_type to std::unique_ptr::__tuple_type at unique_ptr.h:146:1 + underlying type 'class std::tuple*, std::__future_base::_Result_base::_Deleter>' at tuple:521:1 changed: + type name changed from 'std::tuple*, std::__future_base::_Result_base::_Deleter>' to 'std::tuple' + type size hasn't changed + 1 base class deletion: + struct std::_Tuple_impl<0u, std::__future_base::_Result*, std::__future_base::_Result_base::_Deleter> at tuple:229:1 + 1 base class insertion: + struct std::_Tuple_impl<0u, std::__future_base::_Result_base*, std::__future_base::_Result_base::_Deleter> at tuple:231:1 + and name of 'std::unique_ptr, std::__future_base::_Result_base::_Deleter>::_M_t' changed to 'std::unique_ptr::_M_t' at unique_ptr.h:147:1 + no member function changes (4 filtered); + [C] 'function void std::__throw_regex_error(std::regex_constants::error_type)' at functexcept.cc:139:1 has some indirect sub-type changes: parameter 1 of type 'enum std::regex_constants::error_type' has sub-type changes: type size hasn't changed 1 enumerator deletion: 'std::regex_constants::error_type::_S_error_last' value '13' + [C] 'method void std::basic_filebuf >::_M_allocate_internal_buffer()' at fstream.tcc:47:1 has some indirect sub-type changes: + implicit parameter 0 of type 'std::basic_filebuf >*' has sub-type changes: + in pointed to type 'class std::basic_filebuf >' at fstream:72:1: + type size hasn't changed + no member function changes (14 filtered); + 1 data member change: + type of 'const std::basic_filebuf >::__codecvt_type* std::basic_filebuf >::_M_codecvt' changed: + in pointed to type 'const std::basic_filebuf >::__codecvt_type': + in unqualified underlying type 'typedef std::basic_filebuf >::__codecvt_type' at fstream:86:1: + underlying type 'class std::codecvt' at codecvt.h:398:1 changed: + type size hasn't changed + no base class change (1 filtered); + 2 member function insertions: + 'method virtual std::codecvt_base::result std::codecvt::do_in(std::codecvt::state_type&, const std::codecvt::extern_type*, const std::codecvt::extern_type*, const std::codecvt::extern_type*&, std::codecvt::intern_type*, std::codecvt::intern_type*, std::codecvt::intern_type*&) const' at codecvt_members.cc:118:1, virtual at voffset 4/8 + 'method virtual std::codecvt_base::result std::codecvt::do_out(std::codecvt::state_type&, const std::codecvt::intern_type*, const std::codecvt::intern_type*, const std::codecvt::intern_type*&, std::codecvt::extern_type*, std::codecvt::extern_type*, std::codecvt::extern_type*&) const' at codecvt_members.cc:43:1, virtual at voffset 2/8 + no member function changes (10 filtered); + + [C] 'method std::codecvt_byname* std::codecvt_byname::codecvt_byname(const char*, std::size_t)' at codecvt.h:462:1 has some indirect sub-type changes: + Please note that the symbol of this function is _ZNSt14codecvt_bynameIwc11__mbstate_tEC2EPKcj@@GLIBCXX_3.4 + and it aliases symbol: _ZNSt14codecvt_bynameIwc11__mbstate_tEC1EPKcj@@GLIBCXX_3.4 + implicit parameter 0 of type 'std::codecvt_byname*' has sub-type changes: + in pointed to type 'class std::codecvt_byname' at codecvt.h:458:1: + type size hasn't changed + 1 base class change: + 'class std::codecvt' at codecvt.h:398:1 changed: + details were reported earlier + no member function changes (3 filtered); + 6 Added variable symbols not referenced by debug info: [A] _ZTISt16bad_array_length@@CXXABI_1.3.8 diff --git a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt index 0c11fb6b..64f76392 100644 --- a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt +++ b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt @@ -1,4 +1,4 @@ -Functions changes summary: 82 Removed, 6 Changed (14 filtered out), 0 Added (1081 filtered out) functions +Functions changes summary: 82 Removed, 6 Changed (31 filtered out), 0 Added (1081 filtered out) functions Variables changes summary: 47 Removed, 1 Changed, 0 Added (11 filtered out) variables Function symbols changes summary: 7 Removed, 0 Added (76 filtered out) function symbols not referenced by debug info Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info @@ -90,6 +90,124 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen 6 functions with some indirect sub-type change: + [C] 'method void Engine::fini_process(bool)' has some indirect sub-type changes: + implicit parameter 0 of type 'Engine*' has sub-type changes: + in pointed to type 'struct Engine': + type size changed from 2752 to 5504 (in bits) + 1 data member deletion: + 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) + 7 data member insertions: + 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) + 'StreamMap Engine::m_stream_map', at offset 3072 (in bits) + 'mutex_t Engine::m_stream_lock', at offset 3456 (in bits) + 'int Engine::m_num_cores', at offset 3776 (in bits) + 'int Engine::m_num_threads', at offset 3808 (in bits) + 'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits) + 'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits) + 4 data member changes: + type of 'Engine::PtrSet Engine::m_ptr_set' changed: + entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' + type name changed from 'std::set, std::allocator >' to 'PtrDataTable' + type size changed from 384 to 704 (in bits) + 1 data member insertion: + 'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits) + 1 data member change: + type of 'std::set, std::allocator >::_Rep_type std::set, std::allocator >::_M_t' changed: + typedef name changed from std::set, std::allocator >::_Rep_type to PtrDataTable::PtrSet + underlying type 'class std::_Rb_tree, std::less, std::allocator >' changed: + type name changed from 'std::_Rb_tree, std::less, std::allocator >' to 'std::set, std::allocator >' + type size hasn't changed + 1 data member change: + type of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true> std::_Rb_tree, std::less, std::allocator >::_M_impl' changed: + entity changed from 'struct std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to compatible type 'typedef std::set, std::allocator >::_Rep_type' + type name changed from 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to 'std::_Rb_tree, std::less, std::allocator >' + type size hasn't changed + 1 base class deletion: + class std::allocator > + 2 data member deletions: + 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 64 (in bits) + 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 320 (in bits) + 1 data member change: + type of 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed: + type name changed from 'std::less' to 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' + type size changed from 8 to 384 (in bits) + 1 base class deletion: + struct std::binary_function + 1 base class insertion: + class std::allocator > + 3 data member insertions: + 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare', at offset 0 (in bits) + 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 64 (in bits) + 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 320 (in bits) + and name of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed to 'std::_Rb_tree, std::less, std::allocator >::_M_impl' + and name of 'std::_Rb_tree, std::less, std::allocator >::_M_impl' changed to 'std::set, std::allocator >::_M_t' + and name of 'std::set, std::allocator >::_M_t' changed to 'PtrDataTable::list' + 'Engine::SignalMap Engine::m_signal_map' offset changed from 1664 to 2368 (in bits) (by +704 bits) + 'mutex_t Engine::m_signal_lock' offset changed from 2048 to 2752 (in bits) (by +704 bits) + type of 'coifunction* Engine::m_funcs[6]' changed: + type name changed from 'coifunction*[6]' to 'coifunction*[7]' + array type size changed from 384 to 448 + array type subrange 1 changed length from 6 to 7 + and offset changed from 2368 to 5056 (in bits) (by +2688 bits) + + [C] 'method void OffloadDescriptor::cleanup()' has some indirect sub-type changes: + implicit parameter 0 of type 'OffloadDescriptor*' has sub-type changes: + in pointed to type 'struct OffloadDescriptor': + type size changed from 2240 to 2368 (in bits) + 9 data member insertions: + 'bool OffloadDescriptor::m_wait_all_devices', at offset 320 (in bits) + 'uint32_t OffloadDescriptor::m_in_deps_allocated', at offset 1824 (in bits) + 'uint32_t OffloadDescriptor::m_out_deps_allocated', at offset 1952 (in bits) + '_Offload_stream OffloadDescriptor::m_stream', at offset 1984 (in bits) + 'bool OffloadDescriptor::m_initial_need_runfunction', at offset 2248 (in bits) + 'bool OffloadDescriptor::m_out_with_preallocated', at offset 2256 (in bits) + 'bool OffloadDescriptor::m_preallocated_alloc', at offset 2264 (in bits) + 'bool OffloadDescriptor::m_traceback_called', at offset 2272 (in bits) + 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 2304 (in bits) + 8 data member changes (2 filtered): + 'bool OffloadDescriptor::m_is_mandatory' offset changed from 320 to 328 (in bits) (by +8 bits) + 'const bool OffloadDescriptor::m_is_openmp' offset changed from 328 to 336 (in bits) (by +8 bits) + type of 'VarDesc* OffloadDescriptor::m_vars' changed: + in pointed to type 'struct VarDesc': + type size hasn't changed + 1 data member change: + type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed: + type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags' + type size hasn't changed + 1 data member changes (1 filtered): + anonymous data member at offset 0 (in bits) changed from: + struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;} + to: + struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;} + type of 'OffloadDescriptor::VarExtra* OffloadDescriptor::m_vars_extra' changed: + in pointed to type 'struct OffloadDescriptor::VarExtra': + type size changed from 576 to 640 (in bits) + 2 data member insertions: + 'void* OffloadDescriptor::VarExtra::alloc', at offset 320 (in bits) + 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 608 (in bits) + 4 data member changes (3 filtered): + 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 320 to 384 (in bits) (by +64 bits) + type of 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_dst' changed: + in pointed to type 'struct CeanReadRanges': + type size changed from 512 to 576 (in bits) + 1 data member insertion: + 'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bits) + 7 data member changes: + 'void* CeanReadRanges::ptr' offset changed from 0 to 64 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::current_number' offset changed from 64 to 128 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::range_max_number' offset changed from 128 to 192 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::range_size' offset changed from 192 to 256 (in bits) (by +64 bits) + 'int CeanReadRanges::last_noncont_ind' offset changed from 256 to 320 (in bits) (by +64 bits) + 'int64_t CeanReadRanges::init_offset' offset changed from 320 to 384 (in bits) (by +64 bits) + 'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 384 to 448 (in bits) (by +64 bits) + and offset changed from 384 to 448 (in bits) (by +64 bits) + 'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 448 to 512 (in bits) (by +64 bits) + 'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 512 to 576 (in bits) (by +64 bits) + 'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 1984 to 2048 (in bits) (by +64 bits) + 'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 2048 to 2112 (in bits) (by +64 bits) + 'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 2112 to 2176 (in bits) (by +64 bits) + 'bool OffloadDescriptor::m_need_runfunction' offset changed from 2176 to 2240 (in bits) (by +64 bits) + [C] 'method void OffloadDescriptor::report_coi_error(error_types, COIRESULT)' has some indirect sub-type changes: parameter 1 of type 'typedef error_types' changed: underlying type 'enum __anonymous_enum__' changed: @@ -210,136 +328,17 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen '__anonymous_enum__::c_report_myorelease' from value '122' to '126' '__anonymous_enum__::c_coipipe_max_number' from value '123' to '133' - [C] 'method bool OffloadDescriptor::setup_descriptors(VarDesc*, VarDesc2*, int, int, void*)' has some indirect sub-type changes: - parameter 1 of type 'VarDesc*' has sub-type changes: - in pointed to type 'struct VarDesc': - type size hasn't changed - 1 data member changes (2 filtered): - type of 'union {struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;}; uint32_t bits;} VarDesc::flags' changed: - type name changed from 'VarDesc::__anonymous_union__2' to 'varDescFlags' - type size hasn't changed - 1 data member changes (1 filtered): - anonymous data member at offset 0 (in bits) changed from: - struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst;} - to: - struct {uint32_t is_static; uint32_t is_static_dstn; uint32_t has_length; uint32_t is_stack_buf; uint32_t targetptr; uint32_t preallocated; uint32_t is_pointer; uint32_t sink_addr; uint32_t alloc_disp; uint32_t is_noncont_src; uint32_t is_noncont_dst; uint32_t always_copy; uint32_t always_delete; uint32_t pin;} - [C] 'function void __offload_myoRegisterTables(InitTableEntry*, SharedTableEntry*, FptrTableEntry*)' has some indirect sub-type changes: parameter 1 of type 'InitTableEntry*' changed: in pointed to type 'struct InitTableEntry': entity changed from 'struct InitTableEntry' to compatible type 'typedef InitTableEntry' - type name changed from 'InitTableEntry' to '__anonymous_struct__2' + type name changed from 'InitTableEntry' to '__anonymous_struct__1' type size hasn't changed 1 data member change: type of 'void ()* InitTableEntry::func' changed: in pointed to type 'function type void ()': parameter 1 of type 'typedef MyoArena' was added - and name of 'InitTableEntry::func' changed to '__anonymous_struct__2::func' - - [C] 'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*, VarDesc2*, int, void**, void*, int, void*)' has some indirect sub-type changes: - parameter 1 of type 'typedef OFFLOAD' has sub-type changes: - underlying type 'OffloadDescriptor*' changed: - in pointed to type 'struct OffloadDescriptor': - type size changed from 2240 to 2368 (in bits) - 9 data member insertions: - 'bool OffloadDescriptor::m_wait_all_devices', at offset 320 (in bits) - 'uint32_t OffloadDescriptor::m_in_deps_allocated', at offset 1824 (in bits) - 'uint32_t OffloadDescriptor::m_out_deps_allocated', at offset 1952 (in bits) - '_Offload_stream OffloadDescriptor::m_stream', at offset 1984 (in bits) - 'bool OffloadDescriptor::m_initial_need_runfunction', at offset 2248 (in bits) - 'bool OffloadDescriptor::m_out_with_preallocated', at offset 2256 (in bits) - 'bool OffloadDescriptor::m_preallocated_alloc', at offset 2264 (in bits) - 'bool OffloadDescriptor::m_traceback_called', at offset 2272 (in bits) - 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::m_omp_async_last_event_type', at offset 2304 (in bits) - 8 data member changes (2 filtered): - type of 'Engine& OffloadDescriptor::m_device' changed: - in referenced type 'struct Engine': - type size changed from 2752 to 5504 (in bits) - 1 data member deletion: - 'mutex_t Engine::m_ptr_lock', at offset 1344 (in bits) - 7 data member insertions: - 'PtrDataTable Engine::m_targetptr_set', at offset 1664 (in bits) - 'StreamMap Engine::m_stream_map', at offset 3072 (in bits) - 'mutex_t Engine::m_stream_lock', at offset 3456 (in bits) - 'int Engine::m_num_cores', at offset 3776 (in bits) - 'int Engine::m_num_threads', at offset 3808 (in bits) - 'std::bitset<1024ul> Engine::m_cpus', at offset 3840 (in bits) - 'DynLibList Engine::m_dyn_libs', at offset 4864 (in bits) - 4 data member changes: - type of 'Engine::PtrSet Engine::m_ptr_set' changed: - entity changed from 'typedef Engine::PtrSet' to compatible type 'class PtrDataTable' - type name changed from 'std::set, std::allocator >' to 'PtrDataTable' - type size changed from 384 to 704 (in bits) - 1 data member insertion: - 'mutex_t PtrDataTable::m_ptr_lock', at offset 384 (in bits) - 1 data member change: - type of 'std::set, std::allocator >::_Rep_type std::set, std::allocator >::_M_t' changed: - typedef name changed from std::set, std::allocator >::_Rep_type to PtrDataTable::PtrSet - underlying type 'class std::_Rb_tree, std::less, std::allocator >' changed: - type name changed from 'std::_Rb_tree, std::less, std::allocator >' to 'std::set, std::allocator >' - type size hasn't changed - 1 data member change: - type of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true> std::_Rb_tree, std::less, std::allocator >::_M_impl' changed: - entity changed from 'struct std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to compatible type 'typedef std::set, std::allocator >::_Rep_type' - type name changed from 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' to 'std::_Rb_tree, std::less, std::allocator >' - type size hasn't changed - 1 base class deletion: - class std::allocator > - 2 data member deletions: - 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 64 (in bits) - 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 320 (in bits) - 1 data member change: - type of 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed: - type name changed from 'std::less' to 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>' - type size changed from 8 to 384 (in bits) - 1 base class deletion: - struct std::binary_function - 1 base class insertion: - class std::allocator > - 3 data member insertions: - 'std::less std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare', at offset 0 (in bits) - 'std::_Rb_tree_node_base std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_header', at offset 64 (in bits) - 'std::_Rb_tree, std::less, std::allocator >::size_type std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_node_count', at offset 320 (in bits) - and name of 'std::_Rb_tree, std::less, std::allocator >::_Rb_tree_impl, true>::_M_key_compare' changed to 'std::_Rb_tree, std::less, std::allocator >::_M_impl' - and name of 'std::_Rb_tree, std::less, std::allocator >::_M_impl' changed to 'std::set, std::allocator >::_M_t' - and name of 'std::set, std::allocator >::_M_t' changed to 'PtrDataTable::list' - 'Engine::SignalMap Engine::m_signal_map' offset changed from 1664 to 2368 (in bits) (by +704 bits) - 'mutex_t Engine::m_signal_lock' offset changed from 2048 to 2752 (in bits) (by +704 bits) - type of 'coifunction* Engine::m_funcs[6]' changed: - type name changed from 'coifunction*[6]' to 'coifunction*[7]' - array type size changed from 384 to 448 - array type subrange 1 changed length from 6 to 7 - and offset changed from 2368 to 5056 (in bits) (by +2688 bits) - 'bool OffloadDescriptor::m_is_mandatory' offset changed from 320 to 328 (in bits) (by +8 bits) - 'const bool OffloadDescriptor::m_is_openmp' offset changed from 328 to 336 (in bits) (by +8 bits) - type of 'OffloadDescriptor::VarExtra* OffloadDescriptor::m_vars_extra' changed: - in pointed to type 'struct OffloadDescriptor::VarExtra': - type size changed from 576 to 640 (in bits) - 2 data member insertions: - 'void* OffloadDescriptor::VarExtra::alloc', at offset 320 (in bits) - 'OffloadDescriptor::OmpAsyncLastEventType OffloadDescriptor::VarExtra::omp_last_event_type', at offset 608 (in bits) - 4 data member changes (3 filtered): - 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_src' offset changed from 320 to 384 (in bits) (by +64 bits) - type of 'CeanReadRanges* OffloadDescriptor::VarExtra::read_rng_dst' changed: - in pointed to type 'struct CeanReadRanges': - type size changed from 512 to 576 (in bits) - 1 data member insertion: - 'Arr_Desc* CeanReadRanges::arr_desc', at offset 0 (in bits) - 7 data member changes: - 'void* CeanReadRanges::ptr' offset changed from 0 to 64 (in bits) (by +64 bits) - 'int64_t CeanReadRanges::current_number' offset changed from 64 to 128 (in bits) (by +64 bits) - 'int64_t CeanReadRanges::range_max_number' offset changed from 128 to 192 (in bits) (by +64 bits) - 'int64_t CeanReadRanges::range_size' offset changed from 192 to 256 (in bits) (by +64 bits) - 'int CeanReadRanges::last_noncont_ind' offset changed from 256 to 320 (in bits) (by +64 bits) - 'int64_t CeanReadRanges::init_offset' offset changed from 320 to 384 (in bits) (by +64 bits) - 'CeanReadDim CeanReadRanges::Dim[1]' offset changed from 384 to 448 (in bits) (by +64 bits) - and offset changed from 384 to 448 (in bits) (by +64 bits) - 'int64_t OffloadDescriptor::VarExtra::ptr_arr_offset' offset changed from 448 to 512 (in bits) (by +64 bits) - 'bool OffloadDescriptor::VarExtra::is_arr_ptr_el' offset changed from 512 to 576 (in bits) (by +64 bits) - 'OffloadHostTimerData* OffloadDescriptor::m_timer_data' offset changed from 1984 to 2048 (in bits) (by +64 bits) - 'uint64_t OffloadDescriptor::m_in_datalen' offset changed from 2048 to 2112 (in bits) (by +64 bits) - 'uint64_t OffloadDescriptor::m_out_datalen' offset changed from 2112 to 2176 (in bits) (by +64 bits) - 'bool OffloadDescriptor::m_need_runfunction' offset changed from 2176 to 2240 (in bits) (by +64 bits) + and name of 'InitTableEntry::func' changed to '__anonymous_struct__1::func' [C] 'function void __offload_register_image(void*)' has some indirect sub-type changes: return type changed: diff --git a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt index 0ffaa85e..9e12abd2 100644 --- a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt +++ b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt @@ -1,4 +1,4 @@ -Functions changes summary: 82 Removed, 6 Changed (14 filtered out), 0 Added (1081 filtered out) functions +Functions changes summary: 82 Removed, 6 Changed (31 filtered out), 0 Added (1081 filtered out) functions Variables changes summary: 0 Removed (47 filtered out), 1 Changed, 0 Added (11 filtered out) variables Function symbols changes summary: 7 Removed, 0 Added (76 filtered out) function symbols not referenced by debug info Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info diff --git a/tests/data/test-diff-filter/test4-report.txt b/tests/data/test-diff-filter/test4-report.txt index 97239c74..31e12bb0 100644 --- a/tests/data/test-diff-filter/test4-report.txt +++ b/tests/data/test-diff-filter/test4-report.txt @@ -1,3 +1,3 @@ -Functions changes summary: 0 Removed, 0 Changed (3 filtered out), 0 Added functions +Functions changes summary: 0 Removed, 0 Changed (4 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable diff --git a/tests/data/test-diff-filter/test41-report-0.txt b/tests/data/test-diff-filter/test41-report-0.txt index da9a820a..94242f73 100644 --- a/tests/data/test-diff-filter/test41-report-0.txt +++ b/tests/data/test-diff-filter/test41-report-0.txt @@ -1,4 +1,4 @@ -Functions changes summary: 8 Removed, 2 Changed (10 filtered out), 16 Added functions +Functions changes summary: 8 Removed, 6 Changed (7 filtered out), 16 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable Function symbols changes summary: 1 Removed, 0 Added function symbol not referenced by debug info Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info @@ -34,7 +34,50 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen note that this adds a new entry to the vtable of class std::tr1::_Sp_counted_base<__gnu_cxx::_Lock_policy::_S_atomic> [A] 'function void std::tr1::__enable_shared_from_this_helper<__gnu_cxx::_Lock_policy::_S_atomic>(const std::tr1::__shared_count<__gnu_cxx::_Lock_policy::_S_atomic>&, ...)' {_ZNSt3tr132__enable_shared_from_this_helperILN9__gnu_cxx12_Lock_policyE2EEEvRKNS_14__shared_countIXT_EEEz} -2 functions with some indirect sub-type change: +6 functions with some indirect sub-type change: + + [C] 'method abigail::interned_string abigail::xml_writer::write_context::get_id_for_type(abigail::ir::type_base*) const' at abg-writer.cc:247:1 has some indirect sub-type changes: + implicit parameter 0 of type 'const abigail::xml_writer::write_context*' has sub-type changes: + in pointed to type 'const abigail::xml_writer::write_context': + in unqualified underlying type 'class abigail::xml_writer::write_context' at abg-writer.cc:155:1: + type size hasn't changed + 8 data member changes (2 filtered): + 'std::ostream& abigail::xml_writer::write_context::m_ostream' has *some* difference - please report as a bug + 'abigail::xml_writer::type_ptr_map abigail::xml_writer::write_context::m_type_id_map' has *some* difference - please report as a bug + type of 'abigail::xml_writer::type_ptr_map abigail::xml_writer::write_context::m_emitted_decl_only_map' changed: + underlying type 'class std::tr1::unordered_map > >' at unordered_map.h:180:1 changed: + type name changed from 'std::tr1::unordered_map > >' to 'std::tr1::unordered_map > >' + type size hasn't changed + 1 base class deletion: + class std::tr1::__unordered_map >, false> at unordered_map.h:43:1 + 1 base class insertion: + class std::tr1::__unordered_map >, false> at unordered_map.h:43:1 + 'abigail::xml_writer::type_ptr_map abigail::xml_writer::write_context::m_referenced_types_map' has *some* difference - please report as a bug + type of 'abigail::xml_writer::fn_tmpl_shared_ptr_map abigail::xml_writer::write_context::m_fn_tmpl_id_map' changed: + underlying type 'class std::tr1::unordered_map, std::__cxx11::basic_string, std::allocator >, abigail::ir::function_tdecl::shared_ptr_hash, std::equal_to >, std::allocator, std::__cxx11::basic_string, std::allocator > > > >' at unordered_map.h:180:1 changed: + type name changed from 'std::tr1::unordered_map, std::__cxx11::basic_string, std::allocator >, abigail::ir::function_tdecl::shared_ptr_hash, std::equal_to >, std::allocator, std::__cxx11::basic_string, std::allocator > > > >' to 'std::tr1::unordered_map, std::__cxx11::basic_string, abigail::ir::function_tdecl::shared_ptr_hash, std::equal_to >, std::allocator, std::__cxx11::basic_string > > >' + type size hasn't changed + 1 base class deletion: + class std::tr1::__unordered_map, std::__cxx11::basic_string, std::allocator >, abigail::ir::function_tdecl::shared_ptr_hash, std::equal_to >, std::allocator, std::__cxx11::basic_string, std::allocator > > >, false> at unordered_map.h:43:1 + 1 base class insertion: + class std::tr1::__unordered_map, std::__cxx11::basic_string, abigail::ir::function_tdecl::shared_ptr_hash, std::equal_to >, std::allocator, std::__cxx11::basic_string > >, false> at unordered_map.h:43:1 + type of 'abigail::xml_writer::class_tmpl_shared_ptr_map abigail::xml_writer::write_context::m_class_tmpl_id_map' changed: + underlying type 'class std::tr1::unordered_map, std::__cxx11::basic_string, std::allocator >, abigail::ir::class_tdecl::shared_ptr_hash, std::equal_to >, std::allocator, std::__cxx11::basic_string, std::allocator > > > >' at unordered_map.h:180:1 changed: + type name changed from 'std::tr1::unordered_map, std::__cxx11::basic_string, std::allocator >, abigail::ir::class_tdecl::shared_ptr_hash, std::equal_to >, std::allocator, std::__cxx11::basic_string, std::allocator > > > >' to 'std::tr1::unordered_map, std::__cxx11::basic_string, abigail::ir::class_tdecl::shared_ptr_hash, std::equal_to >, std::allocator, std::__cxx11::basic_string > > >' + type size hasn't changed + 1 base class deletion: + class std::tr1::__unordered_map, std::__cxx11::basic_string, std::allocator >, abigail::ir::class_tdecl::shared_ptr_hash, std::equal_to >, std::allocator, std::__cxx11::basic_string, std::allocator > > >, false> at unordered_map.h:43:1 + 1 base class insertion: + class std::tr1::__unordered_map, std::__cxx11::basic_string, abigail::ir::class_tdecl::shared_ptr_hash, std::equal_to >, std::allocator, std::__cxx11::basic_string > >, false> at unordered_map.h:43:1 + type of 'abigail::ir::string_elf_symbol_sptr_map_type abigail::xml_writer::write_context::m_fun_symbol_map' changed: + underlying type 'class std::tr1::unordered_map, std::allocator >, std::tr1::shared_ptr, std::tr1::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator >, std::tr1::shared_ptr > > >' at unordered_map.h:180:1 changed: + type name changed from 'std::tr1::unordered_map, std::allocator >, std::tr1::shared_ptr, std::tr1::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator >, std::tr1::shared_ptr > > >' to 'std::tr1::unordered_map, std::tr1::shared_ptr, std::tr1::hash >, std::equal_to >, std::allocator, std::tr1::shared_ptr > > >' + type size hasn't changed + 1 base class deletion: + class std::tr1::__unordered_map, std::allocator >, std::tr1::shared_ptr, std::tr1::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator >, std::tr1::shared_ptr > >, false> at unordered_map.h:43:1 + 1 base class insertion: + class std::tr1::__unordered_map, std::tr1::shared_ptr, std::tr1::hash >, std::equal_to >, std::allocator, std::tr1::shared_ptr > >, false> at unordered_map.h:43:1 + 'abigail::ir::string_elf_symbol_sptr_map_type abigail::xml_writer::write_context::m_var_symbol_map' has *some* difference - please report as a bug [C] 'method void abigail::xml_writer::write_context::record_type_as_emitted(const abigail::ir::type_base_sptr&)' at abg-writer.cc:473:1 has some indirect sub-type changes: parameter 1 of type 'const abigail::ir::type_base_sptr&' has sub-type changes: @@ -48,6 +91,84 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen class std::tr1::__shared_ptr at shared_ptr.h:539:1 [C] 'method bool abigail::xml_writer::write_context::type_ptr_cmp::operator()(const abigail::ir::type_base*, const abigail::ir::type_base*) const' at abg-writer.cc:359:1 has some indirect sub-type changes: + implicit parameter 0 of type 'const abigail::xml_writer::write_context::type_ptr_cmp*' has sub-type changes: + in pointed to type 'const abigail::xml_writer::write_context::type_ptr_cmp': + in unqualified underlying type 'struct abigail::xml_writer::write_context::type_ptr_cmp' at abg-writer.cc:337:1: + type size hasn't changed + 1 data member change: + 'abigail::xml_writer::type_ptr_map* abigail::xml_writer::write_context::type_ptr_cmp::map' has *some* difference - please report as a bug + + [C] 'method void std::_Deque_base, std::allocator >, std::allocator, std::allocator > > >::_M_initialize_map(std::size_t)' at stl_deque.h:625:1 has some indirect sub-type changes: + 'method void std::_Deque_base, std::allocator >, std::allocator, std::allocator > > >::_M_initialize_map(std::size_t) {_ZNSt11_Deque_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_initialize_mapEm}' now becomes 'method void std::_Deque_base, std::allocator > >::_M_initialize_map(std::size_t) {_ZNSt11_Deque_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_initialize_mapEm}' + implicit parameter 0 of type 'std::_Deque_base, std::allocator >, std::allocator, std::allocator > > >*' changed: + in pointed to type 'class std::_Deque_base, std::allocator >, std::allocator, std::allocator > > >' at stl_deque.h:458:1: + type name changed from 'std::_Deque_base, std::allocator >, std::allocator, std::allocator > > >' to 'std::_Deque_base, std::allocator > >' + type size hasn't changed + 1 data member change: + type of 'std::_Deque_base, std::allocator >, std::allocator, std::allocator > > >::_Deque_impl std::_Deque_base, std::allocator >, std::allocator, std::allocator > > >::_M_impl' changed: + type name changed from 'std::_Deque_base, std::allocator >, std::allocator, std::allocator > > >::_Deque_impl' to 'std::_Deque_base, std::allocator > >::_Deque_impl' + type size hasn't changed + 1 base class deletion: + class std::allocator, std::allocator > > at allocator.h:108:1 + 1 base class insertion: + class std::allocator > at allocator.h:108:1 + 3 data member changes (1 filtered): + name of 'std::_Deque_base, std::allocator >, std::allocator, std::allocator > > >::_Deque_impl::_M_map' changed to 'std::_Deque_base, std::allocator > >::_Deque_impl::_M_map' at stl_deque.h:550:1 + name of 'std::_Deque_base, std::allocator >, std::allocator, std::allocator > > >::_Deque_impl::_M_start' changed to 'std::_Deque_base, std::allocator > >::_Deque_impl::_M_start' at stl_deque.h:552:1 + type of 'std::_Deque_base, std::allocator >, std::allocator, std::allocator > > >::iterator std::_Deque_base, std::allocator >, std::allocator, std::allocator > > >::_Deque_impl::_M_finish' changed: + typedef name changed from std::_Deque_base, std::allocator >, std::allocator, std::allocator > > >::iterator to std::_Deque_base, std::allocator > >::iterator at stl_deque.h:485:1 + underlying type 'struct std::_Deque_iterator, std::allocator >, std::__cxx11::basic_string, std::allocator >&, std::__cxx11::basic_string, std::allocator >*>' at stl_deque.h:106:1 changed: + type name changed from 'std::_Deque_iterator, std::allocator >, std::__cxx11::basic_string, std::allocator >&, std::__cxx11::basic_string, std::allocator >*>' to 'std::_Deque_iterator, std::__cxx11::basic_string &, std::__cxx11::basic_string *>' + type size hasn't changed + 1 data member changes (3 filtered): + type of 'std::_Deque_iterator, std::allocator >, std::__cxx11::basic_string, std::allocator >&, std::__cxx11::basic_string, std::allocator >*>::_Map_pointer std::_Deque_iterator, std::allocator >, std::__cxx11::basic_string, std::allocator >&, std::__cxx11::basic_string, std::allocator >*>::_M_node' changed: + typedef name changed from std::_Deque_iterator, std::allocator >, std::__cxx11::basic_string, std::allocator >&, std::__cxx11::basic_string, std::allocator >*>::_Map_pointer to std::_Deque_iterator, std::__cxx11::basic_string &, std::__cxx11::basic_string *>::_Map_pointer at stl_deque.h:112:1 + underlying type 'typedef std::_Deque_iterator, std::allocator >, std::__cxx11::basic_string, std::allocator >&, std::__cxx11::basic_string, std::allocator >*>::__ptr_to' at stl_deque.h:116:1 changed: + entity changed from 'typedef std::_Deque_iterator, std::allocator >, std::__cxx11::basic_string, std::allocator >&, std::__cxx11::basic_string, std::allocator >*>::__ptr_to' to compatible type 'std::__cxx11::basic_string, std::allocator >**' + in pointed to type 'class std::__cxx11::basic_string, std::allocator >': + entity changed from 'class std::__cxx11::basic_string, std::allocator >' to 'std::__cxx11::basic_string, std::allocator >*' + type size changed from 256 to 64 (in bits) + and name of 'std::_Deque_iterator, std::allocator >, std::__cxx11::basic_string, std::allocator >&, std::__cxx11::basic_string, std::allocator >*>::_M_node' changed to 'std::_Deque_iterator, std::__cxx11::basic_string &, std::__cxx11::basic_string *>::_M_node' at stl_deque.h:140:1 + and name of 'std::_Deque_base, std::allocator >, std::allocator, std::allocator > > >::_Deque_impl::_M_finish' changed to 'std::_Deque_base, std::allocator > >::_Deque_impl::_M_finish' at stl_deque.h:553:1 + and name of 'std::_Deque_base, std::allocator >, std::allocator, std::allocator > > >::_M_impl' changed to 'std::_Deque_base, std::allocator > >::_M_impl' at stl_deque.h:631:1 + + [C] 'method void std::_Deque_base >::_M_initialize_map(std::size_t)' at stl_deque.h:625:1 has some indirect sub-type changes: + implicit parameter 0 of type 'std::_Deque_base >*' has sub-type changes: + in pointed to type 'class std::_Deque_base >' at stl_deque.h:458:1: + type size hasn't changed + 1 data member change: + type of 'std::_Deque_base >::_Deque_impl std::_Deque_base >::_M_impl' changed: + type size hasn't changed + 3 data member changes: + 'std::_Deque_base >::_Map_pointer std::_Deque_base >::_Deque_impl::_M_map' has *some* difference - please report as a bug + 'std::_Deque_base >::iterator std::_Deque_base >::_Deque_impl::_M_start' has *some* difference - please report as a bug + type of 'std::_Deque_base >::iterator std::_Deque_base >::_Deque_impl::_M_finish' changed: + underlying type 'struct std::_Deque_iterator' at stl_deque.h:106:1 changed: + type name changed from 'std::_Deque_iterator' to 'std::_Deque_iterator' + type size hasn't changed + 1 data member changes (3 filtered): + type of 'std::_Deque_iterator::_Map_pointer std::_Deque_iterator::_M_node' changed: + typedef name changed from std::_Deque_iterator::_Map_pointer to std::_Deque_iterator::_Map_pointer at stl_deque.h:112:1 + underlying type 'typedef std::_Deque_iterator::__ptr_to' at stl_deque.h:116:1 changed: + entity changed from 'typedef std::_Deque_iterator::__ptr_to' to compatible type 'unsigned int**' + in pointed to type 'unsigned int': + entity changed from 'unsigned int' to 'unsigned int*' + type size changed from 32 to 64 (in bits) + and name of 'std::_Deque_iterator::_M_node' changed to 'std::_Deque_iterator::_M_node' at stl_deque.h:140:1 + + [C] 'method std::deque, std::allocator >, std::allocator, std::allocator > > >::~deque(int)' at stl_deque.h:1040:1 has some indirect sub-type changes: + linkage names of method std::deque, std::allocator >, std::allocator, std::allocator > > >::~deque(int) + changed from '_ZNSt5dequeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev, _ZNSt5dequeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev' to '_ZNSt5dequeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev' + 'method std::deque, std::allocator >, std::allocator, std::allocator > > >::~deque(int) {_ZNSt5dequeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev, _ZNSt5dequeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev}' now becomes 'method std::deque, std::allocator > >::~deque() {_ZNSt5dequeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev}' + implicit parameter 0 of type 'std::deque, std::allocator >, std::allocator, std::allocator > > >*' changed: + in pointed to type 'class std::deque, std::allocator >, std::allocator, std::allocator > > >' at stl_deque.h:829:1: + type name changed from 'std::deque, std::allocator >, std::allocator, std::allocator > > >' to 'std::deque, std::allocator > >' + type size hasn't changed + 1 base class deletion: + class std::_Deque_base, std::allocator >, std::allocator, std::allocator > > > at stl_deque.h:458:1 + 1 base class insertion: + class std::_Deque_base, std::allocator > > at stl_deque.h:458:1 + parameter 1 of type 'int' was removed 1 Removed function symbol not referenced by debug info: diff --git a/tests/data/test-diff-filter/test9-report.txt b/tests/data/test-diff-filter/test9-report.txt index 867b83ad..0ba712e8 100644 --- a/tests/data/test-diff-filter/test9-report.txt +++ b/tests/data/test-diff-filter/test9-report.txt @@ -1,4 +1,4 @@ -Functions changes summary: 0 Removed, 1 Changed, 2 Added functions +Functions changes summary: 0 Removed, 1 Changed (1 filtered out), 2 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 2 Added functions: @@ -8,9 +8,9 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 function with some indirect sub-type change: - [C] 'function void foo(S&)' has some indirect sub-type changes: - parameter 1 of type 'S&' has sub-type changes: - in referenced type 'struct S': + [C] 'method int S::mem_fn0()' has some indirect sub-type changes: + implicit parameter 0 of type 'S*' has sub-type changes: + in pointed to type 'struct S': type size changed from 8 to 32 (in bits) 1 data member insertion: 'int S::m0', at offset 0 (in bits) diff --git a/tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt b/tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt index 61b03335..59202ee4 100644 --- a/tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt +++ b/tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt @@ -27,53 +27,7 @@ 2 data member insertions: '_XtransConnFd* _XtransConnInfo::recv_fds', at offset 640 (in bits) at Xtransint.h:148:1 '_XtransConnFd* _XtransConnInfo::send_fds', at offset 704 (in bits) at Xtransint.h:149:1 - 1 data member change: - type of '_Xtransport* _XtransConnInfo::transptr' changed: - in pointed to type 'struct _Xtransport' at Xtransint.h:158:1: - type size hasn't changed - 3 data member changes (16 filtered): - type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCOTSClient' changed: - in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, char*, char*)': - parameter 2 of type 'char*' changed: - in pointed to type 'char': - entity changed from 'char' to 'const char' - type size hasn't changed - parameter 3 of type 'char*' changed: - in pointed to type 'char': - entity changed from 'char' to 'const char' - type size hasn't changed - parameter 4 of type 'char*' changed: - in pointed to type 'char': - entity changed from 'char' to 'const char' - type size hasn't changed - type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCOTSServer' changed: - in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, char*, char*)': - parameter 2 of type 'char*' changed: - in pointed to type 'char': - entity changed from 'char' to 'const char' - type size hasn't changed - parameter 3 of type 'char*' changed: - in pointed to type 'char': - entity changed from 'char' to 'const char' - type size hasn't changed - parameter 4 of type 'char*' changed: - in pointed to type 'char': - entity changed from 'char' to 'const char' - type size hasn't changed - type of 'typedef XtransConnInfo (_Xtransport*, char*, char*, char*)* _Xtransport::OpenCLTSServer' changed: - in pointed to type 'function type typedef XtransConnInfo (_Xtransport*, char*, char*, char*)': - parameter 2 of type 'char*' changed: - in pointed to type 'char': - entity changed from 'char' to 'const char' - type size hasn't changed - parameter 3 of type 'char*' changed: - in pointed to type 'char': - entity changed from 'char' to 'const char' - type size hasn't changed - parameter 4 of type 'char*' changed: - in pointed to type 'char': - entity changed from 'char' to 'const char' - type size hasn't changed + no data member change (1 filtered); type of '_IcePingWait* _IceConn::ping_waits' changed: in pointed to type 'struct _IcePingWait' at ICEconn.h:48:1: entity changed from 'struct _IcePingWait' to compatible type 'typedef _IcePingWait' at ICEconn.h:48:1 diff --git a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt index 2a679d60..5bc57e81 100644 --- a/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt +++ b/tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt @@ -1,5 +1,5 @@ ================ changes of 'libsigc-2.0.so.0.0.0'=============== - Functions changes summary: 1 Removed, 2 Changed (17 filtered out), 1 Added functions + Functions changes summary: 1 Removed, 2 Changed (58 filtered out), 1 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 Removed function: @@ -12,57 +12,56 @@ 2 functions with some indirect sub-type change: - [C] 'method sigc::connection::connection(const sigc::connection&)' has some indirect sub-type changes: - parameter 1 of type 'const sigc::connection&' has sub-type changes: - in referenced type 'const sigc::connection': - in unqualified underlying type 'struct sigc::connection': - type size hasn't changed - 1 data member change: - type of 'sigc::slot_base* sigc::connection::slot_' changed: - in pointed to type 'class sigc::slot_base': - type size hasn't changed - 1 data member change: - type of 'sigc::slot_base::rep_type* sigc::slot_base::rep_' changed: - in pointed to type 'typedef sigc::slot_base::rep_type': - underlying type 'struct sigc::internal::slot_rep' changed: - type size hasn't changed - 1 base class change: - 'struct sigc::trackable' changed: - type size hasn't changed - 1 data member change: - type of 'sigc::internal::trackable_callback_list* sigc::trackable::callback_list_' changed: - in pointed to type 'struct sigc::internal::trackable_callback_list': - type size changed from 192 to 256 (in bits) - 2 data member changes: - type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed: - underlying type 'class std::list >' changed: - type name changed from 'std::list >' to 'std::__cxx11::list >' - type size changed from 128 to 192 (in bits) - 1 base class change: - 'class std::_List_base >' changed: - type name changed from 'std::_List_base >' to 'std::__cxx11::_List_base >' - type size changed from 128 to 192 (in bits) - 1 data member change: - type of 'std::_List_base >::_List_impl std::_List_base >::_M_impl' changed: - type name changed from 'std::_List_base >::_List_impl' to 'std::__cxx11::_List_base >::_List_impl' - type size changed from 128 to 192 (in bits) - 1 data member change: - type of 'std::__detail::_List_node_base std::_List_base >::_List_impl::_M_node' changed: - type name changed from 'std::__detail::_List_node_base' to 'std::_List_node' - type size changed from 128 to 192 (in bits) - 1 base class insertion: - struct std::__detail::_List_node_base - 2 data member deletions: - 'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits) - 'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits) - 1 data member insertion: - 'unsigned long int std::_List_node::_M_data', at offset 128 (in bits) - and name of 'std::_List_base >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base >::_List_impl::_M_node' - and name of 'std::_List_base >::_M_impl' changed to 'std::__cxx11::_List_base >::_M_impl' - 'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits) + [C] 'method bool sigc::connection::block(bool)' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::connection*' has sub-type changes: + in pointed to type 'struct sigc::connection': + type size hasn't changed + 1 data member change: + type of 'sigc::slot_base* sigc::connection::slot_' changed: + in pointed to type 'class sigc::slot_base': + type size hasn't changed + 1 data member change: + type of 'sigc::slot_base::rep_type* sigc::slot_base::rep_' changed: + in pointed to type 'typedef sigc::slot_base::rep_type': + underlying type 'struct sigc::internal::slot_rep' changed: + type size hasn't changed + 1 base class change: + 'struct sigc::trackable' changed: + type size hasn't changed + 1 data member change: + type of 'sigc::internal::trackable_callback_list* sigc::trackable::callback_list_' changed: + in pointed to type 'struct sigc::internal::trackable_callback_list': + type size changed from 192 to 256 (in bits) + 2 data member changes: + type of 'sigc::internal::trackable_callback_list::callback_list sigc::internal::trackable_callback_list::callbacks_' changed: + underlying type 'class std::list >' changed: + type name changed from 'std::list >' to 'std::__cxx11::list >' + type size changed from 128 to 192 (in bits) + 1 base class change: + 'class std::_List_base >' changed: + type name changed from 'std::_List_base >' to 'std::__cxx11::_List_base >' + type size changed from 128 to 192 (in bits) + 1 data member change: + type of 'std::_List_base >::_List_impl std::_List_base >::_M_impl' changed: + type name changed from 'std::_List_base >::_List_impl' to 'std::__cxx11::_List_base >::_List_impl' + type size changed from 128 to 192 (in bits) + 1 data member change: + type of 'std::__detail::_List_node_base std::_List_base >::_List_impl::_M_node' changed: + type name changed from 'std::__detail::_List_node_base' to 'std::_List_node' + type size changed from 128 to 192 (in bits) + 1 base class insertion: + struct std::__detail::_List_node_base + 2 data member deletions: + 'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_next', at offset 0 (in bits) + 'std::__detail::_List_node_base* std::__detail::_List_node_base::_M_prev', at offset 64 (in bits) + 1 data member insertion: + 'unsigned long int std::_List_node::_M_data', at offset 128 (in bits) + and name of 'std::_List_base >::_List_impl::_M_node' changed to 'std::__cxx11::_List_base >::_List_impl::_M_node' + and name of 'std::_List_base >::_M_impl' changed to 'std::__cxx11::_List_base >::_M_impl' + 'bool sigc::internal::trackable_callback_list::clearing_' offset changed from 128 to 192 (in bits) (by +64 bits) - [C] 'method sigc::internal::signal_impl* sigc::signal_base::impl() const' has some indirect sub-type changes: - return type changed: + [C] 'method void sigc::internal::signal_impl::block(bool)' has some indirect sub-type changes: + implicit parameter 0 of type 'sigc::internal::signal_impl*' has sub-type changes: in pointed to type 'struct sigc::internal::signal_impl': type size changed from 192 to 256 (in bits) 1 data member change: diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt index a0bfc761..550ef6f3 100644 --- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt +++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt @@ -92,7 +92,7 @@ in pointed to type 'typedef RedChannelClient' at red_channel.h:131:1: underlying type 'struct RedChannelClient' at red_channel.h:247:1 changed: type size hasn't changed - 3 data member changes (2 filtered): + 3 data member changes: type of 'RedChannel* RedChannelClient::channel' changed: in pointed to type 'typedef RedChannel' at red_channel.h:130:1: underlying type 'struct RedChannel' changed, as being reported diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt index aaf28bfe..3e50dc70 100644 --- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt +++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt @@ -1,6 +1,6 @@ ================ changes of 'libspice-server.so.1.8.0'=============== -Leaf changes summary: 11 artifacts changed (11 filtered out) - Changed leaf types summary: 2 (11 filtered out) leaf types changed +Leaf changes summary: 10 artifacts changed (10 filtered out) + Changed leaf types summary: 1 (10 filtered out) leaf types changed Removed/Changed/Added functions summary: 1 Removed, 0 Changed, 8 Added functions Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable @@ -120,87 +120,5 @@ Leaf changes summary: 11 artifacts changed (11 filtered out) function int spice_server_set_zlib_glz_compression(SpiceServer*, spice_wan_compression_t) function void spice_server_vm_start(SpiceServer*) function void spice_server_vm_stop(SpiceServer*) - 'typedef spice_image_compression_t at spice.h:479:1' changed: - typedef name changed from spice_image_compression_t to SpiceImageCompression at enums.h:197:1 - 79 impacted interfaces: - function void spice_qxl_add_memslot(QXLInstance*, QXLDevMemSlot*) - function void spice_qxl_add_memslot_async(QXLInstance*, QXLDevMemSlot*, uint64_t) - function void spice_qxl_create_primary_surface(QXLInstance*, uint32_t, QXLDevSurfaceCreate*) - function void spice_qxl_create_primary_surface_async(QXLInstance*, uint32_t, QXLDevSurfaceCreate*, uint64_t) - function void spice_qxl_del_memslot(QXLInstance*, uint32_t, uint32_t) - function void spice_qxl_destroy_primary_surface(QXLInstance*, uint32_t) - function void spice_qxl_destroy_primary_surface_async(QXLInstance*, uint32_t, uint64_t) - function void spice_qxl_destroy_surface_async(QXLInstance*, uint32_t, uint64_t) - function void spice_qxl_destroy_surface_wait(QXLInstance*, uint32_t) - function void spice_qxl_destroy_surfaces(QXLInstance*) - function void spice_qxl_destroy_surfaces_async(QXLInstance*, uint64_t) - function void spice_qxl_driver_unload(QXLInstance*) - function void spice_qxl_flush_surfaces_async(QXLInstance*, uint64_t) - function void spice_qxl_loadvm_commands(QXLInstance*, QXLCommandExt*, uint32_t) - function void spice_qxl_monitors_config_async(QXLInstance*, QXLPHYSICAL, int, uint64_t) - function void spice_qxl_oom(QXLInstance*) - function void spice_qxl_reset_cursor(QXLInstance*) - function void spice_qxl_reset_image_cache(QXLInstance*) - function void spice_qxl_reset_memslots(QXLInstance*) - function void spice_qxl_set_max_monitors(QXLInstance*, unsigned int) - function void spice_qxl_start(QXLInstance*) - function void spice_qxl_stop(QXLInstance*) - function void spice_qxl_update_area(QXLInstance*, uint32_t, QXLRect*, QXLRect*, uint32_t, uint32_t) - function void spice_qxl_update_area_async(QXLInstance*, uint32_t, QXLRect*, uint32_t, uint64_t) - function void spice_qxl_wakeup(QXLInstance*) - function int spice_server_add_client(SpiceServer*, int, int) - function int spice_server_add_interface(SpiceServer*, SpiceBaseInstance*) - function int spice_server_add_renderer(SpiceServer*, const char*) - function int spice_server_add_ssl_client(SpiceServer*, int, int) - function void spice_server_char_device_wakeup(SpiceCharDeviceInstance*) - function void spice_server_destroy(SpiceServer*) - function spice_image_compression_t spice_server_get_image_compression(SpiceServer*) - function int spice_server_get_num_clients(SpiceServer*) - function int spice_server_get_peer_info(SpiceServer*, sockaddr*, socklen_t*) - function int spice_server_get_sock_info(SpiceServer*, sockaddr*, socklen_t*) - function int spice_server_init(SpiceServer*, SpiceCoreInterface*) - function int spice_server_is_server_mouse(SpiceServer*) - function int spice_server_migrate_connect(SpiceServer*, const char*, int, int, const char*) - function int spice_server_migrate_end(SpiceServer*, int) - function int spice_server_migrate_info(SpiceServer*, const char*, int, int, const char*) - function int spice_server_migrate_start(SpiceServer*) - function int spice_server_migrate_switch(SpiceServer*) - function SpiceServer* spice_server_new() - function void spice_server_playback_get_buffer(SpicePlaybackInstance*, uint32_t**, uint32_t*) - function void spice_server_playback_put_samples(SpicePlaybackInstance*, uint32_t*) - function void spice_server_playback_set_mute(SpicePlaybackInstance*, uint8_t) - function void spice_server_playback_set_volume(SpicePlaybackInstance*, uint8_t, uint16_t*) - function void spice_server_playback_start(SpicePlaybackInstance*) - function void spice_server_playback_stop(SpicePlaybackInstance*) - function void spice_server_port_event(SpiceCharDeviceInstance*, uint8_t) - function uint32_t spice_server_record_get_samples(SpiceRecordInstance*, uint32_t*, uint32_t) - function void spice_server_record_set_mute(SpiceRecordInstance*, uint8_t) - function void spice_server_record_set_volume(SpiceRecordInstance*, uint8_t, uint16_t*) - function void spice_server_record_start(SpiceRecordInstance*) - function void spice_server_record_stop(SpiceRecordInstance*) - function void spice_server_set_addr(SpiceServer*, const char*, int) - function int spice_server_set_agent_copypaste(SpiceServer*, int) - function int spice_server_set_agent_file_xfer(SpiceServer*, int) - function int spice_server_set_agent_mouse(SpiceServer*, int) - function int spice_server_set_channel_security(SpiceServer*, const char*, int) - function int spice_server_set_compat_version(SpiceServer*, spice_compat_version_t) - function int spice_server_set_exit_on_disconnect(SpiceServer*, int) - function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t) - function int spice_server_set_jpeg_compression(SpiceServer*, spice_wan_compression_t) - function int spice_server_set_listen_socket_fd(SpiceServer*, int) - function void spice_server_set_name(SpiceServer*, const char*) - function int spice_server_set_noauth(SpiceServer*) - function int spice_server_set_playback_compression(SpiceServer*, int) - function int spice_server_set_port(SpiceServer*, int) - function int spice_server_set_sasl(SpiceServer*, int) - function int spice_server_set_sasl_appname(SpiceServer*, const char*) - function void spice_server_set_seamless_migration(SpiceServer*, int) - function int spice_server_set_streaming_video(SpiceServer*, int) - function int spice_server_set_ticket(SpiceServer*, const char*, int, int, int) - function int spice_server_set_tls(SpiceServer*, int, const char*, const char*, const char*, const char*, const char*, const char*) - function void spice_server_set_uuid(SpiceServer*, const uint8_t*) - function int spice_server_set_zlib_glz_compression(SpiceServer*, spice_wan_compression_t) - function void spice_server_vm_start(SpiceServer*) - function void spice_server_vm_stop(SpiceServer*) ================ end of changes of 'libspice-server.so.1.8.0'=============== diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt index 4fc20c36..ffbcea32 100644 --- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt +++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt @@ -1,5 +1,5 @@ ================ changes of 'libtbb.so.2'=============== - Functions changes summary: 0 Removed, 8 Changed (16 filtered out), 17 Added functions + Functions changes summary: 0 Removed, 10 Changed (97 filtered out), 17 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable Function symbols changes summary: 0 Removed, 0 Added function symbol not referenced by debug info Variable symbols changes summary: 3 Removed, 0 Added variable symbols not referenced by debug info @@ -24,32 +24,182 @@ [A] 'method void tbb::internal::concurrent_queue_base_v8::move_content(tbb::internal::concurrent_queue_base_v8&)' {_ZN3tbb8internal24concurrent_queue_base_v812move_contentERS1_} [A] 'method void tbb::task_group_context::capture_fp_settings()' {_ZN3tbb18task_group_context19capture_fp_settingsEv} - 8 functions with some indirect sub-type change: + 10 functions with some indirect sub-type change: - [C] 'method void tbb::internal::concurrent_queue_base_v3::assign(const tbb::internal::concurrent_queue_base&)' at concurrent_queue.cpp:570:1 has some indirect sub-type changes: - parameter 1 of type 'const tbb::internal::concurrent_queue_base&' has sub-type changes: - in referenced type 'const tbb::internal::concurrent_queue_base': - in unqualified underlying type 'typedef tbb::internal::concurrent_queue_base' at concurrent_queue.cpp:57:1: - underlying type 'class tbb::internal::concurrent_queue_base_v3' at _concurrent_queue_impl.h:816:1 changed: - type size hasn't changed - 1 data member change: - type of 'tbb::internal::concurrent_queue_rep* tbb::internal::concurrent_queue_base_v3::my_rep' changed: - in pointed to type 'class tbb::internal::concurrent_queue_rep' at concurrent_queue_v2.cpp:102:1: + [C] 'method void tbb::filter::set_end_of_input()' at pipeline.cpp:700:1 has some indirect sub-type changes: + implicit parameter 0 of type 'tbb::filter*' has sub-type changes: + in pointed to type 'class tbb::filter' at pipeline.h:65:1: + type size hasn't changed + 1 member function deletion: + 'method virtual tbb::filter::~filter(int)' at pipeline.cpp:698:1 + 1 member function insertion: + 'method virtual tbb::filter::~filter(int)' at pipeline.cpp:688:1 + no member function changes (4 filtered); + 1 data member changes (4 filtered): + type of 'tbb::internal::input_buffer* tbb::filter::my_input_buffer' changed: + in pointed to type 'class tbb::internal::input_buffer' at pipeline.cpp:52:1: + type size hasn't changed + 1 data member change: + type of 'tbb::spin_mutex tbb::internal::input_buffer::array_mutex' changed: + type size hasn't changed + 1 base class insertion: + class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 + + [C] 'method tbb::task& tbb::internal::allocate_root_with_context_proxy::allocate(std::size_t) const' at task.h:135:1 has some indirect sub-type changes: + implicit parameter 0 of type 'const tbb::internal::allocate_root_with_context_proxy*' has sub-type changes: + in pointed to type 'const tbb::internal::allocate_root_with_context_proxy': + in unqualified underlying type 'class tbb::internal::allocate_root_with_context_proxy' at task.h:131:1: + type size hasn't changed + 1 data member change: + type of 'tbb::task_group_context& tbb::internal::allocate_root_with_context_proxy::my_context' changed: + in referenced type 'class tbb::task_group_context' at task.h:302:1: + type size hasn't changed + 1 data member insertion: + 'tbb::internal::cpu_ctl_env_space tbb::task_group_context::my_cpu_ctl_env', at offset 896 (in bits) at task.h:380:1 + 2 data member changes (1 filtered): + type of 'char tbb::task_group_context::_leading_padding[80]' changed: + type name changed from 'char[80]' to 'char[72]' + array type size changed from 640 to 576 + array type subrange 1 changed length from 80 to 72 + type of 'tbb::internal::generic_scheduler* tbb::task_group_context::my_owner' changed: + in pointed to type 'class tbb::internal::generic_scheduler' at scheduler.h:110:1: + type size changed from 3136 to 3072 (in bits) + 1 base class change: + 'struct tbb::internal::scheduler_state' at scheduler.h:73:1 changed: + type size changed from 576 to 704 (in bits) + 2 data member insertions: + 'volatile intptr_t* tbb::internal::scheduler_state::my_ref_top_priority', at offset 576 (in bits) at scheduler.h:96:1 + 'volatile uintptr_t* tbb::internal::scheduler_state::my_ref_reload_epoch', at offset 640 (in bits) at scheduler.h:99:1 + 2 data member changes (1 filtered): + type of 'tbb::internal::arena* tbb::internal::scheduler_state::my_arena' changed: + in pointed to type 'class tbb::internal::arena' at arena.h:160:1: + type size hasn't changed + 1 base class deletion: + struct tbb::internal::padded at tbb_stddef.h:261:1 + 1 base class insertion: + struct tbb::internal::padded at tbb_stddef.h:251:1 + 1 data member change: + type of 'tbb::internal::arena_slot tbb::internal::arena::my_slots[1]' changed: + array element type 'struct tbb::internal::arena_slot' changed: + type size hasn't changed + 2 base class deletions: + struct tbb::internal::padded at tbb_stddef.h:261:1 + struct tbb::internal::padded at tbb_stddef.h:261:1 + 2 base class insertions: + struct tbb::internal::padded at tbb_stddef.h:251:1 + struct tbb::internal::padded at tbb_stddef.h:251:1 + type size hasn't changed + type of 'tbb::internal::mail_inbox tbb::internal::scheduler_state::my_inbox' changed: + type size hasn't changed + 1 data member change: + type of 'tbb::internal::mail_outbox* tbb::internal::mail_inbox::my_putter' changed: + in pointed to type 'class tbb::internal::mail_outbox' at mailbox.h:103:1: + type size hasn't changed + 1 base class deletion: + class tbb::internal::unpadded_mail_outbox at mailbox.h:97:1 + 1 base class insertion: + struct tbb::internal::padded at tbb_stddef.h:251:1 + 1 data member deletion: + 'char tbb::internal::mail_outbox::pad[104]', at offset 136 (in bits) at mailbox.h:114:1 + 1 member function deletion: + 'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7 + 1 member function insertion: + 'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&)' at scheduler.h:362:1, virtual at voffset 7/7 + no member function changes (4 filtered); + 3 data member deletions: + 'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1 + 'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1 + 'volatile uintptr_t* tbb::internal::generic_scheduler::my_ref_reload_epoch', at offset 2752 (in bits) at scheduler.h:443:1 + 18 data member changes: + 'uintptr_t tbb::internal::generic_scheduler::my_stealing_threshold' offset changed from 704 to 832 (in bits) (by +128 bits) + type of 'tbb::internal::market* tbb::internal::generic_scheduler::my_market' changed: + in pointed to type 'class tbb::internal::market' at market.h:49:1: + type size changed from 1664 to 1728 (in bits) + no member function changes (8 filtered); + 1 data member insertion: + 'bool tbb::internal::market::join_workers', at offset 384 (in bits) at market.h:88:1 + 7 data member changes: + type of 'tbb::internal::market::arenas_list_mutex_type tbb::internal::market::my_arenas_list_mutex' changed: + underlying type 'typedef tbb::internal::scheduler_mutex_type' at scheduler_common.h:123:1 changed: + typedef name changed from tbb::internal::scheduler_mutex_type to tbb::spin_rw_mutex at spin_rw_mutex.h:38:1 + underlying type 'class tbb::spin_mutex' at spin_mutex.h:47:1 changed: + type name changed from 'tbb::spin_mutex' to 'tbb::spin_rw_mutex_v3' + type size changed from 8 to 64 (in bits) + 1 base class insertion: + class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 + 1 data member change: + type of '__TBB_atomic_flag tbb::spin_mutex::flag' changed: + typedef name changed from __TBB_atomic_flag to tbb::spin_rw_mutex_v3::state_t at spin_rw_mutex.h:214:1 + underlying type 'typedef __TBB_Flag' at tbb_machine.h:875:1 changed: + typedef name changed from __TBB_Flag to intptr_t at stdint.h:119:1 + underlying type 'unsigned char' changed: + type name changed from 'unsigned char' to 'long int' + type size changed from 8 to 64 (in bits) + and name of 'tbb::spin_mutex::flag' changed to 'tbb::spin_rw_mutex_v3::state' at spin_rw_mutex.h:224:1 + 'intptr_t tbb::internal::market::my_global_top_priority' offset changed from 384 to 448 (in bits) (by +64 bits) + 'intptr_t tbb::internal::market::my_global_bottom_priority' offset changed from 448 to 512 (in bits) (by +64 bits) + 'uintptr_t tbb::internal::market::my_global_reload_epoch' offset changed from 512 to 576 (in bits) (by +64 bits) + type of 'tbb::internal::market::priority_level_info tbb::internal::market::my_priority_levels[3]' changed: + array element type 'struct tbb::internal::market::priority_level_info' changed: + type size hasn't changed + 1 data member change: + type of 'tbb::internal::intrusive_list_base, tbb::internal::arena>::iterator tbb::internal::market::priority_level_info::next_arena' changed: + entity changed from 'class tbb::internal::intrusive_list_base, tbb::internal::arena>::iterator' to 'tbb::internal::arena*' + type size hasn't changed + type size hasn't changed + and offset changed from 576 to 640 (in bits) (by +64 bits) + 'uintptr_t tbb::internal::market::my_arenas_aba_epoch' offset changed from 1536 to 1600 (in bits) (by +64 bits) + 'tbb::internal::generic_scheduler* tbb::internal::market::my_workers[1]' offset changed from 1600 to 1664 (in bits) (by +64 bits) + and offset changed from 768 to 896 (in bits) (by +128 bits) + 'tbb::internal::FastRandom tbb::internal::generic_scheduler::my_random' offset changed from 832 to 960 (in bits) (by +128 bits) + 'tbb::task* tbb::internal::generic_scheduler::my_free_list' offset changed from 960 to 1024 (in bits) (by +64 bits) + 'tbb::task* tbb::internal::generic_scheduler::my_dummy_task' offset changed from 1024 to 1088 (in bits) (by +64 bits) + 'long int tbb::internal::generic_scheduler::my_ref_count' offset changed from 1088 to 1152 (in bits) (by +64 bits) + 'bool tbb::internal::generic_scheduler::my_auto_initialized' offset changed from 1152 to 1216 (in bits) (by +64 bits) + 'intptr_t tbb::internal::generic_scheduler::my_small_task_count' offset changed from 1216 to 1280 (in bits) (by +64 bits) + 'tbb::task* tbb::internal::generic_scheduler::my_return_list' offset changed from 1280 to 1344 (in bits) (by +64 bits) + 'char tbb::internal::generic_scheduler::_padding1[112]' offset changed from 1344 to 1408 (in bits) (by +64 bits) + 'tbb::internal::context_list_node_t tbb::internal::generic_scheduler::my_context_list_head' offset changed from 2240 to 2304 (in bits) (by +64 bits) + 'tbb::spin_mutex tbb::internal::generic_scheduler::my_context_list_mutex' offset changed from 2368 to 2432 (in bits) (by +64 bits) + 'uintptr_t tbb::internal::generic_scheduler::my_context_state_propagation_epoch' offset changed from 2432 to 2496 (in bits) (by +64 bits) + 'tbb::atomic tbb::internal::generic_scheduler::my_local_ctx_list_update' offset changed from 2496 to 2560 (in bits) (by +64 bits) + 'uintptr_t tbb::internal::generic_scheduler::my_local_reload_epoch' offset changed from 2816 to 2752 (in bits) (by -64 bits) + 'volatile bool tbb::internal::generic_scheduler::my_pool_reshuffling_pending' offset changed from 2880 to 2816 (in bits) (by -64 bits) + 'tbb::atomic tbb::internal::generic_scheduler::my_nonlocal_ctx_list_update' offset changed from 2944 to 2880 (in bits) (by -64 bits) + '__cilk_tbb_unwatch_thunk tbb::internal::generic_scheduler::my_cilk_unwatch_thunk' offset changed from 3008 to 2944 (in bits) (by -64 bits) + + [C] 'method tbb::internal::concurrent_queue_base::concurrent_queue_base(std::size_t)' at concurrent_queue_v2.cpp:200:1 has some indirect sub-type changes: + implicit parameter 0 of type 'tbb::internal::concurrent_queue_base*' has sub-type changes: + in pointed to type 'class tbb::internal::concurrent_queue_base' at concurrent_queue_v2.h:41:1: + type size hasn't changed + 1 member function deletion: + 'method virtual tbb::internal::concurrent_queue_base::~concurrent_queue_base(int)' at concurrent_queue_v2.cpp:225:1 + 1 member function insertion: + 'method virtual tbb::internal::concurrent_queue_base::~concurrent_queue_base(int)' at concurrent_queue_v2.cpp:217:1 + no member function changes (4 filtered); + 1 data member change: + type of 'tbb::internal::concurrent_queue_rep* tbb::internal::concurrent_queue_base::my_rep' changed: + in pointed to type 'class tbb::internal::concurrent_queue_rep' at concurrent_queue_v2.cpp:102:1: + type size hasn't changed + 1 data member changes (2 filtered): + type of 'tbb::internal::concurrent_monitor tbb::internal::concurrent_queue_rep::items_avail' changed: type size hasn't changed - 2 data member changes (1 filtered): - type of 'tbb::internal::concurrent_monitor tbb::internal::concurrent_queue_rep::items_avail' changed: - type size hasn't changed - 1 data member change: - 'tbb::spin_mutex tbb::internal::concurrent_monitor::mutex_ec' offset changed from 0 to 8 (in bits) (by +8 bits) - type of 'tbb::internal::micro_queue tbb::internal::concurrent_queue_rep::array[8]' changed: - array element type 'struct tbb::internal::micro_queue' changed: - type size hasn't changed - 1 data member change: - type of 'tbb::spin_mutex tbb::internal::micro_queue::page_mutex' changed: - type size hasn't changed - 1 base class insertion: - class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 - type size hasn't changed + 1 data member change: + 'tbb::spin_mutex tbb::internal::concurrent_monitor::mutex_ec' offset changed from 0 to 8 (in bits) (by +8 bits) + + [C] 'method bool tbb::internal::hash_map_segment_base::internal_grow_predicate() const' at concurrent_hash_map.cpp:44:1 has some indirect sub-type changes: + implicit parameter 0 of type 'const tbb::internal::hash_map_segment_base*' has sub-type changes: + in pointed to type 'const tbb::internal::hash_map_segment_base': + in unqualified underlying type 'struct tbb::internal::hash_map_segment_base' at concurrent_hash_map.cpp:27:1: + type size hasn't changed + 1 data member change: + type of 'tbb::internal::hash_map_segment_base::segment_mutex_t tbb::internal::hash_map_segment_base::my_mutex' changed: + underlying type 'typedef tbb::spin_rw_mutex' at spin_rw_mutex.h:39:1 changed: + underlying type 'class tbb::spin_rw_mutex_v3' at spin_rw_mutex.h:43:1 changed: + type size hasn't changed + 1 base class insertion: + class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 + no data member change (1 filtered); [C] 'function void tbb::internal::throw_exception_v4(tbb::internal::exception_id)' at tbb_misc.cpp:119:1 has some indirect sub-type changes: parameter 1 of type 'enum tbb::internal::exception_id' has sub-type changes: @@ -59,153 +209,41 @@ 1 enumerator change: 'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1 - [C] 'method void tbb::mutex::scoped_lock::internal_acquire(tbb::mutex&)' at mutex.h:129:1 has some indirect sub-type changes: - parameter 1 of type 'tbb::mutex&' has sub-type changes: - in referenced type 'class tbb::mutex' at mutex.h:40:1: + [C] 'method void tbb::mutex::internal_construct()' at mutex.h:218:1 has some indirect sub-type changes: + implicit parameter 0 of type 'tbb::mutex*' has sub-type changes: + in pointed to type 'class tbb::mutex' at mutex.h:40:1: type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 - [C] 'method void tbb::pipeline::run(std::size_t, tbb::task_group_context&)' at pipeline.cpp:633:1 has some indirect sub-type changes: - parameter 2 of type 'tbb::task_group_context&' has sub-type changes: - in referenced type 'class tbb::task_group_context' at task.h:302:1: - type size hasn't changed - 1 data member insertion: - 'tbb::internal::cpu_ctl_env_space tbb::task_group_context::my_cpu_ctl_env', at offset 896 (in bits) at task.h:380:1 - 2 data member changes (1 filtered): - type of 'char tbb::task_group_context::_leading_padding[80]' changed: - type name changed from 'char[80]' to 'char[72]' - array type size changed from 640 to 576 - array type subrange 1 changed length from 80 to 72 - type of 'tbb::internal::generic_scheduler* tbb::task_group_context::my_owner' changed: - in pointed to type 'class tbb::internal::generic_scheduler' at scheduler.h:110:1: - type size changed from 3136 to 3072 (in bits) - 1 base class change: - 'struct tbb::internal::scheduler_state' at scheduler.h:73:1 changed: - type size changed from 576 to 704 (in bits) - 2 data member insertions: - 'volatile intptr_t* tbb::internal::scheduler_state::my_ref_top_priority', at offset 576 (in bits) at scheduler.h:96:1 - 'volatile uintptr_t* tbb::internal::scheduler_state::my_ref_reload_epoch', at offset 640 (in bits) at scheduler.h:99:1 - 2 data member changes (1 filtered): - type of 'tbb::internal::arena* tbb::internal::scheduler_state::my_arena' changed: - in pointed to type 'class tbb::internal::arena' at arena.h:160:1: - type size hasn't changed - 1 base class deletion: - struct tbb::internal::padded at tbb_stddef.h:261:1 - 1 base class insertion: - struct tbb::internal::padded at tbb_stddef.h:251:1 - 1 data member change: - type of 'tbb::internal::arena_slot tbb::internal::arena::my_slots[1]' changed: - array element type 'struct tbb::internal::arena_slot' changed: - type size hasn't changed - 2 base class deletions: - struct tbb::internal::padded at tbb_stddef.h:261:1 - struct tbb::internal::padded at tbb_stddef.h:261:1 - 2 base class insertions: - struct tbb::internal::padded at tbb_stddef.h:251:1 - struct tbb::internal::padded at tbb_stddef.h:251:1 - type size hasn't changed - type of 'tbb::internal::mail_inbox tbb::internal::scheduler_state::my_inbox' changed: - type size hasn't changed - 1 data member change: - type of 'tbb::internal::mail_outbox* tbb::internal::mail_inbox::my_putter' changed: - in pointed to type 'class tbb::internal::mail_outbox' at mailbox.h:103:1: - type size hasn't changed - 1 base class deletion: - class tbb::internal::unpadded_mail_outbox at mailbox.h:97:1 - 1 base class insertion: - struct tbb::internal::padded at tbb_stddef.h:251:1 - 1 data member deletion: - 'char tbb::internal::mail_outbox::pad[104]', at offset 136 (in bits) at mailbox.h:114:1 - 1 member function deletion: - 'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&, bool)' at scheduler.h:391:1, virtual at voffset 7/7 - 1 member function insertion: - 'method virtual tbb::task* tbb::internal::generic_scheduler::receive_or_steal_task(tbb::internal::reference_count&)' at scheduler.h:362:1, virtual at voffset 7/7 - 3 data member deletions: - 'unsigned int tbb::internal::generic_scheduler::hint_for_push', at offset 896 (in bits) at scheduler.h:171:1 - 'volatile intptr_t* tbb::internal::generic_scheduler::my_ref_top_priority', at offset 2560 (in bits) at scheduler.h:433:1 - 'volatile uintptr_t* tbb::internal::generic_scheduler::my_ref_reload_epoch', at offset 2752 (in bits) at scheduler.h:443:1 - 18 data member changes: - 'uintptr_t tbb::internal::generic_scheduler::my_stealing_threshold' offset changed from 704 to 832 (in bits) (by +128 bits) - type of 'tbb::internal::market* tbb::internal::generic_scheduler::my_market' changed: - in pointed to type 'class tbb::internal::market' at market.h:49:1: - type size changed from 1664 to 1728 (in bits) - 1 data member insertion: - 'bool tbb::internal::market::join_workers', at offset 384 (in bits) at market.h:88:1 - 7 data member changes: - type of 'tbb::internal::market::arenas_list_mutex_type tbb::internal::market::my_arenas_list_mutex' changed: - underlying type 'typedef tbb::internal::scheduler_mutex_type' at scheduler_common.h:123:1 changed: - typedef name changed from tbb::internal::scheduler_mutex_type to tbb::spin_rw_mutex at spin_rw_mutex.h:38:1 - underlying type 'class tbb::spin_mutex' at spin_mutex.h:47:1 changed: - type name changed from 'tbb::spin_mutex' to 'tbb::spin_rw_mutex_v3' - type size changed from 8 to 64 (in bits) - 1 base class insertion: - class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 - 1 data member change: - type of '__TBB_atomic_flag tbb::spin_mutex::flag' changed: - typedef name changed from __TBB_atomic_flag to tbb::spin_rw_mutex_v3::state_t at spin_rw_mutex.h:214:1 - underlying type 'typedef __TBB_Flag' at tbb_machine.h:875:1 changed: - typedef name changed from __TBB_Flag to intptr_t at stdint.h:119:1 - underlying type 'unsigned char' changed: - type name changed from 'unsigned char' to 'long int' - type size changed from 8 to 64 (in bits) - and name of 'tbb::spin_mutex::flag' changed to 'tbb::spin_rw_mutex_v3::state' at spin_rw_mutex.h:224:1 - 'intptr_t tbb::internal::market::my_global_top_priority' offset changed from 384 to 448 (in bits) (by +64 bits) - 'intptr_t tbb::internal::market::my_global_bottom_priority' offset changed from 448 to 512 (in bits) (by +64 bits) - 'uintptr_t tbb::internal::market::my_global_reload_epoch' offset changed from 512 to 576 (in bits) (by +64 bits) - type of 'tbb::internal::market::priority_level_info tbb::internal::market::my_priority_levels[3]' changed: - array element type 'struct tbb::internal::market::priority_level_info' changed: - type size hasn't changed - 1 data member change: - type of 'tbb::internal::intrusive_list_base, tbb::internal::arena>::iterator tbb::internal::market::priority_level_info::next_arena' changed: - entity changed from 'class tbb::internal::intrusive_list_base, tbb::internal::arena>::iterator' to 'tbb::internal::arena*' - type size hasn't changed - type size hasn't changed - and offset changed from 576 to 640 (in bits) (by +64 bits) - 'uintptr_t tbb::internal::market::my_arenas_aba_epoch' offset changed from 1536 to 1600 (in bits) (by +64 bits) - 'tbb::internal::generic_scheduler* tbb::internal::market::my_workers[1]' offset changed from 1600 to 1664 (in bits) (by +64 bits) - and offset changed from 768 to 896 (in bits) (by +128 bits) - 'tbb::internal::FastRandom tbb::internal::generic_scheduler::my_random' offset changed from 832 to 960 (in bits) (by +128 bits) - 'tbb::task* tbb::internal::generic_scheduler::my_free_list' offset changed from 960 to 1024 (in bits) (by +64 bits) - 'tbb::task* tbb::internal::generic_scheduler::my_dummy_task' offset changed from 1024 to 1088 (in bits) (by +64 bits) - 'long int tbb::internal::generic_scheduler::my_ref_count' offset changed from 1088 to 1152 (in bits) (by +64 bits) - 'bool tbb::internal::generic_scheduler::my_auto_initialized' offset changed from 1152 to 1216 (in bits) (by +64 bits) - 'intptr_t tbb::internal::generic_scheduler::my_small_task_count' offset changed from 1216 to 1280 (in bits) (by +64 bits) - 'tbb::task* tbb::internal::generic_scheduler::my_return_list' offset changed from 1280 to 1344 (in bits) (by +64 bits) - 'char tbb::internal::generic_scheduler::_padding1[112]' offset changed from 1344 to 1408 (in bits) (by +64 bits) - 'tbb::internal::context_list_node_t tbb::internal::generic_scheduler::my_context_list_head' offset changed from 2240 to 2304 (in bits) (by +64 bits) - 'tbb::spin_mutex tbb::internal::generic_scheduler::my_context_list_mutex' offset changed from 2368 to 2432 (in bits) (by +64 bits) - 'uintptr_t tbb::internal::generic_scheduler::my_context_state_propagation_epoch' offset changed from 2432 to 2496 (in bits) (by +64 bits) - 'tbb::atomic tbb::internal::generic_scheduler::my_local_ctx_list_update' offset changed from 2496 to 2560 (in bits) (by +64 bits) - 'uintptr_t tbb::internal::generic_scheduler::my_local_reload_epoch' offset changed from 2816 to 2752 (in bits) (by -64 bits) - 'volatile bool tbb::internal::generic_scheduler::my_pool_reshuffling_pending' offset changed from 2880 to 2816 (in bits) (by -64 bits) - 'tbb::atomic tbb::internal::generic_scheduler::my_nonlocal_ctx_list_update' offset changed from 2944 to 2880 (in bits) (by -64 bits) - '__cilk_tbb_unwatch_thunk tbb::internal::generic_scheduler::my_cilk_unwatch_thunk' offset changed from 3008 to 2944 (in bits) (by -64 bits) - - [C] 'method void tbb::queuing_mutex::scoped_lock::acquire(tbb::queuing_mutex&)' at queuing_mutex.h:84:1 has some indirect sub-type changes: - parameter 1 of type 'tbb::queuing_mutex&' has sub-type changes: - in referenced type 'class tbb::queuing_mutex' at queuing_mutex.h:45:1: + [C] 'method void tbb::queuing_mutex::internal_construct()' at queuing_mutex.h:106:1 has some indirect sub-type changes: + implicit parameter 0 of type 'tbb::queuing_mutex*' has sub-type changes: + in pointed to type 'class tbb::queuing_mutex' at queuing_mutex.h:45:1: type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 - [C] 'method void tbb::queuing_rw_mutex::scoped_lock::acquire(tbb::queuing_rw_mutex&, bool)' at queuing_rw_mutex.h:95:1 has some indirect sub-type changes: - parameter 1 of type 'tbb::queuing_rw_mutex&' has sub-type changes: - in referenced type 'class tbb::queuing_rw_mutex' at queuing_rw_mutex.h:47:1: + [C] 'method void tbb::queuing_rw_mutex::internal_construct()' at queuing_rw_mutex.h:146:1 has some indirect sub-type changes: + implicit parameter 0 of type 'tbb::queuing_rw_mutex*' has sub-type changes: + in pointed to type 'class tbb::queuing_rw_mutex' at queuing_rw_mutex.h:47:1: type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 - [C] 'method void tbb::recursive_mutex::scoped_lock::internal_acquire(tbb::recursive_mutex&)' at recursive_mutex.h:139:1 has some indirect sub-type changes: - parameter 1 of type 'tbb::recursive_mutex&' has sub-type changes: - in referenced type 'class tbb::recursive_mutex' at recursive_mutex.h:39:1: + [C] 'method void tbb::recursive_mutex::internal_construct()' at recursive_mutex.h:224:1 has some indirect sub-type changes: + implicit parameter 0 of type 'tbb::recursive_mutex*' has sub-type changes: + in pointed to type 'class tbb::recursive_mutex' at recursive_mutex.h:39:1: type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 - [C] 'method bool tbb::spin_mutex::scoped_lock::internal_try_acquire(tbb::spin_mutex&)' at spin_mutex.h:69:1 has some indirect sub-type changes: - parameter 1 of type 'tbb::spin_mutex&' has sub-type changes: - referenced type 'class tbb::spin_mutex' changed at spin_mutex.h:47:1, as reported earlier + [C] 'method tbb::thread_bound_filter::result_type tbb::thread_bound_filter::process_item()' at pipeline.cpp:712:1 has some indirect sub-type changes: + implicit parameter 0 of type 'tbb::thread_bound_filter*' has sub-type changes: + in pointed to type 'class tbb::thread_bound_filter' at pipeline.h:197:1: + type size hasn't changed + 1 base class change: + 'class tbb::filter' at pipeline.h:74:1 changed: + details were reported earlier 3 Removed variable symbols not referenced by debug info: diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt index b201cb46..a33b6150 100644 --- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt +++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt @@ -1,5 +1,5 @@ ================ changes of 'libtbb.so.2'=============== - Functions changes summary: 0 Removed, 7 Changed (17 filtered out), 17 Added functions + Functions changes summary: 0 Removed, 8 Changed (99 filtered out), 17 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable Function symbols changes summary: 0 Removed, 0 Added function symbol not referenced by debug info Variable symbols changes summary: 3 Removed, 0 Added variable symbols not referenced by debug info @@ -24,7 +24,24 @@ [A] 'method void tbb::internal::concurrent_queue_base_v8::move_content(tbb::internal::concurrent_queue_base_v8&)' {_ZN3tbb8internal24concurrent_queue_base_v812move_contentERS1_} [A] 'method void tbb::task_group_context::capture_fp_settings()' {_ZN3tbb18task_group_context19capture_fp_settingsEv} - 7 functions with some indirect sub-type change: + 8 functions with some indirect sub-type change: + + [C] 'method tbb::task& tbb::internal::allocate_root_with_context_proxy::allocate(std::size_t) const' at task.h:135:1 has some indirect sub-type changes: + implicit parameter 0 of type 'const tbb::internal::allocate_root_with_context_proxy*' has sub-type changes: + in pointed to type 'const tbb::internal::allocate_root_with_context_proxy': + in unqualified underlying type 'class tbb::internal::allocate_root_with_context_proxy' at task.h:131:1: + type size hasn't changed + 1 data member change: + type of 'tbb::task_group_context& tbb::internal::allocate_root_with_context_proxy::my_context' changed: + in referenced type 'class tbb::task_group_context' at task.h:302:1: + type size hasn't changed + 1 data member insertion: + 'tbb::internal::cpu_ctl_env_space tbb::task_group_context::my_cpu_ctl_env', at offset 896 (in bits) at task.h:380:1 + 1 data member changes (2 filtered): + type of 'char tbb::task_group_context::_leading_padding[80]' changed: + type name changed from 'char[80]' to 'char[72]' + array type size changed from 640 to 576 + array type subrange 1 changed length from 80 to 72 [C] 'function void tbb::internal::throw_exception_v4(tbb::internal::exception_id)' at tbb_misc.cpp:119:1 has some indirect sub-type changes: parameter 1 of type 'enum tbb::internal::exception_id' has sub-type changes: @@ -34,53 +51,50 @@ 1 enumerator change: 'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1 - [C] 'method void tbb::mutex::scoped_lock::internal_acquire(tbb::mutex&)' at mutex.h:129:1 has some indirect sub-type changes: - parameter 1 of type 'tbb::mutex&' has sub-type changes: - in referenced type 'class tbb::mutex' at mutex.h:40:1: + [C] 'method void tbb::mutex::internal_construct()' at mutex.h:218:1 has some indirect sub-type changes: + implicit parameter 0 of type 'tbb::mutex*' has sub-type changes: + in pointed to type 'class tbb::mutex' at mutex.h:40:1: type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 - [C] 'method void tbb::pipeline::run(std::size_t, tbb::task_group_context&)' at pipeline.cpp:633:1 has some indirect sub-type changes: - parameter 2 of type 'tbb::task_group_context&' has sub-type changes: - in referenced type 'class tbb::task_group_context' at task.h:302:1: - type size hasn't changed - 1 data member insertion: - 'tbb::internal::cpu_ctl_env_space tbb::task_group_context::my_cpu_ctl_env', at offset 896 (in bits) at task.h:380:1 - 1 data member changes (2 filtered): - type of 'char tbb::task_group_context::_leading_padding[80]' changed: - type name changed from 'char[80]' to 'char[72]' - array type size changed from 640 to 576 - array type subrange 1 changed length from 80 to 72 - - [C] 'method void tbb::queuing_mutex::scoped_lock::acquire(tbb::queuing_mutex&)' at queuing_mutex.h:84:1 has some indirect sub-type changes: - parameter 1 of type 'tbb::queuing_mutex&' has sub-type changes: - in referenced type 'class tbb::queuing_mutex' at queuing_mutex.h:45:1: + [C] 'method void tbb::queuing_mutex::internal_construct()' at queuing_mutex.h:106:1 has some indirect sub-type changes: + implicit parameter 0 of type 'tbb::queuing_mutex*' has sub-type changes: + in pointed to type 'class tbb::queuing_mutex' at queuing_mutex.h:45:1: type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 - [C] 'method void tbb::queuing_rw_mutex::scoped_lock::acquire(tbb::queuing_rw_mutex&, bool)' at queuing_rw_mutex.h:95:1 has some indirect sub-type changes: - parameter 1 of type 'tbb::queuing_rw_mutex&' has sub-type changes: - in referenced type 'class tbb::queuing_rw_mutex' at queuing_rw_mutex.h:47:1: + [C] 'method void tbb::queuing_rw_mutex::internal_construct()' at queuing_rw_mutex.h:146:1 has some indirect sub-type changes: + implicit parameter 0 of type 'tbb::queuing_rw_mutex*' has sub-type changes: + in pointed to type 'class tbb::queuing_rw_mutex' at queuing_rw_mutex.h:47:1: type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 - [C] 'method void tbb::recursive_mutex::scoped_lock::internal_acquire(tbb::recursive_mutex&)' at recursive_mutex.h:139:1 has some indirect sub-type changes: - parameter 1 of type 'tbb::recursive_mutex&' has sub-type changes: - in referenced type 'class tbb::recursive_mutex' at recursive_mutex.h:39:1: + [C] 'method void tbb::recursive_mutex::internal_construct()' at recursive_mutex.h:224:1 has some indirect sub-type changes: + implicit parameter 0 of type 'tbb::recursive_mutex*' has sub-type changes: + in pointed to type 'class tbb::recursive_mutex' at recursive_mutex.h:39:1: type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 - [C] 'method void tbb::spin_mutex::scoped_lock::internal_acquire(tbb::spin_mutex&)' at spin_mutex.h:66:1 has some indirect sub-type changes: - parameter 1 of type 'tbb::spin_mutex&' has sub-type changes: - in referenced type 'class tbb::spin_mutex' at spin_mutex.h:40:1: + [C] 'method void tbb::spin_mutex::internal_construct()' at spin_mutex.h:138:1 has some indirect sub-type changes: + implicit parameter 0 of type 'tbb::spin_mutex*' has sub-type changes: + in pointed to type 'class tbb::spin_mutex' at spin_mutex.h:40:1: type size hasn't changed 1 base class insertion: class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 + [C] 'method void tbb::spin_rw_mutex::internal_acquire_reader()' at spin_rw_mutex_v2.h:44:1 has some indirect sub-type changes: + parameter 1 of type 'tbb::spin_rw_mutex*' has sub-type changes: + in pointed to type 'typedef tbb::spin_rw_mutex' at spin_rw_mutex.h:38:1: + underlying type 'class tbb::spin_rw_mutex_v3' at spin_rw_mutex.h:43:1 changed: + type size hasn't changed + 1 base class insertion: + class tbb::internal::mutex_copy_deprecated_and_disabled at tbb_stddef.h:334:1 + no data member change (1 filtered); + 3 Removed variable symbols not referenced by debug info: [D] _ZTVN3rml16versioned_objectE diff --git a/tests/data/test-diff-suppr/test0-type-suppr-2.suppr b/tests/data/test-diff-suppr/test0-type-suppr-2.suppr index 0b9d00f5..9b9ed74c 100644 --- a/tests/data/test-diff-suppr/test0-type-suppr-2.suppr +++ b/tests/data/test-diff-suppr/test0-type-suppr-2.suppr @@ -1,2 +1,2 @@ [suppress_type] - name = MyType::private \ No newline at end of file + name = MyType::private diff --git a/tests/data/test-diff-suppr/test22-suppr-removed-var-sym-4.suppr b/tests/data/test-diff-suppr/test22-suppr-removed-var-sym-4.suppr index 79252b39..545ab8f6 100644 --- a/tests/data/test-diff-suppr/test22-suppr-removed-var-sym-4.suppr +++ b/tests/data/test-diff-suppr/test22-suppr-removed-var-sym-4.suppr @@ -2,4 +2,4 @@ symbol_name = global_var1 [suppress_variable] - symbol_name = global_var2 \ No newline at end of file + symbol_name = global_var2 diff --git a/tests/data/test-diff-suppr/test23-alias-filter-0.suppr b/tests/data/test-diff-suppr/test23-alias-filter-0.suppr index 40e47ef0..cd752c08 100644 --- a/tests/data/test-diff-suppr/test23-alias-filter-0.suppr +++ b/tests/data/test-diff-suppr/test23-alias-filter-0.suppr @@ -1,3 +1,3 @@ [suppress_function] name_regexp = ^__private_.*|^function. - allow_other_aliases = yes \ No newline at end of file + allow_other_aliases = yes diff --git a/tests/data/test-diff-suppr/test24-soname-report-0.txt b/tests/data/test-diff-suppr/test24-soname-report-0.txt index 9666a8fd..97239c74 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-0.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-0.txt @@ -1,3 +1,3 @@ -Functions changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added function +Functions changes summary: 0 Removed, 0 Changed (3 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable diff --git a/tests/data/test-diff-suppr/test24-soname-report-1.txt b/tests/data/test-diff-suppr/test24-soname-report-1.txt index 8e0c021f..19b88013 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-1.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-1.txt @@ -1,12 +1,13 @@ -Functions changes summary: 0 Removed, 1 Changed, 0 Added function +Functions changes summary: 0 Removed, 1 Changed (2 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 function with some indirect sub-type change: - [C] 'function void foo(S&)' has some indirect sub-type changes: - parameter 1 of type 'S&' has sub-type changes: - in referenced type 'struct S': - type size changed from 32 to 64 (in bits) - 1 data member insertion: - 'char S::m1', at offset 32 (in bits) + [C] 'method int S::get() const' has some indirect sub-type changes: + implicit parameter 0 of type 'const S*' has sub-type changes: + in pointed to type 'const S': + in unqualified underlying type 'struct S': + type size changed from 32 to 64 (in bits) + 1 data member insertion: + 'char S::m1', at offset 32 (in bits) diff --git a/tests/data/test-diff-suppr/test24-soname-report-10.txt b/tests/data/test-diff-suppr/test24-soname-report-10.txt index 8e0c021f..19b88013 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-10.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-10.txt @@ -1,12 +1,13 @@ -Functions changes summary: 0 Removed, 1 Changed, 0 Added function +Functions changes summary: 0 Removed, 1 Changed (2 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 function with some indirect sub-type change: - [C] 'function void foo(S&)' has some indirect sub-type changes: - parameter 1 of type 'S&' has sub-type changes: - in referenced type 'struct S': - type size changed from 32 to 64 (in bits) - 1 data member insertion: - 'char S::m1', at offset 32 (in bits) + [C] 'method int S::get() const' has some indirect sub-type changes: + implicit parameter 0 of type 'const S*' has sub-type changes: + in pointed to type 'const S': + in unqualified underlying type 'struct S': + type size changed from 32 to 64 (in bits) + 1 data member insertion: + 'char S::m1', at offset 32 (in bits) diff --git a/tests/data/test-diff-suppr/test24-soname-report-11.txt b/tests/data/test-diff-suppr/test24-soname-report-11.txt index 9666a8fd..97239c74 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-11.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-11.txt @@ -1,3 +1,3 @@ -Functions changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added function +Functions changes summary: 0 Removed, 0 Changed (3 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable diff --git a/tests/data/test-diff-suppr/test24-soname-report-12.txt b/tests/data/test-diff-suppr/test24-soname-report-12.txt index 8e0c021f..19b88013 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-12.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-12.txt @@ -1,12 +1,13 @@ -Functions changes summary: 0 Removed, 1 Changed, 0 Added function +Functions changes summary: 0 Removed, 1 Changed (2 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 function with some indirect sub-type change: - [C] 'function void foo(S&)' has some indirect sub-type changes: - parameter 1 of type 'S&' has sub-type changes: - in referenced type 'struct S': - type size changed from 32 to 64 (in bits) - 1 data member insertion: - 'char S::m1', at offset 32 (in bits) + [C] 'method int S::get() const' has some indirect sub-type changes: + implicit parameter 0 of type 'const S*' has sub-type changes: + in pointed to type 'const S': + in unqualified underlying type 'struct S': + type size changed from 32 to 64 (in bits) + 1 data member insertion: + 'char S::m1', at offset 32 (in bits) diff --git a/tests/data/test-diff-suppr/test24-soname-report-13.txt b/tests/data/test-diff-suppr/test24-soname-report-13.txt index 9666a8fd..97239c74 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-13.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-13.txt @@ -1,3 +1,3 @@ -Functions changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added function +Functions changes summary: 0 Removed, 0 Changed (3 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable diff --git a/tests/data/test-diff-suppr/test24-soname-report-14.txt b/tests/data/test-diff-suppr/test24-soname-report-14.txt index 8e0c021f..19b88013 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-14.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-14.txt @@ -1,12 +1,13 @@ -Functions changes summary: 0 Removed, 1 Changed, 0 Added function +Functions changes summary: 0 Removed, 1 Changed (2 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 function with some indirect sub-type change: - [C] 'function void foo(S&)' has some indirect sub-type changes: - parameter 1 of type 'S&' has sub-type changes: - in referenced type 'struct S': - type size changed from 32 to 64 (in bits) - 1 data member insertion: - 'char S::m1', at offset 32 (in bits) + [C] 'method int S::get() const' has some indirect sub-type changes: + implicit parameter 0 of type 'const S*' has sub-type changes: + in pointed to type 'const S': + in unqualified underlying type 'struct S': + type size changed from 32 to 64 (in bits) + 1 data member insertion: + 'char S::m1', at offset 32 (in bits) diff --git a/tests/data/test-diff-suppr/test24-soname-report-15.txt b/tests/data/test-diff-suppr/test24-soname-report-15.txt index 9666a8fd..97239c74 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-15.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-15.txt @@ -1,3 +1,3 @@ -Functions changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added function +Functions changes summary: 0 Removed, 0 Changed (3 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable diff --git a/tests/data/test-diff-suppr/test24-soname-report-16.txt b/tests/data/test-diff-suppr/test24-soname-report-16.txt index 8e0c021f..19b88013 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-16.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-16.txt @@ -1,12 +1,13 @@ -Functions changes summary: 0 Removed, 1 Changed, 0 Added function +Functions changes summary: 0 Removed, 1 Changed (2 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 function with some indirect sub-type change: - [C] 'function void foo(S&)' has some indirect sub-type changes: - parameter 1 of type 'S&' has sub-type changes: - in referenced type 'struct S': - type size changed from 32 to 64 (in bits) - 1 data member insertion: - 'char S::m1', at offset 32 (in bits) + [C] 'method int S::get() const' has some indirect sub-type changes: + implicit parameter 0 of type 'const S*' has sub-type changes: + in pointed to type 'const S': + in unqualified underlying type 'struct S': + type size changed from 32 to 64 (in bits) + 1 data member insertion: + 'char S::m1', at offset 32 (in bits) diff --git a/tests/data/test-diff-suppr/test24-soname-report-2.txt b/tests/data/test-diff-suppr/test24-soname-report-2.txt index 9666a8fd..97239c74 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-2.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-2.txt @@ -1,3 +1,3 @@ -Functions changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added function +Functions changes summary: 0 Removed, 0 Changed (3 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable diff --git a/tests/data/test-diff-suppr/test24-soname-report-3.txt b/tests/data/test-diff-suppr/test24-soname-report-3.txt index 9666a8fd..97239c74 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-3.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-3.txt @@ -1,3 +1,3 @@ -Functions changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added function +Functions changes summary: 0 Removed, 0 Changed (3 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable diff --git a/tests/data/test-diff-suppr/test24-soname-report-4.txt b/tests/data/test-diff-suppr/test24-soname-report-4.txt index 8e0c021f..19b88013 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-4.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-4.txt @@ -1,12 +1,13 @@ -Functions changes summary: 0 Removed, 1 Changed, 0 Added function +Functions changes summary: 0 Removed, 1 Changed (2 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 function with some indirect sub-type change: - [C] 'function void foo(S&)' has some indirect sub-type changes: - parameter 1 of type 'S&' has sub-type changes: - in referenced type 'struct S': - type size changed from 32 to 64 (in bits) - 1 data member insertion: - 'char S::m1', at offset 32 (in bits) + [C] 'method int S::get() const' has some indirect sub-type changes: + implicit parameter 0 of type 'const S*' has sub-type changes: + in pointed to type 'const S': + in unqualified underlying type 'struct S': + type size changed from 32 to 64 (in bits) + 1 data member insertion: + 'char S::m1', at offset 32 (in bits) diff --git a/tests/data/test-diff-suppr/test24-soname-report-5.txt b/tests/data/test-diff-suppr/test24-soname-report-5.txt index 9666a8fd..97239c74 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-5.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-5.txt @@ -1,3 +1,3 @@ -Functions changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added function +Functions changes summary: 0 Removed, 0 Changed (3 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable diff --git a/tests/data/test-diff-suppr/test24-soname-report-6.txt b/tests/data/test-diff-suppr/test24-soname-report-6.txt index 9666a8fd..97239c74 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-6.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-6.txt @@ -1,3 +1,3 @@ -Functions changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added function +Functions changes summary: 0 Removed, 0 Changed (3 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable diff --git a/tests/data/test-diff-suppr/test24-soname-report-7.txt b/tests/data/test-diff-suppr/test24-soname-report-7.txt index 9666a8fd..97239c74 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-7.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-7.txt @@ -1,3 +1,3 @@ -Functions changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added function +Functions changes summary: 0 Removed, 0 Changed (3 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable diff --git a/tests/data/test-diff-suppr/test24-soname-report-8.txt b/tests/data/test-diff-suppr/test24-soname-report-8.txt index 9666a8fd..97239c74 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-8.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-8.txt @@ -1,3 +1,3 @@ -Functions changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added function +Functions changes summary: 0 Removed, 0 Changed (3 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable diff --git a/tests/data/test-diff-suppr/test24-soname-report-9.txt b/tests/data/test-diff-suppr/test24-soname-report-9.txt index 9666a8fd..97239c74 100644 --- a/tests/data/test-diff-suppr/test24-soname-report-9.txt +++ b/tests/data/test-diff-suppr/test24-soname-report-9.txt @@ -1,3 +1,3 @@ -Functions changes summary: 0 Removed, 0 Changed (1 filtered out), 0 Added function +Functions changes summary: 0 Removed, 0 Changed (3 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable diff --git a/tests/data/test-diff-suppr/test28-add-aliased-function-1.suppr b/tests/data/test-diff-suppr/test28-add-aliased-function-1.suppr index 797c3364..47508bae 100644 --- a/tests/data/test-diff-suppr/test28-add-aliased-function-1.suppr +++ b/tests/data/test-diff-suppr/test28-add-aliased-function-1.suppr @@ -1,3 +1,3 @@ [suppress_function] name_regexp = bar - change_kind = added-function \ No newline at end of file + change_kind = added-function diff --git a/tests/data/test-diff-suppr/test28-add-aliased-function-2.suppr b/tests/data/test-diff-suppr/test28-add-aliased-function-2.suppr index 58243db7..f2075a24 100644 --- a/tests/data/test-diff-suppr/test28-add-aliased-function-2.suppr +++ b/tests/data/test-diff-suppr/test28-add-aliased-function-2.suppr @@ -1,3 +1,3 @@ [suppress_function] name_regexp = bar|baz - change_kind = added-function \ No newline at end of file + change_kind = added-function diff --git a/tests/data/test-diff-suppr/test28-add-aliased-function-3.suppr b/tests/data/test-diff-suppr/test28-add-aliased-function-3.suppr index 7e44b2c0..3b3b5189 100644 --- a/tests/data/test-diff-suppr/test28-add-aliased-function-3.suppr +++ b/tests/data/test-diff-suppr/test28-add-aliased-function-3.suppr @@ -1,3 +1,3 @@ [suppress_function] symbol_name = bar - change_kind = added-function \ No newline at end of file + change_kind = added-function diff --git a/tests/data/test-diff-suppr/test28-add-aliased-function-4.suppr b/tests/data/test-diff-suppr/test28-add-aliased-function-4.suppr index 3e50224d..1acf616a 100644 --- a/tests/data/test-diff-suppr/test28-add-aliased-function-4.suppr +++ b/tests/data/test-diff-suppr/test28-add-aliased-function-4.suppr @@ -1,3 +1,3 @@ [suppress_function] symbol_name_regexp = bar - change_kind = added-function \ No newline at end of file + change_kind = added-function diff --git a/tests/data/test-diff-suppr/test31-report-1.txt b/tests/data/test-diff-suppr/test31-report-1.txt index 43f36101..5e29177c 100644 --- a/tests/data/test-diff-suppr/test31-report-1.txt +++ b/tests/data/test-diff-suppr/test31-report-1.txt @@ -1,11 +1,11 @@ -Functions changes summary: 0 Removed, 1 Changed, 0 Added function +Functions changes summary: 0 Removed, 1 Changed (1 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 function with some indirect sub-type change: - [C] 'function void hidden::foo(hidden::S0&)' has some indirect sub-type changes: - parameter 1 of type 'hidden::S0&' has sub-type changes: - in referenced type 'struct hidden::S0': + [C] 'method hidden::S0::S0(int)' has some indirect sub-type changes: + implicit parameter 0 of type 'hidden::S0*' has sub-type changes: + in pointed to type 'struct hidden::S0': type size changed from 32 to 64 (in bits) 1 data member insertion: 'char hidden::S0::m1', at offset 32 (in bits) diff --git a/tests/data/test-diff-suppr/test33-report-0.txt b/tests/data/test-diff-suppr/test33-report-0.txt index 29d6cf55..07f68123 100644 --- a/tests/data/test-diff-suppr/test33-report-0.txt +++ b/tests/data/test-diff-suppr/test33-report-0.txt @@ -1,4 +1,4 @@ -Functions changes summary: 0 Removed, 1 Changed, 0 Added function +Functions changes summary: 0 Removed, 1 Changed (2 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 function with some indirect sub-type change: diff --git a/tests/data/test-diff-suppr/test38-char-class-in-ini.abignore b/tests/data/test-diff-suppr/test38-char-class-in-ini.abignore index 07f3f91f..e96240cd 100644 --- a/tests/data/test-diff-suppr/test38-char-class-in-ini.abignore +++ b/tests/data/test-diff-suppr/test38-char-class-in-ini.abignore @@ -1,4 +1,4 @@ [suppress_function] - filename_regexp = ^test38-char-class-in-ini-v[[:digit:]].* + file_name_regexp = test38-char-class-in-ini-v[[:digit:]].* symbol_name_regexp = bar change_kind = added-function diff --git a/tests/data/test-diff-suppr/test41-enumerator-changes-0.suppr b/tests/data/test-diff-suppr/test41-enumerator-changes-0.suppr index e6bdf779..7f98af41 100644 --- a/tests/data/test-diff-suppr/test41-enumerator-changes-0.suppr +++ b/tests/data/test-diff-suppr/test41-enumerator-changes-0.suppr @@ -1,4 +1,4 @@ [suppress_type] type_kind = enum name = EnumType1 - changed_enumerators = enum_count \ No newline at end of file + changed_enumerators = enum_count diff --git a/tests/data/test-diff-suppr/test7-var-suppr-7.suppr b/tests/data/test-diff-suppr/test7-var-suppr-7.suppr index 70bf1d37..3c584476 100644 --- a/tests/data/test-diff-suppr/test7-var-suppr-7.suppr +++ b/tests/data/test-diff-suppr/test7-var-suppr-7.suppr @@ -1,3 +1,3 @@ [suppress_variable] name = var1 - type_name = S1* \ No newline at end of file + type_name = S1* diff --git a/tests/data/test-ini/test01-equal-in-property-string.abignore b/tests/data/test-ini/test01-equal-in-property-string.abignore index 8c70b460..ffeee66b 100644 --- a/tests/data/test-ini/test01-equal-in-property-string.abignore +++ b/tests/data/test-ini/test01-equal-in-property-string.abignore @@ -1,4 +1,4 @@ [suppress_file] # Somme comment label = Libabigail can't handle libgfortran.so (https://sourceware.org/bugzilla/show_bug.cgi?id=23492) - file_name_regexp = libgfortran\\.so.* \ No newline at end of file + file_name_regexp = libgfortran\\.so.* diff --git a/tests/data/test-kmi-whitelist/symbol-list-with-another-single-entry b/tests/data/test-kmi-whitelist/symbol-list-with-another-single-entry new file mode 100644 index 00000000..beebb25b --- /dev/null +++ b/tests/data/test-kmi-whitelist/symbol-list-with-another-single-entry @@ -0,0 +1,2 @@ +[abi_symbol_list] + test_another_symbol diff --git a/tests/data/test-kmi-whitelist/symbol-list-with-duplicate-entry b/tests/data/test-kmi-whitelist/symbol-list-with-duplicate-entry new file mode 100644 index 00000000..1537efca --- /dev/null +++ b/tests/data/test-kmi-whitelist/symbol-list-with-duplicate-entry @@ -0,0 +1,3 @@ +[abi_symbol_list] + test_symbol + test_symbol diff --git a/tests/data/test-kmi-whitelist/symbol-list-with-single-entry b/tests/data/test-kmi-whitelist/symbol-list-with-single-entry new file mode 100644 index 00000000..a63b7096 --- /dev/null +++ b/tests/data/test-kmi-whitelist/symbol-list-with-single-entry @@ -0,0 +1,2 @@ +[abi_symbol_list] + test_symbol diff --git a/tests/data/test-kmi-whitelist/symbol-list-with-two-sections b/tests/data/test-kmi-whitelist/symbol-list-with-two-sections new file mode 100644 index 00000000..f8e77b73 --- /dev/null +++ b/tests/data/test-kmi-whitelist/symbol-list-with-two-sections @@ -0,0 +1,5 @@ +[abi_symbol_list] + test_symbol1 + +[abi2_symbol_list] + test_symbol2 diff --git a/tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi b/tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi index a156b274..16ea5f1e 100644 --- a/tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi +++ b/tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi @@ -163,7 +163,7 @@ - + @@ -1031,13 +1031,13 @@ - + - + @@ -1072,13 +1072,13 @@ - + - + diff --git a/tests/data/test-read-dwarf/PR22122-libftdc.so.abi b/tests/data/test-read-dwarf/PR22122-libftdc.so.abi index d2fead61..e3242c53 100644 --- a/tests/data/test-read-dwarf/PR22122-libftdc.so.abi +++ b/tests/data/test-read-dwarf/PR22122-libftdc.so.abi @@ -247,899 +247,891 @@ - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - + - - + + - - - + + + - - - + + + - + - + - + - - + + - - - + + + - - - + + + - - + + - + - + - - + + - + - + - - + + - - - + + + - + - + - - + + - - + + - + - - + + - + - + - + - + - - - - + + + + - + - + - + - - + + - - + + - + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - + - - - + + + - + - - + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - + - + - - - + + + - - - - + + + + - + - + - + - + - - - + + + - - - - + + + + - - + + - + - - - + + + - - - - + + + + - - - + + + - - + + - - + + - + - - - + + + - + - - - + + + - + - - - - + + + + - + - - - - + + + + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - + - - + + - - - + + + - + - + - - + + - + - - - + + + - - - - + + + + - + - - + + - - + + - - - - - + + + + + - - - - - + + + + + - + - - + + - + - + - - - - + + + + - - + + - + @@ -1147,4323 +1139,4303 @@ - - + + - - + + - - - + + + - - + + - - - + + + - + - + - - - + + + - - - + + + - - - + + + - - + + - + - - + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - - - + + + + - + - - + + - + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - + - + - - - + + + - - - - + + + + - + - - + + - - - + + + - + - + - + - + - + - - - - + + + + - - - - + + + + - + - + - + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - + - - + + - + - - + + - + - - - - + + + + - - - - - + + + + + - - + + - - - - - + + + + + - - - + + + - - + + - - - + + + - + - - + + - + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - + + + + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - + + - + - - - + + + - - + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - - - + + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - + + - + - - - + + + - - - + + + - - - - - + + + + + - - - - + + + + - - + + - + - - - - + + + + - - - + + + - - + + - - - - - + + + + + - - + + - + - - + + - + - + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - + - + - - - + + + - - - - - + + + + + - - + + - + - - + + - + - + - - + + - - - + + + - - - - + + + + - - - + + + + + - - - + - - - + + + - + - - - - + + + + - - - + + + + + + - - - - + - - - - + + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - + - - - - - - - - + + + + + + + + - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - + - + - + - - - + + + - - + + - + - - + + - - + + - - - + + + - + - + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - + + + + - - + + - - - + + + - + - - - - + + + + - + - - - + + + - + - - - - + + + + - + - - - - + + + + - - - - + + + + - - + + - + - + - + - + - - - + + + - - - + + + - + - - - + + + - - - + + + - + - - - - + + + + - - - - + + + + - + - - - + + + - + - - - - + + + + - - - + + + - - - + + + - + - - - - + + + + - + - - + + - + - - - + + + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - - - + + + - - + + - - + + - - + + - + - - - + + + - - - - - + + + + + - + - - + + - + - + - + - + - + - + - - + + - + - - + + - + - - - + + + - - - + + + - + - + - + - + - - + + - + - - + + - - + + - - - + + + - + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - + - - - - + + + + - + - - - - + + + + - + - - - - + + + + - - - - + + + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - + - - - - + + + + - - - - + + + + - + - - - - + + + + - - - + + + - + - - + + - - - + + + - - + + - - - + + + - - + + - + - + - + - - - - + + + + - - + + - - - - - + + + + + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + + - - - + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + - + - - + + - - + + - - - + + + - + - + - + - + - - - + + + - - - - - - - + + + + + + + - + - - - + + + - - + + - + - - + + - - + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - + - + - - - + + + - - - + + + - - + + - + - + - - - + + + - + - + - + - - + + - - - - + + + + - - + + - - - + + + - + - - - - + + + + - + - - - - - + + + + + - + - - - + + + - + - - - + + + - + - + - + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - - + + + - + - - - - + + + + - + - - - - + + + + - + - + - - + + - + - - - + + + - - - + + + - - - + + + - + - + - - + + - + - + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - + + - + - + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - + - + - + - - - - + + + + - + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - + - - - + + + - - - + + + - - - - + + + + - + - + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - + - - - - - + + + + + - + - - - - - + + + + + - + - - + + - - + + - + - + - + - + - - + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + - - - + + + - - + + - - + + - + - - + + - - + + - + - + - + - + - - + + - - + + - - - - - - + + + + + + - - - + + + - - + + - + - - - + + + - - + + - - + + - - + + - + - - + + - + - + - - - + + + - - - + + + - + - + - - - + + + - - - + + + - - - + + + - - + + - + - + - - + + - - - - - + + + + + - + - + - + - + - + - + - + - - + + - - + + - + - + - - - + + + - - + + - - - + + + - + - - - - - + + + + + - + - - + + - - + + - + - - - + + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - + + - - - - + + + + - - - + + + - + - - - + + + - + - - - + + + - + - - + + - - + + - + - - + + - + - - + + - - + + - + - - - - + + + + - - - - + + + + - + - - - + + + - - + + - + - - + + - - + + - + - - - + + + - - - + + + - + - - - + + + - + - - - + + + - + - - - - - + + + + + - + - + - - - - + + + + - - + + - - - + + + - + - + - - + + - - + + - - + + - - - + + + - + - - - + + + - + - - - - + + + + - - - + + + - + - - + + - + - + - - - + + + - + - + - + - + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - - + + + - + - - - + + + - - - + + + - + - + - - + + - - + + - + - - + + - + - + - - - - - - + + + + + + - - + + - + - + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - - + + + - - - + + + - - - + + + @@ -5471,788 +5443,774 @@ - - - - + + + + - + - + - - - - - - - - + + + + + + + + - + - - + + - - + + - - + + - - + + - - - - - + + + + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - + - + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - + + - + - + - - - - + + + + - - - - + + + + - - - - + + + + - + - - - + + + - - - - - + + + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - + - - - + + + - + - - - + + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - + + - + - + - - - - - - + + + + + + - - - - + + + + - + - - - - - - + + + + + + - + - + - + - + - + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - + - + - - - - - - + + + + + + - - - - - - + + + + + + - + - + - - - + + + - - - - + + + + - + - - - - - - + + + + + + - - + + - + - + - - - - - - + + + + + + - - - + + + - + - - - + + + - + - + - + - - + + - + - - + + - - - - + + + + - - - - + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - + - + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - - + + + - + - - + + - - - + + + - + - - + + - - - + + + - + - + - - + + - - + + - + - - - + + + - + - - - + + + - - + + - - + + @@ -6260,867 +6218,867 @@ - + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - - - + + + - - - + + + - - + + - + - + - + - - + + - - + + - - + + - - + + - - - - - - + + + + + + - - - + + + - - - - + + + + - + - + - - - - + + + + - + - - + + - - - + + + - + - + - + - - - - - + + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - + + + + - - - + + + - + - + - - + + - + - - - + + + - - - - + + + + - - + + - + - - - + + + - - - + + + - + - + - + - + - - - - + + + + - - + + - - - - - + + + + + - + - + - - - + + + - - + + - - - + + + - - + + - + - + - + - - - - + + + + - - + + - + - - + + - - - - + + + + - - + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - - - + + + + - + - - - - + + + + - + - + - + - - - - - + + + + + - + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - + - - - - - - + + + + + + - + - - - - + + + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - - + + + + - + - + - - - + + + - + - - - + + + - + - - - + + + - + - + - - - + + + - - - + + + - - - + + + - - + + - + - + - - - + + + - + - + - + - + - - - - + + + + - + - - - - + + + + - + - + - - + + - + - - + + - + - + - - + + - - - + + + - + - - + + - - + + - + - - - - - + + + + + - - + + - - + + - - - - - + + + + + - - + + - - + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - + + - + - - + + - - - + + + - + - + - - - + + + - - - + + + - - + + - - + + - + - - - - - - + + + + + + - - + + - - + + - - + + - - + + - + - - - + + + - - - + + + - + - - - + + + @@ -7128,444 +7086,451 @@ - - + + + + + + + + - - + + - - + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - + - + - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + + + + + + + - + - - - + + + - + - - + + - + - - - - + + + + - - + + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - - - - + + + + + - - - + + + - - - - + + + + - - - + + + - - - - - + + + + + - + - - + + - - - - + + + + - + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - + - - - - - + + + + + - + - - - - - + + + + + - + - - - + + + - - - + + + - - - + + + - + - - - - + + + + - + - - - - + + + + - + - + - + - - - + + + - - - + + + - + - + - - + + - + - + - + - + - - - - - - + + + + + + - - + + - - + + - - + + - - + + - - - + + + - + - + - + - + - + - - + + - - + + - - - - - - - - + + + + + + + + - + - + - + - + - - + + - - - - + + + + - - - + + + - - - - + + + + - + - - - + + + - - - + + + - - - + + + @@ -7573,235 +7538,238 @@ - - + + + + + - + - + - + - - - + + + - - - + + + - - - + + + - + - + - - - - - + + + + + - + - + - + - - - + + + - - - + + + - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - - + + - + - + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - + - - - - - - + + + + + + - - + + - - + + - + - - - + + + - + - + - - + + - - + + - + - - + + - + - - + + - + - + - + - - - + + + @@ -7809,846 +7777,852 @@ - - + + + + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - - - + + + - + - - - + + + - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - + - - - - - - + + + + + + - - + + - - - + + + - - - + + + - + - - - - - - - - - + + + + + + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - - - - - - - - + + + + + + + + - - + + - - + + - - - + + + - - + + - - + + - + - + - - - + + + - + - + - + - + - + - - - - + + + + - - - - + + + + - + - + - - - - + + + + - + - + - - - - + + + + - + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - - + + + - + - - + + - - + + - - + + - - + + - + - + - - + + - + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - - - + + + - + - + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - + + + + - - + + - + - - - + + + - - - + + + - - - - + + + + - - + + - + - - - - + + + + - + - - - + + + - + - - - + + + - - - + + + - - + + - - - - + + + + - + - - + + - + - + - + - + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - - - + + + - - - + + + - - - + + + @@ -8657,28 +8631,28 @@ - - + + - + - - - - - - + + + + + + - + - - + + diff --git a/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi b/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi index 7afee59b..a8f632be 100644 --- a/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi +++ b/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi @@ -295,7 +295,7 @@ - + @@ -763,30 +763,23 @@ - - - - - - - - - - - + - + + + + - - + + - + @@ -796,7 +789,15 @@ - + + + + + + + + + @@ -985,7 +986,7 @@ - + @@ -1501,7 +1502,7 @@ - + @@ -1604,10 +1605,10 @@ - + - + @@ -1625,16 +1626,16 @@ - + - + - + - + @@ -1668,7 +1669,7 @@ - + @@ -1676,7 +1677,7 @@ - + @@ -1943,7 +1944,7 @@ - + @@ -2289,7 +2290,7 @@ - + @@ -2362,7 +2363,7 @@ - + @@ -2370,7 +2371,7 @@ - + @@ -2632,7 +2633,7 @@ - + @@ -2803,7 +2804,7 @@ - + @@ -2935,7 +2936,7 @@ - + @@ -2973,7 +2974,7 @@ - + @@ -3026,102 +3027,39 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + @@ -3140,16 +3078,16 @@ - + - + - + - + @@ -3164,7 +3102,7 @@ - + @@ -3182,27 +3120,27 @@ - + - + - - + + - + - + @@ -3218,80 +3156,80 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -3299,7 +3237,7 @@ - + @@ -3308,35 +3246,54 @@ - + - + - + - + - + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -3345,7 +3302,7 @@ - + @@ -3353,10 +3310,10 @@ - + - + @@ -3367,35 +3324,77 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + @@ -3410,13 +3409,13 @@ - + - + - + @@ -3500,28 +3499,28 @@ - + - + - + - + - + - + @@ -3533,16 +3532,16 @@ - + - + - + @@ -3562,25 +3561,25 @@ - + - + - + - + - + @@ -3595,25 +3594,25 @@ - + - - + + - + - - + + - + - + @@ -3621,49 +3620,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -3671,7 +3670,7 @@ - + @@ -3680,73 +3679,73 @@ - + - + - + - + - + - + - + - + - - + + - + - - - + + + - + - - + + - + - - - + + + - + - + - - + + - - + + @@ -3757,37 +3756,37 @@ - + - + - + - + - + - + - + - + - + @@ -3835,19 +3834,19 @@ - + - + - + - + - + @@ -3856,22 +3855,22 @@ - + - + - + - + @@ -3889,28 +3888,28 @@ - + - + - + - + - + - + @@ -3967,13 +3966,13 @@ - + - + - + @@ -4015,10 +4014,10 @@ - + - + @@ -4036,7 +4035,7 @@ - + @@ -4057,7 +4056,7 @@ - + @@ -4072,40 +4071,40 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -4120,7 +4119,7 @@ - + @@ -4129,7 +4128,7 @@ - + @@ -4141,49 +4140,49 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -4198,7 +4197,7 @@ - + @@ -4210,22 +4209,22 @@ - + - + - + - + @@ -4240,16 +4239,16 @@ - + - + - + @@ -4273,16 +4272,16 @@ - + - + - + @@ -4294,7 +4293,7 @@ - + @@ -4306,10 +4305,10 @@ - + - + @@ -4318,39 +4317,39 @@ - + - + - + - + - + - + - - + + - + - + @@ -4358,15 +4357,15 @@ - - + + - + - + - + @@ -4396,25 +4395,25 @@ - + - + - + - + - + - + @@ -4422,7 +4421,7 @@ - + @@ -4505,7 +4504,7 @@ - + @@ -4531,10 +4530,10 @@ - + - + @@ -4542,7 +4541,7 @@ - + @@ -4562,19 +4561,19 @@ - + - + - + - + - + @@ -4618,24 +4617,24 @@ - + - + - + - + - + - + - + @@ -4647,49 +4646,49 @@ - + - + - - + + - + - + - + - + - + - + - + - + @@ -4725,46 +4724,46 @@ - + - + - + - + - - - + + + - + - + - - + + - + - + - + @@ -4778,7 +4777,7 @@ - + @@ -4792,7 +4791,7 @@ - + @@ -4803,7 +4802,7 @@ - + @@ -4811,7 +4810,7 @@ - + @@ -4819,28 +4818,28 @@ - + - + - + - + - + - + - + - + - + @@ -4855,58 +4854,58 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + @@ -4921,11 +4920,11 @@ - - - + + + - + @@ -4948,15 +4947,15 @@ - + - + - + @@ -4968,13 +4967,13 @@ - + - + @@ -4989,7 +4988,7 @@ - + @@ -5004,17 +5003,17 @@ - + - + - + - + @@ -5023,18 +5022,18 @@ - + - + - + @@ -5042,10 +5041,10 @@ - + - + @@ -5056,9 +5055,9 @@ - + - + @@ -5088,78 +5087,78 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + @@ -5171,7 +5170,7 @@ - + @@ -5186,18 +5185,18 @@ - + - + - + - - - + + + @@ -5205,7 +5204,7 @@ - + @@ -5213,60 +5212,60 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5274,24 +5273,24 @@ - + - + - + - + - + - + @@ -5299,43 +5298,43 @@ - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -5359,12 +5358,12 @@ - + - + - + @@ -5385,9 +5384,9 @@ - + - + @@ -5396,7 +5395,7 @@ - + @@ -5404,35 +5403,35 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -5447,7 +5446,7 @@ - + @@ -5480,19 +5479,19 @@ - + - + - + - + @@ -5507,13 +5506,13 @@ - + - + - + @@ -5534,7 +5533,7 @@ - + @@ -5579,7 +5578,7 @@ - + @@ -5588,13 +5587,13 @@ - + - + @@ -5606,22 +5605,22 @@ - + - + - + - - + + @@ -5634,9 +5633,9 @@ - + - + @@ -5645,7 +5644,7 @@ - + @@ -5656,8 +5655,8 @@ - - + + @@ -5665,7 +5664,7 @@ - + @@ -5699,12 +5698,12 @@ - + - + @@ -5715,49 +5714,49 @@ - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + @@ -5772,10 +5771,10 @@ - + - + @@ -5784,32 +5783,32 @@ - + - + - + - + - + - + - + - + @@ -5817,13 +5816,13 @@ - - + + - + - + @@ -5834,57 +5833,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -5892,20 +5891,20 @@ - + - + - + - + - + @@ -5914,33 +5913,33 @@ - + - + - - + + - + - + - + - + - + @@ -5951,7 +5950,7 @@ - + @@ -5959,7 +5958,7 @@ - + @@ -5967,7 +5966,7 @@ - + @@ -5978,16 +5977,16 @@ - - + + - - + + - + @@ -5996,60 +5995,61 @@ - + - + - + - + - + - + - - - - - - - - - - - + + + + - + - + - + - - + + + + + + + + + + - + @@ -6064,12 +6064,12 @@ - + - + - + @@ -6081,25 +6081,25 @@ - + - + - - + + - + - + @@ -6120,13 +6120,13 @@ - + - + - + @@ -6167,7 +6167,7 @@ - + @@ -6175,10 +6175,10 @@ - + - + @@ -6192,7 +6192,7 @@ - + @@ -6209,24 +6209,24 @@ - + - + - + - + - + - + - + @@ -6234,9 +6234,17 @@ - + + + + + + - + + + + @@ -6314,7 +6322,7 @@ - + @@ -6348,7 +6356,7 @@ - + @@ -6357,12 +6365,12 @@ - + - + @@ -6376,7 +6384,7 @@ - + @@ -6636,7 +6644,7 @@ - + @@ -6788,7 +6796,7 @@ - + @@ -6946,10 +6954,10 @@ - + - + @@ -6997,7 +7005,7 @@ - + @@ -7124,7 +7132,7 @@ - + @@ -7140,13 +7148,13 @@ - + - + @@ -7212,7 +7220,7 @@ - + @@ -7239,7 +7247,7 @@ - + @@ -7267,7 +7275,7 @@ - + @@ -7379,10 +7387,10 @@ - + - + @@ -7434,7 +7442,7 @@ - + @@ -7448,7 +7456,7 @@ - + @@ -7575,7 +7583,7 @@ - + @@ -7586,7 +7594,7 @@ - + @@ -7930,7 +7938,7 @@ - + @@ -7945,10 +7953,10 @@ - + - + @@ -8040,19 +8048,19 @@ - + - + - + - + - + @@ -9237,7 +9245,7 @@ - + @@ -9276,23 +9284,23 @@ - - - + + + - - + + - - + + - - + + @@ -9300,22 +9308,22 @@ - + - - + + - + - - + + @@ -9324,11 +9332,11 @@ - + - - - + + + @@ -9375,7 +9383,7 @@ - + @@ -9401,7 +9409,7 @@ - + @@ -9411,32 +9419,32 @@ - + - + - - + + - - - + + + - + @@ -9453,7 +9461,7 @@ - + @@ -9464,13 +9472,13 @@ - + - + - - + + @@ -9479,22 +9487,22 @@ - + - - - + + + - - - + + + @@ -9522,14 +9530,14 @@ - - - + + + - + @@ -9559,7 +9567,7 @@ - + @@ -9578,10 +9586,10 @@ - - - - + + + + @@ -9599,39 +9607,39 @@ - + - - - - - - + + + + + + - + - + - - - - - + + + + + - - - + + + @@ -9644,7 +9652,7 @@ - + @@ -9653,10 +9661,10 @@ - + - + @@ -9665,7 +9673,7 @@ - + @@ -9674,35 +9682,35 @@ - - + + - - - - - + + + + + - - - - + + + + - + - + - - + + @@ -9711,32 +9719,32 @@ - - + + - + - - - - - + + + + + - - + + - - + + - - + + - + @@ -9744,11 +9752,11 @@ - - - + + + - + @@ -9757,8 +9765,8 @@ - - + + @@ -9766,14 +9774,14 @@ - + - + - + @@ -9783,7 +9791,7 @@ - + @@ -9795,30 +9803,30 @@ - - - - + + + + - + - + - + - - + + - - + + - - - - + + + + @@ -9836,7 +9844,7 @@ - + @@ -9844,7 +9852,7 @@ - + @@ -9858,9 +9866,9 @@ - - - + + + @@ -9874,8 +9882,8 @@ - - + + @@ -9891,15 +9899,15 @@ - + - + - + @@ -9934,11 +9942,11 @@ - + - + @@ -10039,8 +10047,8 @@ - - + + @@ -10051,8 +10059,8 @@ - - + + @@ -10141,8 +10149,8 @@ - - + + @@ -10175,14 +10183,14 @@ - + - - + + @@ -10364,7 +10372,7 @@ - + @@ -10374,7 +10382,7 @@ - + @@ -10405,7 +10413,7 @@ - + @@ -10571,10 +10579,10 @@ - + - + @@ -10626,7 +10634,7 @@ - + @@ -10664,22 +10672,22 @@ - + - - + + - + - + @@ -10724,7 +10732,7 @@ - + @@ -10754,8 +10762,8 @@ - - + + @@ -10840,7 +10848,7 @@ - + @@ -10884,13 +10892,13 @@ - - + + - + @@ -10899,7 +10907,7 @@ - + @@ -10910,7 +10918,7 @@ - + @@ -10929,8 +10937,8 @@ - - + + @@ -10968,14 +10976,14 @@ - + - + @@ -11030,7 +11038,7 @@ - + @@ -11076,12 +11084,12 @@ - + - - + + @@ -11108,7 +11116,7 @@ - + @@ -11134,7 +11142,7 @@ - + @@ -11237,7 +11245,7 @@ - + @@ -11314,17 +11322,17 @@ - + - + - + @@ -11442,7 +11450,7 @@ - + @@ -11471,623 +11479,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi b/tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi index 4cd83b4f..36e7483f 100644 --- a/tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi +++ b/tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi @@ -223,7 +223,7 @@ - + diff --git a/tests/data/test-read-dwarf/libtest23.so.abi b/tests/data/test-read-dwarf/libtest23.so.abi index 3cf2613b..e750b847 100644 --- a/tests/data/test-read-dwarf/libtest23.so.abi +++ b/tests/data/test-read-dwarf/libtest23.so.abi @@ -14,37 +14,37 @@ - - + - + - + - + - + - - - - - - - - - + + + + + + + + + + - + @@ -54,7 +54,7 @@ - + @@ -62,34 +62,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -97,9 +97,9 @@ - + - + @@ -111,11 +111,11 @@ - - + + - + @@ -134,571 +134,186 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -804,8 +419,8 @@ - - + + @@ -829,7 +444,7 @@ - + @@ -920,7 +535,7 @@ - + @@ -954,7 +569,7 @@ - + @@ -966,31 +581,31 @@ - + - + - + - + - + @@ -1055,28 +670,28 @@ - + - + - + - + @@ -1391,8 +1006,8 @@ - - + + @@ -1463,7 +1078,7 @@ - + @@ -1676,7 +1291,7 @@ - + @@ -1685,7 +1300,7 @@ - + @@ -1696,14 +1311,14 @@ - + - + @@ -1712,7 +1327,7 @@ - + @@ -1722,51 +1337,436 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/data/test-read-dwarf/test-PR26568-1.c b/tests/data/test-read-dwarf/test-PR26568-1.c new file mode 100644 index 00000000..6eec3558 --- /dev/null +++ b/tests/data/test-read-dwarf/test-PR26568-1.c @@ -0,0 +1,15 @@ +struct A { + union { + struct { + int x; + }; + struct { + long y; + }; + }; +}; + +void fun(struct A * a) { + a->x = 0; + a->y = 0x0102030405060708ULL; +} diff --git a/tests/data/test-read-dwarf/test-PR26568-1.o b/tests/data/test-read-dwarf/test-PR26568-1.o new file mode 100644 index 00000000..9249e16d Binary files /dev/null and b/tests/data/test-read-dwarf/test-PR26568-1.o differ diff --git a/tests/data/test-read-dwarf/test-PR26568-1.o.abi b/tests/data/test-read-dwarf/test-PR26568-1.o.abi new file mode 100644 index 00000000..867fe229 --- /dev/null +++ b/tests/data/test-read-dwarf/test-PR26568-1.o.abi @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/data/test-read-dwarf/test-PR26568-2.c b/tests/data/test-read-dwarf/test-PR26568-2.c new file mode 100644 index 00000000..656e8eea --- /dev/null +++ b/tests/data/test-read-dwarf/test-PR26568-2.c @@ -0,0 +1,13 @@ +union A { + struct { + int x; + }; + struct { + long y; + }; +}; + +void fun(union A * a) { + a->x = 0; + a->y = 0x0102030405060708ULL; +} diff --git a/tests/data/test-read-dwarf/test-PR26568-2.o b/tests/data/test-read-dwarf/test-PR26568-2.o new file mode 100644 index 00000000..cc94708c Binary files /dev/null and b/tests/data/test-read-dwarf/test-PR26568-2.o differ diff --git a/tests/data/test-read-dwarf/test-PR26568-2.o.abi b/tests/data/test-read-dwarf/test-PR26568-2.o.abi new file mode 100644 index 00000000..c6eda38e --- /dev/null +++ b/tests/data/test-read-dwarf/test-PR26568-2.o.abi @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/data/test-read-dwarf/test-libandroid.so b/tests/data/test-read-dwarf/test-libandroid.so new file mode 100644 index 00000000..13b73b78 Binary files /dev/null and b/tests/data/test-read-dwarf/test-libandroid.so differ diff --git a/tests/data/test-read-dwarf/test-libandroid.so.abi b/tests/data/test-read-dwarf/test-libandroid.so.abi new file mode 100644 index 00000000..adaef8a4 --- /dev/null +++ b/tests/data/test-read-dwarf/test-libandroid.so.abi @@ -0,0 +1,86907 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/data/test-read-dwarf/test0.abi b/tests/data/test-read-dwarf/test0.abi index 1931ad0c..de6fb16e 100644 --- a/tests/data/test-read-dwarf/test0.abi +++ b/tests/data/test-read-dwarf/test0.abi @@ -27,7 +27,7 @@ - + diff --git a/tests/data/test-read-dwarf/test0.hash.abi b/tests/data/test-read-dwarf/test0.hash.abi index 3d34a9de..3ea90f65 100644 --- a/tests/data/test-read-dwarf/test0.hash.abi +++ b/tests/data/test-read-dwarf/test0.hash.abi @@ -27,7 +27,7 @@ - + @@ -43,7 +43,7 @@ - + diff --git a/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi b/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi index 1da50a0a..7332bccd 100644 --- a/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi +++ b/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi @@ -3844,7 +3844,7 @@ - + diff --git a/tests/data/test-read-dwarf/test11-pr18828.so.abi b/tests/data/test-read-dwarf/test11-pr18828.so.abi index 663f9ccc..e004bfa7 100644 --- a/tests/data/test-read-dwarf/test11-pr18828.so.abi +++ b/tests/data/test-read-dwarf/test11-pr18828.so.abi @@ -663,45 +663,45 @@ - + - - - - - - - - - + - + - + - + - - - - - + + + + + - - - - - - + + + + + + - - + + - + + + + + + + + + @@ -718,7 +718,7 @@ - + @@ -732,25 +732,25 @@ - + - + - + - - + + - - - + + + - + @@ -792,10 +792,10 @@ - + - + @@ -804,7 +804,7 @@ - + @@ -816,22 +816,22 @@ - + - + - + - + - + @@ -845,19 +845,19 @@ - + - + - + - + @@ -865,7 +865,7 @@ - + @@ -873,34 +873,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -984,19 +984,19 @@ - + - + - + - + @@ -1012,11 +1012,11 @@ - + - - - + + + @@ -1237,12 +1237,12 @@ - + - - - + + + @@ -1439,8 +1439,8 @@ - - + + @@ -1749,7 +1749,7 @@ - + @@ -2009,7 +2009,7 @@ - + @@ -2018,16 +2018,16 @@ - - + + - - + + - - - + + + @@ -2434,9 +2434,9 @@ - - - + + + @@ -2597,16 +2597,16 @@ - + - - + + - - + + @@ -2657,7 +2657,7 @@ - + @@ -3096,13 +3096,13 @@ - + - + @@ -3225,7 +3225,7 @@ - + @@ -3233,14 +3233,14 @@ - + - + @@ -3368,7 +3368,7 @@ - + @@ -3389,7 +3389,7 @@ - + @@ -3427,7 +3427,7 @@ - + @@ -3440,7 +3440,7 @@ - + @@ -3490,7 +3490,7 @@ - + @@ -3511,7 +3511,7 @@ - + @@ -3549,7 +3549,7 @@ - + @@ -3562,7 +3562,7 @@ - + @@ -3613,7 +3613,7 @@ - + @@ -3634,7 +3634,7 @@ - + @@ -3672,7 +3672,7 @@ - + @@ -3685,7 +3685,7 @@ - + @@ -3750,7 +3750,7 @@ - + @@ -4039,7 +4039,7 @@ - + @@ -4145,7 +4145,7 @@ - + @@ -5013,14 +5013,14 @@ - + - + @@ -5029,7 +5029,7 @@ - + @@ -5040,14 +5040,14 @@ - + - + @@ -5056,7 +5056,7 @@ - + @@ -5066,7 +5066,7 @@ - + @@ -5097,7 +5097,7 @@ - + @@ -5113,10 +5113,10 @@ - + - + @@ -5213,7 +5213,7 @@ - + @@ -5223,7 +5223,7 @@ - + @@ -5333,7 +5333,7 @@ - + @@ -5866,7 +5866,7 @@ - + @@ -5927,7 +5927,7 @@ - + @@ -6055,7 +6055,7 @@ - + @@ -6127,12 +6127,12 @@ - + - + @@ -6143,7 +6143,7 @@ - + @@ -6171,7 +6171,7 @@ - + @@ -6185,7 +6185,7 @@ - + @@ -6226,14 +6226,14 @@ - + - + @@ -7014,7 +7014,7 @@ - + @@ -7033,7 +7033,7 @@ - + @@ -7062,14 +7062,14 @@ - + - + @@ -7124,7 +7124,7 @@ - + @@ -7746,7 +7746,7 @@ - + @@ -7765,7 +7765,7 @@ - + @@ -7794,14 +7794,14 @@ - + - + @@ -7821,7 +7821,7 @@ - + @@ -7921,7 +7921,7 @@ - + @@ -8360,7 +8360,7 @@ - + @@ -8510,7 +8510,7 @@ - + @@ -8545,7 +8545,7 @@ - + @@ -8566,7 +8566,7 @@ - + @@ -8598,14 +8598,14 @@ - + - + @@ -8641,7 +8641,7 @@ - + @@ -8794,7 +8794,7 @@ - + @@ -8807,7 +8807,7 @@ - + @@ -8818,7 +8818,7 @@ - + @@ -8887,10 +8887,10 @@ - + - + @@ -9343,7 +9343,7 @@ - + @@ -9719,7 +9719,7 @@ - + @@ -9962,7 +9962,7 @@ - + @@ -10000,14 +10000,14 @@ - + - + @@ -10108,7 +10108,7 @@ - + @@ -10321,7 +10321,7 @@ - + @@ -10334,7 +10334,7 @@ - + @@ -10406,7 +10406,7 @@ - + @@ -10419,7 +10419,7 @@ - + @@ -10514,7 +10514,7 @@ - + @@ -10527,7 +10527,7 @@ - + @@ -10761,7 +10761,7 @@ - + @@ -11171,7 +11171,7 @@ - + @@ -11301,7 +11301,7 @@ - + @@ -11330,7 +11330,7 @@ - + @@ -11369,14 +11369,14 @@ - + - + @@ -11456,7 +11456,7 @@ - + @@ -11513,7 +11513,7 @@ - + @@ -11535,13 +11535,13 @@ - + - + @@ -11649,7 +11649,7 @@ - + @@ -12182,7 +12182,7 @@ - + @@ -12243,7 +12243,7 @@ - + @@ -12371,7 +12371,7 @@ - + @@ -12496,7 +12496,7 @@ - + @@ -13029,7 +13029,7 @@ - + @@ -13090,7 +13090,7 @@ - + @@ -13218,7 +13218,7 @@ - + @@ -13245,7 +13245,7 @@ - + @@ -13689,7 +13689,7 @@ - + @@ -14065,7 +14065,7 @@ - + @@ -14324,7 +14324,7 @@ - + @@ -14568,7 +14568,7 @@ - + @@ -14581,7 +14581,7 @@ - + @@ -14613,10 +14613,10 @@ - + - + @@ -15007,10 +15007,10 @@ - + - + @@ -15383,7 +15383,7 @@ - + @@ -15860,7 +15860,7 @@ - + @@ -15931,7 +15931,7 @@ - + @@ -16012,7 +16012,7 @@ - + @@ -16040,7 +16040,7 @@ - + @@ -16053,7 +16053,7 @@ - + @@ -16073,7 +16073,7 @@ - + @@ -16131,7 +16131,7 @@ - + @@ -16151,7 +16151,7 @@ - + @@ -16171,7 +16171,7 @@ - + @@ -16315,7 +16315,7 @@ - + @@ -16375,7 +16375,7 @@ - + @@ -16488,7 +16488,7 @@ - + @@ -17021,7 +17021,7 @@ - + @@ -17082,7 +17082,7 @@ - + @@ -17210,7 +17210,7 @@ - + @@ -17319,7 +17319,7 @@ - + @@ -17790,7 +17790,7 @@ - + @@ -17832,7 +17832,7 @@ - + @@ -17858,7 +17858,7 @@ - + @@ -17883,7 +17883,7 @@ - + @@ -17896,7 +17896,7 @@ - + @@ -17942,13 +17942,13 @@ - + - + @@ -18016,7 +18016,7 @@ - + @@ -18107,7 +18107,7 @@ - + @@ -18136,7 +18136,7 @@ - + @@ -18168,7 +18168,7 @@ - + @@ -18181,7 +18181,7 @@ - + @@ -18285,7 +18285,7 @@ - + @@ -18298,7 +18298,7 @@ - + @@ -18414,7 +18414,7 @@ - + @@ -18427,7 +18427,7 @@ - + @@ -18631,7 +18631,7 @@ - + @@ -19164,7 +19164,7 @@ - + @@ -19225,7 +19225,7 @@ - + @@ -19353,7 +19353,7 @@ - + @@ -19437,7 +19437,7 @@ - + @@ -19527,7 +19527,7 @@ - + @@ -19885,7 +19885,7 @@ - + @@ -20431,7 +20431,7 @@ - + @@ -20444,7 +20444,7 @@ - + @@ -20709,13 +20709,13 @@ - + - + @@ -20745,16 +20745,16 @@ - + - + - + @@ -20863,7 +20863,7 @@ - + @@ -20882,7 +20882,7 @@ - + @@ -21283,19 +21283,19 @@ - + - + - + @@ -21337,7 +21337,7 @@ - + @@ -21554,7 +21554,7 @@ - + @@ -21702,7 +21702,7 @@ - + @@ -22033,7 +22033,7 @@ - + @@ -22113,7 +22113,7 @@ - + @@ -22180,7 +22180,7 @@ - + @@ -22301,7 +22301,7 @@ - + @@ -22551,7 +22551,7 @@ - + @@ -22995,7 +22995,7 @@ - + @@ -23371,7 +23371,7 @@ - + @@ -23630,7 +23630,7 @@ - + @@ -23785,7 +23785,7 @@ - + @@ -23799,7 +23799,7 @@ - + @@ -23993,7 +23993,7 @@ - + @@ -24144,7 +24144,7 @@ - + @@ -24171,7 +24171,7 @@ - + @@ -24185,7 +24185,7 @@ - + @@ -24223,7 +24223,7 @@ - + @@ -24267,7 +24267,7 @@ - + @@ -24282,8 +24282,8 @@ - - + + @@ -24336,7 +24336,7 @@ - + @@ -24349,7 +24349,7 @@ - + @@ -24457,7 +24457,7 @@ - + @@ -24470,7 +24470,7 @@ - + @@ -24560,7 +24560,7 @@ - + @@ -24582,7 +24582,7 @@ - + @@ -24648,7 +24648,7 @@ - + @@ -24661,7 +24661,7 @@ - + @@ -24754,7 +24754,7 @@ - + @@ -24767,7 +24767,7 @@ - + @@ -24845,7 +24845,7 @@ - + @@ -24867,7 +24867,7 @@ - + @@ -24985,7 +24985,7 @@ - + @@ -25007,7 +25007,7 @@ - + @@ -25035,7 +25035,7 @@ - + @@ -25078,7 +25078,7 @@ - + @@ -25100,7 +25100,7 @@ - + @@ -25151,7 +25151,7 @@ - + @@ -25173,7 +25173,7 @@ - + @@ -25201,7 +25201,7 @@ - + @@ -25244,7 +25244,7 @@ - + @@ -25266,7 +25266,7 @@ - + @@ -25302,7 +25302,7 @@ - + @@ -25352,7 +25352,7 @@ - + @@ -25374,7 +25374,7 @@ - + @@ -25497,7 +25497,7 @@ - + @@ -25519,7 +25519,7 @@ - + @@ -25547,7 +25547,7 @@ - + @@ -25566,13 +25566,13 @@ - + - + @@ -25673,7 +25673,7 @@ - + @@ -25695,7 +25695,7 @@ - + @@ -25746,7 +25746,7 @@ - + @@ -25768,7 +25768,7 @@ - + @@ -25789,7 +25789,7 @@ - + @@ -25826,7 +25826,7 @@ - + @@ -25848,7 +25848,7 @@ - + @@ -25966,7 +25966,7 @@ - + @@ -25988,7 +25988,7 @@ - + @@ -26106,7 +26106,7 @@ - + @@ -26128,7 +26128,7 @@ - + @@ -26155,13 +26155,13 @@ - + - + @@ -26262,7 +26262,7 @@ - + @@ -26284,7 +26284,7 @@ - + @@ -26402,7 +26402,7 @@ - + @@ -26424,7 +26424,7 @@ - + @@ -26475,7 +26475,7 @@ - + @@ -26497,7 +26497,7 @@ - + @@ -26615,7 +26615,7 @@ - + @@ -26637,7 +26637,7 @@ - + @@ -26688,7 +26688,7 @@ - + @@ -26710,7 +26710,7 @@ - + @@ -26761,7 +26761,7 @@ - + @@ -26783,7 +26783,7 @@ - + @@ -26877,13 +26877,13 @@ - + - + @@ -26931,7 +26931,7 @@ - + @@ -26953,7 +26953,7 @@ - + @@ -27004,7 +27004,7 @@ - + @@ -27026,7 +27026,7 @@ - + @@ -27077,7 +27077,7 @@ - + @@ -27099,7 +27099,7 @@ - + @@ -27203,7 +27203,7 @@ - + @@ -27225,7 +27225,7 @@ - + @@ -27525,10 +27525,10 @@ - + - + @@ -27593,16 +27593,16 @@ - - + + - - + + @@ -27656,19 +27656,19 @@ - + - + - + - + - + @@ -27732,21 +27732,21 @@ - + - + - + @@ -27767,14 +27767,14 @@ - + - + @@ -27887,13 +27887,13 @@ - + - + @@ -27919,7 +27919,7 @@ - + @@ -27956,7 +27956,7 @@ - + @@ -28061,7 +28061,7 @@ - + @@ -28070,12 +28070,12 @@ - - + + - - + + @@ -28169,7 +28169,7 @@ - + @@ -28285,7 +28285,7 @@ - + @@ -28401,7 +28401,7 @@ - + @@ -28430,20 +28430,20 @@ - + - + - + @@ -28521,14 +28521,14 @@ - + - + @@ -28638,7 +28638,7 @@ - + @@ -28716,7 +28716,7 @@ - + @@ -28759,7 +28759,7 @@ - + @@ -28820,7 +28820,7 @@ - + @@ -28875,7 +28875,7 @@ - + @@ -28889,7 +28889,7 @@ - + @@ -28903,7 +28903,7 @@ - + @@ -28917,28 +28917,28 @@ - + - + - + - + @@ -28981,7 +28981,7 @@ - + @@ -28998,12 +28998,12 @@ - + - + @@ -29011,7 +29011,7 @@ - + @@ -29019,21 +29019,21 @@ - + - + - + @@ -29046,7 +29046,7 @@ - + @@ -29059,7 +29059,7 @@ - + @@ -29073,7 +29073,7 @@ - + @@ -29111,7 +29111,7 @@ - + @@ -29123,7 +29123,7 @@ - + @@ -29196,7 +29196,7 @@ - + @@ -29244,7 +29244,7 @@ - + @@ -29334,7 +29334,7 @@ - + @@ -29390,7 +29390,7 @@ - + @@ -29399,7 +29399,7 @@ - + @@ -29418,7 +29418,7 @@ - + @@ -29453,7 +29453,7 @@ - + @@ -29526,7 +29526,7 @@ - + @@ -29569,7 +29569,7 @@ - + @@ -29582,7 +29582,7 @@ - + @@ -29837,7 +29837,7 @@ - + @@ -30060,7 +30060,7 @@ - + @@ -30068,7 +30068,7 @@ - + @@ -30078,7 +30078,7 @@ - + @@ -30091,14 +30091,14 @@ - + - + @@ -30143,7 +30143,7 @@ - + @@ -30159,7 +30159,7 @@ - + @@ -30195,7 +30195,7 @@ - + @@ -30251,7 +30251,7 @@ - + @@ -30310,7 +30310,7 @@ - + @@ -30319,7 +30319,7 @@ - + @@ -30356,7 +30356,7 @@ - + @@ -30501,7 +30501,7 @@ - + @@ -30567,28 +30567,28 @@ - + - + - + - + @@ -30602,28 +30602,28 @@ - + - + - + - + @@ -30651,7 +30651,7 @@ - + @@ -30659,7 +30659,7 @@ - + @@ -30673,7 +30673,7 @@ - + @@ -30686,7 +30686,7 @@ - + @@ -30706,8 +30706,8 @@ - - + + @@ -30727,13 +30727,13 @@ - + - + - + @@ -30752,14 +30752,14 @@ - + - + @@ -30778,14 +30778,14 @@ - + - + @@ -30831,21 +30831,21 @@ - + - + - + @@ -30859,21 +30859,21 @@ - + - + - + @@ -30887,7 +30887,7 @@ - + @@ -30903,47 +30903,47 @@ - + - + - + - + - + - + - + @@ -30957,21 +30957,21 @@ - + - + - + @@ -30981,21 +30981,21 @@ - + - + - + - + @@ -31095,14 +31095,14 @@ - + - + @@ -31191,7 +31191,7 @@ - + @@ -31199,7 +31199,7 @@ - + @@ -31381,10 +31381,10 @@ - + - + @@ -31407,7 +31407,7 @@ - + @@ -31419,19 +31419,19 @@ - + - + - + @@ -31559,7 +31559,7 @@ - + @@ -31568,7 +31568,7 @@ - + @@ -31594,7 +31594,7 @@ - + @@ -31606,14 +31606,14 @@ - - + + - + @@ -31638,7 +31638,7 @@ - + @@ -31656,7 +31656,7 @@ - + @@ -31704,13 +31704,13 @@ - + - + @@ -31722,25 +31722,25 @@ - + - + - + - + @@ -31752,13 +31752,13 @@ - + - + @@ -31776,7 +31776,7 @@ - + @@ -31818,7 +31818,7 @@ - + @@ -31909,7 +31909,7 @@ - + @@ -31921,8 +31921,8 @@ - - + + @@ -31958,13 +31958,13 @@ - + - + @@ -31990,7 +31990,7 @@ - + @@ -32005,7 +32005,7 @@ - + @@ -32019,7 +32019,7 @@ - + @@ -32103,7 +32103,7 @@ - + @@ -32188,7 +32188,7 @@ - + @@ -32302,7 +32302,7 @@ - + @@ -32313,20 +32313,20 @@ - + - + - + @@ -32443,10 +32443,10 @@ - + - + @@ -32463,7 +32463,7 @@ - + @@ -32471,15 +32471,15 @@ - + - - + + @@ -32492,25 +32492,25 @@ - + - + - + - + @@ -32600,12 +32600,12 @@ - + - + @@ -32626,15 +32626,15 @@ - - + + - - + + @@ -32706,7 +32706,7 @@ - + @@ -32733,13 +32733,13 @@ - + - + - + @@ -32758,8 +32758,8 @@ - - + + @@ -32772,27 +32772,27 @@ - + - + - + - - + + @@ -32811,13 +32811,13 @@ - + - + @@ -32886,7 +32886,7 @@ - + @@ -32901,7 +32901,7 @@ - + @@ -32913,7 +32913,7 @@ - + @@ -32935,7 +32935,7 @@ - + @@ -32956,7 +32956,7 @@ - + @@ -33002,7 +33002,7 @@ - + @@ -33040,7 +33040,7 @@ - + @@ -33056,7 +33056,7 @@ - + @@ -33064,7 +33064,7 @@ - + @@ -33080,7 +33080,7 @@ - + @@ -33088,7 +33088,7 @@ - + @@ -33096,7 +33096,7 @@ - + @@ -33104,7 +33104,7 @@ - + @@ -33128,7 +33128,7 @@ - + @@ -33136,7 +33136,7 @@ - + @@ -33225,7 +33225,7 @@ - + @@ -33307,7 +33307,7 @@ - + @@ -33340,9 +33340,9 @@ - - + + @@ -33358,8 +33358,8 @@ + - @@ -33399,7 +33399,7 @@ - + @@ -33407,7 +33407,7 @@ - + @@ -33457,7 +33457,7 @@ - + @@ -33517,7 +33517,7 @@ - + @@ -33543,14 +33543,14 @@ - + - + @@ -33729,10 +33729,10 @@ - + - + @@ -33743,21 +33743,21 @@ - + - + - + @@ -33835,10 +33835,10 @@ - + - + @@ -33846,8 +33846,8 @@ + - @@ -33896,7 +33896,7 @@ - + @@ -33908,7 +33908,7 @@ - + @@ -33916,7 +33916,7 @@ - + @@ -33951,7 +33951,7 @@ - + @@ -33961,7 +33961,7 @@ - + @@ -33969,28 +33969,28 @@ - + - + - + - + @@ -34003,7 +34003,7 @@ - + @@ -34034,7 +34034,7 @@ - + @@ -34042,7 +34042,7 @@ - + @@ -34050,28 +34050,28 @@ - + - + - + - + @@ -34092,7 +34092,7 @@ - + @@ -34100,7 +34100,7 @@ - + @@ -34120,7 +34120,7 @@ - + @@ -34187,21 +34187,21 @@ - + - + - + @@ -34307,21 +34307,21 @@ - + - + - + @@ -34399,21 +34399,21 @@ - + - + - + @@ -34547,7 +34547,7 @@ - + @@ -34681,7 +34681,7 @@ - + @@ -34870,8 +34870,8 @@ - - + + @@ -34879,8 +34879,8 @@ - - + + @@ -34901,7 +34901,7 @@ - + @@ -34940,7 +34940,7 @@ - + @@ -34986,7 +34986,7 @@ - + @@ -34999,13 +34999,13 @@ - + - + @@ -35062,20 +35062,20 @@ - + - + - + @@ -35109,7 +35109,7 @@ - + @@ -35214,7 +35214,7 @@ - + @@ -35227,7 +35227,7 @@ - + @@ -35271,7 +35271,7 @@ - + @@ -35317,7 +35317,7 @@ - + @@ -35326,7 +35326,7 @@ - + @@ -35338,24 +35338,24 @@ - + - - + + - + - + @@ -35379,7 +35379,7 @@ - + @@ -35402,13 +35402,13 @@ - + - + @@ -35419,36 +35419,36 @@ - + - + - + - + - + - + @@ -35464,12 +35464,12 @@ - + - + @@ -35502,7 +35502,7 @@ - + @@ -35525,12 +35525,12 @@ - + - + @@ -35541,13 +35541,13 @@ - - + + - + @@ -35558,13 +35558,13 @@ - + - + @@ -35587,12 +35587,12 @@ - + - + @@ -35623,22 +35623,22 @@ - + - - + + - - + + - + @@ -35647,35 +35647,35 @@ - + - + - + - + - + - - + + - + - - + + @@ -35683,14 +35683,14 @@ - - + + - + @@ -35702,46 +35702,46 @@ - + - + - + - + - + - + - - + + - + - + @@ -35752,38 +35752,38 @@ - + - - + + - + - - + + - - + + - + - + @@ -35791,32 +35791,32 @@ - + - + - + - + - + - + - + @@ -35826,7 +35826,7 @@ - + @@ -35840,25 +35840,25 @@ - - - + + + - + - + - + - + @@ -35870,12 +35870,12 @@ - + - + @@ -35889,9 +35889,9 @@ - + - + @@ -35901,29 +35901,29 @@ - + - + + - - + - - + + - + - + - + @@ -35939,7 +35939,7 @@ - + @@ -35949,7 +35949,7 @@ - + @@ -35960,7 +35960,7 @@ - + @@ -36016,7 +36016,7 @@ - + @@ -36027,7 +36027,7 @@ - + @@ -36038,7 +36038,7 @@ - + @@ -36071,7 +36071,7 @@ - + @@ -36082,7 +36082,7 @@ - + @@ -36093,7 +36093,7 @@ - + @@ -36104,7 +36104,7 @@ - + @@ -36115,7 +36115,7 @@ - + @@ -36126,7 +36126,7 @@ - + @@ -36137,7 +36137,7 @@ - + @@ -36148,7 +36148,7 @@ - + @@ -36159,7 +36159,7 @@ - + @@ -36170,7 +36170,7 @@ - + @@ -36181,7 +36181,7 @@ - + @@ -36192,7 +36192,7 @@ - + @@ -36203,7 +36203,7 @@ - + @@ -36274,12 +36274,12 @@ - - + + - - + + @@ -36298,9 +36298,9 @@ - - - + + + diff --git a/tests/data/test-read-dwarf/test12-pr18844.so.abi b/tests/data/test-read-dwarf/test12-pr18844.so.abi index d2493374..e32cbe27 100644 --- a/tests/data/test-read-dwarf/test12-pr18844.so.abi +++ b/tests/data/test-read-dwarf/test12-pr18844.so.abi @@ -1731,496 +1731,505 @@ - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - - - - - + + + + + + + + - - - - - + + + + + - - + + - - + + - - - - - - - + + + + + + + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - + - + - + - + - + - + - - - - - + + + + - + - + - - - - - - - - - - + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2232,65 +2241,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -2306,18 +2316,18 @@ - + - - - - - - - - - + + + + + + + + + @@ -2387,70 +2397,70 @@ - + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -2624,77 +2634,76 @@ - + - - - - - - - - - + + + + + + + + + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -2709,12 +2718,13 @@ - - - - - - + + + + + + + @@ -2723,15 +2733,15 @@ - - - - - - - - - + + + + + + + + + @@ -2740,43 +2750,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + @@ -2805,65 +2814,66 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -2894,83 +2904,83 @@ - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + - - - + + + - - - - - - + + + + + + + + + + @@ -2996,235 +3006,231 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -3315,499 +3321,505 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - + + + - + - + - - + + - - + + @@ -3831,30 +3843,30 @@ - - - - + + + - - - - - - - - + + + + + + + + + - + - - - - - + + + + + @@ -3862,61 +3874,55 @@ - - - - - + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3956,2701 +3962,2713 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - - + + - + - + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - - + + - - + + - + - + - + - + - + - - - + + + - - - - + + + + - - + + - - - + + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - - - - - - - + + + + + + + - - - - + + + + - - - + + + - - + + - - + + - - - + + + - + - + - + - - + + - - - - - - + + + + + + - - - + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - - - + + + + - - - + + + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - - - + + + + + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - + - + - + - + - + - - + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - + - - + + - - + + - + - + - + - + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - + + - - + + - + - + - + - + - + - - - + + + - - + + - - - + + + - - - + + + - - - - - + + + + + - - + + - - + + - - - + + + - + - + - - + + - + - + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - + + - - + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - + - + + - - - - - + + + + + - - - + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - + + + - + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - - + + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - + - + - + - + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - + + - - - + + + - - - - + + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - + - + - + - + - + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - - - + + + + - + - + - - + + - - - + + + - + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + @@ -6658,5860 +6676,5860 @@ - - - - - - - + + + + + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - + - - + + - - - + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - - - + + + - - + + - - + + - - - + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - + + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - + - - + + - - - + + + - - - + + + - + - + - + - + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - + - - + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - - + + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - + - + - + - - + + - - + + - + - - + + - + - - - + + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - + - - - + + + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - + - - + + - + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - - + + - - - + + + - - - - + + + + - - - + + + - - - - - + + + + + - + - + - + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - - + + - - - + + + - + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - + + - + - + - - + + - + - - - - + + + + - + - + - + - - + + - - - + + + - - + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - + + + - + - - + + - - + + - - - + + + - - - + + + - - + + - + - - + + - - + + - + - + - + - - + + - - - + + + - - - + + + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - + - + - + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - - + + - - - + + + - - + + - + - + - - + + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - - + + + - - - - + + + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - + - - + + - - - + + + - - - + + + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - + - - + + - + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - - + + - - - + + + - - - - + + + + - - - + + + - - - - - - + + + + + + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - - + + + - - - - + + + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - + - - + + - + - - + + - - - + + + - - - + + + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - + - - + + - - - + + + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - - + + + + - + - - - + + + - + - + - + - - + + - - - + + + - - + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - - + + - - - + + + - - + + - - + + - + - - - + + + - - - + + + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - - - - + + + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - + - + - + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - + - + - + - + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - + - + - + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - + - + - + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - + - + - + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - + - + - + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - + - + - + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - + - + - + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - + - + - + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - + - + - + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + @@ -12522,72 +12540,72 @@ - + - + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + @@ -12598,8307 +12616,8307 @@ - + - + - + - + - - + + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - + - + - - - + + + - - - + + + - - + + - - - - + + + + - - - - - + + + + + - - + + - - + + - - - + + + - + - + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - + + - - + + - - - + + + - - + + - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + - - - + + + - - + + - - - - - - - - + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - + + + + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - - - - + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - + + + + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - - - + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - + + + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - + + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - - + + + - + - - - + + + - - - + + + - + - + - - - + + + - - - + + + - - + + - - - - + + + + - - - - - + + + + + - - + + - - + + - - - + + + - + - + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - - - - + + + + + + + + - - + + - - + + - - - - - - - + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - + + + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - - - + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - + + + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - + + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - - + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - + + - - + + - + - + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - + + - - + + - - - + + + - - + + - - - - - - - - + + + + + + + + - - - - - + + + + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - - - - + + + + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - - - - - - - + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - + + + + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - - - - + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - + + + + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - - - + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - + + + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - + + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - + + - + - + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - - + + + + + + - - + + - - - + + + - - + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - + - + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - - - + + + + + + + - - + + - - - + + + - - + + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - - + + + - + - + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - + + - - + + - - - - + + + + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - - + + + - + - + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - + + - + - + - + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - + - + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - + - - - + + + - - - + + + - + - + - - + + - + - + - - - - - - + + + + + + - + - + - - - - - + + + + + - + - + - - - - - - - + + + + + + + - + - + - - - - - - + + + + + + - + - + - - - - - - - + + + + + + + - - - + + + - - - + + + - + - + - - + + - + - + - - + + - + - + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - - - + + + + - + - + - - + + - + - + - + - - + + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - - - + + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - - + + - + - + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - + - + - + - - - + + + - - - - + + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - + - - + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - - - - + + + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - + - - + + - + - + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - - + + - + - + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - - - + + + - - - + + + - - - + + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - - - + + + - + - + - - + + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - - + + - + - + - - + + - - - - + + + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - - - + + + - + - + - - + + - - + + @@ -20908,4298 +20926,4298 @@ - - - + + + - + - + - - + + - - + + - + - + - + - - - + + + - - - - + + + + - - + + - + - + - + - - - + + + - - - - + + + + - - + + - + - + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - - + + - + - + - - + + - - + + - + - + - - - + + + - + - + - - + + - + - + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - - - + + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - - - + + + - + - + - - + + - + - + - - + + - + - + - - - + + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - - - + + + + + - - - + + + - - - - + + + + - - + + - - + + - + - - + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - + + - - + + - - - + + + - + - + - - + + - - + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + - - + + - - + + - - - + + + - - + + - + - + - + - + - + - + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - + - - - + + + - + - + - - + + - - + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + - - - + + + - - + + - - - + + + - - + + - - - - + + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + - - + + - + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - + - - + + - - + + - - - - + + + + - - + + - - + + - + - - - - + + + + - + - - - - + + + + - + - - - - + + + + - - - - + + + + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - - - - + + + + - - - - + + + + - + - - - - + + + + - + - - - - + + + + - + - - + + - - + + - + - + - + - - + + - - - - + + + + - - + + - - + + - + - - - + + + - + - - + + - - + + - - + + - - - + + + - + - - - - + + + + - - - - + + + + - + - - - - + + + + - + - - - - + + + + - - - - + + + + - + - + - + - - + + - - - + + + - + - - + + - - + + - - + + - - - + + + - + - - - - + + + + - + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - + - - - + + + - - + + - + - - + + - - - - - + + + + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + - - - - - - + + + + + + - - - - - - + + + + + + - - - + + + - - - + + + - + - + - + - + - + - + - - + + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + - - - - - + + + + + - - - + + + - - - + + + - - - - - + + + + + - + - + - + - + - + - + - - + + - + - + - - - + + + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - + - - - + + + - - + + - + - - + + - - - - + + + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + - - - - - + + + + + - - - - - + + + + + - - - + + + - - - + + + - + - + - + - + - + - + - - + + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - + - + - + - + - + - + - - + + - + - + - - - - + + + + - - + + - + - - - - + + + + - + - - + + - - + + - - + + - - + + - + - - - - + + + + - + - + - + - - + + - - + + - + - - - - + + + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - + + + - - - + + + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - - - - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - - + + + - - - - + + + + - - + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - + + - - - - - - - - - + + + + + + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - + + - + - + - + - + - + - + - + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - + - - + + - + - - - + + + - + - - + + - - - + + + - - + + - - + + - + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - - + + + + - - + + - + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - + - + - + - + - + - - - + + + - - - + + + - - + + - - + + - - - + + + - + - + - + - - - + + + - - - + + + - - + + - - - - + + + + @@ -25208,72 +25226,72 @@ - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + @@ -25292,808 +25310,808 @@ - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - - - - + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - - + + + - - - + + + - - - + + + - - + + - - + + - + - + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - + + - - + + - - + + - + - + - + - + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - + - + - + - + - + - + - - - - + + + + - - - - - + + + + + - + - + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + @@ -26257,644 +26275,644 @@ - - + + - - + + - - + + - + - + - + - + - + - + - + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - + + - - + + - + - - - - + + + + - + - - + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + - - + + - + - + - + - + - - - - + + + + - - + + - - + + - - + + - - + + - + - + - + - - + + - + - + - + - + - - - - - - + + + + + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - + + + - - - - - + + + + + - - + + - - - + + + - - - - - + + + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - - + + + + - - + + - - + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - + + - - + + @@ -26904,1236 +26922,1236 @@ - + - + - + - - + + - - - + + + - - + + - - + + - + - - - + + + - - + + - + - + - - + + - - + + - - + + - + - - - + + + - - - + + + - - + + - + - + - + - + - + - - - - - - + + + + + + - + - + - + - + - + - - - - - - + + + + + + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - + + - + - + - + - + - - + + - - - - - + + + + + - - + + - - + + - + - + - + - - - + + + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - + - + - + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - + - + - - - + + + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - - + + - - - + + + - - - + + + - + - + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - + + - - + + - - + + - + - - + + - - - + + + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - + - + - + - + - - - + + + - - - + + + - - - + + + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - - + + + + - - - + + + - + - + - + - + - - + + @@ -28143,8 +28161,8 @@ - - + + @@ -28153,1812 +28171,1812 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - + + - + - + - + - + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - + - + - - + + - - + + - - - + + + - + - - - - + + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - + - - - + + + - + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - + - - + + - + - - - - + + + + - + - - + + - - + + - + - + - + - - - + + + - - - + + + - + - - + + - - + + - - - + + + - + - - - + + + - + - - + + - - + + - - + + - - + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - + - + - - + + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - - + + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - - - + + + + + - - + + - - - + + + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - + - + - - + + - - - + + + - - + + - + - - - + + + - - + + - - + + - + - - - + + + - + - + - + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - + - + - + - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - - + + @@ -29983,8 +30001,8 @@ - - + + @@ -29993,805 +30011,805 @@ - + - + - + - + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - + + - - - - - + + + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - + - + - - - + + + - - - - + + + + - - + + - + - + - + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - + - - - + + + - - - + + + - - - - + + + + - + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - + - + - + - - - - - + + + + + - - - + + + - - - + + + - - + + - - + + - - + + - + - + - + - + - - - - - + + + + + - - - + + + - - - + + + - - + + - - + + - - + + - + - + - + - + - - - - - + + + + + - - - + + + - - - + + + - - + + - - + + - - + + - + - + - + - + - - + + - - - + + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + - + - - + + @@ -30800,15 +30818,15 @@ - - + + - - + + - - + + @@ -30831,42 +30849,42 @@ - - - + + + - - + + - + - + - + - + - + - + - - + + - - - + + + @@ -30900,947 +30918,947 @@ - + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - - - + + + + - + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - - + + + - + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - - - + + + + + + - - + + - - - + + + - - - - - + + + + + - + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - - - + + + + - - - + + + - + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - - - - - + + + + + + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - - - - + + + + + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + @@ -31848,4304 +31866,4296 @@ - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - - + + + - + - + - - + + - + - + - - + + - + - + - - + + - - - + + + - + - + - - + + - + - + - - + + - - + + - + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - + - + - - - + + + - + - + - + - - + + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - + - - + + - + - - + + - + - - - - + + + + - - - - - + + + + + - - + + - - - - - + + + + + - - - + + + - - + + - - - + + + - + - - + + - + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - + + + + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - + + - + - - - + + + - - + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - - - + + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - + + - + - - - + + + - - - + + + - - - - - + + + + + - - - - + + + + - - + + - + - - - - + + + + - - - + + + - - + + - - - - - + + + + + - - + + - + - - + + - - + + - + - + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - + - + - - - + + + - - - - - + + + + + - - + + - + - - + + - + - + - - + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - + - - - - + + + + - - - + + + - - - - - + + + + + - - - - + + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - - - - + + + + + - - - - - - + + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - + + - - + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - + + + - + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - - + + - - + + - - - - + + + + - + - + - + - + - + - + - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -36153,7 +36163,7 @@ - + @@ -36182,98 +36192,94 @@ - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + - - - - + + + + + - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -36281,3931 +36287,3943 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - - + + + + + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - + + - - + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - + + + - + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - + - - + + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - + - + - + - + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - + + - - - + + + - - - - + + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - + - + - + - + - + - - + + - + - + - + - + - - - - - - - + + + + + + + - - + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - + + + - - - - - + + + + + - + - + - - + + - + - + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - - - + + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - - + + + + - - + + - + - + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - - + + - - - + + + - - + + - - - - + + + + - - + + - - - + + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - - + + + + - + - + - - - + + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - + - - - - - + + + + + - - - - + + + + - - - + + + - - + + - - + + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - + + - - - - + + + + - - + + - - - + + + - - + + - - - + + + - - + + - + - + - + - + - + - - + + - - - + + + - - + + - + - - - - + + + + - - - + + + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - + - + - - + + - - + + - + - + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - - + + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - + - + - + - + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - + + - - - + + + - - - - + + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - - - - + + + + - - + + - - + + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - - - + + + - - - + + + - + - - - - + + + + - - + + - - - + + + - + - - - - + + + + - - - - + + + + - + - - + + - - + + - - + + - - - + + + - + - - - - + + + + - + - - + + - - + + - + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - + - + - - - + + + - - + + - - + + - - - - + + + + - + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - - - + + + @@ -40239,191 +40257,191 @@ - + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - - - + + + + - + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + - + - + - + - + - + - + - - + + - - - + + + @@ -40457,30 +40475,30 @@ - - + + - + - + - - + + - - - - - + + + + + - - - - + + + + diff --git a/tests/data/test-read-dwarf/test13-pr18894.so.abi b/tests/data/test-read-dwarf/test13-pr18894.so.abi index 70fddaed..c46d002a 100644 --- a/tests/data/test-read-dwarf/test13-pr18894.so.abi +++ b/tests/data/test-read-dwarf/test13-pr18894.so.abi @@ -363,13 +363,12 @@ - - - - + + + - + @@ -419,7 +418,7 @@ - + @@ -453,38 +452,157 @@ - + - - - - - - - - - - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - + - + @@ -499,13 +617,13 @@ - + - + @@ -520,11 +638,11 @@ - + - - + + @@ -538,89 +656,89 @@ - - + + - - + + - + - - + + - + - - - - - - - - - - - + + + + + + + + + + + - - - + + + - + - + - + - + - + - + - - - - - + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -631,55 +749,55 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + - + - + - + - + @@ -707,46 +825,46 @@ - + - + - + - + - + - + - + - + - + - + @@ -787,15 +905,15 @@ - + - + - + @@ -810,9 +928,9 @@ - + - + @@ -822,9 +940,9 @@ - + - + @@ -855,34 +973,34 @@ - + - + - + - + - - - + + + - + - - - + + + - + @@ -900,7 +1018,7 @@ - + @@ -908,7 +1026,7 @@ - + @@ -930,24 +1048,24 @@ - + - + - + - + - + @@ -956,14 +1074,14 @@ - - + + - + @@ -983,21 +1101,21 @@ - - + + - + - + - + @@ -1011,9 +1129,9 @@ - + - + @@ -1023,23 +1141,23 @@ - + - + - + - + @@ -1049,12 +1167,12 @@ - + - + @@ -1103,7 +1221,7 @@ - + @@ -1191,10 +1309,10 @@ - + - + @@ -1211,15 +1329,15 @@ - - + + - - + + - + @@ -1231,126 +1349,126 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1385,7 +1503,7 @@ - + @@ -1430,104 +1548,104 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -1535,21 +1653,21 @@ - + - + - + - + @@ -1566,19 +1684,51 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - + @@ -1590,57 +1740,57 @@ - + - + - + - - + + - - + + - + - - + + - + - + - + - + - + - + @@ -1649,10 +1799,10 @@ - + - + @@ -1664,7 +1814,7 @@ - + @@ -1673,7 +1823,7 @@ - + @@ -1720,7 +1870,7 @@ - + @@ -1731,7 +1881,7 @@ - + @@ -1749,20 +1899,20 @@ - - - + + + - + - - - + + + - + @@ -2011,13 +2161,13 @@ - + - + @@ -2030,11 +2180,11 @@ - + - + @@ -2044,28 +2194,54 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + @@ -2087,45 +2263,77 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + diff --git a/tests/data/test-read-dwarf/test14-pr18893.so.abi b/tests/data/test-read-dwarf/test14-pr18893.so.abi index da1dd103..ba98c681 100644 --- a/tests/data/test-read-dwarf/test14-pr18893.so.abi +++ b/tests/data/test-read-dwarf/test14-pr18893.so.abi @@ -74,135 +74,199 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - + + - - - - + + + + - - + + - + - - - - - + + + + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -211,294 +275,294 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - + + - - + + - + - + - - - - + + + + - + + - - + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - + - + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - + + - - - - + + + + - - + + - + - - - - - + + + + + - - + + - + - - + + - - + + - - + + - - + + - + @@ -507,10 +571,10 @@ - + - + @@ -519,91 +583,27 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - + + + + - + @@ -618,31 +618,31 @@ - + - + - - + + - - - + + + - - + + @@ -654,81 +654,81 @@ - + - - + + - - + + - - + + - + - + - - + + - + - + - + - - + + - + - - + + @@ -736,20 +736,20 @@ - + - + - + @@ -757,7 +757,7 @@ - + @@ -765,26 +765,26 @@ - + - + - + - - + + @@ -794,13 +794,13 @@ - + - + - + @@ -809,55 +809,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -872,16 +872,16 @@ - + - + - + - + @@ -908,10 +908,10 @@ - + - + @@ -920,10 +920,10 @@ - + - + @@ -932,10 +932,10 @@ - + - + @@ -947,7 +947,7 @@ - + @@ -956,7 +956,7 @@ - + @@ -971,48 +971,48 @@ - + - + - + - + - + - + - - + + - - + + - + - + @@ -1020,15 +1020,15 @@ - + - - - + + + @@ -1036,172 +1036,172 @@ - + - - - + + + - - - + + + - + - - + + - + - - + + + - - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - + - + - - - - - - + + + + + + - + - - + + - + - - - + + + - - - - + + + + - - - - + + + + @@ -1209,55 +1209,55 @@ - - - + + + - + - - + + - - - - + + + + - + - + - + - - - - - + + + + + - - - + + + @@ -1265,146 +1265,146 @@ - + - + - - + + - + - + - - + + - + - + - - + + - - + + - + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - + - + - - - - - - + + + + + + - + - + - - - - - - + + + + + + - + - + - - + + - - + + - - - - + + + + @@ -1413,10 +1413,10 @@ - - - - + + + + @@ -1425,8 +1425,8 @@ - - + + @@ -1434,37 +1434,37 @@ - + - + - + - - + + - - - - + + + + @@ -1474,187 +1474,187 @@ - + - - + + - - + + - - + + - + - - + + - - - - + + + + - + - + - + - - - - - - + + + + + + - + - + - - - + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - - + + @@ -1662,9 +1662,9 @@ - - - + + + @@ -1672,9 +1672,9 @@ - - - + + + @@ -1682,67 +1682,67 @@ - - - + + + - + - + - + - + - - + + - - + + - - - + + + - + - + - - - + + + - - + + - + @@ -1755,8 +1755,8 @@ - - + + @@ -1765,50 +1765,50 @@ - - + + - - + + - + - + - + - + - + - + - + - + @@ -1853,31 +1853,31 @@ - + - + - + - + - + - + - + - + - + @@ -1911,205 +1911,205 @@ - + - + - + - - + + - + - - - + + + - - - - + + + + - - + + - + - - + + - - - + + + - - + + - + - + - + - - + + - + - + - - - + + + - + - + - - - + + + - + - + - - + + - - - - + + + + - - - - + + + + - + - - + + - + - + - - + + - + - + - - + + - + @@ -2117,189 +2117,189 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - + - - + + @@ -2325,12 +2325,12 @@ - + - + @@ -2341,14 +2341,14 @@ - + - - + + @@ -2356,41 +2356,41 @@ - + - - - + + + - + - + - - + + - - - - + + + + @@ -2400,187 +2400,187 @@ - + - - + + - - + + - - + + - + - - + + - - - - + + + + - + - + - + - - - - - - + + + + + + - + - + - - - + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - - + + @@ -2588,9 +2588,9 @@ - - - + + + @@ -2598,9 +2598,9 @@ - - - + + + @@ -2608,23 +2608,23 @@ - - - + + + - + - + @@ -2652,22 +2652,22 @@ - + - + - + - + - + - + @@ -2688,25 +2688,25 @@ - + - + - + - + - + - + - + @@ -2724,7 +2724,7 @@ - + @@ -2733,10 +2733,10 @@ - + - + @@ -2745,10 +2745,10 @@ - + - + @@ -2767,13 +2767,13 @@ - + - + @@ -2811,25 +2811,25 @@ - + - + - + - - + + @@ -2842,50 +2842,50 @@ - + - + - + - + - + - + - + - + @@ -2893,37 +2893,37 @@ - + - + - + - + - + - + @@ -2935,50 +2935,50 @@ - + - + - + - + - + - + - + - + @@ -2990,26 +2990,26 @@ - + - + - + - + @@ -3021,22 +3021,22 @@ - + - + - + - + - + @@ -3047,42 +3047,42 @@ - - + + - + - - + + - + - - + + - + - + @@ -3097,46 +3097,46 @@ - + - - + + - + - - + + - + - + - + - + @@ -3149,32 +3149,32 @@ - + - + - + - + - + - + - - + + @@ -3183,7 +3183,7 @@ - + @@ -3198,7 +3198,7 @@ - + @@ -3218,10 +3218,10 @@ - + - + @@ -3229,7 +3229,7 @@ - + @@ -3237,32 +3237,32 @@ - + - - + + - + - + - + @@ -3280,69 +3280,69 @@ - + - + - + - + - + - + - - + + - + - + - + - + - - + + - - - + + + @@ -3350,14 +3350,14 @@ - + - - - + + + @@ -3365,7 +3365,7 @@ - + @@ -3373,7 +3373,7 @@ - + @@ -3382,7 +3382,7 @@ - + @@ -3395,15 +3395,15 @@ - + - - + + @@ -3411,7 +3411,7 @@ - + @@ -3419,7 +3419,7 @@ - + @@ -3428,7 +3428,7 @@ - + @@ -3437,22 +3437,22 @@ - + - - - + + + - - + + @@ -3460,7 +3460,7 @@ - + @@ -3468,7 +3468,7 @@ - + @@ -3477,22 +3477,22 @@ - + - + - + - + - + @@ -3500,34 +3500,34 @@ - + - - + + - + - + - - + + @@ -3535,7 +3535,7 @@ - + @@ -3547,34 +3547,34 @@ - + - + - + - - + + - + - + @@ -3589,14 +3589,14 @@ - + - - + + @@ -3620,52 +3620,52 @@ - + - + - + - + - + - + - + - + @@ -3684,14 +3684,14 @@ - + - - + + @@ -3702,7 +3702,7 @@ - + @@ -3714,7 +3714,7 @@ - + @@ -3725,7 +3725,7 @@ - + @@ -3736,7 +3736,7 @@ - + @@ -3747,7 +3747,7 @@ - + @@ -3758,7 +3758,7 @@ - + @@ -3767,8 +3767,8 @@ - - + + @@ -3777,16 +3777,16 @@ - - + + - - - + + + @@ -3796,7 +3796,7 @@ - + @@ -3811,14 +3811,14 @@ - + - + @@ -3826,8 +3826,8 @@ - - + + @@ -3836,73 +3836,73 @@ - - + + - - - + + + - + - + - - + + - + - + - - + + - + - - - + + + - + - - + + - + @@ -3910,8 +3910,8 @@ - - + + @@ -3919,20 +3919,20 @@ - + - + - + @@ -3973,10 +3973,10 @@ - + - + @@ -3997,10 +3997,10 @@ - + - + @@ -4009,101 +4009,101 @@ - + - + - - + + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - + - - + + @@ -4111,7 +4111,7 @@ - + @@ -4119,7 +4119,7 @@ - + @@ -4127,7 +4127,7 @@ - + @@ -4135,35 +4135,35 @@ - + - + - + - + - - + + @@ -4173,7 +4173,7 @@ - + @@ -4183,7 +4183,7 @@ - + @@ -4193,7 +4193,7 @@ - + @@ -4203,7 +4203,7 @@ - + @@ -4213,7 +4213,7 @@ - + @@ -4223,7 +4223,7 @@ - + @@ -4233,7 +4233,7 @@ - + @@ -4243,7 +4243,7 @@ - + @@ -4251,7 +4251,7 @@ - + @@ -4259,14 +4259,14 @@ - + - + @@ -4274,40 +4274,40 @@ - + - - + + - + - - - + + + - - - + + + @@ -4315,9 +4315,9 @@ - - - + + + @@ -4325,9 +4325,9 @@ - - - + + + @@ -4335,46 +4335,46 @@ - + - - - + + + - - - + + + - + - + - + @@ -4383,9 +4383,9 @@ - + - + @@ -4396,43 +4396,43 @@ - + - + - + - + - + - + - + @@ -4440,18 +4440,18 @@ - + - + - - - + + + @@ -4462,23 +4462,23 @@ - + - + - + - + @@ -4487,8 +4487,8 @@ - - + + @@ -4499,7 +4499,7 @@ - + @@ -4507,7 +4507,7 @@ - + @@ -4517,7 +4517,7 @@ - + @@ -4527,17 +4527,17 @@ - + - + - - + + @@ -4545,7 +4545,7 @@ - + @@ -4553,7 +4553,7 @@ - + @@ -4563,7 +4563,7 @@ - + @@ -4571,7 +4571,7 @@ - + @@ -4588,10 +4588,10 @@ - + - + @@ -4600,88 +4600,88 @@ - - - + + + - + - + - - + + - + - + - + - + - + - - + + - + - - + + - + - + @@ -4701,57 +4701,57 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -4759,14 +4759,14 @@ - + - + @@ -4774,47 +4774,47 @@ - + - - + + - - + + - - + + - + - + - - + + @@ -4826,35 +4826,35 @@ - + - + - + - + - + - - - - + + + + @@ -4864,32 +4864,32 @@ - + - - - - - - + + + + + + - + - - - - + + + + @@ -4897,61 +4897,61 @@ - + - - + + - - - - - + + + + + - + - + - + - + - + - + @@ -4959,39 +4959,39 @@ - + - + - + - + - + - + @@ -5000,96 +5000,96 @@ - + - + - + - + - + - + - - + + - - + + - + - - + + - - + + - + - + - + - + - + - + @@ -5097,19 +5097,19 @@ - + - - - - + + + + - + @@ -5117,41 +5117,41 @@ - - + + - - - + + + - + - + - + - + @@ -5161,7 +5161,7 @@ - + @@ -5169,7 +5169,7 @@ - + @@ -5179,7 +5179,7 @@ - + @@ -5187,7 +5187,7 @@ - + @@ -5238,35 +5238,35 @@ - + - - - + + + - - - + + + - + - + @@ -5287,15 +5287,15 @@ - + - - - + + + @@ -5303,44 +5303,44 @@ - + - + - + - + - + - + - + @@ -5363,9 +5363,9 @@ - - - + + + @@ -5383,7 +5383,7 @@ - + @@ -5392,13 +5392,13 @@ - + - + - + @@ -5418,27 +5418,27 @@ - + - - + + - + - + @@ -5447,48 +5447,48 @@ - + - + - - + + - + - + - - + + - + - + @@ -5496,7 +5496,7 @@ - + @@ -5504,21 +5504,21 @@ - + - + - + @@ -5548,25 +5548,25 @@ - + - + - + - + - - + + @@ -5575,7 +5575,7 @@ - + @@ -5601,14 +5601,14 @@ - + - + @@ -5617,36 +5617,36 @@ - + - + - + - + - + - + @@ -5654,37 +5654,37 @@ - + - + - + - + - + - + - + @@ -5698,130 +5698,130 @@ - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5847,10 +5847,10 @@ - + - + @@ -5861,16 +5861,16 @@ - + - + - + - + @@ -5894,7 +5894,7 @@ - + @@ -5903,38 +5903,38 @@ - + - + - + - + - + - + @@ -5969,22 +5969,22 @@ - + - + - + - + - + - + @@ -6019,179 +6019,179 @@ - - - + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - - + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - + + + + @@ -6199,256 +6199,256 @@ - - - - - - + + + + + + - - - + + + - - - + + + - - + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - + + + + + + + + - + - - - - - - - - - + + + + + + + + + - + - - - - - + + + + + - + - - - - - - + + + + + + - + - + - - - + + + - - - + + + - - - + + + - + - + - - - - - - + + + + + + - - - + + + - + - - - + + + @@ -6456,7 +6456,7 @@ - + @@ -6464,79 +6464,79 @@ - + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + @@ -6544,55 +6544,55 @@ - + - - + + - - - + + + - + - + - + - + - + - + - + - + @@ -6617,7 +6617,7 @@ - + @@ -6629,7 +6629,7 @@ - + @@ -6641,9 +6641,9 @@ - + - + @@ -6653,7 +6653,7 @@ - + @@ -6673,35 +6673,35 @@ - + - - + + - + - + - + - + @@ -6712,8 +6712,8 @@ - - + + @@ -6734,7 +6734,7 @@ - + @@ -6753,23 +6753,23 @@ - + - + - + - + - + @@ -6815,72 +6815,72 @@ - + - - - - + + + + - - + + - - + + - + - + - + - - - - + + + + - + - + @@ -6913,167 +6913,167 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - + - + - + - + - + - - + + @@ -7088,7 +7088,7 @@ - + @@ -7096,21 +7096,21 @@ - + - - + + - + @@ -7195,7 +7195,7 @@ - + @@ -7217,14 +7217,14 @@ - + - - + + @@ -7232,14 +7232,14 @@ - + - + @@ -7247,7 +7247,7 @@ - + @@ -7255,7 +7255,7 @@ - + @@ -7263,7 +7263,7 @@ - + @@ -7271,13 +7271,13 @@ - + - + @@ -7312,14 +7312,14 @@ - + - - + + @@ -7351,7 +7351,7 @@ - + @@ -7359,21 +7359,21 @@ - + - + - + @@ -7388,19 +7388,19 @@ - + - + - + @@ -7422,16 +7422,16 @@ - + - + - + @@ -7439,44 +7439,44 @@ - - + + - + - + - + - + - + - - - - + + + + - - - + + + @@ -7486,7 +7486,7 @@ - + @@ -7495,16 +7495,16 @@ - + - + - - + + @@ -7517,15 +7517,15 @@ - + - + - + @@ -7538,12 +7538,12 @@ - + - + @@ -7572,18 +7572,18 @@ - + - + - + - + @@ -7593,22 +7593,22 @@ - + - + - + - + @@ -7616,13 +7616,13 @@ - - + + - + @@ -7666,7 +7666,7 @@ - + @@ -7677,13 +7677,13 @@ - + - + - + @@ -7704,110 +7704,110 @@ - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -7844,14 +7844,14 @@ - + - - + + @@ -7887,7 +7887,7 @@ - + @@ -7895,7 +7895,7 @@ - + @@ -7936,7 +7936,7 @@ - + @@ -7946,20 +7946,20 @@ - + - - + + - + @@ -8032,13 +8032,13 @@ - + - + @@ -8062,14 +8062,14 @@ - + - - + + @@ -8089,7 +8089,7 @@ - + @@ -8101,7 +8101,7 @@ - + @@ -8109,7 +8109,7 @@ - + @@ -8140,14 +8140,14 @@ - + - - + + @@ -8216,7 +8216,7 @@ - + @@ -8224,7 +8224,7 @@ - + @@ -8239,13 +8239,13 @@ - + - + @@ -8259,7 +8259,7 @@ - + @@ -8295,28 +8295,28 @@ - + - + - + - + - + - + - + - + @@ -8327,113 +8327,113 @@ - + - - + + - + - - + + - + - + - - + + - + - + - - + + - - + + - + - + - - - + + + - - - + + + - + - + - + - + @@ -8441,30 +8441,30 @@ - + - + - - + + - - + + - + @@ -8472,40 +8472,40 @@ - + - + - - + + - + - + - + @@ -8518,12 +8518,12 @@ - + - + @@ -8532,22 +8532,22 @@ - + - + - + - - + + @@ -8556,7 +8556,7 @@ - + @@ -8565,26 +8565,26 @@ - + - - + + - + - + @@ -8602,7 +8602,7 @@ - + @@ -8610,7 +8610,7 @@ - + @@ -8618,20 +8618,20 @@ - + - + - - + + @@ -8639,7 +8639,7 @@ - + @@ -8647,7 +8647,7 @@ - + @@ -8660,7 +8660,7 @@ - + @@ -8680,7 +8680,7 @@ - + @@ -8688,13 +8688,13 @@ - + - + @@ -8725,20 +8725,20 @@ - + - + - - + + @@ -8746,7 +8746,7 @@ - + @@ -8808,59 +8808,59 @@ - + - + - + - + - + - + - + - + - + @@ -8941,26 +8941,26 @@ - + - + - + - + @@ -9001,7 +9001,7 @@ - + @@ -9012,7 +9012,7 @@ - + @@ -9026,13 +9026,13 @@ - + - + @@ -9045,7 +9045,7 @@ - + @@ -9066,7 +9066,7 @@ - + @@ -9116,35 +9116,35 @@ - + - - + + - + - + - + @@ -9174,26 +9174,26 @@ - + - + - + - + @@ -9240,19 +9240,19 @@ - + - + - + @@ -9285,12 +9285,12 @@ - - - + + + - + @@ -9307,7 +9307,7 @@ - + @@ -9322,7 +9322,7 @@ - + @@ -9349,16 +9349,16 @@ - + - + - + @@ -9367,13 +9367,13 @@ - + - + @@ -9382,10 +9382,10 @@ - + - + @@ -9394,11 +9394,11 @@ - + - + @@ -9426,7 +9426,7 @@ - + @@ -9441,7 +9441,7 @@ - + @@ -9453,7 +9453,7 @@ - + @@ -9468,7 +9468,7 @@ - + @@ -9490,7 +9490,7 @@ - + @@ -9516,7 +9516,7 @@ - + @@ -9538,7 +9538,7 @@ - + @@ -9550,7 +9550,7 @@ - + @@ -9574,7 +9574,7 @@ - + @@ -9589,16 +9589,16 @@ - + - + - + @@ -9610,7 +9610,7 @@ - + @@ -9620,17 +9620,17 @@ - + - + - + @@ -9649,7 +9649,7 @@ - + @@ -9664,75 +9664,75 @@ - - - + + + - + - + - + - + - + - + - - - + + + - + - + - - + + - - + + - + - + - + - - + + - + @@ -9740,163 +9740,163 @@ - + - + - + - + - + - + - - + + - + - - + + - - + + + - - + - - + + - - - + + + - + - + - - - - - + + + + + - + - - - + + + - + - - + + - + - + - - + + - - + + - + - - - + + + - + - - + + - + - + - - - + + + - + - - + + - + @@ -9956,7 +9956,7 @@ - + @@ -9968,21 +9968,21 @@ - + - + - + @@ -10005,42 +10005,42 @@ - + - + - - - + + + - - + + - + - - + + - - + + - + @@ -10050,7 +10050,7 @@ - + @@ -10058,7 +10058,7 @@ - + @@ -10067,26 +10067,26 @@ - + - + - + - + - + diff --git a/tests/data/test-read-dwarf/test15-pr18892.so.abi b/tests/data/test-read-dwarf/test15-pr18892.so.abi index be9a931e..d3995b50 100644 --- a/tests/data/test-read-dwarf/test15-pr18892.so.abi +++ b/tests/data/test-read-dwarf/test15-pr18892.so.abi @@ -1535,83 +1535,82 @@ - - + - + - + - + - + - + - + - - - + + + - + - + - - - - + + + + - - - + + + - + - + - + - + - - + + - + - + @@ -1619,55 +1618,55 @@ - + - + - + - - + + - - - + + + - - + + - + - + + + - - @@ -1675,7 +1674,7 @@ - + @@ -1683,7 +1682,7 @@ - + @@ -1698,7 +1697,7 @@ - + @@ -1708,7 +1707,7 @@ - + @@ -1716,25 +1715,33 @@ - + - + - + - + + + + + + + + + @@ -1754,19 +1761,19 @@ - + - + - + - + @@ -1776,54 +1783,54 @@ - + - - - - + + + + - - + + - + - + - + - + - - + + - + - - + + - + @@ -1836,16 +1843,22 @@ - + + + + + + + - + - + - - + + @@ -1923,58 +1936,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1982,87 +1995,87 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - - + + @@ -2074,41 +2087,41 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -2116,119 +2129,119 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - - + + - + @@ -2236,17 +2249,17 @@ - + - + - + - + @@ -2256,49 +2269,49 @@ - + - + - + - + - - + + - - + + - - - - + + + + - + - + @@ -2310,25 +2323,25 @@ - + - - - + + + - - - + + + - + @@ -2337,93 +2350,93 @@ - - + + - - - + + + - - + + - - + + - - - - - - + + + + + + - - + + - + - + - + - - - - + + + + - - + + - + - - + + - - + + - + - + @@ -2431,140 +2444,140 @@ - + - - + + - + - + - + - + - + - + - + - - - + + + - - - + + + - - + + - - - - - - - + + + + + + + - + - - + + - - - - - - + + + + + + - - - + + + - - + + - - - + + + - + - - - + + + - - + + - + - + - + - + - + @@ -2572,68 +2585,68 @@ - + - + - + - + - + - + - - - + + + - - - + + + - + - - + + - + - + - - - - - - + + + + + + @@ -2643,258 +2656,258 @@ - - - - + + + + - + - - + + - + - - + + - - - - - - - - - + + + + + + - - + + + + + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - - + + + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + @@ -2913,233 +2926,233 @@ - + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - + - + - + - + - - - + + + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - - - - - + + + - - - + - - - - + + + + + + + + - - - + + + - + - + - + - - - + + + - - - - + + + + - - + + - - + + - + - + - + - + - + - - - - + + + + - - - - - - + + + + + + - - + + - + - + - + @@ -3149,79 +3162,79 @@ - - - - + + + + - - + + - + - + - - + + - + - - - - - - + + + + + + - - - + + + - + - + - + - + - + - + - + - + - - - - + + + + - - + + - - + + @@ -3229,82 +3242,82 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - - + + + + - - - + + + - + - - - + + + - - - + + + @@ -3314,146 +3327,146 @@ - - + + - + - - - + + + - - - + + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - - + + + @@ -3464,84 +3477,84 @@ - - - + + + - + - - - - - + + + + + - - + + - + - + - + - + - - - + + + - + - + - - + + - + - + - + - - - - + + + + - - + + - - - - + + + + @@ -3549,589 +3562,589 @@ - + - + - + - - + + - - - + + + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - + + + @@ -4142,342 +4155,342 @@ - - - + + + - - - - - + + + + + - + - + - + - + - - + + - + - + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - + - - + + - - - - - - + + + + - - - - - - - - + + + + + + + + + + - - - - + + + + - + - + - + - + - - - + + + - + - + - - - - + + + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - - - - - - + + + + + + - - - + + + - - - - + + + + @@ -4485,142 +4498,142 @@ - - - + - + - - + + + + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - - + + - - + + - + - + - + - - + + - - + + - + - + - - + + - - - + + + - + - + - + - - + + @@ -4632,44 +4645,44 @@ - + - - - - - - - - - - - + + + + + + + + + + + - + - + - + - + - + - + - + @@ -4677,23 +4690,32 @@ - + - - + + - - - - - + + + - - + + + + + + + + + + + + + @@ -4701,288 +4723,288 @@ - - + + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - - - - + + + + - - + + - + - - - + + + - - - - - + + + + + - - - - + + + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - - + + - + - + - - + + - + - - + + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - - + + - - - - + + + + - - + + - - - + + + - + - + @@ -4990,72 +5012,63 @@ - + - - + + - - - - - - - - - - + - + - - + + - - - - + + + + - - - + + + - - - - + - - + - - - - - - + + + + + + + + + + - + - + - + - - - + + + @@ -5066,8 +5079,8 @@ - - + + @@ -5094,210 +5107,210 @@ - - + + - + - + - + - + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - + - + - + - + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - + - + @@ -5307,30 +5320,30 @@ - - - - + + + + - - - + + + - + - + - + @@ -5341,25 +5354,25 @@ - + - + - + - + @@ -5368,27 +5381,27 @@ - - + + - - + + - - + + - - + + - - + + - + - + - + @@ -5397,39 +5410,39 @@ - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -5437,578 +5450,576 @@ - + - + - + - + - - - - + + + + - + - + - - + + - - + + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - - - + + + - + - + - + - + - + - - + + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - - - - - - - - - + + + + + + + + + + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -6017,360 +6028,365 @@ - - - - - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - + + - + + - - - - + + + - - - - - - - - - - + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - + - + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + - + - + - + - + - - + + - - + + - + @@ -6378,287 +6394,287 @@ - - - + + + - + - + - + - - - - + + + + - + - + - + - + - + - + - - - + + + - - + + - - - + + + - - + + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - + @@ -6669,213 +6685,213 @@ - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - - + + + - + - + @@ -6889,118 +6905,118 @@ - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7009,200 +7025,200 @@ - - + + - - - + + + - + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - - - - + + + + + + - - - - + + + + - + - - + + - + - - + + - + @@ -7210,75 +7226,72 @@ - - + + - + - + - + - + - + - - - - - + + - - + + - - + + - + - + - + - + - + - + - + @@ -7288,7 +7301,7 @@ - + @@ -7477,7 +7490,7 @@ - + @@ -7584,13 +7597,13 @@ - + - + @@ -8038,8 +8051,8 @@ - - + + @@ -8050,7 +8063,7 @@ - + @@ -8783,7 +8796,7 @@ - + @@ -8799,13 +8812,13 @@ - + - - + + @@ -8819,7 +8832,7 @@ - + @@ -8834,7 +8847,7 @@ - + @@ -8991,9 +9004,9 @@ - - - + + + @@ -9017,9 +9030,9 @@ - - - + + + @@ -9042,24 +9055,24 @@ - + - + - + - + @@ -9144,14 +9157,14 @@ - + - + @@ -9164,14 +9177,14 @@ - + - + @@ -9200,7 +9213,7 @@ - + @@ -9209,7 +9222,7 @@ - + @@ -9217,7 +9230,7 @@ - + @@ -9226,7 +9239,7 @@ - + @@ -9269,14 +9282,14 @@ - + - + @@ -9351,46 +9364,46 @@ - + - + - + - + - + - + - + @@ -9398,34 +9411,34 @@ - + - + - + - + - + @@ -9449,7 +9462,7 @@ - + @@ -9459,7 +9472,7 @@ - + @@ -9510,7 +9523,7 @@ - + @@ -9520,7 +9533,7 @@ - + @@ -9582,25 +9595,25 @@ - + - - - + + + - - - + + + @@ -10061,7 +10074,7 @@ - + @@ -10202,8 +10215,8 @@ - - + + @@ -10287,8 +10300,8 @@ - - + + @@ -10445,7 +10458,7 @@ - + @@ -10453,7 +10466,7 @@ - + @@ -10519,7 +10532,7 @@ - + @@ -10533,7 +10546,7 @@ - + @@ -10603,9 +10616,9 @@ - - - + + + @@ -10613,16 +10626,16 @@ - - - + + + - + @@ -10640,7 +10653,7 @@ - + @@ -10718,7 +10731,7 @@ - + @@ -10728,7 +10741,7 @@ - + @@ -10737,7 +10750,7 @@ - + @@ -10747,7 +10760,7 @@ - + @@ -10756,106 +10769,106 @@ - + - - - - - + + + + + - - - + + + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - + - - - + + + - - - + + + - - - + + + - + - + @@ -10872,898 +10885,898 @@ - + - + - + - - - + + + - + - + - + - + - + - + - - + + - - + + - + - - + + - + - + - + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - + + - + - + - + - + - + - + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - + - - + + - + - + - + - - + + - + - + - - + + - + - + - - - + + + - + - - + + - + - - - + + + - - - - + + + + - + - - - + + + - + - + - - + + - - - + + + - - - + + + - + - + - + - - + + - + - - - + + + - + - - - + + + - + - + - + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - + - - - + + + - + - - + + - - - + + + - + - - + + - - + + - + - + - - + + - + - - - + + + - - + + - + - + - - + + - + - - + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - - + + - - - - - - + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - + - - - + + + - + - - - + + + - + - - + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - + - - - + + + - + - - - + + + - + - - + + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - + - - + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - + - - - + + + - - - + + + - + @@ -11771,37 +11784,37 @@ - + - + - + - + - - + + - + - - + + - + - + @@ -11816,417 +11829,417 @@ - + - + - - - + + + - + - - + + - + - - - + + + - - + + - + - + - - + + - - + + - - + + - - + + - - - + + + - + - - + + - + - - + + - - - + + + - + - - - - + + + + - - + + - - + + - + - - + + - - - + + + - - - - + + + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - - + + - + - + - + - + - - + + - - - - + + + + - + - + - - + + - - + + - - - - - + + + + + - - - - - + + + + + @@ -12241,7 +12254,7 @@ - + @@ -12251,67 +12264,67 @@ - + - + - + - + - - + + - - + + - - + + - + - - + + - + - + - + @@ -12323,26 +12336,26 @@ - - + + - - + + - + - + - + @@ -12354,21 +12367,21 @@ - + - - + + - - + + - + @@ -12377,51 +12390,51 @@ - - + + - - + + - + - + - + - + - - + + - + - + - + - - + + - - + + @@ -12443,13 +12456,13 @@ - + - + @@ -12458,7 +12471,7 @@ - + @@ -12512,7 +12525,7 @@ - + @@ -12677,14 +12690,14 @@ - + - + @@ -12772,7 +12785,7 @@ - + @@ -12845,7 +12858,7 @@ - + @@ -12884,8 +12897,8 @@ - - + + @@ -13012,15 +13025,15 @@ - + - + - + @@ -13032,1537 +13045,1537 @@ - + - - + + - + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - - + + + + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - - - + + + - + - - - + + + - + - + - + - + - - + + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - - + + - + - - + + - - + + - - - - + + + + - + - - - + + + - - - - + + + + - - - + + + - + - - + + - + - - - + + + - - - - + + + + - - - + + + - + - - + + - + - - + + - - + + - - + + - + - - - - - + + + + + - - - + + + - - + + - - - + + + - - + + - + - - + + - + - - + + - + - + - + - + - - - - + + + + - + - - - - + + + + - + - - + + - + - + - + - + - + - - + + - + - + - - - + + + - + - - + + - - + + - + - + - - + + - + - + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - + - + - - + + - + - - - + + + - + - - + + - + - + - + - + - - - + + + - + - + - + - - + + - + - + - + - - - - - + + + + + - - - - + + + + - - + + - - + + - - + + - + - - - - + + + + - - + + - - + + - - + + - + - + - - - - - + + + + + - - - - + + + + - + - - - - + + + + - + - - - - + + + + - + - - - + + + - + - - - + + + - - + + - - - - - + + + + + - - - + + + - + - - - + + + - + - - - - - - - + + + + + + + - - + + - + - - + + - - + + - - + + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - + - - + + - + - - + + - + - - + + - + - - - + + + - - - - + + + + - - - + + + - - + + - + - - + + - + - + - + - - - - + + + + - - - - - + + + + + - + - - - + + + - + - - - + + + - + - - + + - + - - + + - + - + - + - - + + - + - - + + - + - + - + - - - + + + - - + + - + - + - - - + + + - + - - + + - + - + - + - + - - + + - + - - + + - + - - + + - + - + - + - - + + - + - - - + + + - + - - + + - + - - + + - + - + - + - + - + - + - + - - - + + + - - + + - + - - - - + + + + - - - + + + - + - + - - - + + + - + - - - + + + - + - + - - + + - + - + - - - + + + - - + + - - + + - + - - - - - + + + + + - - - - - + + + + + - + - - - - + + + + - + - - + + - - + + - - - - + + + + - + - - - + + + - + - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - + + + + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - + - + - + - + - - - + + + - + - + - + - + - - + + - + - - + + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - + + - - - - + + + + - + - + - + - + - + - + - - + + - + - + - - + + - - - + + + - + - + - - + + - + - + - + - - - - - + + + + + - + - - - - - + + + + + - + - + - - - - - - - - - + + + + + - - - + + + + + + + - + - - - - + + + + - - - - + + + + - + - - - - - - + + + + + + - - - + + + - - - + + + @@ -14578,30 +14591,30 @@ - - + + - - + + - - + + - - + + - - + + - - + + @@ -14614,195 +14627,195 @@ - - + + - - - - - - - - - - + + + + + + + + + + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - + - + - + - - + + - - + + - - + + @@ -14810,235 +14823,235 @@ - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - + - + - + - + - + - + - - - + + + - - - + + + - + - - + + - - + + - - - + + + - + - + @@ -15046,104 +15059,104 @@ - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - + - - - - - + + + + + - - + + - - - - + + + + @@ -15151,30 +15164,28 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - + + + @@ -15182,511 +15193,513 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - + - + - + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - - - + + + + - + - + - + @@ -15694,248 +15707,248 @@ - + - - - + + + - + - - + + - + - + - + - + - - + + - + - - - + + + - - - + + + - - - - + + - + + + - + - + - + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + @@ -15945,8 +15958,8 @@ - - + + @@ -15955,440 +15968,440 @@ - - + + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - + - - - - - + + + + + - - - - + + + + - + - + - + - + - + - + - + - - - + + + - - + + - + - + - + - - + + - + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - - - + + + + + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + @@ -16398,8 +16411,8 @@ - - + + @@ -16408,639 +16421,639 @@ - + - + - + - + - + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - - - + + + + - - + + - + - + - + - - - + + + - - - - + + + + - + - - + + - - + + - + - - + + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - - + + - - - - - + + + + + - + - - + + - - + + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - + - + - + - - + + @@ -17050,9 +17063,9 @@ - + - + @@ -17061,641 +17074,641 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + - + - + - + - + - + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - + + - - + + - - + + - + - - + + - + - + - + - + - + - - + + - + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - - + + + - - + + - - + + - - - + + + - - + + - + - - + + - + - + - + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - + + @@ -17709,294 +17722,294 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - + + + - - - + + + - - - - - - - + + + + + + + - - + + - - + + - + - - + + - + - + - - - + + + - - + + - + - + - + - + - + - - + + - - + + - - - + + + - - + + - - + + @@ -18437,330 +18450,330 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - + - + - - - + + + - + - + - - - + + + - + - + - + - + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - - + + @@ -18769,100 +18782,100 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - - + + + + - - + + - - + + @@ -18872,1492 +18885,1492 @@ - - - - + + + + - - - - + + + + - + - - - - - - + + + + + + - + - - - + + + - - - + + + - - - + + + - + - - + + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - + - + - - - + + + - - + + - + - - + + - - + + - - - + + + - + - + - - - + + + - - + + - + - + - + - + - - - + + + - + - + - + - + - + - - + + - - + + - + - - + + - - + + - - - + + + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - + + + - - - + + - - - - - + + + + + + + + + - - + + - - + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - + + + - - + + - + - + - + - + - + - - - - - + + + + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - + - + - - + + - - - + + + - + - + - - + + - - + + - + - + - + - + - + - - - - - + + + + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - + - + - - + + - - - + + + - + - - - + + + - - - + + + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - + - - - + + + - - - + + + @@ -20365,17 +20378,17 @@ - - - - - - - - + + + + + + + + - - + + @@ -20384,88 +20397,88 @@ - + - + - + - - - + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - + - + - + - + - + - + - - + + - - + + @@ -20474,317 +20487,317 @@ - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - + + + - - + + - + - - - + + + - + - + - + - - - + + + - - - - - + + + + + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - - + + - + - + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + @@ -20792,30 +20805,30 @@ - - - + + + - - - - - + + + + + - + - + - + @@ -20827,152 +20840,152 @@ - - + + - - + + - - + + - + - + - + - + - + - - + + - + - - + + - - - + + + - + - - + + - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - + @@ -20980,86 +20993,86 @@ - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -21068,21 +21081,21 @@ - + - + - + - + - + @@ -21091,530 +21104,530 @@ - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - - + + - + - + - + - + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + @@ -21623,326 +21636,326 @@ - + - + - - + + - + - + - + - + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -21950,224 +21963,224 @@ - - + + - - - - - - - - - + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - + - + - + - + - + - - + + - + - + - + - + - + - - - + + + - + - + - - + + - - + + - - - + + + - + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + @@ -22175,68 +22188,68 @@ - - + + - - + + - - + + - - + + - - + + - - - - - - - + + + + + + + - - - + + + - - + + - - + + - - + + - - - + + + - + - - + + @@ -22245,37 +22258,37 @@ - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - + + @@ -22294,12 +22307,12 @@ - + - + @@ -22312,10 +22325,10 @@ - + - + @@ -22350,12 +22363,12 @@ - + - + @@ -22367,30 +22380,30 @@ - + - + - + - + - + - - + + - + @@ -22398,62 +22411,62 @@ - - - + + + - - - + + + - - + + - - - + + + - - - - + + + + - - + + - - - - - - - - - + + + + + + + + + - - + + - - + + @@ -22461,120 +22474,120 @@ - - - + + + - + - + - + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + @@ -22582,141 +22595,141 @@ - - - + + + - - - + + + - + - - - + + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - + + - + - - - - - + + + + + + + + + + - - + + - - - - - + + + + + - - + + - + - + - - + + - - + + - - + + - - + + @@ -22724,664 +22737,664 @@ - - - + + + - - - + + + - + - - + + - - - - - + + + + + - - - + + + - + - - - - + + + + - - - + + + - - - + + + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - + - - - + + + - - + + - - + + - + - + - - + + - + - - + + - + - + - + - - + + - - + + - - + + - - - - - + + + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - - - - - + + + + + + - - - - + + + + - - + + - + - + - + - + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - + - + - + @@ -23389,70 +23402,70 @@ - - - - - - - + + + + + + + - - + + - + - - + + - - + + - + - - + + - - - - + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - + + @@ -23460,13 +23473,13 @@ - + - + @@ -23475,73 +23488,73 @@ - + - + - + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + @@ -23550,215 +23563,215 @@ - + - + - + - + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - - - - - + + + + + - - - - + + + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -23770,243 +23783,243 @@ - - + + - + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - - - - - - - - - - - + + + + + + + + + + + - - - + + + - + - - + + - + - + - + - + - + - - + + - - - + + + - + - - - - - - - + + + - + + + + + - - - - + + + + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + @@ -24014,104 +24027,104 @@ - - - + + + - + - - - - - - - - + + + + + + + + - + - + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - - - - + + + + diff --git a/tests/data/test-read-dwarf/test16-pr18904.so.abi b/tests/data/test-read-dwarf/test16-pr18904.so.abi index 3b7a4177..af52ea4e 100644 --- a/tests/data/test-read-dwarf/test16-pr18904.so.abi +++ b/tests/data/test-read-dwarf/test16-pr18904.so.abi @@ -34737,7 +34737,7 @@ - + diff --git a/tests/data/test-read-dwarf/test17-pr19027.so.abi b/tests/data/test-read-dwarf/test17-pr19027.so.abi index bbf86a91..a2a1ded5 100644 --- a/tests/data/test-read-dwarf/test17-pr19027.so.abi +++ b/tests/data/test-read-dwarf/test17-pr19027.so.abi @@ -276,7 +276,7 @@ - + @@ -1247,38 +1247,37 @@ - - + - + - + - + - + - + - + - + - + @@ -1306,7 +1305,7 @@ - + @@ -1343,17 +1342,17 @@ - + - + - + - + @@ -1375,7 +1374,7 @@ - + @@ -1389,7 +1388,7 @@ - + @@ -1397,7 +1396,7 @@ - + @@ -1405,8 +1404,8 @@ - - + + @@ -1414,7 +1413,7 @@ - + @@ -1438,10 +1437,11 @@ - - - - + + + + + @@ -1474,9 +1474,9 @@ - - - + + + @@ -1608,9 +1608,9 @@ - - - + + + @@ -1624,7 +1624,7 @@ - + @@ -1657,11 +1657,11 @@ - + - + @@ -1684,13 +1684,12 @@ - - + @@ -1702,6 +1701,7 @@ + @@ -1817,7 +1817,7 @@ - + @@ -1901,7 +1901,7 @@ - + @@ -1999,7 +1999,7 @@ - + @@ -2046,14 +2046,14 @@ - + - + @@ -2102,7 +2102,7 @@ - + @@ -2114,13 +2114,13 @@ - + - - + + @@ -2128,7 +2128,7 @@ - + @@ -2141,7 +2141,7 @@ - + @@ -2158,7 +2158,7 @@ - + @@ -2167,7 +2167,7 @@ - + @@ -2184,7 +2184,7 @@ - + @@ -2193,7 +2193,7 @@ - + @@ -2210,7 +2210,7 @@ - + @@ -2219,7 +2219,7 @@ - + @@ -2235,7 +2235,7 @@ - + @@ -2271,7 +2271,7 @@ - + @@ -2325,7 +2325,7 @@ - + @@ -2441,49 +2441,52 @@ + + + - + - + - + - + - + - + - + - - - - - + + + + + - + - + @@ -2492,11 +2495,11 @@ - - + + - + @@ -2515,13 +2518,13 @@ - - + + - + @@ -2542,55 +2545,55 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2627,7 +2630,7 @@ - + @@ -2670,22 +2673,22 @@ - + - + - + - + - + @@ -2699,13 +2702,13 @@ - + - + @@ -2715,19 +2718,19 @@ - + - + - + - + - + @@ -2738,7 +2741,7 @@ - + @@ -2759,52 +2762,52 @@ - + - + - - + + - + - + - + - + - + - + - + @@ -2813,7 +2816,7 @@ - + @@ -2827,25 +2830,25 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -2854,11 +2857,11 @@ - - + + - + @@ -2870,15 +2873,14 @@ - + - - + @@ -2890,180 +2892,181 @@ - - - - - - - + + + + + + + - - + + - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - + - + - + - - + + - - + + - + - + - + - + - - + + - - + + - + - + @@ -3073,69 +3076,69 @@ - + - + - - + + - - + + - - + + - - + + - + - - + + - + - + - + @@ -3160,44 +3163,44 @@ - + - + - - + + - + - + - + - + @@ -3205,7 +3208,7 @@ - + @@ -3214,7 +3217,7 @@ - + @@ -3222,1218 +3225,1218 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -4442,43 +4445,43 @@ - + - + - - + + - + - - + + - - + + - + - - + + @@ -4487,20 +4490,20 @@ - + - + - + - + @@ -4510,138 +4513,138 @@ - + - + - - + + - - + + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - + - + - - + + @@ -4650,36 +4653,36 @@ - + - + - + - - + + - + - + - + - + @@ -4689,20 +4692,20 @@ - - + + - + - - + + @@ -4711,14 +4714,14 @@ - - - + + + - + @@ -4726,13 +4729,13 @@ - + - - + + @@ -4750,7 +4753,7 @@ - + @@ -4758,342 +4761,342 @@ - + - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - - + + + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + - - - + + + - - - + + + - - - + + + - + - + - + - + - - - + + + - - - + + + - + - + - + - + - - - + + + - - - + + + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - + - + - + - + @@ -5103,30 +5106,30 @@ - + - - + + - + - + - + - + @@ -5136,78 +5139,78 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5217,30 +5220,30 @@ - + - - + + - + - + - + - + @@ -5250,21 +5253,21 @@ - - + + - + - + - + @@ -5274,102 +5277,102 @@ - + - + - - + + - - + + - - + + - - + + - + - - + + - + - + - + - + - - + + - - + + - - + + - + @@ -5379,283 +5382,283 @@ - + - + - - + + - - + + - - + + - - + + - + - - + + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -5665,11 +5668,11 @@ - + - + @@ -5679,11 +5682,11 @@ - + - + @@ -5693,77 +5696,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - + @@ -5821,7 +5824,7 @@ - + @@ -5832,7 +5835,7 @@ - + @@ -5848,22 +5851,22 @@ - + - + - + - + - + @@ -5872,7 +5875,7 @@ - + @@ -5880,7 +5883,7 @@ - + @@ -5889,16 +5892,16 @@ - + - + - + @@ -5908,15 +5911,15 @@ - - + + - + - + @@ -5924,7 +5927,7 @@ - + @@ -5933,7 +5936,7 @@ - + @@ -5943,77 +5946,77 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -6022,7 +6025,7 @@ - + @@ -6105,8 +6108,8 @@ - - + + @@ -6217,14 +6220,14 @@ - + - + @@ -6275,142 +6278,142 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - - - - + + + + - + - + - + - + - - - + + + @@ -6432,80 +6435,80 @@ - - - + + + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6514,60 +6517,60 @@ - + - + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - - - + + + - + - + - - + + @@ -6575,8 +6578,8 @@ - - + + @@ -6587,7 +6590,7 @@ - + @@ -6602,8 +6605,8 @@ - - + + @@ -6611,85 +6614,85 @@ - + - + - - - - + + + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - - - - - + + + + + - + @@ -6698,29 +6701,29 @@ - + - + - + - + - + - + - + - - + + @@ -6728,114 +6731,114 @@ - - - - - + + + + + - + - + - + - + - + - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + - - + + + + - + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - - - - - - + + + + + + - + @@ -6969,82 +6972,82 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -7055,62 +7058,61 @@ - + - + - - + + - + - + - - - + + - - - + + + - - - + + + - - - - - - - - + + + + + + + + @@ -7118,103 +7120,104 @@ - - - + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -7223,53 +7226,53 @@ - + - + - - + + - + - - + + - - + + - + - - + + - - + + - - + + @@ -7278,53 +7281,53 @@ - + - + - - + + - + - - + + - - + + - + - - + + - - + + - - + + @@ -7333,119 +7336,119 @@ - + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + @@ -7455,573 +7458,573 @@ - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -8031,234 +8034,234 @@ - + - - + + - + - - - + + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -8268,38 +8271,38 @@ - + - + - + - - + + - - + + - + - + - + @@ -8309,212 +8312,212 @@ - + - + - - + + - - + + - - + + - - + + - + - - + + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + @@ -8524,123 +8527,123 @@ - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + @@ -8650,122 +8653,122 @@ - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + @@ -8775,131 +8778,131 @@ - - + + - - + + - + - - - + + + - + - + - + - + - + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8909,65 +8912,65 @@ - - + + - + - - - + + + - + - + - + - + - + - - + + - + - + - + - + - + @@ -8977,12 +8980,12 @@ - + - + @@ -8992,11 +8995,11 @@ - + - + @@ -9006,11 +9009,11 @@ - + - + @@ -9020,7 +9023,7 @@ - + @@ -9031,142 +9034,142 @@ - - + + - - + + - - - - - + + - + - - + + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + + + + - - + + - + - + - - + + - + - + - + - + - - + + - + - + - + - + - + @@ -9178,17 +9181,17 @@ - - + + - + - + @@ -9213,103 +9216,103 @@ - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - - + + @@ -9317,8 +9320,8 @@ - - + + @@ -9326,13 +9329,13 @@ - + - + @@ -9343,9 +9346,9 @@ - - - + + + @@ -9353,16 +9356,16 @@ - + + - - + @@ -9370,66 +9373,66 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -9437,19 +9440,19 @@ - + - - - + + + - + @@ -9457,66 +9460,66 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -9524,12 +9527,12 @@ - + - + @@ -9537,66 +9540,66 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -9604,20 +9607,20 @@ - + - + - + - + @@ -9648,15 +9651,15 @@ - - - + + + - + @@ -9664,7 +9667,7 @@ - + @@ -9672,12 +9675,12 @@ - + - + @@ -9692,26 +9695,26 @@ - + - + - + - + @@ -9719,7 +9722,7 @@ - + @@ -9731,7 +9734,7 @@ - + @@ -9746,26 +9749,26 @@ - + - + - + - + @@ -9773,7 +9776,7 @@ - + @@ -9785,7 +9788,7 @@ - + @@ -9800,26 +9803,26 @@ - + - + - + - + @@ -9827,7 +9830,7 @@ - + @@ -9839,35 +9842,35 @@ - + - + - + - + - + - + - + @@ -9875,41 +9878,41 @@ - + - + - + - + - + - + - + - + @@ -9917,16 +9920,16 @@ - + - + - + @@ -9938,60 +9941,60 @@ - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - + @@ -10003,62 +10006,62 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10066,25 +10069,24 @@ - - - + + - - - + + + - - - + + + - + - - + + @@ -10092,9 +10094,9 @@ - - - + + + @@ -10107,204 +10109,204 @@ - - - - - + + + + + - + - + - - - - - - - + + + + + + + - + - + - - - - - - - + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + - - - + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + - - - - - + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + @@ -10334,8 +10336,8 @@ - - + + @@ -10346,466 +10348,465 @@ - - - - - - - + + + + + + - - - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + - - - + + + + - - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - + + + + + - - - - - - + + + + + + + - - + - - - + + + + - - + - + + - - - + + - - - + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - + - - - - - - + + + + + + - - + + - + - - - - + + - + - - - - + + + + + + - + - + - - - - - - - - - + + + + + + + + - + - - - - + + + + + - + - - - - - - - - + + + + + + + + - - - - - - + + + + + + - + - - - + + + + - - + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + + - - + - + - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + @@ -10819,186 +10820,188 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - + - + - + - - + + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - + - + - - + + - - + + - + - + - + @@ -11011,109 +11014,109 @@ - - + + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - + - + - - + + - - + + - + - + - + @@ -11121,7 +11124,7 @@ - + @@ -11129,7 +11132,7 @@ - + @@ -11147,99 +11150,99 @@ - + - + - + - + - + - + - + - - + + - + - - + + - - + + - + - + - + - + - + - - + + @@ -11248,60 +11251,60 @@ - + - + - - + + - + - + - + - + - + - + - + - + @@ -11311,8 +11314,8 @@ - - + + @@ -11321,52 +11324,52 @@ - + - + - - + + - + - + - + - + - + - + @@ -11393,7 +11396,7 @@ - + @@ -11402,7 +11405,7 @@ - + @@ -11412,32 +11415,32 @@ - + - + - - + + - + - + - + @@ -11446,42 +11449,42 @@ - + - + - - + + - + - - + + - + @@ -11490,15 +11493,15 @@ - - + + - + @@ -11508,21 +11511,21 @@ - + - + - + @@ -11530,7 +11533,7 @@ - + @@ -11538,149 +11541,149 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + @@ -11690,9 +11693,9 @@ - + - + @@ -11711,36 +11714,36 @@ - - + + - + - + - + - + - + - + - + - + @@ -11750,107 +11753,107 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - + - - + + @@ -11859,43 +11862,43 @@ - + - + - - + + - + - - + + - - + + - + - - + + @@ -11904,36 +11907,36 @@ - + - + - - + + - + - + - - + + - - + + @@ -11942,79 +11945,79 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + @@ -12023,46 +12026,46 @@ - + - + - - - + + + - + - + - + - + - + - + @@ -12072,28 +12075,28 @@ - + - - + + - + - - + + @@ -12102,66 +12105,66 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - + - + - + - + - + @@ -12171,41 +12174,41 @@ - - - + + + - - - + + + - + - + - + - + - + - + - + @@ -12215,24 +12218,24 @@ - - + + - + - + - + - + @@ -12242,156 +12245,156 @@ - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - - + + + @@ -12400,51 +12403,51 @@ - + - + - - + + - + - - + + - - + + - + - + - + - + - + - + @@ -12452,244 +12455,244 @@ - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -12699,49 +12702,49 @@ - + - - + + - - + + - + - - + + - - + + - - - + + + @@ -12750,74 +12753,74 @@ - + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + @@ -12825,39 +12828,39 @@ - + - + - - + + - + - + - - + + @@ -12866,209 +12869,209 @@ - + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - - + + - + - + - - + + - + - + - + - + - - + + - - + + - + - + - - + + - - + + @@ -13077,54 +13080,54 @@ - + - + - - + + - + - - + + - - + + - + - + - + - + - + @@ -13134,119 +13137,119 @@ - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + @@ -13255,44 +13258,44 @@ - + - + - - + + - + - - + + - - + + - + - - - + + + @@ -13301,54 +13304,54 @@ - + - + - - + + - + - - + + - - + + - + - + - + - + - + @@ -13360,119 +13363,119 @@ - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + @@ -13481,51 +13484,51 @@ - + - + - - + + - + - - + + - - + + - + - + - + - + @@ -13537,119 +13540,119 @@ - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + @@ -13658,67 +13661,67 @@ - + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + @@ -13727,24 +13730,24 @@ - - + + - + - + - + - + @@ -13754,7 +13757,7 @@ - + @@ -13763,24 +13766,24 @@ - - + + - + - + - + - + @@ -13790,7 +13793,7 @@ - + @@ -13799,27 +13802,27 @@ - - + + - + - + - + - + - + @@ -13829,7 +13832,7 @@ - + @@ -13838,22 +13841,22 @@ - - + + - + - - - - + + + + @@ -13862,61 +13865,61 @@ - + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - + @@ -13924,31 +13927,31 @@ - - + + - + - + - + - + - + @@ -13956,116 +13959,116 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + @@ -14074,44 +14077,44 @@ - + - + - - + + - + - - + + - - + + - + - - - + + + @@ -14120,60 +14123,60 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - + - - + + - - + + @@ -14182,60 +14185,60 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - + - - + + - - + + @@ -14244,60 +14247,60 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - + - - + + - - + + @@ -14306,67 +14309,67 @@ - + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + @@ -14376,27 +14379,27 @@ - - + + - + - + - + - + - + @@ -14406,7 +14409,7 @@ - + @@ -14416,30 +14419,30 @@ - - + + - + - + - + - + - + - + @@ -14449,7 +14452,7 @@ - + @@ -14459,33 +14462,33 @@ - - + + - + - + - + - + - + - + - + @@ -14495,7 +14498,7 @@ - + @@ -14505,20 +14508,20 @@ - - + + - + - - + + @@ -14527,50 +14530,50 @@ - + - + - - + + - + - - + + - - + + - + - - + + - - + + - + @@ -14578,108 +14581,108 @@ - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + @@ -14689,63 +14692,63 @@ - - + + - + - - + + - + - + - + - - + + - - + + - + - + - - + + @@ -14754,52 +14757,52 @@ - + - + - - + + - + - - + + - - + + - + - - + + - - + + @@ -14808,77 +14811,77 @@ - + - + - - + + - + - - + + - - + + - + - - + + - - + + - + - + - - + + - - + + - - + + @@ -14887,60 +14890,60 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - + - - + + - - + + @@ -14949,115 +14952,115 @@ - + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - + - + - + - + @@ -15067,24 +15070,24 @@ - - + + - + - + - + - + @@ -15093,10 +15096,10 @@ - + - + @@ -15106,139 +15109,139 @@ - + - + - - + + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + @@ -15248,43 +15251,43 @@ - - + + - - + + - - + + - - + + - - + + - - - + + + @@ -15292,24 +15295,24 @@ - - + + - + - + - + - + @@ -15318,22 +15321,22 @@ - + - + - + - + - + - + @@ -15343,276 +15346,276 @@ - + - + - - + + - + - + - + - - - - + + + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - + + - + - + - + - + @@ -15634,25 +15637,25 @@ - + - + - - + + - + @@ -15662,262 +15665,262 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + @@ -15926,557 +15929,557 @@ - + - + - - + + - + - - + + - - + + - + - + - + - - + + - - + + - - + + - - - + + + - - + + - + - + - - + + - + - - + + - + - + - - + + - - - + + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + @@ -16485,202 +16488,202 @@ - + - + - - + + - + - - + + - - + + - + - + - + - - + + - - + + - - + + - - + + - - - - + + + + - + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + @@ -16689,332 +16692,332 @@ - + - + - - + + - + - - + + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - - - - + + + + - - + + - + - + - + - + - + - + - + - + - - - + + + - - + + - - + + - + - + - - - + + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + @@ -17023,542 +17026,542 @@ - + - + - - + + - + - - + + - - + + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - - + + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + @@ -17567,195 +17570,195 @@ - + - + - - + + - + - - + + - - + + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + @@ -17764,423 +17767,423 @@ - + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - + @@ -18197,301 +18200,301 @@ - + - + - + - + - - + + - + - - + + - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - - + + + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + @@ -18501,38 +18504,38 @@ - - + + - + - - + + - + - + - + - + - + - + @@ -18542,56 +18545,56 @@ - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -18601,56 +18604,56 @@ - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -18660,201 +18663,201 @@ - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - + - - + + @@ -18863,58 +18866,58 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - + - + - + @@ -18925,126 +18928,126 @@ - + - + - - - + + + - - - + + + - - - + + + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - - + + @@ -19053,53 +19056,53 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - + @@ -19112,177 +19115,177 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + @@ -19292,165 +19295,165 @@ - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + @@ -19460,72 +19463,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19535,13 +19538,13 @@ - + - + @@ -19553,13 +19556,13 @@ - + - + @@ -19567,624 +19570,624 @@ - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - - - - + + + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - - - - + + + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - - - - + + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + @@ -20194,89 +20197,89 @@ - + - + - - + + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + @@ -20285,53 +20288,53 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - + @@ -20345,434 +20348,434 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + @@ -20781,43 +20784,43 @@ - + - + - - + + - + - - + + - - + + - + - - + + @@ -20826,48 +20829,48 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - + @@ -20878,162 +20881,162 @@ - + - - - + + + - - - + + + - - - + + + - - + + - + - - + + - + - - - - - + + + + + - - - - - + + + + + - + - - - - - + + + + + - + - - - - - + + + + + - - - + + + - - + + - - + + - - - + + + - - - - + + + + - + - + - - - + + + - + - + - - - + + + - - + + @@ -21042,108 +21045,108 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - + - + - - - + + + - - + + - + - - + + - - + + - - - + + + - - - + + + - - + + @@ -21152,139 +21155,139 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - - + + + - + - + - + - + - + - + @@ -21294,28 +21297,28 @@ - + - - + + - + - - + + @@ -21324,76 +21327,76 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - + - + @@ -21402,40 +21405,40 @@ - - + + - - - + + + - + - + - + - + - + - + @@ -21445,1054 +21448,1054 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - + - + - - + + - - - + + + - - + + - - + + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + - - + + - + @@ -22500,43 +22503,43 @@ - - + + - + - + - + - + - + - - + + - - + + - - + + - + @@ -22546,9 +22549,9 @@ - + - + @@ -22567,22 +22570,22 @@ - - + + - + - - + + - + @@ -22592,11 +22595,11 @@ - + - + @@ -22606,11 +22609,11 @@ - + - + @@ -22620,14 +22623,14 @@ - + - + @@ -22640,7 +22643,7 @@ - + @@ -22649,27 +22652,27 @@ - + - + - + - + - + - + @@ -22687,26 +22690,26 @@ - + - + - + - + - + @@ -22716,16 +22719,16 @@ - + - + - + @@ -22733,9 +22736,9 @@ - + - + @@ -22757,10 +22760,10 @@ - - + + - + @@ -22769,73 +22772,68 @@ - + - - + + - - + + - - - - - + + + + + - + - - - - + + + + - + - + - - - + + + - + - + - - - - - - + - + @@ -22843,33 +22841,38 @@ - + + + + + + - - - + + + - - + + - + - + - + - + - + @@ -22878,7 +22881,7 @@ - + @@ -22888,20 +22891,20 @@ - - + + - + - + @@ -22912,10 +22915,10 @@ - + - + @@ -22927,14 +22930,14 @@ - + - + - + @@ -22942,64 +22945,64 @@ - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + @@ -23007,66 +23010,66 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -23074,12 +23077,12 @@ - + - + @@ -23087,66 +23090,66 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -23154,55 +23157,55 @@ - + - - - - - - - + + + - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -23213,12 +23216,12 @@ - - + + - + - + @@ -23227,38 +23230,38 @@ - + - + - + - + - + - + - + - + - + - + @@ -23267,28 +23270,28 @@ - + - + - + - + - + - + - + @@ -23297,27 +23300,27 @@ - + - + - + - + - + @@ -23327,16 +23330,16 @@ - - - + + + - + @@ -23344,13 +23347,13 @@ - - - - - - - + + + + + + + @@ -23365,48 +23368,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -23414,48 +23417,48 @@ - + - + - - + + - + - - + + - - + + - - - + + + - + @@ -23463,9 +23466,9 @@ - + - + @@ -23477,13 +23480,13 @@ - + - + - + @@ -23491,92 +23494,92 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - + + + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - + - + @@ -23603,48 +23606,48 @@ - + - + - + - + - + - + - + - + @@ -23652,14 +23655,14 @@ - + - + @@ -23667,14 +23670,14 @@ - + - + @@ -23682,207 +23685,207 @@ - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + - + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -23890,51 +23893,51 @@ - - + + - + - + - - - + + + - - + + - + - + - + - + - + - + @@ -23942,45 +23945,45 @@ - - + + - + - + - - + + - + - - + + - - + + - + - + - + @@ -23988,7 +23991,7 @@ - + @@ -23996,7 +23999,7 @@ - + @@ -24021,49 +24024,49 @@ - + - + - + - + - + - + - + @@ -24081,7 +24084,7 @@ - + @@ -24091,26 +24094,26 @@ - + - - + + - + - + diff --git a/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi b/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi index 8e0fed6b..ac7e7eb7 100644 --- a/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi +++ b/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi @@ -490,7 +490,7 @@ - + @@ -2078,2402 +2078,16 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - + + + @@ -4567,23 +2181,71 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + - + @@ -4603,77 +2265,28 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - + + + - - - - - + + + - - - - - - - - + + + @@ -4824,93 +2437,67 @@ - + - + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - - - + + + - - - - - - - - - - + + + + - + - - - + + + - - - - + + + + + + + - + - + - + @@ -4955,39 +2542,2452 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5103,7 +5103,7 @@ - + @@ -5238,7 +5238,7 @@ - + @@ -6256,7 +6256,7 @@ - + @@ -6266,8 +6266,25 @@ - - + + + + + + + + + + + + + + + + + + + @@ -6275,8 +6292,8 @@ - - + + @@ -6303,8 +6320,8 @@ - - + + @@ -6314,25 +6331,25 @@ - + - + - + - + - + - + @@ -6390,9 +6407,9 @@ - + - + @@ -6446,9 +6463,9 @@ - - - + + + @@ -7644,7 +7661,7 @@ - + @@ -7668,20 +7685,20 @@ - + - + - + - + @@ -7751,13 +7768,13 @@ - + - + @@ -7965,7 +7982,7 @@ - + @@ -8076,7 +8093,7 @@ - + @@ -8086,15 +8103,15 @@ - - + + - + @@ -8574,8 +8591,8 @@ - - + + @@ -8583,7 +8600,7 @@ - + @@ -8644,7 +8661,7 @@ - + @@ -8680,7 +8697,7 @@ - + @@ -8695,13 +8712,13 @@ - + - + @@ -8715,7 +8732,7 @@ - + @@ -8723,7 +8740,7 @@ - + @@ -9002,23 +9019,6 @@ - - - - - - - - - - - - - - - - - @@ -9348,6 +9348,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9387,52 +9429,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -9763,16 +9763,16 @@ - + - + - - + + @@ -9805,14 +9805,14 @@ - - + + - - + + @@ -9821,8 +9821,8 @@ - - + + @@ -9853,7 +9853,7 @@ - + @@ -9916,8 +9916,8 @@ - - + + @@ -9928,22 +9928,22 @@ - + - - + + - - + + @@ -9951,8 +9951,8 @@ - - + + @@ -10126,8 +10126,8 @@ - - + + @@ -10140,8 +10140,8 @@ - - + + @@ -10153,8 +10153,8 @@ - - + + @@ -10179,16 +10179,16 @@ - - + + - - + + @@ -10222,8 +10222,8 @@ - - + + @@ -11681,6 +11681,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11761,68 +11817,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + @@ -13595,7 +13595,7 @@ - + @@ -13642,7 +13642,7 @@ - + @@ -13690,13 +13690,134 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -13876,49 +13997,49 @@ - + - + - + - + - + - + - + - + @@ -14047,15 +14168,15 @@ - + - + - + @@ -14064,16 +14185,16 @@ - - + + - - - + + + @@ -14108,7 +14229,7 @@ - + @@ -14117,7 +14238,7 @@ - + @@ -14142,7 +14263,7 @@ - + @@ -14151,7 +14272,7 @@ - + @@ -14165,12 +14286,12 @@ - - + + - - + + @@ -14247,7 +14368,7 @@ - + @@ -14348,127 +14469,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi b/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi index 4a5845d0..d7ca0c13 100644 --- a/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi +++ b/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi @@ -2992,7 +2992,7 @@ - + @@ -14723,266 +14723,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + @@ -15005,7 +14779,7 @@ - + @@ -15014,53 +14788,53 @@ - - + + - + - - + + - - + + - + - - + + - - - + + + - + @@ -15069,53 +14843,53 @@ - - + + - + - - + + - - + + - + - - + + - - - + + + - + @@ -15124,53 +14898,53 @@ - - + + - + - - + + - - + + - + - - + + - - - + + + - + @@ -15179,53 +14953,53 @@ - - + + - + - - + + - - + + - + - - + + - - - + + + - + @@ -15234,72 +15008,72 @@ - - + + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - - - - - + + + + + - - + + - - + + @@ -15318,7 +15092,7 @@ - + @@ -15345,12 +15119,12 @@ - + - - + + @@ -15361,27 +15135,27 @@ - - + + - - + + - - + + - + @@ -15393,11 +15167,11 @@ - + - + @@ -15405,15 +15179,15 @@ - + - + - + @@ -15425,23 +15199,23 @@ - + - + - + - + - + @@ -15456,13 +15230,13 @@ - + - + @@ -15472,16 +15246,11 @@ - + - - - - - - + @@ -15490,7 +15259,7 @@ - + @@ -15501,35 +15270,35 @@ - - + + - + - + - + - + - + - - + + @@ -15543,24 +15312,24 @@ - + - - + + - + - + @@ -15569,7 +15338,7 @@ - + @@ -15577,7 +15346,7 @@ - + @@ -15594,77 +15363,53 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - - + + - + - - + + - - + + - + @@ -15672,7 +15417,7 @@ - + @@ -15680,78 +15425,78 @@ - + - + - + - + - + - - + + - + - + - - + + - + - + - + - + @@ -15759,7 +15504,7 @@ - + @@ -15767,13 +15512,13 @@ - + - + @@ -15781,29 +15526,29 @@ - + - + - - + + - - + + @@ -15812,42 +15557,42 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - + - - - - - + + + + + @@ -15881,113 +15626,113 @@ - + - + - - - + + + - - + + - - - + + + - + - + - - + + - + - + - - + + - - + + - + - + - + - - + + - + - + - + @@ -15995,21 +15740,21 @@ - + - + - + @@ -16017,78 +15762,78 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -16100,138 +15845,138 @@ - + - - - + + + - + - + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -16309,7 +16054,7 @@ - + @@ -16318,7 +16063,7 @@ - + @@ -16327,14 +16072,14 @@ - + - + @@ -16342,14 +16087,14 @@ - + - + @@ -16358,7 +16103,7 @@ - + @@ -16367,7 +16112,7 @@ - + @@ -16376,7 +16121,7 @@ - + @@ -16385,135 +16130,135 @@ - + - - - + + + - - + + - + - - - + + + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - - + + - + - + - + - + @@ -16521,7 +16266,7 @@ - + @@ -16529,28 +16274,28 @@ - + - + - + - + @@ -16558,7 +16303,7 @@ - + @@ -16566,7 +16311,7 @@ - + @@ -16574,83 +16319,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + @@ -16659,22 +16404,22 @@ - + - + - - - + + + @@ -16683,38 +16428,38 @@ - + - + - - + + - + - + - - + + @@ -16731,7 +16476,7 @@ - + @@ -16756,24 +16501,24 @@ - - + + - + - - + + - - - + + + - + @@ -16782,22 +16527,22 @@ - + - + - + - + - + - + @@ -16818,10 +16563,10 @@ - + - + @@ -16830,56 +16575,56 @@ - + - + - - + + - + - - + + - + - - + + - + - + - + @@ -16891,65 +16636,65 @@ - + - + - + - + - + - + - + - - + + - - + + - - + + @@ -16963,825 +16708,825 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - - + + - + - + - + - - + + - - - + + + - + - - + + - + - - + + - - - + + + - + - - + + - + - - + + - - + + - - - + + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - - - + + + + - - + + - + - - - + + + - - - - + + + + - - + + - + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - + - - + + - + - + - + - + - + - + - - - - + + + + - - - + + + - - + + - - + + - + - - + + - + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - + - + - - + + - + - - + + - + - - - + + + - + - - + + - + - - + + - - - + + + - + - + - - + + - + - - - + + + - - - + + + - + - + - - + + - + - - - + + + - - + + - + - + - - + + - + - - - + + + - - - + + + - + - + - - + + - + - - - + + + - - + + - + - + - + - + - + - + @@ -17790,39 +17535,39 @@ - - + + - + - - + + - - + + - + - + - + - + - + @@ -17830,15 +17575,15 @@ - + - + - + @@ -17846,25 +17591,25 @@ - + - + - + - + - + - + - + @@ -17881,10 +17626,10 @@ - + - + @@ -17905,44 +17650,44 @@ - + - + - + - + - + - + - + - + @@ -17950,84 +17695,84 @@ - + - + - - + + - - + + - + - - + + - - + + - + - + - - + + - - - + + + - + - + - + - + @@ -18035,51 +17780,51 @@ - + - + - + - + - + - + - + - + - + - + @@ -18089,25 +17834,25 @@ - + - + - + - + - + - + - + @@ -18121,122 +17866,122 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - - - + + + + @@ -18244,27 +17989,27 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -18288,30 +18033,30 @@ - + - + - + - - - - + + + + - + @@ -18323,7 +18068,7 @@ - + @@ -18331,19 +18076,19 @@ - + - + - + @@ -18351,15 +18096,15 @@ - - + + - - + + @@ -18369,9 +18114,9 @@ - - - + + + @@ -18382,15 +18127,15 @@ - + - + - + @@ -18398,50 +18143,50 @@ - - + + - - - + + + + + + + - - + + + - - - - - - + - + - + - + - + - + @@ -18460,43 +18205,43 @@ - + - + - + - - + + - + - + - + @@ -18536,114 +18281,114 @@ - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - - + + - + @@ -18653,181 +18398,181 @@ - + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -18862,264 +18607,264 @@ - + - - + + - + - - + + - - - + + + - - - - + + + + - - + + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - + - - - + + + - - + + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - + + - - + + - + - - - + + + - - - + + + - + @@ -19127,147 +18872,147 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - - - + + + - + - - - + + + - + - - + + - + - - + + - + @@ -19276,608 +19021,608 @@ - + - + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - - + + - - - + + + - + - + - - + + - - - - + + + + - - + + - - + + - - + + - + - + - + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - - - + + + - - - - + + + + - - + + - + - - - + + + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - - + + + - - - + + + - + - + - - + + - + - - - + + + - - + + - + - + - - + + - + - - - + + + - - - + + + - + - + - - + + - + - - - + + + - - + + @@ -19895,26 +19640,26 @@ - - + + - - + + - - + + - - + + - + - + @@ -19922,17 +19667,17 @@ - - + + - + - + @@ -19940,38 +19685,38 @@ - - + + - + - + - + - + - - - + + + - + @@ -19979,17 +19724,17 @@ - - + + - + - + @@ -19997,10 +19742,10 @@ - - + - + + @@ -20016,8 +19761,8 @@ - - + + @@ -20038,33 +19783,33 @@ - + - + - - + + - - + + - + - + - + - + - + @@ -20074,69 +19819,72 @@ - - + + - + - - + + - - + + - + - - - - - + + + + + - - + + - - + + - - + + - - + + - + - - + + - + + + + - - + + - - + + - + - + - + - + - + - + - + @@ -20151,34 +19899,34 @@ - + - - + + - + - + - + @@ -20186,7 +19934,7 @@ - + @@ -20194,20 +19942,20 @@ - + - + - - + + @@ -20217,28 +19965,28 @@ - + - + - + - + - + @@ -20249,7 +19997,7 @@ - + @@ -20273,7 +20021,7 @@ - + @@ -20294,7 +20042,7 @@ - + @@ -20308,19 +20056,19 @@ - + - + - + @@ -20328,7 +20076,7 @@ - + @@ -20337,7 +20085,7 @@ - + @@ -20345,15 +20093,15 @@ - + - - + + @@ -20379,18 +20127,18 @@ - + - + - + @@ -20398,14 +20146,14 @@ - + - + @@ -20413,7 +20161,7 @@ - + @@ -20444,816 +20192,1066 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + + + - + + + + + + + + + + + + + + - + - - - + - - + + + + + + + - - - - + + + + + - - - + + + - - - + + + + - - - + + + + - - - + + + + + - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - + + + + - - - - - - - + + + + - - - + + + + + - - - - + + + + + + - - - - + + + - - - - - - - - - + + + + - - - - - + + + + - - - - + + + + - - - + + + + - - - - - - - - + + + - - - - - - - - - + + + + - - - - - - - - - - + + + + - - - + + + - + - - + + + - - - + - - - - - - - + + + - - - - - - - + - - - - + + + + - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - + + + + - - - + + + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -21265,249 +21263,249 @@ - - - - - - - + + + + + + + - - - - + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + + + - - - + + + - - - - + + + + - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + + + - - - - - - + + + + + + - - + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - + + + - - - - - - - + + + + + + + - - + + - - + + - + - - + + - + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + @@ -21515,23 +21513,23 @@ - - - - + + + + - - - - - + + + + + - + - - + + @@ -21543,404 +21541,404 @@ - + - - + + - + - + - + - + - - + + - + - - + + - - + + - - + + - + - - + + - + - + - + - + - + - - + + - - + + - + - - + + - + - - + + - - + + - + - - - + + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - + + + + - - + + - + - - - + + + - - - - + + + + - - + + - + - + - + - + - + - - + + - + - - - + + + - + @@ -21948,21 +21946,21 @@ - - + + - - - + + + - - - - + + + + @@ -21990,29 +21988,29 @@ - + - - + + - + - - + + - + - - - - + + + + @@ -22040,13 +22038,13 @@ - + - - - - + + + + @@ -22058,7 +22056,7 @@ - + @@ -22102,7 +22100,7 @@ - + @@ -22123,7 +22121,7 @@ - + @@ -22166,13 +22164,13 @@ - + - + @@ -22180,18 +22178,18 @@ - + - + - + - + @@ -22199,7 +22197,7 @@ - + @@ -22211,7 +22209,7 @@ - + @@ -22228,34 +22226,34 @@ - + - + - + - + - - - + + + @@ -22263,34 +22261,34 @@ - - + + - - + + - - + + - + - - + + @@ -22298,23 +22296,23 @@ - - + + - + - + - + @@ -22330,48 +22328,48 @@ - + - + - + - - + + - - + + - - + + - + - + @@ -22379,7 +22377,7 @@ - + @@ -22388,7 +22386,7 @@ - + @@ -22396,7 +22394,7 @@ - + @@ -22428,16 +22426,16 @@ - - + + - - + + @@ -22466,7 +22464,7 @@ - + @@ -22475,38 +22473,38 @@ - + - + - + - - + + - + - + @@ -22515,137 +22513,137 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + @@ -22653,174 +22651,174 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -22828,237 +22826,237 @@ - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - - + + + - - - - + + + + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - - - - + + + + + + - - - - - - + + + + + + - + - + - + - + - + - + @@ -23067,32 +23065,32 @@ - - + + - + - + - - + + - + @@ -23101,7 +23099,7 @@ - + @@ -23109,7 +23107,7 @@ - + @@ -23117,7 +23115,7 @@ - + @@ -23125,7 +23123,7 @@ - + @@ -23133,7 +23131,7 @@ - + @@ -23142,7 +23140,7 @@ - + @@ -23150,7 +23148,7 @@ - + @@ -23158,7 +23156,7 @@ - + @@ -23166,7 +23164,7 @@ - + @@ -23175,7 +23173,7 @@ - + @@ -23183,7 +23181,7 @@ - + @@ -23191,7 +23189,7 @@ - + @@ -23199,7 +23197,7 @@ - + @@ -23208,7 +23206,7 @@ - + @@ -23216,7 +23214,7 @@ - + @@ -23224,7 +23222,7 @@ - + @@ -23232,7 +23230,7 @@ - + @@ -23241,7 +23239,7 @@ - + @@ -23249,7 +23247,7 @@ - + @@ -23257,7 +23255,7 @@ - + @@ -23265,7 +23263,7 @@ - + @@ -23274,7 +23272,7 @@ - + @@ -23282,552 +23280,326 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + - - - + + + - - + + - + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - - + + - + - - - + + + - - - + + + - + - + - - + + - + - - - + + + - - + + - - + + - + - - + + - + - + - + - + @@ -23835,7 +23607,7 @@ - + @@ -23843,13 +23615,13 @@ - + - + @@ -23857,14 +23629,14 @@ - + - - + + @@ -23887,7 +23659,7 @@ - + @@ -23898,7 +23670,7 @@ - + @@ -23911,7 +23683,7 @@ - + @@ -23923,13 +23695,13 @@ - + - + @@ -23938,7 +23710,7 @@ - + @@ -23950,7 +23722,7 @@ - + @@ -23976,366 +23748,366 @@ - + - + - - - + + + - + - + - + - + - + - + - - + + - + - - + + - - - + + + - - + + - + - - + + - - + + - - + + - + - + - + - + - + - - + + - + - - - + + + - - + + - + - + - - + + - - - + + + - - + + - - + + - + - + - - + + - + - + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - + - - + + - + - - + + - + - - + + - - + + - + - + - + - - + + - - + + - - - + + + - - - - + + + + - - + + - - + + - - + + - + - - + + - - + + - + - - + + - + - - + + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - - - + + + - - + + - + - - + + - + @@ -24343,11 +24115,11 @@ - + - + @@ -24356,53 +24128,53 @@ - + - + - + - - + + - + - + - + - + @@ -24411,47 +24183,47 @@ - + - + - + - - + + - + - + - + @@ -24470,10 +24242,10 @@ - + - - + + @@ -24487,13 +24259,13 @@ - + - + - + @@ -24508,7 +24280,7 @@ - + @@ -24520,7 +24292,7 @@ - + @@ -24528,7 +24300,7 @@ - + @@ -24538,7 +24310,7 @@ - + @@ -24546,7 +24318,7 @@ - + @@ -24554,76 +24326,76 @@ - + - + - + - + - + - + - - + + - - + + - + - - + + - + - + @@ -24652,42 +24424,42 @@ - + - - + + - + - + - + - + - + - + - + - + @@ -24701,48 +24473,48 @@ - + - + - + - + - + - + - + - + - + @@ -24751,9 +24523,9 @@ - + - + @@ -24762,13 +24534,13 @@ - + - + - + @@ -24778,71 +24550,71 @@ - + - + - + - + - + - + - + - + - - + + - - + + - + - + @@ -24873,7 +24645,7 @@ - + @@ -24886,20 +24658,20 @@ - + - + - + @@ -24908,7 +24680,7 @@ - + @@ -24917,37 +24689,37 @@ - + - + - + - + - + - + @@ -24956,7 +24728,7 @@ - + @@ -24965,27 +24737,27 @@ - + - + - + - + @@ -24998,7 +24770,7 @@ - + @@ -25007,34 +24779,34 @@ - + - + - + - + - + - + - + - + - + @@ -25052,31 +24824,31 @@ - + - - + + - - + + - + - + @@ -25094,31 +24866,31 @@ - + - - + + - - + + - + - + @@ -25136,31 +24908,31 @@ - + - - + + - - + + - + - + @@ -25168,12 +24940,12 @@ - + - + - + @@ -25188,24 +24960,24 @@ - + - + - + - + - + @@ -25218,7 +24990,7 @@ - + @@ -25228,10 +25000,10 @@ - + - + @@ -25246,22 +25018,22 @@ - + - + - + - + - + - + @@ -25271,237 +25043,237 @@ - + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - + + - - + + - - + + - + - + - - - - + + + + - - - + + + - - + + - - + + - + - + - - - + + + - - + + - - - - + + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - + - + @@ -25519,82 +25291,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -25603,7 +25375,7 @@ - + @@ -25613,9 +25385,9 @@ - + - + @@ -25623,40 +25395,40 @@ - + - + - + - + - + - + - + - + @@ -25668,10 +25440,10 @@ - + - + @@ -25681,33 +25453,33 @@ - + - + - + - + - + @@ -25715,7 +25487,7 @@ - + @@ -25723,19 +25495,19 @@ - + - + - + @@ -25752,27 +25524,27 @@ - + - + - + - + - + @@ -25803,8 +25575,8 @@ - - + + @@ -25821,7 +25593,7 @@ - + @@ -25829,16 +25601,16 @@ - - + + - - + + @@ -25846,20 +25618,20 @@ - + - + - + @@ -25870,7 +25642,7 @@ - + @@ -25880,7 +25652,7 @@ - + @@ -25894,31 +25666,31 @@ - + - + - + - + - + @@ -25929,7 +25701,7 @@ - + @@ -25941,7 +25713,7 @@ - + @@ -25951,7 +25723,7 @@ - + @@ -25969,26 +25741,26 @@ - + - - + + - - + + - + @@ -25998,34 +25770,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -26045,7 +25793,7 @@ - + @@ -26068,7 +25816,7 @@ - + @@ -26077,7 +25825,7 @@ - + @@ -26111,7 +25859,7 @@ - + @@ -26120,7 +25868,7 @@ - + @@ -26128,48 +25876,53 @@ - - - - - + + + + + - + - + - + - + - + + + + + + - + - + - + @@ -26177,21 +25930,11 @@ - - - - - - - - - - - - - + + + @@ -26199,5 +25942,15 @@ + + + + + + + + + + diff --git a/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi b/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi index 76f9f183..13e37630 100644 --- a/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi +++ b/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi @@ -426,7 +426,7 @@ - + @@ -1518,47 +1518,47 @@ - - - - - - - - - - - - - - - - + - + - + - + - + + + + + + + + + + + + + + + + @@ -1572,7 +1572,7 @@ - + @@ -1614,7 +1614,7 @@ - + @@ -1624,7 +1624,7 @@ - + @@ -1634,7 +1634,7 @@ - + @@ -1644,7 +1644,7 @@ - + @@ -1654,7 +1654,7 @@ - + @@ -1664,7 +1664,7 @@ - + @@ -1674,7 +1674,7 @@ - + @@ -1684,7 +1684,7 @@ - + @@ -1729,7 +1729,7 @@ - + @@ -1739,7 +1739,7 @@ - + @@ -1749,7 +1749,7 @@ - + @@ -1759,7 +1759,7 @@ - + @@ -1769,7 +1769,7 @@ - + @@ -1779,7 +1779,7 @@ - + @@ -1789,7 +1789,7 @@ - + @@ -1799,7 +1799,7 @@ - + @@ -1818,7 +1818,7 @@ - + @@ -1827,7 +1827,7 @@ - + @@ -1836,7 +1836,7 @@ - + @@ -1845,7 +1845,7 @@ - + @@ -1854,7 +1854,7 @@ - + @@ -1863,7 +1863,7 @@ - + @@ -1872,7 +1872,7 @@ - + @@ -1881,7 +1881,7 @@ - + @@ -1915,7 +1915,7 @@ - + @@ -1925,7 +1925,7 @@ - + @@ -1935,7 +1935,7 @@ - + @@ -1945,7 +1945,7 @@ - + @@ -1955,7 +1955,7 @@ - + @@ -1965,7 +1965,7 @@ - + @@ -1975,7 +1975,7 @@ - + @@ -1994,7 +1994,7 @@ - + @@ -2006,7 +2006,7 @@ - + @@ -2018,7 +2018,7 @@ - + @@ -2030,7 +2030,7 @@ - + @@ -2042,7 +2042,7 @@ - + @@ -2054,7 +2054,7 @@ - + @@ -2066,7 +2066,7 @@ - + @@ -2098,7 +2098,7 @@ - + @@ -2108,7 +2108,7 @@ - + @@ -2118,7 +2118,7 @@ - + @@ -2128,7 +2128,7 @@ - + @@ -2138,7 +2138,7 @@ - + @@ -2148,7 +2148,7 @@ - + @@ -2158,7 +2158,7 @@ - + @@ -2179,7 +2179,7 @@ - + @@ -2191,7 +2191,7 @@ - + @@ -2203,7 +2203,7 @@ - + @@ -2215,7 +2215,7 @@ - + @@ -2227,7 +2227,7 @@ - + @@ -2239,7 +2239,7 @@ - + @@ -2251,7 +2251,7 @@ - + @@ -2261,7 +2261,7 @@ - + @@ -2270,7 +2270,7 @@ - + @@ -2279,7 +2279,7 @@ - + @@ -2288,7 +2288,7 @@ - + @@ -2297,7 +2297,7 @@ - + @@ -2306,7 +2306,7 @@ - + @@ -2315,7 +2315,7 @@ - + @@ -2332,7 +2332,7 @@ - + @@ -2343,7 +2343,7 @@ - + @@ -2354,7 +2354,7 @@ - + @@ -2365,7 +2365,7 @@ - + @@ -2376,7 +2376,7 @@ - + @@ -2387,7 +2387,7 @@ - + @@ -2398,7 +2398,7 @@ - + @@ -2427,7 +2427,7 @@ - + @@ -2438,7 +2438,7 @@ - + @@ -2449,7 +2449,7 @@ - + @@ -2460,7 +2460,7 @@ - + @@ -2471,7 +2471,7 @@ - + @@ -2482,7 +2482,7 @@ - + @@ -2493,7 +2493,7 @@ - + @@ -2504,7 +2504,7 @@ - + @@ -2525,8 +2525,8 @@ - + @@ -2536,8 +2536,8 @@ - + @@ -2547,8 +2547,8 @@ - + @@ -2558,8 +2558,8 @@ - + @@ -2569,8 +2569,8 @@ - + @@ -2580,8 +2580,8 @@ - + @@ -2591,8 +2591,8 @@ - + @@ -2602,7 +2602,7 @@ - + @@ -2612,7 +2612,7 @@ - + @@ -2622,7 +2622,7 @@ - + @@ -2632,7 +2632,7 @@ - + @@ -2642,7 +2642,7 @@ - + @@ -2652,7 +2652,7 @@ - + @@ -2662,7 +2662,7 @@ - + @@ -2672,7 +2672,7 @@ - + @@ -2691,8 +2691,8 @@ - + @@ -2701,8 +2701,8 @@ - + @@ -2711,8 +2711,8 @@ - + @@ -2721,8 +2721,8 @@ - + @@ -2731,8 +2731,8 @@ - + @@ -2741,8 +2741,8 @@ - + @@ -2751,8 +2751,8 @@ - + @@ -2761,7 +2761,7 @@ - + @@ -2925,7 +2925,7 @@ - + @@ -2936,7 +2936,7 @@ - + @@ -2946,7 +2946,7 @@ - + @@ -2959,7 +2959,7 @@ - + @@ -2970,7 +2970,7 @@ - + @@ -2981,7 +2981,7 @@ - + @@ -2994,7 +2994,7 @@ - + @@ -3007,7 +3007,7 @@ - + @@ -3018,7 +3018,7 @@ - + @@ -3028,7 +3028,7 @@ - + @@ -3040,7 +3040,7 @@ - + @@ -3052,10 +3052,10 @@ - - + + @@ -3064,7 +3064,7 @@ - + @@ -3075,9 +3075,9 @@ - - + + @@ -3096,7 +3096,7 @@ - + @@ -3112,13 +3112,13 @@ - + - + @@ -3131,13 +3131,13 @@ - + - + @@ -3150,13 +3150,13 @@ - + - + @@ -3169,13 +3169,13 @@ - + - + @@ -3188,13 +3188,13 @@ - + - + @@ -3207,13 +3207,13 @@ - + - + @@ -3226,13 +3226,13 @@ - + - + @@ -3245,13 +3245,13 @@ - + - + @@ -3264,13 +3264,13 @@ - + - + @@ -3283,13 +3283,13 @@ - + - + @@ -3908,7 +3908,7 @@ - + @@ -3997,7 +3997,7 @@ - + @@ -4019,7 +4019,7 @@ - + @@ -4047,129 +4047,263 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4192,7 +4326,7 @@ - + @@ -4210,7 +4344,7 @@ - + @@ -4233,7 +4367,7 @@ - + @@ -4243,10 +4377,10 @@ - + - + @@ -4321,34 +4455,34 @@ - - + + - + - - + + - - + + - + - + @@ -4360,13 +4494,13 @@ - + - + @@ -4376,9 +4510,9 @@ - - - + + + @@ -4393,23 +4527,23 @@ - + - + - + - + @@ -4450,7 +4584,7 @@ - + @@ -4639,19 +4773,19 @@ - - - + + + - + - + @@ -4720,7 +4854,7 @@ - + @@ -4728,7 +4862,7 @@ - + @@ -4750,7 +4884,7 @@ - + @@ -4758,7 +4892,7 @@ - + @@ -4767,13 +4901,13 @@ - + - + @@ -4865,7 +4999,7 @@ - + @@ -4905,13 +5039,13 @@ - + - + @@ -4979,16 +5113,16 @@ - - + + - - + + @@ -5131,49 +5265,49 @@ - + - + - + - + - + - + - + - + @@ -5371,7 +5505,7 @@ - + @@ -5424,9 +5558,9 @@ - + - + @@ -5440,16 +5574,16 @@ - - + + - - - + + + @@ -5504,8 +5638,8 @@ - - + + @@ -5513,8 +5647,8 @@ - - + + @@ -5523,8 +5657,8 @@ - - + + @@ -5532,8 +5666,8 @@ - - + + @@ -5542,8 +5676,8 @@ - - + + @@ -5552,8 +5686,8 @@ - - + + @@ -5562,20 +5696,20 @@ - - - - + + + + - - - - + + + + @@ -5924,8 +6058,8 @@ - - + + @@ -5989,7 +6123,7 @@ - + @@ -6001,31 +6135,31 @@ - + - + - + - + - + @@ -6245,7 +6379,7 @@ - + @@ -6269,36 +6403,36 @@ - - + + - - + + - - + + - - + + - - + + @@ -6403,7 +6537,7 @@ - + @@ -6411,7 +6545,7 @@ - + @@ -6432,31 +6566,31 @@ - + - + - + - + - + - + - + @@ -6554,7 +6688,7 @@ - + @@ -6565,42 +6699,42 @@ - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + @@ -6628,7 +6762,7 @@ - + @@ -6636,7 +6770,7 @@ - + @@ -6647,50 +6781,50 @@ - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + @@ -6718,7 +6852,7 @@ - + @@ -6729,64 +6863,64 @@ - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + @@ -6808,7 +6942,7 @@ - + @@ -6816,7 +6950,7 @@ - + @@ -6824,8 +6958,8 @@ - - + + @@ -6882,49 +7016,49 @@ - + - + - + - + - + - + - + - + @@ -7053,15 +7187,15 @@ - + - + - + @@ -7070,16 +7204,16 @@ - - + + - - - + + + @@ -7114,7 +7248,7 @@ - + @@ -7123,7 +7257,7 @@ - + @@ -7144,9 +7278,9 @@ - - - + + + @@ -7583,107 +7717,107 @@ - - - + + + - + - - + + - + - + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + @@ -8284,140 +8418,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -8521,7 +8521,7 @@ - + @@ -8532,7 +8532,7 @@ - + @@ -8796,7 +8796,7 @@ - + @@ -8806,7 +8806,7 @@ - + @@ -8816,7 +8816,7 @@ - + @@ -8826,7 +8826,7 @@ - + @@ -8836,7 +8836,7 @@ - + @@ -8846,7 +8846,7 @@ - + @@ -8856,7 +8856,7 @@ - + @@ -8866,7 +8866,7 @@ - + @@ -8903,7 +8903,7 @@ - + @@ -8913,7 +8913,7 @@ - + @@ -8923,7 +8923,7 @@ - + @@ -8933,7 +8933,7 @@ - + @@ -8943,7 +8943,7 @@ - + @@ -8953,7 +8953,7 @@ - + @@ -8963,7 +8963,7 @@ - + @@ -8973,7 +8973,7 @@ - + @@ -9017,14 +9017,14 @@ - + - + @@ -9033,7 +9033,7 @@ - + @@ -9042,7 +9042,7 @@ - + @@ -9051,7 +9051,7 @@ - + @@ -9060,7 +9060,7 @@ - + @@ -9069,7 +9069,7 @@ - + @@ -9078,7 +9078,7 @@ - + @@ -9087,7 +9087,7 @@ - + @@ -9121,7 +9121,7 @@ - + @@ -9131,7 +9131,7 @@ - + @@ -9141,7 +9141,7 @@ - + @@ -9151,7 +9151,7 @@ - + @@ -9161,7 +9161,7 @@ - + @@ -9171,7 +9171,7 @@ - + @@ -9181,7 +9181,7 @@ - + @@ -9200,7 +9200,7 @@ - + @@ -9212,7 +9212,7 @@ - + @@ -9224,7 +9224,7 @@ - + @@ -9236,7 +9236,7 @@ - + @@ -9248,7 +9248,7 @@ - + @@ -9260,7 +9260,7 @@ - + @@ -9272,7 +9272,7 @@ - + @@ -9304,7 +9304,7 @@ - + @@ -9314,7 +9314,7 @@ - + @@ -9324,7 +9324,7 @@ - + @@ -9334,7 +9334,7 @@ - + @@ -9344,7 +9344,7 @@ - + @@ -9354,7 +9354,7 @@ - + @@ -9364,7 +9364,7 @@ - + @@ -9385,7 +9385,7 @@ - + @@ -9397,7 +9397,7 @@ - + @@ -9409,7 +9409,7 @@ - + @@ -9421,7 +9421,7 @@ - + @@ -9433,7 +9433,7 @@ - + @@ -9445,7 +9445,7 @@ - + @@ -9457,7 +9457,7 @@ - + @@ -9467,7 +9467,7 @@ - + @@ -9476,7 +9476,7 @@ - + @@ -9485,7 +9485,7 @@ - + @@ -9494,7 +9494,7 @@ - + @@ -9503,7 +9503,7 @@ - + @@ -9512,7 +9512,7 @@ - + @@ -9521,7 +9521,7 @@ - + @@ -9538,7 +9538,7 @@ - + @@ -9549,7 +9549,7 @@ - + @@ -9560,7 +9560,7 @@ - + @@ -9571,7 +9571,7 @@ - + @@ -9582,7 +9582,7 @@ - + @@ -9593,7 +9593,7 @@ - + @@ -9604,7 +9604,7 @@ - + @@ -9633,7 +9633,7 @@ - + @@ -9644,7 +9644,7 @@ - + @@ -9655,7 +9655,7 @@ - + @@ -9666,7 +9666,7 @@ - + @@ -9677,7 +9677,7 @@ - + @@ -9688,7 +9688,7 @@ - + @@ -9699,7 +9699,7 @@ - + @@ -9710,7 +9710,7 @@ - + @@ -9731,8 +9731,8 @@ - + @@ -9742,8 +9742,8 @@ - + @@ -9753,8 +9753,8 @@ - + @@ -9764,8 +9764,8 @@ - + @@ -9775,8 +9775,8 @@ - + @@ -9786,8 +9786,8 @@ - + @@ -9797,8 +9797,8 @@ - + @@ -9808,7 +9808,7 @@ - + @@ -9818,7 +9818,7 @@ - + @@ -9828,7 +9828,7 @@ - + @@ -9838,7 +9838,7 @@ - + @@ -9848,7 +9848,7 @@ - + @@ -9858,7 +9858,7 @@ - + @@ -9868,7 +9868,7 @@ - + @@ -9878,7 +9878,7 @@ - + @@ -9897,8 +9897,8 @@ - + @@ -9907,8 +9907,8 @@ - + @@ -9917,8 +9917,8 @@ - + @@ -9927,8 +9927,8 @@ - + @@ -9937,8 +9937,8 @@ - + @@ -9947,8 +9947,8 @@ - + @@ -9957,8 +9957,8 @@ - + @@ -9967,7 +9967,7 @@ - + @@ -10541,6 +10541,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -10587,29 +10610,6 @@ - - - - - - - - - - - - - - - - - - - - - - - @@ -11138,8 +11138,8 @@ - - + + @@ -11164,7 +11164,7 @@ - + @@ -11223,7 +11223,7 @@ - + @@ -11236,7 +11236,7 @@ - + @@ -11333,8 +11333,8 @@ - - + + @@ -11478,10 +11478,10 @@ - - + + - + @@ -11500,33 +11500,33 @@ - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + @@ -11543,13 +11543,13 @@ - + - + @@ -11902,8 +11902,8 @@ - - + + @@ -11926,7 +11926,7 @@ - + @@ -11951,7 +11951,7 @@ - + @@ -11981,7 +11981,7 @@ - + @@ -12083,7 +12083,7 @@ - + @@ -12104,7 +12104,7 @@ - + @@ -12116,7 +12116,7 @@ - + @@ -12128,25 +12128,25 @@ - + - + - + - + @@ -12160,7 +12160,7 @@ - + @@ -12169,7 +12169,7 @@ - + @@ -12205,7 +12205,7 @@ - + @@ -12213,7 +12213,7 @@ - + @@ -12222,7 +12222,7 @@ - + @@ -12230,7 +12230,7 @@ - + @@ -12245,7 +12245,7 @@ - + @@ -12253,9 +12253,9 @@ - - - + + + @@ -12264,13 +12264,13 @@ - + - + - + @@ -12340,13 +12340,13 @@ - + - + @@ -12457,7 +12457,7 @@ - + @@ -12482,7 +12482,7 @@ - + @@ -12512,7 +12512,7 @@ - + @@ -12614,7 +12614,7 @@ - + @@ -12635,7 +12635,7 @@ - + @@ -12647,7 +12647,7 @@ - + @@ -12659,25 +12659,25 @@ - + - + - + - + @@ -12691,7 +12691,7 @@ - + @@ -12700,7 +12700,7 @@ - + @@ -12736,7 +12736,7 @@ - + @@ -12744,7 +12744,7 @@ - + @@ -12753,7 +12753,7 @@ - + @@ -12761,7 +12761,7 @@ - + @@ -12776,7 +12776,7 @@ - + @@ -12784,9 +12784,9 @@ - - - + + + @@ -12795,13 +12795,13 @@ - + - + - + @@ -12871,13 +12871,13 @@ - + - + @@ -12988,7 +12988,7 @@ - + @@ -13013,7 +13013,7 @@ - + @@ -13043,7 +13043,7 @@ - + @@ -13145,7 +13145,7 @@ - + @@ -13166,7 +13166,7 @@ - + @@ -13178,7 +13178,7 @@ - + @@ -13190,25 +13190,25 @@ - + - + - + - + @@ -13222,7 +13222,7 @@ - + @@ -13231,7 +13231,7 @@ - + @@ -13267,7 +13267,7 @@ - + @@ -13275,7 +13275,7 @@ - + @@ -13284,7 +13284,7 @@ - + @@ -13292,7 +13292,7 @@ - + @@ -13307,7 +13307,7 @@ - + @@ -13315,9 +13315,9 @@ - - - + + + @@ -13326,13 +13326,13 @@ - + - + - + @@ -13402,13 +13402,13 @@ - + - + @@ -13511,7 +13511,7 @@ - + @@ -13523,7 +13523,7 @@ - + @@ -13651,13 +13651,13 @@ - + - + @@ -13762,29 +13762,29 @@ - + - - + + - - + + - - + + - - + + @@ -13803,39 +13803,39 @@ - - - + + + - - - + + + - - - + + + - + - + - + @@ -13895,7 +13895,7 @@ - + @@ -14039,115 +14039,115 @@ - + - - + + - + - - + + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + @@ -14173,11 +14173,11 @@ - - - + + + - + @@ -14192,28 +14192,28 @@ - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + @@ -14240,162 +14240,162 @@ - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + - - - - - - - - - + + + - + - - + + - - - + + + - + - - + + - - - + + + - + - - - - + + + + - - - + + + @@ -14405,53 +14405,53 @@ - - + + - - - + + + - + - - - - + + + + - - - + + + - - + + - - - + + + - + - - - - + + + + - - - + + + @@ -14467,25 +14467,25 @@ - - - + + + - + - - - + + + - + - - - + + + - + @@ -15317,13 +15317,13 @@ - + - + - + @@ -15393,13 +15393,13 @@ - + - + @@ -15408,24 +15408,24 @@ - - + + - - + + - - + + @@ -15541,10 +15541,10 @@ - - - - + + + + @@ -15583,18 +15583,18 @@ - - - - + + + + - - - - + + + + @@ -15728,16 +15728,16 @@ - - + + - - + + @@ -15745,7 +15745,7 @@ - + @@ -15762,16 +15762,16 @@ - - + + - - + + @@ -15786,24 +15786,24 @@ - - + + - - + + - - + + @@ -15826,7 +15826,7 @@ - + @@ -15856,7 +15856,7 @@ - + @@ -15958,7 +15958,7 @@ - + @@ -15979,7 +15979,7 @@ - + @@ -15991,7 +15991,7 @@ - + @@ -16003,7 +16003,7 @@ - + @@ -16021,7 +16021,7 @@ - + @@ -16035,7 +16035,7 @@ - + @@ -16044,7 +16044,7 @@ - + @@ -16080,7 +16080,7 @@ - + @@ -16088,7 +16088,7 @@ - + @@ -16097,7 +16097,7 @@ - + @@ -16105,7 +16105,7 @@ - + @@ -16132,7 +16132,7 @@ - + @@ -16153,7 +16153,7 @@ - + @@ -16176,7 +16176,7 @@ - + @@ -16269,7 +16269,7 @@ - + @@ -16281,13 +16281,13 @@ - + - + @@ -16300,7 +16300,7 @@ - + @@ -16314,7 +16314,7 @@ - + @@ -16323,7 +16323,7 @@ - + @@ -16385,7 +16385,7 @@ - + @@ -16418,7 +16418,7 @@ - + @@ -16426,7 +16426,7 @@ - + @@ -16443,7 +16443,7 @@ - + @@ -16593,49 +16593,49 @@ - + - + - + - + - + - + - + @@ -16885,42 +16885,42 @@ - + - + - + - + - + - + @@ -16984,7 +16984,7 @@ - + @@ -16998,7 +16998,7 @@ - + @@ -17083,7 +17083,7 @@ - + @@ -17268,49 +17268,49 @@ - + - + - + - + - + - + - + @@ -17560,42 +17560,42 @@ - + - + - + - + - + - + @@ -17659,7 +17659,7 @@ - + @@ -17673,7 +17673,7 @@ - + @@ -17746,7 +17746,7 @@ - + @@ -17871,49 +17871,49 @@ - + - + - + - + - + - + - + @@ -18163,42 +18163,42 @@ - + - + - + - + - + - + @@ -18262,7 +18262,7 @@ - + @@ -18276,7 +18276,7 @@ - + @@ -18349,7 +18349,7 @@ - + @@ -18419,7 +18419,7 @@ - + @@ -18443,7 +18443,7 @@ - + @@ -18526,7 +18526,7 @@ - + @@ -18550,7 +18550,7 @@ - + @@ -18628,7 +18628,7 @@ - + @@ -18652,7 +18652,7 @@ - + @@ -18730,7 +18730,7 @@ - + @@ -18754,7 +18754,7 @@ - + @@ -18928,14 +18928,14 @@ - + - - + + @@ -18943,13 +18943,13 @@ - + - + @@ -18963,15 +18963,15 @@ - - + + - + @@ -19075,14 +19075,14 @@ - + - - + + @@ -19090,13 +19090,13 @@ - + - + @@ -19110,15 +19110,15 @@ - - + + - + @@ -19222,14 +19222,14 @@ - + - - + + @@ -19237,13 +19237,13 @@ - + - + @@ -19257,15 +19257,15 @@ - - + + - + @@ -19302,7 +19302,7 @@ - + @@ -19332,7 +19332,7 @@ - + @@ -19442,14 +19442,14 @@ - + - + @@ -19457,13 +19457,13 @@ - + - + @@ -19477,7 +19477,7 @@ - + @@ -19485,14 +19485,14 @@ - + - + - + @@ -19516,7 +19516,7 @@ - + @@ -19529,7 +19529,7 @@ - + @@ -19542,7 +19542,7 @@ - + @@ -19563,7 +19563,7 @@ - + @@ -19577,7 +19577,7 @@ - + @@ -20059,48 +20059,48 @@ - + - - + + - + - + - + - + - + - + - - - - + + + + - - + + - + @@ -20111,7 +20111,7 @@ - + @@ -20122,7 +20122,7 @@ - + @@ -20161,7 +20161,7 @@ - + @@ -20174,7 +20174,7 @@ - + @@ -20188,7 +20188,7 @@ - + @@ -20202,7 +20202,7 @@ - + @@ -20215,7 +20215,7 @@ - + @@ -20234,12 +20234,12 @@ - - + + - + @@ -20250,7 +20250,7 @@ - + @@ -20261,7 +20261,7 @@ - + @@ -20300,7 +20300,7 @@ - + @@ -20313,7 +20313,7 @@ - + @@ -20327,7 +20327,7 @@ - + @@ -20341,7 +20341,7 @@ - + @@ -20354,7 +20354,7 @@ - + @@ -20365,24 +20365,24 @@ - - - - + + + + - - - - + + + + - - + + @@ -20393,10 +20393,10 @@ - - - - + + + + @@ -20405,26 +20405,26 @@ - - - - + + + + - - - - + + + + - - - - + + + + - - + + @@ -20433,71 +20433,71 @@ - - + + - - + + - - + + - - - - + + + + - - - - + + + + - - + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + @@ -20512,10 +20512,10 @@ - - - - + + + + @@ -20523,26 +20523,26 @@ - - - - - + + + + + - + - - - - - + + + + + - + - - + + @@ -20551,26 +20551,26 @@ - - - - - + + + + + - + - - - - - + + + + + - + - - + + @@ -20580,22 +20580,22 @@ - - - - + + + + - - + + - - + + - + @@ -20615,49 +20615,49 @@ - - - - + + + + - - - + + + - + - - - + + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - + @@ -20726,25 +20726,25 @@ - + - + - + - + @@ -20885,15 +20885,15 @@ - + - + - + @@ -20902,16 +20902,16 @@ - - + + - - - + + + @@ -20971,7 +20971,7 @@ - + @@ -20980,15 +20980,15 @@ - + - + - + @@ -20997,16 +20997,16 @@ - - + + - - + + @@ -21014,14 +21014,14 @@ - + - + @@ -21029,14 +21029,14 @@ - + - + @@ -21078,9 +21078,9 @@ - - - + + + @@ -21088,9 +21088,9 @@ - - - + + + @@ -21098,27 +21098,27 @@ - - - + + + - - - + + + - - - + + + @@ -21126,9 +21126,9 @@ - - - + + + @@ -21136,9 +21136,9 @@ - - - + + + @@ -21146,9 +21146,9 @@ - - - + + + @@ -21165,16 +21165,16 @@ - + - + - + @@ -21263,13 +21263,13 @@ - + - + @@ -21284,16 +21284,16 @@ - - + + - - + + @@ -21334,40 +21334,40 @@ - - + + - - + + - - + + - - + + - - + + @@ -21376,16 +21376,16 @@ - - + + - - + + @@ -21429,14 +21429,14 @@ - + - + @@ -21444,13 +21444,13 @@ - + - + @@ -21464,7 +21464,7 @@ - + @@ -21472,7 +21472,7 @@ - + @@ -21826,7 +21826,7 @@ - + @@ -21837,7 +21837,7 @@ - + @@ -21854,7 +21854,7 @@ - + @@ -21865,7 +21865,7 @@ - + @@ -21876,7 +21876,7 @@ - + @@ -21889,7 +21889,7 @@ - + @@ -21902,7 +21902,7 @@ - + @@ -21913,7 +21913,7 @@ - + @@ -21923,7 +21923,7 @@ - + @@ -21935,7 +21935,7 @@ - + @@ -21947,10 +21947,10 @@ - - + + @@ -21959,7 +21959,7 @@ - + @@ -21970,9 +21970,9 @@ - - + + @@ -22236,8 +22236,8 @@ - - + + @@ -22249,7 +22249,7 @@ - + @@ -22372,7 +22372,7 @@ - + @@ -22380,11 +22380,19 @@ + + + + + + + + - - - + + + @@ -22595,7 +22603,7 @@ - + @@ -22607,7 +22615,7 @@ - + @@ -22943,7 +22951,7 @@ - + @@ -22953,20 +22961,20 @@ - - + + - - + + - - + + @@ -23045,8 +23053,8 @@ - - + + @@ -23095,7 +23103,7 @@ - + @@ -23111,9 +23119,9 @@ - - - + + + @@ -23281,7 +23289,7 @@ - + @@ -23317,7 +23325,7 @@ - + @@ -23389,7 +23397,7 @@ - + @@ -23398,7 +23406,7 @@ - + @@ -23407,7 +23415,7 @@ - + @@ -23416,7 +23424,7 @@ - + @@ -23581,7 +23589,7 @@ - + @@ -23618,63 +23626,63 @@ - + - + - + - + - + - + - + - + - + @@ -23714,8 +23722,8 @@ - - + + @@ -23815,7 +23823,7 @@ - + @@ -24125,21 +24133,21 @@ - + - + - + @@ -24168,7 +24176,7 @@ - + @@ -24208,63 +24216,63 @@ - + - + - + - + - + - + - + - + - + @@ -24618,9 +24626,9 @@ - + - + @@ -24628,7 +24636,7 @@ - + @@ -24798,14 +24806,14 @@ - + - + @@ -24954,7 +24962,7 @@ - + @@ -24962,8 +24970,8 @@ - - + + @@ -25094,7 +25102,7 @@ - + @@ -25133,7 +25141,7 @@ - + @@ -25146,7 +25154,7 @@ - + @@ -25167,7 +25175,7 @@ - + @@ -25181,7 +25189,7 @@ - + @@ -25484,14 +25492,6 @@ - - - - - - - - @@ -25765,7 +25765,7 @@ - + @@ -25776,7 +25776,7 @@ - + @@ -26248,10 +26248,10 @@ - - - - + + + + diff --git a/tests/data/test-read-dwarf/test21-pr19092.so.abi b/tests/data/test-read-dwarf/test21-pr19092.so.abi index 36e462fd..c1fcf365 100644 --- a/tests/data/test-read-dwarf/test21-pr19092.so.abi +++ b/tests/data/test-read-dwarf/test21-pr19092.so.abi @@ -506,7 +506,7 @@ - + @@ -962,7 +962,6 @@ - @@ -984,6 +983,7 @@ + @@ -3148,93 +3148,102 @@ - + - + - + - - - + + + + + + + + + + + + - + - + - + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - - - + + + - - - - + + + + - - - - - - + + + + + + - + - + @@ -3242,15 +3251,15 @@ - + - + - + @@ -3259,95 +3268,95 @@ - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - - + + + - + @@ -3356,13 +3365,13 @@ - + - - + + @@ -3373,59 +3382,59 @@ - + - + - + - + - - + + - + - - + + - - + + - - + + - + - + - - + + @@ -3433,8 +3442,8 @@ - - + + @@ -3442,7 +3451,7 @@ - + @@ -3455,13 +3464,13 @@ - - + + - + - + @@ -3470,8 +3479,8 @@ - - + + @@ -3483,71 +3492,71 @@ - - + + - - + + - - + + - - + + - + - + - + - - - + + + - - + + - + - - + + - + - + - - - + + + - + - - + + - - - - - + + + + + @@ -3561,98 +3570,98 @@ - + - - - - - - - + + + + + + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - - + + + - + - - + + - - + + - + - + @@ -3673,7 +3682,7 @@ - + @@ -3692,28 +3701,28 @@ - + - + - + - - - + + + - + - - + + - + @@ -3727,7 +3736,7 @@ - + @@ -3747,7 +3756,7 @@ - + @@ -3756,7 +3765,7 @@ - + @@ -3777,105 +3786,108 @@ - + - + - - + + - + - - + + - - + + - + - + - - + + - - - + + + - - + + + + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -3884,7 +3896,7 @@ - + @@ -3892,19 +3904,19 @@ - + - + - + - - + + @@ -3914,10 +3926,10 @@ - - + + - + @@ -3925,73 +3937,73 @@ - - + + - + - + - + - + - - - + + + - + - - + + - + - + - - - + + + - - + + - - + + - - + + - - + + @@ -4000,28 +4012,28 @@ - + - + - + - + - + - + - + - + @@ -4035,18 +4047,18 @@ - + - + - + @@ -4063,47 +4075,47 @@ - + - + - + - - - + + + - - + + - + - + - + - + - + - + @@ -4133,7 +4145,7 @@ - + @@ -4223,18 +4235,18 @@ - + - + - + - + @@ -4249,20 +4261,20 @@ - + - + - - - - - - + + + + + + @@ -4375,7 +4387,7 @@ - + @@ -4389,19 +4401,19 @@ - + - + - + - + - + @@ -4428,17 +4440,17 @@ - + - + - + - + - + @@ -4446,13 +4458,13 @@ - + - + - + @@ -4461,25 +4473,25 @@ - + - + - + - + - + - + - + @@ -4488,19 +4500,19 @@ - + - + - + - + - + @@ -4509,7 +4521,7 @@ - + @@ -4524,22 +4536,22 @@ - + - + - + - + - + @@ -4548,40 +4560,40 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -4590,60 +4602,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4652,7 +4664,7 @@ - + @@ -4661,7 +4673,7 @@ - + @@ -4673,19 +4685,19 @@ - - - + + + - + - + - + @@ -4703,23 +4715,23 @@ - + - + - + - + - - - + + + - + @@ -4728,8 +4740,8 @@ - - + + @@ -4773,15 +4785,15 @@ - + - + - + @@ -4793,7 +4805,7 @@ - + @@ -4805,40 +4817,40 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4858,7 +4870,7 @@ - + @@ -4984,7 +4996,7 @@ - + @@ -4993,7 +5005,7 @@ - + @@ -5023,55 +5035,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5079,34 +5091,34 @@ - + - + - + - + - + - + - + - + - + - - + + @@ -5117,86 +5129,86 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5208,16 +5220,16 @@ - + - + - + - + @@ -5235,26 +5247,26 @@ - + - + - - - - - - - - + + + + + + + + - + @@ -5269,14 +5281,14 @@ - + - + @@ -5290,17 +5302,17 @@ - - - + + + - + - + @@ -5315,9 +5327,9 @@ - - - + + + @@ -5352,137 +5364,137 @@ - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -5490,46 +5502,46 @@ - - + + - + - + - + - - + + - - + + - + - - + + - + @@ -5538,131 +5550,131 @@ - - + + - + - - + + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - + - - - + + + - + - - - + + + - + - + - + - - + + - + - - + + - + - + - + - - + + - + - - + + - - + + - + @@ -5671,7 +5683,7 @@ - + @@ -5680,38 +5692,38 @@ - + - - + + - + - + - + - - - + + + - - + + - - + + @@ -5720,99 +5732,99 @@ - + - + - + - + - + - - + + - + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - + - - + + - + - + - - + + - - - - - - - + + + + + + + @@ -5820,9 +5832,9 @@ - + - + @@ -5833,46 +5845,46 @@ - - + + - + - + - + - + - + - + - + - + @@ -5880,21 +5892,21 @@ - - + + - - + + - + @@ -5903,70 +5915,77 @@ - + - - + + - + - - + + - - - + + + - - + + - - + + - + - + - + - + - + - + - + - + + + + + + + + @@ -6015,13 +6034,6 @@ - - - - - - - @@ -6039,22 +6051,28 @@ - - + + + + + + + + - - + + - - + + - + - + - + @@ -6128,45 +6146,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6174,12 +6192,12 @@ - + - + - + @@ -6193,61 +6211,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6261,10 +6279,10 @@ - + - + @@ -6277,7 +6295,7 @@ - + @@ -6285,33 +6303,33 @@ - + - + - + - + - + - + - + - + @@ -6325,7 +6343,7 @@ - + @@ -6334,7 +6352,7 @@ - + @@ -6346,66 +6364,66 @@ - + - - - - - - - - - - - + + + + + + + + + + + - + - + - + - - - + + + - - - + + + - - + + - + - + - - + + - + @@ -6414,38 +6432,38 @@ - + - + - + - + - + - - + + - + @@ -6453,10 +6471,13 @@ - - + + - + + + + @@ -6470,20 +6491,66 @@ - + - + - + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6494,12 +6561,12 @@ - - + + - + @@ -6512,13 +6579,8 @@ - - - - - - - + + @@ -6528,12 +6590,6 @@ - - - - - - @@ -6545,41 +6601,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -6619,7 +6640,7 @@ - + @@ -6694,13 +6715,13 @@ - + - + @@ -6715,7 +6736,7 @@ - + @@ -6738,60 +6759,60 @@ - - + + - + - + - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + @@ -6834,13 +6855,13 @@ - + - + @@ -6861,15 +6882,15 @@ - + - - - + + + @@ -6883,51 +6904,51 @@ - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - + + + + + + + + + + + - + @@ -6960,33 +6981,33 @@ - + - + - + - + - + - + @@ -6996,47 +7017,47 @@ - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -7047,7 +7068,7 @@ - + @@ -7055,12 +7076,12 @@ - + - + - + @@ -7105,18 +7126,18 @@ - + - + - - - - + + + + @@ -7128,20 +7149,20 @@ - - + + - - + + - + - + - + @@ -7149,7 +7170,7 @@ - + @@ -7160,7 +7181,7 @@ - + @@ -7179,13 +7200,16 @@ - - + + + + + - - - - + + + + @@ -7199,14 +7223,14 @@ - - + + - + diff --git a/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi b/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi index ac1bc6b5..b1c192ca 100644 --- a/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi +++ b/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi @@ -3750,81 +3750,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + - + - + - + - + @@ -3832,42 +3795,42 @@ - - - + + + - + - + - + - + - + - + @@ -3875,23 +3838,23 @@ - - - - - - + + + + + + + + - - - - + + - + - - + + @@ -3903,62 +3866,62 @@ - + - + - + - + - + - + - - + + - - - + + + - + - + - + - + - + @@ -3967,89 +3930,89 @@ - + - - - - - - + + + + + + - + - + - + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + - - - - + + + + + + - - - - - - + + + + + + @@ -4057,68 +4020,68 @@ - + - - - + + + - + - - + + - + - - + + - - - - - + + + + + - + - + - + - + - + - - - - - - + + + + + + @@ -4129,34 +4092,124 @@ - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -4165,126 +4218,126 @@ - + - + - + - + - + - + - - + + - - - + + + - + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - + - + @@ -4292,10 +4345,10 @@ - + - + @@ -4337,107 +4390,17 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + - - + + @@ -4456,120 +4419,120 @@ - + - - + + - - - - - - + - - + + - + - + - + - + - + + + + + + - + - - - - - - - + + + + + + + - + - + - - + + - - + + - + - + - + - - + + - - + + - + - + @@ -4600,7 +4563,7 @@ - + @@ -4613,30 +4576,30 @@ - - - - - - - + + - + - + - + - + + + + + + @@ -4645,35 +4608,35 @@ - + - + - + - + - + - + - + @@ -4691,12 +4654,12 @@ - + - + @@ -4715,7 +4678,7 @@ - + @@ -4782,7 +4745,7 @@ - + @@ -4794,13 +4757,13 @@ - + - + @@ -4826,7 +4789,7 @@ - + @@ -4841,12 +4804,12 @@ - + - + @@ -4858,8 +4821,8 @@ - - + + @@ -4870,33 +4833,33 @@ - + - + - - - - + + + + - - - + + + @@ -4904,16 +4867,16 @@ - - + + - - - + + + @@ -4921,13 +4884,13 @@ - + - + @@ -5004,7 +4967,7 @@ - + @@ -5050,7 +5013,7 @@ - + @@ -5081,14 +5044,14 @@ - + - + @@ -5097,9 +5060,9 @@ - + - + @@ -5107,10 +5070,10 @@ - - - - + + + + @@ -5183,42 +5146,42 @@ - + - + - - + + - - - + + + - - + + - - + + - - - + + + @@ -5232,7 +5195,7 @@ - + @@ -5241,17 +5204,17 @@ - + - + - + @@ -5293,19 +5256,19 @@ - - - - + + + + - - - + + + @@ -5321,15 +5284,15 @@ - + - - + + @@ -5372,9 +5335,9 @@ - - - + + + @@ -5392,7 +5355,7 @@ - + @@ -5420,16 +5383,16 @@ - + - - - + + + @@ -5437,7 +5400,7 @@ - + @@ -5448,7 +5411,7 @@ - + @@ -5461,15 +5424,15 @@ - + - + - + @@ -5511,33 +5474,33 @@ - - - - + + + + - - - + - - - - + + + + + + - - - - - + + + + + @@ -5553,103 +5516,103 @@ - + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - - + + + - - + + - - - + + + - + - - - - + + + + - - - + + + - - - + + + - - + + - - + + - - + + @@ -5665,7 +5628,7 @@ - + @@ -5673,45 +5636,45 @@ - + - + - + - + - + - + - + - + - + @@ -5748,33 +5711,33 @@ - - - - + + + + - - - + - - - - + + + + + + - - - - - + + + + + @@ -5782,11 +5745,6 @@ - - - - - @@ -5796,6 +5754,11 @@ + + + + + @@ -5811,8 +5774,8 @@ - - + + @@ -5821,9 +5784,9 @@ - + - + @@ -5837,10 +5800,10 @@ - + - - + + @@ -5851,7 +5814,7 @@ - + @@ -5890,7 +5853,7 @@ - + @@ -5907,9 +5870,9 @@ - + - + @@ -5921,7 +5884,7 @@ - + @@ -6026,7 +5989,7 @@ - + @@ -6044,7 +6007,7 @@ - + @@ -6103,7 +6066,7 @@ - + @@ -6111,7 +6074,7 @@ - + @@ -6123,7 +6086,7 @@ - + @@ -6227,13 +6190,13 @@ - + - + @@ -6253,7 +6216,7 @@ - + @@ -6280,10 +6243,10 @@ - + - + @@ -6301,7 +6264,7 @@ - + @@ -6337,7 +6300,7 @@ - + @@ -6375,17 +6338,17 @@ - - - - + + + + - + @@ -6448,7 +6411,7 @@ - + @@ -6509,33 +6472,33 @@ - - - - + + + + - + - - + + - + - + @@ -6560,21 +6523,21 @@ - + - + - + @@ -6629,7 +6592,7 @@ - + @@ -6637,7 +6600,7 @@ - + @@ -6650,37 +6613,37 @@ - + - + - + - + - + - + @@ -6690,7 +6653,7 @@ - + @@ -6700,7 +6663,7 @@ - + @@ -6709,7 +6672,7 @@ - + @@ -6719,7 +6682,7 @@ - + @@ -6728,7 +6691,7 @@ - + @@ -6794,7 +6757,7 @@ - + @@ -6854,7 +6817,7 @@ - + @@ -6891,7 +6854,7 @@ - + @@ -6904,15 +6867,15 @@ - + - - + + - + @@ -6924,8 +6887,8 @@ - - + + @@ -6946,7 +6909,7 @@ - + @@ -6956,7 +6919,7 @@ - + @@ -6968,13 +6931,13 @@ - + - + @@ -7023,12 +6986,12 @@ - + - - + + @@ -7036,12 +6999,12 @@ - - + + - + @@ -7105,8 +7068,8 @@ - - + + @@ -7260,7 +7223,7 @@ - + @@ -7289,7 +7252,7 @@ - + @@ -7412,19 +7375,19 @@ - + - + - + @@ -7438,7 +7401,7 @@ - + @@ -7490,34 +7453,34 @@ - + - + - + - + - + @@ -7568,7 +7531,7 @@ - + @@ -7608,7 +7571,7 @@ - + @@ -7619,100 +7582,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - - - - + + + + + - - - - + + + + @@ -7725,7 +7688,7 @@ - + @@ -8467,7 +8430,7 @@ - + @@ -8501,7 +8464,7 @@ - + @@ -8649,7 +8612,7 @@ - + @@ -8744,7 +8707,7 @@ - + @@ -8823,7 +8786,7 @@ - + @@ -8875,7 +8838,7 @@ - + @@ -8903,7 +8866,7 @@ - + @@ -8955,7 +8918,7 @@ - + @@ -8995,7 +8958,7 @@ - + @@ -9253,7 +9216,7 @@ - + @@ -9266,38 +9229,38 @@ - + - + - + - + - + - - - - + + + + - + @@ -9310,10 +9273,10 @@ - + - - + + @@ -9390,7 +9353,7 @@ - + @@ -9472,16 +9435,16 @@ - + - + - + - + @@ -9523,7 +9486,7 @@ - + @@ -9557,7 +9520,7 @@ - + @@ -9684,7 +9647,7 @@ - + @@ -9734,7 +9697,7 @@ - + @@ -9791,7 +9754,7 @@ - + @@ -9881,37 +9844,37 @@ - + - + - + - + - + - + @@ -10380,7 +10343,7 @@ - + @@ -10409,34 +10372,34 @@ - + - + - + - + - + @@ -10445,7 +10408,7 @@ - + @@ -10453,14 +10416,14 @@ - + - + @@ -10481,7 +10444,7 @@ - + @@ -10499,15 +10462,15 @@ - + - + - + @@ -10518,7 +10481,7 @@ - + @@ -10574,10 +10537,10 @@ - + - + @@ -10593,7 +10556,7 @@ - + @@ -10855,7 +10818,7 @@ - + @@ -10902,8 +10865,8 @@ - - + + @@ -10987,7 +10950,7 @@ - + @@ -10997,7 +10960,7 @@ - + @@ -11024,7 +10987,7 @@ - + @@ -11121,37 +11084,37 @@ - + - + - + - + - + - + @@ -11249,10 +11212,10 @@ - + - + @@ -11410,7 +11373,7 @@ - + @@ -11544,7 +11507,7 @@ - + @@ -11615,7 +11578,7 @@ - + @@ -11640,34 +11603,34 @@ - + - + - + - + - + @@ -11676,7 +11639,7 @@ - + @@ -11684,14 +11647,14 @@ - + - + @@ -11712,7 +11675,7 @@ - + @@ -11730,7 +11693,7 @@ - + @@ -11761,13 +11724,13 @@ - + - + @@ -11981,7 +11944,7 @@ - + @@ -12263,7 +12226,7 @@ - + @@ -12953,7 +12916,7 @@ - + @@ -13347,7 +13310,7 @@ - + @@ -13664,13 +13627,13 @@ - + - + @@ -13884,7 +13847,7 @@ - + @@ -14166,7 +14129,7 @@ - + @@ -14856,7 +14819,7 @@ - + @@ -15250,7 +15213,7 @@ - + @@ -15553,27 +15516,27 @@ - + - + - + - + @@ -15669,7 +15632,7 @@ - + @@ -15702,7 +15665,7 @@ - + @@ -15984,7 +15947,7 @@ - + @@ -15993,7 +15956,7 @@ - + @@ -16002,7 +15965,7 @@ - + @@ -16010,7 +15973,7 @@ - + @@ -16018,7 +15981,7 @@ - + @@ -16026,7 +15989,7 @@ - + @@ -16034,7 +15997,7 @@ - + @@ -16042,7 +16005,7 @@ - + @@ -16061,27 +16024,27 @@ - + - + - + - + @@ -16097,7 +16060,7 @@ - + @@ -16183,7 +16146,7 @@ - + @@ -16216,7 +16179,7 @@ - + @@ -16498,7 +16461,7 @@ - + @@ -16507,7 +16470,7 @@ - + @@ -16516,7 +16479,7 @@ - + @@ -16524,7 +16487,7 @@ - + @@ -16532,7 +16495,7 @@ - + @@ -16540,7 +16503,7 @@ - + @@ -16548,7 +16511,7 @@ - + @@ -16556,7 +16519,7 @@ - + @@ -16568,7 +16531,7 @@ - + @@ -16580,7 +16543,7 @@ - + @@ -16648,7 +16611,7 @@ - + @@ -16660,7 +16623,7 @@ - + @@ -16728,7 +16691,7 @@ - + @@ -16740,7 +16703,7 @@ - + @@ -16796,16 +16759,16 @@ - + - + - + - + @@ -16817,7 +16780,7 @@ - + @@ -16837,7 +16800,7 @@ - + @@ -16904,7 +16867,7 @@ - + @@ -16926,7 +16889,7 @@ - + @@ -17041,7 +17004,7 @@ - + @@ -17049,7 +17012,7 @@ - + @@ -17057,7 +17020,7 @@ - + @@ -17085,7 +17048,7 @@ - + @@ -17112,16 +17075,16 @@ - + - + - + - + @@ -17133,7 +17096,7 @@ - + @@ -17153,7 +17116,7 @@ - + @@ -17220,7 +17183,7 @@ - + @@ -17242,7 +17205,7 @@ - + @@ -17357,7 +17320,7 @@ - + @@ -17365,7 +17328,7 @@ - + @@ -17373,7 +17336,7 @@ - + @@ -17383,7 +17346,7 @@ - + @@ -17435,7 +17398,7 @@ - + @@ -17686,7 +17649,7 @@ - + @@ -17738,7 +17701,7 @@ - + @@ -18248,13 +18211,13 @@ - + - + @@ -18410,7 +18373,7 @@ - + @@ -18424,7 +18387,7 @@ - + @@ -18435,7 +18398,7 @@ - + @@ -18501,18 +18464,18 @@ - + - + - + @@ -18536,7 +18499,7 @@ - + @@ -18573,7 +18536,7 @@ - + @@ -18709,7 +18672,7 @@ - + @@ -18936,7 +18899,7 @@ - + @@ -18948,13 +18911,13 @@ - + - + - + @@ -18993,7 +18956,7 @@ - + @@ -19076,7 +19039,7 @@ - + @@ -19101,13 +19064,13 @@ - + - + @@ -19288,15 +19251,45 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -19314,7 +19307,7 @@ - + @@ -19322,7 +19315,7 @@ - + @@ -19350,14 +19343,14 @@ - + - + @@ -19365,7 +19358,7 @@ - + @@ -19385,20 +19378,20 @@ - + - + - + @@ -19428,7 +19421,7 @@ - + @@ -19471,7 +19464,7 @@ - + @@ -19484,7 +19477,7 @@ - + @@ -19492,7 +19485,7 @@ - + @@ -19513,8 +19506,8 @@ - - + + @@ -19522,8 +19515,8 @@ - - + + @@ -19536,8 +19529,8 @@ - - + + @@ -19546,57 +19539,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19606,24 +19599,24 @@ - + - + - + - + - + - + @@ -19634,7 +19627,7 @@ - + @@ -19665,8 +19658,8 @@ - - + + @@ -19674,33 +19667,33 @@ - + - + - + - + - + - + - + @@ -19723,7 +19716,7 @@ - + @@ -19737,7 +19730,7 @@ - + @@ -19764,7 +19757,7 @@ - + @@ -19774,7 +19767,7 @@ - + @@ -19794,7 +19787,7 @@ - + @@ -19804,13 +19797,13 @@ - + - - + + @@ -19871,7 +19864,7 @@ - + @@ -19879,7 +19872,7 @@ - + @@ -19914,7 +19907,7 @@ - + @@ -19922,7 +19915,7 @@ - + @@ -19977,7 +19970,7 @@ - + @@ -19985,7 +19978,7 @@ - + @@ -20006,36 +19999,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -20046,7 +20009,7 @@ - + @@ -20064,7 +20027,7 @@ - + @@ -20086,7 +20049,7 @@ - + @@ -20135,7 +20098,7 @@ - + @@ -20153,7 +20116,7 @@ - + @@ -20161,7 +20124,7 @@ - + @@ -20171,7 +20134,7 @@ - + @@ -20186,13 +20149,13 @@ - + - + @@ -20221,7 +20184,7 @@ - + @@ -20229,7 +20192,7 @@ - + @@ -20237,7 +20200,7 @@ - + @@ -20247,7 +20210,7 @@ - + @@ -20257,7 +20220,7 @@ - + @@ -20267,7 +20230,7 @@ - + @@ -20277,7 +20240,7 @@ - + @@ -20285,7 +20248,7 @@ - + @@ -20293,7 +20256,7 @@ - + @@ -20301,7 +20264,7 @@ - + @@ -20318,7 +20281,7 @@ - + @@ -20326,7 +20289,7 @@ - + @@ -20336,7 +20299,7 @@ - + @@ -20351,13 +20314,13 @@ - + - + @@ -20386,7 +20349,7 @@ - + @@ -20394,7 +20357,7 @@ - + @@ -20402,7 +20365,7 @@ - + @@ -20412,7 +20375,7 @@ - + @@ -20422,7 +20385,7 @@ - + @@ -20432,7 +20395,7 @@ - + @@ -20442,7 +20405,7 @@ - + @@ -20450,7 +20413,7 @@ - + @@ -20458,7 +20421,7 @@ - + @@ -20466,7 +20429,7 @@ - + @@ -20483,7 +20446,7 @@ - + @@ -20491,7 +20454,7 @@ - + @@ -20501,7 +20464,7 @@ - + @@ -20516,13 +20479,13 @@ - + - + @@ -20551,7 +20514,7 @@ - + @@ -20559,7 +20522,7 @@ - + @@ -20567,7 +20530,7 @@ - + @@ -20577,7 +20540,7 @@ - + @@ -20587,7 +20550,7 @@ - + @@ -20597,7 +20560,7 @@ - + @@ -20607,7 +20570,7 @@ - + @@ -20615,7 +20578,7 @@ - + @@ -20623,7 +20586,7 @@ - + @@ -20631,7 +20594,7 @@ - + @@ -20648,7 +20611,7 @@ - + @@ -20656,7 +20619,7 @@ - + @@ -20666,7 +20629,7 @@ - + @@ -20681,13 +20644,13 @@ - + - + @@ -20716,7 +20679,7 @@ - + @@ -20724,7 +20687,7 @@ - + @@ -20732,7 +20695,7 @@ - + @@ -20742,7 +20705,7 @@ - + @@ -20752,7 +20715,7 @@ - + @@ -20762,7 +20725,7 @@ - + @@ -20772,7 +20735,7 @@ - + @@ -20780,7 +20743,7 @@ - + @@ -20788,7 +20751,7 @@ - + @@ -20796,7 +20759,7 @@ - + @@ -20813,7 +20776,7 @@ - + @@ -20821,7 +20784,7 @@ - + @@ -20831,7 +20794,7 @@ - + @@ -20846,13 +20809,13 @@ - + - + @@ -20881,7 +20844,7 @@ - + @@ -20889,7 +20852,7 @@ - + @@ -20897,7 +20860,7 @@ - + @@ -20907,7 +20870,7 @@ - + @@ -20917,7 +20880,7 @@ - + @@ -20927,7 +20890,7 @@ - + @@ -20937,7 +20900,7 @@ - + @@ -20945,7 +20908,7 @@ - + @@ -20953,7 +20916,7 @@ - + @@ -20961,7 +20924,7 @@ - + @@ -20978,7 +20941,7 @@ - + @@ -20986,7 +20949,7 @@ - + @@ -20996,7 +20959,7 @@ - + @@ -21011,13 +20974,13 @@ - + - + @@ -21046,7 +21009,7 @@ - + @@ -21054,7 +21017,7 @@ - + @@ -21062,7 +21025,7 @@ - + @@ -21072,7 +21035,7 @@ - + @@ -21082,7 +21045,7 @@ - + @@ -21092,7 +21055,7 @@ - + @@ -21102,7 +21065,7 @@ - + @@ -21110,7 +21073,7 @@ - + @@ -21118,7 +21081,7 @@ - + @@ -21126,7 +21089,7 @@ - + @@ -21142,7 +21105,7 @@ - + @@ -21263,7 +21226,7 @@ - + @@ -21295,7 +21258,7 @@ - + @@ -21321,7 +21284,7 @@ - + @@ -21353,7 +21316,7 @@ - + @@ -21362,7 +21325,7 @@ - + @@ -21383,7 +21346,7 @@ - + @@ -21401,7 +21364,7 @@ - + @@ -21470,7 +21433,7 @@ - + @@ -21524,7 +21487,7 @@ - + @@ -21538,25 +21501,25 @@ - + - + - + - + - + @@ -21564,7 +21527,7 @@ - + @@ -21629,14 +21592,14 @@ - + - + @@ -21818,7 +21781,7 @@ - + @@ -22189,7 +22152,7 @@ - + @@ -22335,7 +22298,7 @@ - + @@ -22375,7 +22338,7 @@ - + @@ -22484,14 +22447,14 @@ - + - + @@ -22585,14 +22548,14 @@ - + - + @@ -22688,14 +22651,14 @@ - + - + @@ -22732,7 +22695,7 @@ - + @@ -22740,14 +22703,14 @@ - + - + @@ -22883,7 +22846,7 @@ - + @@ -22935,7 +22898,7 @@ - + @@ -22956,7 +22919,7 @@ - + @@ -23008,7 +22971,7 @@ - + @@ -23036,7 +22999,7 @@ - + @@ -23088,7 +23051,7 @@ - + @@ -23123,13 +23086,13 @@ - + - + @@ -23457,19 +23420,19 @@ - + - + - + @@ -23483,7 +23446,7 @@ - + @@ -23601,7 +23564,7 @@ - + @@ -24024,7 +23987,7 @@ - + @@ -24240,7 +24203,7 @@ - + @@ -24511,7 +24474,7 @@ - + @@ -24565,7 +24528,7 @@ - + @@ -24655,13 +24618,13 @@ - + - + @@ -25740,8 +25703,8 @@ - - + + @@ -26004,12 +25967,12 @@ - + - + @@ -26023,7 +25986,7 @@ - + @@ -26036,14 +25999,14 @@ - - + + - + @@ -26140,12 +26103,12 @@ - + - + @@ -26244,15 +26207,15 @@ - + - - + + @@ -26323,7 +26286,7 @@ - + @@ -26331,7 +26294,7 @@ - + @@ -26354,7 +26317,7 @@ - + @@ -26366,7 +26329,7 @@ - + @@ -26377,7 +26340,7 @@ - + @@ -26389,7 +26352,7 @@ - + @@ -26398,16 +26361,16 @@ - + - + - + @@ -26420,7 +26383,7 @@ - + @@ -26558,7 +26521,7 @@ - + @@ -26714,14 +26677,14 @@ - + - + @@ -26735,7 +26698,7 @@ - + @@ -26819,7 +26782,7 @@ - + @@ -26857,21 +26820,21 @@ - + - + - + - + @@ -26892,7 +26855,7 @@ - + @@ -27048,14 +27011,14 @@ - + - + @@ -27069,7 +27032,7 @@ - + @@ -27153,7 +27116,7 @@ - + @@ -27191,7 +27154,7 @@ - + @@ -27212,7 +27175,7 @@ - + @@ -27236,7 +27199,7 @@ - + @@ -27384,8 +27347,8 @@ - - + + @@ -27397,7 +27360,7 @@ - + @@ -27421,9 +27384,9 @@ - - - + + + @@ -27436,7 +27399,7 @@ - + @@ -27449,12 +27412,12 @@ - + - - + + @@ -27472,7 +27435,7 @@ - + @@ -27496,7 +27459,7 @@ - + @@ -27714,7 +27677,7 @@ - + @@ -27735,7 +27698,7 @@ - + @@ -27842,7 +27805,7 @@ - + @@ -27887,7 +27850,7 @@ - + @@ -27895,14 +27858,14 @@ - + - + @@ -27930,7 +27893,7 @@ - + @@ -27969,7 +27932,7 @@ - + @@ -27984,7 +27947,7 @@ - + @@ -28187,7 +28150,7 @@ - + @@ -28195,7 +28158,7 @@ - + @@ -28204,7 +28167,7 @@ - + @@ -28232,7 +28195,7 @@ - + @@ -28338,14 +28301,14 @@ - + - + @@ -28448,7 +28411,7 @@ - + @@ -28474,7 +28437,7 @@ - + @@ -28523,7 +28486,7 @@ - + @@ -28532,7 +28495,7 @@ - + @@ -28550,14 +28513,14 @@ - + - + @@ -28608,7 +28571,7 @@ - + @@ -28617,7 +28580,7 @@ - + @@ -28646,7 +28609,7 @@ - + @@ -28695,7 +28658,7 @@ - + @@ -28704,7 +28667,7 @@ - + @@ -28722,14 +28685,14 @@ - + - + @@ -28780,7 +28743,7 @@ - + @@ -28789,7 +28752,7 @@ - + @@ -28820,7 +28783,7 @@ - + @@ -28828,14 +28791,14 @@ - + - + @@ -28843,7 +28806,7 @@ - + @@ -28913,7 +28876,7 @@ - + @@ -28922,7 +28885,7 @@ - + @@ -28953,7 +28916,7 @@ - + @@ -28961,14 +28924,14 @@ - + - + @@ -28976,7 +28939,7 @@ - + @@ -29072,7 +29035,7 @@ - + @@ -29081,7 +29044,7 @@ - + @@ -29191,7 +29154,7 @@ - + @@ -29211,7 +29174,7 @@ - + @@ -29219,7 +29182,7 @@ - + @@ -29239,7 +29202,7 @@ - + @@ -29247,7 +29210,7 @@ - + @@ -29277,7 +29240,7 @@ - + @@ -29285,7 +29248,7 @@ - + @@ -29483,12 +29446,12 @@ - + - + @@ -29913,7 +29876,7 @@ - + @@ -29935,7 +29898,7 @@ - + @@ -30003,7 +29966,7 @@ - + @@ -30025,7 +29988,7 @@ - + @@ -30054,21 +30017,21 @@ - + - + - + @@ -30096,7 +30059,7 @@ - + @@ -30117,7 +30080,7 @@ - + @@ -30181,21 +30144,21 @@ - + - + - + @@ -30216,7 +30179,7 @@ - + @@ -30224,7 +30187,7 @@ - + @@ -30233,7 +30196,7 @@ - + @@ -30242,7 +30205,7 @@ - + @@ -30250,7 +30213,7 @@ - + @@ -30258,7 +30221,7 @@ - + @@ -30266,7 +30229,7 @@ - + @@ -30274,7 +30237,7 @@ - + @@ -30282,7 +30245,7 @@ - + @@ -30321,7 +30284,7 @@ - + @@ -30343,7 +30306,7 @@ - + @@ -30372,7 +30335,7 @@ - + @@ -30408,7 +30371,7 @@ - + @@ -30430,7 +30393,7 @@ - + @@ -30459,21 +30422,21 @@ - + - + - + @@ -30501,7 +30464,7 @@ - + @@ -30522,7 +30485,7 @@ - + @@ -30586,21 +30549,21 @@ - + - + - + @@ -30621,7 +30584,7 @@ - + @@ -30629,7 +30592,7 @@ - + @@ -30638,7 +30601,7 @@ - + @@ -30647,7 +30610,7 @@ - + @@ -30655,7 +30618,7 @@ - + @@ -30663,7 +30626,7 @@ - + @@ -30671,7 +30634,7 @@ - + @@ -30679,7 +30642,7 @@ - + @@ -30687,7 +30650,7 @@ - + @@ -30748,7 +30711,7 @@ - + @@ -30785,7 +30748,7 @@ - + @@ -30802,7 +30765,7 @@ - + @@ -30889,14 +30852,14 @@ - + - + @@ -30907,7 +30870,7 @@ - + @@ -31172,7 +31135,7 @@ - + @@ -31187,7 +31150,7 @@ - + @@ -31210,7 +31173,7 @@ - + @@ -31219,7 +31182,7 @@ - + @@ -31228,7 +31191,7 @@ - + @@ -31238,7 +31201,7 @@ - + @@ -31248,7 +31211,7 @@ - + @@ -31256,7 +31219,7 @@ - + @@ -31264,7 +31227,7 @@ - + @@ -31272,7 +31235,7 @@ - + @@ -31289,7 +31252,7 @@ - + @@ -31447,7 +31410,7 @@ - + @@ -31462,7 +31425,7 @@ - + @@ -31485,7 +31448,7 @@ - + @@ -31494,7 +31457,7 @@ - + @@ -31503,7 +31466,7 @@ - + @@ -31513,7 +31476,7 @@ - + @@ -31523,7 +31486,7 @@ - + @@ -31531,7 +31494,7 @@ - + @@ -31539,7 +31502,7 @@ - + @@ -31547,7 +31510,7 @@ - + @@ -31556,11 +31519,11 @@ - + - + @@ -31645,7 +31608,7 @@ - + @@ -31690,7 +31653,7 @@ - + @@ -31715,7 +31678,7 @@ - + @@ -31760,7 +31723,7 @@ - + @@ -31920,22 +31883,22 @@ - + - + - + - + @@ -31943,22 +31906,22 @@ - + - + - + - + @@ -31966,22 +31929,22 @@ - + - + - + - + @@ -31989,22 +31952,22 @@ - + - + - + - + @@ -32102,22 +32065,22 @@ - + - + - + - + @@ -32363,10 +32326,10 @@ - + - + @@ -32398,7 +32361,7 @@ - + @@ -32431,8 +32394,8 @@ - - + + @@ -32441,8 +32404,8 @@ - - + + @@ -32451,7 +32414,7 @@ - + @@ -32573,8 +32536,8 @@ - - + + @@ -32582,8 +32545,8 @@ - - + + @@ -32608,13 +32571,6 @@ - - - - - - - @@ -32622,12 +32578,11 @@ - - + + - - - + + @@ -32638,11 +32593,12 @@ - - + + - - + + + @@ -32652,12 +32608,11 @@ - - + + - - - + + @@ -32668,6 +32623,14 @@ + + + + + + + + @@ -32750,7 +32713,7 @@ - + @@ -32758,7 +32721,7 @@ - + @@ -32790,1123 +32753,1126 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - + + + - - + + - - + + - - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - - + + + - - - + + + + + - + - - + + - + - + - + - + - + - - + + - + - + - - + + - + - + - + - - + + - + - + - - + + - - + + - + - + - + - + - + - - + + - + - + - - + + - + - + - + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - - + + - - - + + + - + - + - + - + - + - - + + - - - + + + - - + + - + - + - + - + - + - + - + - - - + + + - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - - - + + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - - - + + + + - + - - - + + + - - + + - - + + - + - - + + - + - - + + - + - - - + + + - - + + - - + + - + - + - + - - - - - + + + + + - + - - - + + + - - + + - - - + + + - + - + - + - - + + - + - - + + - + - + - + - + - + - + - - + + - - - + + + - + - + - + - + - + - - + + - - - + + + - - + + - + - + - + - + - + - + - + - - - + + + - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - - - + + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - - - + + + + - + - - - + + + - - + + - - + + - + - - + + - + - - + + - + - - - + + + - - + + - - + + - + - + - + - - - - - + + + + + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - - - - - - - - - + + + + + + + + + + + + - + - + - + - + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - + @@ -33915,7 +33881,7 @@ - + @@ -33923,13 +33889,13 @@ - + - + @@ -33937,26 +33903,26 @@ - - + + - - + + - - - + + + - + @@ -33964,122 +33930,125 @@ - - - + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - - - - + + + + + - + + + + @@ -34091,57 +34060,57 @@ - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + - + + + + + - + - + - + - + - + - + - + @@ -34149,19 +34118,19 @@ - + - + - + - + @@ -34170,19 +34139,19 @@ - + - - + + - + @@ -34259,7 +34228,7 @@ - + @@ -34267,16 +34236,16 @@ - - + + - - - - - + + + + + @@ -34294,67 +34263,67 @@ - + - + - + - + - + - + - + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - + @@ -34363,7 +34332,7 @@ - + @@ -34371,13 +34340,13 @@ - + - + @@ -34385,26 +34354,26 @@ - - + + - - + + - - - + + + - + @@ -34412,9 +34381,9 @@ - - - + + + @@ -34423,109 +34392,109 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -34533,56 +34502,56 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - + + + + + + + + + - + - - - + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + @@ -34590,195 +34559,195 @@ - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - - - + + + - - + + - - + + - + - - + + - + - - - - - - + + + + + + @@ -34786,77 +34755,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -34870,67 +34839,67 @@ - + - + - + - + - + - + - + - + - - - + + + - + - - - + + + - + - + - - - + + + @@ -34958,161 +34927,161 @@ - + - - - + + + - + - + - + - - + + - - - + + + - + - - + + - + - - + + - - + + - - + + - - + + - - - - + + + + - - + + - - - - - - - + + + + - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - + + + + + + - - - + + + - - - - - + + + + + - - + + - - + + - - - + + + + + + - - - - - - - - - + + + + + + + - + - + - - - + + + + + @@ -35130,7 +35099,7 @@ - + @@ -35138,9 +35107,9 @@ - - - + + + @@ -35148,99 +35117,99 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -35248,7 +35217,7 @@ - + @@ -35257,566 +35226,566 @@ - + - + - + - - + + - - - + + + - + - + - - - + + + - + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - + - + - + - + - - + + - - - + + + - + - - + + - + - - + + - - + + - + - - + + - - - + + + - + - + - - - + + + - + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - + - + - + - + - - + + - - - + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + @@ -35829,30 +35798,30 @@ - + - + - + - + - + - + - + - + - + @@ -35860,7 +35829,7 @@ - + @@ -35878,8 +35847,11 @@ + + + - + @@ -35887,7 +35859,7 @@ - + @@ -35895,9 +35867,9 @@ - + - + @@ -35908,11 +35880,11 @@ - - + + - - + + @@ -35922,11 +35894,11 @@ - + - + - + @@ -35945,68 +35917,75 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - + - + - - + + - - + + + + + + + + + @@ -36014,15 +35993,8 @@ - - - - - - - - + @@ -36032,14 +36004,14 @@ - + - + - - + + @@ -36048,28 +36020,28 @@ - + - + - + - + - + @@ -36078,66 +36050,66 @@ - + - + - + - - + + - + - - - + + + - - + + - - + + - + - + - + @@ -36146,10 +36118,10 @@ - + - + @@ -36157,221 +36129,221 @@ - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - + @@ -36398,133 +36370,133 @@ - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - + - + @@ -36532,95 +36504,95 @@ - + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - - - + + + - + - + @@ -36631,9 +36603,9 @@ - + - + @@ -36644,7 +36616,7 @@ - + @@ -36656,7 +36628,7 @@ - + @@ -36667,7 +36639,7 @@ - + @@ -36678,7 +36650,7 @@ - + @@ -36688,7 +36660,7 @@ - + @@ -36698,28 +36670,28 @@ - + - + - + - + - + @@ -36746,95 +36718,95 @@ - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - + - + - - + + - + - + - - + + - + - - + + - + - - + + - - + + - + - + - + - + @@ -36842,60 +36814,60 @@ - + - - - - + + + + - + - + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + @@ -36922,39 +36894,39 @@ - - - - + + + + - + - + - - - - + + + + - - - + + + - + - + - + - + @@ -36962,56 +36934,56 @@ - + - - - + + + - + - + - - - + + + - - + + - - + + - + - - + + - + - + @@ -37038,35 +37010,35 @@ - - - + + + - + - - - + + + - + - + - + - + - + @@ -37074,127 +37046,127 @@ - + - - + + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - - + + - - - + + + - + - - + + - - - + + + - + - - + + - - - + + + - + - + - + @@ -37221,73 +37193,73 @@ - - + + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - + - + - + @@ -37295,16 +37267,16 @@ - + - - + + - + @@ -37313,20 +37285,20 @@ - - + + - + - + - + @@ -37353,10 +37325,10 @@ - - + + - + @@ -37364,28 +37336,28 @@ - + - + - + - + - + @@ -37394,66 +37366,66 @@ - + - + - + - - + + - + - - - + + + - - + + - - + + - + - + - + @@ -37462,10 +37434,10 @@ - + - + @@ -37473,221 +37445,221 @@ - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - + @@ -37714,133 +37686,133 @@ - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - + - + @@ -37848,95 +37820,95 @@ - + - - + + - - - + + + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - + - + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - + - + @@ -37947,9 +37919,9 @@ - + - + @@ -37960,7 +37932,7 @@ - + @@ -37972,7 +37944,7 @@ - + @@ -37983,7 +37955,7 @@ - + @@ -37994,7 +37966,7 @@ - + @@ -38004,7 +37976,7 @@ - + @@ -38014,28 +37986,28 @@ - + - + - + - + - + @@ -38062,95 +38034,95 @@ - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - + - + - - + + - + - + - - + + - + - - + + - + - - + + - - + + - + - + - + - + @@ -38158,60 +38130,60 @@ - + - - - - + + + + - + - + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + @@ -38238,39 +38210,39 @@ - - - - + + + + - + - + - - - - + + + + - - - + + + - + - + - + - + @@ -38278,56 +38250,56 @@ - + - - - + + + - + - + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + @@ -38354,35 +38326,35 @@ - - - + + + - + - - - + + + - - + + - + - + - + - + @@ -38390,127 +38362,127 @@ - + - - + + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - - + + - - - + + + - + - - + + - - - + + + - + - - + + - - - + + + - + - + - + @@ -38537,73 +38509,73 @@ - - + + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - - - + + + - + - + - + - + - + @@ -38611,16 +38583,16 @@ - + - - + + - + @@ -38629,20 +38601,20 @@ - - + + - + - + - + @@ -38669,10 +38641,10 @@ - - + + - + @@ -38680,28 +38652,28 @@ - + - + - + - + - + - - + + @@ -38716,59 +38688,59 @@ - + - + - - + + - - + + - - + + - - + + - + - + - - + + @@ -38776,7 +38748,7 @@ - + @@ -38803,39 +38775,39 @@ - - + + - - + + - + - - + + - - + + - + - + @@ -38846,7 +38818,7 @@ - + @@ -38854,13 +38826,13 @@ - + - + @@ -38868,16 +38840,16 @@ - + - - + + - + @@ -38887,24 +38859,24 @@ - + - + - + - + - + @@ -38912,7 +38884,7 @@ - + @@ -38939,7 +38911,7 @@ - + @@ -38949,38 +38921,38 @@ - + - + - + - + - + - + - + - + - + - + @@ -38988,8 +38960,8 @@ - - + + @@ -39006,83 +38978,83 @@ - + - + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - + - - + + @@ -39091,7 +39063,7 @@ - + @@ -39118,69 +39090,69 @@ - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - + - + - + @@ -39192,109 +39164,109 @@ - + - + - + - + - + - + - + - - + + - + - - - + + + - - + + - - + + - + - + - + - + - + - + - + - + - + @@ -39302,8 +39274,8 @@ - - + + @@ -39320,83 +39292,83 @@ - + - + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - + - - + + @@ -39405,7 +39377,7 @@ - + @@ -39432,69 +39404,69 @@ - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - + - + - + @@ -39506,102 +39478,102 @@ - + - + - + - + - + - + - + - - + + - + - - - + + + - - + + - - + + - + - + - + - + - + - + @@ -39611,9 +39583,9 @@ - + - + @@ -39629,15 +39601,15 @@ - + - - + + @@ -39646,69 +39618,69 @@ - + - + - + - + - + - + - + - + - + - + @@ -39716,15 +39688,15 @@ - + - - + + @@ -39733,7 +39705,7 @@ - + @@ -39759,11 +39731,11 @@ - + - + - + @@ -39777,7 +39749,7 @@ - + @@ -39786,62 +39758,62 @@ - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + @@ -39850,7 +39822,7 @@ - + @@ -39877,16 +39849,16 @@ - + - + - - + + @@ -39895,34 +39867,34 @@ - - + + - + - + - + - + - + - - + + @@ -39937,59 +39909,59 @@ - + - + - - + + - - + + - - + + - - + + - + - + - - + + @@ -39997,7 +39969,7 @@ - + @@ -40024,39 +39996,39 @@ - - + + - - + + - + - - + + - - + + - + - + @@ -40067,7 +40039,7 @@ - + @@ -40075,13 +40047,13 @@ - + - + @@ -40089,16 +40061,16 @@ - + - - + + - + @@ -40108,24 +40080,24 @@ - + - + - + - + - + @@ -40133,7 +40105,7 @@ - + @@ -40160,7 +40132,7 @@ - + @@ -40170,38 +40142,38 @@ - + - + - + - + - + - + - + - + - + - + @@ -40209,8 +40181,8 @@ - - + + @@ -40227,83 +40199,83 @@ - + - + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - + - - + + @@ -40312,7 +40284,7 @@ - + @@ -40339,69 +40311,69 @@ - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - + - + - + @@ -40413,109 +40385,109 @@ - + - + - + - + - + - + - + - - + + - + - - - + + + - - + + - - + + - + - + - + - + - + - + - + - + - + @@ -40523,8 +40495,8 @@ - - + + @@ -40541,83 +40513,83 @@ - + - + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - + - - + + @@ -40626,7 +40598,7 @@ - + @@ -40653,69 +40625,69 @@ - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - + - + - + @@ -40727,102 +40699,102 @@ - + - + - + - + - + - + - + - - + + - + - - - + + + - - + + - - + + - + - + - + - + - + - + @@ -40832,9 +40804,9 @@ - + - + @@ -40850,15 +40822,15 @@ - + - - + + @@ -40867,69 +40839,69 @@ - + - + - + - + - + - + - + - + - + - + @@ -40937,15 +40909,15 @@ - + - - + + @@ -40954,7 +40926,7 @@ - + @@ -40980,11 +40952,11 @@ - + - + - + @@ -40997,22 +40969,22 @@ - - + + - + - + - + @@ -41021,48 +40993,48 @@ - + - + - + - + - + - - + + - - + + - - + + - + @@ -41071,7 +41043,7 @@ - + @@ -41098,16 +41070,16 @@ - + - + - - + + @@ -41116,16 +41088,16 @@ - - + + - + - + @@ -41269,69 +41241,69 @@ - + - - + + - + - - - + + + - - + + - - + + - + - + - + - + - + @@ -41475,60 +41447,60 @@ - + - - + + - + - - - + + + - - + + - - + + - + - + - + @@ -41551,9 +41523,9 @@ - - - + + + @@ -41582,7 +41554,7 @@ - + @@ -41595,200 +41567,200 @@ - - - - + - - - + + + - - - - - - - - - - - - + + + + + + + + + - - + + - - - - - - - + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - + - + - + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - + - - + + - - + + - - - + + + - - + + - + - + - + - + - + - + - + - + - + @@ -41797,223 +41769,223 @@ - + - + - + - + - + - - + + - + - + - - - + + + - + - + - - - + + + - - - - + + + + - - + + - - + + - + - - + + - + - - + + - + - + - + - + - + - - - + + + - - - + + + - - + + - - + + - - + + - + - + - + - + - + - + - - - + + + - - - + + + - - + + - - + + - - + + - + - + - + - - + + @@ -42025,258 +41997,258 @@ - - + + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - - + + - - - + + + - - - - + + + + - + - - + + - + - - + + - + - + - + - + - - + + - + - - - - + + + + - - - + + + - - + + - - + + - + - - + + - + - - + + - + - + - + - + - - + + - + - - - - + + + + - - - + + + - - + + - - + + - + - - + + - + @@ -42285,30 +42257,30 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - + + + - - - + + + @@ -42324,8 +42296,8 @@ - - + + @@ -42342,8 +42314,8 @@ - - + + @@ -42369,32 +42341,32 @@ - + - + - + - + - + - + @@ -42404,17 +42376,17 @@ - + - + - + @@ -42432,32 +42404,32 @@ - + - + - + - + - + - + @@ -42494,165 +42466,165 @@ - - - + + + - + - - - + + + - + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -42661,116 +42633,119 @@ - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - + @@ -42780,7 +42755,7 @@ - + @@ -42789,263 +42764,263 @@ - + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - + - + - + - + - + - + - - + + - + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - + - - + + - + - - + + - + - + - + - + - + - + - - + + - + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - + - - + + - + @@ -43054,532 +43029,532 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + @@ -43587,19 +43562,19 @@ - - - - - - + - - - - - - + + + + + + + + + + + @@ -43608,42 +43583,42 @@ - + - + - + - + - + - + @@ -43655,307 +43630,307 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -43964,23 +43939,23 @@ - - - - - - + + + + + + - - + + - - - - - + + + + + @@ -43997,37 +43972,37 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -44036,109 +44011,109 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + @@ -44147,25 +44122,25 @@ - - + + - + - - + + - + - + @@ -44173,70 +44148,70 @@ - - + + - - + + - - + + - + - + - - - + + + - - + + - - + + - + - + @@ -44245,38 +44220,38 @@ - + - + - + - - + + - - + + - + @@ -44284,25 +44259,25 @@ - - + + - + - - + + - + - + @@ -44311,28 +44286,28 @@ - + - + - + - + @@ -44340,7 +44315,7 @@ - + @@ -44349,7 +44324,7 @@ - + @@ -44357,20 +44332,20 @@ - + - + - + @@ -44381,106 +44356,106 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -44489,50 +44464,50 @@ - - + + - - + + - + - + - + - + - + - + - + - + @@ -44541,9 +44516,9 @@ - + - + @@ -44552,55 +44527,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -44609,50 +44584,50 @@ - - + + - - + + - + - + - + - + - + - + - + - + @@ -44661,9 +44636,9 @@ - + - + @@ -44672,65 +44647,65 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -44738,9 +44713,9 @@ - + - + @@ -44748,57 +44723,57 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + @@ -44806,9 +44781,9 @@ - + - + @@ -44816,9 +44791,9 @@ - + - + @@ -44826,9 +44801,9 @@ - + - + @@ -44836,33 +44811,33 @@ - + - + - + - + - + - + - + - + @@ -44870,21 +44845,21 @@ - - - - + + + + - + - - + + - - + + @@ -44895,7 +44870,7 @@ - + @@ -44949,104 +44924,104 @@ - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -45054,16 +45029,16 @@ - + - - + + - - + + @@ -45072,475 +45047,475 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - - - + + + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - - - - - + + + + + @@ -45548,1226 +45523,1226 @@ - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - + + + - + - + - - + + - + - - + + - - - + + + - + - + - + - + - + - + - - - - + + + + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - + + + - + - + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - + + + + - + - + - + - - + + - - + + - - + + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - - - + + + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + - + - + - + - + - + - + - + - - - - + + + + - + - - + + - - - - + + + + - + - + - - - - + + + + - - + + - + - - - + + + - - + + - - + + - - + + - - - - + + + + - + - + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - + + + + - + - - - - - + + + + + - - + + - + - - - - + + + + - + - - + + - + - - + + - + @@ -46776,121 +46751,121 @@ - + - - + + - - - + + + - + - + - + - + - - - + + + - - + + - - + + - - + + - - - - + + + + - - + + - - - - - - - - - - - - - - - + + + + + + + - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + @@ -46908,9 +46883,9 @@ - - - + + + @@ -46918,99 +46893,99 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -47018,7 +46993,7 @@ - + @@ -47027,333 +47002,333 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + @@ -47366,30 +47341,30 @@ - + - + - + - + - + - + - + - + - + @@ -47397,102 +47372,102 @@ - + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + - + - + @@ -47503,17 +47478,17 @@ - - - - - - - - - + + + + + + + + + - + @@ -47585,83 +47560,83 @@ - + - + - + - - + + - + - + - - + + - + - + - + - - + + - - + + - + - - + + - + - + @@ -47669,7 +47644,7 @@ - + @@ -47679,7 +47654,7 @@ - + @@ -47687,7 +47662,7 @@ - + @@ -47695,32 +47670,32 @@ - + - + - - + + - + - + @@ -47741,13 +47716,13 @@ - + - + @@ -47760,49 +47735,49 @@ - + - + - - + + - - - + + + - - + + - - + + - - + + - + @@ -47883,7 +47858,7 @@ - + @@ -47964,7 +47939,7 @@ - + @@ -48105,10 +48080,10 @@ - - - - + + + + @@ -48139,43 +48114,43 @@ - + - + - + - + - + - + - + - + - + @@ -48213,16 +48188,16 @@ - - - - - - + + + + + + - + - + @@ -48232,9 +48207,9 @@ - + - + @@ -48242,10 +48217,10 @@ - - - - + + + + diff --git a/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi b/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi index 41ea5915..b03c06e4 100644 --- a/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi +++ b/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi @@ -1968,7 +1968,7 @@ - + diff --git a/tests/data/test-read-write/test2.xml b/tests/data/test-read-write/test2.xml index e6e19569..ab768241 100644 --- a/tests/data/test-read-write/test2.xml +++ b/tests/data/test-read-write/test2.xml @@ -1,14 +1,14 @@ - - - - + - + + + + diff --git a/tests/data/test-read-write/test28-without-std-fns-ref.xml b/tests/data/test-read-write/test28-without-std-fns-ref.xml index 444de0f8..e14f1e35 100644 --- a/tests/data/test-read-write/test28-without-std-fns-ref.xml +++ b/tests/data/test-read-write/test28-without-std-fns-ref.xml @@ -219,115 +219,22 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + @@ -352,43 +259,43 @@ - - + + - - + + - + - + - - + + - + - + @@ -396,14 +303,14 @@ - + - - - + + + @@ -417,7 +324,7 @@ - + @@ -431,7 +338,7 @@ - + @@ -445,7 +352,7 @@ - + @@ -459,7 +366,7 @@ - + @@ -474,6 +381,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -829,7 +830,6 @@ - diff --git a/tests/data/test-read-write/test28-without-std-vars-ref.xml b/tests/data/test-read-write/test28-without-std-vars-ref.xml index ae4fe099..7c21af9d 100644 --- a/tests/data/test-read-write/test28-without-std-vars-ref.xml +++ b/tests/data/test-read-write/test28-without-std-vars-ref.xml @@ -219,105 +219,22 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + @@ -342,43 +259,43 @@ - - + + - - + + - + - + - - + + - + - + @@ -386,19 +303,103 @@ - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -754,7 +755,6 @@ - diff --git a/tests/data/test-symtab/basic/ofov_function.whitelist b/tests/data/test-symtab/basic/ofov_function.whitelist deleted file mode 100644 index 893accc1..00000000 --- a/tests/data/test-symtab/basic/ofov_function.whitelist +++ /dev/null @@ -1,2 +0,0 @@ -[abi_whitelist] - exported_function diff --git a/tests/test-abidiff-exit.cc b/tests/test-abidiff-exit.cc index 2e6c4d3b..88de4131 100644 --- a/tests/test-abidiff-exit.cc +++ b/tests/test-abidiff-exit.cc @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -47,6 +48,8 @@ struct InOutSpec const char* in_elfv0_path; const char* in_elfv1_path; const char* in_suppr_path; + const char* in_elfv0_headers_dirs; + const char* in_elfv1_headers_dirs; const char* abidiff_options; abidiff_status status; const char* in_report_path; @@ -59,6 +62,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test1-voffset-change-v0.o", "data/test-abidiff-exit/test1-voffset-change-v1.o", "", + "", + "", "--no-default-suppression --no-show-locs", abigail::tools_utils::ABIDIFF_ABI_CHANGE | abigail::tools_utils::ABIDIFF_ABI_INCOMPATIBLE_CHANGE, @@ -69,6 +74,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test1-voffset-change-v0.o", "data/test-abidiff-exit/test1-voffset-change-v1.o", "data/test-abidiff-exit/test1-voffset-change.abignore", + "", + "", "--no-default-suppression --no-show-locs", abigail::tools_utils::ABIDIFF_OK, "data/test-abidiff-exit/test1-voffset-change-report1.txt", @@ -78,6 +85,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test2-filtered-removed-fns-v0.o", "data/test-abidiff-exit/test2-filtered-removed-fns-v1.o", "", + "", + "", "--no-default-suppression --no-show-locs", abigail::tools_utils::ABIDIFF_ABI_CHANGE | abigail::tools_utils::ABIDIFF_ABI_INCOMPATIBLE_CHANGE, @@ -88,6 +97,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test2-filtered-removed-fns-v0.o", "data/test-abidiff-exit/test2-filtered-removed-fns-v1.o", "data/test-abidiff-exit/test2-filtered-removed-fns.abignore", + "", + "", "--no-default-suppression --no-show-locs", abigail::tools_utils::ABIDIFF_OK, "data/test-abidiff-exit/test2-filtered-removed-fns-report1.txt", @@ -98,6 +109,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-loc-v1.bi", "", "", + "", + "", abigail::tools_utils::ABIDIFF_ABI_CHANGE, "data/test-abidiff-exit/test-loc-with-locs-report.txt", "output/test-abidiff-exit/test-loc-with-locs-report.txt" @@ -106,6 +119,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-loc-v0.bi", "data/test-abidiff-exit/test-loc-v1.bi", "", + "", + "", "--no-show-locs", abigail::tools_utils::ABIDIFF_ABI_CHANGE, "data/test-abidiff-exit/test-loc-without-locs-report.txt", @@ -115,6 +130,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-no-stray-comma-v0.o", "data/test-abidiff-exit/test-no-stray-comma-v1.o", "", + "", + "", "--leaf-changes-only", abigail::tools_utils::ABIDIFF_ABI_CHANGE, "data/test-abidiff-exit/test-no-stray-comma-report.txt", @@ -124,6 +141,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-leaf-stats-v0.o", "data/test-abidiff-exit/test-leaf-stats-v1.o", "", + "", + "", "--no-show-locs --leaf-changes-only", abigail::tools_utils::ABIDIFF_ABI_CHANGE, "data/test-abidiff-exit/test-leaf-stats-report.txt", @@ -133,6 +152,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-leaf-more-v0.o", "data/test-abidiff-exit/test-leaf-more-v1.o", "", + "", + "", "--no-show-locs --leaf-changes-only", abigail::tools_utils::ABIDIFF_ABI_CHANGE | abigail::tools_utils::ABIDIFF_ABI_INCOMPATIBLE_CHANGE, @@ -143,6 +164,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-leaf-fun-type-v0.o", "data/test-abidiff-exit/test-leaf-fun-type-v1.o", "", + "", + "", "--no-show-locs --leaf-changes-only", abigail::tools_utils::ABIDIFF_ABI_CHANGE, "data/test-abidiff-exit/test-leaf-fun-type-report.txt", @@ -152,6 +175,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-leaf-redundant-v0.o", "data/test-abidiff-exit/test-leaf-redundant-v1.o", "", + "", + "", "--leaf-changes-only", abigail::tools_utils::ABIDIFF_ABI_CHANGE, "data/test-abidiff-exit/test-leaf-redundant-report.txt", @@ -161,6 +186,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-leaf-peeling-v0.o", "data/test-abidiff-exit/test-leaf-peeling-v1.o", "", + "", + "", "--leaf-changes-only", abigail::tools_utils::ABIDIFF_ABI_CHANGE, "data/test-abidiff-exit/test-leaf-peeling-report.txt", @@ -170,6 +197,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-leaf-peeling-v0.o", "data/test-abidiff-exit/test-leaf-peeling-v1.o", "", + "", + "", "--leaf-changes-only --flag-indirect", abigail::tools_utils::ABIDIFF_ABI_CHANGE, "data/test-abidiff-exit/test-leaf-peeling-report-indirect.txt", @@ -179,6 +208,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-leaf-cxx-members-v0.o", "data/test-abidiff-exit/test-leaf-cxx-members-v1.o", "", + "", + "", "--leaf-changes-only", abigail::tools_utils::ABIDIFF_ABI_CHANGE | abigail::tools_utils::ABIDIFF_ABI_INCOMPATIBLE_CHANGE, @@ -190,6 +221,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-member-size-v1.o", "", "", + "", + "", abigail::tools_utils::ABIDIFF_ABI_CHANGE, "data/test-abidiff-exit/test-member-size-report0.txt", "output/test-abidiff-exit/test-member-size-report0.txt" @@ -198,6 +231,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-member-size-v0.o", "data/test-abidiff-exit/test-member-size-v1.o", "", + "", + "", "--leaf-changes-only", abigail::tools_utils::ABIDIFF_ABI_CHANGE, "data/test-abidiff-exit/test-member-size-report1.txt", @@ -207,6 +242,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-decl-struct-v0.o", "data/test-abidiff-exit/test-decl-struct-v1.o", "", + "", + "", "--harmless", abigail::tools_utils::ABIDIFF_ABI_CHANGE, "data/test-abidiff-exit/test-decl-struct-report.txt", @@ -217,6 +254,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-fun-param-v1.abi", "", "", + "", + "", abigail::tools_utils::ABIDIFF_ABI_CHANGE, "data/test-abidiff-exit/test-fun-param-report.txt", "output/test-abidiff-exit/test-fun-param-report.txt" @@ -225,6 +264,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-decl-enum-v0.o", "data/test-abidiff-exit/test-decl-enum-v1.o", "", + "", + "", "--harmless", abigail::tools_utils::ABIDIFF_ABI_CHANGE, "data/test-abidiff-exit/test-decl-enum-report.txt", @@ -235,6 +276,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-decl-enum-v1.o", "", "", + "", + "", abigail::tools_utils::ABIDIFF_OK, "data/test-abidiff-exit/test-decl-enum-report-2.txt", "output/test-abidiff-exit/test-decl-enum-report-2.txt" @@ -243,6 +286,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-decl-enum-v0.o", "data/test-abidiff-exit/test-decl-enum-v1.o", "", + "", + "", "--leaf-changes-only", abigail::tools_utils::ABIDIFF_OK, "data/test-abidiff-exit/test-decl-enum-report-3.txt", @@ -252,6 +297,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-net-change-v0.o", "data/test-abidiff-exit/test-net-change-v1.o", "", + "", + "", "--no-default-suppression --no-show-locs", abigail::tools_utils::ABIDIFF_ABI_CHANGE | abigail::tools_utils::ABIDIFF_ABI_INCOMPATIBLE_CHANGE, @@ -262,6 +309,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-net-change-v0.o", "data/test-abidiff-exit/test-net-change-v1.o", "data/test-abidiff-exit/test-net-change.abignore", + "", + "", "--no-default-suppression --no-show-locs", abigail::tools_utils::ABIDIFF_OK, "data/test-abidiff-exit/test-net-change-report1.txt", @@ -271,6 +320,8 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-net-change-v0.o", "data/test-abidiff-exit/test-net-change-v1.o", "", + "", + "", "--no-default-suppression --no-show-locs --leaf-changes-only", abigail::tools_utils::ABIDIFF_ABI_CHANGE | abigail::tools_utils::ABIDIFF_ABI_INCOMPATIBLE_CHANGE, @@ -281,53 +332,123 @@ InOutSpec in_out_specs[] = "data/test-abidiff-exit/test-net-change-v0.o", "data/test-abidiff-exit/test-net-change-v1.o", "data/test-abidiff-exit/test-net-change.abignore", + "", + "", "--no-default-suppression --no-show-locs --leaf-changes-only", abigail::tools_utils::ABIDIFF_OK, "data/test-abidiff-exit/test-net-change-report3.txt", "output/test-abidiff-exit/test-net-change-report3.txt" }, + { + "data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.o", + "data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.o", + "", + "data/test-abidiff-exit/test-headers-dirs/headers-a", + "data/test-abidiff-exit/test-headers-dirs/headers-a", + "--no-default-suppression", + abigail::tools_utils::ABIDIFF_OK, + "data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-1.txt", + "output/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-1.txt" + }, + { + "data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v0.o", + "data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v1.o", + "", + "data/test-abidiff-exit/test-headers-dirs/headers-a, " + "data/test-abidiff-exit/test-headers-dirs/headers-b", + "data/test-abidiff-exit/test-headers-dirs/headers-a, " + "data/test-abidiff-exit/test-headers-dirs/headers-b", + "--no-default-suppression", + abigail::tools_utils::ABIDIFF_ABI_CHANGE, + "data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-2.txt", + "output/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-2.txt" + }, + { + "data/test-abidiff-exit/test-non-leaf-array-v0.o", + "data/test-abidiff-exit/test-non-leaf-array-v1.o", + "", + "", + "", + "--leaf-changes-only", + abigail::tools_utils::ABIDIFF_ABI_CHANGE, + "data/test-abidiff-exit/test-non-leaf-array-report.txt", + "output/test-abidiff-exit/test-non-leaf-array-report.txt" + }, { "data/test-abidiff-exit/test-missing-alias.abi", "data/test-abidiff-exit/test-missing-alias.abi", "data/test-abidiff-exit/test-missing-alias.suppr", "", + "", + "", abigail::tools_utils::ABIDIFF_OK, "data/test-abidiff-exit/test-missing-alias-report.txt", "output/test-abidiff-exit/test-missing-alias-report.txt" }, - {0, 0, 0 ,0, abigail::tools_utils::ABIDIFF_OK, 0, 0} + { + "data/test-abidiff-exit/test-crc-v0.abi", + "data/test-abidiff-exit/test-crc-v1.abi", + "", + "", + "", + "", + abigail::tools_utils::ABIDIFF_ABI_CHANGE, + "data/test-abidiff-exit/test-crc-report.txt", + "output/test-abidiff-exit/test-crc-report.txt" + }, + {0, 0, 0 ,0, 0, 0, abigail::tools_utils::ABIDIFF_OK, 0, 0} }; +/// Prefix the strings in a vector of string. +/// +/// @param strings the strings to prefix. +/// +/// @param prefix the prefix to use. +static void +do_prefix_strings(std::vector &strings, + const std::string& prefix) +{ + for (std::vector::size_type i = 0; i < strings.size(); ++i) + strings[i] = prefix + strings[i]; +} + int main() { using std::string; + using std::vector; using std::cerr; using abigail::tests::get_src_dir; using abigail::tests::get_build_dir; using abigail::tools_utils::ensure_parent_dir_created; + using abigail::tools_utils::split_string; using abigail::tools_utils::abidiff_status; bool is_ok = true; string in_elfv0_path, in_elfv1_path, in_suppression_path, abidiff_options, abidiff, cmd, ref_diff_report_path, out_diff_report_path; + vector in_elfv0_headers_dirs, in_elfv1_headers_dirs; + string source_dir_prefix = string(get_src_dir()) + "/tests/"; + string build_dir_prefix = string(get_build_dir()) + "/tests/"; for (InOutSpec* s = in_out_specs; s->in_elfv0_path; ++s) { - in_elfv0_path = string(get_src_dir()) + "/tests/" + s->in_elfv0_path; - in_elfv1_path = string(get_src_dir()) + "/tests/" + s->in_elfv1_path; + in_elfv0_path = source_dir_prefix + s->in_elfv0_path; + in_elfv1_path = source_dir_prefix + s->in_elfv1_path; + split_string(s->in_elfv0_headers_dirs, ",", in_elfv0_headers_dirs); + split_string(s->in_elfv1_headers_dirs, ",", in_elfv1_headers_dirs); + do_prefix_strings(in_elfv0_headers_dirs, source_dir_prefix); + do_prefix_strings(in_elfv1_headers_dirs, source_dir_prefix); + if (s->in_suppr_path && strcmp(s->in_suppr_path, "")) - in_suppression_path = - string(get_src_dir()) + "/tests/" + s->in_suppr_path; + in_suppression_path = source_dir_prefix + s->in_suppr_path; else in_suppression_path.clear(); abidiff_options = s->abidiff_options; - ref_diff_report_path = - string(get_src_dir()) + "/tests/" + s->in_report_path; - out_diff_report_path = - string(get_build_dir()) + "/tests/" + s->out_report_path; + ref_diff_report_path = source_dir_prefix + s->in_report_path; + out_diff_report_path = build_dir_prefix + s->out_report_path; if (!ensure_parent_dir_created(out_diff_report_path)) { @@ -341,6 +462,18 @@ main() if (!abidiff_options.empty()) abidiff += " " + abidiff_options; + if (!in_elfv0_headers_dirs.empty()) + for (vector::const_iterator s = in_elfv0_headers_dirs.begin(); + s != in_elfv0_headers_dirs.end(); + ++s) + abidiff += " --headers-dir1 " + *s; + + if (!in_elfv1_headers_dirs.empty()) + for (vector::const_iterator s = in_elfv1_headers_dirs.begin(); + s != in_elfv1_headers_dirs.end(); + ++s) + abidiff += " --headers-dir2 " + *s; + if (!in_suppression_path.empty()) abidiff += " --suppressions " + in_suppression_path; diff --git a/tests/test-diff-filter.cc b/tests/test-diff-filter.cc index bdf7d41f..26eb34c4 100644 --- a/tests/test-diff-filter.cc +++ b/tests/test-diff-filter.cc @@ -766,6 +766,27 @@ InOutSpec in_out_specs[] = "data/test-diff-filter/test-PR25661-7-report-4.txt", "output/test-diff-filter/test-PR25661-7-report-4.txt", }, + { + "data/test-diff-filter/test-PR26309-v0.o", + "data/test-diff-filter/test-PR26309-v1.o", + "--no-default-suppression --leaf-changes-only", + "data/test-diff-filter/test-PR26309-report-0.txt", + "output/test-diff-filter/test-PR26309-report-0.txt", + }, + { + "data/test-diff-filter/test-PR26739-v0.o", + "data/test-diff-filter/test-PR26739-v1.o", + "--no-default-suppression", + "data/test-diff-filter/test-PR26739-report-0.txt", + "output/test-diff-filter/test-PR26739-report-0.txt", + }, + { + "data/test-diff-filter/test-PR26739-2-v0.o", + "data/test-diff-filter/test-PR26739-2-v1.o", + "--no-default-suppression", + "data/test-diff-filter/test-PR26739-2-report-0.txt", + "output/test-diff-filter/test-PR26739-2-report-0.txt", + }, // This should be the last entry {NULL, NULL, NULL, NULL, NULL} }; diff --git a/tests/test-kmi-whitelist.cc b/tests/test-kmi-whitelist.cc index bcc5adee..d0e08f5a 100644 --- a/tests/test-kmi-whitelist.cc +++ b/tests/test-kmi-whitelist.cc @@ -57,6 +57,22 @@ const static std::string whitelist_with_duplicate_entry = std::string(abigail::tests::get_src_dir()) + "/tests/data/test-kmi-whitelist/whitelist-with-duplicate-entry"; +const static std::string symbol_list_with_single_entry + = std::string(abigail::tests::get_src_dir()) + + "/tests/data/test-kmi-whitelist/symbol-list-with-single-entry"; + +const static std::string symbol_list_with_another_single_entry + = std::string(abigail::tests::get_src_dir()) + + "/tests/data/test-kmi-whitelist/symbol-list-with-another-single-entry"; + +const static std::string symbol_list_with_two_sections + = std::string(abigail::tests::get_src_dir()) + + "/tests/data/test-kmi-whitelist/symbol-list-with-two-sections"; + +const static std::string symbol_list_with_duplicate_entry + = std::string(abigail::tests::get_src_dir()) + + "/tests/data/test-kmi-whitelist/symbol-list-with-duplicate-entry"; + void test_suppressions_are_consistent(const suppressions_type& suppr, const std::string& expr) @@ -142,3 +158,65 @@ TEST_CASE("WhitelistWithTwoSections", "[whitelists]") REQUIRE(!suppr.empty()); test_suppressions_are_consistent(suppr, "^(test_symbol1|test_symbol2)$"); } + +TEST_CASE("NoSymbolLists", "[symbol_lists]") +{ + const std::vector abi_symbol_list_paths; + suppressions_type suppr = + gen_suppr_spec_from_kernel_abi_whitelists(abi_symbol_list_paths); + REQUIRE(suppr.empty()); +} + +TEST_CASE("SymbolListWithASingleEntry", "[symbol_lists]") +{ + std::vector abi_symbol_list_paths; + abi_symbol_list_paths.push_back(symbol_list_with_single_entry); + suppressions_type suppr + = gen_suppr_spec_from_kernel_abi_whitelists(abi_symbol_list_paths); + REQUIRE(!suppr.empty()); + test_suppressions_are_consistent(suppr, "^(test_symbol)$"); +} + +TEST_CASE("SymbolListWithADuplicateEntry", "[symbol_lists]") +{ + std::vector abi_symbol_list_paths; + abi_symbol_list_paths.push_back(symbol_list_with_duplicate_entry); + suppressions_type suppr + = gen_suppr_spec_from_kernel_abi_whitelists(abi_symbol_list_paths); + REQUIRE(!suppr.empty()); + test_suppressions_are_consistent(suppr, "^(test_symbol)$"); +} + +TEST_CASE("TwoSymbolLists", "[symbol_lists]") +{ + std::vector abi_symbol_list_paths; + abi_symbol_list_paths.push_back(symbol_list_with_single_entry); + abi_symbol_list_paths.push_back(symbol_list_with_another_single_entry); + suppressions_type suppr = + gen_suppr_spec_from_kernel_abi_whitelists(abi_symbol_list_paths); + REQUIRE(!suppr.empty()); + test_suppressions_are_consistent(suppr, + "^(test_another_symbol|test_symbol)$"); +} + +TEST_CASE("TwoSymbolListsWithDuplicates", "[symbol_lists]") +{ + std::vector abi_symbol_list_paths; + abi_symbol_list_paths.push_back(symbol_list_with_duplicate_entry); + abi_symbol_list_paths.push_back(symbol_list_with_another_single_entry); + suppressions_type suppr + = gen_suppr_spec_from_kernel_abi_whitelists(abi_symbol_list_paths); + REQUIRE(!suppr.empty()); + test_suppressions_are_consistent(suppr, + "^(test_another_symbol|test_symbol)$"); +} + +TEST_CASE("SymbolListWithTwoSections", "[symbol_lists]") +{ + std::vector abi_symbol_list_paths; + abi_symbol_list_paths.push_back(symbol_list_with_two_sections); + suppressions_type suppr + = gen_suppr_spec_from_kernel_abi_whitelists(abi_symbol_list_paths); + REQUIRE(!suppr.empty()); + test_suppressions_are_consistent(suppr, "^(test_symbol1|test_symbol2)$"); +} diff --git a/tests/test-read-dwarf.cc b/tests/test-read-dwarf.cc index bfd66eec..63232dc5 100644 --- a/tests/test-read-dwarf.cc +++ b/tests/test-read-dwarf.cc @@ -412,6 +412,27 @@ InOutSpec in_out_specs[] = "data/test-read-dwarf/PR26261/PR26261-exe.abi", "output/test-read-dwarf/PR26261/PR26261-exe.abi", }, + { + "data/test-read-dwarf/test-PR26568-1.o", + "", + SEQUENCE_TYPE_ID_STYLE, + "data/test-read-dwarf/test-PR26568-1.o.abi", + "output/test-read-dwarf/test-PR26568-1.o.abi", + }, + { + "data/test-read-dwarf/test-PR26568-2.o", + "", + SEQUENCE_TYPE_ID_STYLE, + "data/test-read-dwarf/test-PR26568-2.o.abi", + "output/test-read-dwarf/test-PR26568-2.o.abi", + }, + { + "data/test-read-dwarf/test-libandroid.so", + "", + HASH_TYPE_ID_STYLE, + "data/test-read-dwarf/test-libandroid.so.abi", + "output/test-read-dwarf/test-libandroid.so.abi", + }, // This should be the last entry. {NULL, NULL, SEQUENCE_TYPE_ID_STYLE, NULL, NULL} }; diff --git a/tests/update-test-output.py b/tests/update-test-output.py index 4017dd02..9f8dd032 100755 --- a/tests/update-test-output.py +++ b/tests/update-test-output.py @@ -31,7 +31,7 @@ def main(): try: opts, args = getopt.getopt(sys.argv[1:], "hi", ["help"]) except getopt.GetoptError as err: - print str(err) + print(str(err)) display_usage() for opt, arg in opts: diff --git a/tools/abidiff.cc b/tools/abidiff.cc index f9cd7113..170dc967 100644 --- a/tools/abidiff.cc +++ b/tools/abidiff.cc @@ -78,9 +78,9 @@ struct options vector drop_var_regex_patterns; vector keep_fn_regex_patterns; vector keep_var_regex_patterns; - string headers_dir1; + vector headers_dirs1; vector header_files1; - string headers_dir2; + vector headers_dirs2; vector header_files2; bool drop_private_types; bool linux_kernel_mode; @@ -322,7 +322,9 @@ parse_command_line(int argc, char* argv[], options& opts) opts.wrong_option = argv[i]; return true; } - opts.headers_dir1 = argv[j]; + // The user can specify several header files directories for + // the first binary. + opts.headers_dirs1.push_back(argv[j]); ++i; } else if (!strcmp(argv[i], "--header-file1") @@ -348,7 +350,9 @@ parse_command_line(int argc, char* argv[], options& opts) opts.wrong_option = argv[i]; return true; } - opts.headers_dir2 = argv[j]; + // The user can specify several header files directories for + // the first binary. + opts.headers_dirs2.push_back(argv[j]); ++i; } else if (!strcmp(argv[i], "--header-file2") @@ -727,22 +731,22 @@ set_diff_context_from_opts(diff_context_sptr ctxt, load_default_user_suppressions(supprs); } - if (!opts.headers_dir1.empty() || !opts.header_files1.empty()) + if (!opts.headers_dirs1.empty() || !opts.header_files1.empty()) { // Generate suppression specification to avoid showing ABI // changes on types that are not defined in public headers. suppression_sptr suppr = - gen_suppr_spec_from_headers(opts.headers_dir1, opts.header_files1); + gen_suppr_spec_from_headers(opts.headers_dirs1, opts.header_files1); if (suppr) ctxt->add_suppression(suppr); } - if (!opts.headers_dir2.empty() || !opts.header_files2.empty()) + if (!opts.headers_dirs2.empty() || !opts.header_files2.empty()) { // Generate suppression specification to avoid showing ABI // changes on types that are not defined in public headers. suppression_sptr suppr = - gen_suppr_spec_from_headers(opts.headers_dir2, opts.header_files2); + gen_suppr_spec_from_headers(opts.headers_dirs2, opts.header_files2); if (suppr) ctxt->add_suppression(suppr); } @@ -777,7 +781,7 @@ set_suppressions(ReadContextType& read_ctxt, const options& opts) read_suppressions(*i, supprs); if (read_context_get_path(read_ctxt) == opts.file1 - && (!opts.headers_dir1.empty() || !opts.header_files1.empty())) + && (!opts.headers_dirs1.empty() || !opts.header_files1.empty())) { // Generate suppression specification to avoid showing ABI // changes on types that are not defined in public headers for @@ -787,7 +791,7 @@ set_suppressions(ReadContextType& read_ctxt, const options& opts) // corpus loading, they are going to be dropped from the // internal representation altogether. suppression_sptr suppr = - gen_suppr_spec_from_headers(opts.headers_dir1, opts.header_files1); + gen_suppr_spec_from_headers(opts.headers_dirs1, opts.header_files1); if (suppr) { if (opts.drop_private_types) @@ -797,7 +801,7 @@ set_suppressions(ReadContextType& read_ctxt, const options& opts) } if (read_context_get_path(read_ctxt) == opts.file2 - && (!opts.headers_dir2.empty() || !opts.header_files2.empty())) + && (!opts.headers_dirs2.empty() || !opts.header_files2.empty())) { // Generate suppression specification to avoid showing ABI // changes on types that are not defined in public headers for @@ -807,7 +811,7 @@ set_suppressions(ReadContextType& read_ctxt, const options& opts) // corpus loading, they are going to be dropped from the // internal representation altogether. suppression_sptr suppr = - gen_suppr_spec_from_headers(opts.headers_dir2, opts.header_files2); + gen_suppr_spec_from_headers(opts.headers_dirs2, opts.header_files2); if (suppr) { if (opts.drop_private_types) diff --git a/tools/abidw.cc b/tools/abidw.cc index fe2f3e22..94354f6b 100644 --- a/tools/abidw.cc +++ b/tools/abidw.cc @@ -90,7 +90,7 @@ struct options string out_file_path; vector di_root_paths; vector prepared_di_root_paths; - string headers_dir; + vector headers_dirs; vector header_files; string vmlinux; vector suppression_paths; @@ -239,7 +239,7 @@ parse_command_line(int argc, char* argv[], options& opts) int j = i + 1; if (j >= argc) return false; - opts.headers_dir = argv[j]; + opts.headers_dirs.push_back(argv[j]); ++i; } else if (!strcmp(argv[i], "--header-file") @@ -445,7 +445,7 @@ set_suppressions(read_context& read_ctxt, options& opts) read_suppressions(*i, supprs); suppression_sptr suppr = - abigail::tools_utils::gen_suppr_spec_from_headers(opts.headers_dir, + abigail::tools_utils::gen_suppr_spec_from_headers(opts.headers_dirs, opts.header_files); if (suppr) {