[Lldb-commits] [lldb] Fix ProcessElfCore::FindModuleUUID() so it work with symlinks. (PR #205235)
Greg Clayton via lldb-commits
lldb-commits at lists.llvm.org
Tue Jun 23 17:56:04 PDT 2026
https://github.com/clayborg updated https://github.com/llvm/llvm-project/pull/205235
>From bb6a6b438bb94262616ca981c9968203eb680b64 Mon Sep 17 00:00:00 2001
From: Greg Clayton <gclayton at fb.com>
Date: Mon, 22 Jun 2026 18:47:21 -0700
Subject: [PATCH 1/3] Fix ProcessElfCore::FindModuleUUID() so it work with
symlinks.
ProcessElfCore was reading the NT_FILE list and using that to help
FindModuleUUID to provide UUID information when loading core files. The
NT_FILE list contains resolved paths only, while the
DynamicLoaderPOSIXDYLD plug-in was using paths found in the r_debug
structure which contains a linked list of all of the shared libraries in
a process. The issue was these paths could be symlinks which would cause
ProcessELFCore::FindModuleUUID(...) to fail because the paths wouldn't
match up. This led to the ProcessELFCore often not being able to provide
UUIDs for shared libraries and cause the incorrect binaries to be loaded
from the current machine even when the shared library UUIDs don't match.
The solution was to add the ability for a ModuleSpec to contain a load
address for the shared library. This allows ProcessELFCore to uniquely
identify a library regardless of the name used in NT_FILE. We can now
correctly supply the UUID from the .gnu-build-id to any binaries which
use symlinks when linking, but have differing resolved paths to the
libraries.
The process virtual function for finding a UUID was changed from:
virtual lldb_private::UUID FindModuleUUID(const llvm::StringRef path);
to:
virtual bool FindModuleUUID(ModuleSpec &spec);
to allow Process::FindModuleUUID to rely on other data in the ModuleSpec
since the path isn't enough.
We will be able to use the ModuleSpec's load address for creating a
module from a ModuleSpec, but that isn't in this PR.
---
lldb/include/lldb/Core/ModuleSpec.h | 31 ++
lldb/include/lldb/Target/DynamicLoader.h | 4 +-
lldb/include/lldb/Target/Process.h | 13 +-
lldb/source/Core/DynamicLoader.cpp | 17 +-
.../POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp | 4 +-
.../Process/elf-core/ProcessElfCore.cpp | 46 ++-
.../Plugins/Process/elf-core/ProcessElfCore.h | 2 +-
lldb/source/Target/Process.cpp | 4 +-
.../postmortem/elf-core/TestLinuxCore.py | 361 ++++++++++--------
.../elf-core/elf-dyld-nt-file-mismatch.yaml | 135 +++++++
10 files changed, 434 insertions(+), 183 deletions(-)
create mode 100644 lldb/test/API/functionalities/postmortem/elf-core/elf-dyld-nt-file-mismatch.yaml
diff --git a/lldb/include/lldb/Core/ModuleSpec.h b/lldb/include/lldb/Core/ModuleSpec.h
index 0306dfc280e57..62ffa025fbf00 100644
--- a/lldb/include/lldb/Core/ModuleSpec.h
+++ b/lldb/include/lldb/Core/ModuleSpec.h
@@ -118,6 +118,15 @@ class ModuleSpec {
void SetObjectSize(uint64_t object_size) { m_object_size = object_size; }
+ /// Get the load address of a module in process memory. If the optional
+ /// has no value, there is no load address for this module spec.
+ std::optional<lldb::addr_t> GetLoadAddress() const { return m_load_addr; }
+
+ /// Set the load address of a module in process memory.
+ void SetLoadAddress(lldb::addr_t addr) { m_load_addr = addr; }
+
+ void ClearLoadAddress() { m_load_addr.reset(); }
+
llvm::sys::TimePoint<> &GetObjectModificationTime() {
return m_object_mod_time;
}
@@ -159,9 +168,11 @@ class ModuleSpec {
m_object_offset = 0;
m_object_size = 0;
m_source_mappings.Clear(false);
+ m_extractor_sp.reset();
m_object_mod_time = llvm::sys::TimePoint<>();
m_target_wp.reset();
m_platform_wp.reset();
+ m_load_addr.reset();
}
explicit operator bool() const {
@@ -181,6 +192,8 @@ class ModuleSpec {
return true;
if (m_object_mod_time != llvm::sys::TimePoint<>())
return true;
+ if (m_load_addr.has_value())
+ return true;
return false;
}
@@ -245,6 +258,13 @@ class ModuleSpec {
strm.PutCString(", ");
strm.Format("object_mod_time = {0:x+}",
uint64_t(llvm::sys::toTimeT(m_object_mod_time)));
+ dumped_something = true;
+ }
+ if (m_load_addr.has_value()) {
+ if (dumped_something)
+ strm.PutCString(", ");
+ strm.Printf("load_addr = 0x%" PRIx64, m_load_addr.value());
+ dumped_something = true;
}
}
@@ -280,6 +300,11 @@ class ModuleSpec {
return false;
}
}
+ // Only match on load address if they both have a valid value.
+ if (m_load_addr.has_value() &&
+ match_module_spec.m_load_addr.has_value() &&
+ match_module_spec.GetLoadAddress() != GetLoadAddress())
+ return false;
return true;
}
@@ -303,6 +328,12 @@ class ModuleSpec {
llvm::sys::TimePoint<> m_object_mod_time;
mutable PathMappingList m_source_mappings;
lldb::DataExtractorSP m_extractor_sp = {};
+ /// The load address of the module in a process. This allows for modules
+ /// to be uniquely identified and created by reading an object file from
+ /// memory when we can't locate the correct file on disk. Useful for post
+ /// mortem debugging when we might not be able to locate symbols for the
+ /// core file, but we can read the object file from memory.
+ std::optional<lldb::addr_t> m_load_addr = std::nullopt;
};
class ModuleSpecList {
diff --git a/lldb/include/lldb/Target/DynamicLoader.h b/lldb/include/lldb/Target/DynamicLoader.h
index 784da7567fc4a..e85036c2887d1 100644
--- a/lldb/include/lldb/Target/DynamicLoader.h
+++ b/lldb/include/lldb/Target/DynamicLoader.h
@@ -359,8 +359,8 @@ class DynamicLoader : public PluginInterface {
protected:
// Utility methods for derived classes
- /// Find a module in the target that matches the given file.
- lldb::ModuleSP FindModuleViaTarget(const FileSpec &file);
+ /// Find a module in the target that matches the given module spec.
+ lldb::ModuleSP FindModuleViaTarget(const ModuleSpec &module_spec);
/// Checks to see if the target module has changed, updates the target
/// accordingly and returns the target executable module.
diff --git a/lldb/include/lldb/Target/Process.h b/lldb/include/lldb/Target/Process.h
index 8432c326d3281..e105dbeb2ff90 100644
--- a/lldb/include/lldb/Target/Process.h
+++ b/lldb/include/lldb/Target/Process.h
@@ -1421,7 +1421,18 @@ class Process : public std::enable_shared_from_this<Process>,
virtual bool GetProcessInfo(ProcessInstanceInfo &info);
- virtual lldb_private::UUID FindModuleUUID(const llvm::StringRef path);
+ /// Given a module spec, try to find the UUID information.
+ ///
+ /// \param [in,out] spec
+ /// A module specification with as much detail as possible about the
+ /// module for which we are trying to find a UUID. The
+ /// ModuleSpec.m_file should be filled in. If a dynamic loader is
+ /// calling this, the load address of the module can be filled in as
+ /// well. Sometimes the file path for a library can be a symlink and
+ /// the load address can help resolve the module.
+ ///
+ /// \return True if the UUID was added, false otherwise.
+ virtual bool FindModuleUUID(ModuleSpec &spec);
/// Get the exit status for a process.
///
diff --git a/lldb/source/Core/DynamicLoader.cpp b/lldb/source/Core/DynamicLoader.cpp
index 0259e7e63a161..dd771a7a3a8ae 100644
--- a/lldb/source/Core/DynamicLoader.cpp
+++ b/lldb/source/Core/DynamicLoader.cpp
@@ -151,14 +151,12 @@ DynamicLoader::GetSectionListFromModule(const ModuleSP module) const {
return sections;
}
-ModuleSP DynamicLoader::FindModuleViaTarget(const FileSpec &file) {
+ModuleSP DynamicLoader::FindModuleViaTarget(const ModuleSpec &spec) {
+ ModuleSpec module_spec(spec);
Target &target = m_process->GetTarget();
- ModuleSpec module_spec(file, target.GetArchitecture());
- if (UUID uuid = m_process->FindModuleUUID(file.GetPath())) {
- // Process may be able to augment the module_spec with UUID, e.g. ELF core.
- module_spec.GetUUID() = uuid;
- }
-
+ // The process may be able to augment the module_spec with a UUID.
+ if (!module_spec.GetUUID().IsValid())
+ m_process->FindModuleUUID(module_spec);
if (ModuleSP module_sp = target.GetImages().FindFirstModule(module_spec))
return module_sp;
@@ -173,7 +171,10 @@ ModuleSP DynamicLoader::LoadModuleAtAddress(const FileSpec &file,
addr_t link_map_addr,
addr_t base_addr,
bool base_addr_is_offset) {
- ModuleSP module_sp = FindModuleViaTarget(file);
+ Target &target = m_process->GetTarget();
+ ModuleSpec module_spec(file, target.GetArchitecture());
+ module_spec.SetLoadAddress(base_addr);
+ ModuleSP module_sp = FindModuleViaTarget(module_spec);
// We have a core file, try to load the image from memory if we didn't find
// the module.
if (!module_sp && !m_process->IsLiveDebugSession()) {
diff --git a/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp b/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
index 29723089ce7b1..6db4d99ccbdba 100644
--- a/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
+++ b/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
@@ -722,8 +722,8 @@ void DynamicLoaderPOSIXDYLD::LoadAllCurrentModules() {
// Create placeholder modules for any modules we couldn't load from disk
// or from memory.
ModuleSpec module_spec(so_entry.file_spec, target.GetArchitecture());
- if (UUID uuid = m_process->FindModuleUUID(so_entry.file_spec.GetPath()))
- module_spec.GetUUID() = uuid;
+ module_spec.SetLoadAddress(so_entry.base_addr);
+ m_process->FindModuleUUID(module_spec);
module_sp = Module::CreateModuleFromObjectFile<ObjectFilePlaceholder>(
module_spec, so_entry.base_addr, 512);
bool load_addr_changed = false;
diff --git a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
index 8a1c03ebf1dbe..6cee49987f470 100644
--- a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
+++ b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
@@ -337,7 +337,7 @@ bool ProcessElfCore::GetMainExecutableModuleSpec(ModuleSpec &exe_spec) {
GetNTFileEntryForExecutableELFHeader();
if (exe_header) {
exe_spec.GetFileSpec() = CreateFileSpecFromPath(exe_header->path);
- exe_spec.GetUUID() = FindModuleUUID(exe_header->path);
+ exe_spec.SetLoadAddress(exe_header->start);
}
// If we failed to find the executable program in the NT_FILE list with the
@@ -364,7 +364,6 @@ bool ProcessElfCore::GetMainExecutableModuleSpec(ModuleSpec &exe_spec) {
} else {
// We don't have an executable file spec yet, lets set it.
exe_spec.GetFileSpec() = execfn_spec;
- exe_spec.GetUUID() = FindModuleUUID(execfn_str);
}
}
}
@@ -377,18 +376,45 @@ bool ProcessElfCore::GetMainExecutableModuleSpec(ModuleSpec &exe_spec) {
if (!exe_spec.GetFileSpec() && !m_executable_name.empty())
exe_spec.GetFileSpec() = CreateFileSpecFromPath(m_executable_name);
+ // Try and find the UUID after the module spec was filled in.
+ FindModuleUUID(exe_spec);
+
// We succeeded if we got a path.
return (bool)exe_spec.GetFileSpec();
}
-UUID ProcessElfCore::FindModuleUUID(const llvm::StringRef path) {
- // Lookup the UUID for the given path in the map.
- // Note that this could be called by multiple threads so make sure
- // we access the map in a thread safe way (i.e. don't use operator[]).
- auto it = m_uuids.find(std::string(path));
- if (it != m_uuids.end())
- return it->second;
- return UUID();
+bool ProcessElfCore::FindModuleUUID(ModuleSpec &spec) {
+ if (!spec.GetUUID().IsValid()) {
+ // Lookup the UUID for the given path in the map.
+ // Note that this could be called by multiple threads so make sure
+ // we access the map in a thread safe way (i.e. don't use operator[]).
+ std::string path;
+ // Sometimes the path to a file or shared library from the dynamic loader,
+ // one of the main clients of this function, is a symlink. The information
+ // in the NT_FILE note contains resolved paths and might not match. The
+ // best way for us to find a module is by load address, so use this trick
+ // if the load address is set in the module specification.
+ if (std::optional<lldb::addr_t> load_addr = spec.GetLoadAddress()) {
+ if (std::optional<NT_FILE_Entry> nt =
+ GetNTFileEntryContainingAddress(*load_addr))
+ path = nt->path;
+ }
+ // If we didn't find a file spec from the load address, fall back to using
+ // the file spec.
+ if (path.empty())
+ path = spec.GetFileSpec().GetPath();
+
+ auto it = m_uuids.find(path);
+ if (it != m_uuids.end()) {
+ Log *log = GetLog(LLDBLog::Process);
+ spec.GetUUID() = it->second;
+ LLDB_LOGF(log,
+ "ProcessElfCore::FindModuleUUID() found UUID for %s: %s",
+ spec.GetFileSpec().GetPath().c_str(),
+ it->second.GetAsString().c_str());
+ }
+ }
+ return spec.GetUUID().IsValid();
}
lldb_private::DynamicLoader *ProcessElfCore::GetDynamicLoader() {
diff --git a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h
index e6f1fa0027554..846d8cb91cadf 100644
--- a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h
+++ b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h
@@ -170,7 +170,7 @@ class ProcessElfCore : public lldb_private::PostMortemProcess {
// Populate gnu uuid for each NT_FILE entry
void UpdateBuildIdForNTFileEntries();
- lldb_private::UUID FindModuleUUID(const llvm::StringRef path) override;
+ bool FindModuleUUID(lldb_private::ModuleSpec &spec) override;
// Extract the executable module spec for the executable in this core file.
bool GetMainExecutableModuleSpec(lldb_private::ModuleSpec &exe_spec);
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp
index 6e20703f65a45..ff7734a47fdca 100644
--- a/lldb/source/Target/Process.cpp
+++ b/lldb/source/Target/Process.cpp
@@ -6381,8 +6381,8 @@ bool Process::GetProcessInfo(ProcessInstanceInfo &info) {
return platform_sp->GetProcessInfo(GetID(), info);
}
-lldb_private::UUID Process::FindModuleUUID(const llvm::StringRef path) {
- return lldb_private::UUID();
+bool Process::FindModuleUUID(ModuleSpec &spec) {
+ return spec.GetUUID().IsValid();
}
ThreadCollectionSP Process::GetHistoryThreads(lldb::addr_t addr) {
diff --git a/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py b/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
index 0a5dc6e6a41a2..fddee84120bee 100644
--- a/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
+++ b/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
@@ -2,9 +2,9 @@
Test basics of linux core file debugging.
"""
+import os
import shutil
import struct
-import os
import lldb
from lldbsuite.test.decorators import *
@@ -281,30 +281,30 @@ def test_FPR_SSE(self):
values["st5"] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80 0xff 0x3f}"
values["st6"] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
values["st7"] = "{0x35 0xc2 0x68 0x21 0xa2 0xda 0x0f 0xc9 0x00 0x40}"
- values[
- "xmm0"
- ] = "{0x29 0x31 0x64 0x46 0x29 0x31 0x64 0x46 0x29 0x31 0x64 0x46 0x29 0x31 0x64 0x46}"
- values[
- "xmm1"
- ] = "{0x9c 0xed 0x86 0x64 0x9c 0xed 0x86 0x64 0x9c 0xed 0x86 0x64 0x9c 0xed 0x86 0x64}"
- values[
- "xmm2"
- ] = "{0x07 0xc2 0x1f 0xd7 0x07 0xc2 0x1f 0xd7 0x07 0xc2 0x1f 0xd7 0x07 0xc2 0x1f 0xd7}"
- values[
- "xmm3"
- ] = "{0xa2 0x20 0x48 0x25 0xa2 0x20 0x48 0x25 0xa2 0x20 0x48 0x25 0xa2 0x20 0x48 0x25}"
- values[
- "xmm4"
- ] = "{0xeb 0x5a 0xa8 0xc4 0xeb 0x5a 0xa8 0xc4 0xeb 0x5a 0xa8 0xc4 0xeb 0x5a 0xa8 0xc4}"
- values[
- "xmm5"
- ] = "{0x49 0x41 0x20 0x0b 0x49 0x41 0x20 0x0b 0x49 0x41 0x20 0x0b 0x49 0x41 0x20 0x0b}"
- values[
- "xmm6"
- ] = "{0xf8 0xf1 0x8b 0x4f 0xf8 0xf1 0x8b 0x4f 0xf8 0xf1 0x8b 0x4f 0xf8 0xf1 0x8b 0x4f}"
- values[
- "xmm7"
- ] = "{0x13 0xf1 0x30 0xcd 0x13 0xf1 0x30 0xcd 0x13 0xf1 0x30 0xcd 0x13 0xf1 0x30 0xcd}"
+ values["xmm0"] = (
+ "{0x29 0x31 0x64 0x46 0x29 0x31 0x64 0x46 0x29 0x31 0x64 0x46 0x29 0x31 0x64 0x46}"
+ )
+ values["xmm1"] = (
+ "{0x9c 0xed 0x86 0x64 0x9c 0xed 0x86 0x64 0x9c 0xed 0x86 0x64 0x9c 0xed 0x86 0x64}"
+ )
+ values["xmm2"] = (
+ "{0x07 0xc2 0x1f 0xd7 0x07 0xc2 0x1f 0xd7 0x07 0xc2 0x1f 0xd7 0x07 0xc2 0x1f 0xd7}"
+ )
+ values["xmm3"] = (
+ "{0xa2 0x20 0x48 0x25 0xa2 0x20 0x48 0x25 0xa2 0x20 0x48 0x25 0xa2 0x20 0x48 0x25}"
+ )
+ values["xmm4"] = (
+ "{0xeb 0x5a 0xa8 0xc4 0xeb 0x5a 0xa8 0xc4 0xeb 0x5a 0xa8 0xc4 0xeb 0x5a 0xa8 0xc4}"
+ )
+ values["xmm5"] = (
+ "{0x49 0x41 0x20 0x0b 0x49 0x41 0x20 0x0b 0x49 0x41 0x20 0x0b 0x49 0x41 0x20 0x0b}"
+ )
+ values["xmm6"] = (
+ "{0xf8 0xf1 0x8b 0x4f 0xf8 0xf1 0x8b 0x4f 0xf8 0xf1 0x8b 0x4f 0xf8 0xf1 0x8b 0x4f}"
+ )
+ values["xmm7"] = (
+ "{0x13 0xf1 0x30 0xcd 0x13 0xf1 0x30 0xcd 0x13 0xf1 0x30 0xcd 0x13 0xf1 0x30 0xcd}"
+ )
for regname, value in values.items():
self.expect(
@@ -438,42 +438,42 @@ def test_aarch64_regs(self):
values["lr"] = "0x000000000040019c"
values["sp"] = "0x0000ffffdab7c750"
values["pc"] = "0x0000000000400168"
- values[
- "v0"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0xe0 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v1"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0xf8 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v2"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x04 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v3"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x0c 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v4"
- ] = "{0x00 0x00 0x90 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v5"
- ] = "{0x00 0x00 0xb0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v6"
- ] = "{0x00 0x00 0xd0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v7"
- ] = "{0x00 0x00 0xf0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v8"
- ] = "{0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11}"
- values[
- "v27"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v28"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v31"
- ] = "{0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30}"
+ values["v0"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0xe0 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v1"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0xf8 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v2"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0x04 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v3"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0x0c 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v4"] = (
+ "{0x00 0x00 0x90 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v5"] = (
+ "{0x00 0x00 0xb0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v6"] = (
+ "{0x00 0x00 0xd0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v7"] = (
+ "{0x00 0x00 0xf0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v8"] = (
+ "{0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11}"
+ )
+ values["v27"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v28"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v31"] = (
+ "{0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30}"
+ )
values["s2"] = "0"
values["s3"] = "0"
values["s4"] = "4.5"
@@ -522,42 +522,42 @@ def test_aarch64_sve_regs_fpsimd(self):
values["sp"] = "0x0000ffffcbad8d30"
values["pc"] = "0x000000000040014c"
values["cpsr"] = "0x00001000"
- values[
- "v0"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0xe0 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v1"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0xf8 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v2"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x04 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v3"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x0c 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v4"
- ] = "{0x00 0x00 0x90 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v5"
- ] = "{0x00 0x00 0xb0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v6"
- ] = "{0x00 0x00 0xd0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v7"
- ] = "{0x00 0x00 0xf0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v8"
- ] = "{0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11}"
- values[
- "v27"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v28"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v31"
- ] = "{0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30}"
+ values["v0"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0xe0 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v1"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0xf8 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v2"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0x04 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v3"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0x0c 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v4"] = (
+ "{0x00 0x00 0x90 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v5"] = (
+ "{0x00 0x00 0xb0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v6"] = (
+ "{0x00 0x00 0xd0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v7"] = (
+ "{0x00 0x00 0xf0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v8"] = (
+ "{0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11}"
+ )
+ values["v27"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v28"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v31"] = (
+ "{0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30}"
+ )
values["s2"] = "0"
values["s3"] = "0"
values["s4"] = "4.5"
@@ -581,42 +581,42 @@ def test_aarch64_sve_regs_fpsimd(self):
values["fpsr"] = "0x00000000"
values["fpcr"] = "0x00000000"
values["vg"] = "0x0000000000000004"
- values[
- "z0"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0xe0 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "z1"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0xf8 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "z2"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x04 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "z3"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x0c 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "z4"
- ] = "{0x00 0x00 0x90 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "z5"
- ] = "{0x00 0x00 0xb0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "z6"
- ] = "{0x00 0x00 0xd0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "z7"
- ] = "{0x00 0x00 0xf0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "z8"
- ] = "{0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "z27"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "z28"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "z31"
- ] = "{0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values["z0"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0xe0 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["z1"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0xf8 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["z2"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0x04 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["z3"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0x0c 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["z4"] = (
+ "{0x00 0x00 0x90 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["z5"] = (
+ "{0x00 0x00 0xb0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["z6"] = (
+ "{0x00 0x00 0xd0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["z7"] = (
+ "{0x00 0x00 0xf0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["z8"] = (
+ "{0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["z27"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["z28"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["z31"] = (
+ "{0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
values["p0"] = "{0x00 0x00 0x00 0x00}"
values["p1"] = "{0x00 0x00 0x00 0x00}"
values["p2"] = "{0x00 0x00 0x00 0x00}"
@@ -655,18 +655,18 @@ def test_aarch64_sve_regs_full(self):
values["lr"] = "0x0000000000400170"
values["sp"] = "0x0000fffffc1ff4d0"
values["pc"] = "0x000000000040013c"
- values[
- "v0"
- ] = "{0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40}"
- values[
- "v1"
- ] = "{0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41}"
- values[
- "v2"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "v3"
- ] = "{0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41}"
+ values["v0"] = (
+ "{0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40}"
+ )
+ values["v1"] = (
+ "{0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41}"
+ )
+ values["v2"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["v3"] = (
+ "{0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41}"
+ )
values["s0"] = "7.5"
values["s1"] = "11.5"
values["s2"] = "0"
@@ -676,18 +676,18 @@ def test_aarch64_sve_regs_full(self):
values["d2"] = "0"
values["d3"] = "25165828.091796875"
values["vg"] = "0x0000000000000004"
- values[
- "z0"
- ] = "{0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40}"
- values[
- "z1"
- ] = "{0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41}"
- values[
- "z2"
- ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- values[
- "z3"
- ] = "{0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41}"
+ values["z0"] = (
+ "{0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40}"
+ )
+ values["z1"] = (
+ "{0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41}"
+ )
+ values["z2"] = (
+ "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ )
+ values["z3"] = (
+ "{0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41}"
+ )
values["p0"] = "{0x11 0x11 0x11 0x11}"
values["p1"] = "{0x11 0x11 0x11 0x11}"
values["p2"] = "{0x00 0x00 0x00 0x00}"
@@ -1491,6 +1491,53 @@ def test_exe_name_extraction_nt_prpsinfo(self):
self.assertEqual(exe_module.GetFileSpec().fullpath, "prpsinfo_foo")
self.dbg.DeleteTarget(target)
+ @skipIfLLVMTargetMissing("X86")
+ @skipIfWindows
+ def test_uuid_info_from_nt_file_and_gnu_build_id(self):
+ # This test loads a core file that has everything it needs in core
+ # memory to read the r_debug structure to get the shared library list
+ # and also the NT_FILE note where we are able to find the UUID for
+ # any library. Prior to this patch, the UUID for any library could
+ # be found in ProcessElfCore::FindModuleUUID(...) only for an
+ # executable if the resolved path found in NT_FILE matched the path
+ # that the dynamic loader used, which can often be different due to
+ # symlinks.
+ #
+ # This test verifies that ProcessElfCore::FindModuleUUID() is able to
+ # find the UUID for a library even if the resolved path (NT_FILE)
+ # does not match the path that the dynamic loader used.
+ #
+ # The libraries in this core file have the following paths:
+ # R_DEBUG NT_FILE
+ # ============================ ======================================
+ # /lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.0.29
+ # /lib64/libm.so.6 /usr/lib64/libm.so.6
+ # /lib64/libgcc_s.so.1 /usr/lib64/libgcc_s-11-20240719.so.1
+ # /lib64/libc.so.6 /usr/lib64/libc.so.6
+ # /lib64/ld-linux-x86-64.so.2 /usr/lib64/ld-linux-x86-64.so.2
+ #
+ # The UUID map in ProcessELFCore is keyed off of the path from the
+ # NT_FILE info, so we verify that the new code that was added to
+ # ProcessELFCore::FindModuleUUID(...) can locate the module using the
+ # load address in the ModuleSpec that is now being passed to
+ # Process::FindModuleUUID(...).
+ yaml_path = self.getSourcePath("elf-dyld-nt-file-mismatch.yaml")
+ core_path = self.getBuildArtifact("elf-dyld-nt-file-mismatch.core")
+ log_path = self.getBuildArtifact("elf-dyld-nt-file-mismatch.log")
+ self.yaml2obj(yaml_path, core_path)
+ target = self.dbg.CreateTarget(None)
+ self.runCmd(f"log enable lldb process -f '{log_path}'")
+ self.addTearDownHook(lambda: self.runCmd("log disable lldb process"))
+ process = target.LoadCore(core_path)
+ prefix = "ProcessElfCore::FindModuleUUID() found UUID for "
+ with open(log_path, "r") as f:
+ log_text = f.read()
+ self.assertTrue(prefix + "/lib64/libm.so.6: 25C2A650-E3E6-C2F3-25C8-AD803DBB58B3-13899C93" in log_text)
+ self.assertTrue(prefix + "/lib64/libgcc_s.so.1: A29B0CF0-634D-ECD5-76D6-36CF5B9B6412-AFEB4FAC" in log_text)
+ self.assertTrue(prefix + "/lib64/libstdc++.so.6: 0C8999CC-A62E-9B9F-0075-566ECB23D564-443ED68F" in log_text)
+ self.assertTrue(prefix + "/lib64/libc.so.6: CFCCBA85-5FC7-2F10-BC9D-E0ABC5AD605E-D8B1AA72" in log_text)
+ self.assertTrue(prefix + "/lib64/ld-linux-x86-64.so.2: ECBDF3F8-784D-7A13-EFF2-FDD4352ABBEE-93CCE02C" in log_text)
+ self.dbg.DeleteTarget(target)
def replace_path(binary, replace_from, replace_to):
diff --git a/lldb/test/API/functionalities/postmortem/elf-core/elf-dyld-nt-file-mismatch.yaml b/lldb/test/API/functionalities/postmortem/elf-core/elf-dyld-nt-file-mismatch.yaml
new file mode 100644
index 0000000000000..09412aeed8151
--- /dev/null
+++ b/lldb/test/API/functionalities/postmortem/elf-core/elf-dyld-nt-file-mismatch.yaml
@@ -0,0 +1,135 @@
+# This file contains an minimal ELF core file that contains everything needed
+# to load a core file where the executable and shared libraries all have
+# their ELF headers in the core file memory. The core file has the main
+# executable's PT_DYNAMIC section so that we can read the DT_DEBUG from the
+# dynamic section of the core file and read the shared library list from core
+# memory. So this core file can read the shared library list and also get
+# the UUID from the .gnu-build-id data in the ELF headers of each library.
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_CORE
+ Machine: EM_X86_64
+ProgramHeaders:
+ - Type: PT_NOTE
+ Align: 0x4
+ FileSize: 0x1718
+ Offset: 0x2a8
+ - Type: PT_LOAD
+ Flags: [ PF_R ]
+ VAddr: 0x55bc64882000
+ Align: 0x1000
+ FileSize: 0x1000
+ MemSize: 0x1000
+ Offset: 0x2000
+ - Type: PT_LOAD
+ Flags: [ PF_R ]
+ VAddr: 0x55bc64885000
+ Align: 0x1000
+ FileSize: 0x1000
+ MemSize: 0x1000
+ Offset: 0x3000
+ - Type: PT_LOAD
+ Flags: [ PF_R ]
+ VAddr: 0x7f8e30600000
+ Align: 0x1000
+ FileSize: 0x1000
+ MemSize: 0x29000
+ Offset: 0x4000
+ - Type: PT_LOAD
+ Flags: [ PF_R ]
+ VAddr: 0x7f8e30923000
+ Align: 0x1000
+ FileSize: 0x1000
+ MemSize: 0xd000
+ Offset: 0x5000
+ - Type: PT_LOAD
+ Flags: [ PF_R ]
+ VAddr: 0x7f8e30a00000
+ Align: 0x1000
+ FileSize: 0x1000
+ MemSize: 0x99000
+ Offset: 0x6000
+ - Type: PT_LOAD
+ Flags: [ PF_R ]
+ VAddr: 0x7f8e30c99000
+ Align: 0x1000
+ FileSize: 0x1000
+ MemSize: 0x3000
+ Offset: 0x7000
+ - Type: PT_LOAD
+ Flags: [ PF_W, PF_R ]
+ VAddr: 0x7f8e30cbe000
+ Align: 0x1000
+ FileSize: 0x2000
+ MemSize: 0x2000
+ Offset: 0x8000
+ - Type: PT_LOAD
+ Flags: [ PF_X, PF_R ]
+ VAddr: 0x7f8e30cc4000
+ Align: 0x1000
+ FileSize: 0x2000
+ MemSize: 0x2000
+ Offset: 0xa000
+ - Type: PT_LOAD
+ Flags: [ PF_R ]
+ VAddr: 0x7f8e30cc6000
+ Align: 0x1000
+ FileSize: 0x1000
+ MemSize: 0x2000
+ Offset: 0xc000
+ - Type: PT_LOAD
+ Flags: [ PF_W, PF_R ]
+ VAddr: 0x7f8e30cff000
+ Align: 0x1000
+ FileSize: 0x2000
+ MemSize: 0x2000
+ Offset: 0xd000
+Sections:
+ - Type: Fill
+ Pattern: 050000005001000001000000434f5245000000000b00000000000000000000000b00000000000000000000000000000000000000d2962f001c5a1800d2962f001c5a1800000000000000000000000000000000000000000000000000a00b000000000000000000000000000000000000000000000000000000000000000000000000000000f0cf308e7f0000b85d8864bc55000030318864bc550000582774e3fd7f0000402674e3fd7f00000000000000000000a0bc7f308e7f0000e900000000000000c0c0cc308e7f000050d47f308e7f00000000000000000000b85d8864bc550000682774e3fd7f0000582774e3fd7f00000100000000000000ffffffffffffffff47318864bc55000033000000000000004602010000000000402674e3fd7f00002b000000000000004047c9308e7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000050000008800000003000000434f5245000000000052000000000000000640000000000071f4010064000000d2962f001c5a1800d2962f001c5a1800612e6f757400000000000000000000002e2f612e6f757420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000008000000049474953434f5245000000000b00000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000007001000006000000434f52450000000021000000000000000040cc308e7f00003300000000000000300e0000000000001000000000000000fffbab1f000000000600000000000000001000000000000011000000000000006400000000000000030000000000000040208864bc5500000400000000000000380000000000000005000000000000000d0000000000000007000000000000000060cc308e7f000008000000000000000000000000000000090000000000000040308864bc5500000b0000000000000071f40100000000000c0000000000000071f40100000000000d0000000000000064000000000000000e000000000000006400000000000000170000000000000000000000000000001900000000000000592b74e3fd7f00001a0000000000000002000000000000001f00000000000000f04f74e3fd7f00000f00000000000000692b74e3fd7f00001b000000000000001c000000000000001c00000000000000200000000000000000000000000000000000000000000000050000003b060000454c4946434f5245000000001d00000000000000001000000000000000208864bc55000000308864bc550000000000000000000000308864bc55000000408864bc550000010000000000000000408864bc55000000508864bc550000020000000000000000508864bc55000000608864bc550000020000000000000000608864bc55000000708864bc5500000300000000000000000060308e7f0000009062308e7f00000000000000000000009062308e7f000000e079308e7f0000290000000000000000e079308e7f000000707f308e7f00009e0100000000000000707f308e7f000000b07f308e7f0000f60100000000000000b07f308e7f000000d07f308e7f0000fa01000000000000003092308e7f0000000093308e7f00000000000000000000000093308e7f000000209a308e7f00000d0000000000000000209a308e7f000000e09f308e7f00007f0000000000000000e09f308e7f000000f09f308e7f0000da0000000000000000f09f308e7f00000000a0308e7f0000db000000000000000000a0308e7f00000090a9308e7f000000000000000000000090a9308e7f00000050ba308e7f000099000000000000000050ba308e7f00000080c1308e7f0000a5010000000000000080c1308e7f00000050c2308e7f000017020000000000000050c2308e7f00000060c2308e7f000024020000000000000090c9308e7f000000c0c9308e7f0000000000000000000000c0c9308e7f00000000cb308e7f000003000000000000000000cb308e7f00000040cb308e7f000017000000000000000040cb308e7f00000050cb308e7f00001a000000000000000060cc308e7f00000080cc308e7f000000000000000000000080cc308e7f00000010cf308e7f000002000000000000000010cf308e7f000000d0cf308e7f00002b0000000000000000d0cf308e7f000000f0cf308e7f0000370000000000000000f0cf308e7f00000010d0308e7f000039000000000000002f646174612f75736572732f67636c6179746f6e2f63726173682d666f722d636f72652f612e6f7574002f646174612f75736572732f67636c6179746f6e2f63726173682d666f722d636f72652f612e6f7574002f646174612f75736572732f67636c6179746f6e2f63726173682d666f722d636f72652f612e6f7574002f646174612f75736572732f67636c6179746f6e2f63726173682d666f722d636f72652f612e6f7574002f646174612f75736572732f67636c6179746f6e2f63726173682d666f722d636f72652f612e6f7574002f7573722f6c696236342f6c6962632e736f2e36002f7573722f6c696236342f6c6962632e736f2e36002f7573722f6c696236342f6c6962632e736f2e36002f7573722f6c696236342f6c6962632e736f2e36002f7573722f6c696236342f6c6962632e736f2e36002f7573722f6c696236342f6c69626d2e736f2e36002f7573722f6c696236342f6c69626d2e736f2e36002f7573722f6c696236342f6c69626d2e736f2e36002f7573722f6c696236342f6c69626d2e736f2e36002f7573722f6c696236342f6c69626d2e736f2e36002f7573722f6c696236342f6c6962737464632b2b2e736f2e362e302e3239002f7573722f6c696236342f6c6962737464632b2b2e736f2e362e302e3239002f7573722f6c696236342f6c6962737464632b2b2e736f2e362e302e3239002f7573722f6c696236342f6c6962737464632b2b2e736f2e362e302e3239002f7573722f6c696236342f6c6962737464632b2b2e736f2e362e302e3239002f7573722f6c696236342f6c69626763635f732d31312d32303234303731392e736f2e31002f7573722f6c696236342f6c69626763635f732d31312d32303234303731392e736f2e31002f7573722f6c696236342f6c69626763635f732d31312d32303234303731392e736f2e31002f7573722f6c696236342f6c69626763635f732d31312d32303234303731392e736f2e31002f7573722f6c696236342f6c642d6c696e75782d7838362d36342e736f2e32002f7573722f6c696236342f6c642d6c696e75782d7838362d36342e736f2e32002f7573722f6c696236342f6c642d6c696e75782d7838362d36342e736f2e32002f7573722f6c696236342f6c642d6c696e75782d7838362d36342e736f2e32002f7573722f6c696236342f6c642d6c696e75782d7838362d36342e736f2e320000050000000002000002000000434f5245000000007f0300000000000000000000000000000000000000000000801f0000ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffff000101474c4942435f50524956415445005f5f5f65000000000000000000000000000061726c795f696e6974007374726e6c65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000880a0000020200004c494e55580000007f0300000000000000000000000000000000000000000000801f0000ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffff000101474c4942435f50524956415445005f5f5f65000000000000000000000000000061726c795f696e6974007374726e6c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e70200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a20200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800080000000000002400400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e2f612e6f7574005348454c4c3d2f62696e2f6261736800434f4c4f5254455200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005455555500000000
+ Size: 0x1718
+ Offset: 0x2a8
+ - Type: Fill
+ Pattern: 7f454c4602010100000000000000000003003e000100000040100000000000004000000000000000b03f00000000000000000000400038000d004000280027000600000004000000400000000000000040000000000000004000000000000000d802000000000000d802000000000000080000000000000003000000040000001803000000000000180300000000000018030000000000001c000000000000001c000000000000000100000000000000010000000400000000000000000000000000000000000000000000000000000018060000000000001806000000000000001000000000000001000000050000000010000000000000001000000000000000100000000000005d010000000000005d0100000000000000100000000000000100000004000000002000000000000000200000000000000020000000000000a400000000000000a40000000000000000100000000000000100000006000000b02d000000000000b03d000000000000b03d0000000000007402000000000000780200000000000000100000000000000200000006000000c82d000000000000c83d000000000000c83d0000000000001002000000000000100200000000000008000000000000000400000004000000380300000000000038030000000000003803000000000000200000000000000020000000000000000800000000000000040000000400000058030000000000005803000000000000580300000000000044000000000000004400000000000000040000000000000053e574640400000038030000000000003803000000000000380300000000000020000000000000002000000000000000080000000000000050e574640400000004200000000000000420000000000000042000000000000024000000000000002400000000000000040000000000000051e574640600000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000052e5746404000000b02d000000000000b03d000000000000b03d0000000000005002000000000000500200000000000001000000000000002f6c696236342f6c642d6c696e75782d7838362d36342e736f2e320000000000040000001000000005000000474e5500028000c0040000000300000000000000040000001400000003000000474e55000da654f5bd3a60f5d3cfa88cd0abd565ac497cea040000001000000001000000474e5500000000000300000002000000000000000000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004600000022000000000000000000000000000000000000005500000012000000000000000000000000000000000000001000000020000000000000000000000000000000000000000100000020000000000000000000000000000000000000002c0000002000000000000000000000000000000000000000005f5f676d6f6e5f73746172745f5f005f49544d5f64657265676973746572544d436c6f6e655461626c65005f49544d5f7265676973746572544d436c6f6e655461626c65005f5f6378615f66696e616c697a65005f5f6c6962635f73746172745f6d61696e006c6962737464632b2b2e736f2e36006c69626d2e736f2e36006c69626763635f732e736f2e31006c6962632e736f2e3600474c4942435f322e333400474c4942435f322e322e35000000000200030000000000000000000000010002008e0000001000000000000000b4919606000003009800000010000000751a690900000200a300000000000000b03d00000000000008000000000000002011000000000000b83d0000000000000800000000000000e010000000000000c03d0000000000000800000000000000c03d000000000000d83f00000000000006000000010000000000000000000000e03f00000000000006000000020000000000000000000000e83f00000000000006000000030000000000000000000000f03f00000000000006000000040000000000000000000000f83f0000000000000600000005000000000000000000000018400000000000000700000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ Size: 0x1000
+ Offset: 0x2000
+ - Type: Fill
+ Pattern: 01000200011b033b20000000030000001cf0ffff540000003cf0ffff3c0000002cf1ffff7c0000001400000000000000017a5200017810011b0c070890010000140000001c000000f8efffff2600000000440710000000002400000034000000c0efffff20000000000e10460e184a0f0b770880003f1a3b2a332422000000001c0000005c000000a8f0ffff1e00000000410e108602430d06590c0708000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020318864bc550000e0308864bc550000c05d8864bc55000001000000000000006700000000000000010000000000000076000000000000000100000000000000800000000000000001000000000000008e000000000000000c0000000000000000100000000000000d0000000000000050110000000000001900000000000000b03d0000000000001b0000000000000008000000000000001a00000000000000b83d0000000000001c000000000000000800000000000000f5feff6f00000000a0238864bc550000050000000000000050248864bc5500000600000000000000c0238864bc5500000a00000000000000af000000000000000b00000000000000180000000000000015000000000000005803d0308e7f0000030000000000000000608864bc5500000200000000000000180000000000000014000000000000000700000000000000170000000000000000268864bc550000070000000000000040258864bc5500000800000000000000c00000000000000009000000000000001800000000000000fbffff6f000000000000000800000000feffff6f000000001005000000000000ffffff6f000000000100000000000000f0ffff6f0000000000258864bc550000f9ffff6f0000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000401864308e7f000040a662308e7f0000000000000000000000000000000000000000000000000000
+ Size: 0x1000
+ Offset: 0x3000
+ - Type: Fill
+ Pattern: 7f454c4602010103000000000000000003003e0001000000d0a70200000000004000000000000000b8d426000000000000000000400038000e004000460045000600000004000000400000000000000040000000000000004000000000000000100300000000000010030000000000000800000000000000030000000400000020491c000000000020491c000000000020491c00000000001c000000000000001c00000000000000100000000000000001000000040000000000000000000000000000000000000000000000000000001881020000000000188102000000000000100000000000000100000005000000009002000000000000900200000000000090020000000000ec44170000000000ec441700000000000010000000000000010000000400000000e019000000000000e019000000000000e01900000000009480050000000000948005000000000000100000000000000100000006000000b8681f0000000000b8781f0000000000b8781f0000000000f04f000000000000182701000000000000100000000000000200000006000000a09b1f0000000000a0ab1f0000000000a0ab1f0000000000e001000000000000e0010000000000000800000000000000040000000400000050030000000000005003000000000000500300000000000030000000000000003000000000000000080000000000000004000000040000008003000000000000800300000000000080030000000000004400000000000000440000000000000004000000000000000700000004000000b8681f0000000000b8781f0000000000b8781f000000000028000000000000008800000000000000080000000000000053e574640400000050030000000000005003000000000000500300000000000030000000000000003000000000000000080000000000000050e57464040000003c491c00000000003c491c00000000003c491c000000000014740000000000001474000000000000040000000000000051e574640600000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000052e5746404000000b8681f0000000000b8781f0000000000b8781f0000000000483700000000000048370000000000000100000000000000040000002000000005000000474e5500020000c0040000000300000000000000028000c0040000000300000000000000040000001400000003000000474e5500cfccba855fc72f10bc9de0abc5ad605ed8b1aa72040000001000000001000000474e55000000000003000000020000000000000000000000ff03000017000000000100000e0000000030125ca02013018803e690c5458c00c400580007842070c280010d8a1cc0141180c84432082a4088563c2d204eb2482684d08e040c0003020eb1ac3a0f66c080c03300c00c5009208109940b242028240084245a30105880ca444228000680103a4300a8548000495004518a501204002400082020111048c85082b50021c8c6c183a0dbb45802080430500710040290443200205a980a19040226000da0aa101438940850030842e50a0300198438610212106081200005cc24c86004011406800a680e808c4481e8ac10000d202c14081062144120449508d06c639341821024a1008246801302080e5860a20a054c6b08f17181096c48e0203813005d402003302a000760070e4389364000204108e300200b5b1888c430e3c690e2004e81008a014040a02000000008e2031a2082160231100800a92428621010741a62646201020a2018416060a822060250221604b08812626b8a86dca81962631d0a09210800200216223850a144440c02f9c2406820268440b03d10a4a9c8804c91142014200089810c00057c501c2cc236440100a10101440c5007c8ede09dfc2880001015200080044626086c414031818804f680182a302220d048060140c9891100c98092db3a3620922641e08e4f4fc4204e0004000400a501b0cc1170467e0a2c902d9324f200020a810c8053410426c2806971100080144107d528801808a0086222522400020000908a68002180218095e2116809507440a00441158540544072030818568000540d1448248800000514840410084200401496809055080549260794e148020062029604de9f6329010b08574448222c6290c1587122981390a0010008600808a5d01d00900900021411281c8000802a410880010a00600400081c044000e200281839800784c09af3504d0001be8800425710c4f023911c6c15b01024d30ea4088a3698052a888a52982410490a0c2439184290240120f040048315106010006a1079808a008d20004cea08206410335c0081128848ea802200298108404284380d44238c98800134302c8004143700500a08a80a1020005506391020253b40000e700b69004000000846095004c00252040c410001a05890c948ff412c4118803c28e02300e522c0d10105404021421447000d4c910f06030a26b4823081809640188452064010000821284488229086592151118800a00524812e07832828f680d3a2018a306440c1d4a0d3200104012834e9a4c113105044c1320a52010890008960cc80480a61280d8b102330c002740800011880880040a0804303603110a93bb01408a040a18288604a94253c30d6d2a418068e18b888e18f9c00578d080b0248928e98401c500088019c4804928012b1f0144400ec484e0d00881400000004408012088c8f10047170a1456062c5f06114052011800000000141050000400020000696023340b0675420444120034a35410b002841309040c0093222049d460c0408861520236010000310c09a564a41807472997a1861b5800030208c024461021240562092f9a07907212040c1a0b220821142009474d00428c0c945430304a002904224a0811028840439c40914e010d04dc5d892e5c0010120680490140023041c0c149060003385888a0100200012ef48a10994d92781024811915809d22ee50600728005004861106340d312e20100925e0c0300d62a041d08f408023ab100102408a893014d298291600801c900800002000a00354c2002028808000020102200005a00005301c20201003311c2b5ce13801c8170052866846067688800403e1285d10020a2429210004004808458613800b8089d08000141c800aa308a00052040b108a00c6054b4e09841c0b00019a407c488909ad144480330806223808008410852505520420a150001000001102800c084cb02201a0913508200884310d0884a41c070342910ec43239200310324836a0052106001484081a228980048890482670857140008780d12050408cf30543b384217c63ef30b24a8000000a40090763211e71ca14e4049240c010100c20c64c70481c386831903201002182c2febd2a4d3802a746704c408b3ac8000c089c320f00007200ca0144a4243ed183c00390847e9400368c1012bb53ca05859026060a43400086b866b1885a41837a820320de4a6239342706888e08089840044493a11a0441000000220518fb184d0104200001080880462140365c4d086197aa11489aede4f01001411120e801d00a42d002713072a762426740a8c61190c08e1000824362408c1614583a211c3040133100371004282ad84cc1034084906480204ae2440c84002008010220a00c2e26022480011110081044e82594544000702b419750053120c01480624a00000d301004d020000064ce32831200e1d3240b84084c24802908046c08cc7004e2b0a224000812d72200401a0c108500004000391882c020144c40309a24760e140110410ac0462400804183600000004021440390e04495a2018a10110285aa8004071000200a0c6e1ff811015ff411630bf47200e3548db9024a16842c3a144803d2422a0e0400433061121402064080150081110001180839a021a20540501e103124580d2d48408222038000508034a00a21000018bd64141841404312099817b886dc08210090820329810160e1c9d61df63c33624600442333003c124888100926804082341180f1000180152420800501401800806ea1404353c9040e00d40041028011300c20080ff02d4114c0e9300228c0200f0921219040c385300c0c8efd891422004382912407054b4f110000a0888210c2d0220a1168201002208e89c30c060103100341880a8013548170000001d0000000000000020000000260000002b0000002c0000003000000034000000380000003d0000003f00000042000000470000004a0000004e000000000000005000000000000000530000005700000000000000580000005a0000005b0000005c0000005e000000610000006500000000000000680000006d00000070000000720000007300000074000000780000007a0000007c0000007f0000008000000083000000880000008b0000008d000000910000009400000095000000970000009b0000009c000000a3000000a5000000aa000000ad000000b100000000000000b4000000b7000000ba000000bb000000bd000000bf000000c4000000c7000000ca000000cc00000000000000d0000000d4000000d9000000dc000000e1000000e3000000e5000000e9000000ee000000f1000000f5000000f7000000f9000000fa000000fc000000fe000000ff00000003010000070100000b0100000d010000110100001501000018010000000000001b0100002001000022010000230100002601000028010000290100002b0100002c0100002e0100003101000035010000370100003e01000041010000490100004b0100004f0100005201000055010000570100005a0100005d0100005e01000062010000650100006c0100006e0100007301000075010000780100007c0100007f0100008001000083010000840100008701000000000000890100008e0100009201000095010000990100009a0100009d0100009f010000a1010000a5010000a7010000a8010000ac010000b201000000000000b6010000ba010000bb010000bc01000000000000bd010000bf010000c0010000c3010000c4010000c7010000cb010000cf010000d4010000d7010000d9010000dd010000e2010000e6010000e8010000eb010000ee010000f1010000f4010000f8010000fc010000ff0100000202000004020000070200000b0200000e020000110200001502000019020000000000001b0200001c0200001f02000022020000000000002302000025020000260200002702000000000000290200002c020000300200003302000035020000360200003a0200003d0200003f0200004102000000000000470200004c0200004e02000052020000590200005a0200005e0200006102000065020000000000006f020000000000007102000074020000750200007702000078020000000000007d0200008302000084020000870200008c0200008e0200009202000096020000980200009a0200009b0200009e020000a4020000a9020000ad020000af020000b5020000b9020000bb020000bc020000bd02000000000000be020000c1020000c6020000c7020000cd02000000000000cf020000d0020000d1020000d3020000d5020000d7020000d9020000da020000df020000e4020000e7020000eb020000ed020000f2020000f8020000fa020000fc020000
+ Size: 0x1000
+ Offset: 0x4000
+ - Type: Fill
+ Pattern: 7f454c4602010103000000000000000003003e000100000050d4000000000000400000000000000040e60d000000000000000000400038000b00400020001f000100000004000000000000000000000000000000000000000000000000000000f0c3000000000000f0c30000000000000010000000000000010000000500000000d000000000000000d000000000000000d0000000000000e516070000000000e5160700000000000010000000000000010000000400000000f007000000000000f007000000000000f007000000000030b905000000000030b90500000000000010000000000000010000000600000068ad0d000000000068bd0d000000000068bd0d0000000000bc03000000000000c8030000000000000010000000000000020000000600000080ad0d000000000080bd0d000000000080bd0d00000000003002000000000000300200000000000008000000000000000400000004000000a802000000000000a802000000000000a8020000000000003000000000000000300000000000000008000000000000000400000004000000d802000000000000d802000000000000d80200000000000044000000000000004400000000000000040000000000000053e5746404000000a802000000000000a802000000000000a80200000000000030000000000000003000000000000000080000000000000050e574640400000070ee0c000000000070ee0c000000000070ee0c000000000064190000000000006419000000000000040000000000000051e574640600000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000052e574640400000068ad0d000000000068bd0d000000000068bd0d0000000000980200000000000098020000000000000100000000000000040000002000000005000000474e5500020000c0040000000300000000000000028000c0040000000300000000000000040000001400000003000000474e550025c2a650e3e6c2f325c8ad803dbb58b313899c93040000001000000001000000474e55000000000003000000020000000000000000000000fa03000011000000800000000d000000a5400040414810042254044e020f65004ae88022007108ca4860008000364a40148426105041dfc050010209001068821408009212008028aa0021408a6018000223004520102802102409660551068a110000000421124005082030d44a1a20d00008120184694a47890c1080482000602890140a05120202880006000802404008c3182284054130450420882309004042104083214100046000084a010994018080000030483202080801082040100121a80d0a0020040200c85322e00883002000404000100080808291002104490208120000290052080482000020080180640200200012320100220040040156000200815208a61c02a080004220288610a814631d88e91100c010840441180800000004000000081000104820504014804001140201100400410000820182e0a2006098868609a0810070041141e18a26d46001013000a320a0001052042004ad080800024718267000800440912c2f13421421880801244040104018a042106022000014004200020034201086001130024200040d20820482a01d12d5188400064a9720000080800101504a25900ad0425090296869d8f24bc25201250005161824001322095c802c003882144104018022220201080003239a158002001002418120080260824080890800801900000100418804180000021100159420503808206f964e434282300012811321588410801140a4274208a3004a002404024204911152a02c5002c741202000a8444882138c4844de5041650a1c0e223d800005618c202044c351c00e020641f20810804008080100501040063804041510c50902084200000905000108000000004800600c800e2002240a20a5000c101828012020000104301600008800c1008c1ef0208000c813804000800000000a00020a1020040180444303f4264400208501008116009002050401a220050008837140a081ca102024600002200800001d42002e4c04000070026102000aa501841026a080295795e1088026471809a10e00828010a01a4809f0200590d61125801250142b7a00108200b0200088402480104a05905b40609040180124066204188261000c488000a208c861d400fc41a091160180012200c0f810d418000014884000408e8686004080000c108b018a48b5e8208e8982114010fe201021861883010000802246718060002ab8100e4100014210b0240002910082408588202e000b09020012108c01488415282c8adc0020224d09904210262c66250c2008a000485e4d2000a8c280432820400892040210a0d010682009001000000208515400108050490800000002800423020e180c104012880420002e221580020c00080065c5151084d4101000014800120649c80518404326200801001015009140a040a0100e4010408000918810108242408200000000110000000000000000000000130000001500000000000000160000000000000000000000170000001a000000000000001b0000001c0000001e0000001f0000002000000000000000210000000000000023000000260000000000000027000000280000002b0000002c0000002d0000002e000000300000000000000000000000310000003400000000000000360000000000000037000000380000003b000000000000003c00000000000000000000003d0000003e00000000000000400000000000000044000000450000004700000000000000480000004a0000004b0000004c000000000000004d0000004e00000000000000000000000000000050000000000000005200000000000000540000000000000055000000000000005600000000000000570000005800000000000000000000005a0000005b000000000000005e0000000000000000000000610000006200000000000000660000000000000000000000000000000000000069000000000000006c0000006e0000006f0000007000000072000000730000007400000075000000780000007a000000000000007c000000000000007e000000000000007f0000000000000080000000000000008200000085000000000000000000000000000000000000000000000000000000860000000000000087000000000000000000000088000000890000008b0000008c000000000000008e00000000000000000000009000000091000000940000009500000098000000990000009b000000000000009c00000000000000000000009e0000009f000000a0000000a1000000a300000000000000a6000000a800000000000000a9000000000000000000000000000000ac0000000000000000000000ad0000000000000000000000ae0000000000000000000000af0000000000000000000000b1000000000000000000000000000000b2000000b4000000b5000000000000000000000000000000b600000000000000b8000000ba00000000000000bc000000bd00000000000000bf00000000000000c200000000000000c7000000ca000000cc000000cd000000ce000000d1000000d300000000000000d4000000d600000000000000d700000000000000da000000db000000dc000000df000000e0000000e2000000e3000000e400000000000000e50000000000000000000000e700000000000000e8000000000000000000000000000000e900000000000000ea0000000000000000000000eb000000ec000000ed000000f0000000f100000000000000f2000000f4000000f6000000f700000000000000f9000000fa000000fb000000fd00000000000000000000000000000000000000fe000000ff000000000000000201000003010000000000000401000005010000080100000901000000000000000000000c0100000d010000000000000e0100000f010000100100001201000015010000170100001a0100001c0100001d0100001f010000220100000000000023010000250100000000000028010000000000002a0100002b0100002d01000000000000000000003001000000000000330100000000000034010000350100000000000037010000380100003b0100003c0100003d0100003e010000400100004101000000000000000000000000000000000000430100004801000049010000000000004a010000000000004b0100004e0100004f01000000000000500100000000000051010000000000005301000054010000550100005601000057010000000000000000000058010000000000000000000000000000000000005a0100005b010000000000005c0100005d0100005f01000060010000610100006301000065010000000000000000000000000000670100006a0100006c010000000000006e010000000000006f01000071010000720100000000000000000000730100000000000074010000000000007601000077010000000000000000000078010000000000007a0100007b0100007e0100007f0100008001000082010000000000008501000086010000880100008a0100008d0100008e0100009001000092010000000000009401000095010000960100009701000098010000990100009a0100009c0100000000000000000000000000009e01000000000000a1010000a4010000a901000000000000ab010000ae010000b0010000b1010000b201000000000000b3010000b4010000b501000000000000b6010000ba0100000000000000000000bc010000bd01000000000000c0010000c1010000c5010000c8010000cc010000cd010000ce01000000000000d00100000000000000000000d101000000000000d201000000000000d4010000d5010000d6010000d7010000d8010000da01000000000000db010000dc010000dd010000df01000000000000e101000000000000e2010000e4010000000000000000000000000000e7010000e8010000e9010000eb0100000000000000000000ec0100000000000000000000ed01000000000000ee010000ef01000000000000f2010000f30100000000000000000000f501000000000000f601000000000000f8010000f90100000000000000000000fc010000fd010000fe0100000000000000000000ff010000000000000000000000000000000200000202000004020000060200000000000007020000080200000a0200000b0200000d0200001102000000000000130200000000000000000000000000001402000000000000000000001602000017020000180200001a0200001b0200001d02000000000000000000001e0200002102000000000000220200002302000026020000270200000000000000000000000000000000000028020000290200002a020000000000002b0200002c0200002e0200002f02000000000000300200003102000000000000320200003302000034020000360200003702000000000000390200003a020000000000003d0200003e0200004102000043020000000000000000000045020000460200004702000048020000000000004a0200004c020000000000004e020000000000000000000000000000000000004f020000500200000000000051020000
+ Size: 0x1000
+ Offset: 0x5000
+ - Type: Fill
+ Pattern: 7f454c4602010103000000000000000003003e0001000000d0130a00000000004000000000000000d84823000000000000000000400038000c004000220021000100000004000000000000000000000000000000000000000000000000000000a88c090000000000a88c0900000000000010000000000000010000000500000000900900000000000090090000000000009009000000000051b510000000000051b51000000000000010000000000000010000000400000000501a000000000000501a000000000000501a00000000008e250700000000008e250700000000000010000000000000010000000600000008772100000000000887210000000000088721000000000088ca000000000000f80001000000000000100000000000000200000006000000300b220000000000301b220000000000301b2200000000004002000000000000400200000000000008000000000000000400000004000000e002000000000000e002000000000000e0020000000000002000000000000000200000000000000008000000000000000400000004000000000300000000000000030000000000000003000000000000240000000000000024000000000000000400000000000000070000000400000008772100000000000887210000000000088721000000000000000000000000002000000000000000080000000000000053e5746404000000e002000000000000e002000000000000e00200000000000020000000000000002000000000000000080000000000000050e57464040000008c3a1d00000000008c3a1d00000000008c3a1d0000000000bc99000000000000bc99000000000000040000000000000051e574640600000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000052e5746404000000087721000000000008872100000000000887210000000000f8c8000000000000f8c80000000000000100000000000000040000001000000005000000474e5500020000c0040000000300000000000000040000001400000003000000474e55000c8999cca62e9b9f0075566ecb23d564443ed68f00000000fc070000b8000000000200000f000000049047108350e39806160145a2208a104020210004e20001288c241320069028062c882502005a1000100e21810812825f40c05478a9b450c2056b90e1201530180021a10062c5205605b944900b0909243d4702020911a788802db89de886794494c480fb006c202fac43603690802832122820024258ce2084c20210824180a1486908221400402308690010014c0115a0484403a012804802001040800b20e20e2588100041408604022b78f536c081d333840012042d2420004858804c14000820041000060605204688405c0620401568c4702000e9a805015032f6ffc7df5f188b868412a08074e6b8a4555b23209051c024f0a7a021688888010380c10803000400e40890a510ca1448776e3804200584715231430040000201f1220f60326622c80488c8b081e22000c14900068845d0024051a59482000308044040c52800c790688011222602529090c8c10a5e49093619012d340ac120869030001984090650080000a3169003c2201000504014e00832014c1408484408783803723686998048d49b4910a281124060a2000fca31d4b5562c02c04dc362400ca810d03b084500c60438005180854812445514220400c0059900022000100401ca190001000148c150d0cdd0723240493dc6700084008c700006189214ac015940404000404068000039a3092c908800800535088c641a6c840010ca442b10801b084a2c0663206850033420456d28448e89100d0a113158c2888f125140d0e260890015874050a050c1a2110df5b043a8261196118a5809821fb624800290c000a2942d100005b19e11880231a24452a140290481101800080e1c0298429880a4804c40008493b200183612258f04640720122c609251231d06181f71400c80020410039200108e14b1501a0c448d401800486c0600812808157210242595a8801003210400001a31e440a121000a20889e18408c0413a6823349054b2884888a7371041b00d5400010d0901539a297a01000800180608545a054e0042d068ca78a1005a2441400874aaa488281a7aa43dd4c7327af11c0060a8064a301492a414040162640449481c4830aeed9606106444b386624224a7d06102c240400502302512d65a1024b91221c83004e42907621088150209859a40bd44b888b2e3994a0ec045d092b0de8af1920e43de0108c60442a100400a010a11a870caa403827a28d48086a0c1801183014205d25036442230000c0202525305092642809510112022124a481d99828008a48310754870142227c6108008a01021c00965221b80e032e435a43b0a2d018450011810ae45dad5452631902508881012163000a101b0844a880a5387228014703c801b0000a02820842515d48626c08840720421ba9813410220008130ba0808330082a5337d00a1c064910a56100825ea25a220b0465312807118162232361a751043d0905060154580431e400000e00ba2820840990790048c445428f0f0080023d4ec8f1d5c2542430488a50484e201ef0c11043200110200b52102f108801300a5200c500600248050602921000220c2000082df25010170cb91aaa4b40d8486fc3f95014042242a0000040141290213a029e8380b884ad5ca422e40064a19c0228830b009e9642100d104606bc97219010400e1a05080b010a0189b404ad128de0011001484a051900622fc040918a581858424a81809e2663684404b620052a36e994c11d0810244d0b0c00002004025020215012145404816c009213608a54000261a017b2503618411288ae19a50080080a16014e0e340311b50da0130048e0ad420fc45704c82004841c842a23080620e358529c0c19022200c10d12651c2d088c49c5e5201a8e231302fc1f5dc018c100402908c0c0009000240449900200008804c034a014108388253d0210101008042008224290c81026046180f08494317b8014360929000cb3443580b462c028965fc41b463b0429035dc02341809145c5a0a082c11f20000aa4d8fbca0da1d8023283218012c8710600200c801000541a13010102828301451097041a260a0031584f80dd461112b4313524a3f2151004009190080040940620f00a098850841d062a48d50842827400c7904e221101440dc600e238123c31490b68620b42c100a87c2400486141009084480092172aa010000112148103004544004c8211c843a00b0a0c202142145431444f40e9ffbe7f0400800126820a0614fdee213e23220490404047c8005a70cea9327ceaa9101a8b418400880855020832034c0200406846510a2231000aa4804826892d4074200182001802008008400000440400f16dc02120b2146c0006e50c00c8e58993bc07ac40200467a850402344e1a2092808640e200a1002004be802f755480a142260444c4042200340102086102204b906aa3e550318ed000cd06ea4c0032a108840c22a009c8621540b600002020004ce030800600a2002a20d1548231d800800c15104480e00c026748041ec088e10fc44a140920b04029010c0219800116a836981b0ae4640c0800120800a00039067ed0a16144283010800050a2051329239a4dd54321210dce20834d0b217eb1208612a0d2202127826f21d84281c38e008211132dd2085a2220c0209028040400142e808949209d424450800707850a808ec94b603e0a2392086420885b512212854878442828481ba57c707305b2b144510828890400045820029c118022401812120312300090a030000100544090c500625052090c3101601a20040408482240e208140219878100a0a0ec82407281eb9c3114f92e61617ecb98508011c3e870ca401488d4080c00268a20122200528080021692021d020c1ac568b05020c1580009014402400000043080368336048b020e6924b80099173b4a092c6e8400221012020404d1590c85840808762821300c24200d8156800000480003b210ac520549d4fe60070730e04c9e0040c710a78a11708054b1000011300140b002411f4040c021040ba345cce0dc09169505802410007cc264271500135330c0202c86289080ab001518000501123208104c002522b01803622836000205960108d1190ae4c95123720408a002800008654088211281c1000c882003a86f24a3710020208422254621c4146822264154426b59c7e428ca21c680112d04201af004022004d631c684c09740222cc0a1030282a01d3003804820001028080c0e201acb82408b45c3a49d712148300112000084500b01081310508886402cb0142869311e0c2001400101088e08a0287c2a350a38a030cc01810262ac384369200720010021604b000400a8241184f6312184141a0186a10182828081c060d1400525079a222e40802081210bc705614d2d96a4c4600c04048c0041408600d95483b8823a629c74b01894010490025210080020800a0221832105a514218c8c330c010a142e40301030b204e1081be85b4046680101004910080419e9503275428654c00502d94e4180a4837c8841e59c03c68c89914805292190118b340502815a31012081304c0400409805810210050a531313a5075c688b110441821003109e2a0304c68b2441110a1060c2d2911022c280041988206009210189225c40300018ed3226090062801800202012a0040025002140ec461742114140a0024b0080aa4260001080584807910f5ce20c070a640668a8c8c90d120358904205816598f8f5473a3992a79a38118884aa02a10490083000008401000a50a5192953a84618cdaa01c240208c49008200d95810a1015799080042080282868002500d0022110ce002473842e807f873c69401c4c00800218d00038a80742405580808224820020d99c0634352664517089ca0101a13190a285c5801800b1825ae00e0110ad3cca42a1013c12c210386000113853465cff833105407d198200000002000009296de0039c2c02c2c2e623830f002479e008046963a161080100000941a42144406040001b811884982463507a011c2e412be1173cd05073940201f01106e20583a4d5100120c1022004100c5180b10945407c014f5010081150202800802186100d188488e50323086803820b9002080ab10802cca42a4d84498c41be1d310262800b001040005144000288a1280482160064018534091020ba800040418882425d00244849011714004000088e0a081c40108645043c50feffdc0329079c82080a0c8001fc3510d310007a009a0440091c0022961484008000b4880e080088eb50d8680a40229188480920293526a900482c94b7148a9b30004810484c80185564b08045083c0e00042810031000d9213780a850293022105110d1b50c1a7188ac3b215c8422ffbfefde201aea42b214c860801085800c713a1c100a1090fffffe008a038569959811080920166014c0ff3f7b300e918008800007340284018519d399294086b4982002032009412140e08426f87dc82f0ae1c11c9b082609d270944044c04cb01180802c1a0c0c02f64c22101c461c89617f3068d11492471802014140068e0aea0040208473447c1c048122c80d238d4041040010008400c495c000d0897005
+ Size: 0x1000
+ Offset: 0x6000
+ - Type: Fill
+ Pattern: 7f454c4602010100000000000000000003003e000100000050360000000000004000000000000000f8be01000000000000000000400038000b0040001f001e000100000004000000000000000000000000000000000000000000000000000000902a000000000000902a00000000000000100000000000000100000005000000003000000000000000300000000000000030000000000000a533010000000000a533010000000000001000000000000001000000040000000070010000000000007001000000000000700100000000006430000000000000643000000000000000100000000000000100000006000000f0ab010000000000f0bb010000000000f0bb0100000000001004000000000000d8050000000000000010000000000000020000000600000018ac01000000000018bc01000000000018bc0100000000001002000000000000100200000000000008000000000000000400000004000000a802000000000000a802000000000000a8020000000000002000000000000000200000000000000008000000000000000400000004000000c802000000000000c802000000000000c80200000000000024000000000000002400000000000000040000000000000053e5746404000000a802000000000000a802000000000000a80200000000000020000000000000002000000000000000080000000000000050e5746404000000487a010000000000487a010000000000487a010000000000bc06000000000000bc06000000000000040000000000000051e574640600000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000052e5746404000000f0ab010000000000f0bb010000000000f0bb010000000000100400000000000010040000000000000100000000000000040000001000000005000000474e5500020000c0040000000300000000000000040000001400000003000000474e5500a29b0cf0634decd576d636cf5b9b6412afeb4fac000000008300000018000000100000000a000000131c0318042400010181005404068810808400080008058002004010441000b60280d020c1009082740100040828c00248010b20d0010228133504606cd2002103706040d280086000400100800100001224000811020849c00124091128202008430ba6824809080803440c0a1c124fc601870b618496cd04c2c50ca2db0ecc18000000190000001c000000000000001f000000000000002100000022000000240000002700000029000000000000002a0000002c0000002d0000003000000032000000350000003600000039000000000000003a0000003b0000003f000000400000004200000043000000440000004500000046000000480000000000000049000000000000004a00000000000000000000004b0000004c0000004e0000004f000000500000000000000000000000520000005400000000000000000000005500000057000000000000005800000000000000000000005a0000005b0000005c00000000000000000000005e0000005f000000000000006000000000000000000000006200000063000000000000000000000065000000000000006600000000000000000000000000000000000000670000000000000000000000680000006a0000006b0000006d00000000000000700000000000000072000000730000007400000079000000000000007c0000007d0000007e000000000000000000000000000000000000007f00000080000000000000008300000000000000850000008700000088000000000000008b0000008d0000008e0000008f0000009000000091000000920000009400000095000000960000009a0000009c0000009d000000000000009e000000a0000000000000000000000000000000a6000000a9000000aa000000ac000000ad00000057eb14b8f2a732e440f0117ab39251bffebf141276a832e497679808e27961fee1b355b17370f0a986c8f8f5e57961fee67961fec25b21f4c1316517d29f21f45be3f3a86b27f4a87ae761174f705049e96b81c198ffce39ea43c2bf8791a71cfa87c2bffb87c2bf44d999798891a71c6d6bf3c03f5ac4914e9ec4914e9ec4912b7fd3a73bc3d3a76bd908f8a03648498efc5049e49f85b185e2ef1c09bbb91c90239891273bcd59fde8f1380192c54f9d75f1fb373dcd59b206e181618f62ae71d362aea563198251a2b79c012cf0a91070f0a91170f0a983a1b91c87ab14b896ef14b8ddb986f078b57cf15b00bccd159ef291fe98c2bf096bf3c0b141afb652afc491a1fa50492b105f3bb1fc504934fd5049f9f485b1c76e793bfd219291f0fbb89049fb690dab6ccf595aadc6f38b28efddbb6ecf591581f0a9d3623d85c0a51682399d8ca2c5a5b91c802362df0f7a86f01ebe86f0c088c2bf5ba4aa740cce2566835fd8a711870176fb430ef24221367a4221367a0a880ef20099b91cfd9228f9921b32e400321782116c0e82f35fe0a701b48890cfff1412dbd6cb50e2e129e4d2a732e4919b21f46aafbf796bafbf799abf4d7b458da71c334364a8d670f0a9ba83c2bf438764a8d211aaf0259a34df0d9ac491392c13d9497013d9bb75b779c7aecc59c8b6b91cb5df85b15f88c2bf771905d2929d6bdaa82a0e13d6b0cc5903233d85da97946513673d85113017823d926a83ec3576c2b3e361df20321782ee291a7ac22762dfa6453f8d1675c459ef291a7aeea32faa2677c459173dcd59bd219291ce6bf0a9e3a532e4b1fbb8909acb815de1561a9a000000000000000000000000000000000000000000000000700600001200000000000000000000000000000000000000b00000001200000000000000000000000000000000000000100000002000000000000000000000000000000000000000780700002200000000000000000000000000000000000000240800002200000000000000000000000000000000000000660700002200000000000000000000000000000000000000b205000012000000000000000000000000000000000000003a0600002200000000000000000000000000000000000000cc0700001200000000000000000000000000000000000000380600002200000000000000000000000000000000000000e807000012000000000000000000000000000000000000000100000020000000000000000000000000000000000000005a06000012000000000000000000000000000000000000008f0700002200000000000000000000000000000000000000610600001200000000000000000000000000000000000000560700001200000000000000000000000000000000000000ef07000012000000000000000000000000000000000000006806000012000000000000000000000000000000000000002c00000020000000000000000000000000000000000000004d0600002200000000000000000000000000000000000000460000002200000000000000000000000000000000000000a407000022000000000000000000000000000000000000001008000022000000000000000000000000000000000000001001000012000e00004b00000000000012000000000000000304000012000e00d0c2000000000000e5020000000000007204000012000e00c0dd0000000000003c02000000000000ef02000012000e00c06c00000000000096010000000000000b02000012000e0020620000000000000b000000000000009802000012000e00006b00000000000045000000000000007303000012000e0060b2000000000000b901000000000000500800001100f1ff00000000000000000000000000000000d307000012000e00e0610100000000007b010000000000004f03000012000e00f087000000000000330c0000000000008e00000012000e0060490000000000002200000000000000580800001100f1ff000000000000000000000000000000006a0800001100f1ff00000000000000000000000000000000ca00000012000e00204a00000000000013000000000000007b00000012000e00e0480000000000004700000000000000de00000012000e00604a00000000000017000000000000009401000012000e00b04e0000000000003a00000000000000a001000012000e00f04e00000000000040000000000000007100000012000e00904800000000000047000000000000009503000012000e0010b6000000000000a000000000000000e505000012000e001027010000000000da010000000000002606000012000e00402a010000000000f400000000000000d301000012000e00e052000000000000cd02000000000000720800001100f1ff000000000000000000000000000000009b04000012000e0090e9000000000000a8070000000000009b04000012000e0090e9000000000000a8070000000000008204000012000e0000e000000000000011020000000000007c0800001100f1ff000000000000000000000000000000005e00000012000e0020480000000000001900000000000000b601000012000e00804f0000000000004d00000000000000a404000012000e0040f10000000000008900000000000000a404000012000e0040f100000000000089000000000000005401000012000e00b04d0000000000000c000000000000005d01000012000e00c04d0000000000001e000000000000000403000012000e005070000000000000f800000000000000c603000012000e0000ba000000000000e700000000000000a602000012000e00806600000000000030010000000000004804000012000e0050d00000000000001305000000000000b80800001100f1ff00000000000000000000000000000000ae0800001100f1ff000000000000000000000000000000001104000012000e00c0c5000000000000cc01000000000000b903000012000e00c0b80000000000003b010000000000001e05000012000e00f0f40000000000000c000000000000005505000012000e0010f50000000000002200000000000000fe04000012000e00c0f40000000000001c00000000000000ea03000012000e00c0bd000000000000a8010000000000000d07000012000e00604f0100000000009b000000000000004201000012000e00604d00000000000017000000000000004b01000012000e00804d00000000000022000000000000008102000012000e00f0630000000000003d000000000000008405000012000e0040f50000000000000c00000000000000ee01000012000e00505c00000000000097020000000000009204000012000e0020e200000000000061070000000000009204000012000e0020e20000000000006107000000000000900800001100f1ff000000000000000000000000000000000601000012000e00e04a00000000000014000000000000001a01000012000e00204b000000000000b201000000000000b600000012000e00c0490000000000001600000000000000f606000012000e00404f0100000000001e000000000000006a03000012000e00d09f00000000000087120000000000002d04000012000e00a0c9000000000000ec01000000000000dc01000012000e00b0550000000000001e040000000000006103000012000e00
+ Size: 0x1000
+ Offset: 0x7000
+ - Type: Fill
+ Pattern: 0040cc308e7f0000b543cc308e7f00002044cc308e7f0000e0e8cb308e7f00002005d0308e7f000000e0cb308e7f0000000000000000000090e5cb308e7f000000000000000000000000000000000000000000000000000000000000000000009044cc308e7f00006044cc308e7f00004044cc308e7f00000000000000000000000000000000000000000000000000007044cc308e7f00005044cc308e7f0000000000000000000000000000000000002044cc308e7f000000000000000000003044cc308e7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003044cc308e7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c044cc308e7f0000b044cc308e7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a044cc308e7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008044cc308e7f00004040cc308e7f0000000000000000000004000c000000000028e0cb308e7f0000010000000000000088e5cb308e7f00000000000000000000000000000000000090fecb308e7f00000300000002000000030000001a0000009841cc308e7f0000b841cc308e7f0000bc41cc308e7f0000000000000500a00000000000000000000000000000000000000000000000000000000000000000000000000000000000d043cc308e7f000000000000000000000040cc308e7f00003650cc308e7f00003650cc308e7f0000e007d0308e7f0000c0e2cb308e7f000000000000000000000000000000000000040000000000000070e3cb308e7f0000c0e2cb308e7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000e0cb308e7f0000000000000000000000e0cb308e7f0000000000000000000000e0cb308e7f0000000000000000000000e0cb308e7f0000000000000000000000e0cb308e7f0000000000000000000000e0cb308e7f0000000000000000000000e0cb308e7f0000000000000000000000e0cb308e7f0000000000000000000000e0cb308e7f0000000000000000000000e0cb308e7f0000000000000000000000e0cb308e7f0000000000000000000000e0cb308e7f0000000000000000000000e0cb308e7f0000000000000000000000e0cb308e7f0000000000000000000000e0cb308e7f0000000000000000000000e0cb308e7f000000000000000000000000000000000000b543cc308e7f0000000000000000000001000000000000000000000000000000144dcf308e7f000009000000030000000a4dcf308e7f00000900000002000000004dcf308e7f0000090000000100000010e7cb308e7f0000170000000000000027e7cb308e7f000017000000000000003ee7cb308e7f0000170000000000000055e7cb308e7f00001c0000000000000055e7cb308e7f0000150000000000000071e7cb308e7f0000130000000000000071e7cb308e7f00000c0000000000000084e7cb308e7f0000140000000000000084e7cb308e7f00000d0000000000000098e7cb308e7f00000b0000000000000098e7cb308e7f0000040000000000000059e7cb308e7f0000180000000000000059e7cb308e7f0000110000000000000075e7cb308e7f00000f0000000000000075e7cb308e7f0000080000000000000088e7cb308e7f0000100000000000000088e7cb308e7f000009000000000000009ce7cb308e7f000007000000000000009ce7cb308e7f00000000000000000000676c6962632d6877636170732f7838362d36342d76342f676c6962632d6877636170732f7838362d36342d76332f676c6962632d6877636170732f7838362d36342d76322f746c732f68617377656c6c2f6176783531325f312f7838365f36342f746c732f68617377656c6c2f7838365f36342f746c732f6176783531325f312f7838365f36342f746c732f7838365f36342f00000000000000000000000000d0e7cb308e7f000048e8cb308e7f00000000000000000000000000000000000048e8cb308e7f0000c52dcf308e7f000000000000000000001010cf308e7f0000070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c52dcf308e7f000000000000000000001810cf308e7f00000b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002f6c696236342f6c6962737464632b2b2e736f2e3600000000000000000000000000a0308e7f0000c0e8cb308e7f0000301bc2308e7f0000e0edcb308e7f000000e0cb308e7f0000e0e8cb308e7f0000000000000000000070edcb308e7f00000000000000000000601bc2308e7f0000401cc2308e7f0000301cc2308e7f00000000000000000000f01bc2308e7f0000001cc2308e7f0000701cc2308e7f0000801cc2308e7f0000901cc2308e7f0000101cc2308e7f0000201cc2308e7f0000801bc2308e7f0000901bc2308e7f0000701bc2308e7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000501cc2308e7f000000000000000000000000000000000000601cc2308e7f0000d01cc2308e7f0000a01bc2308e7f0000c01bc2308e7f0000b01bc2308e7f0000d01bc2308e7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f01cc2308e7f0000e01cc2308e7f0000b01cc2308e7f0000a01cc2308e7f0000d01cc2308e7f00000000000000000000101dc2308e7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001dc2308e7f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e01bc2308e7f00004000a0308e7f0000d013aa308e7f00000c002400000000000000000000000000000000000000000068edcb308e7f000000000000000000002005d0308e7f00000070c9308e7f000041000000fc070000ff0100000f0000003803a0308e7f00003813a0308e7f00004830a0308e7f0000000000001d01c40000020000030000000000000000000000000000000000000000000000000000000000000000000000366ba7308e7f0000a0edcb308e7f00000000a0308e7f00000088c2308e7f00000050ba308e7f0000e007d0308e7f0000000000000000000000000000000000000000000000000000040000000000000050eccb308e7f0000a0ebcb308e7f000000000000000000001f000000000000003c9c0c1f0000000000000000000000000000000000000000c0fccb308e7f000000000000000000000000000001000000000000000100000000000000000000000000000000000000000000000000000000000000000000002830a2308e7f00000100000000000000e0e8cb308e7f00002830a2308e7f00000887c1308e7f000000000000000000002000000000000000080000000000000000000000000000002000000000000000010000000000000000000000000000000887210000000000f8c80000000000000300000000000000000000000000000088edcb308e7f0000000000000000000001000000000000006c6962737464632b2b2e736f2e36000000000000000000002f6c69623634006c6962737464632b2b2e736f2e3600000000000000000000002f6c696236342f6c69626d2e736f2e3600000000000000000000000000000000003092308e7f0000c0edcb308e7f000080ed9f308e7f0000e0f2cb308e7f0000e0e8cb308e7f0000e0edcb308e7f0000000000000000000070f2cb308e7f0000000000000000000090ed9f308e7f000080ee9f308e7f000070ee9f308e7f000010ee9f308e7f000030ee9f308e7f000040ee9f308e7f0000b0ee9f308e7f0000c0ee9f308e7f0000d0ee9f308e7f000050ee9f308e7f000060ee9f308e7f0000b0ed9f308e7f0000c0ed9f308e7f0000a0ed9f308e7f00000000000000000000000000000000000000000000000000000000000000000000000000000000000090ee9f308e7f000000000000000000000000000000000000a0ee9f308e7f000010ef9f308e7f0000d0ed9f308e7f0000f0ed9f308e7f0000e0ed9f308e7f000000ee9f308e7f0000000000000000000000ef9f308e7f0000000000000000000000000000000000000000000000000000000000000000000030ef9f308e7f000020ef9f308e7f0000f0ee9f308e7f0000e0ee9f308e7f000010ef9f308e7f0000000000000000000050ef9f308e7f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040ef9f308e7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020ee9f308e7f0000403092308e7f0000500493308e7f00000b002300000000000000000000000000000000000000000068f2cb308e7f000000000000000000002005d0308e7f00002076c9308e7f000013000000fa0300007f0000000d000000303392308e7f0000303792308e7f0000d44692308e7f0000000000001d0184000002000003000000030000000000000000000000000000000000000000000000000000000000000096e492308e7f0000a0f2cb308e7f0000003092308e7f000030f19f308e7f000000209a308e7f0000e007d0308e7f0000000000000000000000000000000000000000000000000000040000000000000050f1cb308e7f0000a0f0cb308e7f000000000000000000001f000000000000006951e467000000000000000000000000000000000000000020fdcb308e7f00000000000000000000000000000100000000000000010000001800000000000000000000000000000000000000000000000000000000000000b85992308e7f00000100000000000000e0f7cb308e7f0000f05f60308e7f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068bd0d000000000098020000000000000400000000000000000000000000000088f2cb308e7f0000000000000000000001000000000000006c69626d2e736f2e360000000000000000000000000000002f6c69623634006c69626d2e736f2e36000000000000000000000000000000002f6c696236342f6c69626763635f732e736f2e310000000000000000000000000090c9308e7f0000c0f2cb308e7f0000184ccb308e7f0000e0f7cb308e7f0000e0edcb308e7f0000e0f2cb308e7f0000000000000000000070f7cb308e7f00000000000000000000184ccb308e7f0000f84ccb308e7f0000e84ccb308e7f00000000000000000000a84ccb308e7f0000b84ccb308e7f0000284dcb308e7f0000384dcb308e7f0000484dcb308e7f0000c84ccb308e7f0000d84ccb308e7f0000384ccb308e7f0000484ccb308e7f0000284ccb308e7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000084dcb308e7f000000000000000000000000000000000000184dcb308e7f0000884dcb308e7f0000584ccb308e7f0000784ccb308e7f0000684ccb308e7f0000884ccb308e7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a84dcb308e7f0000984dcb308e7f0000684dcb308e7f0000584dcb308e7f0000884dcb308e7f00000000000000000000c84dcb308e7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b84dcb308e7f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000984ccb308e7f00004090c9308e7f000050c6c9308e7f00000b002100000000000000000000000000000000000000000068f7cb308e7f000000000000000000002005d0308e7f0000f077c9308e7f000013000000830000000f0000000a0000000093c9308e7f00008093c9308e7f00002c95c9308e7f0000000000001d018400000200000300000000000000000000000000000000000000000000000000000000000000000000004cb1c9308e7f0000a0f7cb308e7f00000090c9308e7f0000c851cb308e7f00000000cb308e7f0000e007d0308e7f0000000000000000000000000000000000000000000000000000040000000000000050f6cb308e7f0000a0f5cb308e7f000000000000000000001f00000000000000309c0c1f000000000000000000000000000000000000000060fdcb308e7f00000000000000000000000000000100000000000000010000000000000000000000000000000000000000000000000000000000000000000000d89ec9308e7f00000100000000000000e0f2cb308e7f0000d89ec9308e7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0bb01000000000010040000000000000500000000000000000000000000000088f7cb308e7f0000000000000000000001000000000000006c69626763635f732e736f2e3100000000000000000000002f6c69623634006c69626763635f732e736f2e310000000000000000000000002f6c696236342f6c6962632e736f2e3600000000000000000000000000000000000060308e7f0000c0f7cb308e7f0000a0ab7f308e7f000030facf308e7f0000e0f2cb308e7f0000e0f7cb308e7f0000000000000000000070fccb308e7f00000000000000000000a0ab7f308e7f000050ac7f308e7f000040ac7f308e7f0000e0ab7f308e7f000000ac7f308e7f000010ac7f308e7f000080ac7f308e7f000090ac7f308e7f0000a0ac7f308e7f000020ac7f308e7f000030ac7f308e7f000000000000000000000000000000000000b0ab7f308e7f00000000000000000000000000000000000000000000000000000000000000000000000000000000000060ac7f308e7f00000000000000000000000000000000000070ac7f308e7f0000e0ac7f308e7f0000c0ab7f308e7f00000000000000000000d0ab7f308e7f000000000000000000000000000000000000d0ac7f308e7f0000000000000000000000000000000000000000000000000000000000000000000000ad7f308e7f0000f0ac7f308e7f0000c0ac7f308e7f0000b0ac7f308e7f0000e0ac7f308e7f0000000000000000000020ad7f308e7f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010ad7f308e7f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0ab7f308e7f0000400060308e7f0000d0a762308e7f00000e001e00000000000000000000000000000000000000000068fccb308e7f000000000000000000002005d0308e7f0000c079c9308e7f00002b000000ff030000ff0000000e000000d80360308e7f0000d80b60308e7f0000781b60308e7f0000000000001d01c40000020000030000000300000000000000000000000000000000000000000000000000000000000000b4e561308e7f0000a0fccb308e7f0000000060308e7f0000d09f80308e7f000000e079308e7f0000e007d0308e7f0000000000000000000000000000000000000000000000000000040000000000000050fbcb308e7f0000a0facb308e7f000000000000000000001f000000000000006651e467000000000000000000000000000000000000000090fdcb308e7f00000000000000000000000000000100000000000000010000001800000000000000000000000000000000000000000000000000000000000000d04c60308e7f0000010000000000000030facf308e7f00004869cc308e7f0000b8787f308e7f00002800000000000000880000000000000008000000000000000000000000000000a80000000000000002000000000000000000000000000000b8781f000000000048370000000000000600000000000000000000000000000088fccb308e7f0000000000000000000001000000000000006c6962632e736f2e360000000000000000000000000000002f6c69623634006c6962632e736f2e3600000000000000000000000000000000e0e8cb308e7f0000e0edcb308e7f0000e0f7cb308e7f000030facf308e7f0000e0f2cb308e7f00000000000000000000e0e8cb308e7f0000e0edcb308e7f0000e0f7cb308e7f000030facf308e7f0000e0f2cb308e7f00000000000000000000e0edcb308e7f0000e0f7cb308e7f000030facf308e7f00000000000000000000e0edcb308e7f0000e0f7cb308e7f000030facf308e7f00000000000000000000e0f2cb308e7f0000e0f7cb308e7f00000000000000000000e0f2cb308e7f0000e0f7cb308e7f00000000000000000000e0f7cb308e7f000030facf308e7f00000000000000000000e0f7cb308e7f000030facf308e7f000000000000000000002005d0308e7f0000e0e8cb308e7f0000e0edcb308e7f0000e0f2cb308e7f0000e0f7cb308e7f000030facf308e7f000000000000000000002005d0308e7f0000e0e8cb308e7f0000e0edcb308e7f0000e0f2cb308e7f0000e0f7cb308e7f000030facf308e7f000000000000000000006d3fcf308e7f0000000000000000000000000000000000006d3fcf308e7f000000000000000000000000000000000000f3248864bc550000751a690900000000de248864bc550000e8248864bc550000b491960600000000de248864bc5500006d3fcf308e7f0000000000000000000000000000000000006d3fcf308e7f000000000000000000000000000000000000c543cc308e7f0000f675ae030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ Size: 0x2000
+ Offset: 0x8000
+ - Type: Fill
+ Pattern: 7f454c4602010100000000000000000003003e000100000000000000000000004000000000000000d0100000000000000000000040003800040040000f000e0001000000050000000000000000000000000000000000000000000000000000003610000000000000361000000000000000100000000000000200000004000000200400000000000020040000000000002004000000000000c000000000000000c00000000000000008000000000000000400000004000000e004000000000000e004000000000000e00400000000000054000000000000005400000000000000040000000000000050e57464040000003405000000000000340500000000000034050000000000003c000000000000003c0000000000000004000000000000000c0000000c00000000000000090000000000000008000000000000000a0000000000000000000000000000000b00000000000000000000000000000000000000000000000200000000000000010000000300000005000000040000000000000006000000070000000200000001000000040000001a0000000120000b411000000004081c0020008080001080000000020000000480000000010000000700000000ca1bb018a3436e94789e7cda109a9e26b062654bcc086c0c8e1e82528f3068864b85e67e55dd716d5887ff000000000000000000000000000000000000000000000000000000000100000012000b008006000000000000f9020000000000002100000012000b00b00900000000000007040000000000005700000022000b0080090000000000002e000000000000006a00000022000b00c00d00000000000063000000000000007700000012000b00300e0000000000002a000000000000008c00000012000b00600e0000000000009c000000000000001500000012000b0080090000000000002e000000000000003600000012000b00c00d00000000000063000000000000004a00000022000b008006000000000000f9020000000000005c00000022000b00b00900000000000007040000000000008500000022000b00300e0000000000002a00000000000000005f5f7664736f5f67657474696d656f66646179005f5f7664736f5f74696d65005f5f7664736f5f636c6f636b5f67657474696d65005f5f7664736f5f636c6f636b5f6765747265730067657474696d656f666461790074696d6500636c6f636b5f67657474696d6500636c6f636b5f676574726573005f5f7664736f5f67657463707500676574637075005f5f7664736f5f7367785f656e7465725f656e636c617665006c696e75782d7664736f2e736f2e31004c494e55585f322e3600000000020002000200020002000200020002000200020002000100010001000100a1bfee0d140000001c000000a5000000000000000100000002000100f675ae031400000000000000b5000000000000000e00000000000000a5000000000000001e0000000000000002000000000000000600000000000000f0010000000000000b000000000000001800000000000000050000000000000010030000000000000a00000000000000bf00000000000000f5feff6f00000000880100000000000004000000000000002001000000000000f0ffff6f00000000d003000000000000fcffff6f00000000e803000000000000fdffff6f000000000200000000000000000000000000000000000000000000000600000004000000000000004c696e7578000000000906000600000001000000000100004c696e757800000000000000040000001400000003000000474e5500585a45bcff77f58f5f9063149c609fc61bfef054011b033b38000000060000004c010000540000004c0400007c0000007c0400009c0000008c080000cc000000fc080000f40000002c090000140100001400000000000000017a5200017810011b0c070890010000240000001c000000f0000000f902000000410e108602430d064583030368010c0708410c061000001c00000044000000c80300002e00000000410e108602430d06690c07080000002c00000064000000d80300000704000000410e108602430d064d83078c068d058e048f03036b010c0708410c061000002400000094000000b80700006300000000410e108602430d0602550c0708410c0610480c070800001c000000bc000000000800002a00000000410e108602430d06650c070800000024000000dc000000100800009c00000000410e108602430d06418303024e0c0708410c061000000000000000000000000000000000000000554889e5534883ec184885ff0f8452010000448b05e7b9ffff41f6c001754a8b05dfb9ffff83f80175530f01f9669048c1e2204809c24c8b15ebb9ffff488b05c4b9ffff448b1dcdb9ffff8b0dcbb9ffff4c8b0dc8b9ffff8b1da2b9ffff4439c30f8497000000eba9813d91b9ffffffffff7f0f843b010000f390eb9583f8020f8502020000448b0df3c8fffff60509c9ffff010f84ee0100004183e1fe0f01f9669048c1e2204809d0482b05d7c8ffff448b15e0c8ffff0fb615ddc8ffff89d1f6d94889c348d3eb89d148d3e084d2480f48c34c8955e848f765e8480facd020488b15a8c8ffff8b0d92c8ffff4439c94189c975974801c2e938ffffff49b8ffffffffffffff7f4c21c24829c2480fbae23e0f82920000004c21c2490fafd34c01d248d3ea488955f031c04881fa00ca9a3b72184881c2003665c4488955f0ffc04881faffc99a3b77ea89c04c01c848890789d04869c0d34d621048c1e8264889470831c04885f675074883c4185b5dc3813d88b8ffffffffff7f488d0d5de9ffff488d1556b9ffff480f44d18b0a890e488d0d4be9ffff488d1544b9ffff480f44d18b0a894e04ebc031d2e96efffffff390448b0545e8ffff41f6c00175f18b053de8ffff83f801753f0f01f9669048c1e2204809c24c8b0d49e8ffff4c8b1d22e8ffff448b152be8ffff8b0d29e8ffff488b0526e8ffff8b1d00e8ffff4439c30f848b000000eba983f8027578448b0d69c7fffff6057fc7ffff0174684183e1fe0f01f9669048c1e2204809d0482b0551c7ffff448b155ac7ffff440fb61d56c7ffff4489d9f6d94889c248d3ea4489d948d3e04584db480f48c24c8955e048f765e0480facd020488b151ec7ffff8b0d08c7ffff4439c94189c975974801c2e950ffffffb8600000000f05e9d7feffff49b8ffffffffffffff7f4c21c24c29da480fbae23e724a4c21c2490fafd24c01ca48d3ea48030561b7ffff48031562b7ffff488955f031c94881fa00ca9a3b72184881c2003665c4488955f0ffc14881faffc99a3b77ea89c94801c8e95bfeffff31d2ebb90f1f8000000000554889e5488d05f5b6ffff813defb6ffffffffff7f488d0de4e6ffff480f45c8488b41204885ff74034889075dc36690554889e54157415641554154534883ec3083ff0f0f87bc010000b80100000089f9d3e0a9830800000f844f0100004c8d159bb6ffff4189f849c1e0044f8d4c0220458b1a41f6c3017536418b420483f801753f0f01f9669048c1e2204809c24d8b7908498b4208458b6218418b4a1c4d8b31418b1a4439db0f8495000000ebc141817a04ffffff7f0f84d1010000f390ebaf83f8020f853b0100008b1dafc5fffff605c5c5ffff010f842801000083e3fe0f01f9669048c1e2204809d0482b0594c5ffff448b359dc5ffff440fb63d99c5ffff4489f9f6d94889c248d3ea4489f948d3e04584ff480f48c24c8975b048f765b0480facd020488b1561c5ffff8b0d4bc5ffff39d989cb75964801c2e94cffffff48bfffffffffffffff7f4821fa4829c2480fbae23e0f829d0000004821fa490fafd44c01fa48d3ea488955d031c04881fa00ca9a3b72184881c2003665c4488955d0ffc04881faffc99a3b77ea89c04c01f04889064889560831c04883c4305b415c415d415e415f5dc3a860745189fa48c1e204488d0542b5ffff488d4c02208b3d37b5ffff40f6c7017410813d2bb5ffffffffff7f7440f390ebe4488b01488906488b4108488946088b1d0db5ffff31c039fb74a5ebc831d2e963ffffffa8107509b8e40000000f05eb8f4c8d15dab5ffffe94afeffff488d05dee4ffff488d4402208b1dd3e4fffff6c30175134c8b00488b50088b3dc1e4ffff39df7406ebe2f390ebde48035108488b09488955d031c04881fa00ca9a3b721c31db4881c2003665c4488955d0ffc34881faffc99a3b77ea89dbeb0231db4c01c14801d948890e48895608e90fffffff83ff04488d0557e5ffff4c8d1d60e4ffff4c0f44d8488d0565e5ffff488d0d6ee4ffff480f44c84a8d0401488945b84a8d440108488945c0418b038945cca801757183ff04488d0525e4ffff488d0d0ee5ffff480f44c18b400483f80175580f01f966904989d049c1e0204909c0488b45c0488b184c8b35ede4ffff4c8b2df6e3ffff448b3defe4ffff8b15f9e3ffff448b15e6e4ffff8b0df0e3ffff488b45b8488b00458b23443b65cc0f8487000000eb85f390eb8183f8020f85b7feffff8b1d2bc3fffff60541c3ffff010f84a4feffff83e3fe0f01f9669048c1e2204809d0482b0510c3ffff448b0519c3ffff440fb61515c3ffff4489d1f6d94889c248d3ea4489d148d3e04584d2480f48c24c8945a848f765a8480facd0204c8b05ddc2ffff8b0dc7c2ffff39d989cb75964901c0e936ffffff49bbffffffffffffff7f4d21d883ff044d0f44ee410f44d74d29e8490fbae03e724a4d21d8490fafd04801da83ff04410f44ca48d3ea49030149035108488955d031c94881fa00ca9a3b72184881c2003665c4488955d0ffc14881faffc99a3b77ea89c94801c8e962fdffff31d2ebb9660f1f840000000000554889e583ff0f7751b80100000089f9d3e0a9930800007424488d05a0b2ffff813d9ab2ffffffffff7f488d0d8fe2ffff480f45c88b89e8000000eb09b940420f00a860741431c04885f6740b48c7060000000048894e085dc3b8e50000000f055dc390909090909090909090909090554889e5b87b000000f30fc7f84885ff740a89c181e1ff0f0000890f4885f67405c1e80c890631c05dc3909090909090554889e55389c883f802724883f8037743488b4d1048c7c32800000048833c190075314883c3084881fb0001000075ec488b19488d0d000000000f01d7488b5d10c743080400000048837b1800752131c05bc9c3b8eaffffffebf6488b5d1089430866897b0c6689730e48895310ebd84889e14889d84889e34883e30f4883e4f05050fc488b40180faee8ffd0488d641c1083f8007ebae96bffffffaef7ffffea000000820200000505a0f7ffffe10000003b000000050306f8ffffd6000000820200000505f8f7ffffcd0000003b000000050318f9ffffc20000008202000005050af9ffffb90000003b000000050354f9ffffae00000082020000050546f9ffffa50000003b000000050397faffff9a00000082020000050589faffff910000003b0000000503d9faffff86000000820200000505cbfaffff7d0000003b0000000503cafcffff72000000820200000505bcfcffff690000003b000000050325fdffff5e00000082020000050517fdffff550000003b00000005035dfeffff4a0000001602000004040faee80f310f01f90faee80f310f01f90faee80f310f01f90faee80f310f01f90faee80f310f01f90faee80f310f01f90faee80f310f01f90faee80f310f01f9f30fc7f80000000000000000002e74657874002e616c74696e7374725f7265706c6163656d656e74002e616c74696e737472756374696f6e73002e64796e737472002e65685f6672616d655f686472002e676e752e76657273696f6e002e64796e73796d002e676e752e68617368002e6e6f7465002e65685f6672616d65002e676e752e76657273696f6e5f64002e64796e616d6963002e7368737472746162000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005d00000005000000020000000000000020010000000000002001000000000000680000000000000003000000000000000400000000000000040000000000000059000000f6ffff6f0200000000000000880100000000000088010000000000006400000000000000030000000000000008000000000000000000000000000000510000000b0000000200000000000000f001000000000000f00100000000000020010000000000000400000001000000080000000000000018000000000000002e00000003000000020000000000000010030000000000001003000000000000bf0000000000000000000000000000000100000000000000000000000000000044000000ffffff6f0200000000000000d003000000000000d003000000000000180000000000000003000000000000000200000000000000020000000000000073000000fdffff6f0200000000000000e803000000000000e80300000000000038000000000000000400000002000000040000000000000000000000000000008200000006000000030000000000000020040000000000002004000000000000c00000000000000004000000000000000800000000000000100000000000000063000000070000000200000000000000e004000000000000e004000000000000540000000000000000000000000000000400000000000000000000000000000036000000010000000200000000000000340500000000000034050000000000003c000000000000000000000000000000040000000000000000000000000000006900000001000000020000000000000070050000000000007005000000000000040100000000000000000000000000000800000000000000000000000000000001000000010000000600000000000000800600000000000080060000000000007c080000000000000000000000000000100000000000000000000000000000001d000000010000000200000000000000fc0e000000000000fc0e000000000000ee0000000000000000000000000000000100000000000000000000000000000007000000010000000600000000000000ea0f000000000000ea0f00000000000044000000000000000000000000000000010000000000000000000000000000008b000000030000000000000000000000000000000000000036100000000000009500000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ Size: 0x2000
+ Offset: 0xa000
+ - Type: Fill
+ Pattern: 7f454c4602010103000000000000000003003e000100000030ef0100000000004000000000000000404a0e000000000000000000400038000b004000230022000100000004000000000000000000000000000000000000000000000000000000301b000000000000301b00000000000000100000000000000100000005000000002000000000000000200000000000000020000000000000e581020000000000e5810200000000000010000000000000010000000400000000b002000000000000b002000000000000b0020000000000a8b8000000000000a8b800000000000000100000000000000100000006000000007303000000000000730300000000000073030000000000502d000000000000183200000000000000100000000000000200000006000000908e030000000000908e030000000000908e0300000000005001000000000000500100000000000008000000000000000400000004000000a802000000000000a802000000000000a8020000000000002000000000000000200000000000000008000000000000000400000004000000c802000000000000c802000000000000c80200000000000024000000000000002400000000000000040000000000000053e5746404000000a802000000000000a802000000000000a80200000000000020000000000000002000000000000000080000000000000050e5746404000000182503000000000018250300000000001825030000000000dc09000000000000dc09000000000000040000000000000051e574640600000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000052e5746404000000007303000000000000730300000000000073030000000000001d000000000000001d0000000000000100000000000000040000001000000005000000474e5500020000c0040000000300000000000000040000001400000003000000474e5500ecbdf3f8784d7a13eff2fdd4352abbee93cce02c00000000250000002a00000000000000040000001e0000000100000000000000000000000600000000000000280000002900000027000000100000002000000025000000120000000800000000000000030000002200000000000000050000000c00000009000000210000002300000000000000180000000f000000170000001600000000000000000000000200000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001c000000190000001d0000000000000000000000000000000e000000140000000000000024000000000000001b0000000000000000000000110000000a00000000000000000000000d000000000000000000000026000000000000001a000000000000000700000000000000130000000b000000000000000000000015000000000000000000000025000000010000000400000008000000203441281806801709c2204005078102580c3a28300224840320a4a710e6282a000000000100000002000000000000000300000004000000070000000800000000000000090000000a0000000b0000000d0000000000000000000000000000001000000011000000120000001300000018000000190000001a0000001b0000001d0000001f0000002100000000000000000000002400000025000000000000000000000026000000000000002700000029000000eb014688bf4bc20e797092cdba1573426a43289f0bd6bb242b9b6f366b803cb2ddb9d79f69374ab5a89414f04f0f35571ce9b5f292d170ed9db2544ea51b4381dfed6f8f3d107554e4c11ee8eed28a7c829587d03a85eb1ce9b366ffd76afaa155a9a54261a29206a4caf718c12e5c7dcc3bffcbd93d6cf6d83d6cf639b70257eeb5bd85da005cc29d0440172364bc3c49de5878b586c309e45530000df9f3c30df9f3c3000000000000000000000000000000000000000000000000e301000012000a0030a500000000000008020000000000009700000012000a0010a0010000000000d101000000000000390200001100130004a40300000000000100000000000000ad0200001100f1ff00000000000000000000000000000000d301000011000f00008b03000000000090030000000000002802000012000a00903901000000000063000000000000001b02000011000b0010250300000000000400000000000000010000001100120000900300000000005010000000000000ab01000012000a00a036010000000000e7020000000000004d00000011000f00a08a0300000000000800000000000000e700000011000f00a88a03000000000004000000000000007801000012000a0060520000000000003b000000000000007200000012000a0000670000000000000900000000000000ad00000012000a00003a010000000000ea00000000000000f701000012000a00d0970100000000000c000000000000009101000012000a0010550000000000005003000000000000c000000012000a0030210000000000005a000000000000008f0200001100130058a303000000000028000000000000005e00000012000a00c023000000000000a9010000000000000a01000012000a00807201000000000041000000000000003101000012000a00c0500000000000002b000000000000004401000012000a00f0380000000000000500000000000000c101000012000a0070f90000000000007b010000000000001901000012000a00903501000000000019000000000000002000000012000a00a0d3000000000000c400000000000000e30200001100f1ff00000000000000000000000000000000fc00000011000f00d07703000000000008000000000000005d01000012000a00e0a102000000000005000000000000008600000012000a0090ee000000000000a900000000000000b90200001100f1ff00000000000000000000000000000000c30200001100f1ff000000000000000000000000000000008302000011000f00c8770300000000000400000000000000d500000012000a00206e01000000000055000000000000005602000012000a00902100000000000067000000000000006702000012000a00304c00000000000088040000000000005401000011000f00e08a03000000000008000000000000001002000012000a0020f700000000000041020000000000003800000012000a00504b000000000000d4000000000000000e00000012000a00809f0100000000008200000000000000cd0200001100f1ff00000000000000000000000000000000d80200001100f1ff00000000000000000000000000000000005f72746c645f676c6f62616c005f646c5f61756469745f707265696e6974005f646c5f66696e645f64736f5f666f725f6f626a656374005f646c5f657863657074696f6e5f637265617465005f5f6c6962635f737461636b5f656e64005f646c5f63617463685f657863657074696f6e005f5f72746c645f6c6962635f66726565726573005f646c5f666174616c5f7072696e7466005f646c5f61756469745f73796d62696e645f616c74005f646c5f6465616c6c6f636174655f746c73005f646c5f7369676e616c5f657863657074696f6e005f5f74756e61626c655f6765745f76616c005f5f6c6962635f656e61626c655f736563757265005f5f727365715f6f6666736574005f5f746c735f6765745f61646472005f646c5f6765745f746c735f7374617469635f696e666f005f646c5f657863657074696f6e5f66726565005f646c5f64656275675f7374617465005f646c5f61726776005f5f72746c645f76657273696f6e5f706c616365686f6c646572005f5f6e70746c5f6368616e67655f737461636b5f7065726d005f5f646c5f66696e645f6f626a6563745f696e7465726e616c005f646c5f616c6c6f636174655f746c735f696e6974005f646c5f726561646f6e6c795f61726561005f72746c645f676c6f62616c5f726f005f646c5f72746c645f64695f736572696e666f005f646c5f7838365f6765745f6370755f6665617475726573005f646c5f6d636f756e74005f5f727365715f666c616773005f646c5f616c6c6f636174655f746c73005f5f6e70746c5f696e697469616c5f7265706f72745f6576656e7473005f646c5f7369676e616c5f6572726f72005f646c5f657863657074696f6e5f6372656174655f666f726d6174005f5f727365715f73697a65005f725f6465627567006c642d6c696e75782d7838362d36342e736f2e3200474c4942435f322e322e3500474c4942435f322e3300474c4942435f322e3400474c4942435f322e333400474c4942435f322e333500474c4942435f50524956415445000000000700070007000200070007000600070007000200070007000700070007000700070002000700030007000700070007000700070006000580070003000400060007000700070007000200070007000500060000000100010001000100f23b7d07140000001c00000098020000000000000100000002000100751a6909140000001c000000ad0200000000000001000000030002001369690d1400000024000000b902000008000000ad0200000000000001000000040002001469690d1400000024000000c302000008000000b9020000000000000100000005000200b49196061400000024000000cd02000008000000c3020000000000000100000006000200b59196061400000024000000d802000008000000cd02000000000000010000000700020085cf63091400000000000000e302000008000000d8020000000000000000000000730300000000000800000000000000bde0020000000000087303000000000008000000000000000dd902000000000010730300000000000800000000000000f3d802000000000018730300000000000800000000000000c5e002000000000020730300000000000800000000000000d5e00200000000002873030000000000080000000000000025d902000000000030730300000000000800000000000000ede00200000000003873030000000000080000000000000007e1020000000000407303000000000008000000000000001ee10200000000004873030000000000080000000000000030e10200000000005073030000000000080000000000000044e102000000000058730300000000000800000000000000a82003000000000060730300000000000800000000000000cbd80200000000006873030000000000080000000000000038d90200000000007073030000000000080000000000000057e10200000000007873030000000000080000000000000063e10200000000008073030000000000080000000000000079e10200000000008873030000000000080000000000000091e1020000000000907303000000000008000000000000009de102000000000098730300000000000800000000000000b7e1020000000000a0730300000000000800000000000000c6e1020000000000a8730300000000000800000000000000d6e1020000000000b0730300000000000800000000000000e2d8020000000000b8730300000000000800000000000000
+ Size: 0x1000
+ Offset: 0xc000
+ - Type: Fill
+ Pattern: 2005d0308e7f00000700000000000000e007d0308e7f00000000000000000000e0f7cb308e7f000000000000000000000000000000000000010000000000000000000000000000000000000000000000f05dc9308e7f00007f000000000000005200000000000000c030ce308e7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000950c0000000000000805000000000000d0e7cb308e7f00000060cc308e7f000018238864bc55000090eecf308e7f00000000000000000000e0f7cb308e7f000030facf308e7f00000000000000000000c004d0308e7f00000000000000000000000000000000000000000000000000000000000000000000a0eecf308e7f0000c0eecf308e7f0000d0eecf308e7f000000efcf308e7f000010efcf308e7f000020efcf308e7f0000e0eecf308e7f0000f0eecf308e7f00000000000000000000000000000000000090eecf308e7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050efcf308e7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040efcf308e7f000030efcf308e7f000060efcf308e7f0000000000000000000080efcf308e7f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070efcf308e7f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0eecf308e7f00004060cc308e7f000000000000000000000b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d07dc9308e7f0000080000002500000003000000080000004864cc308e7f00006864cc308e7f0000f864cc308e7f0000000000001d01840000000000000000000000000000000000000000000000000000000000000000000000000000000000826ccc308e7f000000000000000000000060cc308e7f00001805d0308e7f0000e501cf308e7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000073030000000000001d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000200000000000000907ec9308e7f00000200000000000000a80000000000000000020000000000006051c9308e7f0000010000000000000000000000000000000800d0308e7f00000800d0308e7f0000004ac9308e7f0000004ac9308e7f00002800d0308e7f00002800d0308e7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000002005d0308e7f0000f098cc308e7f000000000000000000000060cc308e7f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000537a0000000000000060cb308e7f0000000000000000000002000000000000000300000000000000b0e5cb308e7f0000d06dc9308e7f00000070c9308e7f0000906ec9308e7f0000000000000000000001000000000000000000000000000000286ccc308e7f00000000000000000000010000000000000080de0a0000000000000000000000000000000000000000000000000000000000000000000000000018238864bc5500008004d0308e7f0000000000000000000000708864bc550000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000682774e3fd7f0000000000000000000000208864bc550000c80ad0308e7f0000c85d8864bc55000000e0cb308e7f000000000000000000002005d0308e7f00000000000000000000b00ad0308e7f00000000000000000000f85d8864bc550000d85e8864bc550000c85e8864bc5500000000000000000000785e8864bc550000885e8864bc550000085f8864bc550000185f8864bc550000285f8864bc550000985e8864bc550000a85e8864bc550000085e8864bc550000185e8864bc550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e85e8864bc550000b85e8864bc5500000000000000000000f85e8864bc5500000000000000000000285e8864bc550000485e8864bc550000385e8864bc550000585e8864bc550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000585f8864bc550000485f8864bc55000000000000000000000000000000000000385f8864bc5500000000000000000000785f8864bc55000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000685f8864bc5500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000685e8864bc55000040208864bc55000040308864bc5500000d00000000000000f8fdcb308e7f00000600000000000000a80ad0308e7f00000000000000000000000000000000000030fecb308e7f000004000000010000000000000000000000b0238864bc550000b8238864bc550000b8238864bc550000010000001c01840000020000000000000300000000000000ffffffffffffffff0000000000000000000000000000000000258864bc550000000000000000000000208864bc55000028608864bc5500005d318864bc550000e007d0308e7f000000000000000000000000000000000000000000000000000004000000000000009008d0308e7f0000e007d0308e7f0000000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000c0fdcb308e7f0000000000000000000000000000010000000000000000000008000000000000000000000000000000000000000000000000000000000000000038248864bc55000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b03d000000000000500200000000000000000000000000002005d0308e7f000000000000000000002005d0308e7f000000000000000000002005d0308e7f000000000000000000002005d0308e7f000000000000000000002005d0308e7f000000000000000000002005d0308e7f000000000000000000002005d0308e7f000000000000000000002005d0308e7f000000000000000000002005d0308e7f000000000000000000002005d0308e7f000000000000000000002005d0308e7f000000000000000000002005d0308e7f000000000000000000002005d0308e7f000000000000000000002005d0308e7f000000000000000000002005d0308e7f000000000000000000002005d0308e7f000000000000000000000000000000000000c80ad0308e7f00000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ Size: 0x2000
+ Offset: 0xd000
+ - Type: SectionHeaderTable
+ NoHeaders: true
>From dfbfc1b07c5dac5c4cc923e5f1ab642ee43d6cdc Mon Sep 17 00:00:00 2001
From: Greg Clayton <gclayton at fb.com>
Date: Tue, 23 Jun 2026 12:12:31 -0700
Subject: [PATCH 2/3] Ran git-clang-format
---
lldb/include/lldb/Core/ModuleSpec.h | 3 +--
lldb/include/lldb/Target/Process.h | 2 +-
lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp | 7 +++----
3 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/lldb/include/lldb/Core/ModuleSpec.h b/lldb/include/lldb/Core/ModuleSpec.h
index 62ffa025fbf00..f74641ef0cf9f 100644
--- a/lldb/include/lldb/Core/ModuleSpec.h
+++ b/lldb/include/lldb/Core/ModuleSpec.h
@@ -301,8 +301,7 @@ class ModuleSpec {
}
}
// Only match on load address if they both have a valid value.
- if (m_load_addr.has_value() &&
- match_module_spec.m_load_addr.has_value() &&
+ if (m_load_addr.has_value() && match_module_spec.m_load_addr.has_value() &&
match_module_spec.GetLoadAddress() != GetLoadAddress())
return false;
return true;
diff --git a/lldb/include/lldb/Target/Process.h b/lldb/include/lldb/Target/Process.h
index e105dbeb2ff90..cdf0268ad6163 100644
--- a/lldb/include/lldb/Target/Process.h
+++ b/lldb/include/lldb/Target/Process.h
@@ -1425,7 +1425,7 @@ class Process : public std::enable_shared_from_this<Process>,
///
/// \param [in,out] spec
/// A module specification with as much detail as possible about the
- /// module for which we are trying to find a UUID. The
+ /// module for which we are trying to find a UUID. The
/// ModuleSpec.m_file should be filled in. If a dynamic loader is
/// calling this, the load address of the module can be filled in as
/// well. Sometimes the file path for a library can be a symlink and
diff --git a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
index 6cee49987f470..829335f38129c 100644
--- a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
+++ b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
@@ -395,7 +395,7 @@ bool ProcessElfCore::FindModuleUUID(ModuleSpec &spec) {
// best way for us to find a module is by load address, so use this trick
// if the load address is set in the module specification.
if (std::optional<lldb::addr_t> load_addr = spec.GetLoadAddress()) {
- if (std::optional<NT_FILE_Entry> nt =
+ if (std::optional<NT_FILE_Entry> nt =
GetNTFileEntryContainingAddress(*load_addr))
path = nt->path;
}
@@ -408,9 +408,8 @@ bool ProcessElfCore::FindModuleUUID(ModuleSpec &spec) {
if (it != m_uuids.end()) {
Log *log = GetLog(LLDBLog::Process);
spec.GetUUID() = it->second;
- LLDB_LOGF(log,
- "ProcessElfCore::FindModuleUUID() found UUID for %s: %s",
- spec.GetFileSpec().GetPath().c_str(),
+ LLDB_LOGF(log, "ProcessElfCore::FindModuleUUID() found UUID for %s: %s",
+ spec.GetFileSpec().GetPath().c_str(),
it->second.GetAsString().c_str());
}
}
>From e97807528c10ec8ffee78565dd14ae759c66f0da Mon Sep 17 00:00:00 2001
From: Greg Clayton <gclayton at fb.com>
Date: Tue, 23 Jun 2026 17:55:09 -0700
Subject: [PATCH 3/3] Switch to assertIn and revert previous clang format
changes on unchanged lines.
---
.../postmortem/elf-core/TestLinuxCore.py | 325 +++++++++---------
1 file changed, 163 insertions(+), 162 deletions(-)
diff --git a/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py b/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
index fddee84120bee..12e4212b1dfb8 100644
--- a/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
+++ b/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
@@ -2,9 +2,9 @@
Test basics of linux core file debugging.
"""
-import os
import shutil
import struct
+import os
import lldb
from lldbsuite.test.decorators import *
@@ -281,30 +281,30 @@ def test_FPR_SSE(self):
values["st5"] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80 0xff 0x3f}"
values["st6"] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
values["st7"] = "{0x35 0xc2 0x68 0x21 0xa2 0xda 0x0f 0xc9 0x00 0x40}"
- values["xmm0"] = (
- "{0x29 0x31 0x64 0x46 0x29 0x31 0x64 0x46 0x29 0x31 0x64 0x46 0x29 0x31 0x64 0x46}"
- )
- values["xmm1"] = (
- "{0x9c 0xed 0x86 0x64 0x9c 0xed 0x86 0x64 0x9c 0xed 0x86 0x64 0x9c 0xed 0x86 0x64}"
- )
- values["xmm2"] = (
- "{0x07 0xc2 0x1f 0xd7 0x07 0xc2 0x1f 0xd7 0x07 0xc2 0x1f 0xd7 0x07 0xc2 0x1f 0xd7}"
- )
- values["xmm3"] = (
- "{0xa2 0x20 0x48 0x25 0xa2 0x20 0x48 0x25 0xa2 0x20 0x48 0x25 0xa2 0x20 0x48 0x25}"
- )
- values["xmm4"] = (
- "{0xeb 0x5a 0xa8 0xc4 0xeb 0x5a 0xa8 0xc4 0xeb 0x5a 0xa8 0xc4 0xeb 0x5a 0xa8 0xc4}"
- )
- values["xmm5"] = (
- "{0x49 0x41 0x20 0x0b 0x49 0x41 0x20 0x0b 0x49 0x41 0x20 0x0b 0x49 0x41 0x20 0x0b}"
- )
- values["xmm6"] = (
- "{0xf8 0xf1 0x8b 0x4f 0xf8 0xf1 0x8b 0x4f 0xf8 0xf1 0x8b 0x4f 0xf8 0xf1 0x8b 0x4f}"
- )
- values["xmm7"] = (
- "{0x13 0xf1 0x30 0xcd 0x13 0xf1 0x30 0xcd 0x13 0xf1 0x30 0xcd 0x13 0xf1 0x30 0xcd}"
- )
+ values[
+ "xmm0"
+ ] = "{0x29 0x31 0x64 0x46 0x29 0x31 0x64 0x46 0x29 0x31 0x64 0x46 0x29 0x31 0x64 0x46}"
+ values[
+ "xmm1"
+ ] = "{0x9c 0xed 0x86 0x64 0x9c 0xed 0x86 0x64 0x9c 0xed 0x86 0x64 0x9c 0xed 0x86 0x64}"
+ values[
+ "xmm2"
+ ] = "{0x07 0xc2 0x1f 0xd7 0x07 0xc2 0x1f 0xd7 0x07 0xc2 0x1f 0xd7 0x07 0xc2 0x1f 0xd7}"
+ values[
+ "xmm3"
+ ] = "{0xa2 0x20 0x48 0x25 0xa2 0x20 0x48 0x25 0xa2 0x20 0x48 0x25 0xa2 0x20 0x48 0x25}"
+ values[
+ "xmm4"
+ ] = "{0xeb 0x5a 0xa8 0xc4 0xeb 0x5a 0xa8 0xc4 0xeb 0x5a 0xa8 0xc4 0xeb 0x5a 0xa8 0xc4}"
+ values[
+ "xmm5"
+ ] = "{0x49 0x41 0x20 0x0b 0x49 0x41 0x20 0x0b 0x49 0x41 0x20 0x0b 0x49 0x41 0x20 0x0b}"
+ values[
+ "xmm6"
+ ] = "{0xf8 0xf1 0x8b 0x4f 0xf8 0xf1 0x8b 0x4f 0xf8 0xf1 0x8b 0x4f 0xf8 0xf1 0x8b 0x4f}"
+ values[
+ "xmm7"
+ ] = "{0x13 0xf1 0x30 0xcd 0x13 0xf1 0x30 0xcd 0x13 0xf1 0x30 0xcd 0x13 0xf1 0x30 0xcd}"
for regname, value in values.items():
self.expect(
@@ -438,42 +438,42 @@ def test_aarch64_regs(self):
values["lr"] = "0x000000000040019c"
values["sp"] = "0x0000ffffdab7c750"
values["pc"] = "0x0000000000400168"
- values["v0"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0xe0 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v1"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0xf8 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v2"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0x04 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v3"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0x0c 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v4"] = (
- "{0x00 0x00 0x90 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v5"] = (
- "{0x00 0x00 0xb0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v6"] = (
- "{0x00 0x00 0xd0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v7"] = (
- "{0x00 0x00 0xf0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v8"] = (
- "{0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11}"
- )
- values["v27"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v28"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v31"] = (
- "{0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30}"
- )
+ values[
+ "v0"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0xe0 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v1"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0xf8 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v2"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x04 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v3"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x0c 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v4"
+ ] = "{0x00 0x00 0x90 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v5"
+ ] = "{0x00 0x00 0xb0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v6"
+ ] = "{0x00 0x00 0xd0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v7"
+ ] = "{0x00 0x00 0xf0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v8"
+ ] = "{0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11}"
+ values[
+ "v27"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v28"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v31"
+ ] = "{0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30}"
values["s2"] = "0"
values["s3"] = "0"
values["s4"] = "4.5"
@@ -522,42 +522,42 @@ def test_aarch64_sve_regs_fpsimd(self):
values["sp"] = "0x0000ffffcbad8d30"
values["pc"] = "0x000000000040014c"
values["cpsr"] = "0x00001000"
- values["v0"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0xe0 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v1"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0xf8 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v2"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0x04 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v3"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0x0c 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v4"] = (
- "{0x00 0x00 0x90 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v5"] = (
- "{0x00 0x00 0xb0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v6"] = (
- "{0x00 0x00 0xd0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v7"] = (
- "{0x00 0x00 0xf0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v8"] = (
- "{0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11}"
- )
- values["v27"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v28"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v31"] = (
- "{0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30}"
- )
+ values[
+ "v0"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0xe0 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v1"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0xf8 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v2"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x04 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v3"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x0c 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v4"
+ ] = "{0x00 0x00 0x90 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v5"
+ ] = "{0x00 0x00 0xb0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v6"
+ ] = "{0x00 0x00 0xd0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v7"
+ ] = "{0x00 0x00 0xf0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v8"
+ ] = "{0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11}"
+ values[
+ "v27"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v28"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v31"
+ ] = "{0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30}"
values["s2"] = "0"
values["s3"] = "0"
values["s4"] = "4.5"
@@ -581,42 +581,42 @@ def test_aarch64_sve_regs_fpsimd(self):
values["fpsr"] = "0x00000000"
values["fpcr"] = "0x00000000"
values["vg"] = "0x0000000000000004"
- values["z0"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0xe0 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["z1"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0xf8 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["z2"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0x04 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["z3"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0x0c 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["z4"] = (
- "{0x00 0x00 0x90 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["z5"] = (
- "{0x00 0x00 0xb0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["z6"] = (
- "{0x00 0x00 0xd0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["z7"] = (
- "{0x00 0x00 0xf0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["z8"] = (
- "{0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["z27"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["z28"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["z31"] = (
- "{0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
+ values[
+ "z0"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0xe0 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "z1"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0xf8 0x3f 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "z2"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x04 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "z3"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x0c 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "z4"
+ ] = "{0x00 0x00 0x90 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "z5"
+ ] = "{0x00 0x00 0xb0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "z6"
+ ] = "{0x00 0x00 0xd0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "z7"
+ ] = "{0x00 0x00 0xf0 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "z8"
+ ] = "{0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "z27"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "z28"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "z31"
+ ] = "{0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
values["p0"] = "{0x00 0x00 0x00 0x00}"
values["p1"] = "{0x00 0x00 0x00 0x00}"
values["p2"] = "{0x00 0x00 0x00 0x00}"
@@ -655,18 +655,18 @@ def test_aarch64_sve_regs_full(self):
values["lr"] = "0x0000000000400170"
values["sp"] = "0x0000fffffc1ff4d0"
values["pc"] = "0x000000000040013c"
- values["v0"] = (
- "{0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40}"
- )
- values["v1"] = (
- "{0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41}"
- )
- values["v2"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["v3"] = (
- "{0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41}"
- )
+ values[
+ "v0"
+ ] = "{0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40}"
+ values[
+ "v1"
+ ] = "{0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41}"
+ values[
+ "v2"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "v3"
+ ] = "{0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41}"
values["s0"] = "7.5"
values["s1"] = "11.5"
values["s2"] = "0"
@@ -676,18 +676,18 @@ def test_aarch64_sve_regs_full(self):
values["d2"] = "0"
values["d3"] = "25165828.091796875"
values["vg"] = "0x0000000000000004"
- values["z0"] = (
- "{0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40}"
- )
- values["z1"] = (
- "{0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41}"
- )
- values["z2"] = (
- "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
- )
- values["z3"] = (
- "{0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41}"
- )
+ values[
+ "z0"
+ ] = "{0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40 0x00 0x00 0xf0 0x40}"
+ values[
+ "z1"
+ ] = "{0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41 0x00 0x00 0x38 0x41}"
+ values[
+ "z2"
+ ] = "{0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}"
+ values[
+ "z3"
+ ] = "{0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41 0x00 0x00 0x78 0x41}"
values["p0"] = "{0x11 0x11 0x11 0x11}"
values["p1"] = "{0x11 0x11 0x11 0x11}"
values["p2"] = "{0x00 0x00 0x00 0x00}"
@@ -1491,6 +1491,7 @@ def test_exe_name_extraction_nt_prpsinfo(self):
self.assertEqual(exe_module.GetFileSpec().fullpath, "prpsinfo_foo")
self.dbg.DeleteTarget(target)
+
@skipIfLLVMTargetMissing("X86")
@skipIfWindows
def test_uuid_info_from_nt_file_and_gnu_build_id(self):
@@ -1532,11 +1533,11 @@ def test_uuid_info_from_nt_file_and_gnu_build_id(self):
prefix = "ProcessElfCore::FindModuleUUID() found UUID for "
with open(log_path, "r") as f:
log_text = f.read()
- self.assertTrue(prefix + "/lib64/libm.so.6: 25C2A650-E3E6-C2F3-25C8-AD803DBB58B3-13899C93" in log_text)
- self.assertTrue(prefix + "/lib64/libgcc_s.so.1: A29B0CF0-634D-ECD5-76D6-36CF5B9B6412-AFEB4FAC" in log_text)
- self.assertTrue(prefix + "/lib64/libstdc++.so.6: 0C8999CC-A62E-9B9F-0075-566ECB23D564-443ED68F" in log_text)
- self.assertTrue(prefix + "/lib64/libc.so.6: CFCCBA85-5FC7-2F10-BC9D-E0ABC5AD605E-D8B1AA72" in log_text)
- self.assertTrue(prefix + "/lib64/ld-linux-x86-64.so.2: ECBDF3F8-784D-7A13-EFF2-FDD4352ABBEE-93CCE02C" in log_text)
+ self.assertIn(prefix + "/lib64/libm.so.6: 25C2A650-E3E6-C2F3-25C8-AD803DBB58B3-13899C93", log_text)
+ self.assertIn(prefix + "/lib64/libgcc_s.so.1: A29B0CF0-634D-ECD5-76D6-36CF5B9B6412-AFEB4FAC", log_text)
+ self.assertIn(prefix + "/lib64/libstdc++.so.6: 0C8999CC-A62E-9B9F-0075-566ECB23D564-443ED68F", log_text)
+ self.assertIn(prefix + "/lib64/libc.so.6: CFCCBA85-5FC7-2F10-BC9D-E0ABC5AD605E-D8B1AA72", log_text)
+ self.assertIn(prefix + "/lib64/ld-linux-x86-64.so.2: ECBDF3F8-784D-7A13-EFF2-FDD4352ABBEE-93CCE02C", log_text)
self.dbg.DeleteTarget(target)
More information about the lldb-commits
mailing list