[Lldb-commits] [lldb] [lldb][AArch64][Linux] Show MTE store only setting in mte_ctrl (PR #145033)
David Spickett via lldb-commits
lldb-commits at lists.llvm.org
Fri Jun 20 05:47:18 PDT 2025
https://github.com/DavidSpickett created https://github.com/llvm/llvm-project/pull/145033
This controls whether tag checking is performed for loads and
stores, or stores only.
It requires a specific architecture feature which we detect
with a HWCAP3 and cpuinfo feature.
Live process tests look for this and adjust expectations
accordingly, core file tests are using an updated file with
this feature enabled.
The size of the core file has increased and there's nothing
I can do about that. Could be the presence of new architecure
features or kernel changes since I last generated them.
I can generate a smaller file that has the tag segment,
but that segment does not actually contain tag data. So
that's no use.
(and I will fix handling of such files later)
>From ba8fcf4ef14e25b8a628b994988d6a67bdbea7df Mon Sep 17 00:00:00 2001
From: David Spickett <david.spickett at linaro.org>
Date: Thu, 19 Jun 2025 10:43:48 +0000
Subject: [PATCH 1/2] [lldb][AArch64] Add HWCAP3 to register field detection
This will be used to detect the presence of Arm's new Memory
Tagging store only checking feature.
This commit just adds the plubming to get that value into
the detection function.
FreeBSD has not allocated a number for HWCAP3 and already
has AT_ARGV defined as 29. So instead of attempting to read
from FreeBSD processes, I've explictly passed nullopt.
We don't want to be reading some other entry accidentally.
If/when FreeBSD adds HWCAP3 we can handle it like we do for
AUXV_FREEBSD_AT_HWCAP.
No extra tests here, those will be coming with the next
change for MTE support.
---
.../NativeRegisterContextFreeBSD_arm64.cpp | 3 +-
.../NativeRegisterContextLinux_arm64.cpp | 5 ++-
.../Plugins/Process/Utility/AuxVector.cpp | 1 +
.../Plugins/Process/Utility/AuxVector.h | 1 +
.../Utility/RegisterFlagsDetector_arm64.cpp | 36 +++++++++++++------
.../Utility/RegisterFlagsDetector_arm64.h | 25 ++++++++-----
.../RegisterContextPOSIXCore_arm64.cpp | 13 ++++---
7 files changed, 59 insertions(+), 25 deletions(-)
diff --git a/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp b/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp
index 7adc00622ec2d..d21dac221aa22 100644
--- a/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp
+++ b/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp
@@ -44,7 +44,8 @@ NativeRegisterContextFreeBSD::CreateHostNativeRegisterContextFreeBSD(
NativeProcessFreeBSD &process = native_thread.GetProcess();
g_register_flags_detector.DetectFields(
process.GetAuxValue(AuxVector::AUXV_FREEBSD_AT_HWCAP).value_or(0),
- process.GetAuxValue(AuxVector::AUXV_AT_HWCAP2).value_or(0));
+ process.GetAuxValue(AuxVector::AUXV_AT_HWCAP2).value_or(0),
+ /*hwcap3=*/0);
}
return new NativeRegisterContextFreeBSD_arm64(target_arch, native_thread);
diff --git a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
index 884c7d4b9e359..b1c7421bef8d5 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -162,10 +162,13 @@ NativeRegisterContextLinux::CreateHostNativeRegisterContextLinux(
opt_regsets.Set(RegisterInfoPOSIX_arm64::eRegsetMaskTLS);
+ std::optional<uint64_t> auxv_at_hwcap3 =
+ process.GetAuxValue(AuxVector::AUXV_AT_HWCAP3);
std::lock_guard<std::mutex> lock(g_register_flags_detector_mutex);
if (!g_register_flags_detector.HasDetected())
g_register_flags_detector.DetectFields(auxv_at_hwcap.value_or(0),
- auxv_at_hwcap2.value_or(0));
+ auxv_at_hwcap2.value_or(0),
+ auxv_at_hwcap3.value_or(0));
auto register_info_up =
std::make_unique<RegisterInfoPOSIX_arm64>(target_arch, opt_regsets);
diff --git a/lldb/source/Plugins/Process/Utility/AuxVector.cpp b/lldb/source/Plugins/Process/Utility/AuxVector.cpp
index f495ffb1924e7..50500a8593e1d 100644
--- a/lldb/source/Plugins/Process/Utility/AuxVector.cpp
+++ b/lldb/source/Plugins/Process/Utility/AuxVector.cpp
@@ -84,6 +84,7 @@ const char *AuxVector::GetEntryName(EntryType type) const {
case ENTRY_NAME(AUXV_AT_BASE_PLATFORM); break;
case ENTRY_NAME(AUXV_AT_RANDOM); break;
case ENTRY_NAME(AUXV_AT_HWCAP2); break;
+ case ENTRY_NAME(AUXV_AT_HWCAP3); break;
case ENTRY_NAME(AUXV_AT_EXECFN); break;
case ENTRY_NAME(AUXV_AT_SYSINFO); break;
case ENTRY_NAME(AUXV_AT_SYSINFO_EHDR); break;
diff --git a/lldb/source/Plugins/Process/Utility/AuxVector.h b/lldb/source/Plugins/Process/Utility/AuxVector.h
index 2670b34f6b0af..7733e0ffc6832 100644
--- a/lldb/source/Plugins/Process/Utility/AuxVector.h
+++ b/lldb/source/Plugins/Process/Utility/AuxVector.h
@@ -57,6 +57,7 @@ class AuxVector {
AUXV_AT_BASE_PLATFORM = 24, ///< String identifying real platforms.
AUXV_AT_RANDOM = 25, ///< Address of 16 random bytes.
AUXV_AT_HWCAP2 = 26, ///< Extension of AT_HWCAP.
+ AUXV_AT_HWCAP3 = 29, ///< Extension of AT_HWCAP.
AUXV_AT_EXECFN = 31, ///< Filename of executable.
AUXV_AT_SYSINFO = 32, ///< Pointer to the global system page used for system
/// calls and other nice things.
diff --git a/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp b/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
index 042940b7dff6e..d339a59689f7f 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
+++ b/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
@@ -29,8 +29,10 @@
using namespace lldb_private;
Arm64RegisterFlagsDetector::Fields
-Arm64RegisterFlagsDetector::DetectFPMRFields(uint64_t hwcap, uint64_t hwcap2) {
+Arm64RegisterFlagsDetector::DetectFPMRFields(uint64_t hwcap, uint64_t hwcap2,
+ uint64_t hwcap3) {
(void)hwcap;
+ (void)hwcap3;
if (!(hwcap2 & HWCAP2_FPMR))
return {};
@@ -53,8 +55,10 @@ Arm64RegisterFlagsDetector::DetectFPMRFields(uint64_t hwcap, uint64_t hwcap2) {
Arm64RegisterFlagsDetector::Fields
Arm64RegisterFlagsDetector::DetectGCSFeatureFields(uint64_t hwcap,
- uint64_t hwcap2) {
+ uint64_t hwcap2,
+ uint64_t hwcap3) {
(void)hwcap2;
+ (void)hwcap3;
if (!(hwcap & HWCAP_GCS))
return {};
@@ -67,8 +71,10 @@ Arm64RegisterFlagsDetector::DetectGCSFeatureFields(uint64_t hwcap,
}
Arm64RegisterFlagsDetector::Fields
-Arm64RegisterFlagsDetector::DetectSVCRFields(uint64_t hwcap, uint64_t hwcap2) {
+Arm64RegisterFlagsDetector::DetectSVCRFields(uint64_t hwcap, uint64_t hwcap2,
+ uint64_t hwcap3) {
(void)hwcap;
+ (void)hwcap3;
if (!(hwcap2 & HWCAP2_SME))
return {};
@@ -83,9 +89,10 @@ Arm64RegisterFlagsDetector::DetectSVCRFields(uint64_t hwcap, uint64_t hwcap2) {
}
Arm64RegisterFlagsDetector::Fields
-Arm64RegisterFlagsDetector::DetectMTECtrlFields(uint64_t hwcap,
- uint64_t hwcap2) {
+Arm64RegisterFlagsDetector::DetectMTECtrlFields(uint64_t hwcap, uint64_t hwcap2,
+ uint64_t hwcap3) {
(void)hwcap;
+ (void)hwcap3;
if (!(hwcap2 & HWCAP2_MTE))
return {};
@@ -103,7 +110,10 @@ Arm64RegisterFlagsDetector::DetectMTECtrlFields(uint64_t hwcap,
}
Arm64RegisterFlagsDetector::Fields
-Arm64RegisterFlagsDetector::DetectFPCRFields(uint64_t hwcap, uint64_t hwcap2) {
+Arm64RegisterFlagsDetector::DetectFPCRFields(uint64_t hwcap, uint64_t hwcap2,
+ uint64_t hwcap3) {
+ (void)hwcap3;
+
static const FieldEnum rmode_enum(
"rmode_enum", {{0, "RN"}, {1, "RP"}, {2, "RM"}, {3, "RZ"}});
@@ -142,10 +152,12 @@ Arm64RegisterFlagsDetector::DetectFPCRFields(uint64_t hwcap, uint64_t hwcap2) {
}
Arm64RegisterFlagsDetector::Fields
-Arm64RegisterFlagsDetector::DetectFPSRFields(uint64_t hwcap, uint64_t hwcap2) {
+Arm64RegisterFlagsDetector::DetectFPSRFields(uint64_t hwcap, uint64_t hwcap2,
+ uint64_t hwcap3) {
// fpsr's contents are constant.
(void)hwcap;
(void)hwcap2;
+ (void)hwcap3;
return {
// Bits 31-28 are N/Z/C/V, only used by AArch32.
@@ -162,7 +174,10 @@ Arm64RegisterFlagsDetector::DetectFPSRFields(uint64_t hwcap, uint64_t hwcap2) {
}
Arm64RegisterFlagsDetector::Fields
-Arm64RegisterFlagsDetector::DetectCPSRFields(uint64_t hwcap, uint64_t hwcap2) {
+Arm64RegisterFlagsDetector::DetectCPSRFields(uint64_t hwcap, uint64_t hwcap2,
+ uint64_t hwcap3) {
+ (void)hwcap3;
+
// The fields here are a combination of the Arm manual's SPSR_EL1,
// plus a few changes where Linux has decided not to make use of them at all,
// or at least not from userspace.
@@ -207,9 +222,10 @@ Arm64RegisterFlagsDetector::DetectCPSRFields(uint64_t hwcap, uint64_t hwcap2) {
return cpsr_fields;
}
-void Arm64RegisterFlagsDetector::DetectFields(uint64_t hwcap, uint64_t hwcap2) {
+void Arm64RegisterFlagsDetector::DetectFields(uint64_t hwcap, uint64_t hwcap2,
+ uint64_t hwcap3) {
for (auto ® : m_registers)
- reg.m_flags.SetFields(reg.m_detector(hwcap, hwcap2));
+ reg.m_flags.SetFields(reg.m_detector(hwcap, hwcap2, hwcap3));
m_has_detected = true;
}
diff --git a/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h b/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h
index 7daebcc71db04..aec2bf9f4886f 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h
+++ b/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h
@@ -40,7 +40,7 @@ class Arm64RegisterFlagsDetector {
/// If called more than once, fields will be redetected each time from
/// scratch. If the target would not have this register at all, the list of
/// fields will be left empty.
- void DetectFields(uint64_t hwcap, uint64_t hwcap2);
+ void DetectFields(uint64_t hwcap, uint64_t hwcap2, uint64_t hwcap3);
/// Add the field information of any registers named in this class,
/// to the relevant RegisterInfo instances. Note that this will be done
@@ -53,15 +53,22 @@ class Arm64RegisterFlagsDetector {
private:
using Fields = std::vector<RegisterFlags::Field>;
- using DetectorFn = std::function<Fields(uint64_t, uint64_t)>;
+ using DetectorFn = std::function<Fields(uint64_t, uint64_t, uint64_t)>;
- static Fields DetectCPSRFields(uint64_t hwcap, uint64_t hwcap2);
- static Fields DetectFPSRFields(uint64_t hwcap, uint64_t hwcap2);
- static Fields DetectFPCRFields(uint64_t hwcap, uint64_t hwcap2);
- static Fields DetectMTECtrlFields(uint64_t hwcap, uint64_t hwcap2);
- static Fields DetectSVCRFields(uint64_t hwcap, uint64_t hwcap2);
- static Fields DetectFPMRFields(uint64_t hwcap, uint64_t hwcap2);
- static Fields DetectGCSFeatureFields(uint64_t hwcap, uint64_t hwcap2);
+ static Fields DetectCPSRFields(uint64_t hwcap, uint64_t hwcap2,
+ uint64_t hwcap3);
+ static Fields DetectFPSRFields(uint64_t hwcap, uint64_t hwcap2,
+ uint64_t hwcap3);
+ static Fields DetectFPCRFields(uint64_t hwcap, uint64_t hwcap2,
+ uint64_t hwcap3);
+ static Fields DetectMTECtrlFields(uint64_t hwcap, uint64_t hwcap2,
+ uint64_t hwcap3);
+ static Fields DetectSVCRFields(uint64_t hwcap, uint64_t hwcap2,
+ uint64_t hwcap3);
+ static Fields DetectFPMRFields(uint64_t hwcap, uint64_t hwcap2,
+ uint64_t hwcap3);
+ static Fields DetectGCSFeatureFields(uint64_t hwcap, uint64_t hwcap2,
+ uint64_t hwcap3);
struct RegisterEntry {
RegisterEntry(llvm::StringRef name, unsigned size, DetectorFn detector)
diff --git a/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp b/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp
index bd02bb0e69a4d..d5046d369ab2f 100644
--- a/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp
+++ b/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp
@@ -96,14 +96,19 @@ RegisterContextCorePOSIX_arm64::RegisterContextCorePOSIX_arm64(
llvm::Triple::OSType os = process->GetArchitecture().GetTriple().getOS();
if ((os == llvm::Triple::Linux) || (os == llvm::Triple::FreeBSD)) {
AuxVector aux_vec(process->GetAuxvData());
- std::optional<uint64_t> auxv_at_hwcap = aux_vec.GetAuxValue(
- os == llvm::Triple::FreeBSD ? AuxVector::AUXV_FREEBSD_AT_HWCAP
- : AuxVector::AUXV_AT_HWCAP);
+ bool is_freebsd = os == llvm::Triple::FreeBSD;
+ std::optional<uint64_t> auxv_at_hwcap =
+ aux_vec.GetAuxValue(is_freebsd ? AuxVector::AUXV_FREEBSD_AT_HWCAP
+ : AuxVector::AUXV_AT_HWCAP);
std::optional<uint64_t> auxv_at_hwcap2 =
aux_vec.GetAuxValue(AuxVector::AUXV_AT_HWCAP2);
+ std::optional<uint64_t> auxv_at_hwcap3 =
+ is_freebsd ? std::nullopt
+ : aux_vec.GetAuxValue(AuxVector::AUXV_AT_HWCAP3);
m_register_flags_detector.DetectFields(auxv_at_hwcap.value_or(0),
- auxv_at_hwcap2.value_or(0));
+ auxv_at_hwcap2.value_or(0),
+ auxv_at_hwcap3.value_or(0));
m_register_flags_detector.UpdateRegisterInfo(GetRegisterInfo(),
GetRegisterCount());
}
>From e9c693f07c049fc87ddba82cf318bcbf0621505d Mon Sep 17 00:00:00 2001
From: David Spickett <david.spickett at linaro.org>
Date: Thu, 19 Jun 2025 13:12:49 +0000
Subject: [PATCH 2/2] [lldb][AArch64][Linux] Show MTE store only setting in
mte_ctrl
This controls whether tag checking is performed for loads and
stores, or stores only.
It requires a specific architecture feature which we detect
with a HWCAP3 and cpuinfo feature.
Live process tests look for this and adjust expectations
accordingly, core file tests are using an updated file with
this feature enabled.
The size of the core file has increased and there's nothing
I can do about that. Could be the presence of new architecure
features or kernel changes since I last generated them.
I can generate a smaller file that has the tag segment,
but that segment does not actually contain tag data. So
that's no use.
(and I will fix handling of such files later)
---
.../Python/lldbsuite/test/lldbtest.py | 3 ++
.../Utility/RegisterFlagsDetector_arm64.cpp | 18 +++++++---
.../TestMTECtrlRegister.py | 32 ++++++++++++------
.../TestAArch64LinuxMTEMemoryTagCoreFile.py | 11 +++---
.../API/linux/aarch64/mte_core_file/core.mte | Bin 20608 -> 417920 bytes
.../linux/aarch64/mte_core_file/core.nomte | Bin 20480 -> 32768 bytes
.../API/linux/aarch64/mte_core_file/main.c | 2 +-
7 files changed, 47 insertions(+), 19 deletions(-)
diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py
index a4ff96e4158ce..a47ffabdecd0e 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbtest.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py
@@ -1380,6 +1380,9 @@ def isAArch64SMEFA64(self):
def isAArch64MTE(self):
return self.isAArch64() and "mte" in self.getCPUInfo()
+ def isAArch64MTEStoreOnly(self):
+ return self.isAArch64() and "mtestoreonly" in self.getCPUInfo()
+
def isAArch64GCS(self):
return self.isAArch64() and "gcs" in self.getCPUInfo()
diff --git a/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp b/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
index d339a59689f7f..cae416a4eccb0 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
+++ b/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
@@ -26,6 +26,8 @@
#define HWCAP2_EBF16 (1ULL << 32)
#define HWCAP2_FPMR (1ULL << 48)
+#define HWCAP3_MTE_STORE_ONLY (1ULL << 1)
+
using namespace lldb_private;
Arm64RegisterFlagsDetector::Fields
@@ -92,7 +94,6 @@ Arm64RegisterFlagsDetector::Fields
Arm64RegisterFlagsDetector::DetectMTECtrlFields(uint64_t hwcap, uint64_t hwcap2,
uint64_t hwcap3) {
(void)hwcap;
- (void)hwcap3;
if (!(hwcap2 & HWCAP2_MTE))
return {};
@@ -104,9 +105,18 @@ Arm64RegisterFlagsDetector::DetectMTECtrlFields(uint64_t hwcap, uint64_t hwcap2,
static const FieldEnum tcf_enum(
"tcf_enum",
{{0, "TCF_NONE"}, {1, "TCF_SYNC"}, {2, "TCF_ASYNC"}, {3, "TCF_ASYMM"}});
- return {{"TAGS", 3, 18}, // 16 bit bitfield shifted up by PR_MTE_TAG_SHIFT.
- {"TCF", 1, 2, &tcf_enum},
- {"TAGGED_ADDR_ENABLE", 0}};
+
+ std::vector<RegisterFlags::Field> fields;
+ fields.reserve(5);
+ if (hwcap3 & HWCAP3_MTE_STORE_ONLY)
+ fields.push_back({"STORE_ONLY", 19});
+ fields.insert(
+ std::end(fields),
+ {{"TAGS", 3, 18}, // 16 bit bitfield shifted up by PR_MTE_TAG_SHIFT.
+ {"TCF", 1, 2, &tcf_enum},
+ {"TAGGED_ADDR_ENABLE", 0}});
+
+ return fields;
}
Arm64RegisterFlagsDetector::Fields
diff --git a/lldb/test/API/commands/register/register/aarch64_mte_ctrl_register/TestMTECtrlRegister.py b/lldb/test/API/commands/register/register/aarch64_mte_ctrl_register/TestMTECtrlRegister.py
index 2570f267bf46e..c003d87f8ca37 100644
--- a/lldb/test/API/commands/register/register/aarch64_mte_ctrl_register/TestMTECtrlRegister.py
+++ b/lldb/test/API/commands/register/register/aarch64_mte_ctrl_register/TestMTECtrlRegister.py
@@ -34,29 +34,41 @@ def test_mte_ctrl_register(self):
substrs=["stop reason = breakpoint 1."],
)
- def check_mte_ctrl(async_err, sync_err):
+ has_store_only = self.isAArch64MTEStoreOnly()
+
+ def check_mte_ctrl(async_err, sync_err, store_only):
# Bit 0 = tagged addressing enabled
# Bit 1 = synchronous faults
# Bit 2 = asynchronous faults
- value = "0x{:016x}".format((async_err << 2) | (sync_err << 1) | 1)
+ # Bit 19 = store only checking mode
+ value = "0x{:016x}".format(
+ (store_only << 19) | (async_err << 2) | (sync_err << 1) | 1
+ )
expected = [value]
if self.hasXMLSupport():
+ fields = "("
+ if has_store_only:
+ fields += f"STORE_ONLY = {store_only}, "
+
tfc_modes = ["NONE", "SYNC", "ASYNC", "ASYMM"]
- expected.append(
- f"(TAGS = 0, TCF = TCF_{tfc_modes[async_err << 1 | sync_err]}, TAGGED_ADDR_ENABLE = 1)".format(
- async_err, sync_err
- )
- )
+ fields += f"TAGS = 0, TCF = TCF_{tfc_modes[async_err << 1 | sync_err]}, TAGGED_ADDR_ENABLE = 1)"
+
+ expected.append(fields)
self.expect("register read mte_ctrl", substrs=expected)
# We start enabled with synchronous faults.
- check_mte_ctrl(0, 1)
+ check_mte_ctrl(0, 1, 0)
# Change to asynchronous faults.
self.runCmd("register write mte_ctrl 5")
- check_mte_ctrl(1, 0)
+ check_mte_ctrl(1, 0, 0)
# This would return to synchronous faults if we did not restore the
# previous value.
self.expect("expression setup_mte()", substrs=["= 0"])
- check_mte_ctrl(1, 0)
+ check_mte_ctrl(1, 0, 0)
+
+ # Store only checking requires FEAT_MTE_STORE_ONLY.
+ if has_store_only:
+ self.runCmd(f"register write mte_ctrl {1 | (1 << 19)}")
+ check_mte_ctrl(0, 0, 1)
diff --git a/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py b/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py
index a9879f67d8b8f..82f59760b64e3 100644
--- a/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py
+++ b/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py
@@ -10,8 +10,8 @@
class AArch64LinuxMTEMemoryTagCoreFileTestCase(TestBase):
NO_DEBUG_INFO_TESTCASE = True
- MTE_BUF_ADDR = hex(0xFFFF82C74000)
- BUF_ADDR = hex(0xFFFF82C73000)
+ MTE_BUF_ADDR = hex(0xFFFFA733B000)
+ BUF_ADDR = hex(0xFFFFA733A000)
@skipIfLLVMTargetMissing("AArch64")
def test_mte_tag_core_file_memory_region(self):
@@ -215,7 +215,7 @@ def test_mte_tag_fault_reason(self):
self.expect(
"bt",
substrs=[
- "* thread #1, name = 'a.out.mte', stop reason = SIGSEGV: sync tag check fault (fault address=0xffff82c74010)"
+ "* thread #1, name = 'a.out.mte', stop reason = SIGSEGV: sync tag check fault (fault address=0xffffa733b010)"
],
)
@@ -231,12 +231,15 @@ def test_mte_ctrl_register(self):
self.runCmd("target create --core core.mte")
# The expected value is:
# * Allowed tags value of 0xFFFF, shifted up by 3 resulting in 0x7fff8.
+ # * Bit 19 set to 0, which means that store only checking is disabled.
# * Bit 1 set to enable synchronous tag faults.
# * Bit 0 set to enable the tagged address ABI.
expected = ["mte_ctrl = 0x000000000007fffb"]
if self.hasXMLSupport():
- expected.append("(TAGS = 65535, TCF = TCF_SYNC, TAGGED_ADDR_ENABLE = 1)")
+ expected.append(
+ "(STORE_ONLY = 0, TAGS = 65535, TCF = TCF_SYNC, TAGGED_ADDR_ENABLE = 1)"
+ )
self.expect("register read mte_ctrl", substrs=expected)
diff --git a/lldb/test/API/linux/aarch64/mte_core_file/core.mte b/lldb/test/API/linux/aarch64/mte_core_file/core.mte
index 84a3266667e7718d9a72ee757343346fda8cf786..188d06d11c71efd08b2ffce1bbf7b50ad92be8da 100644
GIT binary patch
literal 417920
zcmeI53w)eang35RX*(^2PO(6sg-$O>WFehifK=%+Nn4sin~rV3C~9V!q)llqLy|(c
zC<7D;7S>c)iMZgPAZgdt*<Jh_gq1;5f~bV+CnD&8AaP-JxUGrM&i|bE{GN2?ZPFX<
zs_=VZ at _V1>ob#M>zURE>z08~R%B3sL&d<wJvK6TBt6i2-K}pEcpej*QU>88+vXhn1
z>=sPUbx1Z-#~733H$Tkw$g|tG+r6BhK3Gsw&WYidTtCY#=gP0L%8fNe0x0L(&vHSO
z^Ur at fr=7lhn=q`_9PVET>FTJvGa1Clmd-+y-&M}plX9J>j$AH{AX)u$xJbEJac;RF
z@{4AbbGUS(ok>?YKgx-^%Oy}Q<tmp%Ink_g&bUWCHbXp++fEcy5;v=y)6U^?^K;7~
zpNzMt83(6a4D}`Uvs@?2C0*tGXsBpbJDqVzpj^sTE{JlXS>+rqX_WIX$nBrhBbrst
zsn6&9)CcUom$SzM%7yo{Tu92zNaf6H-^j;<_C}qahn-rLa*adGNz^~kFEI_14n2rw
z92c)zz0~**Ge59p?~CtAUC65o7=2uvBj~LsjNlx>C2L*P1ujO&d;fU5cHJ}6t_>65
zkDM`oek2eGn6^6``Yh>3h(B)Uh`(-D4ofK~+Bg2VoH<dr-sT at pKisZqL5$@TFV at sV
z?y*^fa(&1z&FDn^@1k57c02l~^My at bsm~c3ZJQY at W207^9C{lYbYws$nvZ)-BE`*{
z+KL<7>YQ9k70(&=_~Cj_V%iqdpXJMzuaUONTp5qZKGz(C`;dv#CJoOV0n(-!QX7u<
z`LLr$+8sF at uFE|BC&L{_&+u^~r`KAPGh<=4AkL>aO7$7rZl(=p69(g~sT9^>uh>w@
zr^ea2Bn-`%nr)&LXN=A6;VxU|xa2<u=_1Esr+$N-%g4dKDf8RR-N&lf at vx;|(_z2X
zZ1Yco-H!58VNY|ZAGTWzj~2Z+EnTtvY#9?dK6kA}IF5YK;UKt%*zH;Ze!o>YUX)w|
zxX<Zg<D7lH6p(W`&dFvSbT-&3WsmC{#4qR4ko%m2bqnjl$<lsV^J6ys6!_=VH#gSJ
zsf}FR8r=|>yX(MI2avF-wPjAjhP87dk(QeJ(-)lDu%T&F`>E at jHW_bCacgt&>1xj3
zPNrHk5Y091o4d#M9h?I8TG*UA_5Z_b!-=j<ua?zoH?8}q|HSC<6jez(XmWfwR$8e^
z>D~V`X=!E8){Z&{ul^xwL-FU|C;_wfoAW`QUes4CuQ;zt at B5$0J=RSgbM2F#mB%NG
zwodyXZ^FhyHoHv&!^T`I6lAf<=*{^3dQlpa<u`UhUnm6ie`a$nQzvqra<F`0f5 at CU
zENjk~>q;|c{G2l%*m<$1j+;4S&TSL3=8Un;V-1-zCQnd*4$sP?&G)oPy<>Nac_rdr
z>D+Uf`8y#ikKA{d at +NJ3R@yrmdsiiCld{s}e#@kpCx51YaxT{<HxeKL5+DH*AOR8}
z0TMW*1g>;_|L>9S|8b!jMC~bgpssE6{r`CVbDEm!TpR04Slrd^u7h|sEo!cn&1Rlg
znsO!i#@b!wIld^uD5LTnhEve>qZdy`MdjNnQ_fs-_u>nR-otG~(GIku6DsA5Y0CAZ
zTtCW*rqD1^>7VJF`BWmFTm3rCY<}mb&1-f;FSpg2a!Gvg;?^^fU)1C^+sAb|)6RX}
z%)OP_R-?YrxVXm$-Br#*{e}^remnhko>S`h%PP)u>M`Rj_ddp9;>gF?`?Gn}1XVsl
zXFcj at 74%69ZA8-!e3h0{#aeCob3E2CrDu-d|Gf73NAR2PQbvluXcWJRJyQM~wcoEl
z?(KB#7%6{X6u+vju4#`{uiMZRY1nXCoi@$)EY+=Tk(RdV#>j>y)p}`bO>@&a6<OQd
z(x##<HEj+0=Z2=Xb*iy35>>mtmsz%AdD-IXdBt<jP_jFJfvR3!xw5*puBC4MhSs*a
zmdcfj8=9NyDkEzfOl|8Mo10Kuwaq$WMszb@&jF9~@eHd?%2WBOOz+A(y=CiH^oV=Z
z3i$4E?0oeJM3Up!Jli#!4+ml&j#u#~F$w!8nUU5Jk$(#Emt+2jU+g6En`iHG%$f4N
zS^n&GsV~c)Jyla#{#{?<=s>8~Jh#vOF2|eY&yMfQ@@K~{%<^X+Z~iR5tWl=@MOpsg
z?|QXAkmb+*`k*As?|f}!g6M6!-}Cg2%OBXb!=tw9 at 0xGkaruMYNl*1NY3=J&s&n$r
zWkbFf&)VwGpZ<)=D<7Sfn4BLR(%*eKX^uTs+cUH53ED2pvX9XA+ARA>ZC{;bAFb_g
zWZB1Q`$t*!3EF<q+NK at HtJo7K=+Da at wfzN8aOlNZYU}THKVrJw>a}G<9-UU8KTl^e
zx9Ar%ZgKnr%Z7qV-P51R9Ao+^{n2R&70laumDU+r&r<5uq&^L3yK_cr*-%86Nqh3P
zE6u at _bLXF-)T1-sz4FP at iC1lz@owo&59<6^>#}9(WkYM7viZYhO`SU~|DnVD&BN5t
zO}fr-S?R)Ho;pLv?Nl!<8`64 at Q^)M!&^Fz6-QHXLDz-XYmbdWD!-7LQF8`4;PSXD8
zbbm6QyvKK3?%B5EA+_}-&-9b;d}w-4{F>=KcX*}`)@Q!HdO*cnUhsHNPK}MNe$i8K
z^6&I#yN(-IYC)b-Q;Kx_Ze8YFy`S{NR)0;Wr6#GN7bXRV))vH8FV-K;^T?My)3>KQ
zW43?Er0ez%==O9g^}XyEAJs8l(0*n5ll<`38+2YLj;_NU=W`~`I2~u)?s1At9PM}F
z^nG~iWjgO4v~Aj2l&2P&x{dA48~^GbbUTge{#0hSMZdc+#pKiPG7K62fSxOV(6%@4
zkz1uqex5C3(!AsSzjAcURa;G&w=`Rm->I`y*QwbWP9|3Tq3WI;moMI?*>9EkB*&8+
zOJ+ at Uf47o1)$=iPEnwDw;EqhD(sWR3z1F1GE3~SenT$TJR7mSRS}V0aXZ(8eSy6eH
ztyTr?C*)0?INkA?XOl0zo5?IN>80aNF!@f=AHR+nFh0E*Ur>L})IPZ$@oU?(p<esS
zwW`u1{I?a{?kT$|zv4H~Kk2*<V#>Aa&&@iItfj_hHq(y0D{MPvYumIVs`G8ukkpbR
zg5?vB_uZa<TY;w`Z{qY|`4Q?j&+7zkB=Er|;KMt6NxY|J4i~ePSs8v$ORk%7JEOXA
z(wFzJ<T^_3ySykb?`6sL)HL`d{q3EZX5(tlx9>>FwMw7I+H#H3g><?0xf^lh8p9m#
zW;@D?>buCkn<Upn1C#7KRryFyLZ?9Gnn&I<>lkC}7k_VowWZxsUaozl{&zCAKRT?F
zRWF%N|GKbX>958eTR5j-w<G=#Y+2vXyn`lk|0x0ePZZ|78#?^%r(}ReTP at Gp2j@EZ
z7qlJYXn3sU;@0%kSvI}X at 2I?knpkK3629F14xA)VNq_`MfCNZ at 1W14cNPq-LfCNZ@
z1pa0SY?TKpe={v&Lq5m^CgTeM=l9(L?d$X=zfL_t|4OwyKKvjfV&6%C1W14cNPq-L
zfCNZ at 1W14cNZ@@(AhJW=w0YlkjU6HZ5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*
zAOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}
z0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq
z5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*
zAOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}
z0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq
z5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*
zAOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}
z0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq
z5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*
zAOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}
z0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq
z5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*
zAOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}
z0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}fxjsN
z|2 at GrXYDwp?ijPHY3CiL)X;dPUPrp5jMM&q$+Ol4TEDLI%+#N^vhtm${hK{X{RF;?
zb(tf*N}Z|W|F8D_C(3_a>ja%<wm<2#+jN}o>(5Tz7PC#(Y4tkJP=QikM497szRfz8
z+3Iv!P{;dNzEYRKXZ+8bAJ}vjXPYq=J6e|OGS}!jF4VDR!My=({g#fkUHc~M{CDem
z&31`y$9Hx8#k$Okx_xuB{eZTArSr=6d7b|_ZO_wb3(;0di|Mxg1+m0u^kVI6)#Yx{
z?KoH4$4X<7={0Sy*70QP&g#SGbsZ1t^sDtJp+C>+Sbkl9xBh%1t6ipSM8|jxWfQtB
zztQ#mT-#6UwDWb^yRNn^)GW@|dA_3k#X7dxuF|&IzNhW`^}a`^jm=_iQ~8qwNPq-L
zfCNZ at 1W14cNZ?=)@IF<1cP67$XvrK$11-lmnt=LStsM#$IsPOx4GooAzgl87z0_*p
zY^yP78X8;%f4S8 at Xn47`6VSjp)(%2Lr_6HdkHM~to at m>9uFaQ(`d3=pKjS1PJqSAr
zjYIpOssiPqsVk;A<=kvz?be at q`8X#%+G6b(^sQ^GofdzawckRyz{S?C++?*4{sjEt
zYpp*D4MHVf2)4UjZaehrskVKmK&3s<)UT}n$In at v@;j at 0YiH^=Hs8T&XYf<Dzu{V|
z3nEtCJpJdx51vc@*|tM?1{T}&WT{nOhfVk2Y&8V^F?0&b3(pw1c8<dLK-(EV$F^s0
z?VM6&^94gzqsy!&?nXc1-&;H5UqtzPZMno3tSvlaNO#ZA^cI^>+WB7R=ib_xeATuu
z_ at ve7D^`=3w{fJq=jT(e*?gn5bARXOzP7Uu?fYA8r_9epz8%N6cINVw<Nc|zHr>D4
zs_)OaJfk>{7K}l at +id!1^K&-x2ljD(y4xAd{NJ?Gztr~UfZO?}18b+OONWZ5f0FIj
z!J40mBW%2beH^8y+PJ>!tiIQEsT1)M`+45n+wm^zXL8oTX{VgG4|Y4{d>{C*ZKv37
z4WGE at ba(!PZOie#ujhAJm)`4n^FY at nX=m&_%T3Oka$P6aAt|hP;YyoN&PTF-#&G_Y
z>yXjb&jVeTq at Bs-dv0d{*B^<pk=yCMUK*{P`^!^~ql0z4AFSi3^HzJGQ}s!Ez28w~
z)qB3x#HXyr;ZL7uZ8<Jdu#?aZsN}1vI@!7IE{A{M$&ZY9A0hGFn$es2dgpv3bVqId
z-RpAO(H(Z#4Y{^E?y!A<%@=~!L**-_KD4*H-sbCGYqcB!Dxs2pV955b<Q&`YD73uK
z`a{sJ88*ENb{JX at jY1`ECpdON<Irws0@?#jLVKZo(0=H_Zf5`-=0fK|=R+4jPlKKg
zJp)<-T?oA#-=9T~x7 at n^0RE3bTdfM86#9kYqe=|(qy(C-Mm%U0)CWy|)}}|HMbQ4w
zSbqn!1RDLc_4i^P9msq)jmOu2svYwn1}&Op=Z&b$&jYQe7^EcL{%R-Mb)edDfaTro
zJka_NwA`kXEVu`L__i}tZaX~6e0;CtC0|K*oS8chgolhLhE=`S`o4}pT^Of0v>Td$
z_CS-+UT7b*ADV&=KnJ1T$L(?MgZiOG&;Yaq8ibZZL(nQ{7+MdFLffG+Xa}?l8iz{!
zZrBNE4>SqwgZ4uQpo38Lgzc9X>W2oPL8y%1zN(C`<R8F%8-#j4Y3D~Fv<O-PEr(V?
z+o4_19%u^c{S at XKGz1MpqtF<%6B>smph;*SGzCpV)djX5A2a~1f<~bdzXNt0+5_!}
zs!!W^erP!~3XMTKp#xCgXKc9=X!^6(-kXLno*%tG;GCMOV27dgE?dSgD(R?Cj at v^$
zPY*R`KaPVUXaHIQmE)`&b_iMp4MXdpQD{3fgn1K&MximN%#%3m1T+clgQlQqsLaCy
zJ+I<59`zAipge&CR>t)}<Kk5<)q(jU^Jj1RUh6$v&I9{duX~+3)a{h(rry1@^S$zr
zSH9%9ey{O-0M(Cn4@&!S|4|QZhju`_pu)A=Ws6 at lf%G0|_zZh~dav#OkPP%+S&PoZ
z`L-mtUuL|VIUKb9)LB-gx$;V0)pORL*k<pG<v0$*-wVHte?9yu_~m{i3jZMdQjd&-
z*y<Sjy;=Hbt6`}BMca-dXb>8PMxh<hI5Y|Eho+(4-`RM6XgM?tZHIP1<Io;xFLVGp
z2=%^X;}${#&=9m9+5zo?c0-fUKIi~+5bAx|#t%S4&?vM68iyvK{m@~~zeoR}CD1Bp
zJG2AZ1?_?MLkFSWR}c>xgodDDXggHe(E&RS?Sb||Q&2U4_|Ot)2wD$qhju`_p*_$(
z=m2yO>i>g{AB2XX?a(;17dikf{BM+lwnMw2NoXH54fVZh%N0S(p<!q{v<sSm_CeKa
zwtOM91X>OaLpz`eXdg5UE&Ly}9~y;rK at -qkXg@R!_5IP74?xSI_0SGzH#7<Dho+(G
zPv{Rc01ZLI&~|7Sv>Td)4nSpodDAwo59)^&L4(jLXc!uWc0#+L31}}=j>{D6G*rEg
zdZB)309p<WLF=J0XcsgA?Sl?L)f<Qp^+N+t=|9yH2!cyFGz6`JhN1P)D6}0KgLXhW
zp<U28v>Td$_CS-+UT7b*ADV&=K-17csCv_mw- at Sz7DD~dB4_~0 at wWv0_u1<gxgP2H
zL9Si(pVsytKYO2^$M-&I$7Aq6Y`G~j_OD!OzP*2z=lJe%N}guZ&GUYD+P>KRh=0~7
znfqPw)3A4pQr{rbC0ya at wtYL1zX-Nm2L@nE{&LvwB7X?BTu)ZH@=LjWRbQEHPXHQ(
zhN11^|NMuY@%2HMKtp0*Y140xS)C2_Lzh5<&;V50`O;TxIhkis*t**}<9PEOHeWDq
zH33!dSHccKYrkXjsqI$d-?o~D9fi*RuJuQ|t)`%ff3tSyHk5nZs=p8U9<!=o&xXdJ
zFFkM56VUXt)(*oi__ekD(CBm4P9a|*-V=1I<nMgR=8wN at wGVds6>Hxt_N&%@3mW<#
zYlr at 5)&H8+;Ja31e}N4RLpMWH&?#f>dw~7|t0|9F1v@#$+OuI-E<k>0bgs4g=3Cti
zI}T0Hv;Hvb+2G+;$=~)dn?F>7a?qEcZO~3={4>Z04Sv?zDcF^tMmjVB4MF|Lmx5hc
zYx7suSPj-$jY0j;H1hSWwdpCbQ7#34^kKVR2IKZUQ8``;^k(*BNRQn$a(W!;$$uR=
zy$9*(#K`F>q<8+rou21>g^-r`eKtLScIJ(>?eq28_J^O#EuWun)BQ+K{Vq4XpdjB_
z63dYu{k|)Ho-H3ndf$ES at _Eiu(t-3l|CpOD^~aGO`rq7isXwr&aG%a=GA;+KU$f^!
zZ`^7-G~R9Ps at tumZ?h`(B<`}d_ghwD(4xDo-3d)WyD!4`l=%KxzK<TjdHGPQv|Cg!
z?^l}r5XK>PtUVvO$5Zl)n#pfIW{~BaA!#G2)FbhwKKHzGmzDTZpF2H$n_VYEw_6R!
zdFf$mOWSU|!j?P&0lo?QSlB%`+P$f;3!%<IuJ`Mgoa)TOw|8cmO;S((QI0LoDb=Ts
zc5L}xFI;ZZ@$0c_<L7KZ`L$GuFV_(R57_x4*CD-V_!L`A$@Ai4VEY^G at gjcTo3?)W
z)l%POHlzNvTW6E{^mUBW{`$17KwmdG_L0b^uZtWz^@dH?<L21HF%7%nSGK+(*bfUR
z#5q{feV-kdAOcoFqtFg$C$tON{iNkt1iR;}_Wl17*!?XFobmEY`WZI86ZzsPTmGqE
zAMfPrUtrS*Znc_x#->;P$m(Xq37=xqqo-NzMLQC|w)sLA*m{G|LHvF~|5-MF7uwN-
z_zMuf3i-p((3v)W(T{E1D&#AF#M(*Jdo$vNkluy<wWB at V|6t?zVFwYnyWhs?Ji$KC
z>_EA0iHH97qMa#lNgzG=&&N94;)pNL#RJlQw7dUlTTcS*jicU<BHOP1v#oYYy{KoP
z4EL4zy^dhma+Q9U-vcffhuNr4#-j at TEJV5-AHiqrcn8owk?4c-o&MB5IM>m1lRf at K
z<7 at 2iZ;1U~RXsm)J<`4fuh{hDS59!+lkBoOQ#UxMKW1I|_k~A&^>_E*b at VUpY+HZA
z$MgPi`xiqMV{Ryj95Xib_E8sY+<eOQ$6ol|TQ0o*^r7-!S8l$3%Gk#<XZ%ZM%l8T{
zdf}7Hzqs|WYi>AW{6%*@yn5R|e&oiyhgMDh;YGiGXj;WR3x_K19Q^m#mK8-0{m-$_
zpZmadF9-kQk*VkY at ei+j=jz3!8!uS%>`#99rmREy3dvd0Wc{es?b2(Cv+3R4Hp#bJ
z0vu*N433Z}<xF6k>{P3Fb9Gm{MhKGQl88CZU50=D+uQXYJP5+$#rh}fv1F7erd?(~
zbeuiEUjJzII7u^k&Hb*i&BwIS<Tovso3GweZ8;UQ<1A%+;7?wk>+cr-=W_j>@CPr?
z^|wp at D|7u}$-gDnAA(=G@|VEhcSUY~zvRC;*YAZt`K4Tc`V`w=ncvdil=v~<#V_Yk
zjqH$aW?ZBKQ at 0r-bIvz<y#5&9MEzN%KSBL5c9lugo3zzh_GfmyZ2w4kv(u%VTt|g*
zA7IMqv at 7MlCA&=azT}tkQZ9x#*?F_~C4Z- at zW83sNq#9W^~wEDb{*OKlE2SYUurM)
zNq#9W^`-YxPRacURLc2aXSXeTU+R(aQqI4Za)D9mll!jhI<ohrJ}EEth4)fl`zZCv
zeOh)M+51wTl$ZMAd#SJIDSMvoe9oSayK!BWNLu?&mzv{vy8g)V?0?Ya>vDbnn%%bd
z(|-5Ow!iPEK8 at 5D>1T)k-`*K1{ZRYN`e`<)r|T8V-FkQVi+*-s<B`7Qz{*K`{$5nZ
z at ldxnKF?lnNj=d=Enm?XY|&2GqH)-w3D}}Z*rI)~MN_av)38O=&oSOmpG*C)MFX%!
zgRn(IutmeLMWe7qW3WX#VT;CLizZ-;CSi;A!4^%y7EQwzRlh+0p+1-TVT%S}iw0qf
zhG2_^VT(p#i^gD!cET2o!xl}z7EQty?Sn0vf-RbcEvkNr{zH8(^}`koz!nX{77f7`
z4Z{|V!WNCe7VU&B8iy^KfGwJYE!qcLGzD8U4O>(_hW<l+F7?9}4Zs!+!WIp|77fD|
zjlvd<!4~a=EgFX{nt&~uge}?!TQmh*G!0u+^`ZYzpG*C)MFX%!gRn(IutmeLMWe7q
zW3WX#VT;CLizZ-;CSi;A!4^%y7EQwzRga_pP at hZvutfu~MT4+KL$F1|utlS=MPsl<
zJ7J5)VT&eUizZ=<_Q4iS!4^%!7FAE6|4^Sx{jfy?utkHgMMJPf!>~o8utj6AMLS`O
z#$k&lV2dVUi}t}5O~DpT!xmL|ekbaKE$W9Y8h|Ytge at 9^Eh^`IQ6J8~Vw?LBXY=7^
z8=8LIKF{mHa~IM38)v1=Ro)MvQe5I7ib^iD&mSdSt`B3M!1I_7$oEF_ocas at N7w7}
zTv*0IxXU=Sk8-`<{xFV1$+(Xy*Xx^4w)Z3Pnf7{fztwe}I$HJeoL=UeyMG;{^e^1I
z=l+>EBh at MWlW`Qj(hhlk9=as=d)Sd;(Rb(x$h;_AZ`Y|qUn6TE0TTFoBOvR9v|DWX
zI{u%hF8J2^#a{W^Te49}fCNZ at 1W14cNPq-LfCNZ@1W14cNPq-LfCNZ at 1W14cNPq-L
zfCNZ at 1W14cNPq-LfCNZ@1W14cNPq-LfCNZ at 1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@
z1W14cNPq-LfCNZ at 1W14cNPq-L;Qd8F{=uW+Ud4v at J_tM6y)}Q6>=!?|<<V!K{NvmY
zLf_d(5+DH*AOR8}0TLhq5+H$nBTzKj-#ZVS=KOn``xb?{NMK|F^7pYvPNkOwNPq-L
zfCNZ at 1W14cNPq-LfCNZ@1W14cNPq-LfCNZ at 1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@
z1W14cNPq-LfCNZ at 1W14cNPq-LfCNZ@1W14cNPq-LfCNZ at 1W14cNPq-LfCNZ@1W14c
zNPq-LfCNZ at 1W14cNPq-LfCNZ@1W14cNPq-LfCNZ at 1W14cNPq-L;Qc`$kN;fF-{?Sc
zVE#r2hRq at Y5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq5+DH*Ac6fL
z5K7L!JCjkW_x^c~O40hbwT}_UK5BfFcrnDAx{q-rTY8ju|AKg9B;$UnyT9K+yz%=P
zXHLV0wR0komYVw07o6I#p=ne5sq33I8E;K-Yjg4GyN5f<;T(L>a__#c*s(h{E^st-
zsnsabrF_v(ZGN$(T-E)yd^vOg at w~7Lp&igJXg9P7S^|~$qCJQw_TIF9lsN4!f3GWU
zzsufRJ?}Mr0PX3A_CkAH?UZ`F|7AIgeV{rxO8f(j_t!2rh;a)lJFiolj&bJk1T}5M
zrukj-INECGd;DQLzmL+TG9LZWdW8P;=G(Zv6Rb8IXVnBhKCi&Y9=C>H9c_=R;d*WP
z`rGF?e${!Zqv4BfJ4Op8HF<wx+Zq0G?(wL0+LG56<c}C4HeCO%<o$W~YVbnaZfS?C
z5905>(aujF!goTwyQ*{cB;8$i_l?Io=~eS=0X+mcThP^hDeqqBMqUq<JKJz<>4&U;
zk}#?t^W{L(CH}tZNd=EQyM4P-_iX*jSX1Um*wdi5xcvJXSMn{IY3JSbk5-Qp-+R%2
z>$me=+9k1i;O|0v#s3ieSG)Ybg#Q|s|5xyDcKKg||5}&-Pw;=i<^K!(*SY*-aJ+W7
z{66 at vcloEnpK$p<4FA8o{Bz;|510Q;`2W-8Uk1O7zi?X(|My(^KLh`@kJaQ{O1Q`6
zM)cpEU;I+f{_30C1I~Kp9{-*2yZbTzUu}MOKc>L%?niKx2FdX#>w?&$WT%@1NZ@@;
zAoxqy_0ivHUpp_d=V#F;al;vW%=S+-m9d+<n|*b&bduXk`-4g#ih1)v?Y~lTh49xU
z;9Jk*@~=Arto`qSK=}FG^SJjZ`<x-P1kX><iSD&U&V5IBJ at g{0qxI4ED4tjN=f7?4
zuep%`36KB at kig$Ffl02$yRUWw&*Yv at UD@A<rhR_iJHe`a-;*2<|KUG#p08K=th&<`
zzE_g(Yvj4&DdCgt_cw9-{8Gxv_Xynu;Ow{e?}f!y<@?q5A!v4q1W14cNPq-LfCNZ@
z1W14cNPq-LfCNZ at 1W14cNPq-LfCNZ@1W14cNPq-LfCNZ at 1W14cNPq-LfCNZ@1W14c
zNPq-LfCNZ at 1W14cNPq-LfCNZ@1W14cNPq-L;O~^cl}lHgou9YsuT*%{_jCS2TM+%~
zH-C&9TTqoKj|!^8)kG)np8f`ZA<BvR5ySkIZ1cCQ2PayGTZbEgrpe#2Hf7AG6Mtsg
zt(7*M5|zJ~ZT_CM`2)+QttO=N$DFmwX2Qweyp}SOmaU)D#$@&SZhz6SSo at FEHLSp2
zac)4NC0c#j{~Y|%k3!^+1KzjM&riXxkg)@eGRY>sG_ni*SJl-U>sp%X8mem=nrk*z
zudi!s+t66I%MC~Ky4uL4yS&4hTk2YOd0X15TQ{t4scYNR(zMH~BeX=CYMUGNU-35o
zzQM({`X4sX|Ibw`mRFotRXwlx^y2vob^G$O{>#&p&3|`1 at W;ca=rr@!;2ZVFY^E>y
z`ltDu*Cx$uhO5~Od*d_RURH6Q%3F2UycaXq{ouQ`w at kU_pWZ$0iwo4x&DhBptuRf}
zw(^a2#?-;6e+>Ig+8(y)XR3<^#;D4fDz>`Dch%}LfAYB6S9bUoE6;_&v8wV5DtPZh
z8vTdIs52f|=z03;g5bSt3)F(?e$UfCN`36<r7HhtFV~#7<pC8Ox;EtBa>KWS+wLkV
z+jiaT#UC;GJ9PQqD(}VzcVsGqYT~1>c*dQq)L~zI at vN^tQPz6*8>(pB*VODsZk?|3
zUtON3DqlM5t6#qJhMqS}eDl#g-BMGaCY$u`Os4X#;H)htDz#1N_9i{m&lDXIdqQ{j
zDYJi#Zd<-e9C at Y6-<a~K%CmI&zD(wr>Vl~)cPLdk-KQ?PYG<a>^zUcdudWE*G*;&y
z<5gR)^^MtbwQlRxdA6T->;9ai)X?1pS_{;W>C1IGy;_ai_ at Itq>eqkR^ccgVT8-Uk
zSeg3%q<yBI#kD(qGe5J_SEH`JwN95CGv3BsYxw;oGtBR7&F}X$AKvm?U7z=gE1q1Z
zyjvPH!=Gw~>%p*5mw!MV?l9b})3Z7LPIJ84SGLV?Tx at u1mWJ6+RsNQI-Nxz4^XeaT
z--WA5D|2{y9G*W4&fGE+Jil$2XcpsMyW+{1Pi?tYh3>u9W7|Del at H|?lsg<cw10Zu
zn2mXQJe211vTnoX`t^fBrM4{9ZTOL{W4ao%TfKH1$2j#a*5fz}_5PEt*RcD4&=(Cu
zZJSTQlRJF=G3uUcHG^;Jd3e{@UGp%1+^%_;&C$%kFSzF519}d=pyyy2=3tqggPO?`
zOLTk7G`lj*ty&el`Vl<`b$`Bm7v^A at 8sp4AlV;}MPj$O%esKNj#S_2LQg+2RzgG6{
zx+lka)wYOI-;+66`->euGY|bMclyknH1koZ&9~+!OYhaJ?^Qo8z1Lr$RgceGy01C&
zR*#io at nh{TI%?P4Hoj{#_lGj$a2$s2&Cl$bN7={Wmeg5Wzfc&u_qu7JdoMh(bX(mW
zW!udB-J;81ndfolQJI?X=<hvaPcBpAzi8%=nLB0vv0vL<ShlTf_QSW9sj*w`(&IQ*
zx3Stahsw<S(sRi84U=yLKfL8WGiGKj$yb%NKiQ#Iqr{PBP4O(<>AOxdFzZU)kyowG
z=wqcuv#3^ME}WrRn`1MmRr#-aB0etuMydX%2F}VlzQetx_v&N$<iF_n<yptNnHy&P
z*^|~!w)~#<_@|HdIct{Z=^dB%Y}?^cTi;xhx9u%Y-uAaI$lvz1M{WOKPyWd!{yVK>
zwoO;+^>;m<?U}RGP|REU1OH at I89pWWWfjcdI=vwHdWW{Z9?XBe%)9KeZoU8K8qc<p
z|JvzOvw{n!Pg5-^pQ at a3l)5K8yKJF8w$6C-+_wKXOMU27f9FlNUJ}dOI<&E1TdC%i
zny-fZT3={Z_l9TZFI1l3&{d0rL(^5>tC0_>%4=tpElkZ14&_aZJuy>_dGsC6QQNDP
zdi5{5y=9%TTVEWjzGvDjpJ(&cJ#YRlZ|hgD$=h0;QLmddHszVReR1aOCtvh at X!{GE
zW43=oshfwi24A`C%bz+X_~pwzYKu)fc6-V*ZTn&sd*Z7)&(~+=FC3%yf8bHyGi@?$
z(_{5&sqWj?Ps(@N_2-(!+lDqS+4fHB(rs_9Dc$z=1!dcIT;ALLfaYx0XnpqEZde+I
zalK}ybo*cMOxgaT=jfArXWH=^soaa6<F;Sx8MCE&ntFY_S5+?dtH%p;TO#i+esYGM
zi!;)ndoo^MI~d+Ld+>q!*@K(?YU^40n2qT98A*Tc%XeuzJWFl8OXY3RZP-%k4Sx9>
z%6IxV^|~^{ryln#Q9Tdn&shcPb$xQF)c#9nc(s4FYJWg~uF~`J4i#LOr_{m+^e3jr
z;c`#@mQQ)|AJu2`!(y7vU3!jQJ(M{uUJ(28V|rh+c|GV2UY6A7qU^b1;u}8kyx5n2
zqVpMMBXJmwVf94ydasUQ#<5zrH~3Db@&!-+_9t~L<1_o_{1y(Vtr3;C)pKO*iTpA8
z{H~I3T;owgS0ASCov!<8=G23lkEutmMNfPKZFyH~Y_UD(<rT!9i0Qdw&LuKFrrZnW
zn4K6~Jx0$%)AtKZ-Oa&!rx&P;?$B*B^FijqBRb8@>6D(+EA;-?b?oeP-3Dj9ub%CB
z+FSekCwg!E`5WHiZ@<w!@k?)vul=7VuK&)@-&lUici&k4t!v*XINn<^`}o3&6T5>e
zmbC{b1`5<9-*KH4v1xZ!+%fI0iXTn;R>kk8-CeOcKek$JzN4aMn!l;W8*VDw{LPBF
z(`Gi!IRBJYGtNGx*`!^h(`KDtv})GbMa{d?PtxfpHP7(pHI)VPn`*+IruP&lj5vNz
z(`K)_D5A$oZN9T&#^$>!$~J$iqGt2m70Rzxys|m{Sv at be>T~4lcMN4Jm$mDgi<i`@
zJpIYnACLZw(VwyUV~(TP|7J4p>P7KG%Im%7&za01_S1uz%v;!hX(*FPW548`Oy*y9
zW-`aA0_W0EZfE40RQ_EYxm1+v%K<oWnXZ!h05F@}KNP~AVBPAA(8HkSI^S%1PBj~?
z$~Qli+5sD;O2a-!95&k_`ziNZqgAkM@#2sAi%MG>{rW20U)kK;P*We-(Bz-Hpm<*K
z>bi!x{-Ux?8yaf;k(S0&wez%jANhz)oa>(#n73f=+`0Oept!ZZwXLNsvQ`z>M_TJu
zaqXo|t(P`hZEI1*`rk?`zPPTXbwhJgj!|8!ikq6->Qr%CU3;4<jx at AwXwsoJ)wJoX
ztxkYQ<Axel+|pbdX^W`hn&!sFx~8_#`m?`&Gk#{wWjJIWhz1Z)(!H={-b~iEi6QAS
zPei+s-`wYzDJ11(z8tH4CQZuAyc3mqrn5L3rlFW>hThZvB0;m1mw6>B^Iy{4YVK#v
z92LLJThS8KByE)TO9K|^9dpYo<wv_um;Ay_?8SP=^hu602Zl*B73!^LyjA(>mmTPG
zt){%x--G82qG!7DyZM>>a8oy`+wD1p6Fe(j`Y-E9jZQN$aoev357&m?ME#Dn>xYyV
z-KdjHd6{RDQ=X$N6$ez>pRLmN?5v-`z`G9=DVLp>`y at aDBtQZrKmsH{0wh2JBtQc1
z9|Dt)xngqR<&%%SZ1QoJPM+F6dD<nDkH2{G37aODw at hAs(d2WYlh19QyrOCH%ErkR
z4U<=GtnhxwJH>mH_h|1i-a_xO-s8Mez0<tMdr$C|dzX99 at t*5l;a%yi at UGH`%)M|@
z|9jFmd at PfZ`&hsBJ*9o!+UGnADLo>Q-#p<6ReIRRou4Q-sPo);W+oHYw%JUqiSv~T
zEz)25;AXW*`~2E>#Xsu!##eeoJpZ=Yx6dlOX=Z-ugx@^>qzQYrqo?TP6*_P1tW0Kw
z-q(5kw-wy(DZ45E=DZaq?^7monccDVU7_>Gb^afl{CYEO=+wSMFq2844aRq;_Vtuy
zGQC;89__nxNhb4Jmhb1<*Lij(vn0!B;^tkpS{1ZU%9}cIx>JXF1~jlNlbLN2^^Lx%
z!@EF#FJ7L>Y&Jf<8Q(PR>(oAZc4B-1?fbU&-H=ts674HGCzE;36x5r^SEYRg=Vmfb
zIUeh4(7v?xwPpEY+V^Sw(Aw}bn<;y<_O)xD-#GMUeBIi&S^Km&oAKSRjfBhBr+v at 4
z;=QDOgIPZFuE3!7-FfK_%b at fK-);G~=joAjo?e*Pg{LX?mM+ug)TWeSb&B>?uFPbd
zXFC|*bM(++VC9h)N>E6E1W14cNZ`;B2;Oi1eJbDc^X$J at m7Mf(Q(G9eZ^ER-#*V^H
zPnho5G1%dcPbxF%ol;&+syB8Q>}22cQe($q=c%(o#_opg>ziI~>>jbzq_d5kgl+cC
z7W%VoU(d5vyP#F@*F*c at kHL;hIZ1~OK-Hj)SC4W7&?5LtpdrZzZHIP2yP-YM7~=H8
z9)PMLTb~~qfCiye(0XVL+6j$Ad!YkR?_UrXS^}+tMxmCb9v|2}&^~Ay>U#(ApaEzI
z8ijU3<Io;xKXd>(2=%>d<4QaHuuGsJXg#zY+6C=__CW`rYKM*MgZiOCXb4&ljX^u1
zJ<xvWAk??h#w~${p)qIz+7I<*Z2lm$3R(~CfObQZ&=hnK>QnaLhYLW<q4m%%Xad>?
zO+g2t{yZC}99j?UfF_{*P;Wl!g_c9Z&?vM6+70c6rl87W<M^RLXcaUH?SOVc6VP7h
z0CW)Q!@rvsfCiye&=@rQ8(Y7;7oopv&e>%CiORpfHw6y)o-=Tz{df7Ku;lN9Uu><;
z9gTkH)Y<$<Sl_T=ZB21YTSIMelYTE?ubX at yjN2pU-o+G>d#Jqyu=Uk7Y%s4Z6t`~N
z5UqCJyN;}Dt81y&uTHmY&~H?azUjtaX;Me}Zg!+nw!X$lgRZ4m2XCxytJm*r*EcuR
zj+A})`))}Du8i15P2X3Ru2`{ZadqYD<twWz%U3U5Q@(1&l4_-L>WkL3=vTqlW|!UD
zeojTmoK;_F>FUb!R+s6Du-W>erc;sH;+EFBizH>=RK`(sZ>4N~HPKDQO%eT?{9d<x
z9jDO(foEM~aa&~l`VCF%N6R>he>9$>WXJf){M_4Y+&#*H%}=SXt|_v%VIQdOs&`+<
zO-kg<&-zXJcM}@+I6vihm+~VW50W;L=G52NzAn-#PaH<dz3Y7wNgb)aJ at whv=d5S?
zT`BX5Q*~=|%bx2rbxBO=uc)+RG`01~`0ZNH)^2LObhI+r{sWsYvYs_ZtD}*T7cx}h
z?#F06Wj$LJst%Q!g$$eRpR6yfZ4v!DGBuH!`a1oaE|-lkQ%A2a=1!6-a at 5vm)|dKA
zY9i6<#z?Dqm1opV#!WH|_s^A}7w7U%EG`XIuPj}2u4L9~>jTfmMyJO1tn|I@%J^mH
zGgX7<%9T!)Rl`6>m at jQDmpZ4w4NdwK*c54~j;tMh#!7wrx~}H*ug#9!rY3Vp)YVou
zY-rrzIyBsaG|V%*gL~K?p?~|{IUV;s^)J$*7f?NA_Ar3bKbamQ^)GAuN>?wfDAjYO
zO1hlG)0r;^^?JgYFQZ;hVEk&DH;wwDru0wRJ5v87Z6wX<pXJ$Bw}&-b>f0}#l}p!D
zqH<fGtS^n5^y{kCt<eol)qCn>R>SSppi+BW1hewn`keDabJV;GtB*Ims<r9!L|elM
z7oO5T2{Fvmogf)pn!^+0x2Fl}4m(_*EAD7!PJMcruG!=2xqFn+))lO0i_4cTK6iLA
z)5W7N9q&AsdFt0zgU?tE{Kl#pYc(;$s&D-)eG9UCy)u7}`tO3guKT?us&Ddh3xB!L
z-d5<}25R46%gOtoa^n#_GB;M=Pwjn`^h4%_;VN}V36Fm1{JPBJe=`07v at 6{=snki=
zHJjhRTo;wxk=6~3Hd@`qZTeMe^X7YG_+BO2xT&GR$=X^UnQP1FJ^d}5*=ky9=G)y!
zTeH3<F%xZFv>vgY$c~}UdmC&Wj<2OwS8`!%&Bb<+URTo?al)yFmYQgdvs+seZMI=_
zZS!qvYa at 14YvTgzQck>DlT+tAZLZUp){Er??xe1(*R|CSpAa^+)<kT*8-}Y}*AQ86
z`mLk1uEo*Py4G>%AJIq++NbySa-r_WK>ATQHvFQpb%eI(K8Haz{ou`xufo4eKm6~}
z&$9Qy at e{4CILYcwncrsaK32ud7 at IA6$y{f?hOe^vQmNJ2wN^VH#q-9U*1qRCYpegV
zcAwX_EB&(d-#KNJcG~Kcd}+1`2ex at H-E84)c7{&1=J5OLdfGW#`VJfa?Va}b9s=LA
z_86qscUxPqb>3-h`8|pspuWS9-+U)(HaRW^sx2R6Q*z3jVzUjucYO?O|9v*T9Dn|A
zTU(w(s7W at XyjCvt$?t8nqapHp8`2N?y^WdwYUAl&IdOi^<2KZLu*LsFOQ7lk+y8K@
z)kKBW+6V18KL_oBf3$Y^A3w>NPi=ix6ZhNlKZfmp!uki^w)4dN&bG`&6ElkXW!%FT
z+jdBO(FZZ##R1KZ;Yy-O0wh2JBtQZrKmsH{0;3Wb?K*Na|7d{@c7C}YcGq_S9C9Bs
zd_Nes_YWock3745yHftoj(i>6u`$;_(2{FQeMyv0Kts?dGzLvW74D~e&`$W{k}iRv
z?)JHocQgA&iIZ~q11>x0vUdx7h#dj&@I&3zg+}qa^X<(J9;7&XtLOhJJ&bV+VqQzV
za{n#%-ZcJ*y?->%2~N}>bKIDF_8^`ogrNgaourQ6hl5$}*G+zBLp$Yuwl==!=OR+<
zQ0P81f4JKIyY0FmW#oRl at 3N!p`)0#A4{S%C^Tdxnu=4NMQu5qNxCee_=c(9n={O!x
zg`dw&m*m(*cKsIhKW6iZ#*r>6<wjGfU*@s@=XQP!=XV{C!+zI}Jl9hx+aC2>tMcBD
zEBnDSW2g at iAIB5uy;UIZ5lOy6JP#Kha$YUO^D4<Vnm)fhmz%`Vzi{%lIX}yD$I;4*
zzsS`NrR at 1Vc&Q!t{=<LfobQL91EZjf-*6n{7hB5p9AV3MLnXZmc0F_eItcYnvgO)g
zcSt_8XAmm!_Emckrwc0O`dzjcb`i7?TH?wl<qx)&p#Mcscl<(^zshC1^Y5!&evsnq
zYkh}0UpdArh<UBX+4(Kc(cRx?`Cao^+Ly-nUgo-a_*m2X9k?Fubg9WREi2<_-!rxs
z*!D<0a{N{K?ELSYVAI{tt#{?OdvZPRy~G~3d&}=`PXhhRj+ at o|;jbaG)3f(GJhq+E
zj_kC9vEO^RZB2=5VRNrTA2eIo%6ct!*4T;5D!$h{b*7ysgQr-P>oVczUhlnE+I+de
zcDD*owfTymCD7e-T2DFBt47Hu?UVA}QSwRp->bHxU-gH$e;tQ7{$GoK5c68<_uvJF
zcC6>a$HOS|IP|c+t~2*<!_Ph>nAUd at Kb=+280F8(G4k#?IL?MsQC{9R7nSuoc*V%a
znXIb=NFOcVa6S95Gt6Wk^8R0Ek+!+lp%0oZ+-1EMTlk1An!x;)_YB0IhzvhQy4#ld
zbq~^g$S<~B0Q4f=ZA<<7C9gS=NJ~xq=?muIU7R_N&%T#4N1i8!@SaH=nubaoDhZGP
z36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB@
zkN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg
z011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)
z36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB@
zkN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg
z011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)
z36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB@
zkN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg
z011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)
z36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB@
zkN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg
z011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)
z36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB@
zkN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg011!)36KB at kN^pg
z011!)36KB at kiZ9!Kxd)T=_Oa^s#1A5Fvf@#JJ#-{tfro^T7Ua-$boV(8_y%<K42O;
zZ&oUkQL5q7bMH19eQ>^`b4KBiM*jMvZGN#&nPF{ru_Fr}d3O7DrOK;pJ(B-9zs(<1
zM>+L{FIeEHlrQ?JZHL(Vs?kr_diqYb at uhw#A8pO8M`n+-Plb^lvfAgd?O*WAfNh^E
zT?K8v5c*et`y3}<C+vJwEa^$`6Th at e=3n1MyV_^QL)tS|GVZiH*A^gx%f9m}_Yoll
ztrkwiapALe2)u6ih~;%-|Is<)Af;d4{`qxgKYD at X8wHQ@&stkWZM(bgD|X5YXPHkD
zM>K|Vl280 at -HpF1!vxqt%v*`qd$DcL9E^j>CS&aikz-06-+J^5sX+|Tl}lHgou8K{
z!=*gx`%c`{COaNM<nMaNt}Dh2suDFp|149b%8X-y<1;BH&2FLr8%BwGk!~t9<$U3z
z9FJS4BA=*~GkqRj6Okud-0NxQCvCsqU5Miu$APfxd)OYAVh8;8_!YV`-tC{VaoV8W
z_t|+Dhy7Zajqm-5jW>vSC2f=V60aWVRnSHMw(xM1SK2eH&(7QK8*M%J{C<HGO6r&P
z3|?s4EAc`P&2#3f)F<&JZv8zr-LN-XAJ!$wKRgj^@@_vRpCpJa{feVMvAE^Yp2YEk
z`CN|z;a^%#{%5Qv|H<YH*ICX*n6Ld$TffvNYQh|?KS9)2_?_dOe)}G^`8zT1B!3kC
z5b`Jg%jWNc-SG=+OF4;?{)LSflX!l+9!k4Ef(lN8N<HxhZ8@<O)+gmdpuWk^E&S!e
zg3eFd{?<O0+kVMkg}72*68Q`IN6s(#q+I)c@~uIA(*G;8eTn`A;WrZ1pX}o?D at jTI
zX6-bw-0e}HvHg9kW2#-3Vc!pXc)Y=DJc5fqiTtW%np0l<>02yscYc|la=wvajLon|
z_<)}9W<3f1+*Z_y_*aB%{3)nEK6C!t=DaWUiC@}t=91j at 1kjMa!)yR)pTc><AIXhB
zoR0dWp8Ln!^R at KDkMf0|u;s;%VyaWp54U_jgoIG7<u3W9UH2fq9DlJ#a at WJ~ow!cG
zg3+<jo`*WBZM-1j)=oIi8IM97x5M=u{xj!#DTwQgDPG$jm9XO_?Uv)c5BbG^AKG^c
z>M?$E9nmfsVE1J*8L88`&Vc`3H$NN?I=i#UdK1%@3F*iB<2Q!c;+BV*j at fk%qW?~w
ztRJQgCX%d&iLm7)>!FONr2Elm_j)Mj{XthdrM=S5UY%~*-g$!MFZ0GUNjRAO-V5!x
z2_qTDaKyH6!I$iM-G8?oZ&R%)*L9z@!|+QvKgM(BzuI*17yiuhQgQ3|t+nyL{h*B>
zfGzVu`q|%-+dlC>^=rG%MPITi?U(kb=WX1+%j|h at m@CG43<}8ds|ro8lv;j%Y2{M8
z>-@}2vWEX%dt6oF`W at Mov^%SavzrFL(XKB_T-O(UXWMpq0`@;?Z$G#^1yvJGc>SZs
z@*BRsxWsa*$~qoQPT?ZldQq-N^dB}l7h2MuvAB<sa^Ly(c_xgK`lUT_+%HHx_w|Lu
zm$-6$VR)E$qg`J}y#=$6a`KtHW;6cmc`LT`OQGL#JOzAqeUbD|CyKt!a9v;Q>w1IY
z!#u_Ig1fOz`{a0%^|Jjx?e$s$?fb-ow&ZNsay(U?W5>T|waqW%Fa7jl{gJrBGo{DD
zMC?Sm98Y^%Z`bK9a>o4mkw74z<az_;-^DsC>xrm)U5S~7=}po_-T5T`iLR}&t*(0Q
zrgb0npBR-}8>Ny?NPVx7wWXDsl-~V6lOv58;iw!JqFEvAZc>YmjCEV;n2CI59Lxq&
z-^bX^a9V3PC1w4BCZJeA+`Qw$v-KF~{Fhi~kJq2KS$n}Nc6}N?@9F9cQi&r9%u3FG
zvOW%%+sE^zwCCxse&}247kf+EiuDMnHRa#?(n&8E8{K`6;=s?1f%e64y)W}YG6lxr
zye|&X(fpD=ib_1;_Jc;tU9$fa_A}5wK>q at r)MWF|hR%mBgH}STq5lL;Kp%!a0eu6i
znr&P!^jK&Kv;z8B=ue@)flB*l$d2Ex_w!*#kF+~-KD#dS_ at 4{|xxSVAhRMiZ3zg#_
zsO&h%{hv$-xu=%v=W!?}=W)5-7q{e77(ZO*Dsw$;Hklz}J2$u5FZK~mu3h#quto4x
zN7ZkzJmo3pO_|?j?mkw<jz>o6*L2vgfg?`msvYI!Il?sL6ZOM(%UM`2kNWR|ysrDb
zC6P!=P5tTi9^9RmHVKdb3GA6b at tjC;^CmeTFI}->(VVp#n&zyHwAQQ8CzdRlQ{UWJ
zH>Wmoacgu#V6IxRYFS0;%B72j9aT$~Rj*mPX3g?d71foW3 at u&M)^@2{^T{=pOII$b
zURt$uadl|<l11|Z3)RY1l}oDEl&|_k#iD4WQI)UKVcgM6E0!%<Tzp>T*{7DM6>F*&
zuUfHc^_oR$dBypw7ME6<I&`qp&RDqa^vJxD(`x6=Uodaog0+#FNMK=IAW*w*?flah
ztWzs=dls))wMNI^)Y{_or=hM at cOY8lKe1K+ud-Xcctz=&HH$X2*0re0rK?viy0~rL
zynqv9RcL9&qAUC(1ySd%S-N@`g*D|X&R?-;Zcbd?QtMcKUPa~dl}oFaEML87PRphy
z9j~rs&Rla at ch0KwR#%j+s9saKdTHs(MGHTA`e|pBsPgl4yj9DVS1dZabj6ybDpXoo
zZoAUZToY-S)2c`4qfV==J#6kua9q|LPF){qtZU6K2S;mDBx)e3m8Hw|@LwEhnbR2A
d(6DRJs~2U at lI(q%TfTXf7kB;Oxt)J4{r_*Ow=w_#
literal 20608
zcmeHPeQZ?65udwvcQ(W(50{8EMB?#n5PoMHN`SQT^BrH7T#8(yChZ?*`+UacY at c&?
zrXX3uSbX-VM3a9=s8mXlf~8hMt)s+|DriDU3Q|Q$Tp_h;TnZ^s(w34+tyA#p%)XuD
z-NSAvRTG4E&Ar)~o!OoJ&Ft<&y1kui>(}{xKHw67SK&4XU~z+sTCfskNIoFxQLec3
zsM<cwBakeO5v0074=R>;-to|-L{hR7Lm8}D%auYpfnA6+45_Byqa6en$sP)c?ss^X
zp9S-4`q6-G7n%s}&?9%)34!5=;rbgB+g+FKuJH<R8GUnNyUIK53UN7eZ+6z*+ZEu_
zGl|^<coz6MdUj$z88;U$1$LEhO>8IiVKO`G?(GWVu*qY`{xNlpCvdUADLo!LkAH4I
z#dw>fUBAapidmm2ts{X8+Z~$3&X66r{4B78vda_ZwI_bKI(kG;Je~*7emM;L$1Gv8
zADtzCqhD!QOY(>4A&a}tvb|peC_ at 9LEI(MwHHZFb7WMj{i!Oc5Yp<^UP3VcGL&k?r
z4qhs at L?=UjXK$D)yJYIL0$h-KvKbDKeNJFk!U9ij{?4{{Qj`ADkjU8$RX;AsUER}P
zf6(Hd?ulOb#PO%E$mxgqzeyfr(?lIJ4k9+lYxv>VKm%!D30Z<%!$$gWESNT%sot#F
zl}!jO05ja#xvi_BC!N}wh-Z;$Z3$-+nQXXrQ(d^Tqq}!|xVbqUZ(p%Ij7G6|DxHY6
zb#x}e`Hl?PlS9b2e*Dy}ulp+d#<?=ZQ2~ytWdHAkeA<NI(fVPZ=J2R;y)R>4o-%UT
zfo<Ejs7b6ns>p`vRL9cl5D^QiTJk&<djs+-Wjpymg)t~{SX`aXK3vSaq^!re#TZgd
zsc`NxU+RcO%&E%9Kex}6?Myx|D{qfGx%ZglcljL8W=sB+hi8bj^04GDNqx!Y3C+)s
zzOAjVTgMplI%Lf9?;5(5w{t4B4)MMlFmE{R7(%D;neIKKnU`nq(`>+JvhHC06w4(K
z@(le3%lT~V_ndXS$ICr?4*SD<_(^9kpDX3zuI_AjTSqz at OQ%w_w*I$;2KRk`y_q!b
z87;hHREYhfVoP@~N#hmO=CUd?lY;PlsMmT|-u<^)&bu}p$@nk7_bl)f+E`n9+g2M3
zdc=}(*L}0JCppcC;(nBWn|0TP4sJTWfLvUzI?3E0cYmKvJ+K+ at AO4R*Qmpc<m<q=X
z at qEx9bhgm`@57kY*KOSV6xNN8oxMl2;lAW|wT1GB(Swf6zn>ptqq(pNC~O311OvhX
z0T(v3Uy$6u%_!)S6K~DMk9@`SY)=c+{)C|MzQhzoh@^Nv=nu*ndhHFla>kkSPC50R
z;{BNRu&FK`erF_mYMbI}`=_0M1D1U#q7YCBC<GJ&3IT<HLO>y)5Kssx1QY at a0fm4<
zKp~(IPzWdl6aoqXg at 8gpA)pXY2q**;0tx|zfI>hapb$_9C<GJ&3IT<HLO>y)5Kssx
z1ny4+c6#prYx4g8Y5Xoe6-zwv-XdQF6tb0g&(MNWy!}U4)%Z at KR4pK{$qR){`933c
zk6*)v!}9CbUMf1Ko at f9pvK!|v0rKtAKQC<*+5k*x3 at UV8k-q;;Wg?%cJJMl&(wnGk
zMd5V#Yr(hgNzcSj85F?`IiKw$#IgoII?4}8InU!!l#_mw1aC;rlL*Nf|L at 9qLM)a{
zq`MQHv3O at Ho{VitWV0PziQ8f+NVT;#@3<|^E2k5g+fuv<nCaM(PGo!2-QZk~+t!*%
z;hi|M%DMRyt2S4d%T}Q?;LraN=aYZmKlSHQ`VEN3@$+?Rz(T(J at p<5UtcZUfg7Bh3
zxRQ)8UcYfO9Q?_-q5U7PiSBE8e8YnJt2cjtA$*MD!}!<Jm0#qcEGXh8;K4^;PHk9f
z=4m6dzX;D<3qs>u=x>PYyBZ?K>BrW5Fs?^I+iHcNasLG)R|+S~_JK9LC<srSTBVH)
z1gzmm0G7X3qm4vIpB!lc?cC+~+*}N-u|4I{#RvCWgQ1GZAn6`JI~%4XedBgx97 at h#
z)q+b}!2hj3)I5JNnmK+WvNU)kGXLBQG0;9-?1RQDHP1f_=*vq7U%L^3Kn^E0o!U;=
zcH>#g$WhzEVi-JyzMs}&zb>EFe-WqlF7xDD3`&!yHE66cw2_OpJu?=VmEMJEeQbQu
ziYqv`^C*Kp>$wolD_9KQ*`o(@1L)^~&zawGoW~-7vEu=x0T`os(EMXil>8aagM1jp
zKAf>aNy3T7`U}ct>+no*U*B`{VzxfeX6tc%;Drt-&Lz<PYO&LQ3*q;PE%1vVe(S)0
z?)~_}+<Q3g7R0aXq&2uu;@6FKr(l}EZ#VW6fztDT)QXlwphRHUKO-_2Sz2^NV2L<J
zAecJ~AaEkwKEQbsrW4`$ro?j|;`u|u1hGgwZR_w+-#aI;k00RJdo{=BqA8Y$=OD^z
ze4*qVjK^Noxr%Y at Z*Tg?T8!lx#A_5~6t@@z?-)BSVi^>%)U0{JM;iOvI5y$;s-$>X
zdFE{7WAn9<EANi$B^W2lRopCxC=Tmgc{mW9BoF6D7w0e!_m(?(xF79oD3*EnP(BY4
zn~Q5G56dYJe}Q=z5P696dRD_Yzbx`Fm~(s&$UK~vi@$!LAzE at Q9qD`VNaSYQJ0YA0
z<wdg(UMbAQlBD5x^5a)HukuHneEmDt1HT;CHJsZUU$*r<m=mW!OYX*e85p&O=K>55
zTtOOu;g3-F#d=$(9Qt|Sb`Bl8HAxN`(Z$IV)?nLwXYQS7_dQ=w%sm1$cgmlsB7gSH
zu*RI+2_D(4TVs*=Z(|M><<4LXLpUGKA;N>PIO|%Id##1JpQ3*hze_~ro>GkKPkU=z
zr!_`<%ggI*eGBD1?k}xnyBcf=CFA-Y!h35iu6tUeO-TL5u8YTtj@}?FYXOF8Tx-4M
znl*e`^Di00aW;6?J>^ULbO&3$H_v-3pPORS!w2t^*Q9{Y;1jr!P~o%gQOWZi_-{JR
z`QOl>bBM}K+fEU!l;_PY$@B4ZUGkU*pGx8PfyoA2AC0ay%H!!&CX-F2Ix9A=H>%9)
z<z}T>wQ5zYwY9o3k@&)5qpH%ZHY at RX&a`K;>1=ZgnC;D(b}(CabZ2&SIW(IF6EBCG
z+Y;$aN2<GkiM4{+ox-1~Ftds6S)t$D)e%RX6ms}5dpfZaPjz)Ay0epcd-rnseFgCw
z2GWG%%XF!fa~O&x&-p;V2SI&sJI9~tA*oO2Fr^0Da~{y|F;E-Zb3QTU{6Q5_WO^|R
zbFhZjJ5y}W`NEWcFM`{>l-{E#_gK#P$aJL~iG5`M*?})%g<iGTezNyN)@R(9k79-9
z#Ovp@?1<?lkAZhx)=69Pj|%58Q_(rfxt;yzej2ci#^?6KQh_P!qlzfZGsU02DX>2(
z8<=vOrFlO7Y~Lj9am^GIet)O<xC_VMP1$$1-urTZ4!02NZ08XxRw1Ae_!JP(s~fi+
Le*L%OpB4QVat^#p
diff --git a/lldb/test/API/linux/aarch64/mte_core_file/core.nomte b/lldb/test/API/linux/aarch64/mte_core_file/core.nomte
index 201f2880e6dc27c14306b980f518651ceeb2282d..454ff8361cc3f0acc5950f1af4d446f1034b0ae2 100644
GIT binary patch
literal 32768
zcmeHQdu$ZP8UJqg&OU-E$0OwtM_ywS9wG+ at LU5bP>pKj%bqz8XlqO2g$DM;6+jrr7
zq!5TWz=X%8sqIv1A(eO<I13R}kp@#$cF3b7P&Js6R#l`J@~mhZ+vLH4&G!3tXY9Sh
z&ZB9iw3)GHznSkb^UZI*nc4Lpa~q0E7D^Ti at MMMOVW0+}a)F7eFdrPOZe_GxHYu2j
zy<9OxpZc&7PoW2;qvu*$j8f8*+cQdbdY=l{diD$3rI87 at b9`~TWIr$N*EHU at i8hQk
zDkeX5hQf3j5`)`yF}cYuX?)RZgWIV$+a-;!eF!_{bL={Yuxr2BE(w=MdI$IOm}D55
z#+T%0gEqLGa&v!4xExEdQ<*-erv7w4%bC0@#ZF;-PEB at te^DlPz=1*MeGof+eB5r<
zzi9`}*9Ps+k&GveZ5u8MS{LpmWkpDgbwveC`q+(P|MM6Q%#H>`&-HTwmX9=5uz2QM
z$@QUX)Hfx&?U3&Cct*$Clh<_D(fvPqW6$oh4R0DTR=m8>Lk|C0w}$>br6DpzEHORY
zl=QhMKWfb7+~@oB7>cr(X9)HC!~J`Ggt6vTHYff59ZQaR?myS(-9}|&e7$vV>-{Zd
z^;rYsjFK+zPoEpC)7Hr62FgeSQ<|!i4^T)sbxtA`brEMsSJ5BNnFdE0V11<$`4+`o
zyr_5?_l?I2_un+GuhiEUHP(H?&T0K{pR&0zTeovq{gKf|fh||qs-63g{MOeViI`xN
zp#}j)`7x!k^9GlIp5`;kF&M_`>5Kx~-|W23DA$8 at Bi4sAKFukm41?%%OvMo?b-u*7
z{x~M*WCAPPmu|$~L{@)VdrLbs0iw6FIv-aStA9As(C16KlG)$J<e4c{Vf9o(cvRtn
zDk>>n$mir1uEfFTXSXAHy#uf_HubFKb;XeLcmrT(YwB6a>+CGt&J9={*t(~EP*1E5
zoyNL;lJof)rKFqzd~av_!gM}9zIQJ*_L~`uKeIAaTQM`>d$jJ6s#$q#VZxW<uC5Eu
ztf^Wt)8`BOE9cF<v!*Jzdd;0HgR6<_ch-fR^I+!JM=8J at WbTrGd7tUuf5rgurud^H
zkM?vPe=}1Oium>j%N7 at vWVC1KdoJ?ZG3&|v$|lcB{yUq2tEU}+Q)AKM%GDPyU%{*)
zLB4hf(4J3Qkp(yNlH$^P at 58ckFnNuW4!!e8CLIUgtWow&P8=IqU~^L#5H|FVU^QW*
zVIsbQo084Mr}{B`K~V9JQpz?p6Io)P(vkUQK6uOwH^mISPg2Y%B4)msLGd}GrkJ6#
zEyENuRCi#V#|-JHm`9j&u=<q}?>FtHHaD<#H|XD56u-BaboloM*^_LTNyZHO?M9kp
z{5y;6=s#&RK7N*SJ3$2k0s(=5KtLcM5D*9m1Ox&C0fB%(Kp-Fx5C{ka1Ofs9fq+0j
zARrJB2nYlO0s;YnfIvVXAP^7;2m}NI0s(=5KtLcM5D*9m1Ox&C0fB%(Kp-Fx5C{ka
z1Ofs9fq+0jARrJB2nYlO0s;YnfIvVXAP^7;2m}NI0s(=5KtLcM5D*9m1Ox*A>j-Q}
zx&L1t;{N}?@QaFZz;yq=jL#8xK`LFX%kNAc42$v1j#GsxNl5XEFSyFCS52jQ!=y_c
zV4}OkD3J~225Mjs>M_{BDd|$8`;qC6G4hp~q<hB9iJIegD03ULoR=TR!YJrAUni at J
zocJ7#J(RGE%xajy0;CS)zsdM~9CXJS>F;6S9bx0VpYi#Cw=t(kO#0l(U$XIo*IQi?
z4p!87{WT$fwRdGjBvMsdF~DYw&_e;=+5v9Aa=4;yfE$i@>#A0UD<Z4I!2vF|5cUNF
zp;|C*DSkA7*Z=A_0P7dDd1pK4Ip^e~f0F6Xf+*A9-nM^^7>hExZ at LyUB^rx_&+TWt
z=_I2>xKbkQiATd;RC+I1mNd`4q-{O<Y~UATH$T-oamQRZOLNEPsDv&~#yU9C^f}dG
z#794$WS^0;?txVw*uXOhqGf)^#xj at EJ~8lqpTiCE!)h9Mo&dG=MTGti8{FNNFJIVX
zRa;kBVQ!WpUpUqI-3vt^z4oqua;y#1#FnK>?8zf)ym_iCzBSi9jr6yn{aawKexXnE
zsE~2yeK{Skmma?3Qo+s+SKXl=n410!<i5Hq3#7}%7Vx}Nu(RpFlP7wpeabk}nBNMc
zNPbw;Jk4rOY%)L`(BF31`^MC7MLTe~f1>hc^i6_eqc?z5-6?~o0PSDbv~gbRZQ;ED
zo-7Bf+IU0r(D+_MKCD-tPD6d09U8YdY_Uz~>n4ja&O<n!DFBH>R-{%)&{(#j+zaW|
zFJK$ge<!v<cz7YLny{k&K13e%;||<#OnUH!!w;KwRiK at 1n9=SE!ta{akKaPX?>+w=
zvA3{4`}+0g9|C)<1~GgEF<i+otVR1a7@=cWk8(4PZzGPI9IiOw=q5Z7OTz3GkYW=0
zm<96Xzv0+9t|W8mc*;7Sr_ at QYNes^;gb8Ai{`d9gqYj8|fu*fmWW(<?Se%foi*+2f
zAwSDvtG3{L0OIp5`cPlF@~R3DD?%SmVINswyQyDe9&LKRZk)#)*6&l;FJbo^MlTVD
zSf^|~-{(+laC{45upi^FIc*>grSyR~G~-Ay_(Vz!wqXoj#29q37<6F_A|@RR&|eo~
z=R(}PV7)vIV-UyF)XZYg1vWkYNJjDZ3i|CoxxLJtu`ldezyBFm??dO)>=5?>JjY`)
z at P|IUvisO*<%c&M6q6K>0QI}1_QF=gx)ok3Y*nmCaeh9+u_nbW&J|(t67r|sIuP5$
z+l;ussHL-YxU^N$2I9!P4r84KjZchU+PXD!Y3sw23*!}gU2%%v7}{^J$a);P;FdG*
z$!XJFFl-0K5XFv5NqeS#yesa?{rxT%q{W(X9 at EfAZ%PcgD84X;h)<XtRPTuWmgbE1
z5(zwkm-}!xIyRd26uIbzV=H1n`%1;=jb$3H6+dF(1>3{fh&8QE6)7kiJNBgS=_v#_
zUSL|^<);f<aV<~BAJ!PR*tFIuHfaC(ELu6r!0&>rWDS)Ia^wqr>rTY`WN5sy%o6`d
zwzPcwfE52&hL%rcX*#ukz0MZT0_g6Q<rb{~5>b2MNo5px%4eueph}HdR<(N@)_1E?
zx68ihvBOyY)Gx>9|L%qZa at 72+ObB;6z>|F|952sx<>T7A`^pa at zb=3=mz9R6cl{)4
zX-rgG<AsP<=Nw2VNH2z<wLDkK2U$&QbgPLhuw3?y0ne5kSAORlHDSq!c1!}>nd|bc
zEna}j*U(>ALv+`rG<c4D=J~G at 9KZ6mrE%wGOQTnVZrWoz<=a}^+QRdf<S{K5<#8?h
z0Dhi8s=ohN)BWSrrgbvJ4B3R1PC2v14bhIBsIxmq%C}+pqzuoIPvjfU)#XAQ+wLin
z?$@V&cRW$OAb!2BD1K#GVf^C<T=Bkjrw_Lw&a_A4>DNM75{7$l&+J71FUn(EF3I1X
zetMEIUxV3Qk|(xok!>+=CUg(8gU7AFIV<|&>vf;c##qemdi?yJ%D~m~>fEbsmAO~z
z6=*ELHS5Fp^mRSn)Qt7=9B6C?OALL8724INec+h4ANQ4P2b_}^z=<}@1y<<B!^MOA
zwb^#$=favc%o{N-_kx;l0myH|9L0H9Crh#WW$6r_=EI|iO*6*mri6Ca9&5Dek61=*
zx>dXSSUa9Y=2)Tj37<WdXw%E6N0<$U!%!G{Gobr4wn6jgMSs=nn&+Y{wVcPch(~2Q
z-^yn}qYo^N^5|%XWW)0v+Iu$3kk~XFTC;Gh6jLuCKGYBHMIHN?FTF^kZsW|eSfd?L
zj2${l`23LFMOw2N(J~vxA&vb3>N}*iW?5m?Ui6LPfyctDD5IF}#F#F@@@{O~EJq*o
z{ob1^U$6(>>p1<>vpsg_k)FdDKkFG5_(#X~qi1`HXFS_ed~i#T^>%w{?(O4CCm&Wz
z7Ohb;W?5mRV`4*TH1j~|-puCGQ<(=#-_AT#S}#S*pnh+uKT`?%?d3sN{r=Lt%t^uQ
z<ujIKFPsq~*(#LfET6h0XW`V)fP4zdr-ZT<OVFiCL4Ua%{7UVVvvw3YSZ{|_KAbD4
zKTw)o-(2ddKUnIoKU4||l)PWx^<#|7Mm!_C_a-#YqBZz&@eVApV3sh;m~EKTFw;7U
zexhl;xG9bSyZ!j5ns$|yyRK^5N38r#LesifdH!`x`_&Cio2cL94!}QW_&aI;PnocH
zMgD&I0jsmubZEx~K#6}pjAwQJn<zUBG4P)jp!a-A7*qPM`P?TN^*&Z-Rp?^%?{kKs
z_FsGQ at 2#OaSmbtpN10j}u2t|YT=9fLHU3IpRZz*B>zwT at tEkCSrn**F)dUn at xb{wD
z-ZgvLG((uD%$_xSZeCs<eiAtAD(fQQh;IcrD}8m9;0&w{)~&5IXe10y{KXUJqZQ%0
zs!%Yg;thZ^7>ZPYGg7f80#08|q$-F_t at cMywN7uqS6k%=XE+q_MSS4&hiYppf{~%d
z^JV!oe>CTOI(Qs#I*T>P<#tx*aYMg5L~U?6j}uN0GkyBbp%CKsJYFUsk7V4Q#~r6U
z&QL{9EDU)Svay6eQxM|zJgzw9 at z3R{l)h&vMme9yEvNHYPuxfDKX>4JSfEc{ZlC(S
zjvo+7iQ~qZZY<E4_&U?UAR%>#>BKOD@~6TJj20s$d*1&E_J0OW?@7^5#gD$jsc+WZ
zP5-CR8#l at M`1wBKM;W!rKKtP+`{5@}6_lA1x97APg=Ej;jO+6MqZDxlquhTp<-VI$
qA7m4sx=^^CSyz+=0s;YnfIvVXAP^7;2m}NI0s(=5K;Zuefqw!2l7FB8
literal 20480
zcmeHPZ%iD=6`#AkJI)R`Yvd?t63J_zHdy8ku<JmRh~>^0BN5jnL`~Wc3wIoFKDbNn
z4%e2D49I_Q&Xs8VC5a<7B~1)cK3IyYgsK&^O<mWPs+5GtU#d_C5~qz?*Zt5E*=*mN
zop<b=L2*;bX`>l@`{uoQZ|1$<yqVb#o;}>yvfJr!Fe)zgCR^qh)2YEmbymw%!Mg;V
zR%{BkYVSH5W2 at pAZsaw5VA1*WmIn<aDBAHcHPURLN-kZ&&Vw47P*ZQ;F4xbJ5z`cX
z*vaTU7H9L53pAlL`q0XD*F?L`E+ at Xh+Li69Zneva@9Y<}o4b9x99-18mHkwmmZP@#
za{L^8cx5~7*7$O8xt3=~`b2HxaX)qH?~&Z`gkCnGZFYRTeZo%5vlHT#?09 at +SG9_r
zM*dh7^E$`wTG7Iad6tJK#x?@RXdnDmYa{k{7d}L>*Gcy5cNi-M1EM51bgEhO=NEGM
z&*Lu4-_3o#Ea>YVJ;&tA1M0$`|LFY8`@YCAbQ+3jEB0-KrpB9GdCfJMW&-WU>&vV;
z6>C}#eLID6)vF`PmO;0kt$&e9)rVGmqq;R7 at zWHi%G$AC5f<OyMu5kdXl__5YCsV-
zSD_JqG#5lWe2M<FFP`X2N4UDr-`jhjukz_+Vt*u at 2BtIQPe)Q|f5X0Je{VG2f6(92
zkqr0j+~EfkBb-P^jIL;J#Bb|J<2_jq%$q^@H8(XsPQFpDkpGtEoqM8B`(SWf2jtTx
z8eX;5(RSjuSQW|<NTHi3;cEyhqG3JOp>$e=&jnU>ao)IuyjD>30m~YTumVAu*x$Uw
z3rc#FTZAFbDV9Qu at Hxh6Q65jnBkA8O+KGHkRLVcLa_@e at 4>>H)HVXa?(`vt4 at U=o;
zuvvofdBL~Fmge1r at mgvnFzGB-b!ri`!J_$RC-Iuq4pS(KShx9SAMxUBdx{L`tP^L~
zlO(6JOq@;MBRQQpTK-ue_FS>|ZX$PRFWzUhmk7DPFP`=vh$hoUGLgWw_1`Wu_J7f1
ze<}$(M~L=~O1_I!cE|fs8m_GIZLjvF63qWUsMmR0-u<UqxHj;3g at 4)o$Ddd7_f+=y
zp2n7zNByB_+#l*l^<YY&Jr<-?=K_3S?&|t7MHxuMk2$^Cp#6u9UuJQ*RNekVU+DFh
zsO6t#k+1j@&lfxc9B^>7H1B=lNvLb5to?_#!TdUHZJz9b^c4r at bHXER6dN`!i48{$
zVZiqgmkk?yB}Tah8;IK`M_w=C8wNiG^R_3y+ at IwBgs*WPTh0Ir<*-G7^0f%uTAL2N
zH&WXgTbnSHL?R#&kO)WwBmxoviGV~vA|Mfv2uK7Z0ulj<fJ8tdAQ6xVNCYGT5&?;T
zL_i`S5s(N-1SA3y0f~S_Kq4R!kO)WwBmxoviGV~vA|Mfv2uK9JL<A1!-Tzm_{r_pW
zXMjcLPq>#!7ah5*7Vc5%aF?-=UuU8_lR`Czyd^G75~VAK*ggCgbN0NrV3|*O$Ji6U
z<zU^pK^ATB*CYJPr){VNg(&J`!Rwg#f7`KOm-#+pcc?@9P+hU?2kCnD_uQ*bAoIbm
z7;cMh5b+!o*1LeJARiTSx<7iK&~F!xoD*>(!F~w;mqeV*Fk+EpJko1~dlTW9(H%*r
zqkWNOu at EG>Iy(+6OS8(!NNQOMHyu;a?qnq0pNuo>+TVfBR03}M`Kqm3O-7Axr*C^5
z2I0*9A?FZ(Kc4z)(FWijgx`0u0Sfx=gy)G%Mgg{ALA<aat|&u{oAy4zPQG#R+{iz6
z1&@aw-1GI8g&Ti*$3KSiL- at Dgm1f{sv765uhX)>6IkrKmFI8qYKEj^4>Sk>vY_K(~
z4z&if>HBwmvZMx?vS0VGwvl(VOc6U<e4Oc%TiooSsXAqL*riVfTx`b&^~!8;?%~-G
zQ!ZW!mt+j4FCHxqR-7EsCp?vb3Di9Sb|zaBb1a!{VODr)L2+*lG3T=%*1s?lOr5zN
z*ycVRD7*Ng!IZyLI9S_!{R_`A at Z~2b-?|=Pt_%dV9^1xEv+caDWw33tmrYE8 at 6(F$
ze)+n=83^q?;?XyQ6~(3%)>f}6voof7ui<(iIRt4vwzOsEJj8YhWNbh`<$<`|UiQPI
zsyj0behxdV_|8BaTNqnB;{xhpix>ySZ?J;cFCh-}VGjDR#`44vCmic<Als<2XS at Rg
zr%DY|9quyKusZx=lzB4|uwU?6{f7|0&rFVA0Px$*oEJX|Z_a!G<8}jneP{KF%>utT
z*iEr at 9KR#bPk<F&`dBI08eoMS!@&)KiNLmk(;Q2{F~HoJ^Newv5VubtZp3sYJbx|l
zECoDYM@#^V$Wx}uJ{@>>9Qt?-#y+N4J{PRf`Fu`*tlr^?ZG!nY209BckApq!|7wJ}
zd>inZ0~yYn!Q8iu9p-cC=5wj&rQAmx`v)*K;`gSYR}e?wjWT6+{=Fr&5atPU6*iu8
zI1f#>JREkfl80r%iVWo8v2rU9N5IZxUXh1)W%CfQnc0PTSdMx4JIF&9&qIjoIR)nV
zRi20LjODva<Y8$h{Ie6S!NRd*VBnS0fg4@#dLRzWiw+0-X>KkS#x$puAAf+j%I~rA
z^`B68{eDSRAhusUW~xUaC#IMZI|BJKJf}~VFg7_n57fmbKLy=aT1*vl=r^wA92&d1
zN)BnkirBb5(N$)}-V1g=a=3Zy0fw<-{;cKsb9{roXyuOk^bu8G43u4f94g4X4Rh#$
zcqoSu55nTSZA~82H)nnU{^9&xMk at 9cxF_GH{B}vjHHLf3tGi9L8}lCam(Jp$R+D*R
zVf85Dy}tq0J+9GqpiXUQW~|`l>xg9oW9RB^Ydv&TpS+?tw=Tjsd-B#j=1b3d3tRdw
z0PU at GZt_hJ9<)zh6#_cX#$hADLTBB5f~PzF-?y5x-w45T2+IxeEsZL1-rN*C9Y5Cu
z4|#A$3cU}kHds?I_)V=moJ^!r=|rNpa&MDX?W@`0tMXOX)ft_gHC2(wH!8I1DqoGS
z3XbPgPb!^EcZ8U)2XATnIuFHDhx#m<PBI@{d-olPBva8uJcltl8GMBUKEmNkM-HaB
zen($43_1zm;Ng3^7b at XIUtc7iUd`Lvm*e*%a4rdEnqQ*ZL|4 at A6+Gnwe(wVNpmv&n
zqN73|&tXgrvZp-2?@eGE*;76drThUEUPO8k%Qis`uC6A?p7Mn#eGh}$^C`YZVeXNf
z@{wq*7>Rr&|H*+zp at OekWWU<`A?Xut#0Q~*G12;&79A12oM(`~E}Mld`iF(`m?-ZY
z<kU|7Q$P557#yG4pBD;5Ngq^rA)Y9F+9${UWzj&C=2 at 6$=b!A`g*~j9oI>yKI6wA6
e^KYl*yIt=iF+kKVggV*fi6tu$kO<rX1pW=oq+uff
diff --git a/lldb/test/API/linux/aarch64/mte_core_file/main.c b/lldb/test/API/linux/aarch64/mte_core_file/main.c
index 89027e0ea75d2..df1b4c637ac0a 100644
--- a/lldb/test/API/linux/aarch64/mte_core_file/main.c
+++ b/lldb/test/API/linux/aarch64/mte_core_file/main.c
@@ -18,7 +18,7 @@
int main(int argc, char const *argv[]) {
#ifdef NO_MTE
- *(char *)(0) = 0;
+ __builtin_trap();
#endif
if (prctl(PR_SET_TAGGED_ADDR_CTRL,
More information about the lldb-commits
mailing list