From 7a6c4bc6619fb2c59d0e82e748975670bf5831ee Mon Sep 17 00:00:00 2001 From: Joachim Metz Date: Sun, 10 Mar 2024 10:01:21 +0100 Subject: [PATCH] Worked on jump list script and documentation --- documentation/Jump lists format.asciidoc | 140 +- dtformats/jump_list.debug.yaml | 34 +- dtformats/jump_list.py | 254 +-- dtformats/jump_list.yaml | 30 +- dtformats/output_writers.py | 21 + dtformats/shell_property_keys.py | 1835 ++++++++++++++++++++++ scripts/jump_list.py | 480 +++++- 7 files changed, 2532 insertions(+), 262 deletions(-) create mode 100644 dtformats/shell_property_keys.py diff --git a/documentation/Jump lists format.asciidoc b/documentation/Jump lists format.asciidoc index 66e7014..ced873a 100644 --- a/documentation/Jump lists format.asciidoc +++ b/documentation/Jump lists format.asciidoc @@ -29,7 +29,7 @@ specification. == License .... -Copyright (C) 2014-2023, Joachim Metz . +Copyright (C) 2014-2024, Joachim Metz . Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no @@ -50,6 +50,7 @@ in the section entitled "GNU Free Documentation License". | 0.0.5 | J.B. Metz | March 2016 | Additional information about format version 4 automatic destinations jump lists with thanks to E. Zimmerman. | 0.0.6 | J.B. Metz | June 2019 | Corrected typos and formatting changes. | 0.0.7 | J.B. Metz | February 2023 | Additional information about format version 2. +| 0.0.8 | J.B. Metz | March 2024 | Additional information about custom destinations jump lists. |=== :numbered: @@ -60,6 +61,7 @@ introduced in Windows 7, that gives the user quick access to recently accessed application files and actions. The automatic and custom destinations Jump lists are stored in: + .... C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Recent\ .... @@ -69,18 +71,18 @@ This directory contains Windows Shortcut (LNK) files and the following sub direc * AutomaticDestinations * CustomDestinations -For more information about the LNK format see: https://github.com/libyal/liblnk/blob/master/documentation/Windows%20Shortcut%20File%20(LNK)%20format.asciidoc[[LIBLNK\]]. +For more information about the LNK format see: https://github.com/libyal/liblnk/blob/main/documentation/Windows%20Shortcut%20File%20(LNK)%20format.asciidoc[[LIBLNK\]]. Additionally Jump lists can be stored in: -* Explorer ProgramsCache Registry values see: https://github.com/libyal/winreg-kb/blob/master/documentation/Programs%20Cache%20values.asciidoc[[WINREG-KB\]]. +* Explorer ProgramsCache Registry values see: https://winreg-kb.readthedocs.io/en/latest/sources/explorer-keys/Program-cache.html[[WINREG-KB\]]. == Automatic destinations files The automatic destinations files are stored in the AutomaticDestinations sub directory and have the extension .automaticDestinations-ms. The automatic destinations file uses the Object Linking and Embedding (OLE) Compound File -(CF) format. For more information about the OLECF format see: https://github.com/libyal/libolecf/blob/master/documentation/OLE%20Compound%20File%20format.asciidoc[[LIBOLECF\]]. +(CF) format. For more information about the OLECF format see: https://github.com/libyal/libolecf/blob/main/documentation/OLE%20Compound%20File%20format.asciidoc[[LIBOLECF\]]. The automatic destinations OLECF file contains the following streams: @@ -131,7 +133,7 @@ See section: <> ===== DestList entry - version 1 -The DestList entry - version 1 is variable of size and consists of: +The DestList entry - version 1 is of variable size and consists of: [cols="1,1,1,5",options="header"] |=== @@ -172,7 +174,7 @@ The path can point to: ===== DestList entry - version 2 or later -The DestList entry - version 2 or later is variable of size and consists of: +The DestList entry - version 2 or later is of variable size and consists of: [cols="1,1,1,5",options="header"] |=== @@ -215,7 +217,7 @@ such as "U+d800" and "U+dc00". === Hexadecimal numbered streams A hexadecimal numbered streams contains a Windows Shortcut (LNK) file. For more -information about the LNK format see: https://github.com/libyal/liblnk/blob/master/documentation/Windows%20Shortcut%20File%20(LNK)%20format.asciidoc[[LIBLNK\]]. +information about the LNK format see: https://github.com/libyal/liblnk/blob/main/documentation/Windows%20Shortcut%20File%20(LNK)%20format.asciidoc[[LIBLNK\]]. == Custom destinations files @@ -225,118 +227,79 @@ directory and have the extension .customDestinations-ms. The custom destinations file consists of: * File header -* An array Windows Shortcut (LNK) file entries -* File footer -* [yellow-background]*Trailing data?* +* One or more categories === File header -The custom destinations file header is variable of size and consists of: +The custom destinations file header is of variable size and consists of: [cols="1,1,1,5",options="header"] |=== | Offset | Size | Value | Description -| 0 | 4 | 2 | [yellow-background]*Unknown (format version?)* -| 4 | 4 | | [yellow-background]*Unknown (Number of header values?)* + -[yellow-background]*Seen: 1, 2* +| 0 | 4 | 2 | Format version +| 4 | 4 | | Number of categories | 8 | 4 | | [yellow-background]*Unknown (empty values)* -| 12 | 4 | | [yellow-background]*Unknown (Header values type?)* -4+| _If header values type == 0_ -| 16 | 2 | | String number of characters -| 18 | ... | | String + +|=== + +=== Category + +A custom destinations category is of variable size and consists of: + +|=== +| 0 | 4 | | Category type + +See section: <> +4+| _If category type == 0_ +| 4 | 2 | | String number of characters +| 6 | ... | | Title string + Contains an UTF-16 little-endian string without an end-of-string character 4+| _Common_ | ... | 4 | | Number of entries +| ... | ... | | Entries + +Contains an array shell object entries +| ... | 4 | 0xbabffbab | Footer signature |=== -=== [yellow-background]*Header values types?* +[NOTE] +The number of entries is not reliable. + +==== [[category_types]]Category types [cols="1,1,5",options="header"] |=== | Value | Identifier | Description -| 0x00000000 | | [yellow-background]*Unknown (String?)* -| 0x00000001 | | [yellow-background]*Unknown* -| 0x00000002 | | [yellow-background]*Unknown* +| 0 | | Custom destinations +| 1 | | Known destinations +| 2 | | Custom tasks |=== -.... -00000000 02 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 |................| -00000010 0c 00 4d 00 6f 00 73 00 74 00 20 00 76 00 69 00 |..M.o.s.t. .v.i.| -00000020 73 00 69 00 74 00 65 00 64 00 05 00 00 00 01 14 |s.i.t.e.d.......| -00000030 02 00 00 00 00 00 c0 00 00 00 00 00 00 46 |.............FL.| - -00000030 4c 00 |.............FL.| -00000040 00 00 01 14 02 00 00 00 00 00 c0 00 00 00 00 00 |................| -00000050 00 46 a3 00 20 00 20 20 00 00 4a 30 d8 5c 56 5b |.F.. . ..J0.\V[| -00000060 cc 01 15 01 53 e0 f6 13 cd 01 3d 0c cd 2e 06 12 |....S.....=.....| -00000070 cd 01 f0 ad 12 00 00 00 00 00 01 00 00 00 00 00 |................| -00000080 00 00 00 00 00 00 00 00 00 00 38 02 14 00 1f 44 |..........8....D| -00000090 47 1a 03 59 72 3f a7 44 89 c5 55 95 fe 6b 30 ee |G..Yr?.D..U..k0.| -.... +==== Shell object entry -Empty -.... -00000000 02 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 |................| -00000010 01 00 00 00 ab fb bf ba |........| - -00000000 02 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 |................| -00000010 09 00 00 00 01 14 02 00 00 00 00 00 c0 00 00 00 |................| -00000020 00 00 00 46 |...FL...........| - -00000020 4c 00 00 00 01 14 02 00 00 00 00 00 |...FL...........| -00000030 c0 00 00 00 00 00 00 46 e7 02 20 00 20 00 00 00 |.......F.. . ...| -00000040 8b 29 81 76 15 04 ca 01 8b 29 81 76 15 04 ca 01 |.).v.....).v....| -.... - -[yellow-background]*TODO* - -=== Windows Shortcut (LNK) file entry - -The Windows Shortcut (LNK) file entry is variable of size and consists of: +The shell object entry is of variable size and consists of: [cols="1,1,1,5",options="header"] |=== | Offset | Size | Value | Description | 0 | 16 | | Class identifier + -Contains a GUID + -00021401-0000-0000-c000-000000000046 (Windows Shortcut (LNK)) -| 16 | ... | | Data stream + -Contains a Windows Shortcut (LNK) file. For more information about the LNK format see: https://github.com/libyal/liblnk/blob/master/documentation/Windows%20Shortcut%20File%20(LNK)%20format.asciidoc[[LIBLNK\]]. +Contains a GUID +| 16 | ... | | Shell object data |=== -[NOTE] -The file size in the Windows Shortcut (LNK) file data stream is not reliable -for indicating the size of the data stream (file). +===== Windows Shortcut (LNK) file entry -=== File footer - -The custom destinations file footer is 4 bytes of size and consists of: +The Windows Shortcut (LNK) file entry is of variable size and consists of: [cols="1,1,1,5",options="header"] |=== | Offset | Size | Value | Description -| 0 | 4 | 0xbabffbab | Signature +| 0 | 16 | 00021401-0000-0000-c000-000000000046 | Windows Shortcut (LNK) class identifier + +Contains a GUID +| 16 | ... | | Windows Shortcut (LNK) file shell object data + +For more information about the LNK format see: https://github.com/libyal/liblnk/blob/main/documentation/Windows%20Shortcut%20File%20(LNK)%20format.asciidoc[[LIBLNK\]]. |=== -=== Notes - -[yellow-background]*Trailing data?* - -[cols="1,1,1,5",options="header"] -|=== -| ... | 4 | 0xbabffbab | Signature -| ... | 4 | | [yellow-background]*Unknown (empty values)* -| ... | 2 | | Number of characters -| 114 | ... | | string + -Contains a UTF-16 little-endian string without an end-of-string character -| ... | 4 | | [yellow-background]*Unknown* -| ... | 16 | | Class identifier + -Contains a GUID + -00021401-0000-0000-c000-000000000046 (Windows Shortcut (LNK)) -| ... | ... | | Data stream + -Contains a Windows Shortcut (LNK) file. For more information about the LNK format see: https://github.com/libyal/liblnk/blob/master/documentation/Windows%20Shortcut%20File%20(LNK)%20format.asciidoc[[LIBLNK\]]. -| ... | ... | | 0xbabffbab | Footer signature -|=== +[NOTE] +The file size in the Windows Shortcut (LNK) file is not reliable for indicating +the size of the shell object data. == Notes @@ -379,6 +342,7 @@ Contains a Windows Shortcut (LNK) file. For more information about the LNK forma http://www.hexacorn.com/blog/2013/04/30/jumplists-file-names-and-appid-calculator/ Where the filename starts with the identifier of the corresponding application e.g. + .... %ID%.customDestinations-ms .... @@ -400,7 +364,7 @@ Where %ID% a 64-bit CRC of full path of executable file of the corresponding app | Title: | Windows Shortcut File format specification | Author(s): | Joachim Metz | Date: | September 2009 -| URL: | https://github.com/libyal/liblnk/blob/master/documentation/Windows%20Shortcut%20File%20(LNK)%20format.asciidoc +| URL: | https://github.com/libyal/liblnk/blob/main/documentation/Windows%20Shortcut%20File%20(LNK)%20format.asciidoc |=== `[LIBOLECF]` @@ -410,7 +374,7 @@ Where %ID% a 64-bit CRC of full path of executable file of the corresponding app | Title: | Object Linking and Embedding (OLE) Compound File (CF) format specification | Author(s): | Joachim Metz | Date: | December 2008 -| URL: | https://github.com/libyal/libolecf/blob/master/documentation/OLE%20Compound%20File%20format.asciidoc +| URL: | https://github.com/libyal/libolecf/blob/main/documentation/OLE%20Compound%20File%20format.asciidoc |=== `[WINREG-KB]` @@ -420,7 +384,7 @@ Where %ID% a 64-bit CRC of full path of executable file of the corresponding app | Title: | Explorer ProgramsCache Registry values | Author(s): | Joachim Metz | Date: | June 2013 -| URL: | https://github.com/libyal/winreg-kb/blob/master/documentation/Programs%20Cache%20values.asciidoc +| URL: | https://winreg-kb.readthedocs.io/en/latest/sources/explorer-keys/Program-cache.html |=== [appendix] diff --git a/dtformats/jump_list.debug.yaml b/dtformats/jump_list.debug.yaml index 2cdaada..893f339 100644 --- a/dtformats/jump_list.debug.yaml +++ b/dtformats/jump_list.debug.yaml @@ -1,25 +1,37 @@ # dtFormats debug specification. --- -data_type_map: custom_file_footer +data_type_map: custom_category_footer attributes: - name: signature description: "Signature" - format: hexadecimal_8digits + format: binary_data +--- +data_type_map: custom_category_header +attributes: +- name: category_type + description: "Category type" + format: custom:category_type +- name: number_of_characters + description: "Number of characters" + format: decimal +- name: title + description: "Title" + format: string +- name: number_of_entries + description: "Number of entries" + format: decimal --- data_type_map: custom_file_header attributes: +- name: format_version + description: "Format version" + format: decimal +- name: number_of_categories + description: "Number of categories" + format: decimal - name: unknown1 description: "Unknown1" format: hexadecimal_8digits -- name: unknown2 - description: "Unknown2" - format: hexadecimal_8digits -- name: unknown3 - description: "Unknown3" - format: hexadecimal_8digits -- name: header_values_type - description: "Header value type" - format: decimal --- data_type_map: dest_list_entry attributes: diff --git a/dtformats/jump_list.py b/dtformats/jump_list.py index 2c38f62..933e5c8 100644 --- a/dtformats/jump_list.py +++ b/dtformats/jump_list.py @@ -4,11 +4,8 @@ * .customDestinations-ms """ -import logging import os -import pyfwps -import pyfwsi import pylnk import pyolecf @@ -41,34 +38,6 @@ def __del__(self): self.lnk_file.close() self.lnk_file = None - def GetProperties(self): - """Retrieves the propertirs. - - Yields: - tuple[str, pyfwps.record]: property set identifier and property record. - """ - for lnk_data_block in iter(self.lnk_file.data_blocks): - if lnk_data_block.signature == 0xa0000009: - fwps_store = pyfwps.store() - fwps_store.copy_from_byte_stream(lnk_data_block.data) - - for fwps_set in iter(fwps_store.sets): - for fwps_record in iter(fwps_set.records): - yield fwps_set.identifier, fwps_record - - def GetShellItems(self): - """Retrieves the shell items. - - Yields: - pyfswi.item: shell item. - """ - if self.lnk_file.link_target_identifier_data: # pylint: disable=using-constant-test - fwsi_item_list = pyfwsi.item_list() - fwsi_item_list.copy_from_byte_stream( - self.lnk_file.link_target_identifier_data) - - yield from iter(fwsi_item_list.items) - def ReadFileObject(self, file_object): """Reads the LNK file from a file-like object. @@ -277,9 +246,15 @@ class CustomDestinationsFile(data_format.BinaryDataFile): _FABRIC = data_format.BinaryDataFile.ReadDefinitionFile('jump_list.yaml') _DEBUG_INFORMATION = data_format.BinaryDataFile.ReadDebugInformationFile( - 'jump_list.debug.yaml', custom_format_callbacks={}) + 'jump_list.debug.yaml', custom_format_callbacks={ + 'category_type': '_FormatIntegerAsCategoryType'}) + + _CATEGORY_FOOTER_SIGNATURE = b'\xab\xfb\xbf\xba' - _FILE_FOOTER_SIGNATURE = 0xbabffbab + _CATEGORY_TYPES = { + 0: 'Custom destinations', + 1: 'Known destinations', + 2: 'Custom tasks'} _LNK_GUID = ( b'\x01\x14\x02\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x46') @@ -295,78 +270,118 @@ def __init__(self, debug=False, file_system_helper=None, output_writer=None): super(CustomDestinationsFile, self).__init__( debug=debug, file_system_helper=file_system_helper, output_writer=output_writer) + self._entries = [] + + def _FormatIntegerAsCategoryType(self, integer): + """Formats an integer as a category type. + + Args: + integer (int): integer. + + Returns: + str: integer formatted as a category type . + """ + category_type_string = self._CATEGORY_TYPES.get(integer, 'UNKNOWN') + return f'{integer:d} ({category_type_string:s})' - def _ReadFileFooter(self, file_object): - """Reads the file footer. + def _ReadCategoryFooter(self, file_object): + """Reads the category footer. Args: file_object (file): file-like object. Raises: - ParseError: if the file footer cannot be read. + ParseError: if the category footer cannot be read. """ file_offset = file_object.tell() - data_type_map = self._GetDataTypeMap('custom_file_footer') + data_type_map = self._GetDataTypeMap('custom_category_footer') - file_footer, _ = self._ReadStructureFromFileObject( - file_object, file_offset, data_type_map, 'file footer') + category_footer, _ = self._ReadStructureFromFileObject( + file_object, file_offset, data_type_map, 'category footer') if self._debug: - debug_info = self._DEBUG_INFORMATION.get('custom_file_footer', None) - self._DebugPrintStructureObject(file_footer, debug_info) + debug_info = self._DEBUG_INFORMATION.get('custom_category_footer', None) + self._DebugPrintStructureObject(category_footer, debug_info) - if file_footer.signature != self._FILE_FOOTER_SIGNATURE: + if category_footer.signature != self._CATEGORY_FOOTER_SIGNATURE: raise errors.ParseError( f'Invalid footer signature at offset: 0x{file_offset:08x}.') - def _ReadFileHeader(self, file_object): - """Reads the file header. + def _ReadCategoryHeader(self, file_object, file_offset): + """Reads a category header. Args: file_object (file): file-like object. + file_offset (int): offset of the category header relative to the start of + the file. + + Returns: + tuple[custom_category_header, int]: category header and the number of + bytes read. Raises: - ParseError: if the file header cannot be read. + ParseError: if the category header cannot be read. """ - data_type_map = self._GetDataTypeMap('custom_file_header') - - file_header, file_offset = self._ReadStructureFromFileObject( - file_object, 0, data_type_map, 'file header') + data_type_map = self._GetDataTypeMap('custom_category_header') - if self._debug: - debug_info = self._DEBUG_INFORMATION.get('custom_file_header', None) - self._DebugPrintStructureObject(file_header, debug_info) + category_header, bytes_read = self._ReadStructureFromFileObject( + file_object, file_offset, data_type_map, 'category header') - if file_header.unknown1 != 2: + if category_header.category_type > 2: raise errors.ParseError( - f'Unsupported unknown1: {file_header.unknown1:d}.') + f'Unsupported category type: {category_header.category_type:d}.') - if file_header.header_values_type > 2: - raise errors.ParseError( - f'Unsupported header value type: {file_header.header_values_type:d}.') + file_offset += bytes_read + total_bytes_read = bytes_read - if file_header.header_values_type == 0: - data_type_map_name = 'custom_file_header_value_type_0' + if category_header.category_type == 0: + data_type_map_name = 'custom_category_header_type_0' else: - data_type_map_name = 'custom_file_header_value_type_1_or_2' + data_type_map_name = 'custom_category_header_type_1_or_2' data_type_map = self._GetDataTypeMap(data_type_map_name) - file_header_value, _ = self._ReadStructureFromFileObject( - file_object, file_offset, data_type_map, 'custom file header value') + category_header_value, bytes_read = self._ReadStructureFromFileObject( + file_object, file_offset, data_type_map, 'category header values') + + if category_header.category_type == 0: + setattr(category_header, 'number_of_characters', + category_header_value.number_of_characters) + setattr(category_header, 'title', category_header_value.title) + + setattr(category_header, 'number_of_entries', + category_header_value.number_of_entries) if self._debug: - if file_header.header_values_type == 0: - self._DebugPrintValue( - 'Number of characters', - f'{file_header_value.number_of_characters:d}') + debug_info = self._DEBUG_INFORMATION.get('custom_category_header', None) + self._DebugPrintStructureObject(category_header, debug_info) - # TODO: print string. + total_bytes_read += bytes_read - self._DebugPrintValue( - 'Number of entries', f'{file_header_value.number_of_entries:d}') + return category_header, total_bytes_read - self._DebugPrintText('\n') + def _ReadFileHeader(self, file_object): + """Reads the file header. + + Args: + file_object (file): file-like object. + + Returns: + tuple[custom_file_header, int]: file header and the number of bytes read. + + Raises: + ParseError: if the file header cannot be read. + """ + data_type_map = self._GetDataTypeMap('custom_file_header') + + file_header, bytes_read = self._ReadStructureFromFileObject( + file_object, 0, data_type_map, 'file header') + + if self._debug: + debug_info = self._DEBUG_INFORMATION.get('custom_file_header', None) + self._DebugPrintStructureObject(file_header, debug_info) + + return file_header, bytes_read def _ReadJumpListEntry(self, file_object): """Reads a jump list entry. @@ -408,69 +423,70 @@ def GetJumpListEntries(self): Raises: ParseError: if the jump list entries cannot be read. """ - file_offset = self._file_object.tell() - remaining_file_size = self._file_size - file_offset - data_type_map = self._GetDataTypeMap('custom_entry_header') + yield from self._entries - # The Custom Destination file does not have a unique signature in the file - # header that is why we use the first LNK class identifier (GUID) as - # a signature. - first_guid_checked = False - while remaining_file_size > 4: - try: - entry_header, _ = self._ReadStructureFromFileObject( - self._file_object, file_offset, data_type_map, 'entry header') + def ReadFileObject(self, file_object): + """Reads a Custom Destinations Jump List file-like object. - except errors.ParseError as exception: - error_message = ( - f'Unable to parse file entry header at offset: 0x{file_offset:08x} ' - f'with error: {exception!s}') + Args: + file_object (file): file-like object. - if not first_guid_checked: - raise errors.ParseError(error_message) + Raises: + ParseError: if the file cannot be read. + """ + file_header, file_offset = self._ReadFileHeader(file_object) - logging.warning(error_message) - break + data_type_map = self._GetDataTypeMap('custom_entry_header') - if entry_header.guid != self._LNK_GUID: - error_message = f'Invalid entry header at offset: 0x{file_offset:08x}.' + for _ in range(file_header.number_of_categories): + category_header, bytes_read = self._ReadCategoryHeader( + file_object, file_offset) - if not first_guid_checked: - raise errors.ParseError(error_message) + file_offset += bytes_read - self._file_object.seek(-16, os.SEEK_CUR) - self._ReadFileFooter(self._file_object) + for entry_index in range(category_header.number_of_entries): + if self._file_size - file_offset < 16: + break - self._file_object.seek(-4, os.SEEK_CUR) - break + try: + entry_header, _ = self._ReadStructureFromFileObject( + file_object, file_offset, data_type_map, 'entry header') - first_guid_checked = True - file_offset += 16 - remaining_file_size -= 16 + except errors.ParseError as exception: + raise errors.ParseError(( + f'Unable to parse entry: {entry_index:d} at offset: ' + f'0x{file_offset:08x} with error: {exception!s}')) - data_range_file_object = data_range.DataRange( - self._file_object, data_offset=file_offset, - data_size=remaining_file_size) + if entry_header.guid == self._LNK_GUID: + file_offset += 16 - yield self._ReadJumpListEntry(data_range_file_object) + remaining_file_size = self._file_size - file_offset + data_range_file_object = data_range.DataRange( + file_object, data_offset=file_offset, + data_size=remaining_file_size) - # We cannot trust the file size in the LNK data so we get the last offset - # that was read instead. Because of DataRange the offset will be relative - # to the start of the LNK data. - data_size = data_range_file_object.get_offset() + jump_list_entry = self._ReadJumpListEntry(data_range_file_object) - file_offset += data_size - remaining_file_size -= data_size + self._entries.append(jump_list_entry) - self._file_object.seek(file_offset, os.SEEK_SET) + # We cannot trust the file size in the LNK data so we get the last + # offset that was read instead. Because of DataRange the offset will + # be relative to the start of the LNK data. + entry_data_size = data_range_file_object.get_offset() - def ReadFileObject(self, file_object): - """Reads a Custom Destinations Jump List file-like object. + file_offset += entry_data_size - Args: - file_object (file): file-like object. + elif entry_header.guid[:4] != self._CATEGORY_FOOTER_SIGNATURE: + raise errors.ParseError(( + f'Unsupported entry: {entry_index:d} at offset: ' + f'0x{file_offset:08x}')) - Raises: - ParseError: if the file cannot be read. - """ - self._ReadFileHeader(file_object) + file_object.seek(file_offset, os.SEEK_SET) + + self._ReadCategoryFooter(file_object) + + file_offset += 4 + + if self._debug and file_offset < self._file_size: + trailing_data = file_object.read(self._file_size - file_offset) + self._DebugPrintData('Trailing data', trailing_data) diff --git a/dtformats/jump_list.yaml b/dtformats/jump_list.yaml index 36a62f4..6f9e80f 100644 --- a/dtformats/jump_list.yaml +++ b/dtformats/jump_list.yaml @@ -168,31 +168,39 @@ type: structure attributes: byte_order: little-endian members: -- name: unknown1 +- name: format_version data_type: uint32 -- name: unknown2 + value: 2 +- name: number_of_categories data_type: uint32 -- name: unknown3 +- name: unknown1 data_type: uint32 -- name: header_values_type +--- +name: custom_category_header +type: structure +attributes: + byte_order: little-endian +members: +- name: category_type data_type: uint32 + values: [0, 1, 2] --- -name: custom_file_header_value_type_0 +name: custom_category_header_type_0 type: structure attributes: byte_order: little-endian members: - name: number_of_characters data_type: uint16 -- name: value +- name: title type: string encoding: utf-16-le element_data_type: wchar16 - number_of_elements: custom_file_header_value_type_0.number_of_characters + number_of_elements: custom_category_header_type0.number_of_characters - name: number_of_entries data_type: uint32 --- -name: custom_file_header_value_type_1_or_2 +name: custom_category_header_type_1_or_2 type: structure attributes: byte_order: little-endian @@ -200,13 +208,15 @@ members: - name: number_of_entries data_type: uint32 --- -name: custom_file_footer +name: custom_category_footer type: structure attributes: byte_order: little-endian members: - name: signature - data_type: uint32 + type: stream + element_data_type: byte + elements_data_size: 4 --- name: custom_entry_header type: structure diff --git a/dtformats/output_writers.py b/dtformats/output_writers.py index 1b65050..7d3d996 100644 --- a/dtformats/output_writers.py +++ b/dtformats/output_writers.py @@ -31,6 +31,15 @@ def WriteText(self, text): text (str): text to write. """ + @abc.abstractmethod + def WriteValue(self, description, value): + """Writes a value. + + Args: + description (str): description. + value (str): value to write. + """ + class StdoutWriter(OutputWriter): """Stdout output writer.""" @@ -50,3 +59,15 @@ def WriteText(self, text): text (str): text to write. """ print(text, end='') + + def WriteValue(self, description, value): + """Writes a value. + + Args: + description (str): description. + value (object): value. + """ + description_no_tabs = description.replace('\t', ' ' * 8) + alignment, _ = divmod(len(description_no_tabs), 8) + alignment_string = '\t' * (8 - alignment + 1) + self.WriteText(f'{description:s}{alignment_string:s}: {value!s}\n') diff --git a/dtformats/shell_property_keys.py b/dtformats/shell_property_keys.py new file mode 100644 index 0000000..ad7ff92 --- /dev/null +++ b/dtformats/shell_property_keys.py @@ -0,0 +1,1835 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +"""Windows serialized property to shell property key mappings. + +This file was generated by the winsps-kb project. +""" + + +SHELL_PROPERTY_KEYS = { + '{00000000-0000-0000-0000-000000000000}/0': 'PKEY_Null', + '{000214a1-0000-0000-c000-000000000046}/9': 'PKEY_Status', + '{00bc20a3-bd48-4085-872c-a88d77f5097e}/105': ( + 'PKEY_Music_ComposerSortOverride'), + '{00f23377-7ac6-4b7a-8443-345e731fa57a}/10': ( + 'PKEY_PhotoAcquire_DuplicateDetectionID'), + '{00f23377-7ac6-4b7a-8443-345e731fa57a}/2': ( + 'PKEY_PhotoAcquire_RelativePathname'), + '{00f23377-7ac6-4b7a-8443-345e731fa57a}/3': ( + 'PKEY_PhotoAcquire_FinalFilename'), + '{00f23377-7ac6-4b7a-8443-345e731fa57a}/4': 'PKEY_PhotoAcquire_GroupTag', + '{00f23377-7ac6-4b7a-8443-345e731fa57a}/5': ( + 'PKEY_PhotoAcquire_TransferResult'), + '{00f23377-7ac6-4b7a-8443-345e731fa57a}/6': ( + 'PKEY_PhotoAcquire_OriginalFilename'), + '{00f23377-7ac6-4b7a-8443-345e731fa57a}/7': ( + 'PKEY_PhotoAcquire_CameraSequenceNumber'), + '{00f23377-7ac6-4b7a-8443-345e731fa57a}/8': ( + 'PKEY_PhotoAcquire_IntermediateFile'), + '{00f23377-7ac6-4b7a-8443-345e731fa57a}/9': 'PKEY_PhotoAcquire_SkipImport', + '{00f58a38-c54b-4c40-8696-97235980eae1}/100': 'PKEY_Calendar_Resources', + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/101': ( + 'PKEY_Contact_JobInfo1YomiCompanyName'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/102': ( + 'PKEY_Contact_JobInfo1CompanyName'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/103': 'PKEY_Contact_JobInfo1Title', + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/104': ( + 'PKEY_Contact_JobInfo1OfficeLocation'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/105': ( + 'PKEY_Contact_JobInfo1Manager'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/106': ( + 'PKEY_Contact_JobInfo1Department'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/107': ( + 'PKEY_Contact_JobInfo2YomiCompanyName'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/108': ( + 'PKEY_Contact_JobInfo2CompanyName'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/109': 'PKEY_Contact_JobInfo2Title', + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/110': ( + 'PKEY_Contact_JobInfo2OfficeLocation'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/112': ( + 'PKEY_Contact_JobInfo2Manager'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/113': ( + 'PKEY_Contact_JobInfo2Department'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/114': ( + 'PKEY_Contact_JobInfo3YomiCompanyName'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/115': ( + 'PKEY_Contact_JobInfo3CompanyName'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/116': 'PKEY_Contact_JobInfo3Title', + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/117': ( + 'PKEY_Contact_JobInfo3OfficeLocation'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/118': ( + 'PKEY_Contact_JobInfo3Manager'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/119': ( + 'PKEY_Contact_JobInfo3Department'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/120': ( + 'PKEY_Contact_JobInfo1CompanyAddress'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/121': ( + 'PKEY_Contact_JobInfo2CompanyAddress'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/123': ( + 'PKEY_Contact_JobInfo3CompanyAddress'), + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/124': 'PKEY_Contact_Webpage2', + '{00f63dd8-22bd-4a5d-ba34-5cb0b9bdcb03}/125': 'PKEY_Contact_Webpage3', + '{026e516e-b814-414b-83cd-856d6fef4822}/2': ( + 'PKEY_DeviceInterface_FriendlyName'), + '{026e516e-b814-414b-83cd-856d6fef4822}/3': 'PKEY_DeviceInterface_Enabled', + '{026e516e-b814-414b-83cd-856d6fef4822}/4': ( + 'PKEY_Devices_InterfaceClassGuid'), + '{026e516e-b814-414b-83cd-856d6fef4822}/6': ( + 'PKEY_Devices_RestrictedInterface'), + '{026e516e-b814-414b-83cd-856d6fef4822}/9': 'PKEY_Devices_SchematicName', + '{029c0252-5b86-46c7-aca0-2769ffc8e3d4}/100': 'PKEY_GPS_LatitudeRef', + '{02b0f689-a914-4e45-821d-1dda452ed2c4}/100': 'PKEY_GPS_LongitudeNumerator', + '{03089873-8ee8-4191-bd60-d31f72b7900b}/100': ( + 'PKEY_Contact_DisplayOtherPhoneNumbers'), + '{0337ecec-39fb-4581-a0bd-4c4cc51e9914}/100': ( + 'PKEY_Photo_ApertureNumerator'), + '{048658ad-2db8-41a4-bbb6-ac1ef1207eb1}/100': 'PKEY_ItemClassType', + '{06704b0c-e830-4c81-9178-91e4e95a80a0}/2': ( + 'PKEY_Devices_NotificationStore'), + '{06704b0c-e830-4c81-9178-91e4e95a80a0}/3': 'PKEY_Devices_Notification', + '{084d8a0a-e6d5-40de-bf1f-c8820e7c877c}/100': 'PKEY_Task_CompletionStatus', + '{08a65aa1-f4c9-43dd-9ddf-a33d8e7ead85}/100': ( + 'PKEY_Contact_HomeAddressCountry'), + '{08c0c253-a154-4746-9005-82de5317148b}/1': 'PKEY_FunctionInstance', + '{08c7cc5f-60f2-4494-ad75-55e3e0b5add0}/100': 'PKEY_Task_Owner', + '{08f6d7c2-e3f2-44fc-af1e-5aa5c81a2d3e}/100': 'PKEY_Photo_MaxAperture', + '{0933f3f5-4786-4f46-a8e8-d64dd37fa521}/100': ( + 'PKEY_Photo_FocalPlaneXResolutionDenominator'), + '{09429607-582d-437f-84c3-de93a2b24c3c}/100': ( + 'PKEY_Calendar_OptionalAttendeeNames'), + '{09edd5b6-b301-43c5-9990-d00302effd46}/100': 'PKEY_Media_AverageLevel', + '{0a7b84ef-0c27-463f-84ef-06c5070001be}/10': ( + 'PKEY_DeviceInterface_PrinterName'), + '{0adef160-db3f-4308-9a21-06237b16fa2a}/100': ( + 'PKEY_Contact_HomeAddressStreet'), + '{0b48f35a-be6e-4f17-b108-3c4073d1669a}/15': 'PKEY_Device_PrinterURL', + '{0b63e343-9ccc-11d0-bcdb-00805fccce04}/12': ( + 'PKEY_Search_UrlToIndexWithModificationTime'), + '{0b63e343-9ccc-11d0-bcdb-00805fccce04}/2': 'PKEY_Search_UrlToIndex', + '{0b63e343-9ccc-11d0-bcdb-00805fccce04}/23': ( + 'PKEY_Search_IsClosedDirectory'), + '{0b63e343-9ccc-11d0-bcdb-00805fccce04}/24': 'PKEY_Search_IsFullyContained', + '{0b63e350-9ccc-11d0-bcdb-00805fccce04}/5': 'PKEY_MIMEType', + '{0b63e350-9ccc-11d0-bcdb-00805fccce04}/8': 'PKEY_Search_GatherTime', + '{0b8bb018-2725-4b44-92ba-7933aeb2dde7}/2': ( + 'PKEY_Contact_AccountPictureDynamicVideo'), + '{0b8bb018-2725-4b44-92ba-7933aeb2dde7}/3': ( + 'PKEY_Contact_AccountPictureLarge'), + '{0b8bb018-2725-4b44-92ba-7933aeb2dde7}/4': ( + 'PKEY_Contact_AccountPictureSmall'), + '{0ba7d6c3-568d-4159-ab91-781a91fb71e5}/100': ( + 'PKEY_Calendar_RequiredAttendeeAddresses'), + '{0bba1ede-7566-4f47-90ec-25fc567ced2a}/11': ( + 'PKEY_Devices_AepContainer_IsPresent'), + '{0bba1ede-7566-4f47-90ec-25fc567ced2a}/12': ( + 'PKEY_Devices_AepContainer_ContainerId'), + '{0bba1ede-7566-4f47-90ec-25fc567ced2a}/13': ( + 'PKEY_Devices_AepContainer_ProtocolIds'), + '{0bba1ede-7566-4f47-90ec-25fc567ced2a}/2': ( + 'PKEY_Devices_AepContainer_Children'), + '{0bba1ede-7566-4f47-90ec-25fc567ced2a}/3': ( + 'PKEY_Devices_AepContainer_CanPair'), + '{0bba1ede-7566-4f47-90ec-25fc567ced2a}/4': ( + 'PKEY_Devices_AepContainer_IsPaired'), + '{0bba1ede-7566-4f47-90ec-25fc567ced2a}/6': ( + 'PKEY_Devices_AepContainer_Manufacturer'), + '{0bba1ede-7566-4f47-90ec-25fc567ced2a}/7': ( + 'PKEY_Devices_AepContainer_ModelName'), + '{0bba1ede-7566-4f47-90ec-25fc567ced2a}/8': ( + 'PKEY_Devices_AepContainer_ModelIds'), + '{0bba1ede-7566-4f47-90ec-25fc567ced2a}/9': ( + 'PKEY_Devices_AepContainer_Categories'), + '{0be1c8e7-1981-4676-ae14-fdd78f05a6e7}/100': 'PKEY_Message_SenderAddress', + '{0c73b141-39d6-4653-a683-cab291eaf95b}/2': 'PKEY_Supplemental_AlbumID', + '{0c73b141-39d6-4653-a683-cab291eaf95b}/3': 'PKEY_Supplemental_ResourceId', + '{0c840a88-b043-466d-9766-d4b26da3fa77}/100': ( + 'PKEY_Photo_SubjectDistanceDenominator'), + '{0cb2bf5a-9ee7-4a86-8222-f01e07fdadaf}/100': ( + 'PKEY_PropGroup_PhotoAdvanced'), + '{0cef7d53-fa64-11d1-a203-0000f81fedee}/3': 'PKEY_FileDescription', + '{0cef7d53-fa64-11d1-a203-0000f81fedee}/4': 'PKEY_FileVersion', + '{0cef7d53-fa64-11d1-a203-0000f81fedee}/5': 'PKEY_InternalName', + '{0cef7d53-fa64-11d1-a203-0000f81fedee}/6': 'PKEY_OriginalFileName', + '{0cef7d53-fa64-11d1-a203-0000f81fedee}/7': 'PKEY_Software_ProductName', + '{0cef7d53-fa64-11d1-a203-0000f81fedee}/9': 'PKEY_Trademarks', + '{0cf8fb02-1837-42f1-a697-a7017aa289b9}/100': 'PKEY_GPS_DOP', + '{0da41cfa-d224-4a18-ae2f-596158db4b3a}/100': 'PKEY_Message_SenderName', + '{0f55cde2-4f49-450d-92c1-dcd16301b1b7}/100': 'PKEY_GPS_LatitudeDecimal', + '{10984e0a-f9f2-4321-b7ef-baf195af4319}/100': 'PKEY_ParentalRatingReason', + '{10b24595-41a2-4e20-93c2-5761c1395f32}/100': ( + 'PKEY_GPS_ImgDirectionDenominator'), + '{10dabe05-32aa-4c29-bf1a-63e2d220587f}/100': 'PKEY_Image_ImageID', + '{11d6336b-38c4-4ec9-84d6-eb38d0b150af}/100': ( + 'PKEY_Contact_OtherEmailAddresses'), + '{125491f4-818f-46b2-91b5-d537753617b2}/100': 'PKEY_GPS_Status', + '{13673f42-a3d6-49f6-b4da-ae46e0c5237c}/2': 'PKEY_Devices_DevObjectType', + '{13eb7ffc-ec89-4346-b19d-ccc6f1784223}/101': ( + 'PKEY_Music_AlbumTitleSortOverride'), + '{14977844-6b49-4aad-a714-a4513bf60460}/100': 'PKEY_Contact_FirstName', + '{149c0b69-2c2d-48fc-808f-d318d78c4636}/2': 'PKEY_Volume_IsMappedDrive', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/18248': 'PKEY_Photo_Event', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/18258': 'PKEY_DateImported', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/259': 'PKEY_Image_Compression', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/271': ( + 'PKEY_Photo_CameraManufacturer'), + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/272': 'PKEY_Photo_CameraModel', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/273': ( + 'PKEY_Photo_CameraSerialNumber'), + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/274': 'PKEY_Photo_Orientation', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/305': 'PKEY_SoftwareUsed', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/33434': 'PKEY_Photo_ExposureTime', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/33437': 'PKEY_Photo_FNumber', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/34850': ( + 'PKEY_Photo_ExposureProgram'), + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/34855': 'PKEY_Photo_ISOSpeed', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/36867': 'PKEY_Photo_DateTaken', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/37377': 'PKEY_Photo_ShutterSpeed', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/37378': 'PKEY_Photo_Aperture', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/37380': 'PKEY_Photo_ExposureBias', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/37382': ( + 'PKEY_Photo_SubjectDistance'), + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/37383': 'PKEY_Photo_MeteringMode', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/37384': 'PKEY_Photo_LightSource', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/37385': 'PKEY_Photo_Flash', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/37386': 'PKEY_Photo_FocalLength', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/40961': 'PKEY_Image_ColorSpace', + '{14b81da1-0135-4d31-96d9-6cbfc9671a99}/41483': 'PKEY_Photo_FlashEnergy', + '{14c83a99-0b3f-44b7-be4c-a178d3990564}/2': ( + 'PKEY_DeviceInterfaceClass_DefaultInterface'), + '{1506935d-e3e7-450f-8637-82233ebe5f6e}/10': ( + 'PKEY_Devices_WiFiDirect_Services'), + '{1506935d-e3e7-450f-8637-82233ebe5f6e}/11': ( + 'PKEY_Devices_WiFiDirect_SupportedChannelList'), + '{1506935d-e3e7-450f-8637-82233ebe5f6e}/12': ( + 'PKEY_Devices_WiFiDirect_InformationElements'), + '{1506935d-e3e7-450f-8637-82233ebe5f6e}/13': ( + 'PKEY_Devices_WiFiDirect_DeviceAddress'), + '{1506935d-e3e7-450f-8637-82233ebe5f6e}/2': ( + 'PKEY_Devices_WiFiDirect_InterfaceAddress'), + '{1506935d-e3e7-450f-8637-82233ebe5f6e}/3': ( + 'PKEY_Devices_WiFiDirect_InterfaceGuid'), + '{1506935d-e3e7-450f-8637-82233ebe5f6e}/4': ( + 'PKEY_Devices_WiFiDirect_GroupId'), + '{1506935d-e3e7-450f-8637-82233ebe5f6e}/5': ( + 'PKEY_Devices_WiFiDirect_IsConnected'), + '{1506935d-e3e7-450f-8637-82233ebe5f6e}/6': ( + 'PKEY_Devices_WiFiDirect_IsVisible'), + '{1506935d-e3e7-450f-8637-82233ebe5f6e}/7': ( + 'PKEY_Devices_WiFiDirect_IsLegacyDevice'), + '{1506935d-e3e7-450f-8637-82233ebe5f6e}/8': ( + 'PKEY_Devices_WiFiDirect_MiracastVersion'), + '{1506935d-e3e7-450f-8637-82233ebe5f6e}/9': ( + 'PKEY_Devices_WiFiDirect_IsMiracastLcpSupported'), + '{16473c91-d017-4ed9-ba4d-b6baa55dbcf8}/100': 'PKEY_GPS_ImgDirection', + '{16cbb924-6500-473b-a5be-f1599bcbe413}/100': ( + 'PKEY_Photo_DigitalZoomNumerator'), + '{16e634ee-2bff-497b-bd8a-4341ad39eeb9}/100': ( + 'PKEY_GPS_LatitudeDenominator'), + '{16ea4042-d6f4-4bca-8349-7c78d30fb333}/100': ( + 'PKEY_Photo_ShutterSpeedNumerator'), + '{176dc63c-2688-4e89-8143-a347800f25e9}/20': 'PKEY_Contact_HomeTelephone', + '{176dc63c-2688-4e89-8143-a347800f25e9}/25': ( + 'PKEY_Contact_PrimaryTelephone'), + '{176dc63c-2688-4e89-8143-a347800f25e9}/35': 'PKEY_Contact_MobileTelephone', + '{176dc63c-2688-4e89-8143-a347800f25e9}/47': 'PKEY_Contact_Birthday', + '{176dc63c-2688-4e89-8143-a347800f25e9}/48': ( + 'PKEY_Contact_PrimaryEmailAddress'), + '{176dc63c-2688-4e89-8143-a347800f25e9}/6': 'PKEY_Contact_JobTitle', + '{176dc63c-2688-4e89-8143-a347800f25e9}/65': 'PKEY_Contact_HomeAddressCity', + '{176dc63c-2688-4e89-8143-a347800f25e9}/69': 'PKEY_Contact_PersonalTitle', + '{176dc63c-2688-4e89-8143-a347800f25e9}/7': 'PKEY_Contact_OfficeLocation', + '{176dc63c-2688-4e89-8143-a347800f25e9}/71': 'PKEY_Contact_MiddleName', + '{176dc63c-2688-4e89-8143-a347800f25e9}/73': 'PKEY_Contact_Suffix', + '{176dc63c-2688-4e89-8143-a347800f25e9}/74': 'PKEY_Contact_NickName', + '{176dc63c-2688-4e89-8143-a347800f25e9}/75': 'PKEY_Contact_Prefix', + '{182c1ea6-7c1c-4083-ab4b-ac6c9f4ed128}/100': 'PKEY_GPS_DestLongitudeRef', + '{188c1f91-3c40-4132-9ec5-d8b03b72a8a2}/100': ( + 'PKEY_Calendar_ResponseStatus'), + '{18bbd425-ecfd-46ef-b612-7b4a6034eda0}/100': ( + 'PKEY_Contact_PrimaryAddressPostalCode'), + '{19b51fa6-1f92-4a5c-ab48-7df0abd67444}/100': 'PKEY_Image_ResolutionUnit', + '{1a701bf6-478c-4361-83ab-3701bb053c58}/100': 'PKEY_Photo_Brightness', + '{1a9ba605-8e7c-4d11-ad7d-a50ada18ba1b}/2': 'PKEY_Message_Participants', + '{1b5439e7-eba1-4af8-bdd7-7af1d4549493}/100': 'PKEY_RecordedTV_StationName', + '{1b97738a-fdfc-462f-9d93-1957e08be90c}/100': 'PKEY_Photo_FNumberNumerator', + '{1ce0d6bc-536c-4600-b0dd-7e0c66b350d5}/8': 'PKEY_History_SelectionCount', + '{1ce0d6bc-536c-4600-b0dd-7e0c66b350d5}/9': ( + 'PKEY_History_TargetUrlHostName'), + '{1d6179a6-a876-4031-b013-3347b2b64dc8}/100': ( + 'PKEY_Photo_FocalPlaneYResolutionDenominator'), + '{1da5d803-d492-4edd-8c23-e0c0ffee7f0e}/0': 'PKEY_AudioEndPoint_Type', + '{1da5d803-d492-4edd-8c23-e0c0ffee7f0e}/1': ( + 'PKEY_AudioEndpoint_Ext_UiClsid'), + '{1da5d803-d492-4edd-8c23-e0c0ffee7f0e}/2': ( + 'PKEY_AudioEndpoint_Association'), + '{1da5d803-d492-4edd-8c23-e0c0ffee7f0e}/3': ( + 'PKEY_AudioEndpoint_PhysicalSpeakers'), + '{1da5d803-d492-4edd-8c23-e0c0ffee7f0e}/4': 'PKEY_AudioEndpoint_GUID', + '{1da5d803-d492-4edd-8c23-e0c0ffee7f0e}/5': ( + 'PKEY_AudioEndpoint_Disable_SysFx'), + '{1da5d803-d492-4edd-8c23-e0c0ffee7f0e}/6': ( + 'PKEY_AudioEndpoint_FullRangeSpeakers'), + '{1da5d803-d492-4edd-8c23-e0c0ffee7f0e}/7': ( + 'PKEY_AudioEndpoint_Supports_EventDriven_Mode'), + '{1da5d803-d492-4edd-8c23-e0c0ffee7f0e}/8': ( + 'PKEY_AudioEndpoint_JackSubType'), + '{1e005ee6-bf27-428b-b01c-79676acd2870}/100': 'PKEY_Document_Division', + '{1e3ee840-bc2b-476c-8237-2acd1a839b22}/3': 'PKEY_Kind', + '{1e3ee840-bc2b-476c-8237-2acd1a839b22}/6': 'PKEY_FullText', + '{1e81a3f8-a30f-4247-b9ee-1d0368a9425c}/2': 'PKEY_DataObjectFormat', + '{1f856a9f-6900-4aba-9505-2d5f1b4d66cb}/100': 'PKEY_Message_ToDoFlags', + '{1f8844e1-24ad-4508-9dfd-5326a415ce02}/100': ( + 'PKEY_Image_CompressedBitsPerPixelDenominator'), + '{22704da4-c6b2-4a99-8e56-f16df8c92599}/100': 'PKEY_GPS_VersionID', + '{2425166f-5642-4864-992f-98fd98f294c3}/100': ( + 'PKEY_IdentityProvider_Picture'), + '{2579e5d0-1116-4084-bd9a-9b4f7cb4df5e}/100': 'PKEY_Audio_PeakValue', + '{257e44e2-9031-4323-ac38-85c552871b2e}/100': ( + 'PKEY_Photo_ExposureTimeNumerator'), + '{2598d2fb-5569-4367-95df-5cd3a177e1a5}/100': 'PKEY_PropGroup_Origin', + '{259abffc-50a7-47ce-af08-68c9a7d73366}/10': 'PKEY_DeviceClass_NoUseClass', + '{259abffc-50a7-47ce-af08-68c9a7d73366}/11': ( + 'PKEY_DeviceClass_DefaultService'), + '{259abffc-50a7-47ce-af08-68c9a7d73366}/12': 'PKEY_DeviceClass_IconPath', + '{259abffc-50a7-47ce-af08-68c9a7d73366}/2': 'PKEY_DeviceClass_Name', + '{259abffc-50a7-47ce-af08-68c9a7d73366}/3': 'PKEY_DeviceClass_ClassName', + '{259abffc-50a7-47ce-af08-68c9a7d73366}/4': 'PKEY_DeviceClass_Icon', + '{259abffc-50a7-47ce-af08-68c9a7d73366}/5': ( + 'PKEY_DeviceClass_ClassInstaller'), + '{259abffc-50a7-47ce-af08-68c9a7d73366}/6': ( + 'PKEY_DeviceClass_PropPageProvider'), + '{259abffc-50a7-47ce-af08-68c9a7d73366}/7': ( + 'PKEY_DeviceClass_NoInstallClass'), + '{259abffc-50a7-47ce-af08-68c9a7d73366}/8': ( + 'PKEY_DeviceClass_NoDisplayClass'), + '{259abffc-50a7-47ce-af08-68c9a7d73366}/9': ( + 'PKEY_DeviceClass_SilentInstall'), + '{26dc287c-6e3d-4bd3-b2b0-6a26ba2e346d}/2': 'PKEY_StatusBarViewItemCount', + '{26dc287c-6e3d-4bd3-b2b0-6a26ba2e346d}/3': ( + 'PKEY_StatusBarSelectedItemCount'), + '{276d7bb0-5b34-4fb0-aa4b-158ed12a1809}/100': 'PKEY_Document_ClientID', + '{2804d469-788f-48aa-8570-71b9c187e138}/100': 'PKEY_PropGroup_Audio', + '{28636aa6-953d-11d2-b5d6-00c04fd918d0}/0': 'PKEY_FindData', + '{28636aa6-953d-11d2-b5d6-00c04fd918d0}/11': 'PKEY_ItemType', + '{28636aa6-953d-11d2-b5d6-00c04fd918d0}/12': 'PKEY_FileCount', + '{28636aa6-953d-11d2-b5d6-00c04fd918d0}/14': 'PKEY_TotalFileSize', + '{28636aa6-953d-11d2-b5d6-00c04fd918d0}/2': 'PKEY_DescriptionID', + '{28636aa6-953d-11d2-b5d6-00c04fd918d0}/24': 'PKEY_ParsingName', + '{28636aa6-953d-11d2-b5d6-00c04fd918d0}/25': 'PKEY_SFGAOFlags', + '{28636aa6-953d-11d2-b5d6-00c04fd918d0}/29': 'PKEY_ContainedItems', + '{28636aa6-953d-11d2-b5d6-00c04fd918d0}/30': 'PKEY_ParsingPath', + '{28636aa6-953d-11d2-b5d6-00c04fd918d0}/33': 'PKEY_IsSendToTarget', + '{28636aa6-953d-11d2-b5d6-00c04fd918d0}/37': 'PKEY_ItemSubType', + '{28636aa6-953d-11d2-b5d6-00c04fd918d0}/5': 'PKEY_ComputerName', + '{28636aa6-953d-11d2-b5d6-00c04fd918d0}/6': 'PKEY_NamespaceCLSID', + '{28636aa6-953d-11d2-b5d6-00c04fd918d0}/8': 'PKEY_ItemPathDisplayNarrow', + '{28636aa6-953d-11d2-b5d6-00c04fd918d0}/9': 'PKEY_PerceivedType', + '{293ca35a-09aa-4dd2-b180-1fe245728a52}/100': 'PKEY_Calendar_Duration', + '{2a785ba9-8d23-4ded-82e6-60a350c86a10}/100': 'PKEY_Photo_Contrast', + '{2b1b801e-c0c1-4987-9ec5-72fa89814787}/100': 'PKEY_Identity_PrimarySid', + '{2bd67d8b-8beb-48d5-87e0-6cda3428040a}/1': ( + 'PKEY_DeviceInterface_Bluetooth_DeviceAddress'), + '{2bd67d8b-8beb-48d5-87e0-6cda3428040a}/11': ( + 'PKEY_DeviceInterface_Bluetooth_LastConnectedTime'), + '{2bd67d8b-8beb-48d5-87e0-6cda3428040a}/12': ( + 'PKEY_Devices_Aep_Bluetooth_LastSeenTime'), + '{2bd67d8b-8beb-48d5-87e0-6cda3428040a}/2': ( + 'PKEY_DeviceInterface_Bluetooth_ServiceGuid'), + '{2bd67d8b-8beb-48d5-87e0-6cda3428040a}/3': ( + 'PKEY_DeviceInterface_Bluetooth_Flags'), + '{2bd67d8b-8beb-48d5-87e0-6cda3428040a}/4': ( + 'PKEY_DeviceInterface_Bluetooth_Manufacturer'), + '{2bd67d8b-8beb-48d5-87e0-6cda3428040a}/5': ( + 'PKEY_DeviceInterface_Bluetooth_ModelNumber'), + '{2bd67d8b-8beb-48d5-87e0-6cda3428040a}/6': ( + 'PKEY_DeviceInterface_Bluetooth_VendorId'), + '{2bd67d8b-8beb-48d5-87e0-6cda3428040a}/7': ( + 'PKEY_DeviceInterface_Bluetooth_VendorId'), + '{2bd67d8b-8beb-48d5-87e0-6cda3428040a}/8': ( + 'PKEY_DeviceInterface_Bluetooth_ProductId'), + '{2bd67d8b-8beb-48d5-87e0-6cda3428040a}/9': ( + 'PKEY_DeviceInterface_Bluetooth_ProductVersion'), + '{2bda47da-08c6-4fe1-80bc-a72fc517c5d0}/100': ( + 'PKEY_GPS_DestDistanceNumerator'), + '{2be9260a-2012-4742-a555-f41b638b7dcb}/2': ( + 'PKEY_Devices_Notifications_NewMessage'), + '{2c53c813-fb63-4e22-a1ab-0b331ca1e273}/100': ( + 'PKEY_RecordedTV_NetworkAffiliation'), + '{2ca2dae6-eddc-407d-bef1-773942abfa95}/100': 'PKEY_GPS_MapDatum', + '{2cbaa8f5-d81f-47ca-b17a-f8d822300131}/100': 'PKEY_DateAcquired', + '{2dad1eb7-816d-40d3-9ec3-c9773be2aade}/100': 'PKEY_GPS_AltitudeNumerator', + '{2e4b640d-5019-46d8-8881-55414cc5caa0}/100': 'PKEY_Media_DateEncoded', + '{305bc615-dca1-44a5-9fd4-10c0ba79412e}/100': ( + 'PKEY_Photo_FocalLengthDenominator'), + '{3143bf7c-80a8-4854-8880-e2e40189bdd0}/100': ( + 'PKEY_Message_AttachmentContents'), + '{315b9c8d-80a9-4ef9-ae16-8e746da51d70}/100': 'PKEY_Calendar_IsRecurring', + '{318a6b45-087f-4dc2-b8cc-05359551fc9e}/100': 'PKEY_Photo_RelatedSoundFile', + '{31b37743-7c5e-4005-93e6-e953f92b82e9}/2': ( + 'PKEY_Devices_WiFiDirectServices_ServiceAddress'), + '{31b37743-7c5e-4005-93e6-e953f92b82e9}/3': ( + 'PKEY_Devices_WiFiDirectServices_ServiceName'), + '{31b37743-7c5e-4005-93e6-e953f92b82e9}/4': ( + 'PKEY_Devices_WiFiDirectServices_ServiceInformation'), + '{31b37743-7c5e-4005-93e6-e953f92b82e9}/5': ( + 'PKEY_Devices_WiFiDirectServices_AdvertisementId'), + '{31b37743-7c5e-4005-93e6-e953f92b82e9}/6': ( + 'PKEY_Devices_WiFiDirectServices_ServiceConfigMethods'), + '{31b37743-7c5e-4005-93e6-e953f92b82e9}/7': ( + 'PKEY_Devices_WiFiDirectServices_RequestServiceInformation'), + '{32ce38b2-2c9a-41b1-9bc5-b3784394aa44}/2': ( + 'PKEY_EdgeGesture_DisableTouchWhenFullscreen'), + '{33dcf22b-28d5-464c-8035-1ee9efd25278}/100': 'PKEY_GPS_LongitudeRef', + '{341796f1-1df9-4b1c-a564-91bdefa43877}/100': ( + 'PKEY_Photo_PhotometricInterpretation'), + '{346c8bd1-2e6a-4c45-89a4-61b78e8e700f}/100': 'PKEY_IsIncomplete', + '{35dbe6fe-44c3-4400-aaae-d2c799c407e8}/100': 'PKEY_GPS_TrackRef', + '{3602c812-0f3b-45f0-85ad-603468d69423}/100': 'PKEY_GPS_Date', + '{3633de59-6825-4381-a49b-9f6ba13a1471}/2': 'PKEY_Devices_PlaybackState', + '{3633de59-6825-4381-a49b-9f6ba13a1471}/3': 'PKEY_Devices_PlaybackTitle', + '{3633de59-6825-4381-a49b-9f6ba13a1471}/4': ( + 'PKEY_Devices_RemainingDuration'), + '{3633de59-6825-4381-a49b-9f6ba13a1471}/5': ( + 'PKEY_Devices_PlaybackPositionPercent'), + '{364028da-d895-41fe-a584-302b1bb70a76}/100': ( + 'PKEY_Contact_DisplayBusinessPhoneNumbers'), + '{364b6fa9-37ab-482a-be2b-ae02f60d4318}/100': ( + 'PKEY_Image_CompressedBitsPerPixel'), + '{38965063-edc8-4268-8491-b7723172cf29}/100': 'PKEY_Contact_EmailAddress2', + '{38d43380-d418-4830-84d5-46935a81c5c6}/32': ( + 'PKEY_Security_AllowedEnterpriseDataProtectionIdentities'), + '{39a7f922-477c-48de-8bc8-b28441e342e3}/100': 'PKEY_Project', + '{39b77f4f-a104-4863-b395-2db2ad8f7bc1}/100': ( + 'PKEY_Contact_ConnectedServiceDisplayName'), + '{3a372292-7fca-49a7-99d5-e47bb2d4e7ab}/100': ( + 'PKEY_GPS_DestLatitudeDenominator'), + '{3b2ce006-5e61-4fde-bab8-9b8aac9b26df}/5': 'PKEY_Devices_Aep_ProtocolId', + '{3b2ce006-5e61-4fde-bab8-9b8aac9b26df}/8': 'PKEY_Devices_Aep_AepId', + '{3c8cee58-d4f0-4cf9-b756-4e5d24447bcd}/100': 'PKEY_Contact_Gender', + '{3c8cee58-d4f0-4cf9-b756-4e5d24447bcd}/101': 'PKEY_Contact_GenderValue', + '{3f08e66f-2f44-4bb9-a682-ac35d2562322}/100': 'PKEY_Image_CompressionText', + '{3f8472b5-e0af-4db2-8071-c53fe76ae7ce}/100': 'PKEY_DueDate', + '{402b5934-ec5a-48c3-93e6-85e86a2d934e}/100': ( + 'PKEY_Contact_BusinessAddressCity'), + '{41cf5ae0-f75a-4806-bd87-59c7d9248eb9}/100': 'PKEY_FileName', + '{425d69e5-48ad-4900-8d80-6eb6b8d0ac86}/100': ( + 'PKEY_GPS_DestLongitudeDenominator'), + '{428040ac-a177-4c8a-9760-f6f761227f9a}/100': ( + 'PKEY_Communication_DateItemExpires'), + '{42864dfd-9da4-4f77-bded-4aad7b256735}/100': ( + 'PKEY_Photo_GainControlDenominator'), + '{4321918b-f69e-470d-a5de-4d88c75ad24b}/19': ( + 'PKEY_DeviceClass_UpperFilters'), + '{4321918b-f69e-470d-a5de-4d88c75ad24b}/20': ( + 'PKEY_DeviceClass_LowerFilters'), + '{4321918b-f69e-470d-a5de-4d88c75ad24b}/25': 'PKEY_DeviceClass_Security', + '{4321918b-f69e-470d-a5de-4d88c75ad24b}/26': 'PKEY_DeviceClass_SecuritySDS', + '{4321918b-f69e-470d-a5de-4d88c75ad24b}/27': 'PKEY_DeviceClass_DevType', + '{4321918b-f69e-470d-a5de-4d88c75ad24b}/28': 'PKEY_DeviceClass_Exclusive', + '{4321918b-f69e-470d-a5de-4d88c75ad24b}/29': ( + 'PKEY_DeviceClass_Characteristics'), + '{4340a6c5-93fa-4706-972c-7b648008a5a7}/10': 'PKEY_Device_Siblings', + '{4340a6c5-93fa-4706-972c-7b648008a5a7}/2': 'PKEY_Device_DevNodeStatus', + '{4340a6c5-93fa-4706-972c-7b648008a5a7}/3': 'PKEY_Device_ProblemCode', + '{4340a6c5-93fa-4706-972c-7b648008a5a7}/4': 'PKEY_Device_EjectionRelations', + '{4340a6c5-93fa-4706-972c-7b648008a5a7}/5': 'PKEY_Device_RemovalRelations', + '{4340a6c5-93fa-4706-972c-7b648008a5a7}/6': 'PKEY_Device_PowerRelations', + '{4340a6c5-93fa-4706-972c-7b648008a5a7}/7': 'PKEY_Device_BusRelations', + '{4340a6c5-93fa-4706-972c-7b648008a5a7}/8': 'PKEY_Device_Parent', + '{4340a6c5-93fa-4706-972c-7b648008a5a7}/9': 'PKEY_Device_Children', + '{436f2667-14e2-4feb-b30a-146c53b5b674}/100': 'PKEY_Link_Arguments', + '{43f8d7b7-a444-4f87-9383-52271c9b915c}/100': 'PKEY_DateArchived', + '{446d16b1-8dad-4870-a748-402ea43d788c}/100': 'PKEY_ThumbnailCacheId', + '{446d16b1-8dad-4870-a748-402ea43d788c}/104': 'PKEY_VolumeId', + '{446f787f-10c4-41cb-a6c4-4d0343551597}/100': ( + 'PKEY_Contact_BusinessAddressState'), + '{45eae747-8e2a-40ae-8cbf-ca52aba6152a}/100': 'PKEY_FlagColorText', + '{4679c1b5-844d-4590-baf5-f322231f1b81}/100': 'PKEY_GPS_LongitudeDecimal', + '{467ee575-1f25-4557-ad4e-b8b58b0d9c15}/100': 'PKEY_GPS_Satellites', + '{4684fe97-8765-4842-9c13-f006447b178c}/100': ( + 'PKEY_RecordedTV_OriginalBroadcastDate'), + '{46ac629d-75ea-4515-867f-6dc4321c5844}/100': 'PKEY_GPS_AltitudeRef', + '{46b4e8de-cdb2-440d-885c-1658eb65b914}/100': 'PKEY_Note_ColorText', + '{47166b16-364f-4aa0-9f31-e2ab3df449c3}/100': 'PKEY_GPS_DOPNumerator', + '{4776cafa-bce4-4cb1-a23e-265e76d8eb11}/100': 'PKEY_Note_Color', + '{47a96261-cb4c-4807-8ad3-40b9d9dbc6bc}/100': 'PKEY_GPS_DestLongitude', + '{48fd6ec8-8a12-4cdf-a03e-4ec5a511edde}/100': 'PKEY_StartDate', + '{49237325-a95a-4f67-b211-816b2d45d2e0}/100': 'PKEY_Photo_Saturation', + '{49691c90-7e17-101a-a91c-08002b2ecda9}/21': ( + 'PKEY_Search_QueryPropertyHits'), + '{49691c90-7e17-101a-a91c-08002b2ecda9}/3': 'PKEY_Search_Rank', + '{49691c90-7e17-101a-a91c-08002b2ecda9}/4': 'PKEY_Search_HitCount', + '{49691c90-7e17-101a-a91c-08002b2ecda9}/5': 'PKEY_Search_EntryID', + '{49691c90-7e17-101a-a91c-08002b2ecda9}/9': 'PKEY_ItemUrl', + '{49cd1f76-5626-4b17-a4e8-18b4aa1a2213}/10': 'PKEY_Devices_BatteryLife', + '{49cd1f76-5626-4b17-a4e8-18b4aa1a2213}/11': 'PKEY_Devices_ChargingState', + '{49cd1f76-5626-4b17-a4e8-18b4aa1a2213}/12': 'PKEY_Devices_StorageCapacity', + '{49cd1f76-5626-4b17-a4e8-18b4aa1a2213}/13': ( + 'PKEY_Devices_StorageFreeSpace'), + '{49cd1f76-5626-4b17-a4e8-18b4aa1a2213}/14': ( + 'PKEY_Devices_StorageFreeSpacePercent'), + '{49cd1f76-5626-4b17-a4e8-18b4aa1a2213}/2': 'PKEY_Devices_SignalStrength', + '{49cd1f76-5626-4b17-a4e8-18b4aa1a2213}/22': ( + 'PKEY_Devices_BatteryPlusCharging'), + '{49cd1f76-5626-4b17-a4e8-18b4aa1a2213}/23': ( + 'PKEY_Devices_BatteryPlusChargingText'), + '{49cd1f76-5626-4b17-a4e8-18b4aa1a2213}/3': 'PKEY_Devices_TextMessages', + '{49cd1f76-5626-4b17-a4e8-18b4aa1a2213}/4': 'PKEY_Devices_NewPictures', + '{49cd1f76-5626-4b17-a4e8-18b4aa1a2213}/5': 'PKEY_Devices_MissedCalls', + '{49cd1f76-5626-4b17-a4e8-18b4aa1a2213}/6': 'PKEY_Devices_Voicemail', + '{49cd1f76-5626-4b17-a4e8-18b4aa1a2213}/7': 'PKEY_Devices_NetworkName', + '{49cd1f76-5626-4b17-a4e8-18b4aa1a2213}/8': 'PKEY_Devices_NetworkType', + '{49cd1f76-5626-4b17-a4e8-18b4aa1a2213}/9': 'PKEY_Devices_Roaming', + '{49d1091f-082e-493f-b23f-d2308aa9668c}/100': 'PKEY_PropList_NonPersonal', + '{4c6bf15c-4c03-4aac-91f5-64c0f852bcf4}/2': ( + 'PKEY_DeviceInterface_Serial_UsbVendorId'), + '{4c6bf15c-4c03-4aac-91f5-64c0f852bcf4}/3': ( + 'PKEY_DeviceInterface_Serial_UsbProductId'), + '{4c6bf15c-4c03-4aac-91f5-64c0f852bcf4}/4': ( + 'PKEY_DeviceInterface_Serial_PortName'), + '{4d1ebee8-0803-4774-9842-b77db50265e9}/2': 'PKEY_Storage_Portable', + '{4d1ebee8-0803-4774-9842-b77db50265e9}/3': 'PKEY_Storage_RemovableMedia', + '{4d1ebee8-0803-4774-9842-b77db50265e9}/4': 'PKEY_Storage_SystemCritical', + '{4fc5077e-b686-44be-93e3-86cafe368ccd}/1': 'PKEY_PNPX_Installable', + '{4fc5077e-b686-44be-93e3-86cafe368ccd}/2': 'PKEY_PNPX_Associated', + '{4fc5077e-b686-44be-93e3-86cafe368ccd}/3': 'PKEY_PNPX_CompatibleTypes', + '{4fc5077e-b686-44be-93e3-86cafe368ccd}/4': 'PKEY_PNPX_InstallState', + '{4fffe4d0-914f-4ac4-8d6f-c9c61de169b1}/100': ( + 'PKEY_Photo_FocalPlaneYResolution'), + '{502cfeab-47eb-459c-b960-e6d8728f7701}/100': 'PKEY_ZoneIdentifier', + '{502cfeab-47eb-459c-b960-e6d8728f7701}/101': ( + 'PKEY_LastWriterPackageFamilyName'), + '{502cfeab-47eb-459c-b960-e6d8728f7701}/102': 'PKEY_AppZoneIdentifier', + '{5068bcdf-d697-4d85-8c53-1f1cdab01763}/100': ( + 'PKEY_Contact_DisplayHomePhoneNumbers'), + '{508161fa-313b-43d5-83a1-c1accf68622c}/100': 'PKEY_Contact_OtherAddress', + '{51236583-0c4a-4fe8-b81f-166aec13f510}/100': ( + 'PKEY_Devices_AppPackageFamilyName'), + '{51236583-0c4a-4fe8-b81f-166aec13f510}/123': 'PKEY_Devices_GlyphIcon', + '{51ec3f47-dd50-421d-8769-334f50424b1e}/100': 'PKEY_Photo_SharpnessText', + '{53da57cf-62c0-45c4-81de-7610bcefd7f5}/100': ( + 'PKEY_Calendar_ShowTimeAsText'), + '{540b947e-8b40-45bc-a8a2-6a0b894cbda2}/1': 'PKEY_Numa_Proximity_Domain', + '{540b947e-8b40-45bc-a8a2-6a0b894cbda2}/5': 'PKEY_Devices_Present', + '{540b947e-8b40-45bc-a8a2-6a0b894cbda2}/6': 'PKEY_Devices_DeviceHasProblem', + '{540b947e-8b40-45bc-a8a2-6a0b894cbda2}/9': ( + 'PKEY_Devices_PhysicalDeviceLocation'), + '{554b24ea-e8e3-45ba-9352-dfb561e171e4}/10': 'PKEY_CONFIGUI_TOOLTIPS', + '{554b24ea-e8e3-45ba-9352-dfb561e171e4}/11': 'PKEY_CONFIGUI_ICON', + '{554b24ea-e8e3-45ba-9352-dfb561e171e4}/12': 'PKEY_CONFIGUI_MENUITEM_NOUI', + '{554b24ea-e8e3-45ba-9352-dfb561e171e4}/13': 'PKEY_CONFIGUI_MENUITEM', + '{554b24ea-e8e3-45ba-9352-dfb561e171e4}/2': 'PKEY_CONFIGUI_INSTANCEID', + '{554b24ea-e8e3-45ba-9352-dfb561e171e4}/3': 'PKEY_CONFIGUI_CLSID', + '{554b24ea-e8e3-45ba-9352-dfb561e171e4}/4': 'PKEY_CONFIGUI_CONTENTTYPE', + '{554b24ea-e8e3-45ba-9352-dfb561e171e4}/5': 'PKEY_CONFIGUI_CAPABILITIES', + '{554b24ea-e8e3-45ba-9352-dfb561e171e4}/6': ( + 'PKEY_CONFIGUI_SUPPORTED_ARCHITECTURE'), + '{554b24ea-e8e3-45ba-9352-dfb561e171e4}/7': 'PKEY_CONFIGUI_IS_GLOBAL', + '{554b24ea-e8e3-45ba-9352-dfb561e171e4}/8': 'PKEY_CONFIGUI_NAME', + '{554b24ea-e8e3-45ba-9352-dfb561e171e4}/9': 'PKEY_CONFIGUI_DESCRIPTION', + '{55e98597-ad16-42e0-b624-21599a199838}/100': ( + 'PKEY_Photo_ExposureTimeDenominator'), + '{560c36c0-503a-11cf-baa1-00004c752a9a}/2': 'PKEY_Search_AutoSummary', + '{560c36c0-503a-11cf-baa1-00004c752a9a}/3': ( + 'PKEY_Search_QueryFocusedSummary'), + '{560c36c0-503a-11cf-baa1-00004c752a9a}/4': ( + 'PKEY_Search_QueryFocusedSummaryWithFallback'), + '{56310920-2491-4919-99ce-eadb06fafdb2}/100': ( + 'PKEY_Contact_BusinessHomePage'), + '{56a3372e-ce9c-11d2-9f0e-006097c686f6}/100': 'PKEY_Music_AlbumID', + '{56a3372e-ce9c-11d2-9f0e-006097c686f6}/11': 'PKEY_Music_Genre', + '{56a3372e-ce9c-11d2-9f0e-006097c686f6}/12': 'PKEY_Music_Lyrics', + '{56a3372e-ce9c-11d2-9f0e-006097c686f6}/13': 'PKEY_Music_AlbumArtist', + '{56a3372e-ce9c-11d2-9f0e-006097c686f6}/2': 'PKEY_Music_Artist', + '{56a3372e-ce9c-11d2-9f0e-006097c686f6}/33': ( + 'PKEY_Music_ContentGroupDescription'), + '{56a3372e-ce9c-11d2-9f0e-006097c686f6}/34': 'PKEY_Music_InitialKey', + '{56a3372e-ce9c-11d2-9f0e-006097c686f6}/35': 'PKEY_Music_BeatsPerMinute', + '{56a3372e-ce9c-11d2-9f0e-006097c686f6}/36': 'PKEY_Music_Conductor', + '{56a3372e-ce9c-11d2-9f0e-006097c686f6}/37': 'PKEY_Music_PartOfSet', + '{56a3372e-ce9c-11d2-9f0e-006097c686f6}/38': 'PKEY_Media_SubTitle', + '{56a3372e-ce9c-11d2-9f0e-006097c686f6}/39': 'PKEY_Music_Mood', + '{56a3372e-ce9c-11d2-9f0e-006097c686f6}/4': 'PKEY_Music_AlbumTitle', + '{56a3372e-ce9c-11d2-9f0e-006097c686f6}/5': 'PKEY_Media_Year', + '{56a3372e-ce9c-11d2-9f0e-006097c686f6}/7': 'PKEY_Music_TrackNumber', + '{56c90e9d-9d46-4963-886f-2e1cd9a694ef}/100': ( + 'PKEY_Contact_HomeEmailAddresses'), + '{59569556-0a08-4212-95b9-fae2ad6413db}/2': ( + 'PKEY_Devices_Notifications_NewVoicemail'), + '{59d49e61-840f-4aa9-a939-e2099b7f6399}/100': 'PKEY_GPS_ProcessingMethod', + '{59dde9f2-5253-40ea-9a8b-479e96c6249a}/100': 'PKEY_Photo_ContrastText', + '{5bf396d4-5eb2-466f-bde9-2fb3f2361d6e}/100': 'PKEY_Calendar_ShowTimeAs', + '{5cbf2787-48cf-4208-b90e-ee5e5d420294}/2': 'PKEY_Link_TargetUrl', + '{5cbf2787-48cf-4208-b90e-ee5e5d420294}/21': 'PKEY_Link_Description', + '{5cbf2787-48cf-4208-b90e-ee5e5d420294}/23': 'PKEY_Link_DateVisited', + '{5cbf2787-48cf-4208-b90e-ee5e5d420294}/7': 'PKEY_History_VisitCount', + '{5cda5fc8-33ee-4ff3-9094-ae7bd8868c4d}/100': 'PKEY_IsDeleted', + '{5d76b67f-9b3d-44bb-b6ae-25da4f638a67}/10': ( + 'PKEY_DefaultSaveLocationDisplay'), + '{5d76b67f-9b3d-44bb-b6ae-25da4f638a67}/2': 'PKEY_IsPinnedToNameSpaceTree', + '{5d76b67f-9b3d-44bb-b6ae-25da4f638a67}/3': 'PKEY_IsDefaultSaveLocation', + '{5d76b67f-9b3d-44bb-b6ae-25da4f638a67}/4': 'PKEY_IsSearchOnlyItem', + '{5d76b67f-9b3d-44bb-b6ae-25da4f638a67}/5': ( + 'PKEY_IsDefaultNonOwnerSaveLocation'), + '{5d76b67f-9b3d-44bb-b6ae-25da4f638a67}/6': 'PKEY_OwnerSID', + '{5d76b67f-9b3d-44bb-b6ae-25da4f638a67}/8': 'PKEY_IsLocationSupported', + '{5da84765-e3ff-4278-86b0-a27967fbdd03}/100': 'PKEY_IsFlagged', + '{5dc2253f-5e11-4adf-9cfe-910dd01e3e70}/100': 'PKEY_Contact_Hobbies', + '{5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953}/10': 'PKEY_Hardware_DriverProvider', + '{5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953}/11': 'PKEY_Hardware_DriverDate', + '{5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953}/2': 'PKEY_Hardware_Name', + '{5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953}/3': 'PKEY_Hardware_Icon', + '{5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953}/4096': 'PKEY_Hardware_Status', + '{5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953}/4097': 'PKEY_Hardware_Devinst', + '{5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953}/4098': 'PKEY_Hardware_Image', + '{5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953}/4099': 'PKEY_Hardware_Function', + '{5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953}/4100': ( + 'PKEY_Hardware_ShellAttributes'), + '{5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953}/5': ( + 'PKEY_Hardware_DisplayAttribute'), + '{5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953}/6': 'PKEY_Hardware_Manufacturer', + '{5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953}/7': 'PKEY_Hardware_Model', + '{5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953}/8': 'PKEY_Hardware_SerialNumber', + '{5eaf3ef2-e0ca-4598-bf06-71ed1d9dd953}/9': 'PKEY_Hardware_DriverVersion', + '{5f5aff6a-37e5-4780-97ea-80c7565cf535}/34': ( + 'PKEY_Security_EncryptionOwners'), + '{5fbd34cd-561a-412e-ba98-478a6b0fef1d}/10': ( + 'PKEY_Devices_Aep_Bluetooth_Cod_Services_Audio'), + '{5fbd34cd-561a-412e-ba98-478a6b0fef1d}/11': ( + 'PKEY_Devices_Aep_Bluetooth_Cod_Services_Telephony'), + '{5fbd34cd-561a-412e-ba98-478a6b0fef1d}/12': ( + 'PKEY_Devices_Aep_Bluetooth_Cod_Services_Information'), + '{5fbd34cd-561a-412e-ba98-478a6b0fef1d}/2': ( + 'PKEY_Devices_Aep_Bluetooth_Cod_Major'), + '{5fbd34cd-561a-412e-ba98-478a6b0fef1d}/3': ( + 'PKEY_Devices_Aep_Bluetooth_Cod_Minor'), + '{5fbd34cd-561a-412e-ba98-478a6b0fef1d}/4': ( + 'PKEY_Devices_Aep_Bluetooth_Cod_Services_LimitedDiscovery'), + '{5fbd34cd-561a-412e-ba98-478a6b0fef1d}/5': ( + 'PKEY_Devices_Aep_Bluetooth_Cod_Services_Positioning'), + '{5fbd34cd-561a-412e-ba98-478a6b0fef1d}/6': ( + 'PKEY_Devices_Aep_Bluetooth_Cod_Services_Networking'), + '{5fbd34cd-561a-412e-ba98-478a6b0fef1d}/7': ( + 'PKEY_Devices_Aep_Bluetooth_Cod_Services_Rendering'), + '{5fbd34cd-561a-412e-ba98-478a6b0fef1d}/8': ( + 'PKEY_Devices_Aep_Bluetooth_Cod_Services_Capturing'), + '{5fbd34cd-561a-412e-ba98-478a6b0fef1d}/9': ( + 'PKEY_Devices_Aep_Bluetooth_Cod_Services_ObjectXfer'), + '{61478c08-b600-4a84-bbe4-e99c45f0a072}/100': 'PKEY_Photo_SaturationText', + '{61872cf7-6b5e-4b4b-ac2d-59da84459248}/100': 'PKEY_PropGroup_Media', + '{6336b95e-c7a7-426d-86fd-7ae3d39c84b4}/100': 'PKEY_Photo_WhiteBalanceText', + '{635e9051-50a5-4ba2-b9db-4ed056c77296}/100': 'PKEY_Contact_FullName', + '{63c25b20-96be-488f-8788-c09c407ad812}/100': ( + 'PKEY_Contact_PrimaryAddressStreet'), + '{6444048f-4c8b-11d1-8b70-080036b11a03}/12': 'PKEY_Media_FrameCount', + '{6444048f-4c8b-11d1-8b70-080036b11a03}/13': 'PKEY_Image_Dimensions', + '{6444048f-4c8b-11d1-8b70-080036b11a03}/3': 'PKEY_Image_HorizontalSize', + '{6444048f-4c8b-11d1-8b70-080036b11a03}/4': 'PKEY_Image_VerticalSize', + '{6444048f-4c8b-11d1-8b70-080036b11a03}/5': ( + 'PKEY_Image_HorizontalResolution'), + '{6444048f-4c8b-11d1-8b70-080036b11a03}/6': 'PKEY_Image_VerticalResolution', + '{6444048f-4c8b-11d1-8b70-080036b11a03}/7': 'PKEY_Image_BitDepth', + '{64440490-4c8b-11d1-8b70-080036b11a03}/10': 'PKEY_Audio_Compression', + '{64440490-4c8b-11d1-8b70-080036b11a03}/2': 'PKEY_Audio_Format', + '{64440490-4c8b-11d1-8b70-080036b11a03}/3': 'PKEY_Media_Duration', + '{64440490-4c8b-11d1-8b70-080036b11a03}/4': 'PKEY_Audio_EncodingBitrate', + '{64440490-4c8b-11d1-8b70-080036b11a03}/5': 'PKEY_Audio_SampleRate', + '{64440490-4c8b-11d1-8b70-080036b11a03}/6': 'PKEY_Audio_SampleSize', + '{64440490-4c8b-11d1-8b70-080036b11a03}/7': 'PKEY_Audio_ChannelCount', + '{64440490-4c8b-11d1-8b70-080036b11a03}/8': 'PKEY_Audio_StreamNumber', + '{64440490-4c8b-11d1-8b70-080036b11a03}/9': 'PKEY_Audio_StreamName', + '{64440491-4c8b-11d1-8b70-080036b11a03}/10': 'PKEY_Video_Compression', + '{64440491-4c8b-11d1-8b70-080036b11a03}/100': 'PKEY_Video_IsSpherical', + '{64440491-4c8b-11d1-8b70-080036b11a03}/11': 'PKEY_Video_StreamNumber', + '{64440491-4c8b-11d1-8b70-080036b11a03}/2': 'PKEY_Video_StreamName', + '{64440491-4c8b-11d1-8b70-080036b11a03}/3': 'PKEY_Video_FrameWidth', + '{64440491-4c8b-11d1-8b70-080036b11a03}/4': 'PKEY_Video_FrameHeight', + '{64440491-4c8b-11d1-8b70-080036b11a03}/42': ( + 'PKEY_Video_HorizontalAspectRatio'), + '{64440491-4c8b-11d1-8b70-080036b11a03}/43': 'PKEY_Video_TotalBitrate', + '{64440491-4c8b-11d1-8b70-080036b11a03}/44': 'PKEY_Video_FourCC', + '{64440491-4c8b-11d1-8b70-080036b11a03}/45': ( + 'PKEY_Video_VerticalAspectRatio'), + '{64440491-4c8b-11d1-8b70-080036b11a03}/46': 'PKEY_Video_TranscodedForSync', + '{64440491-4c8b-11d1-8b70-080036b11a03}/6': 'PKEY_Video_FrameRate', + '{64440491-4c8b-11d1-8b70-080036b11a03}/8': 'PKEY_Video_EncodingBitrate', + '{64440491-4c8b-11d1-8b70-080036b11a03}/9': 'PKEY_Video_SampleSize', + '{64440491-4c8b-11d1-8b70-080036b11a03}/98': 'PKEY_Video_IsStereo', + '{64440491-4c8b-11d1-8b70-080036b11a03}/99': 'PKEY_Video_Orientation', + '{64440492-4c8b-11d1-8b70-080036b11a03}/100': 'PKEY_Media_EpisodeNumber', + '{64440492-4c8b-11d1-8b70-080036b11a03}/101': 'PKEY_Media_SeasonNumber', + '{64440492-4c8b-11d1-8b70-080036b11a03}/11': 'PKEY_Copyright', + '{64440492-4c8b-11d1-8b70-080036b11a03}/12': 'PKEY_ShareUserRating', + '{64440492-4c8b-11d1-8b70-080036b11a03}/13': 'PKEY_Media_ClassPrimaryID', + '{64440492-4c8b-11d1-8b70-080036b11a03}/14': 'PKEY_Media_ClassSecondaryID', + '{64440492-4c8b-11d1-8b70-080036b11a03}/15': 'PKEY_Media_DVDID', + '{64440492-4c8b-11d1-8b70-080036b11a03}/16': 'PKEY_Media_MCDI', + '{64440492-4c8b-11d1-8b70-080036b11a03}/17': ( + 'PKEY_Media_MetadataContentProvider'), + '{64440492-4c8b-11d1-8b70-080036b11a03}/18': ( + 'PKEY_Media_ContentDistributor'), + '{64440492-4c8b-11d1-8b70-080036b11a03}/19': 'PKEY_Music_Composer', + '{64440492-4c8b-11d1-8b70-080036b11a03}/20': 'PKEY_Video_Director', + '{64440492-4c8b-11d1-8b70-080036b11a03}/21': 'PKEY_ParentalRating', + '{64440492-4c8b-11d1-8b70-080036b11a03}/22': 'PKEY_Media_Producer', + '{64440492-4c8b-11d1-8b70-080036b11a03}/23': 'PKEY_Media_Writer', + '{64440492-4c8b-11d1-8b70-080036b11a03}/24': 'PKEY_Media_CollectionGroupID', + '{64440492-4c8b-11d1-8b70-080036b11a03}/25': 'PKEY_Media_CollectionID', + '{64440492-4c8b-11d1-8b70-080036b11a03}/26': 'PKEY_Media_ContentID', + '{64440492-4c8b-11d1-8b70-080036b11a03}/27': ( + 'PKEY_Media_CreatorApplication'), + '{64440492-4c8b-11d1-8b70-080036b11a03}/28': ( + 'PKEY_Media_CreatorApplicationVersion'), + '{64440492-4c8b-11d1-8b70-080036b11a03}/30': 'PKEY_Media_Publisher', + '{64440492-4c8b-11d1-8b70-080036b11a03}/31': 'PKEY_Music_Period', + '{64440492-4c8b-11d1-8b70-080036b11a03}/32': 'PKEY_Media_AuthorUrl', + '{64440492-4c8b-11d1-8b70-080036b11a03}/33': 'PKEY_Media_PromotionUrl', + '{64440492-4c8b-11d1-8b70-080036b11a03}/34': 'PKEY_Media_UserWebUrl', + '{64440492-4c8b-11d1-8b70-080036b11a03}/35': ( + 'PKEY_Media_UniqueFileIdentifier'), + '{64440492-4c8b-11d1-8b70-080036b11a03}/36': 'PKEY_Media_EncodedBy', + '{64440492-4c8b-11d1-8b70-080036b11a03}/37': 'PKEY_Media_EncodingSettings', + '{64440492-4c8b-11d1-8b70-080036b11a03}/38': 'PKEY_Media_ProtectionType', + '{64440492-4c8b-11d1-8b70-080036b11a03}/39': 'PKEY_Media_ProviderRating', + '{64440492-4c8b-11d1-8b70-080036b11a03}/40': 'PKEY_Media_ProviderStyle', + '{64440492-4c8b-11d1-8b70-080036b11a03}/41': 'PKEY_Media_UserNoAutoInfo', + '{64440492-4c8b-11d1-8b70-080036b11a03}/42': 'PKEY_Media_SeriesName', + '{64440492-4c8b-11d1-8b70-080036b11a03}/47': ( + 'PKEY_Media_ThumbnailLargePath'), + '{64440492-4c8b-11d1-8b70-080036b11a03}/48': 'PKEY_Media_ThumbnailLargeUri', + '{64440492-4c8b-11d1-8b70-080036b11a03}/49': ( + 'PKEY_Media_ThumbnailSmallPath'), + '{64440492-4c8b-11d1-8b70-080036b11a03}/50': 'PKEY_Media_ThumbnailSmallUri', + '{64440492-4c8b-11d1-8b70-080036b11a03}/9': 'PKEY_Rating', + '{644d37b4-e1b3-4bad-b099-7e7c04966aca}/100': 'PKEY_Contact_EmailAddress3', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/12288': 'PKEY_Devices_FriendlyName', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/12289': 'PKEY_PNPX_FirmwareVersion', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/12290': 'PKEY_PNPX_SerialNumber', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/12292': 'PKEY_PNPX_DeviceCategory', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/12293': ( + 'PKEY_PNPX_DeviceCategory_Desc'), + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/12294': 'PKEY_PNPX_PhysicalAddress', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/12295': ( + 'PKEY_PNPX_NetworkInterfaceLuid'), + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/12296': ( + 'PKEY_PNPX_NetworkInterfaceGuid'), + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/12297': 'PKEY_Devices_IpAddress', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/12304': ( + 'PKEY_PNPX_Category_Desc_NonPlural'), + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/16384': ( + 'PKEY_Devices_ServiceAddress'), + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/16385': 'PKEY_Devices_ServiceId', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/16386': 'PKEY_PNPX_ServiceTypes', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/20480': 'PKEY_PNPX_DomainName', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/20481': 'PKEY_PNPX_MachineName', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/20482': 'PKEY_PNPX_ShareName', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/24576': 'PKEY_SSDP_AltLocationInfo', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/24577': 'PKEY_SSDP_DevLifeTime', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/24578': ( + 'PKEY_SSDP_NetworkInterface'), + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/28672': 'PKEY_PNPX_Removable', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/28673': 'PKEY_PNPX_SecureChannel', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/28674': ( + 'PKEY_PNPX_CompactSignature'), + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/28688': 'PKEY_PNPX_IPBusEnumerated', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/4096': 'PKEY_PNPX_GlobalIdentity', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/4097': 'PKEY_PNPX_Types', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/4098': 'PKEY_PNPX_Scopes', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/4099': 'PKEY_PNPX_XAddrs', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/4100': 'PKEY_PNPX_MetadataVersion', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/4101': 'PKEY_PNPX_ID', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/4102': 'PKEY_PNPX_RemoteAddress', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/4103': 'PKEY_PNPX_RootProxy', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/8192': ( + 'PKEY_DeviceDisplay_Manufacturer'), + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/8193': 'PKEY_PNPX_ManufacturerUrl', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/8194': ( + 'PKEY_DeviceDisplay_ModelName'), + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/8195': 'PKEY_Devices_ModelNumber', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/8196': 'PKEY_PNPX_ModelUrl', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/8197': 'PKEY_PNPX_Upc', + '{656a3bb3-ecc0-43fd-8477-4ae0404a96cd}/8198': ( + 'PKEY_Devices_PresentationUrl'), + '{65a98875-3c80-40ab-abbc-efdaf77dbee2}/100': 'PKEY_AcquisitionID', + '{660e04d6-81ab-4977-a09f-82313113ab26}/100': 'PKEY_Contact_HomeFaxNumber', + '{6614ef48-4efe-4424-9eda-c79f404edf3e}/2': ( + 'PKEY_Devices_Notifications_MissedCall'), + '{668cdfa5-7a1b-4323-ae4b-e527393a1d81}/100': 'PKEY_SourceItem', + '{67df94de-0ca7-4d6f-b792-053a3e4f03cf}/100': 'PKEY_FlagColor', + '{6845cc72-1b71-48c3-af86-b09171a19b14}/3': ( + 'PKEY_Devices_DialProtocol_InstalledApplications'), + '{68dd6094-7216-40f1-a029-43fe7127043f}/100': 'PKEY_PropGroup_Music', + '{6a15e5a0-0a1e-4cd7-bb8c-d2f1b0c929bc}/100': ( + 'PKEY_Contact_BusinessTelephone'), + '{6af55d45-38db-4495-acb0-d4728a3b8314}/10': ( + 'PKEY_Devices_AepContainer_SupportsRendering'), + '{6af55d45-38db-4495-acb0-d4728a3b8314}/11': ( + 'PKEY_Devices_AepContainer_SupportsCapturing'), + '{6af55d45-38db-4495-acb0-d4728a3b8314}/12': ( + 'PKEY_Devices_AepContainer_SupportsObjectTransfer'), + '{6af55d45-38db-4495-acb0-d4728a3b8314}/13': ( + 'PKEY_Devices_AepContainer_SupportsTelephony'), + '{6af55d45-38db-4495-acb0-d4728a3b8314}/14': ( + 'PKEY_Devices_AepContainer_SupportsInformation'), + '{6af55d45-38db-4495-acb0-d4728a3b8314}/2': ( + 'PKEY_Devices_AepContainer_SupportsAudio'), + '{6af55d45-38db-4495-acb0-d4728a3b8314}/3': ( + 'PKEY_Devices_AepContainer_SupportsVideo'), + '{6af55d45-38db-4495-acb0-d4728a3b8314}/4': ( + 'PKEY_Devices_AepContainer_SupportsImages'), + '{6af55d45-38db-4495-acb0-d4728a3b8314}/5': ( + 'PKEY_Devices_AepContainer_SupportedUriSchemes'), + '{6af55d45-38db-4495-acb0-d4728a3b8314}/6': ( + 'PKEY_Devices_AepContainer_DialProtocol_InstalledApplications'), + '{6af55d45-38db-4495-acb0-d4728a3b8314}/7': ( + 'PKEY_Devices_AepContainer_SupportsLimitedDiscovery'), + '{6af55d45-38db-4495-acb0-d4728a3b8314}/8': ( + 'PKEY_Devices_AepContainer_SupportsPositioning'), + '{6af55d45-38db-4495-acb0-d4728a3b8314}/9': ( + 'PKEY_Devices_AepContainer_SupportsNetworking'), + '{6afe7437-9bcd-49c7-80fe-4a5c65fa5874}/104': 'PKEY_Music_DiscNumber', + '{6b223b6a-162e-4aa9-b39f-05d678fc6d77}/100': ( + 'PKEY_Music_SynchronizedLyrics'), + '{6b8b68f6-200b-47ea-8d25-d8050f57339f}/100': 'PKEY_Photo_FlashText', + '{6b8da074-3b5c-43bc-886f-0a2cdce00b6f}/100': 'PKEY_ItemName', + '{6bdd1fc6-810f-11d0-bec7-08002be2092f}/2': 'PKEY_Devices_WiaDeviceType', + '{6d217f6d-3f6a-4825-b470-5f03ca2fbe9b}/100': 'PKEY_Photo_ProgramMode', + '{6d24888f-4718-4bda-afed-ea0fb4386cd8}/100': 'PKEY_OfflineStatus', + '{6d6d5d49-265d-4688-9f4e-1fdd33e7cc83}/100': 'PKEY_Identity_InternetSid', + '{6d748de2-8d38-4cc3-ac60-f009b057c557}/12': ( + 'PKEY_RecordedTV_IsClosedCaptioningAvailable'), + '{6d748de2-8d38-4cc3-ac60-f009b057c557}/13': ( + 'PKEY_RecordedTV_IsRepeatBroadcast'), + '{6d748de2-8d38-4cc3-ac60-f009b057c557}/14': 'PKEY_RecordedTV_IsSAP', + '{6d748de2-8d38-4cc3-ac60-f009b057c557}/15': ( + 'PKEY_RecordedTV_DateContentExpires'), + '{6d748de2-8d38-4cc3-ac60-f009b057c557}/16': ( + 'PKEY_RecordedTV_IsATSCContent'), + '{6d748de2-8d38-4cc3-ac60-f009b057c557}/17': 'PKEY_RecordedTV_IsDTVContent', + '{6d748de2-8d38-4cc3-ac60-f009b057c557}/18': 'PKEY_RecordedTV_IsHDContent', + '{6d748de2-8d38-4cc3-ac60-f009b057c557}/2': 'PKEY_RecordedTV_EpisodeName', + '{6d748de2-8d38-4cc3-ac60-f009b057c557}/3': ( + 'PKEY_RecordedTV_ProgramDescription'), + '{6d748de2-8d38-4cc3-ac60-f009b057c557}/4': 'PKEY_RecordedTV_Credits', + '{6d748de2-8d38-4cc3-ac60-f009b057c557}/5': ( + 'PKEY_RecordedTV_StationCallSign'), + '{6d748de2-8d38-4cc3-ac60-f009b057c557}/7': 'PKEY_RecordedTV_ChannelNumber', + '{6e682923-7f7b-4f0c-a337-cfca296687bf}/100': ( + 'PKEY_Contact_OtherAddressCity'), + '{6ebe6946-2321-440a-90f0-c043efd32476}/100': ( + 'PKEY_Photo_BrightnessDenominator'), + '{6fa20de6-d11c-4d9d-a154-64317628c12d}/100': 'PKEY_ExpandoProperties', + '{702926f4-44a6-43e1-ae71-45627116893b}/100': 'PKEY_GPS_TrackNumerator', + '{713d1703-a2e2-49f5-9214-56472ef3da5c}/2': ( + 'PKEY_DeviceClass_ClassCoInstallers'), + '{71724756-3e74-4432-9b59-e7b2f668a593}/2': ( + 'PKEY_Devices_AepService_FriendlyName'), + '{71724756-3e74-4432-9b59-e7b2f668a593}/3': ( + 'PKEY_Devices_AepService_ServiceClassId'), + '{71724756-3e74-4432-9b59-e7b2f668a593}/4': ( + 'PKEY_Devices_AepService_ContainerId'), + '{71b377d6-e570-425f-a170-809fae73e54e}/100': ( + 'PKEY_Contact_OtherAddressState'), + '{7268af55-1ce4-4f6e-a41f-b6e4ef10e4a9}/100': 'PKEY_Contact_Profession', + '{72fab781-acda-43e5-b155-b2434f85e678}/100': 'PKEY_DateCompleted', + '{72fc5ba4-24f9-4011-9f3f-add27afad818}/100': 'PKEY_Calendar_ReminderTime', + '{730fb6dd-cf7c-426b-a03f-bd166cc9ee24}/100': ( + 'PKEY_Contact_BusinessAddress'), + '{738bf284-1d87-420b-92cf-5834bf6ef9ed}/100': ( + 'PKEY_Photo_ExposureBiasNumerator'), + '{744c8242-4df5-456c-ab9e-014efb9021e3}/100': ( + 'PKEY_Calendar_OrganizerAddress'), + '{745baf0e-e5c1-4cfb-8a1b-d031a0a52393}/100': ( + 'PKEY_Photo_DigitalZoomDenominator'), + '{74a7de49-fa11-4d3d-a006-db7e08675916}/100': 'PKEY_Identity_ProviderID', + '{76c09943-7c33-49e3-9e7e-cdba872cfada}/100': 'PKEY_GPS_Track', + '{776b6b3b-1e3d-4b0c-9a0e-8fbaf2a8492a}/100': ( + 'PKEY_Photo_FocalLengthNumerator'), + '{78342dcb-e358-4145-ae9a-6bfe4e0f9f51}/100': ( + 'PKEY_GPS_AltitudeDenominator'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/100': ( + 'PKEY_DeviceDisplay_DeviceFunctionSubRank'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/101': ( + 'PKEY_DeviceDisplay_AlwaysShowDeviceAsConnected'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/256': ( + 'PKEY_Devices_DeviceInstanceId'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/51': 'PKEY_DeviceDisplay_Address', + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/52': 'PKEY_Devices_DiscoveryMethod', + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/53': ( + 'PKEY_DeviceDisplay_IsEncrypted'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/54': ( + 'PKEY_DeviceDisplay_IsAuthenticated'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/55': 'PKEY_Devices_IsConnected', + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/56': 'PKEY_Devices_Paired', + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/57': 'PKEY_DeviceDisplay_Icon', + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/65': 'PKEY_DeviceDisplay_Version', + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/66': 'PKEY_DeviceDisplay_Last_Seen', + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/67': ( + 'PKEY_DeviceDisplay_Last_Connected'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/68': ( + 'PKEY_DeviceDisplay_IsShowInDisconnectedState'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/70': ( + 'PKEY_DeviceDisplay_IsLocalMachine'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/71': 'PKEY_Devices_MetadataPath', + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/72': ( + 'PKEY_DeviceDisplay_IsMetadataSearchInProgress'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/73': ( + 'PKEY_DeviceDisplay_MetadataChecksum'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/74': ( + 'PKEY_DeviceDisplay_IsNotInterestingForDisplay'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/76': ( + 'PKEY_DeviceDisplay_LaunchDeviceStageOnDeviceConnect'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/77': ( + 'PKEY_DeviceDisplay_LaunchDeviceStageFromExplorer'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/78': ( + 'PKEY_DeviceDisplay_BaselineExperienceId'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/79': ( + 'PKEY_DeviceDisplay_IsDeviceUniquelyIdentifiable'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/80': ( + 'PKEY_DeviceDisplay_AssociationArray'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/81': ( + 'PKEY_DeviceDisplay_DeviceDescription1'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/82': ( + 'PKEY_DeviceDisplay_DeviceDescription2'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/83': ( + 'PKEY_DeviceDisplay_IsNotWorkingProperly'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/84': 'PKEY_Devices_IsSharedDevice', + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/85': ( + 'PKEY_Devices_IsNetworkConnected'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/86': ( + 'PKEY_DeviceDisplay_IsDefaultDevice'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/87': ( + 'PKEY_DeviceDisplay_MetadataCabinet'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/88': ( + 'PKEY_DeviceDisplay_RequiresPairingElevation'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/89': ( + 'PKEY_DeviceDisplay_ExperienceId'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/90': 'PKEY_Devices_CategoryIds', + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/91': ( + 'PKEY_DeviceDisplay_Category_Desc_Singular'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/92': 'PKEY_Devices_CategoryPlural', + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/93': ( + 'PKEY_DeviceDisplay_Category_Icon'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/94': 'PKEY_Devices_CategoryGroup', + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/95': ( + 'PKEY_DeviceDisplay_CategoryGroup_Icon'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/97': ( + 'PKEY_DeviceDisplay_PrimaryCategory'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/98': ( + 'PKEY_DeviceDisplay_UnpairUninstall'), + '{78c34fc8-104a-4aca-9ea4-524d52996e57}/99': ( + 'PKEY_DeviceDisplay_RequiresUninstallElevation'), + '{7996efb2-29c1-4898-be83-4a3646e06fac}/0': 'PKEY_Endpoint_Enable_LFX_AEC', + '{79d94e82-4d79-45aa-821a-74858b4e4ca6}/2': ( + 'PKEY_Devices_AepService_IoT_ServiceInterfaces'), + '{7a7d76f4-b630-4bd7-95ff-37cc51a975c9}/2': 'PKEY_Link_TargetExtension', + '{7abcf4f8-7c3f-4988-ac91-8d2c2e97eca5}/100': ( + 'PKEY_GPS_DestBearingDenominator'), + '{7b03b546-fa4f-4a52-a2fe-03d5311e5865}/100': ( + 'PKEY_Search_ExtendedProperties'), + '{7b9f6399-0a3f-4b12-89bd-4adc51c918af}/100': ( + 'PKEY_Contact_HomeAddressPostOfficeBox'), + '{7bd5533e-af15-44db-b8c8-bd6624e1d032}/10': 'PKEY_Sync_Status', + '{7bd5533e-af15-44db-b8c8-bd6624e1d032}/13': 'PKEY_Sync_Comments', + '{7bd5533e-af15-44db-b8c8-bd6624e1d032}/2': 'PKEY_Sync_HandlerCollectionID', + '{7bd5533e-af15-44db-b8c8-bd6624e1d032}/23': 'PKEY_Sync_ProgressPercentage', + '{7bd5533e-af15-44db-b8c8-bd6624e1d032}/24': 'PKEY_Sync_State', + '{7bd5533e-af15-44db-b8c8-bd6624e1d032}/3': 'PKEY_Sync_HandlerID', + '{7bd5533e-af15-44db-b8c8-bd6624e1d032}/6': 'PKEY_Sync_ItemID', + '{7bd5533e-af15-44db-b8c8-bd6624e1d032}/8': 'PKEY_Sync_HandlerType', + '{7bd5533e-af15-44db-b8c8-bd6624e1d032}/9': 'PKEY_Sync_HandlerTypeLabel', + '{7d122d5a-ae5e-4335-8841-d71e7ce72f53}/100': 'PKEY_GPS_SpeedDenominator', + '{7d683fc9-d155-45a8-bb1f-89d19bcb792f}/100': 'PKEY_Identity_DisplayName', + '{7ddaaad1-ccc8-41ae-b750-b2cb8031aea2}/100': 'PKEY_GPS_LatitudeNumerator', + '{7f73d4e1-91e3-4490-9fba-5e86680a5748}/0': 'PKEY_Endpoint_Enable_GFX', + '{7fd7259d-16b4-4135-9f97-7c96ecd2fa9e}/100': 'PKEY_PropGroup_Message', + '{7fe3aa27-2648-42f3-89b0-454e5cb150c3}/100': 'PKEY_Photo_ProgramModeText', + '{80497100-8c73-48b9-aad9-ce387e19c56e}/2': 'PKEY_Device_Reported', + '{80497100-8c73-48b9-aad9-ce387e19c56e}/3': 'PKEY_Device_Legacy', + '{807b653a-9e91-43ef-8f97-11ce04ee20c5}/100': 'PKEY_Communication_Suffix', + '{80d81ea6-7473-4b0c-8216-efc11a2c4c8b}/2': 'PKEY_Devices_ModelId', + '{80f41eb8-afc4-4208-aa5f-cce21a627281}/100': ( + 'PKEY_Contact_ConnectedServiceIdentities'), + '{813f4124-34e6-4d17-ab3e-6b1f3c2247a1}/100': 'PKEY_Photo_MakerNoteOffset', + '{818d3b4c-2bbf-40e9-a438-9361b0ffc427}/0': ( + 'PKEY_Endpoint_Enable_LFX_BEAMFORMING'), + '{821437d6-9eab-4765-a589-3b1cbbd22a61}/100': ( + 'PKEY_Photo_PhotometricInterpretationText'), + '{827edb4f-5b73-44a7-891d-fdffabea35ca}/100': 'PKEY_GPS_Altitude', + '{83a6347e-6fe4-4f40-ba9c-c4865240d1f4}/100': ( + 'PKEY_Communication_FollowupIconIndex'), + '{83da6326-97a6-4088-9453-a1923f573b29}/9': ( + 'PKEY_DeviceDisplay_InstallInProgress'), + '{84179e61-60f6-4c1c-88ed-f1c531b32bda}/10': 'PKEY_PROVIDER_TOOLTIPS', + '{84179e61-60f6-4c1c-88ed-f1c531b32bda}/11': 'PKEY_PROVIDER_ICON', + '{84179e61-60f6-4c1c-88ed-f1c531b32bda}/2': 'PKEY_PROVIDER_INSTANCEID', + '{84179e61-60f6-4c1c-88ed-f1c531b32bda}/3': 'PKEY_PROVIDER_CLSID', + '{84179e61-60f6-4c1c-88ed-f1c531b32bda}/4': 'PKEY_PROVIDER_CONFIGUI', + '{84179e61-60f6-4c1c-88ed-f1c531b32bda}/5': 'PKEY_PROVIDER_CONTENTTYPE', + '{84179e61-60f6-4c1c-88ed-f1c531b32bda}/6': 'PKEY_PROVIDER_CAPABILITIES', + '{84179e61-60f6-4c1c-88ed-f1c531b32bda}/7': ( + 'PKEY_PROVIDER_SUPPORTED_ARCHITECTURE'), + '{84179e61-60f6-4c1c-88ed-f1c531b32bda}/8': 'PKEY_PROVIDER_NAME', + '{84179e61-60f6-4c1c-88ed-f1c531b32bda}/9': 'PKEY_PROVIDER_DESCRIPTION', + '{841e4f90-ff59-4d16-8947-e81bbffab36d}/16': 'PKEY_Software_DateLastUsed', + '{847c66de-b8d6-4af9-abc3-6f4f926bc039}/14': ( + 'PKEY_DeviceInterface_PrinterDriverDirectory'), + '{84d8f337-981d-44b3-9615-c7596dba17e3}/100': 'PKEY_Contact_EmailAddresses', + '{8589e481-6040-473d-b171-7fa89c2708ed}/100': ( + 'PKEY_Contact_CompanyMainTelephone'), + '{8619a4b6-9f4d-4429-8c0f-b996ca59e335}/100': ( + 'PKEY_Communication_SecurityFlags'), + '{86d40b4d-9069-443c-819a-2a54090dccec}/11': 'PKEY_Tile_LongDisplayName', + '{86d40b4d-9069-443c-819a-2a54090dccec}/12': ( + 'PKEY_Tile_Square150x150LogoPath'), + '{86d40b4d-9069-443c-819a-2a54090dccec}/13': ( + 'PKEY_Tile_Wide310x150LogoPath'), + '{86d40b4d-9069-443c-819a-2a54090dccec}/14': 'PKEY_Tile_Flags', + '{86d40b4d-9069-443c-819a-2a54090dccec}/15': 'PKEY_Tile_BadgeLogoPath', + '{86d40b4d-9069-443c-819a-2a54090dccec}/16': 'PKEY_Tile_SuiteDisplayName', + '{86d40b4d-9069-443c-819a-2a54090dccec}/17': 'PKEY_Tile_SuiteSortName', + '{86d40b4d-9069-443c-819a-2a54090dccec}/18': ( + 'PKEY_Tile_DisplayNameLanguage'), + '{86d40b4d-9069-443c-819a-2a54090dccec}/19': ( + 'PKEY_Tile_Square310x310LogoPath'), + '{86d40b4d-9069-443c-819a-2a54090dccec}/2': 'PKEY_Tile_SmallLogoPath', + '{86d40b4d-9069-443c-819a-2a54090dccec}/20': ( + 'PKEY_Tile_Square70x70LogoPath'), + '{86d40b4d-9069-443c-819a-2a54090dccec}/21': 'PKEY_Tile_FencePost', + '{86d40b4d-9069-443c-819a-2a54090dccec}/22': 'PKEY_Tile_InstallProgress', + '{86d40b4d-9069-443c-819a-2a54090dccec}/23': 'PKEY_Tile_EncodedTargetPath', + '{86d40b4d-9069-443c-819a-2a54090dccec}/4': 'PKEY_Tile_Background', + '{86d40b4d-9069-443c-819a-2a54090dccec}/5': 'PKEY_Tile_Foreground', + '{8727cfff-4868-4ec6-ad5b-81b98521d1ab}/100': 'PKEY_GPS_Latitude', + '{8807cae6-7db6-4f10-8ee4-435eaa1392bc}/1': 'PKEY_Pairing_ListItemText', + '{8807cae6-7db6-4f10-8ee4-435eaa1392bc}/16': ( + 'PKEY_Pairing_IsWifiOnlyDevice'), + '{8807cae6-7db6-4f10-8ee4-435eaa1392bc}/2': ( + 'PKEY_Pairing_ListItemDescription'), + '{8807cae6-7db6-4f10-8ee4-435eaa1392bc}/3': 'PKEY_Pairing_ListItemIcon', + '{8807cae6-7db6-4f10-8ee4-435eaa1392bc}/4': 'PKEY_Pairing_ListItemDefault', + '{880f70a2-6082-47ac-8aab-a739d1a300c3}/151': 'PKEY_Devices_SharedTooltip', + '{880f70a2-6082-47ac-8aab-a739d1a300c3}/152': ( + 'PKEY_Devices_NetworkedTooltip'), + '{880f70a2-6082-47ac-8aab-a739d1a300c3}/153': 'PKEY_Devices_DefaultTooltip', + '{88190b80-4684-11da-a26a-0002b3988e81}/1': 'PKEY_WCN_Version', + '{88190b81-4684-11da-a26a-0002b3988e81}/2': 'PKEY_WCN_RequestType', + '{88190b82-4684-11da-a26a-0002b3988e81}/3': 'PKEY_WCN_AuthType', + '{88190b83-4684-11da-a26a-0002b3988e81}/4': 'PKEY_WCN_EncryptType', + '{88190b84-4684-11da-a26a-0002b3988e81}/5': 'PKEY_WCN_ConnType', + '{88190b85-4684-11da-a26a-0002b3988e81}/6': 'PKEY_WCN_ConfigMethods', + '{88190b86-4684-11da-a26a-0002b3988e81}/7': 'PKEY_WCN_DeviceType', + '{88190b87-4684-11da-a26a-0002b3988e81}/8': 'PKEY_WCN_RfBand', + '{88190b88-4684-11da-a26a-0002b3988e81}/9': 'PKEY_WCN_AssocState', + '{88190b89-4684-11da-a26a-0002b3988e81}/10': 'PKEY_WCN_ConfigError', + '{88190b89-4684-11da-a26a-0002b3988e81}/11': 'PKEY_WCN_ConfigState', + '{88190b89-4684-11da-a26a-0002b3988e81}/12': 'PKEY_WCN_DevicePasswordId', + '{88190b89-4684-11da-a26a-0002b3988e81}/13': 'PKEY_WCN_OSVersion', + '{88190b8a-4684-11da-a26a-0002b3988e81}/14': 'PKEY_WCN_VendorExtension', + '{88190b8b-4684-11da-a26a-0002b3988e81}/15': 'PKEY_WCN_RegistrarType', + '{88190b8b-4684-11da-a26a-0002b3988e81}/16': 'PKEY_WCN_DeviceType_Category', + '{88190b8b-4684-11da-a26a-0002b3988e81}/17': ( + 'PKEY_WCN_DeviceType_SubCategoryOUI'), + '{88190b8b-4684-11da-a26a-0002b3988e81}/18': ( + 'PKEY_WCN_DeviceType_SubCategory'), + '{88190b8b-4684-11da-a26a-0002b3988e81}/32': 'PKEY_WCN_SSID', + '{8859a284-de7e-4642-99ba-d431d044b1ec}/100': ( + 'PKEY_PropGroup_MediaAdvanced'), + '{8943b373-388c-4395-b557-bc6dbaffafdb}/2': ( + 'PKEY_Devices_AudioDevice_RawProcessingSupported'), + '{8943b373-388c-4395-b557-bc6dbaffafdb}/3': ( + 'PKEY_Devices_AudioDevice_Microphone_SensitivityInDbfs'), + '{8943b373-388c-4395-b557-bc6dbaffafdb}/4': ( + 'PKEY_Devices_AudioDevice_Microphone_SignalToNoiseRatioInDb'), + '{8943b373-388c-4395-b557-bc6dbaffafdb}/5': ( + 'PKEY_Devices_AudioDevice_Microphone_SensitivityInDbfs2'), + '{8969b275-9475-4e00-a887-ff93b8b41e44}/100': 'PKEY_PropGroup_Description', + '{897b3694-fe9e-43e6-8066-260f590c0100}/2': ( + 'PKEY_Contact_JA_CompanyNamePhonetic'), + '{897b3694-fe9e-43e6-8066-260f590c0100}/3': ( + 'PKEY_Contact_JA_FirstNamePhonetic'), + '{897b3694-fe9e-43e6-8066-260f590c0100}/4': ( + 'PKEY_Contact_JA_LastNamePhonetic'), + '{8a2f99f9-3c37-465d-a8d7-69777a246d0c}/2': 'PKEY_Link_FeedItemLocalId', + '{8a2f99f9-3c37-465d-a8d7-69777a246d0c}/5': 'PKEY_Link_TargetUrlHostName', + '{8a2f99f9-3c37-465d-a8d7-69777a246d0c}/6': 'PKEY_Link_TargetUrlPath', + '{8af4961c-f526-43e5-aa81-db768219178d}/100': ( + 'PKEY_Photo_SubjectDistanceNumerator'), + '{8afcc170-8a46-4b53-9eee-90bae7151e62}/100': ( + 'PKEY_Contact_HomeAddressPostalCode'), + '{8b26ea41-058f-43f6-aecc-4035681ce977}/100': ( + 'PKEY_Contact_OtherAddressPostOfficeBox'), + '{8c3b93a4-baed-1a83-9a32-102ee313f6eb}/100': 'PKEY_Identity_Blob', + '{8c7ed206-3f8a-4827-b3ab-ae9e1faefc6c}/2': 'PKEY_Devices_ContainerId', + '{8c7ed206-3f8a-4827-b3ab-ae9e1faefc6c}/4': ( + 'PKEY_Devices_InLocalMachineContainer'), + '{8e531030-b960-4346-ae0d-66bc9a86fb94}/100': ( + 'PKEY_Communication_Direction'), + '{8e8ecf7c-b7b8-4eb8-a63f-0ee715c96f9e}/100': ( + 'PKEY_Photo_GainControlNumerator'), + '{8f167568-0aae-4322-8ed9-6055b7b0e398}/100': ( + 'PKEY_Contact_OtherAddressCountry'), + '{8f367200-c270-457c-b1d4-e07c5bcd90c7}/100': 'PKEY_Contact_LastName', + '{8fdc6dea-b929-412b-ba90-397a257465fe}/100': 'PKEY_Contact_CarTelephone', + '{900a403b-097b-4b95-8ae2-071fdaeeb118}/100': 'PKEY_PropGroup_Advanced', + '{90197ca7-fd8f-4e8c-9da3-b57e1e609295}/100': 'PKEY_RatingText', + '{908696c7-8f87-44f2-80ed-a8c1c6894575}/2': 'PKEY_LibraryLocationsCount', + '{9098f33c-9a7d-48a8-8de5-2e1227a64e91}/100': ( + 'PKEY_Message_ProofInProgress'), + '{90e5e14e-648b-4826-b2aa-acaf790e3513}/10': 'PKEY_IsEncrypted', + '{91eff6f3-2e27-42ca-933e-7c999fbe310b}/100': ( + 'PKEY_Contact_BusinessFaxNumber'), + '{93112f89-c28b-492f-8a9d-4be2062cee8a}/100': ( + 'PKEY_Photo_ExposureIndexDenominator'), + '{95beb1fc-326d-4644-b396-cd3ed90e6ddf}/100': 'PKEY_Journal_EntryType', + '{95c656c1-2abf-4148-9ed3-9ec602e3b7cd}/100': ( + 'PKEY_Contact_OtherAddressPostalCode'), + '{95e127b5-79cc-4e83-9c9e-8422187b3e0e}/2': ( + 'PKEY_DeviceInterface_WinUsb_UsbVendorId'), + '{95e127b5-79cc-4e83-9c9e-8422187b3e0e}/3': ( + 'PKEY_DeviceInterface_WinUsb_UsbProductId'), + '{95e127b5-79cc-4e83-9c9e-8422187b3e0e}/4': ( + 'PKEY_DeviceInterface_WinUsb_UsbClass'), + '{95e127b5-79cc-4e83-9c9e-8422187b3e0e}/5': ( + 'PKEY_DeviceInterface_WinUsb_UsbSubClass'), + '{95e127b5-79cc-4e83-9c9e-8422187b3e0e}/6': ( + 'PKEY_DeviceInterface_WinUsb_UsbProtocol'), + '{95e127b5-79cc-4e83-9c9e-8422187b3e0e}/7': ( + 'PKEY_DeviceInterface_WinUsb_DeviceInterfaceClasses'), + '{9660c283-fc3a-4a08-a096-eed3aac46da2}/100': 'PKEY_Contact_DataSuppliers', + '{967b5af8-995a-46ed-9e11-35b3c5b9782d}/100': 'PKEY_Photo_ExposureIndex', + '{972e333e-ac7e-49f1-8adf-a70d07a9bcab}/100': 'PKEY_GPS_AreaInformation', + '{9744311e-7951-4b2e-b6f0-ecb293cac119}/5': ( + 'PKEY_Devices_AepService_Bluetooth_CacheMode'), + '{9744311e-7951-4b2e-b6f0-ecb293cac119}/6': ( + 'PKEY_Devices_AepService_Bluetooth_GattService_Device'), + '{9744311e-7951-4b2e-b6f0-ecb293cac119}/7': ( + 'PKEY_Devices_AepService_Bluetooth_RfcommService_CacheMode'), + '{9744311e-7951-4b2e-b6f0-ecb293cac119}/8': ( + 'PKEY_Devices_AepService_Bluetooth_RfcommService_Device'), + '{97b0ad89-df49-49cc-834e-660974fd755b}/100': 'PKEY_Contact_Label', + '{98f98354-617a-46b8-8560-5b1b64bf1f89}/100': 'PKEY_Contact_HomeAddress', + '{995ef0b0-7eb3-4a8b-b9ce-068bb3f4af69}/1': ( + 'PKEY_Devices_Aep_Bluetooth_Le_Appearance'), + '{995ef0b0-7eb3-4a8b-b9ce-068bb3f4af69}/4': ( + 'PKEY_Devices_Aep_Bluetooth_Le_AddressType'), + '{995ef0b0-7eb3-4a8b-b9ce-068bb3f4af69}/5': ( + 'PKEY_Devices_Aep_Bluetooth_Le_Appearance_Category'), + '{995ef0b0-7eb3-4a8b-b9ce-068bb3f4af69}/6': ( + 'PKEY_Devices_Aep_Bluetooth_Le_Appearance_Subcategory'), + '{995ef0b0-7eb3-4a8b-b9ce-068bb3f4af69}/8': ( + 'PKEY_Devices_Aep_Bluetooth_Le_IsConnectable'), + '{9973d2b5-bfd8-438a-ba94-5349b293181a}/100': 'PKEY_PropGroup_Calendar', + '{9a8ebb75-6458-4e82-bacb-35c0095b03bb}/100': ( + 'PKEY_Photo_TranscodedForSync'), + '{9a93244d-a7ad-4ff8-9b99-45ee4cc09af6}/100': ( + 'PKEY_Contact_AssistantTelephone'), + '{9a9bc088-4f6d-469e-9919-e705412040f9}/100': 'PKEY_Message_IsFwdOrReply', + '{9ab84393-2a0f-4b75-bb22-7279786977cb}/100': 'PKEY_GPS_DestBearingRef', + '{9ad5badb-cea7-4470-a03d-b84e51b9949e}/100': 'PKEY_Contact_Anniversary', + '{9aebae7a-9644-487d-a92c-657585ed751a}/100': ( + 'PKEY_Media_SubscriptionContentId'), + '{9b174b34-40ff-11d2-a27e-00c04fc30871}/4': 'PKEY_FileOwner', + '{9b174b35-40ff-11d2-a27e-00c04fc30871}/10': 'PKEY_Volume_IsRoot', + '{9b174b35-40ff-11d2-a27e-00c04fc30871}/2': 'PKEY_FreeSpace', + '{9b174b35-40ff-11d2-a27e-00c04fc30871}/3': 'PKEY_Capacity', + '{9b174b35-40ff-11d2-a27e-00c04fc30871}/4': 'PKEY_Volume_FileSystem', + '{9b174b35-40ff-11d2-a27e-00c04fc30871}/5': 'PKEY_PercentFull', + '{9b174b35-40ff-11d2-a27e-00c04fc30871}/7': ( + 'PKEY_Computer_DecoratedFreeSpace'), + '{9bc2c99b-ac71-4127-9d1c-2596d0d7dcb7}/100': ( + 'PKEY_GPS_DestDistanceDenominator'), + '{9c1fcf74-2d97-41ba-b4ae-cb2e3661a6e4}/5': 'PKEY_Priority', + '{9c1fcf74-2d97-41ba-b4ae-cb2e3661a6e4}/8': 'PKEY_Message_HasAttachments', + '{9cb0c358-9d7a-46b1-b466-dcc6f1a3d93d}/100': ( + 'PKEY_Contact_DisplayMobilePhoneNumbers'), + '{9d1d7cc5-5c39-451c-86b3-928e2d18cc47}/100': 'PKEY_GPS_DestLatitude', + '{9d2408b6-3167-422b-82b0-f583b7a7cfe3}/100': 'PKEY_Contact_SpouseName', + '{9e7d118f-b314-45a0-8cfb-d654b917c9e9}/100': ( + 'PKEY_Photo_BrightnessNumerator'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/10': ( + 'PKEY_AppUserModel_BestShortcut'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/11': 'PKEY_AppUserModel_IsDualMode', + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/12': ( + 'PKEY_AppUserModel_StartPinOption'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/13': 'PKEY_AppUserModel_Relevance', + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/14': ( + 'PKEY_AppUserModel_HostEnvironment'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/15': ( + 'PKEY_AppUserModel_PackageInstallPath'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/16': ( + 'PKEY_AppUserModel_RecordState'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/17': ( + 'PKEY_AppUserModel_PackageFamilyName'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/18': ( + 'PKEY_AppUserModel_InstalledBy'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/19': 'PKEY_AppUserModel_ParentID', + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/2': ( + 'PKEY_AppUserModel_RelaunchCommand'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/20': ( + 'PKEY_AppUserModel_ActivationContext'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/21': ( + 'PKEY_AppUserModel_PackageFullName'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/22': ( + 'PKEY_AppUserModel_PackageRelativeApplicationID'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/23': ( + 'PKEY_AppUserModel_ExcludedFromLauncher'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/25': 'PKEY_AppUserModel_RunFlags', + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/26': ( + 'PKEY_AppUserModel_ToastActivatorCLSID'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/27': ( + 'PKEY_AppUserModel_DestListProvidedTitle'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/28': ( + 'PKEY_AppUserModel_DestListProvidedDescription'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/29': ( + 'PKEY_AppUserModel_DestListLogoUri'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/3': ( + 'PKEY_AppUserModel_RelaunchIconResource'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/30': ( + 'PKEY_AppUserModel_DestListProvidedGroupName'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/4': ( + 'PKEY_AppUserModel_RelaunchDisplayNameResource'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/5': 'PKEY_AppUserModel_ID', + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/6': ( + 'PKEY_AppUserModel_IsDestListSeparator'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/7': ( + 'PKEY_AppUserModel_IsDestListLink'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/8': ( + 'PKEY_AppUserModel_ExcludeFromShowInNewInstall'), + '{9f4c2855-9f79-4b39-a8d0-e1d42de1d5f3}/9': ( + 'PKEY_AppUserModel_PreventPinning'), + '{a00742a1-cd8c-4b37-95ab-70755587767a}/3': ( + 'PKEY_DeviceInterface_PrinterEnumerationFlag'), + '{a015ed5d-aaea-4d58-8a86-3c586920ea0b}/100': 'PKEY_GPS_MeasureMode', + '{a06992b3-8caf-4ed7-a547-b259e32ac9fc}/100': 'PKEY_Search_Store', + '{a09f084e-ad41-489f-8076-aa5be3082bca}/100': 'PKEY_SimpleRating', + '{a0be94c5-50ba-487b-bd35-0654be8881ed}/100': 'PKEY_GPS_DOPDenominator', + '{a0e00ee1-f0c7-4d41-b8e7-26a7bd8d38b0}/2': ( + 'PKEY_Devices_Notifications_StorageFull'), + '{a0e00ee1-f0c7-4d41-b8e7-26a7bd8d38b0}/3': ( + 'PKEY_Devices_Notification_StorageFullLinkText'), + '{a0e74609-b84d-4f49-b860-462bd9971f98}/100': ( + 'PKEY_Photo_FocalLengthInFilm'), + '{a1829ea2-27eb-459e-935d-b2fad7b07762}/2': ( + 'PKEY_Devices_MicrophoneArray_Geometry'), + '{a19fb7a9-024b-4371-a8bf-4d29c3e4e9c9}/100': ( + 'PKEY_Contact_ConnectedServiceSupportedActions'), + '{a26f4afc-7346-4299-be47-eb1ae613139f}/100': 'PKEY_Identity', + '{a26f4afc-7346-4299-be47-eb1ae613139f}/16': ( + 'PKEY_Identity_KeyProviderName'), + '{a26f4afc-7346-4299-be47-eb1ae613139f}/17': ( + 'PKEY_Identity_KeyProviderContext'), + '{a2e541c5-4440-4ba8-867e-75cfc06828cd}/100': ( + 'PKEY_Photo_FocalPlaneYResolutionNumerator'), + '{a3250282-fb6d-48d5-9a89-dbcace75cccf}/100': ( + 'PKEY_GPS_DestLongitudeNumerator'), + '{a35996ab-11cf-4935-8b61-a6761081ecdf}/12': ( + 'PKEY_Devices_Aep_DeviceAddress'), + '{a35996ab-11cf-4935-8b61-a6761081ecdf}/16': 'PKEY_Devices_Aep_IsPaired', + '{a35996ab-11cf-4935-8b61-a6761081ecdf}/17': 'PKEY_Devices_Aep_Category', + '{a35996ab-11cf-4935-8b61-a6761081ecdf}/3': 'PKEY_Devices_Aep_ModelName', + '{a35996ab-11cf-4935-8b61-a6761081ecdf}/4': 'PKEY_Devices_Aep_ModelId', + '{a35996ab-11cf-4935-8b61-a6761081ecdf}/5': 'PKEY_Devices_Aep_Manufacturer', + '{a35996ab-11cf-4935-8b61-a6761081ecdf}/6': ( + 'PKEY_Devices_Aep_SignalStrength'), + '{a35996ab-11cf-4935-8b61-a6761081ecdf}/7': 'PKEY_Devices_Aep_IsConnected', + '{a35996ab-11cf-4935-8b61-a6761081ecdf}/9': 'PKEY_Devices_Aep_IsPresent', + '{a399aac7-c265-474e-b073-ffce57721716}/2': ( + 'PKEY_Devices_AepService_Bluetooth_ServiceGuid'), + '{a3b29791-7713-4e1d-bb40-17db85f01831}/100': 'PKEY_ImportanceText', + '{a4108708-09df-4377-9dfc-6d99986d5a67}/100': 'PKEY_Identity_IsMeIdentity', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/10': 'PKEY_Devices_ClassGuid', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/11': 'PKEY_Device_Driver', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/12': 'PKEY_Device_ConfigFlags', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/13': ( + 'PKEY_Devices_DeviceManufacturer'), + '{a45c254e-df1c-4efd-8020-67d146a850e0}/14': 'PKEY_Device_FriendlyName', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/15': 'PKEY_Device_LocationInfo', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/16': 'PKEY_Device_PDOName', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/17': ( + 'PKEY_Devices_DeviceCapabilities'), + '{a45c254e-df1c-4efd-8020-67d146a850e0}/18': 'PKEY_Device_UINumber', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/19': 'PKEY_Device_UpperFilters', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/2': 'PKEY_AudioEndPoint_Interface', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/20': 'PKEY_Device_LowerFilters', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/21': 'PKEY_Device_BusTypeGuid', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/22': 'PKEY_Device_LegacyBusType', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/23': 'PKEY_Device_BusNumber', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/24': 'PKEY_Device_EnumeratorName', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/25': 'PKEY_Device_Security', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/26': 'PKEY_Device_SecuritySDS', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/27': 'PKEY_Device_DevType', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/28': 'PKEY_Device_Exclusive', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/29': 'PKEY_Device_Characteristics', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/3': 'PKEY_Devices_HardwareIds', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/30': 'PKEY_Device_Address', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/31': ( + 'PKEY_Device_UINumberDescFormat'), + '{a45c254e-df1c-4efd-8020-67d146a850e0}/32': 'PKEY_Device_PowerData', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/33': 'PKEY_Device_RemovalPolicy', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/34': ( + 'PKEY_Device_RemovalPolicyDefault'), + '{a45c254e-df1c-4efd-8020-67d146a850e0}/35': ( + 'PKEY_Device_RemovalPolicyOverride'), + '{a45c254e-df1c-4efd-8020-67d146a850e0}/36': 'PKEY_Device_InstallState', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/37': 'PKEY_Devices_LocationPaths', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/4': 'PKEY_Device_CompatibleIds', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/6': 'PKEY_Device_Service', + '{a45c254e-df1c-4efd-8020-67d146a850e0}/9': 'PKEY_Device_Class', + '{a4aaa5b7-1ad0-445f-811a-0f8f6e67f6b5}/100': 'PKEY_GPS_ImgDirectionRef', + '{a5477f61-7a82-4eca-9dde-98b69b2479b3}/100': ( + 'PKEY_RecordedTV_RecordingTime'), + '{a6744477-c237-475b-a075-54f34498292a}/100': ( + 'PKEY_Communication_TaskStatusText'), + '{a6f360d2-55f9-48de-b909-620e090a647c}/100': 'PKEY_IsFlaggedComplete', + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/101': ( + 'PKEY_Contact_HomeAddress1Street'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/102': ( + 'PKEY_Contact_HomeAddress1Locality'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/103': ( + 'PKEY_Contact_HomeAddress1Region'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/104': ( + 'PKEY_Contact_HomeAddress1Country'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/105': ( + 'PKEY_Contact_HomeAddress1PostalCode'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/106': ( + 'PKEY_Contact_HomeAddress2Street'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/107': ( + 'PKEY_Contact_HomeAddress2Locality'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/108': ( + 'PKEY_Contact_HomeAddress2Region'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/109': ( + 'PKEY_Contact_HomeAddress2Country'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/110': ( + 'PKEY_Contact_HomeAddress2PostalCode'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/111': ( + 'PKEY_Contact_HomeAddress3Street'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/112': ( + 'PKEY_Contact_HomeAddress3Locality'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/113': ( + 'PKEY_Contact_HomeAddress3Region'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/114': ( + 'PKEY_Contact_HomeAddress3Country'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/115': ( + 'PKEY_Contact_HomeAddress3PostalCode'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/116': ( + 'PKEY_Contact_BusinessAddress1Street'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/117': ( + 'PKEY_Contact_BusinessAddress1Locality'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/118': ( + 'PKEY_Contact_BusinessAddress1Region'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/119': ( + 'PKEY_Contact_BusinessAddress1Country'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/120': ( + 'PKEY_Contact_BusinessAddress1PostalCode'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/121': ( + 'PKEY_Contact_BusinessAddress2Street'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/122': ( + 'PKEY_Contact_BusinessAddress2Locality'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/123': ( + 'PKEY_Contact_BusinessAddress2Region'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/124': ( + 'PKEY_Contact_BusinessAddress2Country'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/125': ( + 'PKEY_Contact_BusinessAddress2PostalCode'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/126': ( + 'PKEY_Contact_BusinessAddress3Street'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/127': ( + 'PKEY_Contact_BusinessAddress3Locality'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/128': ( + 'PKEY_Contact_BusinessAddress3Region'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/129': ( + 'PKEY_Contact_BusinessAddress3Country'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/130': ( + 'PKEY_Contact_BusinessAddress3PostalCode'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/131': ( + 'PKEY_Contact_OtherAddress1Street'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/132': ( + 'PKEY_Contact_OtherAddress1Locality'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/133': ( + 'PKEY_Contact_OtherAddress1Region'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/134': ( + 'PKEY_Contact_OtherAddress1Country'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/135': ( + 'PKEY_Contact_OtherAddress1PostalCode'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/136': ( + 'PKEY_Contact_OtherAddress2Street'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/137': ( + 'PKEY_Contact_OtherAddress2Locality'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/138': ( + 'PKEY_Contact_OtherAddress2Region'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/139': ( + 'PKEY_Contact_OtherAddress2Country'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/140': ( + 'PKEY_Contact_OtherAddress2PostalCode'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/141': ( + 'PKEY_Contact_OtherAddress3Street'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/142': ( + 'PKEY_Contact_OtherAddress3Locality'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/143': ( + 'PKEY_Contact_OtherAddress3Region'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/144': ( + 'PKEY_Contact_OtherAddress3Country'), + '{a7b6f596-d678-4bc1-b05f-0203d27e8aa1}/145': ( + 'PKEY_Contact_OtherAddress3PostalCode'), + '{a7fe0840-1344-46f0-8d37-52ed712a4bf9}/100': ( + 'PKEY_ParentalRatingsOrganization'), + '{a82d9ee7-ca67-4312-965e-226bcea85023}/100': 'PKEY_Message_Flags', + '{a8a74b92-361b-4e9a-b722-7c4a7330a312}/100': 'PKEY_Identity_ProviderData', + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/10': ( + 'PKEY_Device_DriverPropPageProvider'), + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/11': ( + 'PKEY_Device_DriverCoInstallers'), + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/12': ( + 'PKEY_Device_ResourcePickerTags'), + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/13': ( + 'PKEY_Device_ResourcePickerExceptions'), + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/14': 'PKEY_Device_DriverRank', + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/15': 'PKEY_Device_DriverLogoLevel', + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/17': 'PKEY_Device_NoConnectSound', + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/18': ( + 'PKEY_Device_GenericDriverInstalled'), + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/2': 'PKEY_Device_DriverDate', + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/3': 'PKEY_Device_DriverVersion', + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/4': 'PKEY_Device_DriverDesc', + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/5': 'PKEY_Device_DriverInfPath', + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/6': 'PKEY_Device_DriverInfSection', + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/7': ( + 'PKEY_Device_DriverInfSectionExt'), + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/8': 'PKEY_Device_MatchingDeviceId', + '{a8b865dd-2e3d-4094-ad97-e593a70c75d6}/9': 'PKEY_Device_DriverProvider', + '{a93eae04-6804-4f24-ac81-09b266452118}/100': 'PKEY_GPS_DestDistance', + '{a94688b6-7d9f-4570-a648-e3dfc0ab2b3f}/100': 'PKEY_OfflineAvailability', + '{a988f78b-07b6-4f47-9c9f-25409534cdee}/0': 'PKEY_Endpoint_Enable_LFX', + '{a9ea193c-c511-498a-a06b-58e2776dcc28}/100': 'PKEY_Photo_OrientationText', + '{aaa660f9-9865-458e-b484-01bc7fe3973e}/100': 'PKEY_Calendar_OrganizerName', + '{aabaf6c9-e0c5-4719-8585-57b103e584fe}/100': ( + 'PKEY_Photo_FlashManufacturer'), + '{aaf16bac-2b55-45e6-9f6d-415eb94910df}/100': ( + 'PKEY_Contact_TTYTDDTelephone'), + '{aaf4ee25-bd3b-4dd7-bfc4-47f77bb00f6d}/100': 'PKEY_GPS_Differential', + '{ab205e50-04b7-461c-a18c-2f233836e627}/100': ( + 'PKEY_Photo_ExposureBiasDenominator'), + '{acc9ce3d-c213-4942-8b48-6d0820f21c6d}/100': 'PKEY_GPS_SpeedNumerator', + '{aeac19e4-89ae-4508-b9b7-bb867abee2ed}/2': 'PKEY_DRM_IsProtected', + '{aeac19e4-89ae-4508-b9b7-bb867abee2ed}/3': 'PKEY_DRM_Description', + '{aeac19e4-89ae-4508-b9b7-bb867abee2ed}/4': 'PKEY_DRM_PlayCount', + '{aeac19e4-89ae-4508-b9b7-bb867abee2ed}/5': 'PKEY_DRM_DatePlayStarts', + '{aeac19e4-89ae-4508-b9b7-bb867abee2ed}/6': 'PKEY_DRM_DatePlayExpires', + '{aeac19e4-89ae-4508-b9b7-bb867abee2ed}/7': 'PKEY_DRM_IsDisabled', + '{afc47170-14f5-498c-8f30-b0d19be449c6}/11': ( + 'PKEY_DeviceInterface_PrinterDriverName'), + '{afd97640-86a3-4210-b67c-289c41aabe55}/2': ( + 'PKEY_Devices_SafeRemovalRequired'), + '{b0b87314-fcf6-4feb-8dff-a50da6af561c}/100': ( + 'PKEY_Contact_BusinessAddressCountry'), + '{b2f9b9d6-fec4-4dd5-94d7-8957488c807b}/2': 'PKEY_FilePlaceholderStatus', + '{b2f9b9d6-fec4-4dd5-94d7-8957488c807b}/3': ( + 'PKEY_StorageProviderFileIdentifier'), + '{b2f9b9d6-fec4-4dd5-94d7-8957488c807b}/4': ( + 'PKEY_StorageProviderFileVersion'), + '{b2f9b9d6-fec4-4dd5-94d7-8957488c807b}/5': ( + 'PKEY_StorageProviderFileChecksum'), + '{b2f9b9d6-fec4-4dd5-94d7-8957488c807b}/6': ( + 'PKEY_StorageProviderFileVersionWaterline'), + '{b2f9b9d6-fec4-4dd5-94d7-8957488c807b}/7': ( + 'PKEY_StorageProviderCallerVersionInformation'), + '{b2f9b9d6-fec4-4dd5-94d7-8957488c807b}/8': 'PKEY_StorageProviderFileFlags', + '{b33af30b-f552-4584-936c-cb93e5cda29f}/100': ( + 'PKEY_Calendar_RequiredAttendeeNames'), + '{b3f8fa53-0004-438e-9003-51a46e139bfc}/5': 'PKEY_SupportFormat_OEMFormat', + '{b3f8fa53-0004-438e-9003-51a46e139bfc}/6': 'PKEY_Endpoint_Name', + '{b5c84c9e-5927-46b5-a3cc-933c21b78469}/100': ( + 'PKEY_Contact_ConnectedServiceName'), + '{b725f130-47ef-101a-a5f1-02608c9eebac}/10': 'PKEY_DisplayName', + '{b725f130-47ef-101a-a5f1-02608c9eebac}/12': 'PKEY_Size', + '{b725f130-47ef-101a-a5f1-02608c9eebac}/13': 'PKEY_FileAttributes', + '{b725f130-47ef-101a-a5f1-02608c9eebac}/14': 'PKEY_DateModified', + '{b725f130-47ef-101a-a5f1-02608c9eebac}/15': 'PKEY_DateCreated', + '{b725f130-47ef-101a-a5f1-02608c9eebac}/16': 'PKEY_DateAccessed', + '{b725f130-47ef-101a-a5f1-02608c9eebac}/18': 'PKEY_FileAllocationSize', + '{b725f130-47ef-101a-a5f1-02608c9eebac}/19': 'PKEY_Search_Contents', + '{b725f130-47ef-101a-a5f1-02608c9eebac}/2': 'PKEY_ItemFolderNameDisplay', + '{b725f130-47ef-101a-a5f1-02608c9eebac}/21': 'PKEY_FileFRN', + '{b725f130-47ef-101a-a5f1-02608c9eebac}/23': 'PKEY_ItemNameSortOverride', + '{b725f130-47ef-101a-a5f1-02608c9eebac}/24': ( + 'PKEY_ItemNameDisplayWithoutExtension'), + '{b725f130-47ef-101a-a5f1-02608c9eebac}/25': 'PKEY_FolderNameDisplay', + '{b725f130-47ef-101a-a5f1-02608c9eebac}/4': 'PKEY_ItemTypeText', + '{b7b4d61c-5a64-4187-a52e-b1539f359099}/2': ( + 'PKEY_Devices_WinPhone8CameraFlags'), + '{b812f15d-c2d8-4bbf-bacd-79744346113f}/100': 'PKEY_Photo_TagViewAggregate', + '{b96eff7b-35ca-4a35-8607-29e3a54c46ea}/100': 'PKEY_IdentityProvider_Name', + '{b9b4b3fc-2b51-4a42-b5d8-324146afcf25}/2': 'PKEY_Link_TargetParsingPath', + '{b9b4b3fc-2b51-4a42-b5d8-324146afcf25}/3': 'PKEY_Link_Status', + '{b9b4b3fc-2b51-4a42-b5d8-324146afcf25}/5': 'PKEY_Link_Comment', + '{b9b4b3fc-2b51-4a42-b5d8-324146afcf25}/8': 'PKEY_Link_TargetSFGAOFlags', + '{ba3b1da9-86ee-4b5d-a2a4-a271a429f0cf}/100': ( + 'PKEY_GPS_DestBearingNumerator'), + '{bc4e71ce-17f9-48d5-bee9-021df0ea5409}/100': ( + 'PKEY_Contact_BusinessAddressPostOfficeBox'), + '{bccc8a3c-8cef-42e5-9b1c-c69079398bc7}/100': 'PKEY_Message_ToDoTitle', + '{bceee283-35df-4d53-826a-f36a3eefc6be}/100': 'PKEY_Search_ContainerHash', + '{be1a72c6-9a1d-46b7-afe7-afaf8cef4999}/100': ( + 'PKEY_Communication_TaskStatus'), + '{be6e176c-4534-4d2c-ace5-31dedac1606b}/100': ( + 'PKEY_GPS_LongitudeDenominator'), + '{bebe0920-7671-4c54-a3eb-49fddfc191ee}/100': 'PKEY_PropGroup_Video', + '{bf53d1c3-49e0-4f7f-8567-5a821d8ac542}/100': ( + 'PKEY_Contact_CallbackTelephone'), + '{bf79c0ab-bb74-4cee-b070-470b5ae202ea}/10': 'PKEY_Devices_Dnssd_Ttl', + '{bf79c0ab-bb74-4cee-b070-470b5ae202ea}/11': ( + 'PKEY_Devices_Dnssd_NetworkAdapterId'), + '{bf79c0ab-bb74-4cee-b070-470b5ae202ea}/12': ( + 'PKEY_Devices_Dnssd_PortNumber'), + '{bf79c0ab-bb74-4cee-b070-470b5ae202ea}/2': ( + 'PKEY_Devices_Dnssd_ServiceName'), + '{bf79c0ab-bb74-4cee-b070-470b5ae202ea}/3': 'PKEY_Devices_Dnssd_Domain', + '{bf79c0ab-bb74-4cee-b070-470b5ae202ea}/4': ( + 'PKEY_Devices_Dnssd_InstanceName'), + '{bf79c0ab-bb74-4cee-b070-470b5ae202ea}/5': 'PKEY_Devices_Dnssd_FullName', + '{bf79c0ab-bb74-4cee-b070-470b5ae202ea}/6': ( + 'PKEY_Devices_Dnssd_TextAttributes'), + '{bf79c0ab-bb74-4cee-b070-470b5ae202ea}/7': 'PKEY_Devices_Dnssd_HostName', + '{bf79c0ab-bb74-4cee-b070-470b5ae202ea}/8': 'PKEY_Devices_Dnssd_Weight', + '{bf79c0ab-bb74-4cee-b070-470b5ae202ea}/9': 'PKEY_Devices_Dnssd_Priority', + '{bfee9149-e3e2-49a7-a862-c05988145cec}/100': 'PKEY_Calendar_IsOnline', + '{c06238b2-0bf9-4279-a723-25856715cb9d}/100': 'PKEY_Photo_GainControlText', + '{c07b4199-e1df-4493-b1e1-de5946fb58f8}/100': 'PKEY_Address_Country', + '{c07b4199-e1df-4493-b1e1-de5946fb58f8}/101': 'PKEY_Address_CountryCode', + '{c07b4199-e1df-4493-b1e1-de5946fb58f8}/102': 'PKEY_Address_Region', + '{c07b4199-e1df-4493-b1e1-de5946fb58f8}/103': 'PKEY_Address_RegionCode', + '{c07b4199-e1df-4493-b1e1-de5946fb58f8}/104': 'PKEY_Address_Town', + '{c0ac206a-827e-4650-95ae-77e2bb74fcc9}/100': 'PKEY_Contact_MailingAddress', + '{c107e191-a459-44c5-9ae6-b952ad4b906d}/100': ( + 'PKEY_Photo_MaxApertureNumerator'), + '{c2ea046e-033c-4e91-bd5b-d4942f6bbe49}/2': 'PKEY_CreatorAppId', + '{c2ea046e-033c-4e91-bd5b-d4942f6bbe49}/3': 'PKEY_CreatorOpenWithUIOptions', + '{c4322503-78ca-49c6-9acc-a68e2afd7b6b}/100': 'PKEY_Identity_UserName', + '{c449d5cb-9ea4-4809-82e8-af9d59ded6d1}/100': 'PKEY_Music_IsCompilation', + '{c4c07f2b-8524-4e66-ae3a-a6235f103beb}/2': ( + 'PKEY_Devices_Notification_LowBattery'), + '{c4c4dbb2-b593-466b-bbda-d03d27d5e43a}/100': 'PKEY_GPS_Longitude', + '{c554493c-c1f7-40c1-a76c-ef8c0614003e}/100': 'PKEY_Contact_TelexNumber', + '{c66d4b3c-e888-47cc-b99f-9dca3ee34dea}/100': 'PKEY_GPS_DestBearing', + '{c75faa05-96fd-49e7-9cb4-9f601082d553}/100': 'PKEY_EndDate', + '{c77724d4-601f-46c5-9b89-c53f93bceb77}/100': ( + 'PKEY_Photo_MaxApertureDenominator'), + '{c89a23d0-7d6d-4eb8-87d4-776a82d493e5}/100': ( + 'PKEY_Contact_HomeAddressState'), + '{c8d1920c-01f6-40c0-ac86-2f3a4ad00770}/100': 'PKEY_GPS_TrackDenominator', + '{c8ea94f0-a9e3-4969-a94b-9c62a95324e0}/100': ( + 'PKEY_Contact_PrimaryAddressCity'), + '{c9944a21-a406-48fe-8225-aec7e24c211b}/10': ( + 'PKEY_PropList_FileOperationPrompt'), + '{c9944a21-a406-48fe-8225-aec7e24c211b}/11': 'PKEY_PropList_ConflictPrompt', + '{c9944a21-a406-48fe-8225-aec7e24c211b}/13': ( + 'PKEY_PropList_ContentViewModeForBrowse'), + '{c9944a21-a406-48fe-8225-aec7e24c211b}/14': ( + 'PKEY_PropList_ContentViewModeForSearch'), + '{c9944a21-a406-48fe-8225-aec7e24c211b}/17': 'PKEY_InfoTipText', + '{c9944a21-a406-48fe-8225-aec7e24c211b}/2': 'PKEY_PropList_FullDetails', + '{c9944a21-a406-48fe-8225-aec7e24c211b}/3': 'PKEY_PropList_TileInfo', + '{c9944a21-a406-48fe-8225-aec7e24c211b}/4': 'PKEY_PropList_InfoTip', + '{c9944a21-a406-48fe-8225-aec7e24c211b}/5': 'PKEY_PropList_QuickTip', + '{c9944a21-a406-48fe-8225-aec7e24c211b}/500': ( + 'PKEY_LayoutPattern_ContentViewModeForBrowse'), + '{c9944a21-a406-48fe-8225-aec7e24c211b}/501': ( + 'PKEY_LayoutPattern_ContentViewModeForSearch'), + '{c9944a21-a406-48fe-8225-aec7e24c211b}/6': 'PKEY_PropList_PreviewTitle', + '{c9944a21-a406-48fe-8225-aec7e24c211b}/8': 'PKEY_PropList_PreviewDetails', + '{c9944a21-a406-48fe-8225-aec7e24c211b}/9': ( + 'PKEY_PropList_ExtendedTileInfo'), + '{c9c141a9-1b4c-4f17-a9d1-f298538cadb8}/2': ( + 'PKEY_Devices_AepService_ServiceId'), + '{c9c141a9-1b4c-4f17-a9d1-f298538cadb8}/5': ( + 'PKEY_Devices_AepService_ProtocolId'), + '{c9c141a9-1b4c-4f17-a9d1-f298538cadb8}/6': 'PKEY_Devices_AepService_AepId', + '{c9c141a9-1b4c-4f17-a9d1-f298538cadb8}/7': ( + 'PKEY_Devices_AepService_ParentAepIsPaired'), + '{c9c34f84-2241-4401-b607-bd20ed75ae7f}/100': ( + 'PKEY_Communication_HeaderItem'), + '{cbf38310-4a17-4310-a1eb-247f0b67593b}/2': ( + 'PKEY_DeviceInterface_Hid_UsagePage'), + '{cbf38310-4a17-4310-a1eb-247f0b67593b}/3': ( + 'PKEY_DeviceInterface_Hid_UsageId'), + '{cbf38310-4a17-4310-a1eb-247f0b67593b}/4': ( + 'PKEY_DeviceInterface_Hid_IsReadOnly'), + '{cbf38310-4a17-4310-a1eb-247f0b67593b}/5': ( + 'PKEY_DeviceInterface_Hid_VendorId'), + '{cbf38310-4a17-4310-a1eb-247f0b67593b}/6': ( + 'PKEY_DeviceInterface_Hid_ProductId'), + '{cbf38310-4a17-4310-a1eb-247f0b67593b}/7': ( + 'PKEY_DeviceInterface_Hid_VersionNumber'), + '{cc301630-b192-4c22-b372-9f4c6d338e07}/100': 'PKEY_PropGroup_General', + '{cc6f4f24-6083-4bd4-8754-674d0de87ab8}/100': 'PKEY_Contact_EmailName', + '{cd102c9c-5540-4a88-a6f6-64e4981c8cd1}/100': 'PKEY_Contact_AssistantName', + '{cd9ed458-08ce-418f-a70e-f912c7bb9c5c}/103': 'PKEY_Message_MessageClass', + '{cdbfc167-337e-41d8-af7c-8c09205429c7}/100': ( + 'PKEY_ApplicationDefinedProperties'), + '{cdedcf30-8919-44df-8f4c-4eb2ffdb8d89}/100': ( + 'PKEY_Photo_ExposureIndexNumerator'), + '{ce50c159-2fb8-41fd-be68-d3e042e274bc}/2': 'PKEY_Sync_HandlerName', + '{ce50c159-2fb8-41fd-be68-d3e042e274bc}/3': 'PKEY_Sync_ItemName', + '{ce50c159-2fb8-41fd-be68-d3e042e274bc}/4': 'PKEY_Sync_ConflictDescription', + '{ce50c159-2fb8-41fd-be68-d3e042e274bc}/6': ( + 'PKEY_Sync_ConflictFirstLocation'), + '{ce50c159-2fb8-41fd-be68-d3e042e274bc}/7': ( + 'PKEY_Sync_ConflictSecondLocation'), + '{cea820b9-ce61-4885-a128-005d9087c192}/100': 'PKEY_GPS_DestLatitudeRef', + '{cf73bb51-3abf-44a2-85e0-9a3dc7a12132}/2': 'PKEY_DrvPkg_Model', + '{cf73bb51-3abf-44a2-85e0-9a3dc7a12132}/3': 'PKEY_DrvPkg_VendorWebSite', + '{cf73bb51-3abf-44a2-85e0-9a3dc7a12132}/4': ( + 'PKEY_DrvPkg_DetailedDescription'), + '{cf73bb51-3abf-44a2-85e0-9a3dc7a12132}/5': 'PKEY_DrvPkg_DocumentationLink', + '{cf73bb51-3abf-44a2-85e0-9a3dc7a12132}/6': 'PKEY_DrvPkg_Icon', + '{cf73bb51-3abf-44a2-85e0-9a3dc7a12132}/7': 'PKEY_DrvPkg_BrandingIcon', + '{cfa31b45-525d-4998-bb44-3f7d81542fa4}/100': 'PKEY_Media_DlnaProfileID', + '{cfc08d97-c6f7-4484-89dd-ebef4356fe76}/100': ( + 'PKEY_Photo_FocalPlaneXResolution'), + '{d042d2a1-927e-40b5-a503-6edbd42a517e}/100': ( + 'PKEY_Contact_PhoneNumbersCanonical'), + '{d04e05a6-594b-4fb6-a80d-01af5eed7d1d}/0': 'PKEY_SYSFX_Association', + '{d04e05a6-594b-4fb6-a80d-01af5eed7d1d}/1': 'PKEY_SYSFX_PreMixClsid', + '{d04e05a6-594b-4fb6-a80d-01af5eed7d1d}/2': 'PKEY_SYSFX_PostMixClsid', + '{d04e05a6-594b-4fb6-a80d-01af5eed7d1d}/3': 'PKEY_SYSFX_UiClsid', + '{d08dd4c0-3a9e-462e-8290-7b636b2576b9}/10': 'PKEY_Devices_PrimaryCategory', + '{d08dd4c0-3a9e-462e-8290-7b636b2576b9}/2': 'PKEY_Devices_InterfacePaths', + '{d08dd4c0-3a9e-462e-8290-7b636b2576b9}/257': 'PKEY_Devices_Status1', + '{d08dd4c0-3a9e-462e-8290-7b636b2576b9}/258': 'PKEY_Devices_Status2', + '{d08dd4c0-3a9e-462e-8290-7b636b2576b9}/259': 'PKEY_Devices_Status', + '{d08dd4c0-3a9e-462e-8290-7b636b2576b9}/3': 'PKEY_Devices_FunctionPaths', + '{d0a04f0a-462a-48a4-bb2f-3706e88dbd7d}/100': 'PKEY_ItemAuthors', + '{d0c7f054-3f72-4725-8527-129a577cb269}/100': 'PKEY_SensitivityText', + '{d0dab0ba-368a-4050-a882-6c010fd19a4f}/100': 'PKEY_PropGroup_Content', + '{d21a7148-d32c-4624-8900-277210f79c0f}/100': ( + 'PKEY_Image_CompressedBitsPerPixelNumerator'), + '{d35f743a-eb2e-47f2-a286-844132cb1427}/100': 'PKEY_Photo_EXIFVersion', + '{d37d52c6-261c-4303-82b3-08b926ac6f12}/100': ( + 'PKEY_Task_BillingInformation'), + '{d4729704-8ef1-43ef-9024-2bd381187fd5}/100': 'PKEY_Contact_Children', + '{d4bf61b3-442e-4ada-882d-fa7b70c832d9}/6': ( + 'PKEY_Devices_Aep_PointOfService_ConnectionTypes'), + '{d4d0aa16-9948-41a4-aa85-d97ff9646993}/100': 'PKEY_ItemParticipants', + '{d55bae5a-3892-417a-a649-c6ac5aaaeab3}/100': ( + 'PKEY_Calendar_OptionalAttendeeAddresses'), + '{d5cdd502-2e9c-101b-9397-08002b2cf9ae}/10': ( + 'PKEY_Document_MultimediaClipCount'), + '{d5cdd502-2e9c-101b-9397-08002b2cf9ae}/14': 'PKEY_Document_Manager', + '{d5cdd502-2e9c-101b-9397-08002b2cf9ae}/15': 'PKEY_Company', + '{d5cdd502-2e9c-101b-9397-08002b2cf9ae}/2': 'PKEY_Category', + '{d5cdd502-2e9c-101b-9397-08002b2cf9ae}/26': 'PKEY_ContentType', + '{d5cdd502-2e9c-101b-9397-08002b2cf9ae}/27': 'PKEY_ContentStatus', + '{d5cdd502-2e9c-101b-9397-08002b2cf9ae}/28': 'PKEY_Language', + '{d5cdd502-2e9c-101b-9397-08002b2cf9ae}/29': 'PKEY_Document_Version', + '{d5cdd502-2e9c-101b-9397-08002b2cf9ae}/3': ( + 'PKEY_Document_PresentationFormat'), + '{d5cdd502-2e9c-101b-9397-08002b2cf9ae}/4': 'PKEY_Document_ByteCount', + '{d5cdd502-2e9c-101b-9397-08002b2cf9ae}/5': 'PKEY_Document_LineCount', + '{d5cdd502-2e9c-101b-9397-08002b2cf9ae}/6': 'PKEY_Document_ParagraphCount', + '{d5cdd502-2e9c-101b-9397-08002b2cf9ae}/7': 'PKEY_Document_SlideCount', + '{d5cdd502-2e9c-101b-9397-08002b2cf9ae}/8': 'PKEY_Document_NoteCount', + '{d5cdd502-2e9c-101b-9397-08002b2cf9ae}/9': ( + 'PKEY_Document_HiddenSlideCount'), + '{d6304e01-f8f5-4f45-8b15-d024a6296789}/100': 'PKEY_Contact_PagerTelephone', + '{d68dbd8a-3374-4b81-9972-3ec30682db3d}/100': 'PKEY_Contact_IMAddress', + '{d6942081-d53b-443d-ad47-5e059d9cd27a}/2': 'PKEY_Shell_SFGAOFlagsStrings', + '{d6942081-d53b-443d-ad47-5e059d9cd27a}/3': ( + 'PKEY_Link_TargetSFGAOFlagsStrings'), + '{d6b5b883-18bd-4b4d-b2ec-9e38affeda82}/2': ( + 'PKEY_Devices_SmartCards_ReaderKind'), + '{d7313ff1-a77a-401c-8c99-3dbdd68add36}/100': 'PKEY_ItemNamePrefix', + '{d7750ee0-c6a4-48ec-b53e-b87b52e6d073}/100': 'PKEY_ImageParsingName', + '{d7b61c70-6323-49cd-a5fc-c84277162c97}/100': ( + 'PKEY_Photo_FlashEnergyDenominator'), + '{d98be98b-b86b-4095-bf52-9d23b2e0a752}/100': 'PKEY_PriorityText', + '{da520e51-f4e9-4739-ac82-02e0a95c9030}/100': ( + 'PKEY_Identity_QualifiedUserName'), + '{da5d0862-6e76-4e1b-babd-70021bd25494}/100': 'PKEY_GPS_Speed', + '{dabd30ed-0043-4789-a7f8-d013a4736622}/100': ( + 'PKEY_ItemFolderPathDisplayNarrow'), + '{dc54fd2e-189d-4871-aa01-08c2f57a4abc}/100': 'PKEY_FlagStatusText', + '{dc5877c7-225f-45f7-bac7-e81334b6130a}/100': ( + 'PKEY_GPS_ImgDirectionNumerator'), + '{dc8f80bd-af1e-4289-85b6-3dfc1b493992}/100': 'PKEY_Message_ConversationID', + '{dc8f80bd-af1e-4289-85b6-3dfc1b493992}/101': ( + 'PKEY_Message_ConversationIndex'), + '{dccb10af-b4e2-4b88-95f9-031b4d5ab490}/100': ( + 'PKEY_Photo_FocalPlaneXResolutionNumerator'), + '{ddd1460f-c0bf-4553-8ce4-10433c908fb0}/100': ( + 'PKEY_Contact_BusinessAddressStreet'), + '{de00de32-547e-4981-ad4b-542f2e9007d8}/100': 'PKEY_PropGroup_Camera', + '{de35258c-c695-4cbc-b982-38b0ad24ced0}/2': 'PKEY_Shell_OmitFromView', + '{de41cc29-6971-4290-b472-f59f2e2f31e2}/100': 'PKEY_Media_DateReleased', + '{de5ef3c7-46e1-484e-9999-62c5308394c1}/100': ( + 'PKEY_Contact_PrimaryAddressPostOfficeBox'), + '{de621b8f-e125-43a3-a32d-5665446d632a}/25': ( + 'PKEY_Security_EncryptionOwners'), + '{dea7c82c-1d89-4a66-9427-a4e3debabcb1}/100': 'PKEY_Journal_Contacts', + '{debda43a-37b3-4383-91e7-4498da2995ab}/1': 'PKEY_WNET_Scope', + '{debda43a-37b3-4383-91e7-4498da2995ab}/2': 'PKEY_WNET_Type', + '{debda43a-37b3-4383-91e7-4498da2995ab}/3': 'PKEY_WNET_DisplayType', + '{debda43a-37b3-4383-91e7-4498da2995ab}/4': 'PKEY_WNET_Usage', + '{debda43a-37b3-4383-91e7-4498da2995ab}/5': 'PKEY_WNET_LocalName', + '{debda43a-37b3-4383-91e7-4498da2995ab}/6': 'PKEY_WNET_RemoteName', + '{debda43a-37b3-4383-91e7-4498da2995ab}/7': 'PKEY_WNET_Comment', + '{debda43a-37b3-4383-91e7-4498da2995ab}/8': 'PKEY_WNET_Provider', + '{deeb2db5-0696-4ce0-94fe-a01f77a45fb5}/102': ( + 'PKEY_Music_ArtistSortOverride'), + '{df975fd3-250a-4004-858f-34e29a3e37aa}/100': 'PKEY_PropGroup_Contact', + '{dfb9a04d-362f-4ca3-b30b-0254b17b5b84}/100': 'PKEY_ParsingBindContext', + '{e08805c8-e395-40df-80d2-54f0d6c43154}/100': 'PKEY_Document_DocumentID', + '{e1277516-2b5f-4869-89b1-2e585bd38b7a}/100': 'PKEY_Photo_LensModel', + '{e13d8975-81c7-4948-ae3f-37cae11e8ff7}/100': ( + 'PKEY_Photo_ShutterSpeedDenominator'), + '{e1a9a38b-6685-46bd-875e-570dc7ad7320}/100': ( + 'PKEY_Photo_ApertureDenominator'), + '{e1d4a09e-d758-4cd1-b6ec-34a8b5a73f80}/100': ( + 'PKEY_Contact_BusinessAddressPostalCode'), + '{e3690a87-0fa8-4a2a-9a9f-fce8827055ac}/100': 'PKEY_PropGroup_Image', + '{e3a7d2c1-80fc-4b40-8f34-30ea111bdc2e}/100': 'PKEY_PropGroup_FileSystem', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/10': 'PKEY_IsRead', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/11': 'PKEY_Importance', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/12': 'PKEY_FlagStatus', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/13': 'PKEY_Message_FromAddress', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/14': 'PKEY_Message_FromName', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/15': 'PKEY_Message_Store', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/16': 'PKEY_Message_ToAddress', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/17': 'PKEY_Message_ToName', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/18': 'PKEY_Contact_WebPage', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/19': 'PKEY_Message_DateSent', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/2': 'PKEY_Message_BccAddress', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/20': 'PKEY_Message_DateReceived', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/21': 'PKEY_Message_AttachmentNames', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/3': 'PKEY_Message_BccName', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/4': 'PKEY_Message_CcAddress', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/5': 'PKEY_Message_CcName', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/6': 'PKEY_ItemFolderPathDisplay', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/7': 'PKEY_ItemPathDisplay', + '{e3e0584c-b788-4a5a-bb20-7f5a44c9acdd}/9': ( + 'PKEY_Communication_AccountName'), + '{e4870e26-3cc5-4cd2-ba46-ca0a9a70ed04}/3': 'PKEY_AudioEngine_OEMFormat', + '{e4f10a3c-49e6-405d-8288-a23bd4eeaa6c}/100': 'PKEY_FileExtension', + '{e53d799d-0f3f-466e-b2ff-74634a3cb7a4}/100': ( + 'PKEY_Contact_PrimaryAddressCountry'), + '{e55fc3b0-2b60-4220-918e-b21e8bf16016}/100': 'PKEY_Identity_UniqueID', + '{e6822fee-8c17-4d62-823c-8e9cfcbd1d5c}/100': ( + 'PKEY_Audio_IsVariableBitRate'), + '{e6ddcaf7-29c5-4f0a-9a68-d19412ec7090}/100': 'PKEY_Photo_LensManufacturer', + '{e7b33238-6584-4170-a5c0-ac25efd9da56}/100': 'PKEY_PropGroup_RecordedTV', + '{e7c3fb29-caa7-4f47-8c8b-be59b330d4c5}/2': 'PKEY_Devices_Aep_ContainerId', + '{e7c3fb29-caa7-4f47-8c8b-be59b330d4c5}/3': 'PKEY_Devices_Aep_CanPair', + '{e8309b6e-084c-49b4-b1fc-90a80331b638}/100': 'PKEY_Photo_PeopleNames', + '{e92a2496-223b-4463-a4e3-30eabba79d80}/100': ( + 'PKEY_Photo_FNumberDenominator'), + '{eaee7f1d-6a33-44d1-9441-5f46def23198}/9': 'PKEY_Device_BIOSVersion', + '{ec0b4191-ab0b-4c66-90b6-c6637cdebbab}/100': ( + 'PKEY_Communication_PolicyTag'), + '{ecf4b6f6-d5a6-433c-bb92-4076650fc890}/100': ( + 'PKEY_GPS_DestLatitudeNumerator'), + '{ecf7f4c9-544f-4d6d-9d98-8ad79adaf453}/100': 'PKEY_GPS_SpeedRef', + '{ed4df2d3-8695-450b-856f-f5c1c53acb66}/100': 'PKEY_GPS_DestDistanceRef', + '{ee3d3d8a-5381-4cfa-b13b-aaf66b5f4ec9}/100': 'PKEY_Photo_WhiteBalance', + '{eec7b761-6f94-41b1-949f-c729720dd13c}/12': ( + 'PKEY_DeviceInterface_PrinterPortName'), + '{ef1167eb-cbfc-4341-a568-a7c91a68982c}/2': ( + 'PKEY_Devices_WiFi_InterfaceGuid'), + '{ef884c5b-2bfe-41bb-aae5-76eedf4f9902}/100': 'PKEY_IsShared', + '{ef884c5b-2bfe-41bb-aae5-76eedf4f9902}/200': 'PKEY_SharedWith', + '{ef884c5b-2bfe-41bb-aae5-76eedf4f9902}/300': 'PKEY_SharingStatus', + '{f04bef95-c585-4197-a2b7-df46fdc9ee6d}/100': 'PKEY_KindText', + '{f0f7984d-222e-4ad2-82ab-1dd8ea40e57e}/300': 'PKEY_TitleSortOverride', + '{f1176dfe-7138-4640-8b4c-ae375dc70a6d}/100': ( + 'PKEY_Contact_PrimaryAddressState'), + '{f18dedf3-337f-42c0-9e03-cee08708a8c3}/100': ( + 'PKEY_Identity_LogonStatusString'), + '{f19f064d-082c-4e27-bc73-6882a1bb8e4c}/0': 'PKEY_AudioEngine_DeviceFormat', + '{f1a24aa7-9ca7-40f6-89ec-97def9ffe8db}/100': 'PKEY_Contact_FileAsName', + '{f1fdb4af-f78c-466c-bb05-56e92db0b8ec}/103': ( + 'PKEY_Music_AlbumArtistSortOverride'), + '{f21d9941-81f0-471a-adee-4e74b49217ed}/100': 'PKEY_ProviderItemID', + '{f2275480-f782-4291-bd94-f13693513aec}/0': 'PKEY_PropList_XPDetailsPanel', + '{f23f425c-71a1-4fa8-922f-678ea4a60408}/100': 'PKEY_IsAttachment', + '{f271c659-7e5e-471f-ba25-7f77b286f836}/100': ( + 'PKEY_Contact_BusinessEmailAddresses'), + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/10': ( + 'PKEY_Document_TotalEditingTime'), + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/11': 'PKEY_Document_DatePrinted', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/12': 'PKEY_Document_DateCreated', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/13': 'PKEY_Document_DateSaved', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/14': 'PKEY_Document_PageCount', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/15': 'PKEY_Document_WordCount', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/16': 'PKEY_Document_CharacterCount', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/17': 'PKEY_Thumbnail', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/18': 'PKEY_ApplicationName', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/19': 'PKEY_Document_Security', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/2': 'PKEY_Title', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/24': 'PKEY_HighKeywords', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/25': 'PKEY_LowKeywords', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/26': 'PKEY_MediumKeywords', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/27': 'PKEY_ThumbnailStream', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/3': 'PKEY_Subject', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/4': 'PKEY_Author', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/5': 'PKEY_Keywords', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/6': 'PKEY_Comment', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/7': 'PKEY_Document_Template', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/8': 'PKEY_Document_LastAuthor', + '{f29f85e0-4ff9-1068-ab91-08002b27b3d9}/9': 'PKEY_Document_RevisionNumber', + '{f334115e-da1b-4509-9b3d-119504dc7abb}/100': 'PKEY_Document_Contributor', + '{f3713ada-90e3-4e11-aae5-fdc17685b9be}/100': 'PKEY_PropGroup_GPS', + '{f3d8f40d-50cb-44a2-9718-40cb9119495d}/100': 'PKEY_Contact_Initials', + '{f6272d18-cecc-40b1-b26a-3911717aa7bd}/100': 'PKEY_Calendar_Location', + '{f628fd8c-7ba8-465a-a65b-c5aa79263a9e}/100': 'PKEY_Photo_MeteringModeText', + '{f7db74b4-4287-4103-afba-f1b13dcd75cf}/100': 'PKEY_ItemDate', + '{f85bf840-a925-4bc2-b0c4-8e36b598679e}/100': 'PKEY_Photo_DigitalZoom', + '{f8d3f6ac-4874-42cb-be59-ab454b30716a}/100': 'PKEY_Sensitivity', + '{f8fa7fa3-d12b-4785-8a4e-691a94f7a3e7}/100': 'PKEY_Contact_EmailAddress', + '{fa303353-b659-4052-85e9-bcac79549b84}/100': 'PKEY_Photo_MakerNote', + '{fa304789-00c7-4d80-904a-1e4dcc7265aa}/100': 'PKEY_Photo_GainControl', + '{fb1de864-e06d-47f4-82a6-8a0aef44493c}/2': ( + 'PKEY_Devices_AudioDevice_SpeechProcessingSupported'), + '{fb3842cd-9e2a-4f83-8fcc-4b0761139ae9}/2': ( + 'PKEY_DeviceInterface_Proximity_SupportsNfc'), + '{fb8d2d7b-90d1-4e34-bf60-6eac09922bbf}/2': 'PKEY_Winx_Hash', + '{fc6976db-8349-4970-ae97-b3c5316a08f0}/100': 'PKEY_Photo_Sharpness', + '{fc9f7306-ff8f-4d49-9fb6-3ffe5c0951ec}/100': 'PKEY_Contact_Department', + '{fcad3d3d-0858-400f-aaa3-2f66cce2a6bc}/100': ( + 'PKEY_Photo_FlashEnergyNumerator'), + '{fcc16823-baed-4f24-9b32-a0982117f7fa}/100': ( + 'PKEY_Identity_PrimaryEmailAddress'), + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/100': ( + 'PKEY_FileOfflineAvailabilityStatus'), + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/101': 'PKEY_FolderKind', + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/103': 'PKEY_SyncTransferStatus', + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/104': 'PKEY_TransferPosition', + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/105': 'PKEY_TransferSize', + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/106': 'PKEY_TransferOrder', + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/107': 'PKEY_LastSyncError', + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/108': 'PKEY_StorageProviderId', + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/109': 'PKEY_StorageProviderError', + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/110': 'PKEY_StorageProviderStatus', + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/111': ( + 'PKEY_StorageProviderShareStatuses'), + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/112': ( + 'PKEY_StorageProviderFileRemoteUri'), + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/113': ( + 'PKEY_CachedFileUpdaterContentIdForStream'), + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/114': ( + 'PKEY_CachedFileUpdaterContentIdForConflictResolution'), + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/115': 'PKEY_RemoteConflictingFile', + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/117': ( + 'PKEY_StorageProviderSharingStatus'), + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/128': 'PKEY_LastSyncWarning', + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/131': 'PKEY_ContentUri', + '{fceff153-e839-4cf3-a9e7-ea22832094b8}/132': 'PKEY_ContentId', + '{fd122953-fa93-4ef7-92c3-04c946b2f7c8}/100': 'PKEY_Music_DisplayArtist', + '{fdf84370-031a-4add-9e91-0d775f1c6605}/100': 'PKEY_MileageInformation', + '{fe83bb35-4d1a-42e2-916b-06f3e1af719e}/100': 'PKEY_Photo_FlashModel', + '{fec690b7-5f30-4646-ae47-4caafba884a3}/100': ( + 'PKEY_Photo_ExposureProgramText'), + '{ff1167eb-cbfc-4341-a568-a7c91a68982c}/2': ( + 'PKEY_Devices_Wwan_InterfaceGuid'), + '{ff962609-b7d6-4999-862d-95180d529aea}/100': ( + 'PKEY_Contact_OtherAddressStreet'), + '{ffae9db7-1c8d-43ff-818c-84403aa3732d}/100': ( + 'PKEY_SourcePackageFamilyName')} diff --git a/scripts/jump_list.py b/scripts/jump_list.py index 0940a6a..c3ddc1c 100755 --- a/scripts/jump_list.py +++ b/scripts/jump_list.py @@ -9,11 +9,17 @@ import logging import sys +import pyfwps +import pyfwsi import pyolecf +from dfdatetime import fat_date_time as dfdatetime_fat_date_time +from dfdatetime import filetime as dfdatetime_filetime + from dtformats import file_system from dtformats import jump_list from dtformats import output_writers +from dtformats import shell_property_keys try: from dtformats import dfvfs_helpers @@ -21,11 +27,435 @@ dfvfs_helpers = None +class StdoutWriter(output_writers.StdoutWriter): + """Stdout output writer.""" + + _LNK_DATA_BLOCK_DESCRIPTIONS = { + 0xa0000001: 'Environment variables location', + 0xa0000002: 'Console properties', + 0xa0000003: 'Distributed link tracker properties', + 0xa0000004: 'Console codepage', + 0xa0000005: 'Special folder location', + 0xa0000006: 'Darwin properties', + 0xa0000007: 'Icon location', + 0xa0000008: 'Shim layer properties', + 0xa0000009: 'Metadata property store', + 0xa000000b: 'Known folder location', + 0xa000000c: 'Shell item identifiers list'} + + def _FormatFATDateTimeValue(self, value): + """Formats a FAT date time value. + + Args: + value (int): FAT date time value. + + Returns: + str: date time string. + """ + if not value: + date_time_string = 'Not set (0)' + else: + date_time = dfdatetime_fat_date_time.FATDateTime(fat_date_time=value) + date_time_string = date_time.CopyToDateTimeString() + if not date_time_string: + date_time_string = f'0x{value:04x}' + + return date_time_string + + def _FormatFiletimeValue(self, value): + """Formats a FILETIME timestamp value. + + Args: + value (int): FILETIME timestamp value. + + Returns: + str: date time string. + """ + if value == 0: + date_time_string = 'Not set (0)' + elif value == 0x7fffffffffffffff: + date_time_string = 'Never (0x7fffffffffffffff)' + else: + date_time = dfdatetime_filetime.Filetime(timestamp=value) + date_time_string = date_time.CopyToDateTimeString() + if date_time_string: + date_time_string = f'{date_time_string:s} UTC' + else: + date_time_string = f'0x{value:08x}' + + return date_time_string + + def _WritePropertyStore(self, fwps_store): + """Writes a property store to stdout. + + Args: + fwps_store (pyfwps.store): property store. + """ + for fwps_set in iter(fwps_store.sets): + for fwps_record in iter(fwps_set.records): + if fwps_record.value_type == 0x0001: + value_string = '' + elif fwps_record.value_type in (0x0003, 0x0013, 0x0014, 0x0015): + value_string = str(fwps_record.get_data_as_integer()) + elif fwps_record.value_type in (0x0008, 0x001e, 0x001f): + value_string = fwps_record.get_data_as_string() + elif fwps_record.value_type == 0x000b: + value_string = str(fwps_record.get_data_as_boolean()) + elif fwps_record.value_type == 0x0040: + filetime = fwps_record.get_data_as_integer() + value_string = self._FormatFiletimeValue(filetime) + elif fwps_record.value_type == 0x0042: + # TODO: add support + value_string = '' + elif fwps_record.value_type & 0xf000 == 0x1000: + # TODO: add support + value_string = '' + else: + raise RuntimeError( + f'Unsupported value type: 0x{fwps_record.value_type:04x}') + + if fwps_record.entry_name: + entry_string = fwps_record.entry_name + else: + entry_string = f'{fwps_record.entry_type:d}' + + property_key = f'{{{fwps_set.identifier:s}}}/{entry_string:s}' + shell_property_key = shell_property_keys.SHELL_PROPERTY_KEYS.get( + property_key, 'Unknown') + self.WriteText( + f'\t\tProperty: {property_key:s} ({shell_property_key:s})\n') + + self.WriteValue( + f'\t\t\tValue (0x{fwps_record.value_type:04x})', value_string) + + def _WriteShellItem(self, fwsi_item): + """Writes a shell item to stdout. + + Args: + fwsi_item (pyfwsi.item): Shell item. + """ + if isinstance(fwsi_item, pyfwsi.control_panel_category): + shell_item_type = 'Control Panel Category' + elif isinstance(fwsi_item, pyfwsi.control_panel_item): + shell_item_type = 'Control Panel Item' + elif isinstance(fwsi_item, pyfwsi.file_entry): + shell_item_type = 'File Entry' + elif isinstance(fwsi_item, pyfwsi.network_location): + shell_item_type = 'Network Location' + elif isinstance(fwsi_item, pyfwsi.root_folder): + shell_item_type = 'Root Folder' + elif isinstance(fwsi_item, pyfwsi.users_property_view): + shell_item_type = 'Users Property View' + elif isinstance(fwsi_item, pyfwsi.volume): + shell_item_type = 'Volume' + else: + shell_item_type = f'Unknown (0x{fwsi_item.class_type:02x})' + + self.WriteValue('\t\t\tItem type', shell_item_type) + + if fwsi_item.delegate_folder_identifier: + self.WriteValue( + '\t\t\tDelegate folder', fwsi_item.delegate_folder_identifier) + + if isinstance(fwsi_item, pyfwsi.control_panel_category): + self._WriteShellItemControlPanelCategory(fwsi_item) + + elif isinstance(fwsi_item, pyfwsi.control_panel_item): + self._WriteShellItemControlPanelItem(fwsi_item) + + elif isinstance(fwsi_item, pyfwsi.file_entry): + self._WriteShellItemFileEntry(fwsi_item) + + elif isinstance(fwsi_item, pyfwsi.network_location): + self._WriteShellItemNetworkLocation(fwsi_item) + + elif isinstance(fwsi_item, pyfwsi.root_folder): + self.WriteValue( + '\t\t\tRoot shell folder identifier', + fwsi_item.shell_folder_identifier) + + elif isinstance(fwsi_item, pyfwsi.users_property_view): + self._WriteShellItemUsersPropertyView(fwsi_item) + + elif isinstance(fwsi_item, pyfwsi.volume): + self._WriteShellItemVolume(fwsi_item) + + if fwsi_item.number_of_extension_blocks: + for index, extension_block in enumerate(fwsi_item.extension_blocks): + display_index = index + 1 + self.WriteText(f'\t\tExtension block: {display_index:d}\n') + + # TODO: print human readable description of signature + self.WriteValue('\t\t\tSignature', f'0x{extension_block.signature:04x}') + + if isinstance(extension_block, pyfwsi.file_entry_extension): + fat_date_time = extension_block.get_creation_time_as_integer() + date_time_string = self._FormatFATDateTimeValue(fat_date_time) + self.WriteValue('\t\t\tCreation time', date_time_string) + + fat_date_time = extension_block.get_access_time_as_integer() + date_time_string = self._FormatFATDateTimeValue(fat_date_time) + self.WriteValue('\t\t\tAccess time', date_time_string) + + self.WriteValue('\t\t\tLong name', extension_block.long_name) + + if extension_block.localized_name: + self.WriteValue( + '\t\t\tLocalized name', extension_block.localized_name) + + file_reference = extension_block.file_reference + if file_reference is not None: + if file_reference > 0x1000000000000: + mft_entry = file_reference & 0xffffffffffff + sequence_number = file_reference >> 48 + file_reference = f'{mft_entry:d}-{sequence_number:d}' + else: + file_reference = f'0x{file_reference:04x}' + + self.WriteValue('\t\t\tFile reference', file_reference) + + # TODO: add support for 0xbeef0000 + # TODO: add support for 0xbeef0019 + # TODO: add support for 0xbeef0025 + + self.WriteText('\n') + + def _WriteShellItemControlPanelCategory(self, fwsi_item): + """Writes a control panel category shell item to stdout. + + Args: + fwsi_item (pyfwsi.item): Shell item. + """ + self.WriteValue( + '\t\t\tControl panel category identifier', f'{fwsi_item.identifier:d}') + + def _WriteShellItemControlPanelItem(self, fwsi_item): + """Writes a control panel item shell item to stdout. + + Args: + fwsi_item (pyfwsi.item): Shell item. + """ + self.WriteValue('\t\t\tControl panel item identifier', fwsi_item.identifier) + + def _WriteShellItemFileEntry(self, fwsi_item): + """Writes a file entry shell item to stdout. + + Args: + fwsi_item (pyfwsi.item): Shell item. + """ + self.WriteValue('\t\t\tFile size', f'{fwsi_item.file_size:d}') + + fat_date_time = fwsi_item.get_modification_time_as_integer() + date_time_string = self._FormatFATDateTimeValue(fat_date_time) + self.WriteValue('\t\t\tModification time', date_time_string) + + self.WriteValue( + '\t\t\tFile attribute flags', + f'0x08{fwsi_item.file_attribute_flags:08x}') + + self.WriteValue('\t\t\tName', fwsi_item.name) + + def _WriteShellItemNetworkLocation(self, fwsi_item): + """Writes a network location shell item to stdout. + + Args: + fwsi_item (pyfwsi.item): Shell item. + """ + self.WriteValue('\t\t\tNetwork location', fwsi_item.location) + + if fwsi_item.description: + self.WriteValue('\t\t\tDescription', fwsi_item.description) + + if fwsi_item.comments: + self.WriteValue('\t\t\tComments', fwsi_item.comments) + + def _WriteShellItemUsersPropertyView(self, fwsi_item): + """Writes an users property view item to stdout. + + Args: + fwsi_item (pyfwsi.item): Shell item. + """ + if fwsi_item.property_store_data: + fwps_store = pyfwps.store() + fwps_store.copy_from_byte_stream(fwsi_item.property_store_data) + + self._WritePropertyStore(fwps_store) + + def _WriteShellItemVolume(self, fwsi_item): + """Writes a volume shell item to stdout. + + Args: + fwsi_item (pyfwsi.item): Shell item. + """ + if fwsi_item.name: + self.WriteValue('\t\t\tVolume name', fwsi_item.name) + + if fwsi_item.identifier: + self.WriteValue('\t\t\tVolume identifier', fwsi_item.identifier) + + if fwsi_item.shell_folder_identifier: + self.WriteValue( + '\t\t\tVolume shell folder identifier', + fwsi_item.shell_folder_identifier) + + def _WriteShortcutDataBlock(self, lnk_data_block): + """Writes a Windows Shortcut data block to stdout. + + Args: + lnk_data_block (pylnk.data_block): Windows Shortcut data block. + """ + description = self._LNK_DATA_BLOCK_DESCRIPTIONS.get( + lnk_data_block.signature, None) + if description: + value_string = f'0x{lnk_data_block.signature:08x} ({description:s})' + else: + value_string = f'0x{lnk_data_block.signature:08x}' + self.WriteValue('\t\tSignature', value_string) + + if lnk_data_block.signature in (0xa0000001, 0xa0000007): + # TODO: handle unpaired surrogates in path string + self.WriteValue('\t\tString', lnk_data_block.path_string) + + elif lnk_data_block.signature == 0xa0000006: + self.WriteValue('\t\tString', lnk_data_block.string) + + elif lnk_data_block.signature == 0xa0000009: + self._WriteShortcutMetadataPropertyStore(lnk_data_block) + + # TODO: print string/location data blocks + # TODO: print distributed link tracker properties + + self.WriteText('\n') + + def _WriteShortcutDataFlags(self, data_flags): + """Writes a Windows Shortcut data flags to stdout. + + Args: + data_flags (int): Windows Shortcut data flags. + """ + if data_flags & 0x00000001: + self.WriteText('\t\tContains a link target identifier\n') + + if data_flags & 0x00000004: + self.WriteText('\t\tContains a description string\n') + if data_flags & 0x00000008: + self.WriteText('\t\tContains a relative path string\n') + if data_flags & 0x00000010: + self.WriteText('\t\tContains a working directory string\n') + if data_flags & 0x00000020: + self.WriteText('\t\tContains a command line arguments string\n') + if data_flags & 0x00000040: + self.WriteText('\t\tContains an icon location string\n') + + if data_flags & 0x00000200: + self.WriteText('\t\tContains an environment variables block\n') + + if data_flags & 0x00004000: + self.WriteText('\t\tContains an icon location block\n') + + if data_flags & 0x00040000: + self.WriteText('\t\tContains no distributed link tracking data block\n') + + def _WriteShortcutLinkInformation(self, lnk_file): + """Writes a Windows Shortcut link information to stdout. + + Args: + lnk_file (pylnk.file): Windows Shortcut file. + """ + self.WriteText('\tLink information:\n') + + filetime = lnk_file.get_file_creation_time_as_integer() + date_time_string = self._FormatFiletimeValue(filetime) + self.WriteValue('\t\tCreation time', date_time_string) + + filetime = lnk_file.get_file_modification_time_as_integer() + date_time_string = self._FormatFiletimeValue(filetime) + self.WriteValue('\t\tModification time', date_time_string) + + filetime = lnk_file.get_file_access_time_as_integer() + date_time_string = self._FormatFiletimeValue(filetime) + self.WriteValue('\t\tAccesss time', date_time_string) + + self.WriteValue('\t\tFile size', f'{lnk_file.file_size:d}') + self.WriteValue('\t\tIcon index', f'{lnk_file.icon_index:d}') + self.WriteValue( + '\t\tShow Window value', f'0x{lnk_file.show_window_value:08x}') + self.WriteValue('\t\tHot Key value', f'{lnk_file.hot_key_value:d}') + + self.WriteValue( + '\t\tFile attribute flags', f'0x{lnk_file.file_attribute_flags:08x}') + # TODO: print human readable descriptions of file attribute flags. + + self.WriteValue('\t\tDescription', lnk_file.description or '') + self.WriteValue('\t\tRelative path', lnk_file.relative_path or '') + self.WriteValue('\t\tWorking directory', lnk_file.working_directory or '') + self.WriteValue('\t\tIcon location', lnk_file.icon_location or '') + + self.WriteText('\n') + + def _WriteShortcutLinkTargetIdentifier(self, lnk_file): + """Writes a Windows Shortcut link target identifier to stdout. + + Args: + lnk_file (pylnk.file): Windows Shortcut file. + """ + if lnk_file.link_target_identifier_data: + self.WriteText('\tLink target identifier:\n') + + fwsi_item_list = pyfwsi.item_list() + fwsi_item_list.copy_from_byte_stream( + lnk_file.link_target_identifier_data) + + self.WriteText('\t\tShell item list:\n') + self.WriteValue('\t\t\tNumber of items', fwsi_item_list.number_of_items) + self.WriteText('\n') + + for item_index, fwsi_item in enumerate(fwsi_item_list.items): + display_item_index = item_index + 1 + self.WriteText(f'\t\tShell item: {display_item_index:d}\n') + + self._WriteShellItem(fwsi_item) + + def _WriteShortcutMetadataPropertyStore(self, lnk_data_block): + """Writes a Windows Shortcut metadata property store to stdout. + + Args: + lnk_data_block (pylnk.data_block): Windows Shortcut data block. + """ + fwps_store = pyfwps.store() + fwps_store.copy_from_byte_stream(lnk_data_block.data) + + self._WritePropertyStore(fwps_store) + + def WriteShortcut(self, lnk_file): + """Writes a Windows Shortcut file to stdout. + + Args: + lnk_file (pylnk.file): Windows Shortcut file. + """ + self.WriteText('\tWindows Shortcut information:\n') + + self._WriteShortcutDataFlags(lnk_file.data_flags) + + self.WriteValue('\tNumber of data blocks', lnk_file.number_of_data_blocks) + + self.WriteText('\n') + + self._WriteShortcutLinkInformation(lnk_file) + self._WriteShortcutLinkTargetIdentifier(lnk_file) + + for data_block_index, lnk_data_block in enumerate(lnk_file.data_blocks): + display_data_block_index = data_block_index + 1 + self.WriteText(f'\tData block: {display_data_block_index:d}\n') + + self._WriteShortcutDataBlock(lnk_data_block) + + def Main(): - """The main program function. + """Entry point of console script to parse Windows Jump List files. Returns: - bool: True if successful or False if not. + int: exit code that is provided to sys.exit(). """ argument_parser = argparse.ArgumentParser(description=( 'Extracts information from Windows Jump List files.')) @@ -51,7 +481,7 @@ def Main(): if not file_system_helper: print('No supported file system found in storage media image.') print('') - return False + return 1 else: if not options.source: @@ -59,24 +489,24 @@ def Main(): print('') argument_parser.print_help() print('') - return False + return 1 file_system_helper = file_system.NativeFileSystemHelper() - output_writer = output_writers.StdoutWriter() + output_writer = StdoutWriter() try: output_writer.Open() except IOError as exception: print(f'Unable to open output writer with error: {exception!s}') print('') - return False + return 1 file_object = file_system_helper.OpenFileByPath(options.source) if not file_object: print('Unable to open source file.') print('') - return False + return 1 try: is_olecf = pyolecf.check_file_signature_file_object(file_object) @@ -96,43 +526,25 @@ def Main(): jump_list_entries = list(jump_list_file.GetJumpListEntries()) - print('Windows Jump List information:') + output_writer.WriteText('Windows Jump List information:\n') number_of_entries = len(jump_list_entries) - print(f'Number of entries:\t\t{number_of_entries:d}') + output_writer.WriteValue('Number of entries', f'{number_of_entries:d}') - print('') + output_writer.WriteText('\n') - for jump_list_entry in jump_list_entries: - print(f'Entry: {jump_list_entry.identifier:s}') + for entry_index, jump_list_entry in enumerate(jump_list_entries): + display_entry_index = entry_index + 1 + output_writer.WriteText(f'Entry: {display_entry_index:d}\n') - print_header = True - for shell_item in jump_list_entry.GetShellItems(): - if print_header: - print('\tShell items:') - print_header = False - - print(f'\t\t0x{shell_item.class_type:02x}') - - print_header = True - for format_identifier, property_record in jump_list_entry.GetProperties(): - if print_header: - print('\tProperties:') - print_header = False - - print(f'\t\t{{{format_identifier:s}}}/{property_record.entry_type:d}') - - print('') + output_writer.WriteShortcut(jump_list_entry.lnk_file) jump_list_file.Close() output_writer.Close() - return True + return 0 if __name__ == '__main__': - if not Main(): - sys.exit(1) - else: - sys.exit(0) + sys.exit(Main())