aboutsummaryrefslogtreecommitdiff
path: root/src/client
Commit message (Collapse)AuthorAgeFilesLines
...
* In iOS, BREAKPAD_OUTPUT_DUMP_FILE value contains a malformed full path to ↵qsr@chromium.org2013-11-261-2/+1
| | | | | | | | | | | | | | | | | | | | the dump file. The std::string dumpFilename already contains the full pathname to the dump file. Appending it to the dumpDirAsNSString creates a string with the path portion duplicated, e.g.: /var/mobile/Applications/516BE756-DFD4-4F9B-85D5-85966B0038F7/Library/Caches/Breakpad/var/mobile/Applications/516BE756-DFD4-4F9B-85D5-85966B0038F7/Library/Caches/Breakpad/0A406D28-437D-48EE-9989-23F7F871818E.dmp Instead of this: /var/mobile/Applications/516BE756-DFD4-4F9B-85D5-85966B0038F7/Library/Caches/Breakpad/0A406D28-437D-48EE-9989-23F7F871818E.dmp R=markus@chromium.org, qsr@chromium.org Review URL: https://breakpad.appspot.com/744002 Patch from Akiva <scirsw@gmail.com>. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1237 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Generate minidumps for 64-bit ARM apps on iOS.mark@chromium.org2013-11-2110-62/+276
| | | | | | | | | | | | | | | Adds an ARM64-specific definition of MDRawContext and support for writing out a minidump when running on ARM64. Additionally, extends the iOS minidump generator for NSExceptions to work on ARM64 as well as ARM. Patch by Colin Blundell <blundell@chromium.org> BUG=542 Review URL: https://breakpad.appspot.com/664002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1235 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Provide BreakpadGetCrashReportCount() and -[BreakpadControllermark@chromium.org2013-11-204-10/+30
| | | | | | | | | | | | | | | | getCrashReportCount:] This provides the ability for clients to query the number of crash reports that are waiting to upload. Patch by KiYun Roe <kiyun@chromium.org> BUG=547 Review URL: https://breakpad.appspot.com/714002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1234 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow SIGABRT to abort the program.thestig@chromium.org2013-11-071-2/+3
| | | | | | | | | | | | | | | | | | | | SIGABRT can be generated internally, usually by calling abort(), or externally by another process. When the signal is generated by the kernel, info->si_pid is 0 and the signal is treated in the same way as an exception (SIGSEGV, etc.), but the assumption that the exception happens again upon return from the handler is wrong, so we must have a special case for this. Original CL: https://breakpad.appspot.com/734002/ BUG=chromium:303075 TEST=tested with Alt-VolumeUp-X on Chrome OS A=semenzato@chromium.org R=semenzato@google.com Review URL: https://breakpad.appspot.com/754002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1233 4c0a9323-5329-0410-9bdc-e9ce6186880e
* NSLocalizedString compatibility (10.8 SDK and clang trunk -Wformat-extra-args)mark@chromium.org2013-11-051-12/+12
| | | | | | | | | | | | | | | | | | | | | Apparently, as of the 10.8 SDK, Apple has quietly decided that the first argument to NSLocalizedString is supposed to be usable as-is as a format string, instead of simply being the key to obtain a usable format string. The recent clang trunk enforces this, resulting in build breaks like crash_report_sender.m:560:14: error: data argument not used by format string [-Werror,-Wformat-extra-args] displayName]; ^ Breaking the result of NSLocalizedString into a temporary NSString* is enough to suppress the warning. BUG=chromium:314109 R=thakis@chromium.org Review URL: https://breakpad.appspot.com/674003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1230 4c0a9323-5329-0410-9bdc-e9ce6186880e
* increase exception handler stack size for dumping threadvapier@chromium.org2013-10-231-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When running unittests under ASAN, we see that these code paths can slightly smash the stack. Double it to avoid that. [ RUN ] ExceptionHandlerTest.InstructionPointerMemoryMinBound ================================================================= ==12775== ERROR: AddressSanitizer: stack-buffer-overflow on address 0xf6787614 at pc 0xf7516b29 bp 0xf6786d38 sp 0xf6786d30 READ of size 4 at 0xf6787614 thread T0 #0 0xf7516b28 (/build/x86-generic/tmp/portage/chromeos-base/google-breakpad-1181-r66/work/google-breakpad-1181/build/src/client/linux/linux_client_unittest_shlib+0x69eb28) Shadow byte and word: 0x3ecf0ec2: f2 0x3ecf0ec0: f2 f2 f2 f2 More shadow bytes: 0x3ecf0eb0: f2 f2 f2 f2 0x3ecf0eb4: 04 f4 f4 f4 0x3ecf0eb8: f2 f2 f2 f2 0x3ecf0ebc: 04 f4 f4 f4 =>0x3ecf0ec0: f2 f2 f2 f2 0x3ecf0ec4: 04 f4 f4 f4 0x3ecf0ec8: f2 f2 f2 f2 0x3ecf0ecc: 04 f4 f4 f4 0x3ecf0ed0: f2 f2 f2 f2 Stats: 0M malloced (0M for red zones) by 2757 calls Stats: 0M realloced by 0 calls Stats: 0M freed by 2229 calls Stats: 0M really freed by 0 calls Stats: 3M (899 full pages) mmaped in 7 calls mmaps by size class: 7:4095; 8:2047; 9:1023; 10:511; 14:32; 16:16; mallocs by size class: 7:1831; 8:590; 9:85; 10:233; 14:3; 16:15; frees by size class: 7:1459; 8:437; 9:84; 10:232; 14:2; 16:15; rfrees by size class: Stats: malloc large: 15 small slow: 25 ==12775== ABORTING BUG=chromium:293519 TEST=ran unittests under ASAN and they now pass R=benchan@chromium.org Review URL: https://breakpad.appspot.com/636002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1224 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove define of mach_vm_region from mach_vm_compatibility.h.qsr@chromium.org2013-10-171-1/+0
| | | | | | | | | | | | mach_vm_region() is not called in the Breakpad codebase. Patch by: blundell@chromium.org R=qsr@chromium.org Review URL: https://breakpad.appspot.com/643002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1223 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove unittest from sources list of iOS client xcodeproj.qsr@chromium.org2013-10-151-2/+2
| | | | | | | | | | | | | This unittest has a main(), which causes linker errors when the library is linked into an application. Patch by:blundell@chromium.org R=qsr@chromium.org Review URL: https://breakpad.appspot.com/640002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1221 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix missing include in ios_exception_minidump_generator.mm.qsr@chromium.org2013-10-111-0/+2
| | | | | | | | R=qsr@chromium.org Review URL: https://breakpad.appspot.com/637004 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1220 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Adding mips support for Android.gordana.cmiljanovic@imgtec.com2013-09-252-1/+10
| | | | | | | | | | | | | | Mips linux support has been added previously in r1212. Some additional changes are required to make breakpad functional on Android. BUG=none TEST=build, unittests, chrome test application Review URL: https://breakpad.appspot.com/632002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1215 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Adding support for mips.gordana.cmiljanovic@imgtec.com2013-09-1110-27/+163
| | | | | | | | | | | | | Support for mips cpu is added to all breakapad targets including unittests. BUG=none TEST=unittests Review URL: https://breakpad.appspot.com/614002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1212 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Update to build against the latest revision of linux_syscall_support.hmseaborn@chromium.org2013-09-051-3/+3
| | | | | | | | | | | | The prctl() calls must be updated following this LSS change: https://code.google.com/p/linux-syscall-support/source/detail?r=24 BUG=none TEST=build Review URL: https://breakpad.appspot.com/627002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1210 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Enable the SIGABRT handler on desktop OS Xted.mielczarek@gmail.com2013-08-143-8/+53
| | | | | | R=mark at https://breakpad.appspot.com/618002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1205 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a memory leak, using stringWithUTF8String instead.yuwu@google.com2013-07-171-1/+1
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1202 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Check env var BreakpadMinidumpLocation first, if set, use it as ↵yuwu@google.com2013-07-151-2/+5
| | | | | | BREAKPAD_DUMP_DIRECTORY. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1201 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Linux: Fix builds on systems without PR_SET_PTRACER in linux/prctl.h.thestig@chromium.org2013-07-021-1/+5
| | | | | | | | R=thakis@chromium.org Review URL: https://breakpad.appspot.com/612002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1199 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix Android build more.thestig@chromium.org2013-07-011-0/+2
| | | | | | | | | | | | | Android doesn't have the Yama LSM, so this line isn't needed. (It doesn't compile either.) Original CL: https://breakpad.appspot.com/610002/ A=thakis@chromium.org R=mark@chromium.org Review URL: https://breakpad.appspot.com/611002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1198 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a clang warning.mark@chromium.org2013-06-271-5/+7
| | | | | | | | | | | | | | | | | Since explanatoryDialogText returns something that migth be user input, this looks like a good change anyhow. ../../breakpad/src/client/mac/sender/crash_report_sender.m:269:38: error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security] [self explanatoryDialogText], ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ Patch by Nico Weber <thakis@chromium.org> Review URL: https://breakpad.appspot.com/607002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1195 4c0a9323-5329-0410-9bdc-e9ce6186880e
* add interface for WriteMinidump which allows the caller to supply file ↵cdn@chromium.org2013-06-062-21/+64
| | | | | | | | | | | | handles instead of paths where the minidumps should be written. BUG=N/A TEST=N/A R=ivan.penkov@gmail.com, mark@chromium.org Review URL: https://breakpad.appspot.com/602002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1191 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Make all linux ptrace dumper tests use a subprocessted.mielczarek@gmail.com2013-06-061-191/+203
| | | | | | Patch by Mike Hommey <mh@glandium.org>, R=ted at https://breakpad.appspot.com/550002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1190 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Treat warnings as error and fix most level 4 warnings in the breakpad ↵ivan.penkov@gmail.com2013-06-048-67/+74
| | | | | | | | | | | windows client projects. Some of the lint errors in the files touched by this change were also fixed. BUG=533 Review URL: https://breakpad.appspot.com/601002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1189 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fixing several instances of std::vector::operator[] out of range accessivan.penkov@gmail.com2013-05-212-9/+16
| | | | | | Review URL: https://breakpad.appspot.com/597002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1187 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Submitting this on behalf of Xiaoling Bao.ivan.penkov@gmail.com2013-05-204-4/+17
| | | | | | | Make custom info population before dump generation as an optional operation. This is part of a security change to move the crash generation and upload out of Google updater process. Review URL: https://breakpad.appspot.com/586003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1186 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Ensure a proper LinuxDumper::crash_thread_ valueted.mielczarek@gmail.com2013-05-172-4/+4
| | | | | | Patch by Mike Hommey <mh@glandium.org>, R=me at https://breakpad.appspot.com/582002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1185 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix a "set but not used" compiler warning in a testmseaborn@chromium.org2013-05-101-1/+2
| | | | | | | | | | | | Add a missing assertion whose absence made the test ineffective. Make the test a little stricter too. BUG=none TEST="make check" to run the test + use "-Wall -Werror" Review URL: https://breakpad.appspot.com/592003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1180 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix minidump generation from exception.qsr@chromium.org2013-05-032-9/+15
| | | | | | Review URL: https://breakpad.appspot.com/583002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1169 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Rewrite SimpleStringDictionary with NonAllocatingMap.rsesek@chromium.org2013-04-244-20/+17
| | | | | | | | | | | NonAllocatingMap has a near-identical interface, but is significantly less code, more customizable, and has storage that is POD. BUG=http://code.google.com/p/chromium/issues/detail?id=77656 Review URL: https://breakpad.appspot.com/568002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1161 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Improve ARM CPU info reporting.digit@chromium.org2013-04-246-126/+897
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch improves several things for Linux/ARM: - Better detection of the number of CPUs on the target device. The content of /proc/cpuinfo only matches the number of "online" CPUs, which varies over time with recent Android devices. - Reconstruct the CPUID and ELF hwcaps values from /proc/cpuinfo, this is useful to better identify target devices in minidumps. - Make minidump_dump display the new information in useful ways. - Write a small helper class to parse /proc/cpuinfo and also use it for x86/64. - Write a small helper class to parse sysfds cpu lists. - Add a my_memchr() implementation. - Add unit tests. Tested on a Nexus S (1 CPU), Galaxy Nexus (2 CPUs) and a Nexus 4 (4 CPUs). Review URL: https://breakpad.appspot.com/540003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1160 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Allow option for efficient and safe opt out of in-proc dump generation for ↵ivan.penkov@gmail.com2013-04-234-41/+143
| | | | | | | | | | Windows breakpad clients. https://breakpad.appspot.com/549002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1157 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move SimpleStringDictionary from common/mac/ to just common/.rsesek@chromium.org2013-04-1810-314/+29
| | | | | | | | | | | | This also cleans up some things like the file name, trailing whitespace, and making the test use gtest instead of sentest, since there's nothing Mac specific about this. BUG=https://code.google.com/p/chromium/issues/detail?id=77656 Review URL: https://breakpad.appspot.com/561003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1154 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add Android ifdef to fix issue 526ted.mielczarek@gmail.com2013-04-181-0/+2
| | | | git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1153 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix missing result check in Mac exception handlerted.mielczarek@gmail.com2013-04-181-3/+7
| | | | | | Patch by Georg Fritzsche <georg.fritzsche@googlemail.com>, R=ted at https://breakpad.appspot.com/554003/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1152 4c0a9323-5329-0410-9bdc-e9ce6186880e
* ESP is zero in dumps created by CrashGenerationClient::RequestDump on i386 Linuxted.mielczarek@gmail.com2013-04-161-0/+30
| | | | | | Patch by Bruce Dawson <bruce.dawson@gmail.com>, R=ted at https://breakpad.appspot.com/533002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1149 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Removing redundant calls to string::c_str().ivan.penkov@gmail.com2013-03-291-7/+7
| | | | | | | | https://breakpad.appspot.com/539002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1139 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Get the complete linux gate mapping instead of only one pageted.mielczarek@gmail.com2013-03-291-3/+2
| | | | | | | A=Mike Hommey <mh@glandium.org> R=ted at https://breakpad.appspot.com/542002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1134 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix Windows unittest build on VC2012ted.mielczarek@gmail.com2013-03-291-2/+9
| | | | | | R=mark at https://breakpad.appspot.com/539003/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1133 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix three unit tests on recent ARM devices.digit@chromium.org2013-03-211-0/+24
| | | | | | | | | | | | Three unit tests were failing on recent ARM devices (e.g. Galaxy Nexus or Nexus 4), while ran properly on older ones (e.g. Nexus S). The main issue is that the instruction cache needs to be explicitely cleared on ARM after writing machine code bytes to a malloc()-ed page with PROT_EXEC. Review URL: https://breakpad.appspot.com/540002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1132 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Linux MinidumpWriter should properly set number_of_processors on ARMted.mielczarek@gmail.com2013-03-121-0/+4
| | | | | | | | | R=digit at http://breakpad.appspot.com/425002 This doesn't fix this problem in all possible cases, but it makes it slightly better in some cases, so I think that's a net positive. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1131 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove "library" variableted.mielczarek@gmail.com2013-03-071-9/+1
| | | | | | | | A=Thiago Farina <tfarina@chromium.org> BUG=http://code.google.com/p/chromium/issues/detail?id=111541 R=thestig@chromium.org at https://breakpad.appspot.com/537002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1130 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Make OOP mac crashreporting exit after writing dumpted.mielczarek@gmail.com2013-03-061-1/+4
| | | | | | R=mark at https://breakpad.appspot.com/538002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1127 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Use stdint types everywhereted.mielczarek@gmail.com2013-03-0619-112/+113
| | | | | | R=mark at https://breakpad.appspot.com/535002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1121 4c0a9323-5329-0410-9bdc-e9ce6186880e
* size_limit_ member of minidump_descriptor ignored in copy constructorted.mielczarek@gmail.com2013-02-142-2/+4
| | | | | | Patch by Avishai Hendel <avish@fb.com>, R=mkrebs at https://codereview.appspot.com/7305060/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1114 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix some issues with -Werror=sign-compare on Android buildsted.mielczarek@gmail.com2013-02-011-1/+1
| | | | | | R=digit at https://breakpad.appspot.com/524002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1110 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Add API to find out if there is crash reports to send to the server.qsr@chromium.org2013-02-012-0/+10
| | | | | | Review URL: https://breakpad.appspot.com/518002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1109 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove a call to new[] from WriteDSODebugStreamted.mielczarek@gmail.com2013-01-311-4/+3
| | | | | | R=mark at https://breakpad.appspot.com/523002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1107 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix remaining processor/scoped_ptr.h references for reals.thestig@chromium.org2013-01-221-1/+1
| | | | | | Review URL: https://breakpad.appspot.com/516003 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1104 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Fix remaining processor/scoped_ptr.h references after r1096.thestig@chromium.org2013-01-223-3/+3
| | | | | | Review URL: https://breakpad.appspot.com/516002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1103 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Remove <(library) usage from gyp files.thestig@chromium.org2013-01-194-6/+6
| | | | | | | | | | BUG=chromium:111541 Patch by Thiago Farina <tfarina@chromium.org>. Original code review: https://breakpad.appspot.com/513002/ Review URL: https://breakpad.appspot.com/515002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1101 4c0a9323-5329-0410-9bdc-e9ce6186880e
* Move scoped_ptr.h to commonted.mielczarek@gmail.com2013-01-177-7/+7
| | | | | | R=mark at https://breakpad.appspot.com/509002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1096 4c0a9323-5329-0410-9bdc-e9ce6186880e
* ExceptionHandler::HandleSignalmark@chromium.org2013-01-141-2/+5
| | | | | | | | | | | | | | | (https://code.google.com/searchframe#OAMlx_jo-ck/src/breakpad/src/client/linux/handler/exception_handler.cc&exact_package=chromium&q=SI_USER&type=cs&l=389) requires si_pid to be equal to getpid() for SI_USER signals. This is a patch by Lei Zhang (thestig@chromium.org) that fixes the issue with Chrome+ASan being unable to upload the crash dump to the crash server when the seccomp sandbox is on. Patch by Alexander Potapenko <glider@chromium.org> Review URL: https://codereview.appspot.com/7066068/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1095 4c0a9323-5329-0410-9bdc-e9ce6186880e