diff --git a/.gitignore b/.gitignore index 378eac25..8ff27885 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ build +/venv/ +/test/*.t.err diff --git a/README.markdown b/README.markdown index 3b88fcae..97e2d729 100644 --- a/README.markdown +++ b/README.markdown @@ -73,4 +73,3 @@ The makefile in the root folder will make all utilities. ### hdutil cd hdiutil make - diff --git a/dmg/CMakeLists.txt b/dmg/CMakeLists.txt index 36f6bb65..f6df8fec 100644 --- a/dmg/CMakeLists.txt +++ b/dmg/CMakeLists.txt @@ -1,4 +1,4 @@ -INCLUDE(FindOpenSSL) +# INCLUDE(FindOpenSSL) INCLUDE(FindZLIB) INCLUDE(FindBZip2) @@ -16,7 +16,7 @@ link_directories(${BZIP2_LIBRARIES}) link_directories(${PROJECT_BINARY_DIR}/common ${PROJECT_BINARY_DIR}/hfs) -add_library(dmg adc.c checksum.c dmgfile.c dmglib.c filevault.c io.c partition.c resources.c udif.c ../includes/dmg/adc.h ../includes/dmg/dmg.h ../includes/dmg/dmgfile.h ../includes/dmg/dmglib.h ../includes/dmg/filevault.h) +add_library(dmg adc.c attribution.c checksum.c dmgfile.c dmglib.c filevault.c io.c partition.c resources.c udif.c ../includes/dmg/adc.h ../includes/dmg/attribution.h ../includes/dmg/dmg.h ../includes/dmg/dmgfile.h ../includes/dmg/dmglib.h ../includes/dmg/filevault.h) IF(OPENSSL_FOUND) add_definitions(-DHAVE_CRYPT) diff --git a/dmg/attribution.c b/dmg/attribution.c new file mode 100644 index 00000000..ca8d21e6 --- /dev/null +++ b/dmg/attribution.c @@ -0,0 +1,354 @@ +#include +#include // For crc32_combine. +#include "abstractfile.h" +#include "common.h" +#include +#include + +typedef struct AttributionPreservingSentinelData { + char* sentinel; + + ChecksumToken beforeRaw_UncompressedChkToken; + ChecksumToken raw_UncompressedChkToken; + ChecksumToken afterRaw_UncompressedChkToken; + int64_t beforeRaw_UncompressedLength; + // -1 if sentinel (raw block) not yet seen. + int64_t raw_UncompressedLength; + int64_t afterRaw_UncompressedLength; + + ChecksumToken beforeRaw_CompressedChkToken; + ChecksumToken raw_CompressedChkToken; + ChecksumToken afterRaw_CompressedChkToken; + int64_t beforeRaw_CompressedLength; + // -1 if sentinel (raw block) not yet seen. + int64_t raw_CompressedLength; + int64_t afterRaw_CompressedLength; +} AttributionPreservingSentinelData; + +char const * +FindStrInBuf(char const * buf, size_t bufLen, char const * str) +{ + size_t index = 0; + while (index < bufLen) { + char const * result = strstr(buf + index, str); + if (result) { + return result; + } + while ((buf[index] != '\0') && (index < bufLen)) { + index++; + } + index++; + } + return NULL; +} + +enum ShouldKeepRaw sentinelShouldKeepRaw(AbstractAttribution* attribution, const void* data, size_t len, const void* nextData, size_t nextLen) { + AttributionPreservingSentinelData* attributionData = (AttributionPreservingSentinelData*)attribution->data; + if (NULL != FindStrInBuf((char const*)data, len, (const char*)attributionData->sentinel)) { + return KeepCurrentRaw; + } + + // If we didn't find it in the data, check if it spans data + nextData + if (nextLen > 0) { + char* combinedData = malloc(len + nextLen); + memcpy(combinedData, data, len); + memcpy(combinedData + len, nextData, nextLen); + if (NULL != FindStrInBuf((char const*)combinedData, len + nextLen, (const char*)attributionData->sentinel)) { + return KeepCurrentAndNextRaw; + } + } + + return KeepNoneRaw; +} + +void sentinelBeforeMainBlkx(AbstractAttribution* attribution, AbstractFile* abstractOut, ChecksumToken* dataForkToken) { + + AttributionPreservingSentinelData* attributionData = (AttributionPreservingSentinelData*)attribution->data; + memcpy(&attributionData->beforeRaw_CompressedChkToken, dataForkToken, sizeof(ChecksumToken)); + attributionData->beforeRaw_CompressedLength = abstractOut->tell(abstractOut); +} + +void sentinelObserveBuffers(AbstractAttribution* attribution, int didKeepRaw, const void* uncompressedData, size_t uncompressedLen, const void* compressedData, size_t compressedLen) { + AttributionPreservingSentinelData* attributionData = (AttributionPreservingSentinelData*)attribution->data; + + if (didKeepRaw == KeepCurrentRaw || didKeepRaw == KeepCurrentAndNextRaw) { + // If this is our first time in, we need to set up `raw_*` and `afterRaw*` + // from scratch. + if (attributionData->afterRaw_UncompressedLength < 0) { + // Just in case. + memset(&attributionData->raw_UncompressedChkToken, 0, sizeof(ChecksumToken)); + memset(&attributionData->raw_CompressedChkToken, 0, sizeof(ChecksumToken)); + + CRCProxy(&attributionData->raw_UncompressedChkToken, uncompressedData, uncompressedLen); + attributionData->raw_UncompressedLength = uncompressedLen; + printf("Adding to raw_UncompressedChkToken, now CRC32: %x, length: %llx\n", attributionData->raw_UncompressedChkToken.crc, attributionData->raw_UncompressedLength); + + // Of course, the compressed data *should* be the uncompressed data. + CRCProxy(&attributionData->raw_CompressedChkToken, compressedData, compressedLen); + attributionData->raw_CompressedLength = compressedLen; + printf("Adding to raw_CompressedChkToken, now CRC32: %x, length: %llx\n", attributionData->raw_CompressedChkToken.crc, attributionData->raw_CompressedLength); + + attributionData->afterRaw_UncompressedLength = 0; + attributionData->afterRaw_CompressedLength = 0; + // Just in case. + memset(&attributionData->afterRaw_UncompressedChkToken, 0, sizeof(ChecksumToken)); + memset(&attributionData->afterRaw_CompressedChkToken, 0, sizeof(ChecksumToken)); + } + // If this is our second time through, we just need to update the `raw*` values. + else { + CRCProxy(&attributionData->raw_UncompressedChkToken, uncompressedData, uncompressedLen); + attributionData->raw_UncompressedLength += uncompressedLen; + printf("Appending to raw_UncompressedChkToken, now CRC32: %x, length: %llx\n", attributionData->raw_UncompressedChkToken.crc, attributionData->raw_UncompressedLength); + + CRCProxy(&attributionData->raw_CompressedChkToken, compressedData, compressedLen); + attributionData->raw_CompressedLength += compressedLen; + printf("Appending to raw_CompressedChkToken, now CRC32: %x, length: %llx\n", attributionData->raw_CompressedChkToken.crc, attributionData->raw_CompressedLength); + } + } else { + if (attributionData->afterRaw_UncompressedLength < 0) { + CRCProxy(&attributionData->beforeRaw_UncompressedChkToken, uncompressedData, uncompressedLen); + attributionData->beforeRaw_UncompressedLength += uncompressedLen; + printf("Adding to beforeRaw_UncompressedChkToken, now CRC32: %x, length: %llx\n", attributionData->beforeRaw_UncompressedChkToken.crc, attributionData->beforeRaw_UncompressedLength); + } else { + CRCProxy(&attributionData->afterRaw_UncompressedChkToken, uncompressedData, uncompressedLen); + attributionData->afterRaw_UncompressedLength += uncompressedLen; + printf("Adding to afterRaw_UncompressedChkToken, now CRC32: %x, length: %llx\n", attributionData->afterRaw_UncompressedChkToken.crc, attributionData->afterRaw_UncompressedLength); + } + + if (attributionData->afterRaw_CompressedLength < 0) { + CRCProxy(&attributionData->beforeRaw_CompressedChkToken, compressedData, compressedLen); + attributionData->beforeRaw_CompressedLength += compressedLen; + printf("Adding to beforeRaw_CompressedChkToken, now CRC32: %x, length: %llx\n", attributionData->beforeRaw_CompressedChkToken.crc, attributionData->beforeRaw_CompressedLength); + } else { + CRCProxy(&attributionData->afterRaw_CompressedChkToken, compressedData, compressedLen); + attributionData->afterRaw_CompressedLength += compressedLen; + printf("Adding to afterRaw_CompressedChkToken, now CRC32: %x, length: %llx\n", attributionData->afterRaw_CompressedChkToken.crc, attributionData->afterRaw_CompressedLength); + } + } +} + +void sentinelAfterMainBlkx(AbstractAttribution* attribution, AbstractFile* abstractOut, ChecksumToken* dataForkToken, AttributionResource* attributionResource) { + AttributionPreservingSentinelData* data = attribution->data; + + // Sentinels no longer make sense. + if (data->raw_UncompressedLength < 0) { + data->raw_UncompressedLength = 0; + } + if (data->afterRaw_UncompressedLength < 0) { + data->afterRaw_UncompressedLength = 0; + } + if (data->raw_CompressedLength < 0) { + data->raw_CompressedLength = 0; + } + if (data->afterRaw_CompressedLength < 0) { + data->afterRaw_CompressedLength = 0; + } + + printf("\n"); + printf("data->beforeRaw_UncompressedChkToken CRC32: 0x%x, length: 0x%llx\n", data->beforeRaw_UncompressedChkToken.crc, data->beforeRaw_UncompressedLength); + printf("data->raw_UncompressedChkToken CRC32: 0x%x, length: 0x%llx\n", data->raw_UncompressedChkToken.crc, data->raw_UncompressedLength); + printf("data->afterRaw_UncompressedChkToken CRC32: 0x%x, length: 0x%llx\n", data->afterRaw_UncompressedChkToken.crc, data->afterRaw_UncompressedLength); + + printf("uncompressed combined CRC32: 0x%lx\n", + crc32_combine(crc32_combine(data->beforeRaw_UncompressedChkToken.crc, data->raw_UncompressedChkToken.crc, data->raw_UncompressedLength), + data->afterRaw_UncompressedChkToken.crc, data->afterRaw_UncompressedLength)); + + printf("\n"); + printf("data->beforeRaw_CompressedChkToken CRC32: 0x%x, length: 0x%llx\n", data->beforeRaw_CompressedChkToken.crc, data->beforeRaw_CompressedLength); + printf("data->raw_CompressedChkToken CRC32: 0x%x, length: 0x%llx\n", data->raw_CompressedChkToken.crc, data->raw_CompressedLength); + printf("data->afterRaw_CompressedChkToken CRC32: 0x%x, length: 0x%llx\n", data->afterRaw_CompressedChkToken.crc, data->afterRaw_CompressedLength); + + printf("compressed combined CRC32: 0x%lx\n\n", + crc32_combine(crc32_combine(data->beforeRaw_CompressedChkToken.crc, data->raw_CompressedChkToken.crc, data->raw_CompressedLength), + data->afterRaw_CompressedChkToken.crc, data->afterRaw_CompressedLength)); + + // Update attribution metadata. + attributionResource->signature = ATTR_SIGNATURE; + attributionResource->version = 1; + + attributionResource->beforeCompressedLength = data->beforeRaw_CompressedLength; + attributionResource->beforeCompressedChecksum = data->beforeRaw_CompressedChkToken.crc; + attributionResource->beforeUncompressedLength = data->beforeRaw_UncompressedLength; + attributionResource->beforeUncompressedChecksum = data->beforeRaw_UncompressedChkToken.crc; + + attributionResource->rawPos = data->beforeRaw_CompressedLength; + attributionResource->rawLength = data->raw_CompressedLength; + attributionResource->rawChecksum = data->raw_CompressedChkToken.crc; + + attributionResource->afterCompressedLength = data->afterRaw_CompressedLength; + attributionResource->afterCompressedChecksum = data->afterRaw_CompressedChkToken.crc; + attributionResource->afterUncompressedLength = data->afterRaw_UncompressedLength; + attributionResource->afterUncompressedChecksum = data->afterRaw_UncompressedChkToken.crc; + + printf("sentinelAfterMainBlkx: %d, 0x%llx, 0x%llx\n", attributionResource->version, attributionResource->rawPos, attributionResource->rawLength); +} + +AbstractAttribution* createAbstractAttributionPreservingSentinel(const char* sentinel) { + AbstractAttribution* attribution; + attribution = (AbstractAttribution*) malloc(sizeof(AbstractAttribution)); + + AttributionPreservingSentinelData* data = malloc(sizeof(AttributionPreservingSentinelData)); + memset(data, 0, sizeof(AttributionPreservingSentinelData)); + data->sentinel = malloc(strlen(sentinel)); + strcpy(data->sentinel, sentinel); + data->raw_UncompressedLength = -1; + data->afterRaw_UncompressedLength = -1; + data->raw_CompressedLength = -1; + data->afterRaw_CompressedLength = -1; + + attribution->data = data; + attribution->beforeMainBlkx = sentinelBeforeMainBlkx; + attribution->shouldKeepRaw = sentinelShouldKeepRaw; + attribution->observeBuffers = sentinelObserveBuffers; + attribution->afterMainBlkx = sentinelAfterMainBlkx; + return attribution; +} + +uint32_t calculateMasterChecksum(ResourceKey* resources); + +int updateAttribution(AbstractFile* abstractIn, AbstractFile* abstractOut, const char* anchor, const char* data, size_t dataLen) +{ + // In an `attributable` DMG file: + // - read `attribution` resource + // - update bytes in BZ_RAW block in place + // - update checksum: there's a UDIF checksum (34 bytes?) in + // each dict, which is part of a Base64 encoded struct. We + // can Base64 decode to bytes, swizzle the 4 bytes of the + // checksum, and then Base64 encode back to the same number of + // bytes. + // - update data fork checksum (compressed) + // - update master checksum (uncompressed) + + off_t fileLength; + UDIFResourceFile resourceFile; + + ResourceData* curData; + + fileLength = abstractIn->getLength(abstractIn); + abstractIn->seek(abstractIn, fileLength - sizeof(UDIFResourceFile)); + readUDIFResourceFile(abstractIn, &resourceFile); + + char* resourceXML; + + resourceXML = malloc(resourceFile.fUDIFXMLLength + 1); + ASSERT( abstractIn->seek(abstractIn, (off_t)(resourceFile.fUDIFXMLOffset)) == 0, "fseeko" ); + ASSERT( abstractIn->read(abstractIn, resourceXML, (size_t)resourceFile.fUDIFXMLLength) == (size_t)resourceFile.fUDIFXMLLength, "fread" ); + resourceXML[resourceFile.fUDIFXMLLength] = 0; + + ResourceKey* resources; + resources = readResources(resourceXML, resourceFile.fUDIFXMLLength, true); + ResourceKey* resource = getResourceByKey(resources, "plst"); + unsigned char* mine = (unsigned char*)(resource->data->name); + AttributionResource* attributionResource = (AttributionResource*)(resource->data->name); + + ASSERT(attributionResource->signature == ATTR_SIGNATURE, "bad attr signature!"); + ASSERT(attributionResource->version == 1, "only version 1 recognized"); + + printf("attribution: at 0x%llx, 0x%llx bytes\n", + attributionResource->rawPos, + attributionResource->rawLength); + + // Step 1. Replace bytes at anchor. + ASSERT(abstractIn->seek(abstractIn, 0) == 0, "seek in"); + size_t inLength = abstractIn->getLength(abstractIn); + while (1) { + unsigned char buffer[8192]; + size_t readLength = abstractIn->read(abstractIn, buffer, 8192); + ASSERT(readLength == abstractOut->write(abstractOut, buffer, readLength), "write copy"); + if (readLength < 8192) { + break; + } + } + + ASSERT(abstractIn->seek(abstractIn, attributionResource->rawPos) == 0, "seek in"); + char* rawBuffer = malloc(attributionResource->rawLength); + ASSERT(rawBuffer, "malloc rawBuffer"); + ASSERT(abstractIn->read(abstractIn, rawBuffer, attributionResource->rawLength) == attributionResource->rawLength, "read raw in"); + + printf("Looking for anchor: '%s'\n", anchor); + + const char* rawAnchor = FindStrInBuf((const char*)rawBuffer, attributionResource->rawLength, anchor); + ASSERT(rawAnchor, "anchor position"); + + int64_t anchorOffset = rawAnchor - rawBuffer; + printf("anchorOffset: 0x%llx\n", anchorOffset); + + ASSERT(rawAnchor + dataLen <= rawBuffer + attributionResource->rawLength, "data too long!"); + // Zero out the anchor area, in case the data is shorter than the anchor + // Note that we're taking the strlen of `rawAnchor` and not the `anchor` + // passed in. This ensures that the entire anchor is zero'ed, even if only + // a prefix of it was provided. + memset((void *)rawAnchor, 0, strlen(rawAnchor)); + // Copy the new data into the same spot the anchor was in + memcpy((void *)rawAnchor, data, dataLen); + + // Write the new block. + ASSERT(abstractOut->seek(abstractOut, attributionResource->rawPos) == 0, "seek out"); + ASSERT(abstractOut->write(abstractOut, rawBuffer, attributionResource->rawLength) == attributionResource->rawLength, "write data"); + + // New block checksum. + ChecksumToken newRawToken; + memset(&newRawToken, 0, sizeof(ChecksumToken)); + CRCProxy(&newRawToken, (unsigned char*)rawBuffer, attributionResource->rawLength); + + free(rawBuffer); + + // Step 2: update "attribution" resource. + attributionResource->rawChecksum = newRawToken.crc; + + // Step 3. Update blkx checksum. + + // TODO: check ranges of all the partitions and runs to be sure we're identifying the correct file system. + int partNum = -1; + ResourceData* blkxData = NULL; + if(partNum < 0) { + blkxData = getResourceByKey(resources, "blkx")->data; + while(blkxData != NULL) { + if(strstr(blkxData->name, "Apple_HFS") != NULL) { + break; + } + blkxData = blkxData->next; + } + } else { + blkxData = getDataByID(getResourceByKey(resources, "blkx"), partNum); + } + + ASSERT(blkxData, "blkxData"); + + BLKXTable* blkx = (BLKXTable*)(blkxData->data); + blkx->checksum.data[0] = + crc32_combine(crc32_combine(attributionResource->beforeUncompressedChecksum, newRawToken.crc, attributionResource->rawLength), + attributionResource->afterUncompressedChecksum, attributionResource->afterUncompressedLength); + + ASSERT( abstractOut->seek(abstractOut, (off_t)(resourceFile.fUDIFXMLOffset)) == 0, "fseeko" ); + writeResources(abstractOut, resources, true); + + // Step 4. Update koly block checksums. + + resourceFile.fUDIFDataForkChecksum.type = CHECKSUM_UDIF_CRC32; + resourceFile.fUDIFDataForkChecksum.bitness = checksumBitness(CHECKSUM_UDIF_CRC32); + resourceFile.fUDIFDataForkChecksum.data[0] = + crc32_combine(crc32_combine(attributionResource->beforeCompressedChecksum, newRawToken.crc, attributionResource->rawLength), + attributionResource->afterCompressedChecksum, attributionResource->afterCompressedLength); + + resourceFile.fUDIFMasterChecksum.type = CHECKSUM_UDIF_CRC32; + resourceFile.fUDIFMasterChecksum.bitness = checksumBitness(CHECKSUM_UDIF_CRC32); + resourceFile.fUDIFMasterChecksum.data[0] = calculateMasterChecksum(resources); + printf("Master checksum: %x\n", resourceFile.fUDIFMasterChecksum.data[0]); fflush(stdout); + + printf("Writing out UDIF resource file...\n"); fflush(stdout); + + writeUDIFResourceFile(abstractOut, &resourceFile); + + printf("Cleaning up...\n"); fflush(stdout); + + releaseResources(resources); + + abstractIn->close(abstractIn); + + printf("Done\n"); fflush(stdout); + + abstractOut->close(abstractOut); + + return TRUE; +} diff --git a/dmg/dmg.c b/dmg/dmg.c index 8c29d69c..8b44198f 100644 --- a/dmg/dmg.c +++ b/dmg/dmg.c @@ -22,7 +22,7 @@ int buildInOut(const char* source, const char* dest, AbstractFile** in, Abstract return FALSE; } - *out = createAbstractFileFromFile(fopen(dest, "wb")); + *out = createAbstractFileFromFile(strcmp(dest, "-") == 0 ? stdout : fopen(dest, "wb")); if(!(*out)) { (*in)->close(*in); printf("cannot open destination: %s\n", dest); @@ -41,7 +41,7 @@ int main(int argc, char* argv[]) { TestByteOrder(); if(argc < 4) { - printf("usage: %s [extract|build|build2048|res|iso|dmg] (-k ) (partition)\n", argv[0]); + printf("usage: %s [extract|build|build2048|res|iso|dmg|attribute] (-k ) (partition)\n", argv[0]); return 0; } @@ -72,16 +72,21 @@ int main(int argc, char* argv[]) { } extractDmg(in, out, partNum); } else if(strcmp(argv[1], "build") == 0) { - buildDmg(in, out, SECTOR_SIZE); + buildDmg(in, out, SECTOR_SIZE, argc > 4 ? argv[4] : NULL); } else if(strcmp(argv[1], "build2048") == 0) { - buildDmg(in, out, 2048); + buildDmg(in, out, 2048, NULL); } else if(strcmp(argv[1], "res") == 0) { outResources(in, out); } else if(strcmp(argv[1], "iso") == 0) { convertToISO(in, out); } else if(strcmp(argv[1], "dmg") == 0) { convertToDMG(in, out); + } else if(strcmp(argv[1], "attribute") == 0) { + if(argc < 6) { + printf("Not enough arguments: attribute "); + } + updateAttribution(in, out, argv[4], argv[5], strlen(argv[5])); } - + return 0; } diff --git a/dmg/dmgfile.c b/dmg/dmgfile.c index 88440ebb..77171656 100644 --- a/dmg/dmgfile.c +++ b/dmg/dmgfile.c @@ -209,7 +209,7 @@ io_func* openDmgFile(AbstractFile* abstractIn) { ASSERT( abstractIn->read(abstractIn, dmg->resourceXML, (size_t)dmg->resourceFile.fUDIFXMLLength) == (size_t)dmg->resourceFile.fUDIFXMLLength, "fread" ); dmg->resourceXML[dmg->resourceFile.fUDIFXMLLength] = 0; - dmg->resources = readResources(dmg->resourceXML, dmg->resourceFile.fUDIFXMLLength); + dmg->resources = readResources(dmg->resourceXML, dmg->resourceFile.fUDIFXMLLength, true); dmg->numBLKX = 0; blkx = (getResourceByKey(dmg->resources, "blkx"))->data; diff --git a/dmg/dmglib.c b/dmg/dmglib.c index 56aaad50..3900421d 100644 --- a/dmg/dmglib.c +++ b/dmg/dmglib.c @@ -1,6 +1,7 @@ #include #include "common.h" #include "abstractfile.h" +#include #include #include @@ -87,7 +88,7 @@ uint32_t calculateMasterChecksum(ResourceKey* resources) { return result; } -int buildDmg(AbstractFile* abstractIn, AbstractFile* abstractOut, unsigned int BlockSize) { +int buildDmg(AbstractFile* abstractIn, AbstractFile* abstractOut, unsigned int BlockSize, const char* sentinel) { io_func* io; Volume* volume; @@ -147,15 +148,32 @@ int buildDmg(AbstractFile* abstractIn, AbstractFile* abstractOut, unsigned int B printf("Writing main data blkx...\n"); fflush(stdout); abstractIn->seek(abstractIn, 0); + + AbstractAttribution* attribution = NULL; + if (sentinel) { + attribution = createAbstractAttributionPreservingSentinel(sentinel); + } + + if (attribution) { + attribution->beforeMainBlkx(attribution, abstractOut, &dataForkToken); + } + blkx = insertBLKX(abstractOut, abstractIn, USER_OFFSET, (volumeHeader->totalBlocks * volumeHeader->blockSize)/SECTOR_SIZE, - pNum, CHECKSUM_UDIF_CRC32, &BlockSHA1CRC, &uncompressedToken, &CRCProxy, &dataForkToken, volume, 0); + pNum, CHECKSUM_UDIF_CRC32, &BlockSHA1CRC, &uncompressedToken, &CRCProxy, &dataForkToken, volume, 0, attribution); + + AttributionResource attributionResource; + memset(&attributionResource, 0, sizeof(AttributionResource)); + + if (attribution) { + attribution->afterMainBlkx(attribution, abstractOut, &dataForkToken, &attributionResource); + } blkx->checksum.data[0] = uncompressedToken.crc; printf("Inserting main blkx...\n"); fflush(stdout); char pName[100]; sprintf(pName, "Mac_OS_X (Apple_HFSX : %d)", pNum + 1); - resources = insertData(resources, "blkx", pNum, pName, (const char*) blkx, sizeof(BLKXTable) + (blkx->blocksRunCount * sizeof(BLKXRun)), ATTRIBUTE_HDIUTIL); + resources = insertData(resources, "blkx", pNum, pName, 0, false, (const char*) blkx, sizeof(BLKXTable) + (blkx->blocksRunCount * sizeof(BLKXRun)), ATTRIBUTE_HDIUTIL); free(blkx); printf("Inserting cSum data...\n"); fflush(stdout); @@ -164,7 +182,7 @@ int buildDmg(AbstractFile* abstractIn, AbstractFile* abstractOut, unsigned int B csum.type = CHECKSUM_MKBLOCK; csum.checksum = uncompressedToken.block; - resources = insertData(resources, "cSum", 2, "", (const char*) (&csum), sizeof(csum), 0); + resources = insertData(resources, "cSum", 2, "", 0, false, (const char*) (&csum), sizeof(csum), 0); printf("Inserting nsiz data\n"); fflush(stdout); @@ -209,14 +227,14 @@ int buildDmg(AbstractFile* abstractIn, AbstractFile* abstractOut, unsigned int B curResource = curResource->next; releaseNSiz(nsiz); - curResource->next = makePlst(); + curResource->next = makePlst((const char*) (&attributionResource), sizeof(attributionResource), true); curResource = curResource->next; curResource->next = makeSize(volumeHeader); curResource = curResource->next; plistOffset = abstractOut->tell(abstractOut); - writeResources(abstractOut, resources); + writeResources(abstractOut, resources, true); plistSize = abstractOut->tell(abstractOut) - plistOffset; printf("Generating UDIF metadata...\n"); fflush(stdout); @@ -353,17 +371,17 @@ int convertToDMG(AbstractFile* abstractIn, AbstractFile* abstractOut) { abstractIn->seek(abstractIn, partitions[i].pmPyPartStart * BlockSize); blkx = insertBLKX(abstractOut, abstractIn, partitions[i].pmPyPartStart, partitions[i].pmPartBlkCnt, i, CHECKSUM_UDIF_CRC32, - &BlockCRC, &uncompressedToken, &CRCProxy, &dataForkToken, NULL, 0); + &BlockCRC, &uncompressedToken, &CRCProxy, &dataForkToken, NULL, 0, NULL); blkx->checksum.data[0] = uncompressedToken.crc; - resources = insertData(resources, "blkx", i, partitionName, (const char*) blkx, sizeof(BLKXTable) + (blkx->blocksRunCount * sizeof(BLKXRun)), ATTRIBUTE_HDIUTIL); + resources = insertData(resources, "blkx", i, partitionName, 0, false, (const char*) blkx, sizeof(BLKXTable) + (blkx->blocksRunCount * sizeof(BLKXRun)), ATTRIBUTE_HDIUTIL); free(blkx); memset(&csum, 0, sizeof(CSumResource)); csum.version = 1; csum.type = CHECKSUM_MKBLOCK; csum.checksum = uncompressedToken.block; - resources = insertData(resources, "cSum", i, "", (const char*) (&csum), sizeof(csum), 0); + resources = insertData(resources, "cSum", i, "", 0, false, (const char*) (&csum), sizeof(csum), 0); if(nsiz == NULL) { nsiz = myNSiz = (NSizResource*) malloc(sizeof(NSizResource)); @@ -394,16 +412,16 @@ int convertToDMG(AbstractFile* abstractIn, AbstractFile* abstractOut) { abstractIn->seek(abstractIn, 0); blkx = insertBLKX(abstractOut, abstractIn, 0, fileLength/SECTOR_SIZE, ENTIRE_DEVICE_DESCRIPTOR, CHECKSUM_UDIF_CRC32, - &BlockCRC, &uncompressedToken, &CRCProxy, &dataForkToken, NULL, 0); + &BlockCRC, &uncompressedToken, &CRCProxy, &dataForkToken, NULL, 0, NULL); blkx->checksum.data[0] = uncompressedToken.crc; - resources = insertData(resources, "blkx", 0, "whole disk (unknown partition : 0)", (const char*) blkx, sizeof(BLKXTable) + (blkx->blocksRunCount * sizeof(BLKXRun)), ATTRIBUTE_HDIUTIL); + resources = insertData(resources, "blkx", 0, "whole disk (unknown partition : 0)", 0, false, (const char*) blkx, sizeof(BLKXTable) + (blkx->blocksRunCount * sizeof(BLKXRun)), ATTRIBUTE_HDIUTIL); free(blkx); memset(&csum, 0, sizeof(CSumResource)); csum.version = 1; csum.type = CHECKSUM_MKBLOCK; csum.checksum = uncompressedToken.block; - resources = insertData(resources, "cSum", 0, "", (const char*) (&csum), sizeof(csum), 0); + resources = insertData(resources, "cSum", 0, "", 0, false, (const char*) (&csum), sizeof(csum), 0); if(nsiz == NULL) { nsiz = myNSiz = (NSizResource*) malloc(sizeof(NSizResource)); @@ -433,11 +451,13 @@ int convertToDMG(AbstractFile* abstractIn, AbstractFile* abstractOut) { curResource = curResource->next; releaseNSiz(nsiz); - curResource->next = makePlst(); + curResource->next = makePlst("", 0, false); curResource = curResource->next; plistOffset = abstractOut->tell(abstractOut); - writeResources(abstractOut, resources); + // Note: Passing false here means that attribution data is not preserved through + // a `dmg convert` operation. + writeResources(abstractOut, resources, false); plistSize = abstractOut->tell(abstractOut) - plistOffset; printf("Generating UDIF metadata...\n"); fflush(stdout); diff --git a/dmg/io.c b/dmg/io.c index 8f7cff34..3df57934 100644 --- a/dmg/io.c +++ b/dmg/io.c @@ -6,6 +6,7 @@ #include #include +#include #include #define SECTORS_AT_A_TIME 0x200 @@ -23,7 +24,7 @@ BLKXTable* insertBLKX(AbstractFile* out, AbstractFile* in, uint32_t firstSectorNumber, uint32_t numSectors, uint32_t blocksDescriptor, uint32_t checksumType, ChecksumFunc uncompressedChk, void* uncompressedChkToken, ChecksumFunc compressedChk, - void* compressedChkToken, Volume* volume, int addComment) { + void* compressedChkToken, Volume* volume, int addComment, AbstractAttribution* attribution) { BLKXTable* blkx; uint32_t roomForRuns; @@ -31,6 +32,7 @@ BLKXTable* insertBLKX(AbstractFile* out, AbstractFile* in, uint32_t firstSectorN uint64_t curSector; unsigned char* inBuffer; + unsigned char* nextInBuffer; unsigned char* outBuffer; size_t bufferSize; size_t have; @@ -65,6 +67,7 @@ BLKXTable* insertBLKX(AbstractFile* out, AbstractFile* in, uint32_t firstSectorN bufferSize = SECTOR_SIZE * blkx->decompressBufferRequested; ASSERT(inBuffer = (unsigned char*) malloc(bufferSize), "malloc"); + ASSERT(nextInBuffer = (unsigned char*) malloc(bufferSize), "malloc"); ASSERT(outBuffer = (unsigned char*) malloc(bufferSize), "malloc"); curRun = 0; @@ -72,6 +75,12 @@ BLKXTable* insertBLKX(AbstractFile* out, AbstractFile* in, uint32_t firstSectorN uint64_t startOff = in->tell(in); + enum ShouldKeepRaw keepRaw = KeepNoneRaw; + // We never want the iOS-specific tweaks when building attributable DMGs. + if (attribution) { + ASSERT(!addComment, "No attribution with addComment!"); + } + if(addComment) { blkx->runs[curRun].type = BLOCK_COMMENT; @@ -93,7 +102,6 @@ BLKXTable* insertBLKX(AbstractFile* out, AbstractFile* in, uint32_t firstSectorN roomForRuns <<= 1; blkx = (BLKXTable*) realloc(blkx, sizeof(BLKXTable) + (roomForRuns * sizeof(BLKXRun))); } - blkx->runs[curRun].type = BLOCK_BZIP2; blkx->runs[curRun].reserved = 0; blkx->runs[curRun].sectorStart = curSector; @@ -104,7 +112,8 @@ BLKXTable* insertBLKX(AbstractFile* out, AbstractFile* in, uint32_t firstSectorN strm.bzfree = Z_NULL; strm.opaque = Z_NULL; - int amountRead; + int amountRead = 0; + int nextAmountRead = 0; { size_t sectorsToSkip = 0; size_t processed = 0; @@ -114,9 +123,16 @@ BLKXTable* insertBLKX(AbstractFile* out, AbstractFile* in, uint32_t firstSectorN blkx->runs[curRun].sectorCount = ((numSectors - processed) > SECTORS_AT_A_TIME) ? SECTORS_AT_A_TIME : (numSectors - processed); //printf("Currently at %" PRId64 "\n", curOff); - in->seek(in, startOff + (blkx->sectorCount - numSectors + processed) * SECTOR_SIZE); + off_t sectorStart = startOff + (blkx->sectorCount - numSectors + processed) * SECTOR_SIZE; + in->seek(in, sectorStart); ASSERT((amountRead = in->read(in, inBuffer, blkx->runs[curRun].sectorCount * SECTOR_SIZE)) == (blkx->runs[curRun].sectorCount * SECTOR_SIZE), "mRead"); + if (numSectors - blkx->runs[curRun].sectorCount > 0) { + // No need to rewind `inBuffer` because the next iteration of the loop + // calls `seek` anyways. + nextAmountRead = in->read(in, nextInBuffer, blkx->runs[curRun].sectorCount * SECTOR_SIZE); + } + if(!addComment) break; @@ -202,6 +218,27 @@ BLKXTable* insertBLKX(AbstractFile* out, AbstractFile* in, uint32_t firstSectorN strm.avail_in = amountRead; strm.next_in = (char*)inBuffer; + if (attribution) { + // We either haven't found the sentinel value yet, or are already past it. + // Either way, keep searching. + if (keepRaw == KeepNoneRaw) { + keepRaw = attribution->shouldKeepRaw(attribution, inBuffer, amountRead, nextInBuffer, nextAmountRead); + } + // KeepCurrentAndNextRaw means that the *previous* time through the loop `shouldKeepRaw` + // found the sentinel string, and that it crosses two runs. The previous + // loop already kept its run raw, and so must we. We don't want the _next_ run + // to also be raw though, so we adjust this appropriately. + // Note that KeepCurrentRaw will switch to KeepNoneRaw further down, when we've + // set the run raw. + else if (keepRaw == KeepCurrentAndNextRaw) { + keepRaw = KeepCurrentRaw; + } + else if (keepRaw == KeepCurrentRaw) { + keepRaw = KeepRemainingRaw; + } + printf("keepRaw = %d (%p, %d)\n", keepRaw, inBuffer, amountRead); + } + if(uncompressedChk) (*uncompressedChk)(uncompressedChkToken, inBuffer, blkx->runs[curRun].sectorCount * SECTOR_SIZE); @@ -217,20 +254,35 @@ BLKXTable* insertBLKX(AbstractFile* out, AbstractFile* in, uint32_t firstSectorN } have = bufferSize - strm.avail_out; - if((have / SECTOR_SIZE) >= (blkx->runs[curRun].sectorCount - 15)) { + if(keepRaw == KeepCurrentRaw || keepRaw == KeepCurrentAndNextRaw || ((have / SECTOR_SIZE) >= (blkx->runs[curRun].sectorCount - 15))) { + printf("Setting type = BLOCK_RAW\n"); blkx->runs[curRun].type = BLOCK_RAW; ASSERT(out->write(out, inBuffer, blkx->runs[curRun].sectorCount * SECTOR_SIZE) == (blkx->runs[curRun].sectorCount * SECTOR_SIZE), "fwrite"); blkx->runs[curRun].compLength += blkx->runs[curRun].sectorCount * SECTOR_SIZE; + if(compressedChk) (*compressedChk)(compressedChkToken, inBuffer, blkx->runs[curRun].sectorCount * SECTOR_SIZE); + if (attribution) { + // In a raw block, uncompressed and compressed data is identical. + attribution->observeBuffers(attribution, keepRaw, + inBuffer, blkx->runs[curRun].sectorCount * SECTOR_SIZE, + inBuffer, blkx->runs[curRun].sectorCount * SECTOR_SIZE); + } } else { ASSERT(out->write(out, outBuffer, have) == have, "fwrite"); if(compressedChk) (*compressedChk)(compressedChkToken, outBuffer, have); + if (attribution) { + // In a bzip2 block, uncompressed and compressed data are not the same. + attribution->observeBuffers(attribution, keepRaw, + inBuffer, amountRead, + outBuffer, have); + } + blkx->runs[curRun].compLength += have; } diff --git a/dmg/partition.c b/dmg/partition.c index b1e79bc4..8b6fecd8 100644 --- a/dmg/partition.c +++ b/dmg/partition.c @@ -514,13 +514,13 @@ int writeDriverDescriptorMap(int pNum, AbstractFile* file, DriverDescriptorRecor bufferFile = createAbstractFileFromMemory((void**)&buffer, DDM_SIZE * BlockSize); blkx = insertBLKX(file, bufferFile, DDM_OFFSET, DDM_SIZE, DDM_DESCRIPTOR, CHECKSUM_UDIF_CRC32, &CRCProxy, &uncompressedToken, - dataForkChecksum, dataForkToken, NULL, 0); + dataForkChecksum, dataForkToken, NULL, 0, NULL); blkx->checksum.data[0] = uncompressedToken.crc; char pName[100]; sprintf(pName, "Driver Descriptor Map (DDM : %d)", pNum + 1); - *resources = insertData(*resources, "blkx", pNum, pName, (const char*) blkx, sizeof(BLKXTable) + (blkx->blocksRunCount * sizeof(BLKXRun)), ATTRIBUTE_HDIUTIL); + *resources = insertData(*resources, "blkx", pNum, pName, 0, false, (const char*) blkx, sizeof(BLKXTable) + (blkx->blocksRunCount * sizeof(BLKXRun)), ATTRIBUTE_HDIUTIL); free(buffer); bufferFile->close(bufferFile); @@ -552,7 +552,7 @@ int writeApplePartitionMap(int pNum, AbstractFile* file, Partition* partitions, bufferFile = createAbstractFileFromMemory((void**)&buffer, realPartitionSize); blkx = insertBLKX(file, bufferFile, PARTITION_OFFSET * BlockSize / SECTOR_SIZE, realPartitionSize / SECTOR_SIZE, pNum, CHECKSUM_UDIF_CRC32, - &BlockCRC, &uncompressedToken, dataForkChecksum, dataForkToken, NULL, 0); + &BlockCRC, &uncompressedToken, dataForkChecksum, dataForkToken, NULL, 0, NULL); bufferFile->close(bufferFile); @@ -564,8 +564,8 @@ int writeApplePartitionMap(int pNum, AbstractFile* file, Partition* partitions, char pName[100]; sprintf(pName, "Apple (Apple_partition_map : %d)", pNum + 1); - *resources = insertData(*resources, "blkx", pNum, pName, (const char*) blkx, sizeof(BLKXTable) + (blkx->blocksRunCount * sizeof(BLKXRun)), ATTRIBUTE_HDIUTIL); - *resources = insertData(*resources, "cSum", 0, "", (const char*) (&csum), sizeof(csum), 0); + *resources = insertData(*resources, "blkx", pNum, pName, 0, false, (const char*) blkx, sizeof(BLKXTable) + (blkx->blocksRunCount * sizeof(BLKXRun)), ATTRIBUTE_HDIUTIL); + *resources = insertData(*resources, "cSum", 0, "", 0, false, (const char*) (&csum), sizeof(csum), 0); nsiz = (NSizResource*) malloc(sizeof(NSizResource)); memset(nsiz, 0, sizeof(NSizResource)); @@ -606,12 +606,12 @@ int writeATAPI(int pNum, AbstractFile* file, unsigned int BlockSize, ChecksumFun if(BlockSize != SECTOR_SIZE) { blkx = insertBLKX(file, bufferFile, ATAPI_OFFSET, BlockSize / SECTOR_SIZE, pNum, CHECKSUM_UDIF_CRC32, - &BlockCRC, &uncompressedToken, dataForkChecksum, dataForkToken, NULL, 0); + &BlockCRC, &uncompressedToken, dataForkChecksum, dataForkToken, NULL, 0, NULL); } else { blkx = insertBLKX(file, bufferFile, ATAPI_OFFSET, ATAPI_SIZE, pNum, CHECKSUM_UDIF_CRC32, - &BlockCRC, &uncompressedToken, dataForkChecksum, dataForkToken, NULL, 0); + &BlockCRC, &uncompressedToken, dataForkChecksum, dataForkToken, NULL, 0, NULL); } bufferFile->close(bufferFile); @@ -625,8 +625,8 @@ int writeATAPI(int pNum, AbstractFile* file, unsigned int BlockSize, ChecksumFun char pName[100]; sprintf(pName, "Macintosh (Apple_Driver_ATAPI : %d)", pNum + 1); - *resources = insertData(*resources, "blkx", pNum, pName, (const char*) blkx, sizeof(BLKXTable) + (blkx->blocksRunCount * sizeof(BLKXRun)), ATTRIBUTE_HDIUTIL); - *resources = insertData(*resources, "cSum", 1, "", (const char*) (&csum), sizeof(csum), 0); + *resources = insertData(*resources, "blkx", pNum, pName, 0, false, (const char*) blkx, sizeof(BLKXTable) + (blkx->blocksRunCount * sizeof(BLKXRun)), ATTRIBUTE_HDIUTIL); + *resources = insertData(*resources, "cSum", 1, "", 0, false, (const char*) (&csum), sizeof(csum), 0); nsiz = (NSizResource*) malloc(sizeof(NSizResource)); memset(nsiz, 0, sizeof(NSizResource)); @@ -835,7 +835,7 @@ int writeFreePartition(int pNum, AbstractFile* outFile, uint32_t offset, uint32_ char pName[100]; sprintf(pName, " (Apple_Free : %d)", pNum + 1); - *resources = insertData(*resources, "blkx", pNum, pName, (const char*) blkx, sizeof(BLKXTable) + (blkx->blocksRunCount * sizeof(BLKXRun)), ATTRIBUTE_HDIUTIL); + *resources = insertData(*resources, "blkx", pNum, pName, 0, false, (const char*) blkx, sizeof(BLKXTable) + (blkx->blocksRunCount * sizeof(BLKXRun)), ATTRIBUTE_HDIUTIL); free(blkx); return pNum + 1; diff --git a/dmg/resources.c b/dmg/resources.c index 4945b48b..ab0e652e 100644 --- a/dmg/resources.c +++ b/dmg/resources.c @@ -122,6 +122,24 @@ static void flipCSumResource(unsigned char* data, char out) { FLIPENDIANLE(cSum->checksum); } +static void flipAttributionResource(unsigned char* data, char out) { + AttributionResource* attribution; + attribution = (AttributionResource*) data; + + FLIPENDIANLE(attribution->signature); + FLIPENDIANLE(attribution->version); + FLIPENDIANLE(attribution->rawPos); + FLIPENDIANLE(attribution->rawLength); + FLIPENDIANLE(attribution->rawChecksum); + FLIPENDIANLE(attribution->beforeCompressedChecksum); + FLIPENDIANLE(attribution->beforeCompressedLength); + FLIPENDIANLE(attribution->beforeUncompressedChecksum); + FLIPENDIANLE(attribution->beforeUncompressedLength); + FLIPENDIANLE(attribution->afterCompressedChecksum); + FLIPENDIANLE(attribution->afterCompressedLength); + FLIPENDIANLE(attribution->afterUncompressedChecksum); + FLIPENDIANLE(attribution->afterUncompressedLength); +} static void flipBLKXRun(BLKXRun* data) { BLKXRun* run; @@ -286,7 +304,47 @@ static unsigned char* getXMLData(char** location, size_t *dataLength, char** enc return toReturn; } -static void readResourceData(ResourceData* data, char** location, char* xmlStart, FlipDataFunc flipData) { +static unsigned char* getXMLPlstName(char** location, size_t *dataLength, char** encodedStart, size_t* encodedLength) { + char* curLoc; + char* tagEnd; + char* encodedData; + unsigned char* toReturn; + size_t strLen; + + curLoc = *location; + + curLoc = strstr(curLoc, ""); + if(!curLoc) + return NULL; + curLoc += sizeof("") - 1; + + if (encodedStart) + *encodedStart = curLoc; + + tagEnd = strstr(curLoc, ""); + + + strLen = (size_t)(tagEnd - curLoc); + + if (encodedLength) + *encodedLength = strLen; + + encodedData = (char*) malloc(strLen + 1); + memcpy(encodedData, curLoc, strLen); + encodedData[strLen] = '\0'; + + curLoc = tagEnd + sizeof("") - 1; + + *location = curLoc; + + toReturn = decodeBase64(encodedData, dataLength); + + free(encodedData); + + return toReturn; +} + +static void readResourceData(ResourceData* data, char** location, char* xmlStart, FlipDataFunc flipData, const unsigned char* key, bool plstNameIsAttribution) { char* curLoc; char* tagBegin; char* tagEnd; @@ -332,7 +390,16 @@ static void readResourceData(ResourceData* data, char** location, char* xmlStart sscanf(buffer, "%d", &(data->id)); free(buffer); } else if(strncmp(tagBegin, "Name", strLen) == 0) { - data->name = getXMLString(&curLoc); + if (strcmp((char*) key, "plst") == 0 && plstNameIsAttribution) { + char *nameEncodedStart; + size_t nameXmlSize; + size_t nameLength; + unsigned char* attributionFromName = getXMLPlstName(&curLoc, &nameLength, &nameEncodedStart, &nameXmlSize); + data->name = attributionFromName; + flipAttributionResource(data->name, 0); + } else { + data->name = getXMLString(&curLoc); + } } } @@ -552,7 +619,7 @@ void outResources(AbstractFile* file, AbstractFile* out) out->close(out); } -ResourceKey* readResources(char* xml, size_t length) { +ResourceKey* readResources(char* xml, size_t length, bool plstNameIsAttribution) { char* curLoc; char* tagEnd; size_t strLen; @@ -636,7 +703,7 @@ ResourceKey* readResources(char* xml, size_t length) { curData->next = NULL; - readResourceData(curData, &curLoc, xml, curResource->flipData); + readResourceData(curData, &curLoc, xml, curResource->flipData, curResource->key, plstNameIsAttribution); curLoc = strstr(curLoc, ""); } @@ -646,7 +713,7 @@ ResourceKey* readResources(char* xml, size_t length) { return toReturn; } -static void writeResourceData(AbstractFile* file, ResourceData* data, ResourceKey* curResource, FlipDataFunc flipData, int tabLength) { +static void writeResourceData(AbstractFile* file, ResourceData* data, ResourceKey* curResource, FlipDataFunc flipData, int tabLength, bool plstNameIsAttribution) { unsigned char* dataBuf; char* tabs; int i; @@ -677,13 +744,23 @@ static void writeResourceData(AbstractFile* file, ResourceData* data, ResourceKe abstractFilePrint(file, "%s\t\n", tabs); abstractFilePrint(file, "%s\tID\n%s\t%d\n", tabs, tabs, data->id); - abstractFilePrint(file, "%s\tName\n%s\t%s\n", tabs, tabs, data->name); + if (strcmp((char*) curResource->key, "plst") == 0 && plstNameIsAttribution) { + unsigned char* nameBuf = (unsigned char*) malloc(sizeof(AttributionResource)); + memcpy(nameBuf, data->name, sizeof(AttributionResource)); + flipAttributionResource(nameBuf, 1); + abstractFilePrint(file, "%s\tName\n%s\t\n", tabs, tabs); + writeBase64(file, nameBuf, sizeof(AttributionResource), tabLength + 1, 43); + abstractFilePrint(file, "%s\t\n", tabs); + } + else { + abstractFilePrint(file, "%s\tName\n%s\t%s\n", tabs, tabs, data->name); + } abstractFilePrint(file, "%s\n", tabs); free(tabs); } -void writeResources(AbstractFile* file, ResourceKey* resources) { +void writeResources(AbstractFile* file, ResourceKey* resources, bool plstNameIsAttribution) { ResourceKey* curResource; ResourceData* curData; @@ -695,7 +772,7 @@ void writeResources(AbstractFile* file, ResourceKey* resources) { abstractFilePrint(file, "\t\t%s\n\t\t\n", curResource->key); curData = curResource->data; while(curData != NULL) { - writeResourceData(file, curData, curResource, curResource->flipData, 3); + writeResourceData(file, curData, curResource, curResource->flipData, 3, plstNameIsAttribution); curData = curData->next; } abstractFilePrint(file, "\t\t\n", curResource->key); @@ -769,11 +846,11 @@ ResourceData* getDataByID(ResourceKey* resource, int id) { return NULL; } -ResourceKey* insertData(ResourceKey* resources, const char* key, int id, const char* name, const char* data, size_t dataLength, uint32_t attributes) { +ResourceKey* insertData(ResourceKey* resources, const char* key, int id, const char* name, size_t nameLength, bool nameAsData, const char* data, size_t dataLength, uint32_t attributes) { ResourceKey* curResource; ResourceKey* lastResource; ResourceData* curData; - + lastResource = resources; curResource = resources; while(curResource != NULL) { @@ -836,8 +913,14 @@ ResourceKey* insertData(ResourceKey* resources, const char* key, int id, const c curData->attributes = attributes; curData->dataLength = dataLength; curData->id = id; - curData->name = (char*) malloc(strlen(name) + 1); - strcpy((char*) curData->name, name); + if (nameAsData) { + curData->name = (unsigned char*) malloc(nameLength); + memcpy(curData->name, name, nameLength); + } + else { + curData->name = (char*) malloc(strlen(name) + 1); + strcpy((char*) curData->name, name); + } curData->data = (unsigned char*) malloc(dataLength); memcpy(curData->data, data, dataLength); @@ -854,8 +937,8 @@ ResourceKey* insertData(ResourceKey* resources, const char* key, int id, const c } } -ResourceKey* makePlst() { - return insertData(NULL, "plst", 0, "", plstData, sizeof(plstData), ATTRIBUTE_HDIUTIL); +ResourceKey* makePlst(const char* name, size_t nameLength, bool nameAsData) { + return insertData(NULL, "plst", 0, name, nameLength, nameAsData, plstData, sizeof(plstData), ATTRIBUTE_HDIUTIL); } ResourceKey* makeSize(HFSPlusVolumeHeader* volumeHeader) { @@ -872,6 +955,6 @@ ResourceKey* makeSize(HFSPlusVolumeHeader* volumeHeader) { size.sizePresent = 1; printf("making size data\n"); - return insertData(NULL, "size", 2, "", (const char*)(&size), sizeof(SizeResource), 0); + return insertData(NULL, "size", 2, "", 0, false, (const char*)(&size), sizeof(SizeResource), 0); } diff --git a/docs/attribution.md b/docs/attribution.md new file mode 100644 index 00000000..4ab9d484 --- /dev/null +++ b/docs/attribution.md @@ -0,0 +1,37 @@ +# Attribution + +`hfsplus hfsplus in.hfs setattr ` +- sets an extended attribute on `file` with the given key and value + +`dmg build in.hfs out.dmg ` +- arrange for the one (or two) blocks that the sentinel spans to be BZ_RAW +- writes out `AttributionResource` in the `Name` key of the `plst` resource + +`dmg attribute in.dmg out.dmg ` +N.b. attribute shouldn't parse the DMG, it should operate on bytestream +- read `attribution` resource +- update bytes in BZ_RAW block in place +- update checksum +- update data fork checksum (compressed) +- update master checksum (uncompressed) + +# Testing + +The gold standard is to create two HFS filesystems, both with the same +xattr but with distinct values, and build attributable DMGs with the +same sentinel (a prefix of the distinct values, say). + +See the `*_reference.t` tests for [Cram](https://pypi.org/project/cram/) +tests that generate such HFS and DMG files. + +See the other tests for tests that exercise `dmg build` and `dmg +attribute`. + +## Future + +It would be nice to add a command to convert an existing DMG file to +an attributable one, like: + +`dmg attributable ` +- arrange for the one (or two) blocks that the sentinel spans to be BZ_RAW +- writes out `AttributionResource` in the `Name` key of the `plst` resource diff --git a/hfs/hfs.c b/hfs/hfs.c index 1eea018e..93c806e7 100644 --- a/hfs/hfs.c +++ b/hfs/hfs.c @@ -236,7 +236,7 @@ void cmd_getattr(Volume* volume, int argc, const char *argv[]) { HFSPlusCatalogRecord* record; if(argc < 3) { - printf("Not enough arguments"); + printf("Not enough arguments: getattr "); return; } @@ -262,7 +262,60 @@ void cmd_getattr(Volume* volume, int argc, const char *argv[]) { } else { printf("No such file or directory\n"); } - + + free(record); +} + +void cmd_setattr(Volume* volume, int argc, const char *argv[]) { + HFSPlusCatalogRecord* record; + + if(argc < 4) { + printf("Not enough arguments: setattr "); + return; + } + + record = getRecordFromPath(argv[1], volume, NULL, NULL); + + if(record != NULL) { + HFSCatalogNodeID id; + uint8_t* data; + size_t size; + if(record->recordType == kHFSPlusFileRecord) + id = ((HFSPlusCatalogFile*)record)->fileID; + else + id = ((HFSPlusCatalogFolder*)record)->folderID; + + // Note: this doesn't handle embedded nulls, string encodings, etc. + size_t dataLen = strlen(argv[3]); + if (dataLen == 0) { + // Handle the empty string gracefully. + dataLen = 1; + } + if((dataLen & 0x1) == 0x1) { + // HFS record sizes must be even. Pad the given data with one 0 to + // maintain this invariant. Note that macOS `xattr` appears to do + // this silently. + dataLen += 1; + } + data = malloc(sizeof(uint8_t) * (dataLen)); + memset(data, 0, dataLen); + strcpy((char*) data, argv[3]); + + ASSERT(setAttribute(volume, id, argv[2], data, dataLen), "setAttribute"); + } else { + printf("No such file or directory\n"); + } + + if(record->recordType == kHFSPlusFolderRecord) { + ((HFSPlusCatalogFolder*)record)->flags |= kHFSHasAttributesMask; + } else if(record->recordType == kHFSPlusFileRecord) { + ((HFSPlusCatalogFile*)record)->flags |= kHFSHasAttributesMask; + } else { + printf("unknown record type %x\n", record->recordType); + } + + updateCatalog(volume, record); + free(record); } @@ -329,12 +382,20 @@ int main(int argc, const char *argv[]) { cmd_grow(volume, argc - 2, argv + 2); } else if(strcmp(argv[2], "getattr") == 0) { cmd_getattr(volume, argc - 2, argv + 2); + } else if(strcmp(argv[2], "setattr") == 0) { + cmd_setattr(volume, argc - 2, argv + 2); } else if(strcmp(argv[2], "debug") == 0) { if(argc > 3 && strcmp(argv[3], "verbose") == 0) { debugBTree(volume->catalogTree, TRUE); } else { debugBTree(volume->catalogTree, FALSE); } + } else if(strcmp(argv[2], "debugattrs") == 0) { + if(argc > 3 && strcmp(argv[3], "verbose") == 0) { + debugBTree(volume->attrTree, TRUE); + } else { + debugBTree(volume->attrTree, FALSE); + } } } diff --git a/hfs/xattr.c b/hfs/xattr.c index 77f53441..8392483e 100644 --- a/hfs/xattr.c +++ b/hfs/xattr.c @@ -75,6 +75,7 @@ static BTKey* attrKeyRead(off_t offset, io_func* io) { return NULL; FLIPENDIAN(key->keyLength); + // uint16_t pad; FLIPENDIAN(key->fileID); FLIPENDIAN(key->startBlock); FLIPENDIAN(key->name.length); @@ -95,7 +96,7 @@ static int attrKeyWrite(off_t offset, BTKey* toWrite, io_func* io) { uint16_t nodeNameLength; int i; - keyLength = toWrite->keyLength; + keyLength = toWrite->keyLength + sizeof(uint16_t); key = (HFSPlusAttrKey*) malloc(keyLength); memcpy(key, toWrite, keyLength); @@ -174,8 +175,17 @@ static int updateAttributes(Volume* volume, HFSPlusAttrKey* skey, HFSPlusAttrRec HFSPlusAttrKey key; HFSPlusAttrRecord* record; int ret, len; + int exact; + + // Must copy the leading `keyLength` field itself. + memcpy(&key, skey, skey->keyLength + sizeof(uint16_t)); - memcpy(&key, skey, skey->keyLength); + record = (HFSPlusAttrRecord*) search(volume->attrTree, (BTKey*)(&key), &exact, NULL, NULL); + if(exact && record) { + free(record); + record = NULL; + removeFromBTree(volume->attrTree, (BTKey*)(&key)); + } switch(srecord->recordType) { case kHFSPlusAttrInlineData: @@ -183,24 +193,21 @@ static int updateAttributes(Volume* volume, HFSPlusAttrKey* skey, HFSPlusAttrRec record = (HFSPlusAttrRecord*) malloc(len); memcpy(record, srecord, len); flipAttrData((HFSPlusAttrData*) record); - removeFromBTree(volume->attrTree, (BTKey*)(&key)); - ret = addToBTree(volume->attrTree, (BTKey*)(&key), len, (unsigned char *)record); + ret = addToBTree(volume->attrTree, (BTKey*)(&key), len, (unsigned char *)record); free(record); break; case kHFSPlusAttrForkData: record = (HFSPlusAttrRecord*) malloc(sizeof(HFSPlusAttrForkData)); memcpy(record, srecord, sizeof(HFSPlusAttrForkData)); flipAttrForkData((HFSPlusAttrForkData*) record); - removeFromBTree(volume->attrTree, (BTKey*)(&key)); - ret = addToBTree(volume->attrTree, (BTKey*)(&key), sizeof(HFSPlusAttrForkData), (unsigned char *)record); + ret = addToBTree(volume->attrTree, (BTKey*)(&key), sizeof(HFSPlusAttrForkData), (unsigned char *)record); free(record); break; case kHFSPlusAttrExtents: record = (HFSPlusAttrRecord*) malloc(sizeof(HFSPlusAttrExtents)); memcpy(record, srecord, sizeof(HFSPlusAttrExtents)); flipAttrExtents((HFSPlusAttrExtents*) record); - removeFromBTree(volume->attrTree, (BTKey*)(&key)); - ret = addToBTree(volume->attrTree, (BTKey*)(&key), sizeof(HFSPlusAttrExtents), (unsigned char *)record); + ret = addToBTree(volume->attrTree, (BTKey*)(&key), sizeof(HFSPlusAttrExtents), (unsigned char *)record); free(record); break; } @@ -221,7 +228,7 @@ size_t getAttribute(Volume* volume, uint32_t fileID, const char* name, uint8_t** key.fileID = fileID; key.startBlock = 0; ASCIIToUnicode(name, &key.name); - key.keyLength = sizeof(HFSPlusAttrKey) - sizeof(HFSUniStr255) + sizeof(key.name.length) + (sizeof(uint16_t) * key.name.length); + key.keyLength = sizeof(HFSPlusAttrKey) - sizeof(uint16_t) - sizeof(HFSUniStr255) + sizeof(key.name.length) + (sizeof(uint16_t) * key.name.length); *data = NULL; @@ -260,7 +267,7 @@ int setAttribute(Volume* volume, uint32_t fileID, const char* name, uint8_t* dat key.fileID = fileID; key.startBlock = 0; ASCIIToUnicode(name, &key.name); - key.keyLength = sizeof(HFSPlusAttrKey) - sizeof(HFSUniStr255) + sizeof(key.name.length) + (sizeof(uint16_t) * key.name.length); + key.keyLength = sizeof(HFSPlusAttrKey) - sizeof(uint16_t) - sizeof(HFSUniStr255) + sizeof(key.name.length) + (sizeof(uint16_t) * key.name.length); record = (HFSPlusAttrData*) malloc(sizeof(HFSPlusAttrData) + size); memset(record, 0, sizeof(HFSPlusAttrData)); @@ -285,7 +292,7 @@ int unsetAttribute(Volume* volume, uint32_t fileID, const char* name) { key.fileID = fileID; key.startBlock = 0; ASCIIToUnicode(name, &key.name); - key.keyLength = sizeof(HFSPlusAttrKey) - sizeof(HFSUniStr255) + sizeof(key.name.length) + (sizeof(uint16_t) * key.name.length); + key.keyLength = sizeof(HFSPlusAttrKey) - sizeof(uint16_t) - sizeof(HFSUniStr255) + sizeof(key.name.length) + (sizeof(uint16_t) * key.name.length); return removeFromBTree(volume->attrTree, (BTKey*)(&key)); } @@ -309,7 +316,7 @@ XAttrList* getAllExtendedAttributes(HFSCatalogNodeID CNID, Volume* volume) { key.fileID = CNID; key.startBlock = 0; key.name.length = 0; - key.keyLength = sizeof(HFSPlusAttrKey) - sizeof(HFSUniStr255) + sizeof(key.name.length) + (sizeof(uint16_t) * key.name.length); + key.keyLength = sizeof(HFSPlusAttrKey) - sizeof(uint16_t) - sizeof(HFSUniStr255) + sizeof(key.name.length) + (sizeof(uint16_t) * key.name.length); tree = volume->attrTree; record = (HFSPlusAttrRecord*) search(tree, (BTKey*)(&key), NULL, &nodeNumber, &recordNumber); diff --git a/includes/common.h b/includes/common.h index fb1e273c..08b1dfcb 100644 --- a/includes/common.h +++ b/includes/common.h @@ -106,4 +106,18 @@ unsigned char* decodeBase64(char* toDecode, size_t* dataLength); void writeBase64(struct AbstractFile* file, unsigned char* data, size_t dataLength, int tabLength, int width); char* convertBase64(unsigned char* data, size_t dataLength, int tabLength, int width); +#define SHA1_DIGEST_SIZE 20 + +typedef struct { + uint32_t state[5]; + uint32_t count[2]; + uint8_t buffer[64]; +} SHA1_CTX; + +typedef struct { + uint32_t block; + uint32_t crc; + SHA1_CTX sha1; +} ChecksumToken; + #endif diff --git a/includes/dmg/adc.h b/includes/dmg/adc.h index 3139d887..94ff8393 100644 --- a/includes/dmg/adc.h +++ b/includes/dmg/adc.h @@ -5,10 +5,6 @@ #define ADC_2BYTE 0x02 #define ADC_3BYTE 0x03 -#define bool short -#define true 1 -#define false 0 - size_t adc_decompress(size_t in_size, unsigned char *input, size_t avail_size, unsigned char *output, size_t *bytes_written); int adc_chunk_type(char _byte); int adc_chunk_size(char _byte); diff --git a/includes/dmg/attribution.h b/includes/dmg/attribution.h new file mode 100644 index 00000000..b13d1308 --- /dev/null +++ b/includes/dmg/attribution.h @@ -0,0 +1,122 @@ +#ifndef ATTRIBUTION_H +#define ATTRIBUTION_H + +#include "abstractfile.h" +#include "common.h" +#include + +#define ATTR_SIGNATURE 0x61747472 // 'attr' + +/** + * An "attributable" DMG or a DMG "structured for attribution" has: + * - either one or two BZ_RAW raw blocks + * - a serialized form of the `AttributionResource` data structure + * tucked into the `Name` in the `plst` section of the XML plist + * which describes the raw block + * + * An "attributable" DMG can be "attributed" inexpensively: bytes in the raw + * block of an "attributable" DMG can be changed and the DMG's internal + * checksums updated without parsing and/or decompressing the entire DMG file. + */ + + // We need: + // - the BZ_RAW block offset and size + // - the CRCs before and after the BZ_RAW block + // - the BZIP checksum offset + // - the two DMG 'koly' block checksum offsets + // fUDIFDataForkChecksum: 0x430e7 + // fUDIFMasterChecksum: 0x431f7 + // There's a UDIF checksum (34 bytes?) in each dict, which is + // part of a Base64 encoded struct. We can Base64 decode to bytes, + // swizzle the 4 bytes of the checksum, and then Base64 encode back + // to the same number of bytes. + /* */ + /* blkx */ + /* */ + /* */ + /* Attributes */ + /* 0x0050 */ + /* CFName */ + /* Driver Descriptor Map (DDM : 0) */ + /* Data */ + /* */ + /* bWlzaAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAA */ + /* AAII/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA */ + /* AAIAAAAgXDMYCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA */ + /* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA */ + /* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA */ + /* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA */ + /* AAAAAAACgAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAA */ + /* AAAAAAAAAAAAAAAANf////8AAAAAAAAAAAAAAAEAAAAA */ + /* AAAAAAAAAAAAAAA1AAAAAAAAAAA= */ + /* */ + /* ID */ + /* -1 */ + /* Name */ + /* Driver Descriptor Map (DDM : 0) */ + /* */ + +/** + * Binary representation of data needed to quickly "attribute" a DMG that is + * structured for attribution. + */ +typedef struct AttributionResource { + uint32_t signature; /* Set to 'attr'. */ + uint32_t version; /* Set to 1. */ + uint32_t beforeCompressedChecksum; /* CRC of compressed bytes before raw block. */ + uint64_t beforeCompressedLength; /* Number of compressed bytes before raw block. */ + uint32_t beforeUncompressedChecksum; /* CRC of uncompressed bytes before raw block. */ + uint64_t beforeUncompressedLength; /* Number of uncompressed bytes before raw block. */ + uint64_t rawPos; /* Position, in bytes, from start of file to raw block. */ + uint64_t rawLength; /* Length, in bytes, of raw block. */ + uint32_t rawChecksum; /* CRC of bytes in raw block. */ + uint32_t afterCompressedChecksum; /* CRC of compressed bytes after raw block. */ + uint64_t afterCompressedLength; /* Number of compressed bytes after raw block. */ + uint32_t afterUncompressedChecksum; /* CRC of uncompressed bytes after raw block. */ + uint64_t afterUncompressedLength; /* Number of uncompressed bytes after raw block. */ +} __attribute__ ((packed)) AttributionResource; + +typedef struct AbstractAttribution AbstractAttribution; + +enum ShouldKeepRaw { + KeepNoneRaw, + KeepCurrentRaw, + KeepCurrentAndNextRaw, + KeepRemainingRaw, +}; + +typedef void (*BeforeMainBlkxFunc)(AbstractAttribution* attribution, AbstractFile* abstractOut, ChecksumToken* dataForkToken); +typedef enum ShouldKeepRaw (*ShouldKeepRawFunc)(AbstractAttribution* attribution, const void* data, size_t len, const void* nextData, size_t nextLen); +typedef void (*ObserveBuffersFunc)(AbstractAttribution* attribution, int didKeepRaw, const void* uncompressedData, size_t uncompressedLen, const void* compressedData, size_t compressedLen); +typedef void (*AfterMainBlkxFunc)(AbstractAttribution* attribution, AbstractFile* abstractOut, ChecksumToken* dataForkToken, AttributionResource* attributionResource); + +struct AbstractAttribution { + // Use this to persist state during operation. + void* data; + + // Return non-zero if the given buffer should be a raw block (type `BLOCK_RAW`). + ShouldKeepRawFunc shouldKeepRaw; + // Invoked for each BLKX run with the uncompressed and compressed data. + ObserveBuffersFunc observeBuffers; + // Invoked once immediately before the main BLKX is inserted. + BeforeMainBlkxFunc beforeMainBlkx; + // Invoked once immediately after the main BLKX is inserted. + AfterMainBlkxFunc afterMainBlkx; +}; + +#ifdef __cplusplus +extern "C" { +#endif + // Return an `AbstractAttribution` structure (instance) that will preserve the + // *unique* instance of the given string sentinel. If no instance, or more + // than one instance, of the given sentinel is found, attribution will fail. + AbstractAttribution* createAbstractAttributionPreservingSentinel(const char* sentinel); + + // Copy an "attributable" DMG -- one structured for attribution -- to the + // given output, write `len` of the given `bytes` over the `sentinel`. + int updateAttribution(AbstractFile* abstractIn, AbstractFile* abstractOut, const char* sentinel, const char* bytes, size_t len); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/includes/dmg/dmg.h b/includes/dmg/dmg.h index 83e141e2..b65353e3 100644 --- a/includes/dmg/dmg.h +++ b/includes/dmg/dmg.h @@ -7,6 +7,8 @@ #include #include "abstractfile.h" +#include "attribution.h" +#include "common.h" #define CHECKSUM_UDIF_CRC32 0x00000002 #define CHECKSUM_MD5 0x00000004 @@ -48,6 +50,10 @@ #define BOOTCODE_DMMY 0x444D4D59 #define BOOTCODE_GOON 0x676F6F6E +#define bool short +#define true 1 +#define false 0 + enum { kUDIFFlagsFlattened = 1 }; @@ -235,20 +241,6 @@ typedef struct ResourceKey { FlipDataFunc flipData; } ResourceKey; -#define SHA1_DIGEST_SIZE 20 - -typedef struct { - uint32_t state[5]; - uint32_t count[2]; - uint8_t buffer[64]; -} SHA1_CTX; - -typedef struct { - uint32_t block; - uint32_t crc; - SHA1_CTX sha1; -} ChecksumToken; - static inline uint32_t readUInt32(AbstractFile* file) { uint32_t data; @@ -305,8 +297,8 @@ extern "C" { void readUDIFResourceFile(AbstractFile* file, UDIFResourceFile* o); void writeUDIFResourceFile(AbstractFile* file, UDIFResourceFile* o); - ResourceKey* readResources(char* xml, size_t length); - void writeResources(AbstractFile* file, ResourceKey* resources); + ResourceKey* readResources(char* xml, size_t length, bool plstNameIsAttribution); + void writeResources(AbstractFile* file, ResourceKey* resources, bool plstNameIsAttribution); void releaseResources(ResourceKey* resources); NSizResource* readNSiz(ResourceKey* resources); @@ -318,8 +310,8 @@ extern "C" { ResourceKey* getResourceByKey(ResourceKey* resources, const char* key); ResourceData* getDataByID(ResourceKey* resource, int id); - ResourceKey* insertData(ResourceKey* resources, const char* key, int id, const char* name, const char* data, size_t dataLength, uint32_t attributes); - ResourceKey* makePlst(); + ResourceKey* insertData(ResourceKey* resources, const char* key, int id, const char* name, size_t nameLength, bool nameAsData, const char* data, size_t dataLength, uint32_t attributes); + ResourceKey* makePlst(const char* name, size_t nameLength, bool nameAsData); ResourceKey* makeSize(HFSPlusVolumeHeader* volumeHeader); void flipDriverDescriptorRecord(DriverDescriptorRecord* record, char out); @@ -338,11 +330,11 @@ extern "C" { void extractBLKX(AbstractFile* in, AbstractFile* out, BLKXTable* blkx); BLKXTable* insertBLKX(AbstractFile* out, AbstractFile* in, uint32_t firstSectorNumber, uint32_t numSectors, uint32_t blocksDescriptor, uint32_t checksumType, ChecksumFunc uncompressedChk, void* uncompressedChkToken, ChecksumFunc compressedChk, - void* compressedChkToken, Volume* volume, int addComment); + void* compressedChkToken, Volume* volume, int addComment, AbstractAttribution* attribution); int extractDmg(AbstractFile* abstractIn, AbstractFile* abstractOut, int partNum); - int buildDmg(AbstractFile* abstractIn, AbstractFile* abstractOut, unsigned int BlockSize); + int buildDmg(AbstractFile* abstractIn, AbstractFile* abstractOut, unsigned int BlockSize, const char* sentinel); int convertToISO(AbstractFile* abstractIn, AbstractFile* abstractOut); int convertToDMG(AbstractFile* abstractIn, AbstractFile* abstractOut); #ifdef __cplusplus diff --git a/test/attribution.t b/test/attribution.t new file mode 100644 index 00000000..6e4fe121 --- /dev/null +++ b/test/attribution.t @@ -0,0 +1,501 @@ +Make sure we have a fresh build: + + $ export BUILDDIR=$TESTDIR/../build + $ cd $BUILDDIR + $ make 2> /dev/null >/dev/null + $ cd $CRAMTMP + + $ $BUILDDIR/dmg/dmg build $TESTDIR/attribution_reference/hdiutila.hfs testa.dmg __MOZILLA__attr-value- >/dev/null + +Note the "attr-value-p" suffix below! + + $ $BUILDDIR/dmg/dmg build $TESTDIR/attribution_reference/hdiutilp.hfs testb.dmg __MOZILLA__attr-value- >/dev/null + + $ xxd testa.dmg > testa.txt + $ xxd testb.dmg > testb.txt + $ diff --unified=3 testa.txt testb.txt + --- testa.txt* (glob) + +++ testb.txt* (glob) + @@ -3349,7 +3349,7 @@ + 0000d140: 7400 7200 2d00 6b00 6500 7900 0000 1000 t.r.-.k.e.y..... + 0000d150: 0000 0000 0000 0000 0000 175f 5f4d 4f5a ...........__MOZ + 0000d160: 494c 4c41 5f5f 6174 7472 2d76 616c 7565 ILLA__attr-value + -0000d170: 2d61 0000 0000 0000 0000 0000 0000 0000 -a.............. + +0000d170: 2d70 0000 0000 0000 0000 0000 0000 0000 -p.............. + 0000d180: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + 0000d190: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + 0000d1a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + @@ -16652,7 +16652,7 @@ + 000410b0: 4141 6741 4141 4141 4141 4141 4141 4141 AAgAAAAAAAAAAAAA + 000410c0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 000410d0: 4141 4141 410a 0909 0909 4141 4941 4141 AAAAA.....AAIAAA + -000410e0: 4167 3544 5163 6877 4141 4141 4141 4141 Ag5DQchwAAAAAAAA + +000410e0: 4167 2b53 4962 7641 4141 4141 4141 4141 Ag+SIbvAAAAAAAAA + 000410f0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00041100: 4141 4141 4141 0a09 0909 0941 4141 4141 AAAAAA.....AAAAA + 00041110: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + @@ -16831,7 +16831,7 @@ + 00041be0: 3c2f 7374 7269 6e67 3e0a 0909 0909 3c6b .....Data... + 00041c00: 0909 3c64 6174 613e 0a09 0909 0941 5141 .......AQA + -00041c10: 4341 4141 412f 4d47 4e7a 773d 3d0a 0909 CAAAA/MGNzw==... + +00041c10: 4341 4141 412b 3845 4638 413d 3d0a 0909 CAAAA+8EF8A==... + 00041c20: 0909 3c2f 6461 7461 3e0a 0909 0909 3c6b .......ID..... + 00041c40: 3c73 7472 696e 673e 323c 2f73 7472 696e 2.... + + + + resource-fork + + blkx + + + Attributes + 0x0050 + CFName + Driver Descriptor Map (DDM : 0) + Data + + bWlzaAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAA + AAII/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAgXDMYCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACgAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAA + AAAAAAAAAAAAAAAANf////8AAAAAAAAAAAAAAAEAAAAA + AAAAAAAAAAAAAAA1AAAAAAAAAAA= + + ID + -1 + Name + Driver Descriptor Map (DDM : 0) + + + Attributes + 0x0050 + CFName + Apple (Apple_partition_map : 1) + Data + + bWlzaAAAAAEAAAAAAAAAAQAAAAAAAAA/AAAAAAAAAAAA + AAIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAg7xHa2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACgAAABgAAAAAAAAAAAAAAAAAAAAAAAAA/AAAA + AAAAADUAAAAAAAAAv/////8AAAAAAAAAAAAAAD8AAAAA + AAAAAAAAAAAAAAD0AAAAAAAAAAA= + + ID + 0 + Name + Apple (Apple_partition_map : 1) + + + Attributes + 0x0050 + CFName + Macintosh (Apple_Driver_ATAPI : 2) + Data + + bWlzaAAAAAEAAAAAAAAAQAAAAAAAAAAIAAAAAAAAAAAA + AAIIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAgxxwAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACgAAABgAAAAAAAAAAAAAAAAAAAAAAAAAIAAAA + AAAAAPQAAAAAAAAAK/////8AAAAAAAAAAAAAAAgAAAAA + AAAAAAAAAAAAAAEfAAAAAAAAAAA= + + ID + 1 + Name + Macintosh (Apple_Driver_ATAPI : 2) + + + Attributes + 0x0050 + CFName + Mac_OS_X (Apple_HFSX : 3) + Data + + bWlzaAAAAAEAAAAAAAAASAAAAAAAACewAAAAAAAAAAAA + AAIIAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAg5DQchwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAVAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAIAAAAA + AAAAAR8AAAAAAAQAAIAAAAYAAAAAAAAAAAAAAgAAAAAA + AAACAAAAAAAABAEfAAAAAAAAAC2AAAAGAAAAAAAAAAAA + AAQAAAAAAAAAAgAAAAAAAAQBTAAAAAAAAAF0gAAABgAA + AAAAAAAAAAAGAAAAAAAAAAIAAAAAAAAEAsAAAAAAAAAA + LYAAAAYAAAAAAAAAAAAACAAAAAAAAAACAAAAAAAABALt + AAAAAAAAAEiAAAAGAAAAAAAAAAAAAAoAAAAAAAAAAgAA + AAAAAAQDNQAAAAAAAAAtgAAABgAAAAAAAAAAAAAMAAAA + AAAAAAIAAAAAAAAEA2IAAAAAAAAALYAAAAYAAAAAAAAA + AAAADgAAAAAAAAACAAAAAAAABAOPAAAAAAAAAC2AAAAG + AAAAAAAAAAAAABAAAAAAAAAAAgAAAAAAAAQDvAAAAAAA + AAAtgAAABgAAAAAAAAAAAAASAAAAAAAAAAIAAAAAAAAE + A+kAAAAAAAAALYAAAAYAAAAAAAAAAAAAFAAAAAAAAAAC + AAAAAAAABAQWAAAAAAAAAC2AAAAGAAAAAAAAAAAAABYA + AAAAAAAAAgAAAAAAAAQEQwAAAAAAAAAtgAAABgAAAAAA + AAAAAAAYAAAAAAAAAAIAAAAAAAAEBHAAAAAAAAAALYAA + AAYAAAAAAAAAAAAAGgAAAAAAAAACAAAAAAAABASdAAAA + AAAAAC2AAAAGAAAAAAAAAAAAABwAAAAAAAAAAgAAAAAA + AAQEygAAAAAAAAAtgAAABgAAAAAAAAAAAAAeAAAAAAAA + AAIAAAAAAAAEBPcAAAAAAAAALYAAAAYAAAAAAAAAAAAA + IAAAAAAAAAACAAAAAAAABAUkAAAAAAAAAC2AAAAGAAAA + AAAAAAAAACIAAAAAAAAAAgAAAAAAAAQFUQAAAAAAAAAt + gAAABgAAAAAAAAAAAAAkAAAAAAAAAAIAAAAAAAAEBX4A + AAAAAAAALYAAAAYAAAAAAAAAAAAAJgAAAAAAAAABsAAA + AAAABAWrAAAAAAAAAKH/////AAAAAAAAAAAAACewAAAA + AAAAAAAAAAAAAAQGTAAAAAAAAAAA + + ID + 2 + Name + Mac_OS_X (Apple_HFSX : 3) + + + Attributes + 0x0050 + CFName + (Apple_Free : 4) + Data + + bWlzaAAAAAEAAAAAAAAn+AAAAAAAAAAKAAAAAAAAAAAA + AAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAKAAAA + AAAEBkwAAAAAAAAAAP////8AAAAAAAAAAAAAAAoAAAAA + AAAAAAAAAAAABAZMAAAAAAAAAAA= + + ID + 3 + Name + (Apple_Free : 4) + + + cSum + + + Attributes + 0x0000 + Data + + AQACAAAAhY246A== + + ID + 0 + Name + + + + Attributes + 0x0000 + Data + + AQACAAAAAAAAAA== + + ID + 1 + Name + + + + Attributes + 0x0000 + Data + + AQACAAAA/MGNzw== + + ID + 2 + Name + + + + nsiz + + + Attributes + 0x0000 + Data + + PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRG + LTgiPz4KPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8v + QXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDov + L3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3Qt + MS4wLmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8 + ZGljdD4KCTxrZXk+YmxvY2stY2hlY2tzdW0tMjwva2V5 + PgoJPGludGVnZXI+LTM5MDU1ODMzMTwvaW50ZWdlcj4K + CTxrZXk+cGFydC1udW08L2tleT4KCTxpbnRlZ2VyPjA8 + L2ludGVnZXI+Cgk8a2V5PnZlcnNpb248L2tleT4KCTxp + bnRlZ2VyPjY8L2ludGVnZXI+CjwvZGljdD4KPC9wbGlz + dD4K + + ID + 0 + Name + + + + Attributes + 0x0000 + Data + + PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRG + LTgiPz4KPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8v + QXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDov + L3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3Qt + MS4wLmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8 + ZGljdD4KCTxrZXk+YmxvY2stY2hlY2tzdW0tMjwva2V5 + PgoJPGludGVnZXI+MDwvaW50ZWdlcj4KCTxrZXk+cGFy + dC1udW08L2tleT4KCTxpbnRlZ2VyPjE8L2ludGVnZXI+ + Cgk8a2V5PnZlcnNpb248L2tleT4KCTxpbnRlZ2VyPjY8 + L2ludGVnZXI+CjwvZGljdD4KPC9wbGlzdD4K + + ID + 1 + Name + + + + Attributes + 0x0000 + Data + + PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRG + LTgiPz4KPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8v + QXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDov + L3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3Qt + MS4wLmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8 + ZGljdD4KCTxrZXk+U0hBLTEtZGlnZXN0PC9rZXk+Cgk8 + ZGF0YT4KCUF2SUdBSDl5RmxNZHVocCtkMkJEMzlVVnJz + QT0KCTwvZGF0YT4KCTxrZXk+YmxvY2stY2hlY2tzdW0t + Mjwva2V5PgoJPGludGVnZXI+LTgxMjc5MzM0ODwvaW50 + ZWdlcj4KCTxrZXk+Ynl0ZXM8L2tleT4KCTxpbnRlZ2Vy + PjE1NTY0ODwvaW50ZWdlcj4KCTxrZXk+ZGF0ZTwva2V5 + PgoJPGludGVnZXI+LTUzMjU5Nzk4OTwvaW50ZWdlcj4K + CTxrZXk+cGFydC1udW08L2tleT4KCTxpbnRlZ2VyPjI8 + L2ludGVnZXI+Cgk8a2V5PnZlcnNpb248L2tleT4KCTxp + bnRlZ2VyPjY8L2ludGVnZXI+Cgk8a2V5PnZvbHVtZS1z + aWduYXR1cmU8L2tleT4KCTxpbnRlZ2VyPjE4NDc1PC9p + bnRlZ2VyPgo8L2RpY3Q+CjwvcGxpc3Q+Cg== + + ID + 2 + Name + + + + plst + + + Attributes + 0x0050 + Data + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAA + + ID + 0 + Name + + cnR0YQEAAABX3DBMHwEAAAAAAAAAAAAAAAAAAAAAAAAf + AQAAAAAAAAAABAAAAAAAZ8q866FIM8UtBQAAAAAAAJbi + Aq0AYEsAAAAAAA== + + + + size + + + Attributes + 0x0000 + Data + + BQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAABszQeAAAAAAK0gBAA== + + ID + 2 + Name + + + + + + + +Line in the sand: + + $ shasum testa.dmg testb.dmg + 85f7e85acef53b63fc199e84ff801ae96b3e8c83 testa.dmg + ef6e91b330f5eacd10eb5e37603b8baa06d4a1a4 testb.dmg + +Attribute: + + $ $BUILDDIR/dmg/dmg attribute testa.dmg testa_updated.dmg __MOZILLA__attr-value- __MOZILLA__attr-value-p >/dev/null + +Unfortunately, attributing builds does not update the cSum block, so we expect some differences here: + + $ xxd testa_updated.dmg > testa_updated.txt + $ diff --unified=3 testb.txt testa_updated.txt + --- testb.txt* (glob) + +++ testa_updated.txt* (glob) + @@ -16831,7 +16831,7 @@ + 00041be0: 3c2f 7374 7269 6e67 3e0a 0909 0909 3c6b .....Data... + 00041c00: 0909 3c64 6174 613e 0a09 0909 0941 5141 .......AQA + -00041c10: 4341 4141 412b 3845 4638 413d 3d0a 0909 CAAAA+8EF8A==... + +00041c10: 4341 4141 412f 4d47 4e7a 773d 3d0a 0909 CAAAA/MGNzw==... + 00041c20: 0909 3c2f 6461 7461 3e0a 0909 0909 3c6b .......ID..... + 00041c40: 3c73 7472 696e 673e 323c 2f73 7472 696e 2/dev/null + +Note -- same same: + + $ xxd testa_reverted.dmg > testa_reverted.txt + $ diff --unified=3 testa.txt testa_reverted.txt + $ shasum testa.dmg testa_reverted.dmg + 85f7e85acef53b63fc199e84ff801ae96b3e8c83 testa.dmg + 85f7e85acef53b63fc199e84ff801ae96b3e8c83 testa_reverted.dmg diff --git a/test/attribution_full_length.t b/test/attribution_full_length.t new file mode 100644 index 00000000..d6238ef3 --- /dev/null +++ b/test/attribution_full_length.t @@ -0,0 +1,39 @@ +Make sure we have a fresh build: + + $ export BUILDDIR=$TESTDIR/../build + $ cd $BUILDDIR + $ make 2> /dev/null >/dev/null + $ cd $CRAMTMP + +Prepare content and the attribution code (997 is 1024 minus the length of the sentinel): + $ mkdir stagedir + $ echo "content-a" >> stagedir/a + $ sentinel="__MOZILLA__attribution-code" + $ code=$(printf "${sentinel}%*s" "997" | tr ' ' '\011') + $ attributed_code=$(printf "${sentinel}%*s" "997" | tr ' ' '~') + +Make a small HFS filesystem with a full length (1024 byte) attribution value: + + $ mkdir output + $ cp $TESTDIR/empty.hfs output/full-length.hfs + $ $BUILDDIR/hfs/hfsplus output/full-length.hfs add stagedir/a a + $ $BUILDDIR/hfs/hfsplus output/full-length.hfs setattr a attr-key "$code" + +Echo it back, make sure it is the right length in the HFS filesystem: + + $ $BUILDDIR/hfs/hfsplus output/full-length.hfs getattr a attr-key | wc -c + 1024 + +Build a DMG: + + $ $BUILDDIR/dmg/dmg build output/full-length.hfs output/full-length.dmg "$sentinel" >/dev/null + +Now attribute, using printable characters for the full length: + + $ $BUILDDIR/dmg/dmg attribute output/full-length.dmg output/full-length-attributed.dmg "$sentinel" "$attributed_code" >/dev/null + +Extract the HFS from the attributed DMG, and check to see if the code is correct: + + $ $BUILDDIR/dmg/dmg extract output/full-length-attributed.dmg output/full-length-attributed.hfs >/dev/null + $ $BUILDDIR/hfs/hfsplus output/full-length-attributed.hfs getattr a attr-key | grep -c "$attributed_code" + 1 diff --git a/test/attribution_reference.t b/test/attribution_reference.t new file mode 100644 index 00000000..c6f70583 --- /dev/null +++ b/test/attribution_reference.t @@ -0,0 +1,45 @@ +This takes about 10 seconds, which is too slow for constant inputs. +Run this like +``` +time venv/bin/cram test/attribution.t --keep-tmpdir +``` +and then copy the reference directory like +``` +cp -R /var/folders/3s/_m9prk6n7g5cx6hhs_33q2f80000gn/T/cramtests-0uzbp0wu/reference test/reference +``` +to update test inputs. + +Make sure we have a fresh build: + + $ export BUILDDIR=$TESTDIR/../build + $ cd $BUILDDIR + $ make &> /dev/null + $ cd $CRAMTMP + +Prepare content: + + $ mkdir stagedir + $ echo "content-x" >> stagedir/x + +Create reference DMGs using macOS: + + $ mkdir reference + $ xattr -w 'attr-key' '__MOZILLA__attr-value-a' stagedir/x + $ hdiutil create -megabytes 5 -fs HFS+ -volname myDisk -srcfolder stagedir reference/hdiutila.hfs + created: */reference/hdiutila.hfs.dmg (glob) + $ xattr -w 'attr-key' '__MOZILLA__attr-value-b' stagedir/x + $ hdiutil create -megabytes 5 -fs HFS+ -volname myDisk -srcfolder stagedir reference/hdiutilb.hfs + created: */reference/hdiutilb.hfs.dmg (glob) + $ xattr -w 'attr-key' '__MOZILLA__attr-value-p' stagedir/x + $ hdiutil create -megabytes 5 -fs HFS+ -volname myDisk -srcfolder stagedir reference/hdiutilp.hfs + created: */reference/hdiutilp.hfs.dmg (glob) + +Extract reference HFSs: + + $ $BUILDDIR/dmg/dmg extract reference/hdiutila.hfs.dmg reference/hdiutila.hfs > /dev/null + $ $BUILDDIR/dmg/dmg extract reference/hdiutilb.hfs.dmg reference/hdiutilb.hfs > /dev/null + $ $BUILDDIR/dmg/dmg extract reference/hdiutilp.hfs.dmg reference/hdiutilp.hfs > /dev/null + +Remove the unneeded dmg: + + $ rm reference/hdiutilp.hfs.dmg diff --git a/test/attribution_reference/hdiutila.hfs b/test/attribution_reference/hdiutila.hfs new file mode 100644 index 00000000..1bc0a5d6 Binary files /dev/null and b/test/attribution_reference/hdiutila.hfs differ diff --git a/test/attribution_reference/hdiutila.hfs.dmg b/test/attribution_reference/hdiutila.hfs.dmg new file mode 100644 index 00000000..b32210d2 Binary files /dev/null and b/test/attribution_reference/hdiutila.hfs.dmg differ diff --git a/test/attribution_reference/hdiutilb.hfs b/test/attribution_reference/hdiutilb.hfs new file mode 100644 index 00000000..58e3e1ca Binary files /dev/null and b/test/attribution_reference/hdiutilb.hfs differ diff --git a/test/attribution_reference/hdiutilb.hfs.dmg b/test/attribution_reference/hdiutilb.hfs.dmg new file mode 100644 index 00000000..de4f08ae Binary files /dev/null and b/test/attribution_reference/hdiutilb.hfs.dmg differ diff --git a/test/attribution_reference/hdiutilp.hfs b/test/attribution_reference/hdiutilp.hfs new file mode 100644 index 00000000..7a563a11 Binary files /dev/null and b/test/attribution_reference/hdiutilp.hfs differ diff --git a/test/attribution_shorter_than_sentinel.t b/test/attribution_shorter_than_sentinel.t new file mode 100644 index 00000000..d25cf254 --- /dev/null +++ b/test/attribution_shorter_than_sentinel.t @@ -0,0 +1,33 @@ +Make sure we have a fresh build: + + $ export BUILDDIR=$TESTDIR/../build + $ cd $BUILDDIR + $ make 2> /dev/null >/dev/null + $ cd $CRAMTMP + +Prepare content and the attribution code: + $ mkdir stagedir + $ echo "content-a" >> stagedir/a + $ sentinel="__MOZILLA__attribution-code" + $ attribution_code="short" + +Create the filesystem with the sentinel value in the attribute: + + $ mkdir output + $ cp $TESTDIR/empty.hfs output/short.hfs + $ $BUILDDIR/hfs/hfsplus output/short.hfs add stagedir/a a + $ $BUILDDIR/hfs/hfsplus output/short.hfs setattr a attr-key "$sentinel" + +Build a DMG: + + $ $BUILDDIR/dmg/dmg build output/short.hfs output/short.dmg "$sentinel" >/dev/null + +Now attribute: + + $ $BUILDDIR/dmg/dmg attribute output/short.dmg output/short-attributed.dmg "__MOZILLA__" "$attribution_code" >/dev/null + +Extract the HFS from the attributed DMG, and check to see if the code is correct: + + $ $BUILDDIR/dmg/dmg extract output/short-attributed.dmg output/short-attributed.hfs >/dev/null + $ $BUILDDIR/hfs/hfsplus output/short-attributed.hfs getattr a attr-key | tr -d '\0' + short (no-eol) diff --git a/test/empty.hfs b/test/empty.hfs new file mode 100644 index 00000000..24608837 Binary files /dev/null and b/test/empty.hfs differ diff --git a/test/generate-offset-files.py b/test/generate-offset-files.py new file mode 100644 index 00000000..cb9b6654 --- /dev/null +++ b/test/generate-offset-files.py @@ -0,0 +1,13 @@ +from random import choice +from string import ascii_uppercase, ascii_lowercase, digits +import sys + +choices = list() +choices.extend(ascii_uppercase) +choices.extend(ascii_lowercase) +choices.extend(digits) +for c in ("x", "X", "y", "Y", "z", "Z"): + choices.remove(c) + +for i in range(int(sys.argv[1])): + print("".join(choice(choices) for i in range(8))) diff --git a/test/hfs_xattrs.t b/test/hfs_xattrs.t new file mode 100644 index 00000000..d16e097c --- /dev/null +++ b/test/hfs_xattrs.t @@ -0,0 +1,48 @@ +Make sure we have a fresh build: + + $ export BUILDDIR=$TESTDIR/../build + $ cd $BUILDDIR + $ make 2> /dev/null >/dev/null + $ cd $CRAMTMP + +Prepare content: + + $ mkdir stagedir + $ echo "content-a" >> stagedir/a + $ echo "content-b" >> stagedir/b + +Extract reference HFSs and attributes. We parse the debugattrs a bit because the attribute numbers from hdiutil and hfsplus may not match: + + $ mkdir hfs_xattrs_reference + $ $BUILDDIR/dmg/dmg extract $TESTDIR/hfs_xattrs_reference/hdiutila.hfs.dmg $CRAMTMP/hfs_xattrs_reference/hdiutila.hfs > /dev/null + $ $BUILDDIR/dmg/dmg extract $TESTDIR/hfs_xattrs_reference/hdiutilb.hfs.dmg $CRAMTMP/hfs_xattrs_reference/hdiutilb.hfs > /dev/null + $ $BUILDDIR/dmg/dmg extract $TESTDIR/hfs_xattrs_reference/hdiutilab.hfs.dmg $CRAMTMP/hfs_xattrs_reference/hdiutilab.hfs > /dev/null + $ $BUILDDIR/hfs/hfsplus hfs_xattrs_reference/hdiutila.hfs debugattrs verbose | grep attribute | sed -e 's/[0-9].*:/:/' > hfs_xattrs_reference/hdiutila.attrs + $ $BUILDDIR/hfs/hfsplus hfs_xattrs_reference/hdiutilb.hfs debugattrs verbose | grep attribute | sed -e 's/[0-9].*:/:/' > hfs_xattrs_reference/hdiutilb.attrs + $ $BUILDDIR/hfs/hfsplus hfs_xattrs_reference/hdiutilab.hfs debugattrs verbose | grep attribute | sed -e 's/[0-9].*:/:/' > hfs_xattrs_reference/hdiutilab.attrs + +Generate comparison HFSs: + + $ mkdir output + $ cp $TESTDIR/empty.hfs output/stageda.hfs + $ $BUILDDIR/hfs/hfsplus output/stageda.hfs add stagedir/a a + $ $BUILDDIR/hfs/hfsplus output/stageda.hfs add stagedir/b b + $ $BUILDDIR/hfs/hfsplus output/stageda.hfs setattr a 'attr-key-a' '__MOZILLA__attr-value-a__MOZILLA__' + $ $BUILDDIR/hfs/hfsplus output/stageda.hfs debugattrs verbose | grep attribute | sed -e 's/[0-9].*:/:/' > output/stageda.attrs + $ cp $TESTDIR/empty.hfs output/stagedab.hfs + $ $BUILDDIR/hfs/hfsplus output/stagedab.hfs add stagedir/a a + $ $BUILDDIR/hfs/hfsplus output/stagedab.hfs add stagedir/b b + $ $BUILDDIR/hfs/hfsplus output/stagedab.hfs setattr a 'attr-key-a' '__MOZILLA__attr-value-a__MOZILLA__' + $ $BUILDDIR/hfs/hfsplus output/stagedab.hfs setattr b 'attr-key-b' '__MOZILLA__attr-value-b__MOZILLA__' + $ $BUILDDIR/hfs/hfsplus output/stagedab.hfs debugattrs verbose | grep attribute | sed -e 's/[0-9].*:/:/' > output/stagedab.attrs + $ cp $TESTDIR/empty.hfs output/stagedb.hfs + $ $BUILDDIR/hfs/hfsplus output/stagedb.hfs add stagedir/a a + $ $BUILDDIR/hfs/hfsplus output/stagedb.hfs add stagedir/b b + $ $BUILDDIR/hfs/hfsplus output/stagedb.hfs setattr b 'attr-key-b' '__MOZILLA__attr-value-b__MOZILLA__' + $ $BUILDDIR/hfs/hfsplus output/stagedb.hfs debugattrs verbose | grep attribute | sed -e 's/[0-9].*:/:/' > output/stagedb.attrs + +Compare attributes in the reference images and generated images: + + $ diff --unified=3 hfs_xattrs_reference/hdiutila.attrs output/stageda.attrs + $ diff --unified=3 hfs_xattrs_reference/hdiutilb.attrs output/stagedb.attrs + $ diff --unified=3 hfs_xattrs_reference/hdiutilab.attrs output/stagedab.attrs diff --git a/test/hfs_xattrs_reference.t b/test/hfs_xattrs_reference.t new file mode 100644 index 00000000..f2858472 --- /dev/null +++ b/test/hfs_xattrs_reference.t @@ -0,0 +1,21 @@ +Prepare content: + + $ cd $CRAMTMP + $ mkdir stagedir + $ echo "content-a" >> stagedir/a + $ echo "content-b" >> stagedir/b + +Create reference DMGs using macOS: + + $ mkdir reference + $ hdiutil create -megabytes 5 -fs HFS+ -volname myDisk -srcfolder stagedir reference/hdiutil.hfs + created: */reference/hdiutil.hfs.dmg (glob) + $ xattr -w 'attr-key-a' '__MOZILLA__attr-value-a' stagedir/a + $ hdiutil create -megabytes 5 -fs HFS+ -volname myDisk -srcfolder stagedir reference/hdiutila.hfs + created: */reference/hdiutila.hfs.dmg (glob) + $ xattr -w 'attr-key-b' '__MOZILLA__attr-value-b' stagedir/b + $ hdiutil create -megabytes 5 -fs HFS+ -volname myDisk -srcfolder stagedir reference/hdiutilab.hfs + created: */reference/hdiutilab.hfs.dmg (glob) + $ xattr -c stagedir/a + $ hdiutil create -megabytes 5 -fs HFS+ -volname myDisk -srcfolder stagedir reference/hdiutilb.hfs + created: */reference/hdiutilb.hfs.dmg (glob) diff --git a/test/hfs_xattrs_reference/hdiutil.hfs.dmg b/test/hfs_xattrs_reference/hdiutil.hfs.dmg new file mode 100644 index 00000000..b1dd3230 Binary files /dev/null and b/test/hfs_xattrs_reference/hdiutil.hfs.dmg differ diff --git a/test/hfs_xattrs_reference/hdiutila.hfs.dmg b/test/hfs_xattrs_reference/hdiutila.hfs.dmg new file mode 100644 index 00000000..1eb73dd0 Binary files /dev/null and b/test/hfs_xattrs_reference/hdiutila.hfs.dmg differ diff --git a/test/hfs_xattrs_reference/hdiutilab.hfs.dmg b/test/hfs_xattrs_reference/hdiutilab.hfs.dmg new file mode 100644 index 00000000..7ce3a6f7 Binary files /dev/null and b/test/hfs_xattrs_reference/hdiutilab.hfs.dmg differ diff --git a/test/hfs_xattrs_reference/hdiutilb.hfs.dmg b/test/hfs_xattrs_reference/hdiutilb.hfs.dmg new file mode 100644 index 00000000..df0a24db Binary files /dev/null and b/test/hfs_xattrs_reference/hdiutilb.hfs.dmg differ diff --git a/test/offset-files.txt b/test/offset-files.txt new file mode 100644 index 00000000..7f39b3ec --- /dev/null +++ b/test/offset-files.txt @@ -0,0 +1,5650 @@ +MTOAONLq +WNRbtPh4 +UH46q4sE +FjGJEFGL +4sGNaQ0I +IsvD2uQR +44wHVw8a +etNOTQEA +SPv3oD8R +bjU1NmrF +C8uuOUOR +bjF68opP +PTi6WLka +4g2JdHke +Oj5Da1QM +jjmIVt3m +qKLbO8dH +409tgTJa +7PsRqMFi +ETtjc1U1 +hQl5tjJn +FHMNuvrW +kWrr91oP +Rq7EWhPn +ivNbC173 +l3bGn8tA +RuOE8hgl +AtOUFCrK +RalPj0sa +0e9CnFS7 +ciwNPcmo +bOOqATUb +4seuMT5D +D4eeJ0qB +2UPoHhaF +BvrrCAWv +vgB0eoi7 +ABt0poOW +kMBLMpE9 +80ntCqCm +db57gaOd +5WIATia2 +di9aikwa +lG83Hiju +h6BdwQ2m +MBf5DmCf +aVMDt8eT +rIBTaWia +dF2p2rEq +gvHTpe4s +ipCf4Ww5 +8ukt8os2 +o3Opw5m5 +Q3okG45K +cpM5cViJ +QqNQimpC +aARsgUb9 +eaEIudkf +FLJ1BBv8 +MlEqaB3j +rjk1mfND +JObIDL66 +OoE0suIu +c77lnbds +1IgIPC7w +GSrT3TuN +CF9Q8Dud +oqTMEC3u +igam7Iat +IDKOIJQa +2ffsKCAF +JMSNpew4 +PCNe05ga +QuwWS28s +cRI4WAQh +rBcwtsc1 +GoF5AWrI +MW5lLUOA +P4bODTBE +5Qpofib8 +Lp8U4Gg6 +ImCLmnWl +V2CPqQTj +QnN24261 +MJaejecI +Hr2FlIjc +M8tqTwBU +cvaESlJs +Cr3t9JRq +22iHF0Lc +fegfNA6q +nWAro3Hw +Hr59cjoS +MUGGnQiK +tWA9AbBR +o71Gk4lQ +wShUEEcf +35TIChu5 +K1AA7OVl +vnbJh8pu +kF3hQUpn +JK3QBlR6 +KKUC5eHq +SrerrGmg +RfR0vf0P +ttrl0qtq +9t1pFTla +67OW17fs +S6nkW06p +2fSGVN4k +Cr4S2Lb6 +BI1EfugE +4oiILLB9 +dE9bu4PQ +HK5Vmwu8 +hIDflHUS +56UR0c8D +OfwlqJPL +BOa1CoHj +LfuuC4se +7DN2gtJ0 +AfOWNQa8 +Fv13MeKv +C4ELcVDE +W3qnGGMI +qthqFn7J +Sq20SULv +Fe3FODW8 +2LkA9gCu +jsk4Q3vh +AMlBSItR +pAtNCVhT +OC57iL1p +euS0Uo2g +upC45oRG +qPHG9Oje +jdmt6B1f +AiiuBfb2 +wlFu9Kuj +84TK0nvD +FtkwJNMa +9IoqMJpK +9I9KL5hV +PtOjEnPS +5RsKWbMp +hG4M87BB +9j64aw3G +lBM2Wg2H +pM0HUNh8 +toToj64u +Po60vLdo +Atpt8e8V +UM3EIbdh +VNcUqgFr +JBuL7oAB +4GR4qroc +0i4rUbFB +m3Q2TLRV +Uag6nnKg +oN4DiPfO +6jeWRLWB +EAiO6dmo +NNDUiR2T +OPimQ2Hg +TLVDEmro +I5Bak99A +JpvbVj2O +4EhMgtba +a45CdWkm +GMdOjk1R +63tVabmO +fSpOV1DA +v7fWBnSU +GA5hN3FF +c0lD01VL +qP9UVujq +a1Q6MV4l +L9t3wk0Q +V6Wf2cmI +tMpH4Uw5 +n70EhILN +ITkavENF +8PLRd2lA +KjT1tc8t +vrFkDQdk +B64OMN9P +2ukLSeVk +KVCuUK3N +RCiPHJML +ocLFDR2b +ee0Tl4TE +qrpJUkH6 +LWhMWjjJ +JhafSMOW +uGO57oNT +t8pSoHl1 +4dtofKml +nB6ste6O +RnGLwtB4 +2w8ThpdD +O9ImR1uR +hDEI7Vs2 +jouVokaU +WgGasohr +8f3igt0W +iIAj7L5K +UAMaOIbF +JfMvMO7W +QvLaLd4e +MoMOe5A5 +uJGOD40t +KUW8p5ek +03MQUgoR +QCPEDJGT +GmLbGiO2 +2n5ShGtt +NKD2lt3S +KuodL47g +MlS52S0d +Vt9nTLCs +75TNgojV +m0Qm7OkM +mpl2wcQQ +mmknQPj3 +qLtjRGMG +NhSUkAQQ +1GJCmn0I +TJ0EuWuR +rbeTbBq5 +6k7JVsDB +O9EP8H59 +H1FJgti8 +TpS4suBJ +5g6l8Vhk +83hwjNCo +JH70OdbV +bdEtelkA +8em2Pqpg +ksgemGSN +Q1paUmi4 +aNeqbfpC +EDgJ4cgr +43d6nmOb +N7KvPtNo +nPIrr2lW +dUEjKfAp +vRligFtN +VnkMGW3c +t7FiMWnL +3cKSiUIc +NGk5K7um +iq1TRsWA +bHgU9w08 +AM2Debpr +hrSFA7AO +l92Hv7Bp +8Uk81FCR +qf8asIRv +qGowmCns +p8rWHr1h +T6jN07qO +15aiJiBH +6rHVOF5f +NTdPId8M +5s3a0oF1 +TmSjnjV3 +qWbNNhag +v19K4kAF +BpS2MSAH +0GQPkP71 +HdrdIwql +qUdQf3Ta +ElflOiRC +6NM9qRH0 +QK0OSAQa +RBWKW1iB +dakK1v4P +WATAokcd +V3JCB9e0 +aoh2kvoV +UrUCVH3o +sfND5au6 +hNgLb4EC +Mph4oWDw +vvkQ4MWJ +B4NhEK3v +RdoLGSjs +SdPpFcL4 +2MS8eGQN +sQahsUfN +qIq2qdUw +lktMWHIB +37c8fs6F +7TDj32qT +8QEmG5Ef +tiUftuL6 +grCVKuAn +fBf8tGAA +NmEENr65 +hTgWaatr +2wpGQNOk +Bgb5ROFN +RKJQhp7s +0nQkvjto +30i0tD6i +CG1mGHN3 +5gfN8PEv +Artw4sKS +CkR1a02O +Q5ompjgR +4Gu0th9E +F9V03V1d +SsoaoKCm +er6dg8AG +5Odlcjga +BuvsQrUf +da5UP7AC +Dehfg6H1 +dfGCGpJN +HQWH5R89 +P19C9pdT +Fv5NoATL +cwqwu5KQ +eFFicRFC +5R3qbcNI +oOslPHa1 +GJq6rJkk +Tlh2vUwG +TnkkGRPn +CwInl2FJ +cNiRMtKd +oEsakdAU +aqAwn8mh +RlUHOp1n +6t5KhKLb +qsegspbl +5Qib8J7s +8EhtQUat +9h2E3Ftb +HGnarjai +cT1AKTvn +AMKiLbF6 +KWMfd5dO +00btrhqq +L7OgrLQD +5q9FPLGT +JmdkNUO4 +PPvNTliE +k3aThJa8 +GG2bw4aI +ci522vLK +964AJks3 +rOL2QeUK +R7mGg0C4 +53qgFtTS +iB8cVeqJ +UDndGK1l +InRQGtmV +3leoWoUv +WKuf1fw5 +gW1bOF2C +tmF3AhFd +9KLE8a4l +14omQvjL +nTTMjrO1 +uibsLJ1o +16P5pskE +5FIiTBBo +8VchUW39 +VUB4Dlp5 +oI4d1RPt +hbEEJcdI +8Dtm6cH5 +Kf0kAdsU +bkd9Niot +Q86Jg7oT +2tacoCWc +PrPkHjTS +O4J8u100 +ntNGiTV6 +Fdl3ecE9 +9NJB3hFu +hdj2rT3M +uHaFloce +pdg90VWB +An4B2cMi +QrSRokCO +klErSwA6 +aeLECljK +sh90sCHi +GJE3p5dU +pn39r9nJ +cO09TijL +wkneatIt +9AF0nBK3 +BSFjvtsG +k7VTkJaK +L2P3TRIg +UfvMq6Ik +Re49c9iL +HO8V6p6K +usA02pRb +s8BvpbCO +0JHpwHhI +n7cTnKFH +mqvrL5rb +8CvRCAvC +36eEkc3t +A9aq8Ce6 +PUVtqgbH +rnmSu5R1 +eDc8hK2f +lL4W4DP7 +ojRF7fAj +J39VhmqA +rM8w4gNV +UfD9L7nW +dqj4WsQ4 +vWMDVp47 +RWWbdIl6 +M7p82hIf +MS8BHnUE +e8tDH6Gt +rgBFO1NW +CTrGo25T +Q1d601gH +S4O6peum +EolUdLVn +tkDw8NoS +tJb3fg1j +8SDmUHWK +PMdcoewK +8s6uDwmG +i8O5thD1 +EoEpimOI +6rVUwr2M +fgC2sPQP +F5eHGcNp +RhKOG4ag +tnNgSNee +Kc5JsunU +RuINuAu7 +u151DRJr +nEcDW9kk +BDD1BCUS +8grcuGiU +pkoTVEtI +AU72CdGj +bLamtwQC +278B2rUt +TjGMdhsB +QFnHGc5L +TBsUVgfE +RvG867ip +TTaGwgG4 +GdQUQCK9 +DMw7UOLI +4bhF4lgK +uO2bkoC9 +Ft7K0TUi +4LNqSL6k +1qE1uV5G +CfE2qhPp +HbV2BmbQ +Vwrm2D39 +vbOQJrBU +BKBFnkIi +VFnNTMip +dA6j9uUi +Vm47a2nd +jbMBDhp1 +AQSk80oB +G9aN6n7u +jh5TsrGQ +FK3f78mb +VIBR7r9n +q3HVhnCj +oSA9htqN +qTbF6d21 +rbsRJA3B +hgaTcICn +lOJBbO00 +OIQNoQjm +lWQUQkHc +2cPwln93 +Ba4ewmoN +Sme1hkkb +LKHMukkC +6wTM620O +4IVr0iBR +CoI5qoRN +sbcLMT3o +KVRrHVL5 +53ElRJDt +ewqoIwEi +HCnRPnHr +QO1qil0i +2G03NvSl +V33wJe5H +lOD1J4Gh +mtkPTq0D +OTKLwVrd +sW5s84Jk +i31kCL1P +tLu5BGuk +pCJmlTvE +kQtootvp +C88tPviI +8Van4wO5 +jcBdhKBj +V5nHfdor +JceHWN1M +itgJDlgj +krHUMO2k +E0iNb2ND +VG4rHM43 +1tVgcLDl +hdfWCD9W +r0sLuvjn +7FRTBoP8 +GA85Rojq +0hPtpc1F +tp2V1LMB +NWUPLeR9 +bs5cCQ67 +gevVoU3v +u8A2SPuN +93n43dRh +9n93akPw +v8O5r8H6 +1JqL5gmD +oBvdHcR0 +jmJsALuV +6dRDu6K6 +JkgaSC3b +tFtJ5KmB +NdhLjdsu +uNDl3TgF +5Foj84nI +6AWtRUtK +OiaKHjpe +kdBegroQ +iTFw3S86 +8eT7sq9w +23GDdeVe +0JVsoiDO +Tbbkv1l8 +wCq9rMIu +GciSMPCh +c5mR5IMC +rrjI5bS1 +w97BLH4S +599DPiew +tadrach3 +b23dCkvR +H2nFqu3w +kQG2VRmm +5DM5k15w +gw65fpvf +GwV2JH1H +qLr9qVS5 +BugeBw09 +2BlonQTA +nQ3fofft +9Ww0hgcg +ugiMoOeH +EvR8r82p +4nl8i3Wd +9UVsnnLi +uSB37gtc +41Wc0g2E +AnAg9lla +AItkoRvF +Mi1cc5oe +sQoBO6H0 +0WJOTdus +rIa6fJdj +7MJK6fJN +DG2M2hWj +lCA3Tpg0 +QpKLcp54 +DkANT24m +4oLVSM7D +IBRqqaAS +prOL8sJT +3LjvLwjS +6HiT3svh +0N6F4w9w +uIfJ3F8K +4cc2OBbF +l4N7k7AS +EDHv4Okj +Oj7swW98 +ojwV32vm +g92UMvs2 +DC6Hm36W +7fqSnM94 +HegqcWkS +5G869Waa +kpmp4pMS +Mm7HQ1c2 +Hqt54Pb8 +m6WUGRO7 +4uGmbW6c +pkqHRqOn +8HHSGf5C +5uILF1II +2IAeg3H2 +DwMjr2UH +VO7gTlpE +6I6BwsjJ +VHwAFPkD +fnB6Jdeq +JdF9vFkn +C2ahowAT +tcstAEn7 +N15op1iL +a6pvLUGt +0NUcuDKa +5417adfD +NLVMqbHF +0DmivrPq +pS0OrrD0 +g0UWHk5g +T2AgkKLd +fCSgIScq +w4lhe0lf +0Hj0hH1I +O37GhkdE +E4iaQewg +jpBqfCbJ +k31PmrM6 +pWgKc959 +rDjHa6Qs +p5NFdaIk +na9WGGUE +4GUmFBkD +wDUUV9Vh +2nodU3eF +sPS5CijG +HpSfKoi3 +FIgSuJ3W +k5QUhbH8 +KtktVd8h +4O8Dr9nt +kS0dA8BU +PEEitlf5 +fh6RG36d +3TKQQbkH +wjQ27PdU +inio1Nln +kWhnlbHS +9gNGNHBW +fk86KJkD +aCqWGmw9 +fLQFVtbg +8F30cSfo +q7Nvm01k +e3KtoMB4 +fP7EMuab +dFcOHdvF +KU78767e +0PBC9C3L +tKH5s3vW +tL7NT52e +vQqW3AUn +Rb64gF7g +vibscedd +0OsA5Vnf +epd55q1f +BpNEM5hW +pINSrHKM +5AsGEkJc +IQP3E6Qd +rMh6Egc4 +OmU92PGD +4dERigSl +MUMpuEaW +NBdn5FRt +BDsnh7TR +HfSuqVqa +H7JLLitt +4VnmMH8L +eSNA2L88 +nrDP1H3l +gR7bh3SK +rF57tuwB +MGIQiA77 +VPDTUa0p +9Utwnjl3 +BeQvLlBP +12ejuDfC +WVuQPsbF +Bdld0Ds9 +AM637u4l +QFRWsLNC +29mHb5tK +KhmEu15q +3p370BHI +gudUrpSd +GP2ouotb +ijng62WG +gc7W2C0F +Np5pQeeG +JfrqjCvR +3PDcjFvP +5fQndOdB +tdDHFuGJ +WnWr4Csv +hPcSVI0V +SFG8IBcR +GPIvT7H5 +SmkIgEH9 +EoPr83Gt +h4mlBAqi +1aPeCiKA +rVEmVTLL +Sf6nMRRr +8iqvHNGc +giNOjM6v +tnvQTSRk +FafegpLr +KM4Q25dV +dHnC2S7L +FIJwquoM +ugHCESFC +wU5amSG2 +11cdt8nD +41jNACh2 +7djKSHAh +CgNEsJno +d3a0JVBB +3edW1RbE +UqVqRE44 +er2E8sEB +JOmH2djQ +GTTVOisw +ma2tufQi +c7iGrRi0 +nvW9QoSm +qt6uLKNO +9gfcbjld +2n6F9B5H +cggLNJ3T +fGgKvVNd +2sk4o9QF +KKbbq7Oj +75OVUPcj +cVBqC0Fu +VhNbavid +ds1CuV5s +soOqcJa2 +Fa5s0hG5 +Gr98Q4Us +7neSTHgv +wMjdTHeg +to94CU1I +kgo1LwCa +t66dhwPn +mPv4tG6h +CR263veC +1r4BCHCF +U4fe2hOS +L2vckVjh +rMb437bw +H9nOWA2e +PW12J2qv +elW6wNc2 +hCUpBoBg +4feJOl0O +PrAINuAt +MDop8e67 +vMC6qssD +k81ud1AI +q4omh691 +jNOm2GVj +4GAmfCkU +8qWVBAqp +CPHBFnID +0swKKFTj +TEiItq2F +uwjDaia9 +O2NNVMwS +N6C7fWcG +r9sH1ROB +qMftvlf5 +37fSBoLb +Fm2aJ9OF +AMFvgCvg +nqeqquwe +Ono0Wdop +PCV0fWC4 +4JBbwEJQ +1P9aNvcQ +LG9eAeFH +6tnVlkbK +7ilMvQMn +2iBp5FI6 +iCpgKJ6S +GMFccJa1 +O1Nklos7 +qgq578kJ +rrmHmh6V +qfCGENoF +UOqbJFuN +0IwDTDfa +AHbAIrBJ +UTo3wQlf +EU6s3NcS +MfWdd485 +2PUiHnRA +7BMQeb9R +EBCChhEc +SaCVVQ0d +80rAWJjk +whvWEloM +nB6bKUr5 +tJqnKTRM +Hd6dmJUU +FP9imI6d +tnwkRH7m +U7wLPrWU +qEwT0c4i +PlBpQpww +sa08jq7O +IJOJk4IE +6pu1M1hj +aiiB1Lc4 +pvcwtDqr +uKwV4c3U +W3Knaurl +KoRW9sDu +LvNVQ9T1 +M98BGm1B +SnU11W1M +o9ooCen8 +4iU8sDnj +rj9G6MGF +La2KC8lr +weCpMmm7 +WnUGe3Vi +vjPN9L7D +EKV7ImeB +I3QtHS3S +bNbV5biI +BlbDIfwv +fsTs4eh7 +1dNVMGRF +j01FC3KQ +VT0K00sj +jD1hBDB1 +wsmfcSjO +dtcW0OF3 +JWNn4Lrq +JuD7qTF1 +QISS9Wuh +EiaLiqU7 +TKAK0SM3 +nkQrtvbR +O06GSa1B +p30r615f +WivnUKqm +c1NUJQwm +NfsAlM3p +Toeg72cq +AHqOM7ko +jqpV4fNv +0isKNolD +oPgoqrIT +HqGqgKid +rsT4SrQv +AAtGwnk4 +lVeL09jo +4BnTr7op +hM2bJjDH +vSLrP72G +hwSWOOmC +3uC3cUdv +cOsQ9HhE +90EosqDw +lgqFFG2S +8RQDnvaO +cNb2NGFU +CeAvSaJ6 +n4Gc87SP +q9NoWdeh +0QhrtTlV +HmEPv71L +G8q8iO4j +uV89HvTf +RRTHD2wF +16vflR0T +Nvc1Aa7d +R2aJW3Cb +pf1Fudvb +fSR3QUWS +LwGjEK6e +B1Om4mqa +j7D9Hap0 +87e8CTmI +FQGCkFou +1jbk00bh +QwECaRhQ +rrjvEqqo +fM47SPSp +jgIr3mn6 +TnonaIuM +ASsnTO8S +eGKK7IFs +kqapPe6e +RKinANtC +7pVh1jq0 +9nbkWlj2 +JpsAEaIR +iUINVRMA +4b3UGhLQ +Igo2PtTp +OI9n9hNT +t36Ds5I1 +sRH5VjBn +vjqOD0E2 +Emuv6ntg +82TR9hJV +RN0VMPEC +EbIIUDaf +KkR4LB7a +iAUgwogQ +q5AaCQbc +Qn16W9GP +cppfHUfA +vdHrJw0K +PwFOv3mp +Ua0OFGet +er6iAugq +0v2mdkGh +G0TgipwS +i0ab8bfw +k72q4wjj +5Ocm3OvF +rQjmdAgR +TJb9cerv +12sWTl4M +H3hdwIWN +VUa1pDo4 +a9KBjAnl +nHGOFeq6 +VnKpNBR5 +eE3JG2jq +ngq9Uoea +cPu99SRP +84hShaDR +EIdjHssL +KgHp1jcF +Q5G7oeKP +7GbOuOIG +oIo5hK9e +tk70IBgf +pbUrmKkJ +D5Tac15a +wtbgWmgA +ph3TkfUN +VARtgU2u +2OLIQnpk +pRdBDP6D +CcF3OKlL +M2oKL0RB +fWpg869h +bbMb89AQ +JfKRf1nf +DiGNVQu8 +naFQnBKk +htWsDva5 +i8atIoeC +uHEWV2lG +dbBadehQ +LT1Q7iJ1 +hbWWoMpc +pMjSBiik +hc6uHoDp +2MiCqNd7 +tJmgAU13 +g33AgLmw +vFRbtfft +bmm0fco5 +u5B94OpL +j8TBhu0F +5WiJb7Pv +bBU6vuhA +uLrOwoCO +o3VNWuvJ +k4Nc2DIb +9lgIQHss +R9qiIMNB +OKgfGGW4 +qu0NbuKI +Htn2ei5p +GGWRrGI0 +LLvdrsmp +aIDnNsnK +sc55BQ5B +P3cu5qEn +DO829w87 +5fT64f4O +c835g5S3 +7hmV4Sc3 +awcEsQwj +1RMOUeDC +dJa4tfnu +WUWBSVur +v679o72L +eKLOps73 +nKmGrqLb +qwmsE8sg +LvQVlFc8 +lKSuqgkL +U0PkOPBI +AQuQlB9g +W7qb93I6 +2NlEpfKV +ME01kgI3 +tspW5Lc6 +Ru0qVFEt +E9pAPtRV +pPn0WGtu +ajAt8nQs +eBr8oLVh +LFRc4dmk +tC8aJdgg +tu36u6kG +9IbeTwT8 +TELfiHVv +ikBKnbGM +J09BU4CI +ocg53BuQ +UMVbbA07 +jQScbfUe +juuKAJNs +RVtDKCNS +PnfOkEvo +733oww20 +ClhKp2Qs +93iaGGMi +b2Wa4RCn +L6ihLH6C +USKgTaev +KK4QvMk3 +sbKQPfMD +sqrVnbnd +DeSR2UPq +DBJEBmq8 +rT56O34U +4bFVK1Qb +gIwbRDcR +EeFhSDo9 +8TjoQGcr +f4VPnAib +NrmJs4tV +eHvopH8I +qKlQJm8L +tSE591So +jg6P1MO9 +RdVjojue +0cT6tQMJ +CEo3o7md +QsHEApEB +pN7P16pH +bWLSwjqO +lk91vALO +lgH9pFCW +Cu5EuJri +bHGK0bcA +O3mMaF7k +pN16bijN +J46f0eR8 +WaRhLHUt +HQKUH2NF +KhIH3dRL +uVUWf4gA +0IP3FI6W +78mA61CV +3Wf0NdcA +Cs3T91Jv +5MAeJT3F +84JLDIdc +VHiSoj82 +ckQFGpqh +EFvm2Ntp +dnn7V8Or +OEtt1tRR +rNVTUNH8 +hr0dRbKM +ketitcAK +B4QbHLwP +pwWMSeU6 +kET1iDuM +FjQm4iE1 +9hVtlNj0 +CR4E95A0 +PB6cDHbB +8h2Dc2ea +cMwRatd9 +A4JBpCkn +Lm0fKCso +G7hNos9o +IsDoGm8j +ljLp00Em +WVu2qoSa +3c9LmGOE +CC9WN2do +3ceb7G8i +7N7QR5km +MAv1VHaQ +Qvt32A0s +iSlS2ci9 +MrHaWRar +WsJCrGDV +skNcgfij +UQE7hGgr +3ASPPHg6 +Q9Q39fmG +2nSR796k +rSBtEjcC +mL24N274 +GSFeSSJM +J64tNaaK +tpdJw88r +Lq4c1TBh +lUM4CpAi +StWAefJs +G5aWHFC5 +UNljPuJh +vr9pvI0E +eHEejwa2 +2U80eEAl +HmkDuUpK +BpTJeOde +dC9kTcSW +k9oCewBA +Im9nED8L +9hV3Na86 +teprRELF +on2UIkCR +j8QWTdMm +FVhlEb5c +9SfIHCTg +aktachj7 +6UPFHP3l +drEo221b +qnL3mVMO +bs5RqLcJ +oOLiruQW +0H39P2i8 +0mCL0FRQ +eqmVCGo3 +6oKmAOWf +1smMnPHu +I0UQf9iE +1GltMke5 +4hci9nJP +7r6N0kUJ +bSlQRPNv +W5MkGfFt +ksDcRl46 +TkHsPbKO +1rmgvjU7 +2HCoOLvT +eJsfbIms +7BogDhN2 +ALSJQdlK +vOUHflKh +S0D1prjB +4J8jKK2t +abc5D8Sd +4R4uteSC +I3JbebuB +Nn1BVi8m +ATquM0n4 +iUCghhPt +2baKBaFf +lMr7Pkuv +bHJaKR7F +khILWfIr +1TumkKoQ +v6ojfjvv +FCbfPrsr +3VUVR7G6 +nl7F6ng7 +sKwiutBe +fEqgHfkw +R5guCBwV +pdkoMHiv +VnD8JFRt +h2se9vlf +GfMmR9S1 +aWcctfM2 +AvEnDsw7 +PM88V1Md +DOsAQjPb +VJUTJOqA +MN8hpgFe +HQ2nVL4w +DabfKovb +IA1jMKko +WEo6MTIH +mFRb7RbU +3U9PQMG3 +rQfs3SLT +EcIdHuh7 +fQt9W6O8 +wIh0lT0q +lTcIK2EM +2C73L25b +sNVhrc2E +53Esr5Lh +oFN3Nwqg +jFewESEF +8iH9Uhlj +OpSvNgaa +QAqccpES +cnIlTLjk +EEOuPbf4 +p48TIPVM +uUL6Ju20 +WJWvK67o +LadRJC8U +31QQ61fn +PI7ke6BQ +dVndErK3 +N0GhMLQQ +KGVrsvr6 +Sv1qamQ1 +4ThaNoog +IjM6IPhA +FLj3LTBe +tg93RHr2 +E2MRLJ6D +ov8LGHr6 +fjIoVrjs +q0mO6w5d +dVVTlqif +o3A158Gr +0Q28TUwc +hfePD68i +iwI4a9Ef +QsVv3Enb +VHDvjq5i +BdLfCBcn +EA4PBqan +g5a6tS8O +dRrU2Jor +SDOUpNjt +WRSs9QT1 +Fwgvqdlt +r1QJT2ap +ljTjqkJP +iq3egCvj +SkPchI0d +GQKtlWoH +uW9jrctN +fHlw6pgc +qrJTde09 +Vnr1BQV6 +2SmIT3Tt +KsAvRQid +ibhCs2v1 +Kv4GqqS5 +qS4gfpnR +SjTf6KK9 +g0WlWhtL +9G3toAb9 +QwmIejHn +KQGOdCbd +soWQGVP5 +hMiFTltS +7p9KKOl6 +ppUsDuCj +afLhtbeL +igm4p80R +mF14eFHl +tgOfLQjG +idfb4jrH +ou4IEd0v +nVAWKwc7 +fgmrNU1H +6APOn35k +ik78BoCW +L8BUsn3f +MgTiWFvd +cujvHbdW +kBpTbhR8 +IlN0FDBC +bIS7b6We +aA8pk8RM +bgp4D4mu +1o6sw56o +c8IWFE0a +Sujlb7B0 +imUN6K8w +caVm2J3r +pb04IbKM +jGcHqrkF +cKjM7kpP +pqoJH298 +6sOLCEUt +miPwQOO2 +eFpwhl1G +7cdBVNpu +lGtPcUQP +WdT9wIS9 +EhV5NPUe +0W3b2L1R +7iRDenqP +MnS3iN2p +FjJs0NfS +n8AvREQJ +qEKcEB0V +7i6BcG6u +c5kFDe1O +b7Tkr7sE +DPsLBQCo +SKNCgNTh +Dw7vCkS3 +1cEChWsB +TbpvkE8d +Bmhd3oWI +Io9Ca5H1 +emNi2JKq +1TIaoee3 +rHu2ULF1 +cCktm2In +E10ejLs2 +PKuo1Uqk +DcbgnWcc +CHHsfcfJ +9SV74tkH +FOPsrkdA +lQ9BOPIm +I6OAnJBp +R2opE4Pa +v6fvcb0I +OPcFPIP5 +mtpB92l9 +Ah0WQpi1 +akigrtrn +RmmabdEi +O00TBvTN +O8dHm7Ci +IsO8doLn +dR22kwJg +gnCe9tdA +e8uC1jbG +0qFu2pfD +ktvoDdu3 +iwa7cs1c +4FsORU7r +uAopSTwj +08t9nHoW +LuKs7opb +6k54e79L +JTchfU4e +VHWmhDQp +6R2kBQCN +u4lUmcb3 +RCQHCAgM +QTVvSbiL +8aJLTcb7 +CqPmn2bF +Rgm9MT9i +Fk8rES4q +5oKOSPrq +QS8qjv1N +ggmlaj9I +r8pD09ik +2u17dtdD +pPplDDu8 +jCkv4UW9 +gEoCm7vL +qp22Tssu +UllkDtmt +eGhEBHkk +anJltMVU +0D3i0VTf +gGsW8G9t +BIKK4M53 +B7pOIjld +qHEeQaTi +TPVJ8HCG +F5O6e0en +S9GokTh4 +QgJateRW +hMhqHCdk +lGCeMt8P +5o9qMsce +sekEOF5R +Oa6wVatr +gwI4JE4L +qFHLNkmE +MQ5ihgT3 +3cr3WGVP +H2qTC1PS +DBQ668Ii +1K5TFkpN +uUJlBKNE +FkluD6AE +TjjtEI0K +i6blTejN +UTM2hCkH +mupgl62P +R9KasIv9 +moPkWVMc +q7OQuvlu +oQ4K2fWO +PrSCcOhR +0nCVNJAp +P2RvIVpE +D8I0UPDj +QVKd2tlM +L1aQ5Fq8 +1kWON4Aj +8nUpHM8F +hQerlG22 +qUqKgbCO +GcbAHRg5 +CDWOniEW +tdcpQLR2 +LCOioPAe +r6eFOj5C +U826q2uH +qRIQQoqf +dektfNS9 +OAo5IqC6 +QuBA1NFN +qdDBA759 +E6jB4u4i +Vwedvj6S +hPhUV4sW +aoLeE2VU +Db5EMAIt +S3lc1wWr +dCbiLAi6 +mbCEn0gn +h6f58OdC +6R5qhvff +OgsKFcUS +W0oQikIu +uJEuhVbn +HDECrpkh +bqqCeqoB +9dkCPwuC +Of3uAm7I +HDRDb3rF +qnwRA7oQ +ar7IhS4t +9KtOQ4ac +4EUq6pt2 +W9CCaki5 +MsWPNrHL +lsaMdpa3 +dT6sJovN +bsPgG2sk +OKpdqULK +wWlgrcOC +u213Sqem +C55kD5Fg +c15L2PKl +MNDDWBaF +vdAA6T8f +83RhR1mm +9PPLlKFD +qcqLB8s4 +jEhtB0aN +eMf6Ti84 +STd4b4fp +USFQ4Hbg +a2mvBbUc +867t9Wku +vwsphuas +iceNj5hA +gqACcg8H +PSJHkdWO +drSSlG2O +pEIcpCrq +UtdbS1er +8vJVSfM6 +d5LRWRtD +0kOADiUB +ISBVm9Hw +ug9jGCef +gJnJeGHw +BkufOTnm +8uMJfwua +LjjsHa3R +dw7rMqh9 +fHtR46Qd +FUbijQR5 +WKRFS4wO +PLt70AFL +pdulALHt +QiirHRHm +OUKaELNd +lwWKWn1F +u9KSQqAd +CF7wcEjv +VrKaa7pE +OTmQRkUR +O531JoWt +mmnHmSOk +K71Cf7tP +j8WniVa7 +bnu9s3fb +asKoDBug +WAHcWL58 +ABCuvUOc +5i7i2Cvt +WvHLv8fv +RTtrJaae +kaosFMgt +UJCh709e +fR2jwNvM +8LQqsE3F +4nP7V8VS +a06ItDS5 +hJGwVqEc +IfcrwPkp +fgNKHJwC +SgL3rlRb +CQ95tIfd +WnjDE0Re +VFRhUnru +bULlETAC +mDGGO85w +T6H9JA2t +qd85eSpT +3LR3PlrT +DvLLjevT +3Vv4L5Tf +Ogc7sDqe +mR8hPW6R +dumQNln1 +9oML7mHR +2MG2cdiS +c5GhlsjQ +sW56UnWm +KL4vKkNo +GHO38iIb +DUdRCeWk +sdCIBQ7e +EGPrgR9m +FSGmVcV2 +P6FTh6qJ +SI4B88L5 +CHTRhMe7 +9Nw33Agn +WFv5cCL0 +P2m9JggM +N2GsmEPw +kKjw7gGT +7rbGLbVf +jJQA2tMU +tUPQKImc +GNRLHv3R +DOkesfSR +DLaDqC24 +qN7v7RTT +r1Mrd8Im +MaOn4GdA +DJlIintS +n96bUaHN +AA8FRhAO +WpRvR5Up +wVv3PGlV +TULskj23 +ESNPjEmI +UWao31Wu +oGlrnaFj +ELjBRUdB +BLr01NKb +QCpJFINH +O62C30nB +02PRiAbB +IPEOHJIu +fHqTwvq0 +iJRAJuAU +h06JjJnP +k7iWMvwM +46arhDI7 +wsowS9Od +ELmo9SNs +0rgbCBP5 +KATUfnAV +PDAHE7gJ +55hoA2Vh +JLefIeDu +fAkIuHvk +bRwNJs3G +LwAm0mg7 +iS5J27BF +j5pkrlcF +gqr9A1kd +FjSCg32K +pTbnggkq +4DnCqSrv +lMk9OEAJ +CCC6LU3D +gRKlR0jU +JrFkDsf5 +0fTPm9cU +fMccRWjg +wlIWwDiD +J7pQMUnN +KChvQL3L +JWGw6pRh +oONOaMkc +902kOO2G +kDstLmEe +aqHJECkL +bj4jPdJs +cKdIQcKe +QpSlRTSh +0N4koJEN +5n1dhk4s +IUiU0aOO +BUCIn5nC +aAmm4qCP +SvauIhGb +l6wFwqid +LOwfqW1K +3bvcWpF0 +mvo4nThM +6eHvd80M +u9PJ0nur +A6Ncak20 +McRMp8ic +Q8CwIbQD +BVq6jfvK +oaDAVQTp +Qu5VOwOi +6L9aswHS +5GCTf2bB +MMvgNIMB +ffB4NfKt +domNnVR5 +P6HRb7ur +utp3KsLf +dUiAMAwj +OQLkA4Dl +nPD8L1MB +FaMbpTnb +RbPRU6f1 +2FUsd5Bi +h54ClgKb +mceJHdbj +8f6ULH8R +EaGMbtBH +OS26dMTl +qwT0re9i +Ptgs8vJT +KLFjAt98 +vRWNNNat +pMS6A7FB +GNCMg61s +FtH1Id1p +2e9FqjqN +OCNV2hkw +Q52BQHWk +BOBVrQua +LbR3PDFr +uWseds3P +SSDJvSgP +4ICphuoC +oMoQQqJ1 +wPc2IiE4 +jaWNNgD6 +dvIlitVL +9B0SRNb5 +ks3vl9Pa +gVujrrKP +1SsS8vpb +EeR8eSI2 +g6e8DdsS +WSWt8D6K +805Pwe7m +IHAI9Nbl +BbRcPHt8 +CqI8cPLc +5c6QVrtG +rrl59tVI +0r2K97Th +ivTsrDvb +wJ5u6KmJ +0GV33p4l +JUKpNOj1 +0Btdww7v +jiB3Tdd9 +aDTNuiTq +6mpwbwLL +V21gcnvh +lLKCaLCb +Jq1EorIH +sTTK3TH5 +CMVV4I6L +DDjP76oJ +n6FAq3gp +WFWfQtLK +JhcgdGd4 +Pb6NBppc +kNCp1jlh +rEEANaW1 +9dIJkD2R +7VMQkFdb +KbuCo9IP +061DcmFe +SCSi2EOa +Nod1Wtf9 +q25v43rP +9IBNuV8J +506qRLG4 +G1HLsw7w +4bT8Dmha +iVv132Nr +lA02M4mK +msII2LHc +u0gi7rUk +KgFShAKd +aGcgnPA4 +cPFwinOG +83qROg0L +41picESq +QoSaoHdC +92LtFQrJ +qsEvpmBg +cqbKRGtc +aeKnGB87 +bkFIuQGF +PSiDrcQv +97AO095t +2T9dIio8 +NS9tIJfO +g7qweBlf +QeDhV82r +2LlorPAI +Jg9Le3Um +nSapwolk +Nb4c5qK7 +InjcdSqu +c9KtwAAh +NpENvqV4 +i4lWdQ1u +DN7bW6mt +7oMqpEkk +tg9qAIqp +sbqN2W8O +2euQHT74 +PGVeBSGj +v9qOEvVs +UfabHqDN +0LpoW1Pj +fOn03mSS +MIUEmwg2 +EjmHFqEU +N9sFF7jU +ivRt9dij +7dSMqk7n +GdmHA8kr +B0HVocDo +UCQ5cSGL +U5TQ1qGC +4qAJpg2d +SgC0kSvs +HPTCsW1c +66uAbNdS +vpLTfn8v +rePm9sPv +qN1KEVnc +pdMtdJc3 +pkS1L4Tk +2tSnBqpS +GHkvswQj +q5G16r5d +oqHGCRQf +OoIRKwvt +bswsCpvd +CUj33AUP +RRFSioAt +LUPtrMJ2 +n57lTckd +vQM5VBtL +pFNhBfM3 +CuL1lPCe +2giJVN0Q +Ivgt90KA +u75ltHVq +0ROtpeIa +qvlnGndV +mDlnhwGD +1cjF3L00 +94OLOsjc +ltkPEF9O +NqnTUh9M +mpEPTGs7 +qwtasETm +7FQIgjfP +93SHq0FE +Dc94hjHb +G83vQFe9 +CukS7sHW +wWS7pTr3 +pU2F7jwV +jkMitqiC +lH4cWwds +QG4WcBnU +J1k9csCA +EvM56Prm +1the2lkU +JKoV4jTD +jbagEoWL +6AP2lrPF +Rmap8KTv +ahkihijA +QC7pT6U5 +ENQoCjm1 +ESvwjT1F +O1BnBEIK +P2jBOeb4 +0PuihvjQ +wpm8Krs4 +e1vWPOD0 +E7R7mHI6 +JFVIlBts +vCmpAm3d +SE73aAjf +Fo0wtBWl +4GHHwH1O +Vcrgl4Sq +7Hp2G7qS +lNVm0I7P +9kmtRntl +30OG3wjd +12g1k16g +dJELJUQN +wqfu9oWh +SkR2PFk9 +e7CiDlsq +TbHDIGSg +sQA68pfS +RDO6NeBe +FH3K8Os8 +ck62WdFe +QalitsSr +Lioo4Rnj +eQe1Apjk +uuwQnt2j +CPGC0bLQ +waWOgpD5 +A0dtjJMD +r1WwIr5J +uIt8Ewub +jEOwJU2C +CD2aHDKT +SImRg7NI +V27rBHLF +TbK7fjtm +c1OSplni +jrurIOEN +a0opb5fu +MME4neV5 +EURODkha +lOMsi7ne +HPdOhfO0 +93hbiQ9L +HjLoEGWD +ncf4rmv6 +iS0bWO96 +Uop1G41K +rMvAjvOo +fTlJcjKA +3tOM6i1f +e3TBqe0t +6ooH1j8S +eUIiVARJ +oqdJb1Uo +gIMokv1b +nntMPUKS +goiIeQBl +t90SSQ6t +fQbVB6vU +5SeW4pUt +bo3iRALK +gQcEAtqb +FwlDDMiS +d5VgPn23 +EKogLn2P +Oo73VkuS +neDbHh3D +21MTPqab +oGWkJHvc +1AiWivJ7 +CWifDE0H +0VcchHrV +iUiHE5u1 +aaBILcjP +maPuHiWT +beBhvfra +NLvnWpeR +BtrePji1 +F20Dwd9K +TloQET9e +ki8HlgSD +csaCTRc5 +5p7TCjod +BT7SWjs2 +L0klSe0V +auifpqoC +RjNGoBQT +WK1iqiH6 +i4GBE6Ci +0HLHiklG +F74UPU0k +QQhHp88e +Ldp1wE7i +qGSofRiT +v3JWk0mh +vpCTb024 +MeP2g9eE +rwQjIDIC +SGpjfSon +ajS3RAk4 +BssJ9u6L +kvfCKJsb +UQHDGU4E +BOk9Emqb +aTR98tCm +nV8M84c6 +cvPNUplU +t55tgcrQ +MB56Nn65 +a5ah3pu5 +sRfh0BqL +Pu3CB3TO +OiS6jcmh +iQ2drpQJ +OtPiVKSQ +etPtqTW7 +R9KBNsLM +UI6jNWap +4aS98geH +fiHe0tQ5 +GJmNoWjn +ToDVIklw +aRe57JHP +B1qnt7sT +mv1Em7Wi +8kb5W0Ov +LSIuMPWr +I0u268uk +lePti49N +eeuOSgdg +KrkpS2v5 +qq14DTpI +7IEMEJ5f +tneFiKFb +WwoBkhV7 +PmhQDiRM +VUPPuQPv +6n64o6bd +TqiJgtL6 +Wvsdns99 +2VanP1Oq +Ibv59gge +SoWWaiu0 +f1wAUDoN +nwCt7iRk +78BK6ITB +DOK4jKcl +kUPSrLkS +bcbQKLqV +MRCgHhQv +LkVHNCeN +PogLWSlj +ulwJfUAC +ttaWIsqD +mfeSkHFo +owNWdWEG +uqFWi9tu +kcFUFc43 +3npEgu6m +m3N6Eo6w +a6buaSV9 +7khBQD3r +0P4Umcvf +fCtFPukR +AQevPeVL +fiCv9Hsf +j1a3gbMr +iB3LGcEU +WNUTO8Cv +PpvnKmFh +eKEhqLp1 +k3lh00m8 +Qrb8I49n +LiKQSjr1 +wJu3WhsP +h6f5GHE1 +RoCbMNFN +hw6SFOtk +KaIWSlvR +1mtiNvNt +hbVKuJnc +dQwCkWDe +E8aIqKuu +JvsEvUqG +NgsHGTFA +P7D14hR8 +KQP94odS +9B2Ilqsa +TUtFi7gc +9osbePFf +AVFBIfmq +pjRkivBp +WW0HBPSl +cdaD9l4f +MmU91qhN +Ki6tnpqe +NJcWcjAv +lu6C3LM1 +60aL3ThP +9Hu6fCqe +ApqSB2hA +tPCkLjVe +J75wlanB +CTjnbUVD +i3Wb5ljA +a8UJWlp2 +Vq1jWJO8 +6kv78C0G +KaUwIOIJ +SIH6b5eA +Thqv0PKc +mTRBUd1K +0CWGsBTj +MfEETO67 +QpfD8Vnj +enOHWVmB +h3AK2CaB +wGNSEsQv +eWaJ95fn +hS0S2FLw +kwaks5PQ +Hf8v5KpT +s0dcHKv2 +VwSbQ7wG +O2142woW +VIPv26rh +hUblvN2s +gbw020sU +kQu38QoR +H59PmRCS +ijatcHgp +SEOfweTr +I0J2rGJT +MoT182bk +p21ck9iI +gkSKu3ic +1JQ8b7Ec +33qQjSP8 +vdBam1Dw +1OONTD3e +DOi4QPOA +hw56mScK +6B7CvPtl +Kmftk0SV +Twc1vTsk +Kgbfsmb8 +W24NHkcd +aK52FUcT +lFDCUHqj +ED5285MJ +VT7R2LPj +THAgijOm +rHSsa3Il +o5vFRl2k +WmbcgE31 +EOvNo5An +nToOp1qc +ceu3hFQC +WlNqlnmt +q6lie949 +0m0HDWM9 +sG7dgA4T +B2EPROFt +FjQAFQE7 +8aHrhHl0 +l2QS9COq +pGic4P66 +RLIs2Qgq +O98Nu4aB +Su2gFMFQ +jGvf50NS +PgK9P3pL +MDTdfCv7 +lK8fJvcH +3lKMDUgt +wp3LNCEB +PTvUSKes +hEvGgSjC +6gwiNPbb +ApUaRaqb +HD0E7ICi +Gwu4nPlW +cKqeMd2N +vrBSE1gb +HCWpTL6D +BGDA8JFu +DDUhDq2i +fIuwvMej +j3qnCpK8 +BSqFI9jl +Nc2iFiDi +0dosOskl +1BdoAVvm +LRct9TGc +lC0TAkw9 +knjaqdnh +481FvHvn +sCQntbRU +7M7luEFc +vKK96h2S +HhUuHcRv +1U058sEl +spR7IDUI +mEgDiCQN +VbLNcQBU +TcJiA29G +M9Ge14rb +HwL85GhR +REvSGoCK +gE3RL5gF +cPMw60l9 +hAa5H6Av +5POkDBGW +UkKAr2VN +0QfiB5jL +o0oK7CfI +JNoA4lB6 +CkCjNS2H +3KKHtM3P +Qv2UMCSM +TiC1RpR7 +Skuebwvo +qnDAULPB +CfRkqsA1 +9OTavoTr +eHeKJMcR +HJ2mBJmD +cqIa2bKg +CpvbB7ud +CKIF95oA +w9C0Gjk3 +OagkAIaJ +PRGITRp0 +rsiccFwt +qA9T80gE +eukr7sTd +4tQKaEb0 +BeIavNOE +PUL7ubvS +sAckJdBW +8wniGtcC +fTDO14Rc +JLqf9487 +etPe7vI3 +owAmQGM9 +v2RWB0sc +86AeBguH +mqlCvqDK +iIMca9mO +GjWouVRe +tceAG2pO +s4HNfskB +4LGsC1Rl +G4t5EKGI +gdMcprjR +97mWQn25 +SKCsMwS9 +QmKIuqBP +7Q78auIr +FjQ0BRL9 +DTSc2dVL +LumVeeK4 +kaEuEGp0 +busSv26b +J80wMFKv +sN2LF3bE +VDQjfWfJ +MLUsdu7o +0Tb7TSC3 +us7vfJF9 +QPPJcfwN +v1m9kOd4 +T95HDK4l +dbe74F7U +OGaEOMMg +5S3V8jcF +SbqamCjQ +GmvB35ER +jsmGWFtK +PlV8BFV2 +tH9CmptR +jlj4F66w +NaNUvrF8 +JgpAIVsa +t1dL5En4 +qPhtf9t9 +aQwuPs9Q +AClK8EHO +Mb2NtjO8 +Na3NE3VV +3MsEvRRT +u7pLERqu +rTFhrlVs +jA7NK34c +Fih8OTRL +SPPdTK9Q +1SsqJArj +JRaHcM6r +U7W3nMDp +Qo8F85gn +lh5oTcLW +lNT5VIqw +98iCK9mm +1bbiTjwk +ugQ5riWE +dkR3shJV +qFwWbsRp +fE3BcCr4 +d6V70FlE +2dureB6F +ESsc5ndU +FbqRKPFQ +tiuWTbjH +qobTpD8K +9Bebn6VR +Uu1Eo67e +RWRUtEId +BW5eHaTV +QmNjTMkJ +pCJorDsS +Lfn7FbDT +rof2OPTp +02gDpKSF +KHhdsMSS +ovld32HF +iSkGBJrI +ms9IkD17 +QsskrmVh +5cgiT97c +e8QRinAJ +wMr8DDc2 +LlKfmkvd +1VoKTbvG +SRlqjoEc +OWFbo70w +ir3MMRBj +KMmNPivN +ciVtUIES +0IPaMIlT +5Up0cB6Q +tBauWPUT +WhCPe2g6 +b9GpioJ9 +TpVH4aMV +uEdWr4iu +bLDw7DD8 +8hn7pokE +VHfwd5mW +4achUUNW +4npMvrqF +iB1dfnj9 +JbdRe80c +FVravsV1 +7NhAvEQ0 +R9eOubGI +PE07Qs6k +Lhcs0KIu +L3slEF2Q +8KhMdqRp +6Hem15Aa +wpIcDi4c +IgUO3RLQ +0MS7seGj +M5QdIJTj +KQQ9nHQA +lJumfgBP +sOw94iOr +AEGnjQ0d +wfmEe99m +9JwoVEfe +Qb84Clkh +ekk1ReGP +04AJerFQ +BJ9T21Il +9VaeS9Sr +Bc7Ci2v2 +S4s5o2pI +r70VGtjq +JOO0vGHg +qh5V6Jkq +D6hGkCCq +j9nRT4EE +IPdGCDFi +wN34u53i +IwUqL38l +VSuWfMPe +IkfGqlqk +CDCLvkb3 +mPQVT8DK +4OwcIoLI +IcdiJ5IH +Qr52kWkm +fM9mg0Ns +PSCkaQBN +8HkoEhvm +bPWUUNrA +erjlDIlV +Vb78kSJb +1mAQ8qCU +horathaE +so8vvNMD +79TcQEup +gEWLVI6E +nVeH3Q4o +wvVKHs89 +SnqS1iko +JfNvPCRP +EILsW1Jg +ssVo6tVJ +Creperh3 +RVnEfwvQ +4QS3RrAU +Gaf4A3uc +rVhvkhKO +aswRv2sJ +fse65d6k +8N205ThH +KIMhDMj8 +0LEKlVDp +3POCmjNG +gkrBwNml +6UvQiUww +rUm3MTdk +5vhVIiIA +2Cmf27NI +qApWowka +5aUl0b8q +kB9mHM3d +thif8h8P +F4rlfsjM +JqqQeF9R +8do5wGnv +bHR1d8p2 +GKfOehWq +JqeJfPin +lCTdtjF2 +LapUv03M +53QummOP +j5rIn85R +1iLlVpnH +f4Lfnu6A +PEsAQOa7 +V2JGb4ad +csTsot8W +6p0TvEJL +dfOe026W +Uqi9Pspb +RJh0akC6 +6dSpTDWS +qu2cskbu +9A3ePNAB +LdNPCeoj +Ku7Fn4MS +gWPm3DW8 +7GkMhEuk +pHrInADa +JMRjjgeV +GfQsFJes +kVcCtdNQ +72hvKJqq +ogQ3DkVc +jdDKckCt +ksGAKHp2 +HdIH9QIu +SSiRQJFv +FwBJf4dS +fbiG51HL +oWGOBDOh +rFnf61u8 +kgEwWG2U +1wmu1kMm +iIiEcpU1 +kndldK0S +ha6EpUv6 +Dr1GgkTR +fC3Jq2da +q6etN2Ks +FkPsletN +NCnaN6qb +f8ucdraR +AnOThIHo +nC0iKj72 +KRG4OtPA +nfv2uJCD +v5p9rqcO +NrW8u5es +j6m8hphL +QvDv5ATJ +84RIjbvT +QVoCVMGe +LdJ7jovw +lsvholJP +OdEAakNm +t8V88QIu +vwfuSRGC +CNMIGcDT +N9tDo6aJ +aCBF96JO +4d8MgJFH +QNVST2Ad +AOVPOCut +6N5VsHrD +K3sw5m3l +1j10OQwU +4aRbT5Pi +avuDVHat +5L8uFT0A +4upd7IDB +w8gmGqet +LP60uEGe +kFkR19qJ +JEMtFFKe +rMrfLFhL +GQVm2nWP +NKlPvFmo +hPO6TQsU +SeN6Qokg +FUfRMU7v +82f38fTn +W8Dge48G +UNvou4k8 +bUpefdj1 +bP5u5R23 +dtU1D2s6 +t1cMd9B8 +WpONLIGJ +Ef94AO6C +Iq20JNle +jP4mjObb +2OWFKedP +5E0vhaa9 +eG2U1B4q +7p3U6W82 +GkgPc3LT +otkwk1SS +55809t0L +qcWMg145 +D6NEVSFl +OScwGBjP +nS42luRr +ceCubEkD +tt3PM1uR +8FdAwcWU +OdeV7Gjj +Tm82b08n +LnsIsS2h +GI7Cj9fe +AcNAT2Qj +TPBpkT51 +TurERqEr +h2FHVluW +s7ii8sTl +AwgTlsr6 +7vqFPRsV +DEUpVC9h +pkMDi0Rf +b6cmdUcH +hrfq34JM +MbS6N4kN +KFJ2gC86 +m1IfGFVW +paCbloEP +0UKo8U7d +ntwbqU1W +adhcDAaF +L0rN8Uk4 +wRtdpgvH +TNs4BWL6 +sU3a9UhG +qLPuILQe +6EISteGW +d3h96iu3 +fbu7dN3G +ru3fmNFU +KwMgj682 +kAuKT02b +06ELekN6 +csk80hru +maA9UL7O +TnM9G8PA +klH743iB +JLl3oNRI +TO3o8ciW +v0HFfPCQ +T295DQDm +RhFG6LBg +0d9TIkhr +hsBvbntt +T9kdm75k +OdNKCucu +P9OQFV6K +UwwFGPw2 +rf4i3EDi +bn1GmqSp +t8C7jk52 +nowhRceF +CViFl9qb +Ap8Gcr0D +oB7Ls8PO +BGIgshe1 +CCMel4Ji +70GjBFEG +PshL2lvb +0qF1kUTM +JMT68INh +m3B1LRqo +ag2boMOs +Fh8enG9s +kWnTUl1P +uhTTv8br +gSL1qNdL +a19ue4mI +UILtGctV +VKvFGtWh +FRWRsggn +Emj0A568 +F0jQihRo +GTHtlcLs +TbfKKM7e +1ShGtA8R +WHbLWTuM +pF34prhb +uEAhLbue +hV4pQK7S +JVnvKEVA +DlVSeR2C +pCC0wS2E +aMi2wlSt +H6Kh7MfP +T15kwp66 +JcTCUmBi +VvH3eNqr +jk9aprMv +Ke2hNQpK +e3Mw4IsC +Fl7qFo96 +m4mD09SB +bDlMS9oE +w8V6bddK +N1jB2QA5 +bJPDMQU3 +K9GPdwBH +idrCUhik +Qhc19pNW +gugd674K +4TdCVHds +lgDVIjg6 +oflckH1u +Nm7Mpoug +e2TsQb63 +tgHDlvjs +c7s3wFsF +MLf01aUt +VhD6TIIn +0Ikfb9MT +VqLOwc0C +gTlfwKCW +od3QKDVc +G4gqSkfP +D1OaAbbE +Hok23TGB +udR9fgHm +kWrh3aSa +0I1igk6N +0NKHQnSp +2qKSc0VU +pWgeQDUA +J8h2sFw1 +SWgJivww +u48tk44N +relP0gJo +DNNRQmTv +LNrKj4sI +EAo5i17f +R3HUDqgv +uNqluWBU +A1eSWiDa +6DhTr5qq +pkkrriCP +qaCViAnD +2odVJDNP +j2aVcqaj +BagIi70J +2rWLDUsf +cv9i5CvI +6cHL1VRO +4PrSWW79 +j07HPlFh +DnGeQeSa +tNck4T6r +ed7J2Gkb +biqStS4g +2lvTOVop +kaQcmLwn +BqdgPHtf +nfh8J0S2 +T3HSnMHE +jLnTJTgb +Hk3IwChC +kmsMEWdD +AMoFmwnA +iEjT4HUG +p1EGbERA +of54gajj +2pdWd7Uj +Pu0wBT1w +qFTps3To +lv7MdR4O +GHBV7dbU +2cb55Rbf +749r8aro +PvNjlqND +FeG336ew +GK4Jvrel +aCuhBbAg +4T5RqUIW +HDRT77GB +ObgtoQ8e +Ro9V9Mfw +MA6DtLgw +pjKoJF33 +VdwRTK7D +KNkPTVqG +frVn82Bq +DpHTWiNG +nfrjOmSv +qrdEojLv +TF7mpBQr +SRF08KK6 +INJhkQiW +oasrJg7O +Dp2CkRr2 +i3EWpUR4 +q5HsadbT +2EEf2BhK +qwJ8AuE4 +Hwdu2cui +OjoPsdou +eTw0Mgig +bb720aHi +nn8vBwTB +FAjsnVbF +0iMDG1RW +V4sWFdr3 +FRLW5Ff2 +KFetb8lr +BMUQvopS +IJJEQKRa +CT87JbkU +pjPasp6d +jF1WRTaC +vuhbm1o9 +e8QoSKdO +ghGg6mRI +GfeBVWmk +EIJWug3l +GrNGkCh5 +TmkD2gOd +LLv4VTER +bpHMLf6F +Mm3Cw704 +V72WNhmR +RDCnc5SR +wLrKtEO2 +9g9WLAVS +RWHn1bdi +uJcej8aJ +3mfgHM9A +sU087M2Q +awIKpPtJ +q2tRjrip +uLiLR49l +cIv0lGp3 +L1H3pQUl +1ABwsj44 +tmcbElRs +TVtFPpPP +f2Wt7kFi +Lwe61giF +8tRbe2Nr +v9dPsjkR +tJp4AVHr +h8U4h1tT +0uKDQ5So +7PFGcP9Q +1d6DRsob +u5JCdspE +uioQ10PS +Ju5FMH6f +KQVV4iqw +PB9ekmW2 +OaHVQJwj +3wpcnki4 +q7rhNgMk +ciCuBN8T +UDrVv0hM +gKqSuni7 +4sBqbRtL +fDmInnEo +7qC0cQeB +okrpprBu +CgWaMamV +bgkHvESm +9RfF7F2N +1rHj7JhQ +AKP56nHe +pRoGe6a0 +cqNQ5QPG +DsUTUuKr +nkteqvTJ +6AnqdsCm +4sd7r8U3 +wrQ2FUNf +hmtcJme2 +f6g4ankI +two3ACBB +oSUbaLv0 +fNLFWHFL +M2ITLocR +nRkbcDrr +Ak7pe7gR +73j0SMMP +ijVNTe0w +olBut6DI +ir0FnJwi +oj3BJTd5 +vUKnPK0U +pI1LuUOj +76A6UC1q +qmTtsEVQ +OccRfg3E +6eTpBhEh +52ravRVO +oTefVUrT +f6DPgtCK +OKgt1mwV +rLv7m2VH +4KQfQTCf +p8wK8Rd6 +Jwp7rqb6 +CwQb9HIb +jUIiKUOA +jGCjfAfb +QtrCK8Li +aJ9vIKDS +nDGGVFeU +V32WsPeo +CSrN1Ns0 +Ud9ogN11 +kJRGCu4W +O26lP8Fd +1BfULTuI +mHsHqh3m +RiUAf2Uk +wS5tTl50 +dEmg2QqC +UKq0vvKD +2cADAQgI +Rnj5VjsA +ACllmcIw +9BDeD9Pi +6siArJUq +gd8tSfD9 +VQ7dTAq5 +Djp5IR9j +sI1ai4Nd +6AwdMnUK +iEUoMlWI +RRu04NgT +5ILs3SqQ +CgB055fu +cRbf0hUM +5N3MrgWW +hcFQAc87 +tcpv6FFs +nJRvDo2V +7P785LVl +4ne3EAgA +lMoqmpBi +1dA12up1 +EVNoSEIe +fBQq3i68 +PcoQ5WAu +lqVcQ6b2 +9hVNfB4F +mV6kmLQs +fED1fWhK +B4N1GoFj +uCdvkc2L +3qvDMDs2 +CVH64LBg +RL56Blsr +5aEef7HG +cePUBfw1 +2E7mOVPe +4PLTL0Or +wsCnTvg9 +9HtOVF7V +CTSQ5GlA +JgFCkpcp +TE0mBWhk +SQuDB0QA +ML9m7KDU +D2aREgTw +Eho7MCTP +F6jfAM95 +usND0w1H +B7iQ90V4 +4sSdGjMw +AHBbOANE +k4Hk0KKB +LkswUjDb +m03HWOVO +BEEV8NLA +cM3GBGfj +JAiGGu0w +39aPf4Fc +fJHBtQkv +c75ALAvE +2930Ifkf +8DoBraQ1 +uO1k5utA +eHKdDvHE +VDurEo7s +2fHLQIGg +EMcUPRU1 +FKsp250o +EIEptd3S +IwcfqDOp +uNmgnp8g +vcFOpkd8 +KtW7rJ15 +RlKbURIb +0BqoH9qb +ePKbMflT +klpcp86T +I1WWTcV0 +SV0JI9uv +KpJVvBSa +UEMRCfqe +JIOWP3rI +K959KuBe +HJMMpMJs +81Mv1iq4 +u829Ceff +oOd4u9qe +SHfSqR7K +vkkEQkG6 +RscLKjKC +obJJvlrH +LWLJ87oV +qRdSUaSb +4IM6CQkH +gP6HL9v0 +1i6BDU2B +QsOg8OWN +U9PLaDfl +o2DEDCUt +4rKCIfsV +aI680IUb +qs3CDWJd +45VTdJPF +V1cwsMje +VAEVsaHo +dpurKL9g +qdGRBLUU +O8TKDWfW +7drlUDeG +7u9AgSA0 +QRmrQ8hi +qrnBO5vj +9FAwgwPb +K1lKt8EO +rukAkKMS +k1f3OJvj +lq6F9LHB +kMNvfass +im7M0PsR +4ogBNamV +90sMo7Ut +gU552TTa +ajjqqEon +oa8Lgw2L +ijUJSRtc +36hmR95a +5Eg8kENA +5iO9oJ69 +wDuKvA45 +lQRSL4Rq +QtnFIIa7 +c9q4rUlI +tKrc2E71 +cRDvjTJ5 +R0bKt34N +kOL0OcQs +6Irr9o09 +jesVkR9l +NPnq0QfW +KPPjorvW +3GQpEIvq +a6D4MKQG +SQfHPKdB +Gn99tkvm +uhRV4U1q +aOW90vPN +2N0Dab3U +qCSJqNJH +mC7S7C95 +kwQitTsA +rEJDSUSa +13aKvP3w +wdfP09R2 +3uRP7QJO +kJFMTuf2 +arpHak0R +lsnJOGsO +u8eAkuiK +fd0G3OMl +B7sAEi6f +rQ5sKPp0 +5aiQWUCv +kmlmU4J9 +k0bjE5se +BPAU67lQ +J77OVCih +OIkgLm4r +4024dVBb +Dc58ilDR +cSEuwSAk +u3FKs2MS +vAnr1p3H +I9HVfguk +KLUKccqE +pTaEnhMQ +h51aSP3Q +g4j9WIkD +5Q8hdAmv +mG8h1FI1 +Nshj7P4v +HlM3013L +K6Qplq0m +hPF2tF4k +7HCvS7MR +p7OuAEoj +VgST82Qh +mTpIUSOF +EnEQaAn0 +jICq3i7L +6LLaDSlo +oaRWmdh5 +AmeGijW9 +3kKPTT3H +4nTVbB4C +rUflJccl +WI0IQArr +heHOvc7K +M1bFpohK +k0D7V2q1 +jeRbcbu1 +140dWRUN +QpGLR1am +04V03DTA +1eT4CGGu +IFRNWIFa +LVsr8jAS +uf2gcgPC +sEPVOfmK +UOohwrbg +318Wljon +mN9jpwtn +CsPOljvm +AqA51FIH +VDS8K4IA +19hND8NC +tWamjR1g +qjRNkq4o +qvSJbbhF +S27i8ohQ +OHFgu7uo +frCp6CP0 +oLJVdUNb +FLgafVhK +mnSgku1E +FjpIDNaV +ea7qwKWD +UwdtODCf +VKMQMULp +s0a5vaTO +raeBhIB5 +g9RnQcHf +4C7K373m +9CASuQHQ +gOnR3v7m +mtD2tDcd +V1Pq3JVV +rgjVfJbe +A15G48KN +RGhQVJR4 +8ubJmBKw +737rOogp +sg7Lvg6h +GpUOdoU3 +eOokLd47 +kd837Kh9 +l2DbQJa2 +4D7uatAn +n4qnflVF +HvBVdvCe +rWKp211t +kpVpSgwQ +K62rsmKt +6cOcm5Fp +mbSMB34I +tnfUN4Dj +17uureV7 +tUt9qOle +L1lRpvls +9vjuUa3P +2QBAToU5 +UTEptrL3 +6U7jq41t +4oAjjhlP +CeGvq1bd +HgfJquJi +OiWrSGo6 +BSN9oQKo +laa3fv0r +edilCqhk +qpnwhcHH +1jGoJLk5 +cEToiscQ +H8nN543k +E5gLI70L +19oGW33d +g02jwFO9 +gSGdieoo +ekdOGl7B +nDVh6QQT +b9ri6v0U +VEVLs2eL +IlB5RSoj +CBPaVl8j +dp6sKdfu +TaP79gAD +WpjB806l +lPJI5aO6 +95awE2G3 +n40D8cHb +Faq9b70n +Mi2UdMSE +CDVcP98t +BiaHdod2 +ibFhf5iO +qLTgOW4a +7TA6nk0O +QLaVVfcB +wbmU8Tdo +bmqfwkL0 +rEoGJQ3W +gHlKNvKm +FwRtfWBC +vqC3tS3N +qabddseQ +LFKuJSGC +gKJp9oou +tjC8KCOI +RJM93Eqi +ulL13Jic +kVkt0iTg +guWH9WD2 +rhvAMM8j +H63fk7k0 +3ecOkWC4 +Ngq1SEev +noA18vAK +U0Fs8kgB +B2fmdnvt +E7JF0tI3 +12jj4Bi2 +d84Uok3v +oKSkiwnF +BHJtEuBA +A5vIQWrk +lDQDTVpi +pes2MFgm +LorGK1BU +MT7Cf9dV +SAbRMI1C +52BJoDdW +t8I9Upag +HA8dBFFL +kUPehtKw +Wwd1LfQQ +HPtt0I4T +AGw7b0K3 +tBhDJSw7 +L5kelhkd +8h1U7qnw +vcuUI75T +fwVVuEdn +iUWhmM75 +aO9rRQOs +ANBIt20M +k4Db6Tb0 +HFpq0ehI +P4C3ngqG +jGgoHIHo +j5wg44Rj +Vuek6oWt +ns7Fepoe +hJGa3QgP +rawt4W31 +Jn4LLCHs +9ddlvsQ3 +PE36rBKU +EpvB5luj +n5gFn9oP +6aQbKgno +AeoFAR4o +6lnPA1j5 +Js7cRQdk +gmiIcNSR +ihdtdquA +Fj6lauDk +ErDio17k +CSoW3gdp +7pG1ACBS +iGfG8PcE +W7HRBfjg +Kws5Wkt0 +F1BdP7bL +uuj8AJMg +I0GubLFq +gebaaW0d +NjpnthOI +QK5ehwRS +vEUOm7K1 +aouPIe67 +jF4PTcJS +whlfbn6J +6iH2Sd09 +LEUEP8kE +pA1sNjIV +1Gqfitat +S3C0wVP2 +DqQmqLkp +bM5s1oW2 +0MlcmBhK +4kkHqLic +OjjPcQIa +aQvKvc7v +bMppeQcR +akF2Tu94 +H7SWRFLw +kBDuPnd1 +cHM378D2 +HCV8mcpM +dATkrNBb +UO6UajNg +5OHhlkUS +gPTT6RKr +qf0MkvpQ +f1wBwI9a +MD2j1V4J +WPoTtuJa +VGQpJ9AW +r155oGj6 +fCKgTmCC +CPVS6VKf +Aj1fGqLL +JO9slOdo +lG21mM5e +4lSeHGMU +nvisf6c2 +BfdSGWfj +MdCuWvFB +4QdMdFDf +JtIqOmSL +AjlKEqAU +QhIlQFR0 +BJsBoRcm +KpCD0wBP +UFQgEWU5 +MLlmAlvP +WujDplww +F45bssFK +DgemjSBP +BK3Bb4RF +vRudDwgE +8w44Bhq5 +BfAP5MaC +UkfCcu3M +EAc3Gjhs +bG1QSLTv +i8r2cVS7 +33JUEBeC +fQiFQIcT +D6lRF8B4 +5EL1sBge +LirCqUGD +R70tIAFk +jrdE9dow +AQoLREEa +kUtrBFOA +OsovhhlW +ltejSIuc +4mncTddE +904OhQba +lbfgHem2 +hjNCFq8V +8jMPPa36 +GGW7Mtrr +e4rJ0mfW +Ipa1Gp8m +f2DS6mJ1 +2sEpseJU +0EbrmeU0 +WSNVv5tg +JjMuTSHO +iHbPldj8 +7vvOsIe8 +GPq2Lmsi +wpcqdrEC +vLgJp6Ni +ftI4JRAw +begVOlf4 +Aasoq0w4 +fOCLAmMS +G0a3fF10 +JfhDEFQc +MVj3VlLc +oFhDgcLG +OctQeh3L +oM1F5kIF +vi6n9A1V +CKi9LfLp +vjGAGQwk +w2l037dW +u6jehMkb +GDojmWFD +3uG32vmS +FaOP2VaT +EjlCuUkf +wv9HB3c3 +TqsB6KHG +89Jm6tlk +IR1iqn0D +2CdQvP3d +fe4P5NLA +6SIjU0cL +OBWpWeTr +AcVhSCnf +vI6WHLoq +SLhfAhaK +Hc8nfSOF +3mM50UQ4 +fv9auvHD +tgIP6P4S +Lu57Ags8 +3U4mjafN +24Iml0CU +jMRIffps +cv5up5Bj +ObAKOiBg +qWcMWQ5R +c04OlhOi +CEEdVtdD +AJ0DTfnM +qPOQ1u5c +dEGtTWd5 +6vcasGmH +49pju0CM +S6eQ746b +5cqleQio +1OnTFQLw +dKk7OSUe +DvVQ4cbr +DLEDpst4 +gDONmK5q +H6FH3gBU +8rUOMbLg +KDNkbI80 +nkrWG75I +Pp2Madsq +Gp9a4UVA +hfDVm5Id +4c9AaaAL +bdg0PBlg +OqdJVNnR +gvhLeo22 +fW3KJJuP +aRp525wh +O9HIg13p +fGjiHaUD +dSb1S70t +bNjM9krU +ldcNC8vT +El7U5m0B +0jMUNvcq +kejvAAus +Kq90QGWf +EcpmPMpj +CgIWVh0S +HGWoiMlr +8O8F9ivs +vKH1mceq +7KJLCNB6 +V0VLpbSm +V67rR2QM +VeoWgRtT +uih71u5s +MqLeDRAN +tCPWurco +chm45Odp +2g9Jjosu +Es25krHf +9RkLioFU +sjqKrw5q +gc2Lj4i6 +88uFQWAf +BMROKji6 +HIfObiwo +JanumQTG +3A3npDw4 +bvTNp5fu +CKTpDaCb +mFjj3T97 +58cTOBg6 +5CEk6oca +MrwBcCq5 +dFtBTAig +aLa3jhnC +F3wI3gQq +mo5NOn3V +bPTNirqv +UKbJRq04 +EUDDENEq +iq41nku9 +K2o6GoHl +jWu1QOv0 +FswUd1jJ +1ht9Uqh3 +bgT5RV2B +m0q6FSCc +OEFu2Fd7 +b3Gl1PMA +90DHvkd2 +Gjv8PSQu +3LIwDsLP +aj16jJa7 +OuLMj8sM +lrl7mEqC +wib2umBQ +kmjSOT8E +jiTnncQ2 +hEU4JiLL +fMkjR4qC +sL8RkF4J +2nnQG99k +wu1NOATq +j4Sh0AMe +671e33cb +Ls4tqSnG +luS2QWor +ttJI8At8 +2MKNliwA +w15d2i64 +j5HawaHR +N7lIurPf +Vi2pcGJN +stbfuRMN +vImUDtWi +DQd6270m +mH5tl9kA +oV4rJBf5 +jbERRr7J +5OrbB5Ia +Agh6sBeJ +vbaFe4lq +oNwhAOeT +DeVDw00C +ctr9WpPD +uWqoQM60 +QcOAS5Wf +qNDWo1dh +1GILO4f0 +rco3vsnn +Hlm23Hle +iWQ8o1h1 +o4n88058 +ICsbMqU1 +nQffuvmV +Prt9vF1U +kLB1EP7q +7mQMkv2I +OBr2aJwB +0VjPBtHI +UwkOF797 +qtv6WEug +MJertOm8 +fmPwsln0 +Jm6cwsp3 +I4g9iusp +V2IaOwkV +uIgN6hPM +i7mWPtjN +bg1p9c1w +ANieDPu1 +HvKEQMrs +mp1JiCNp +TNWK4WKq +pCtEwBEf +B6akbClH +sJiMH8Ob +totvu7JL +oh3l75DO +qb1HSvjN +setHNEw3 +8RthmaPi +S05iH154 +OkBujdUV +iiQeWrhU +v98m0CMS +RnMlPlE5 +VSpBSqoK +oJ3D7VjW +t9GC8nVC +OL6Jad78 +wTOQvb04 +NSnjoh8G +u2Gbfp7I +Irl3oBKt +udcIcDCc +wRamCakP +Pb2A5mCJ +4eDVb0ha +vCLFFplw +9An7Mihs +mTjnmQgv +P4s52fOC +0VQftI36 +PjL1gSlR +wkQwQJoE +5B37al7c +QDJsTv8I +K0wrjAIh +pUF0EHWM +HLTnwKTn +ntAktj60 +PsQLEQwD +AQGIMjHJ +kIhSTarc +m5o92hpa +qFGmVFUV +wK2im9UF +o1FNAFLN +s58qeOqE +qjlUeso3 +MIAl77ds +qOPsNewO +NstWfbPQ +7s3nTjof +biLocl54 +94eok9Ch +V4BadkCS +05iFijrR +1n48hHjh +tfTJ4GDn +fVVKBQlB +HBwb4JdP +GBhuLkKN +bl78MWDo +3Ancqjno +raq4DiTv +rqHJABTk +qvWpi9SM +PJ0FNr9t +gJqUk4VO +niWngrub +GLFmK4JN +OB5hj9po +2rtSo5cF +TddlEvsO +vftisEsK +80Gm4Gad +191ohItm +r797UW7E +pF2tuqff +jafQrPJS +RLJRn0Mr +g2tmOBGw +w9aGQQPr +rGglQT1M +Jt7bOPOe +PLPV48vB +5iAbJ2Op +318nqF02 +K8j8VAsL +q86NEDMI +aBs9gHTf +SUp1fD3K +nCV8dr90 +mJJ7BTwK +glaQnLlE +E5kvQ5Iq +GeBktKe2 +ujhupqS7 +ISpOLwaM +SUHt6b24 +wpMRQ42O +mbpvPUlf +QrvJ6IjA +42pnt46S +8Sfu8KCi +mvWKPhWo +9gTrvQCV +4khUdl4S +1O8uPUos +f6eCjrDN +D0qJfqBk +jPVmdqnc +kL4SlrW4 +oiM1JkJE +rSiVfpOU +IpbScqrP +NgCjpVUM +BO5HmQDl +b7n2FrwS +wgU5UTIt +OHUlLLDP +nF3jVJKG +0A2R9ThU +NRIgj8WO +vURo7Lv4 +U7ShlShw +3Jn8IJPV +PagKks2E +GjQBAADl +pBHL8TJd +jowfu55N +j0ndKrtg +DnLNDiM9 +7CwIdWpM +tRjjccjc +ff3SvdF6 +ALTUbVPD +hLMl60h0 +upf4bk9T +M0JIJkij +rluHh7vj +dVuSI0Vb +HE5wCR9T +NmS843Ph +Bm18A9E2 +AUtOEDvB +SUF1lgf8 +PicLRhTN +O5DIUeEd +8qg09V9i +4rphVVdL +ORtJvL49 +j5ViQmgh +3hnkc4eB +hPge5bnp +2e4Dn7cR +MfappRhr +ngLatTEn +Q6hls4Rf +q1RlQ1F6 +iBmj7fJl +aerTTcE5 +cDlgITL3 +a3922MQw +q24r8C3R +Ql0w9god +geL9Tt5O +JQvGdm7M +2MNLjWom +jWLEhOrm +mqGbmE0f +64W8kEqo +t5HeAuQ3 +If3F861P +8DU8mESf +AiITNtGI +kMKvaIq5 +kuj4PVNM +KjmEIuPH +WT2FCmG9 +vpglFF6c +f5LFE9cS +Wu3wOTww +fhfNbHD2 +wldKpsR6 +59EsUUW6 +4ObnBb4b +kR6wlhe9 +dcL9Ujlc +N3tkbQCT +4D5L1Wsf +rd9FHnrs +WAIIa7br +Mopn9rhO +OLFbvMAG +blR04BSv +NqcCvh0g +ha03Mo9M +itcvtsAs +HdJIlQbK +4R0l6RJr +aEMOTtJi +KrLMvvMh +wpdWlUP6 +DKNNKkvL +sraG2vV2 +nFBQ9rpk +5bohHiIT +t0TpldQ2 +eSeGhAqu +UR53EWcr +LI3jb3II +NNldpwwd +trV9hS6D +fDm3aC1D +fnPHo4MT +vWsahU2e +5hkBWANR +NbNdhD9m +eiAe7B1E +ijP4eqmh +IwJ7gekk +RtdWSdWK +v4hHA2rb +Akgul9TN +t7Rf1gPJ +OjQPlEwQ +7grUQQrE +70amTwD0 +tPSIJemi +13BiutkM +BH6jwErG +NPb8nhOo +K1pEL7Fb +9JUfIUhk +2QF1BRWU +0rocvCfS +bdTqblSt +EOV90pti +RdMh1ovO +4GNmMm3a +2N5Qc9M9 +oPTqTs8O +6ole5win +TfDWHhGj +oFU5imF3 +oFwtD3pl +gbqeTGII +6Wfh2hK6 +95odh3wb +BuQLV96r +F2PDddkt +WvCdqlWe +qMsDIAwO +QtiqpFNC +5HaoaGQ8 +PwojOT6P +mDaE0gNi +DMos7Cc4 +fJ2bo4c5 +NuoWjPm6 +BmQfJaSE +UEecvq2k +9pA1qQ9T +hGf4DLaq +3Oimnhwq +hTGWvo5B +rup3CmKV +j5ND9ODg +khJsdPmU +qVqKEFN3 +eWGoS4lC +ulEBivUC +qrAAAB4J +ncS68IE7 +fUdjm148 +A6vK1Gcl +WUpCmrAo +AfLpVRlk +R6BV931t +Uomtlq4q +DqHLBrDd +MNkf04dr +5sPPTGKK +7LTAAnVG +wnLJ9CME +iCTjiUKi +gh0oK2wT +aVGBmBkk +0eW09dFk +a4WjCNgv +oE0t443V +vFdPa0qK +kDH2HrGE +168oNi1r +HnQ52eqK +Ctk0bu3e +o2Qv5nU8 +hhViPWAa +GRp2pTsA +HllQ4ueF +q3dRpt2u +WAG1ofLT +05knMG3S +qnIH2Lvr +3FsH1QnG +bpcgN3NL +InEKgW28 +sEgMI51S +SacqWLkN +fL9vRDNB +u5E0w64H +noCCF0UC +0CK94SmD +JB1m2VRn +TRPdD6Gw +AdfmWj36 +Rf3ogOJk +17h3virB +VE1J8dug +UDG7w7mB +46TrRMG8 +Ahr9doE1 +P4DPTALa +0VhmlgsS +KkQiVuqg +w4oiStgJ +heWuToOl +gmsdJvlL +oTVEgMka +hqDu0r7b +B3QjGQP6 +J3LkncJ8 +Hed0KolE +nv0KTL5I +slFLcDtV +kNqnDMre +GUsm7klC +hPe0bWvg +Ke6qNEtP +pIF6SIAv +pgfvQ9qV +bD2cIsbT +l3vwoUqS +9AQs6Qh7 +DOcVhj0N +CghO2EqJ +kSfpelRC +NlPoIm1h +c9LHVlSe +HKtUfmQP +sntQA8fD +A2Ls6Ivo +vkS1nDJr +77KmKj2C +Wa9jWfKI +heUpDMcm +6Oqwt7W8 +ERhinir2 +uCnWmgWn +7QWD9ENF +60PVTUrM +2Wt9Qe9a +Ev0801p8 +iFRGF1Ub +WfkNW3P6 +6BIAT9nV +1ArBllkf +0CgILLJi +8fFeQKmH +3vndQtAu +7wrUC2AJ +ENpcRojo +KDatTWqB +RhfkrtpT +kkraPAsF +WmSgN1bR +G8q5SvSq +NnFReJsn +MHuuejed +s7mecmoN +R5TbRTij +Q0fdTN7P +SA0AVGc2 +2q3AkB1l +U55cPtJi +q5cs6AcE +Q9bi6k16 +rR0N6861 +gjLwNp1C +hJupsppL +gsm1M7jB +UFu3HBo6 +oAKcjEmQ +i8EfBd9T +WlWJUBGt +I4c30DbG +SOGhoh4Q +V97RrRAa +73DKeMdf +48U57Ujs +Qn4fAUDR +coseuvT9 +bCl1oMr3 +p4aA8gi9 +sVoVw8nQ +JRuVQv40 +c2QaWj7M +rfoKFtgG +g5wd6pAv +08p7VdTe +OeIkqn4U +0j9R0GPP +Ab4t9Pg6 +k1GRG94B +teIvDEEo +8l48e3jQ +SKAN3E8d +FBm4DJT8 +JhT2HPr1 +MhFqPdpw +UBr4gN1Q +EneLh7s0 +1Guh4JqB +nK5TsSV7 +tAA6R1sr +bVkpRB8F +HqjTjK8t +bHkB19Kc +V7e8aUaL +cfoT6Pgq +TqwbuLU8 +h5AUNSIE +fEBLOpGo +7uPOd3l8 +6utVudU1 +fuc1js7w +QpU6tQI0 +dQm2BJgb +BBQQjEwt +DqTp1Fu7 +i33A1iGJ +PoNJHPOu +fiBk35Hb +vPlhFcQh +PeQEUqMl +795IPWaP +kfCEUnOB +32nKAHAq +7dsJTLjk +b1dwAmo8 +s02SetlF +mFbqlOrk +gsaBmpKw +9J5ssRGD +kB4i5bK3 +NT3MsBae +ibS2OEKJ +JqpPOLpg +R8AOvrpp +2Ns4SwOr +aklPGvCO +h0jupmAf +GGAOwTdU +PEsPw23P +A7BKhbnT +02gjJFPN +JNKCJfwO +l3khA4bf +UGiUkvA7 +VpRw8twL +tfNSad0o +WsRoUvIU +9hVuCfGh +5STlwKW8 +k3VrSPLh +MdiqGi7j +9ogv0qN1 +ivEvl5bp +rCOJDk9t +MRdpgBqk +EGWL3bvA +4mheW1os +lRkmHDou +c7uKboiA +BRNHewI5 +jT2HgAtQ +oMDtMgG1 +HGLKeReh +vr617e58 +03BiTBT2 +Bha4qRU2 +LamN8gpG +vOD3WKg0 +IoSEpBCD +KIreIcvg +mBm4K4Dq +PbRgjQgE +RnogW1BQ +K4KqA5c3 +Ng28H6Ww +SPkCKVKH +LJ6bHI1u +mfmhLij3 +n6EmBuJI +Fcgs0c0o +Oknadbog +p3Apui8r +LlJht1uK +Cmk4h2Vb +lv0PgKlQ +aqtG9Clq +rqtbQHp2 +aAaNWccN +MqAiPgFT +MumoUkAm +1uOvECfa +HgNcS47M +rVCEsBEr +NbqsVEdH +otslash3 +UtfqgJ5f +LL0PQ7N3 +59mnCrd6 +LKm90sBp +mfgcuCA5 +3EIE6FQg +PahqJAOn +t26QNMVd +tbSonLcD +a0bDo6de +6pTqKRmj +eGAMOgFq +5TbhwfSJ +dSOQJdWO +2brkaQDD +pMtqAQIJ +J4RurhGg +O04gJenQ +jla0D4mH +SjprvCbk +nn34fIbd +uaOehpEW +J57f3AAb +WgIJcNtt +fEoVp2MF +hRinAB4M +FNK4ghcD +qngQgba3 +uNRgb8NK +SG1fmIdH +T6SH7TUF +U3ifNBG2 +1EmBIJvs +Mu4b317D +kHfFaw9n +FjjwCiGk +diGN9ADh +ea166Q1E +AJWBU7oe +gGECPg7H +SUUwsVQI +oAn7KO4g +LUJmMJaD +eCsleHGm +Tio9MQeM +e5GKLh1I +q9OS0Ghq +cbiK4b11 +SjlW5Tev +TFQP1aTK +nD264L3I +NtBnDftI +Qlfaqf37 +HfAqHqHM +44PeAsBE +S4nF8eTj +MHs9vqme +CmR2Kuqv +BtaTsd4L +wqtHfNfR +7tkLDqOU +IOiuEO2P +TKoeAjV6 +Lu27PQHG +T3P2seTG +UJvoQLhu +JQ5EODLk +p3iMenEQ +RBgHCsK2 +i3W4BOi6 +1qVg3uNM +lVKEmttS +r1AS90ao +4PqqgMFq +WTt3n8fn +uc7Sifps +rT73REWH +QudbJKRC +56GaocAf +M20CB5DQ +CBEEiNsK +uBIbvE9U +s2kL34BP +rbjmhsw6 +EEbrtoOP +eWhaqOa3 +DkTTDPgj +FcH3L6E5 +Cun8Vm2K +mspsmnDk +V5nAC2W5 +7IaS6ioV +naajMSCj +ERgNTCwr +5s2DRh4A +eEtdkhLG +4B68LdNk +SuluCvch +glO30nn2 +ui4sCNP9 +QqHFIdwv +AnNK591A +BmOHLi0U +i1kp7FSM +gfrfHorw +sTsO0H5A +qHd7OTae +krbfaBQN +N2FaUlsg +Nwc7T05g +sFgsBOHi +gbeRt9J7 +c7sORDLr +rqbjQl8U +cUv5NM2m +AGqB6HcV +JDpBGn1e +k1PwN4Nd +ep38eM4d +odPopW0i +ekfL4bJE +jwlDkO5D +1Hm3m7r5 +PMNgMtoa +qhS9OAHO +VgA95Ra5 +qW2f4FiD +wvAh7EgG +Kwmrwkor +TP6OhtsO +o1bKkr4W +VLiSIU5p +e8pL3Jv6 +CpqVfEPb +W5FPKSb0 +0AWbrV0g +CFphKgEw +r1wD67eP +Q4recapj +AsH4U4D0 +SRct0Jdb +0brS5htV +H8C1oVCD +4d2nb1QI +aIFRdGVM +mQMTt2Bs +FtIAbStr +A0mSIshs +4sqD67GS +r1lLakE8 +lUJdPnFc +ieK15KBo +H2pbvVDN +iKbvI6LK +qJUhQAOJ +4ovBSK8f +B2TTk6Jt +U00qqFN8 +DAa49VC5 +0qO26poJ +VrUp0flO +gI01UDgn +n2qNlRlN +PHmP71RT +wsNFGBJ7 +FQcISRtV +1eSjNBLM +ffbCNQQS +qJM6tmDc +W7OUHwAA +suTiQdOm +5SgOEnVK +AIbuh7vS +CeDFdbJC +PA344GV2 +8V1JgWGu +CSjoPNdk +SPtAda8n +jVV2rN5V +BRFb1aQn +9LrPGpmB +AJGmFTpa +8IwI2iGd +hlUDBcH1 +TbQkdCoF +UphuweVr +KUidTBip +O3clWqG0 +odTvM9SR +TLfu0mm3 +O3n31DR6 +HRrfN4kd +PJ7edNsT +fOUd44bM +8jps8BT3 +NCbUs732 +30TCFvms +Lt1mhD38 +5mrbSg1E +CRQD9EQ6 +NfAoASnS +VjuPjCRw +e0Ec4nKj +E42M4CnL +tns8e2TB +rAnhkekO +uP4h1tWt +BFuSb9Nl +C4R4Bfn4 +4UG7oTEE +DlmBuGNe +nbMbkJm2 +tC8JRBdb +U62dbd39 +SoAHgjPk +76nd8eOO +RNSUQEgv +KChe4kVa +hVrBv9aL +Ht9pPeaL +8eAAEs1I +qnjOhTRJ +WG0IAfj0 +hRF11kK6 +KHiJDHhh +0kLbbafB +VGGSMuoF +bt54VtiW +Ghk4ABL3 +EBnevdeq +mt9LgrL7 +N5HUehit +c4OMSd8Q +PItDc1R8 +pvLdBR7n +vN64qihe +1QMWJr9A +i12U6HpL +StSs7Eus +JtMWTibN +SIcQh2Gp +jebPP65F +JEjnrAme +4vNpJqkr +TLMQ2WKL +fihuJo67 +MkqIO7b9 +HjjAS7w0 +CT35pkCB +sC3G5uuw +6pD0m8Ck +BThFCa5p +mJpqiaQK +afLIemWv +laGN7icS +BvJ1IPvS +NoG55jQ7 +Ue8Rlu2B +p1RVDJjL +ma2bMoSc +vDJ5tswv +0OR4CVwn +UnSGm6BA +tpNdLQla +pUCw9nR4 +PqMmoA6w +9lKtQems +CKp0jb87 +BviuTpsJ +unEjDAuA +mmCJfegu +a1WfbFbg +06NPD51q +flTEkGgp +w6PIu14q +Kb7uK2ds +7l3Cm5Di +1mPKpP48 +svdiApNU +agRNiBRc +mAk0lE3W +PhGwAsrj +CmMlHoQE +b642rdqD +AQTAqJ7j +nJCWLeis +KmCOMnqa +SmfwPFI6 +nc8W4l9v +J5CoRn3f +PF4JHA3E +7hgjj4SR +rpq4VqsE +FNut0HkC +npi8MAm3 +6lO8hPiM +dj2IIr4d +teI2ps3n +nu3wqhdi +rD2RiKaS +0GOKf9Pj +n5OSdLrW +MaHgHaM2 +QtVhtift +dfEELVaL +InwOhS1l +f0L61ws6 +Fugqnwkf +j04KOTJP +qmA7W6uP +soJnGAJP +h8jViP4G +C6fjHOBl +u8Lhlvfi +fj2GS3LE +RTTUnH5n +p1p7bbtL +4dIwqj4c +86FBLIod +gp3Kke4C +N3jKsA2I +4Tsr2UEi +8elSE4Ji +GNOsvu6n +T9CvjJoc +6uDlJWsA +10NBbh98 +soB8PjR4 +6UACdA7t +bAluH5cD +QM9ulDPa +tfjCrtDA +ElcQgO3C +cJwosqer +V6K5NoFR +mdT2H1wM +2AkarLBu +7iNcburf +N97m7WgQ +A1ANNr7t +uCJ8PwEQ +1aLb2C9C +MhviH7s7 +jtPoHcfW +pcg62Ogg +4qmINPdE +Es5q9nOW +l9qHHCdU +vLBnTE57 +1L6BL9I2 +N5d0ggig +7KSDIBE6 +5NnKaW2g +e0BCcPp3 +NcVlRRwa +1cgPFhOP +IhpcOPoc +btrLKNcO +cRaJDDfD +CLfJIjRQ +SgngRJHc +grnmut26 +QDQv9heH +GnUeC2K4 +Q1qTjWGo +d5PpHeb3 +H3UIAUGo +0KDefaJt +UAiuFT4c +r5BfGsu1 +hRVuN2sU +6BaMG2TI +oqvUlcmI +srMd0o8I +LSPIQPpH +L8wv9G0V +jP4Wmfbs +AAH33MU0 +U4rc86BP +sK13Ja1J +LSKWJVe2 +fcAqBOL8 +kBguv5Ol +sABB29tN +vA6TwtA4 +1AAAVpsC +K5KmBhgi +8FgCwLUj +6lEOA3cC +PHptiq5i +JpmHOWc7 +6lrKiC77 +KM9geegw +lWweiLLR +cCfU03gk +nlIGWMr4 +GG5BlSci +2S78khr9 +2aC2VbWj +tfFJG6f0 +gw3m2wuN +oKbmLG4V +FrWHoj1V +ANlHCbwB +n9Tu2mfP +5oUEFoow +BIqqKnw1 +PVpgPgdT +1VuvohJq +cEB6ME9T +WwuKdRdq +9edTlDVe +DPIud9t8 +vuu53NIo +gEsgNpnq +cLiiriOA +AUfshN2F +HJ4nBi1O +krdHUUSB +tQ6iKcuM +UDF7STEJ +EMHrQWa3 +v3ObEbc9 +cmph7AcO +AGbCnO2h +epbwRIw0 +sl6MAlf7 +ghOaPwlC +NMARo4i2 +9859bNnV +ECQJofE7 +FILbMcHu +IaiCRCw4 +o1Ngaodt +5olQnTTj +t5IGPma4 +8gu2MPs5 +MwILIEQa +gaF218Lj +v31Cn9RJ +WuT4kfeq +a6Vtnqcp +GUoR41V9 +DsfneAWF +V2mNFlkd +rfLsrbpV +ea9CokRD +ijWLUPkK +sAB8LmfI +hOSEudGh +N9h4W6fl +0iSdWIdC +pb0jQgFH +ArpL8PjL +0iKw46Kc +3nRPmR8L +3QUwqHe3 +CJK4e6Qr +MwvLB2QF +ARJJB4O1 +t0MWAReh +5mBmhv66 +CFpAdoJ3 +uv7gmKng +FRL2mePD +WPUFepFm +8Sqt38i0 +bwK77HgG +G7TN2NrF +lTvqjp8M +krOPN3Ev +PFbe76pF +tqURW5Jc +0lLT2ecu +vViFwqC6 +4RBS0gWp +q3U5vrii +sPlT88dq +179CrF86 +Ff1CITKb +JMb3q0DN +45RshQQr +pB1d5FFT +Id0O9iK2 +4SfCeivW +tqUcP7uL +jhQBLKfp +BPdEAG67 +C7F3NEvc +Kd33cs9a +h3wNoeTo +4TLc6cNO +78dHi39K +mrqiKCmE +s9ISg1GD +2FCQNc9J +3QQ8Btao +guAaNo1K +SWQkJ8EF +mBurabqE +P4Au3Jak +lt86dnbp +gQRla8oW +CKdaI5HM +WMdRWTWf +wO3f76vF +QslCqka6 +Pt37N8kc +iOBGA2oL +3adi5uNF +wurw4GDU +OinUdjQW +aQW53bao +J1EossJ0 +MQIiVeto +hlApnIBj +GNa5JLRT +C0OvvPft +gm0M06ii +EOpq6SsJ +7wUe3md9 +4i8bsMl5 +Cqat1H0L +ErajvC3N +iO5f3O9c +9wHfaPLb +13ee3hUv +aNhq04eg +68p2OEag +q5cjmLoE +EelsGkQk +2l7WBFMr +21sOk24N +tLu1fc1I +4ilQdGR4 +WqUUm7Mc +VkNvsuak +4HSMkpIM +4i06JeBO +wMmfqVHs +JlSQFWwf +3igKAJ5A +aE6ljGF3 +DdcgTMlh +PsdqwRTb +aRwa1qbw +qi660LNR +htNJCeng +AgDKlPE4 +MJNWafdv +B23Tq6tE +BareNpRU +OEGSM9Vl +MDtOBWD6 +FejutB2C +JfrWUL43 +SLsgpgS5 +iGhND2eF +4D1p49Na +UiG4sKMG +62ltN0f1 +0etuFTcU +6h1ro1be +bv10poHa +jpIb4dn3 +Nk57IrOP +7uV2wHen +45wNLiSB +CQjABvJN +eOpW54sI +vuDKC34U +aIenwmF4 +WhA4SNSg +KfAdr5fE +WSjtaKFJ +ipCAqJTT +lLahIqwB +WHJwi95H +Ahr3O4Rw +k34pVIBa +r9e6d3sR +wQapuH6K +ULufVRWW +g4LjC6PA +38cjlcvG +B3lkou47 +ws27D7g1 +mT04ilM1 +3A6Mkhq7 +Uvt41jQd +8RvU2smS +pbj1fTSC +aLM093R6 +KSoo5ApK +qb69JCkV +aH2c26Iq +lV2qk4u1 +EegCLmcB +1c6q4NTb +jsSNRD87 +GidsOvh7 +J2t4Rq6t +vbhJ3Wuq +7g6WC1V3 +iQDBb7fK +ICt8H4ui +LlGmS8PW +clfQTU3w +bK9uU2Kj +icB38EEs +A8dLAfHa +KShfk8el +u3TDGau7 +LEq2LfAG +087wJh7q +VS4gPf7q +QAJQ53CC +AKtHUQs9 +LN1Ta8EK +MhV3crFO +UlG69PWU +JPJrCkMr +7e2eJTE6 +V7WVBmsj +sVtDQ8OM +b2fpgiRl +iRCbVMlf +AdtqlgwR +TBtg1N1P +K8suAGS4 +R7eqLG2i +sGB92mMA +NhTeS050 +v0aKMMjm +vC9TeGIN +WsopEEo9 +GOFOjNgq +WsnBHmkg +FNlEteIi +MWBWrOvE +SAL4wrfi +wnl7toWb +4Thre4n4 +WMjmnAvJ +4olLM3hu +DKu5WlUN +pGUbwvhW +FPiP8JkL +5FFbiTh9 +KQKg0UeG +qDJ8mcwV +Ug3TcMG5 +E21Td2tD +T7pWaecQ +h314gW1W +6qRJ1wNv +I96M1Pao +gkTisiQo +9oKfU3GL +inwoRoG1 +buUr8wTB +lMALrKiJ +lHi0qgUL +A3vD1dGM +st7SdThW +P1eC8JMN +AsSuSFgV +FrFJnP5m +gpONaEBf +31RnM7ci +tMp9bG3r +8sL0PSvI +MaSaN0Jj +0N01rWkj +0QJk3RBQ +RqEfPIuM +DG3LA0g1 +bspmwNc2 +1pvmD3lv +GV0onO8m +52ol7tgD +119oJJqU +3mMNUaKB +DEjfp0fO +OHFam8jI +17MFDr9v +QhAjgar3 +NQFgatJa +uFlnEPTl +Qafo16e7 +blTtjQsk +kkdemdaM +BL0bWbq7 +uiFLvN5j +pLarwV87 +BBcKNkQW +TWPnJeUa +NcVDo3T5 +c8Kbu0W1 +IMhlIpwU +KmhMacf5 +lsmDpIbm +vuq3GHNa +VfLerag3 +oRgH8aJ9 +aGCcJ5p3 +HEB39r0o +eaa0QpH9 +o7jfAToQ +PTPJoedo +SBgi9OqA +VspI6TNl +VgLkVJCB +KHRNRIf4 +7VBOeAsv +IIv0d61F +LMRWNIad +b0haDCCR +tsfccowU +qEUJ5IGR +ujW5qHcu +iIockbGq +pLSStdf8 +CLbRSLC5 +n9qM5PMS +m9nUIlRM +PN1b3q5H +id2KQGLf +TLaiB5p8 +qgEh9tet +HNpEbgjN +JJW3KfDO +9nMrBNuH +laTqJc25 +W5f5o6WQ +J23IOQNH +snigqDHl +epEmHmng +5TwG2cgh +IG4fvBWG +h1sP3MCN +oIDwwfhh +ddEW0THE +P7WulklK +mnQIfmRf +oTHDks0c +lWreAsVF +dfTwRlbE +VoG1vEkP +oHvFElo5 +PfUfBM6o +2tgap9Fo +6m8eGrpt +qBUrOgB0 +BcaoWThL +UMb6dhcf +2Ew2nQgk +lGEfbGCh +w2JN6NvV +sITNuVAr +3WlgteHF +uLDRthFO +oNwSV6Ue +uihmGWUl +GfE0D3K1 +aRVpJNBk +T2krA0Kw +r663gOj5 +sj3PdkId +0NaJhSfT +GJsgrBS2 +d803luUR +i936Jekc +pia39cV1 +G0paC6fB +Em4bI6qg +9inIf2to +fiNmvJbo +Pi0K9I2H +WSo8A1vC +N3njKUbW +goaJDPOu +8DP35EOH +paA9h2fJ +9FjHwk19 +4Q6KAgPG +02wQlCqb +N48RJTKC +hJm3avwm +9vR9bN91 +LTlF1KU6 +lk26mej4 +bj7HcrjV +T0BdhPgd +UtrTCeMD +hQ63F65T +6K73kNJc +SQtCGF5h +0Q2MmEJn +lcNtWrJp +RDVKDUHo +9bgmcCDU +VS7sNAdK +GJkh2d6w +aKuuuiFl +mLRQOA7w +kO4DCCJ9 +a0r0rGgv +un993awQ +JiNtH1Ur +h2wSENtG +WuJAnm78 +GerGEQ4w +ErBOu7Uv +GriEe1Ca +uRrSFKBA +ko42Qnmv +JAgLUbpi +mf2OOVqD +iuqh7A9F +7D2B65QQ +HNfJHaub +DUNsifUf +nvum1CSG +5RvmiCjl +CQp3cLsJ +Imq41oS3 +CD8KvEbU +GssV8jmt +j5vkNPTo +oKMORSub +rwganVTc +LWaSiqT6 +dc3PGhpi +reqN1II5 +TGK0taHU +WCgL7CnC +g4R8P5GT +ewNTAkUc +E7M9F2Dv +Jbf0K8FK +bBhdwK8M +6lpvqPm2 +Gr7iq6nb +22J3MOo9 +Wtu1jskq +6CgTFWlV +aoTg0Ud0 +0uU2p3h6 +6TRUwjth +wKtVIp7E +5G61orT7 +W2tCS9tC +fnrP8uvM +sw2R8cB5 +6GQ5atlb +Ku8LFBf5 +UiJtK7am +OO5woSHD +VB01GDLQ +9e0BIWWt +OOOOwrkp +KmDMegSg +9VP6R1hM +QOgDiBGu +UcThvaLQ +KhAoo167 +ffFMGsML +GBek4cqL +E117iHdq +mq29pjFk +UdePt9sn +AUCfRAJB +2N371isK +D60LkLrI +fS83eih6 +hapCQ0E8 +laEmLq4R +aNAA2SRD +4PIWPUsI +FWJc70dq +HQ3PH1BT +6iSgHObC +8ARGBed2 +r6jcnfal +Psw9a6tA +0Es6GEsa +sw7FGmFk +MigCM67n +lV5vnBpQ +W9l83BPb +K9NsDcTL +lUjFQE9m +rwR2ewWv +uIONIiEC +vSg478VD +KDB6r105 +P0UMEbn4 +MAlTGptB +0JDQPMde +FU8MCn2C +d8TP3Rsd +SJgmUsqn +Cmspv9Ac +lKccRDtg +F17DDKBA +i7n9scAh +fsim6lIi +gTt0gPlO +QB33VUWV +jFaQDaFN +qsagoWbF +6E4usRNH +L3VlGt59 +IwcNbB5i +6qrdgvnG +kB4ULdUI +DNtN3EKN +hOIKJ1QP +7SNAMmFU +2FGWdd41 +bDLMQaGb +ogJBQuSK +aD0QohMs +suFGNcHm +8UsGs40p +6krGaP6O +BftJGmGg +6tmQbIOn +ccKiCk75 +EUD7rTi0 +sgaeUIvN +Fj9kg00J +lIHjAlNK +E7ciejpH +1wrAs5QG +4fvjSFr2 +dhf4mTj3 +Godiobdk +fhmeRVHj +IDUOI3gs +KTFIdNH4 +4WqSv5Ra +sN4i8MtP +olj8hOu0 +aCVbgSS2 +tBVbsuBc +KdKQL6ju +kUN86eUq +PEbsSubN +s4U9DejV +Vb29FuN2 +s5BTHwDV +E8rLSHjb +LsE0i92B +jTlnHVUn +udLCt0ba +T55Lnh10 +ESasiVdP +eoti64j7 +RMGFll7p +sslaJfgg +9OctlV2k +r6rNphjV +MRrND5SD +7ra1vRbT +lF38Egv1 +EKFOOphl +wh4UJUNu +B4k254JN +GlLI4Sfr +MOingg5g +EWGp71gj +WJpLOIGK +Emm1g99r +uvQVNvI8 +M2IpAECg +wOdlTRro +W2nNMTNQ +b10sE8rS +4URaeG8g +KugTujGv +JE9BocTP +bL2wQiu7 +LNbhaoPT +19vosFnS +T6tUQC4O +pr64bNM4 +tpekK5aq +bvcPojnD +o7ALkgGT +V5PABVKG +FvlEkIbk +CSHCw7On +dqi3wuoF +Keqfj03A +VjDqINfC +c1oFQbJl +Q2LqjpAI +kqH5QJrM +g5s08h7I +pmGWpq1R +Su4RWNbo +2qgHRdmf +dELaU5qp +48qK8uuG +dFkvcHGP +oR2QPcFs +4uiUJi5d +07HTKlDN +8ko9iU8g +JmLDmn30 +WHrvirnP +M5eLh8aK +d16wtRLE +KQTEPlTQ +THMg92aM +6NDph1be +Dd0qDWhu +i2tqKLlG +ADwv30e2 +Edd5A9TW +KSA5fnF8 +5rKIpSi0 +iwGN2d4L +B8iVLAN8 +sRVlj52g +9Ii2jhm2 +8r5LwwK3 +q5CqoUbN +LQfmIKIo +hrlLchJ4 +W3adUAni +cvcTSK9W +Oe5etmL5 +f4skudDU +T8a05vLm +fRBEDWtW +EM6JNvFg +PkEsmMig +RqEf61mq +JwBo9SAh +BNhIOpp4 +FjigKlKI +uvNjWRgq +FkMEiK9a +N3U4srhP +KvFqb3kf +7COTQL3l +02K34qr6 +jcDmERsg +IjKDJVqt +G1Q5jQCk +5tQ6wSTl +JfjFTJj7 +ang439cN +4hWjUKIh +mnHgr9Je +PvGESoeV +HAWokAa4 +igcClHCK +CC1MmSi9 +lfUkODVA +50gJvoqi +71LwQ0sA +NCnFNNaU +wWSowfN4 +atmkL2q0 +p9BFqs5M +W454LVE4 +fVBqQ66r +oT171l04 +HVPVmRTN +TSE8vnDq +cQbnH4be +SiEUI5Lc +TpvGCPBm +AFaeiJEt +nc1aWJ9G +EB73hhNh +mlLaUbES +hHmI20fE +3UtwDT2U +9KiceJRU +dWpGOVhw +nTwlBMPN +pLrfuV0b +HhG8t94k +qBsmffS4 +NpmMg2in +wJ1khvO4 +sgtAW6Qo +fjOPJglL +2KuIAtUl +j6EMwUao +K5kkn25U +WfDlORhC +88dnqDRN +RRaDsKA6 +HfMD12DQ +is51PsN7 +1pwgciIO +5FSlUeph +GhI1BGR1 +TrkCi6Es +VqlAHkdC +0LdHLv9c +hVaFjBnC +KNnbcHUP +sn6pAPAj +QvPwDUjJ +d8uL890t +Ip9q7m98 +fqci7QmA +Pc2ngGUw +hrS37n6M +QDClg7NL +AOKEDflT +MLIoU3sq +LB8RLNRG +6vG4fjOq +LcbreCh9 +q49a3Egj +GjNkdHDe +MPkoiA5N +TOuc88RN +kh5hVD4u +oHe7dE2T +lr0tktq0 +barsWgUR +MO5IEKQC +Ik3cQP0T +n12KtKEd +sgGaPG05 +PIuPb1iS +FHs77R5H +692C8Hfq +JC2TnPqC +rUqKFUdK +GvRRHCch +lODJgm2r +EstO47de +CGbs1mh8 +QGHKqkNd +9IqC4TBr +TheJ4udw +SlAJ6mTu +2hS4P6qC +4spc1PCq +RoO8OE5n +MDcijguR +khtPK8Bh +EhHsk7lw +7F3uvvhj +1OimNiGQ +k53LsKQF +lorFHM2g +3m08QjOC +VGb069k7 +LQ72DCoL +NsbOVfRj +uBH1PuBl +iRFhVD9Q +2Gdr1EuT +a2h7JStf +kUn3iMhV +c9qBTJbs +RGclagoI +4gMDsDSK +taa96gSD +OlGBuWuu +6Go2Kmor +40va3uRe +7UDsA60A +br9SmLsN +mKUsjr9J +RvlRBpWR +PEBiLCHr +mtTItJ5V +ENHo1iGG +3Pahts0j +LL8WMhfI +VAJi7pAN +Nt9GJuqk +MV7rTjEa +iFOoNHHo +Pgbu6Dhr +fRGAhraT +otwI4chi +BMgEfnoj +7aR1uOw8 +b2RfpmF2 +VbbfJToa +gK0wDbte +UOJ7It8o +KtA4js6H +praJ0iJg +GN4C41e1 +9Jh7OANG +3JJPeIau +bGwGBWDl +M6Ui3PkN +du35lrfq +OLE6ov8i +7Dm1aP4k +3LIn0lvu +q0OdOjKb +RKMaUNHU +MsuBLUG5 +9fr8nKk4 +4jIVl9bd +vw97GEM2 +atr9T9af +tGP7FC1G +Cbh8AVNs +bCSGN6hq +w7cNi15w +NiGC6Fd7 +OcWuo4Eb +UPIj3svb +7fkkJ8KL +AchrWHaF +dWo2rOTd +1PHSBIsl +ACigR7aU +2jm7cKT4 +3hSN7nlw +b81b7Kvv +STGwn4su +8iqlGtWW +SuTHvbUn +VpuUluBW +tPjdFWHe +gaH1cQTg +L0JBHj7Q +pcEQ72To +RurFE45M +QDwlWJ5f +NglMH5h2 +nTAPIQ4F +dWUoLESV +WK5a8UIB +P7a9woKk +cV9NPgr9 +PeS8F6gU +oO8HL99Q +Vm1e4FLg +oE76i8pF +f3AE5o92 +omJJQIs7 +iNjwHSQE +W9aWQ4Pt +QplBpsk1 +JPIOBPON +LG2m9hOt +CvCfFF1U +fOf7Hng0 +Rt8Tve9m +LBfjwCwW +sOap7ml1 +bB4bMAMG +V2dMi5te +mHhpvqwF +7EM7Dndf +jpORtdDo +fAl5qEHi +u2qiiTEu +QdtEiTd5 +AwWWHg6D +4DHQjklt +LjQW8VjC +7MBGe4tt +ghv9fEsr +ogJILbWd +dJd4egat +dheljvtj +oPCKn445 +Cb02dDv6 +MS4ca7ud +tkvGVQjH +4oqQMNc3 +F7pTdItR +qolq0WFU +jECFLF0W +JpN4uSDh +enGFmuIW +EUu5hJrP +7ua3WiRp +8GRCi3ic +RmpL8AOf +Hmgg42Vh +Kudw10jn +uRgoD4Du +HA4mJ2Pe +KSMVcB7t +2LnJwUU7 +hMgWBSHG +imnSkrkV +WQEppVaM +jMN1fuTW +LslInEuh +1NBIp6Qo +8VSVDTte +oMf3dM45 +9gVTp86D +IlPfFjj8 +wEE50IWd +PFMU1UfT +geAU4TqM +W2MPETeB +jGW2Dl1r +6rIbWGno +aSLq0Ov9 +MR2Jbcw1 +vMdq67mD +v1BdoltM +EmiQ9sw2 +j8VoKdDS +jAL1V5DG +oB598NEB +aglvci2U +NFOpWt2M +0Mar1mpw +an03Ojg9 +KBMbd80r +bpvCCFaS +vPCdJm1k +boNrCcRM +wJSiur9c +88484SQV +iMulcMn5 +ifO32gft +g8rG1bnT +81ioij9k +rB38Vowb +smMfJmL2 +I2E8PfN9 +ODbU20Te +vPpKE7RS +rV18La7V +hB7AkjTL +V4M6q0w6 +qK4UUSaA +bviREN1M +0VM25ol5 +NFbmcOsS +dcvnM1vg +LNup9bKV +3FVBGLlk +O27qMcut +U0lNG5UM +APQiTMNT +PIqATIH8 +FjJfwBR5 +0lGGHolr +q693nrLl +IvQTE31I +4aQVlUBv +TGnNbqAb +ricDgWho +botvfdJP +TLA8Lq2s +rtMPkOGq +BvlebqrC +bO18cwTQ +oegbhuFt +8Sf8nJvm +oehPkQWh +QFOL1l4D +SFBHRjl2 +BAnJITAh +AkHfHlKb +mWmqRhrb +5C9aCbBW +5DEqfBfG +aDGDifg5 +bS4fasFV +ktpwqtP3 +Dt132PbP +pgwhTs7f +BcW3p6nN +lreahRNU +Qo2VN7HF +drWK3Dt3 +3V3K9q23 +rLIS7P6P +Lr9G245F +5CcLfs1s +KmdUPqfA +Au5nF3b3 +EqLpDoMt +19eUdNFJ +ugUMdLuc +jPBr4Knp +kQ90i2i7 +ROlwOWfJ +5lpwBuD9 +HcdAacp0 +N1Fa6Lnh +MlMc12B0 +bHbbqipc +7o4SKNDF +IpMLLKLU +47gWiRWg +GPNqh1lA +6N5NvVIb +GWWabiRg +Ld56nuWJ +NnGMnmDw +Mlligl2t +nJ90s316 +PdSbnAjm +arBUfBvO +1BGORWCg +gJ1JfCsa +pmMhV0wc +lwjeIUjw +dnVmQiek +SEEPrRuq +UKDWnFDk +2COrUVfp +GoCKBaJS +7b9g80dF +QHarQuWV +easBWQsM +uLhDadTm +dOFDlAUf +lumL1eFq +DTBCUMMM +VAOKQAP1 +B5GfjvEb +KpDbwOrK +8coQn4vg +LClWNQqG +94W3V9D3 +BOVndUa0 +1Af2NSKP +kR2v3F44 +tgSddGiT +G1wDMTud +G8BKD8km +vTQMaqn8 +WV3Jsc40 +HrGC4FMN +sISUo9n7 +4DK3B9iH +UclhJ8BJ +4owIjEIC +J7WPejUo +rRDQoG24 +kKgVE03h +vaLF4SVG +R1BFH9gI +ubiINb4A +BsT5aJvU +E78DlDJ5 +umOCqFQf +b5MqBvaV +mMlCtdFT +982VVwrA +bWQIqq08 +UQ7hrQAD +v4GI7e7n +rSgVFQvs +CwReACSK +fHfSI1vM +2jdsU2Lo +WsMoNtW1 +H7siBU83 +GRsQQbVj +KccqP6ii +C9Vb7ouf +rVDGeHiT +RVCP6sC5 +5VTOm2pC +TF3A0IQu +kpBQQUdm +Td4oT8CK +H5PdQhVd +0507gr1q +5hwRF8h1 +p2c28Lca +p6uNbphQ +uwaRp7f7 +UElDsWSE +s8u8rHoS +5R6pHQfn +Uss0RVsl +i9t4lvLo +aEqnfpuj +dU6fNrQv +0wqN7tGO +wDGsubjD +DKB0gfHQ +dB8RE6l1 +8cnukrCU +kbWLaeve +DV9F6DI8 +MIg4FF4I +0oQmtm69 +wPLdpeWc +MVRQVTRT +TDL1DCP4 +wctf2V7F +n6kvCPoi +ijsNWOEf +4rct8Vai +8SkLMHtQ +nC8wPvdF +UFIljEl2 +HPouMbvg +gJGvJg6q +pNaK0sCG +VshcQjLF +M9sVWNOA +3Afifb8P +jWCuhr7g +FmEv3KBs +pU7rLVjW +umFfUNk5 +3r7wq4Pc +S1hJQ7AI +Sq3mPC0f +SNeUbNmP +SapaTNCj +rPgKk6RQ +Jle4MiO0 +BIsr4iau +lJe3snvo +BjqPJ8Wf +jtMn5SwA +MRw7BjtE +KbPbDDCt +okTA0Irs +cJwgmJLk +3qoGbKJV +N46aV1v8 +soNTRMSH +6hRgBBu9 +wPqcENs0 +lMVNfhu2 +QNgmt8MP +AC4snhQq +tnr2gTQA +kjpE704T +CpsnNrcW +IeDbOEog +ituHQst8 +FBBHvN5H +mTSTdFWV +NUcrJKUn +b9iB8rjV +45plEGSL +pvwACRg1 +cdceoHWa +Rjeg9CvD +niAfBiNM +hB9u3GOn +5A1coc1v +LbsR202e +W4Ap98rU +9fCqt6sS +03TjqTvv +SMcu0qck +0iSOjkdV +2KNMmst6 +BrAc0oUb +stMhRTn8 +LJI5C4n5 +73aSdwm3 +taL2RPp0 +8qnTcM3S +sbT8tNir +mnfiKvJq +QtC9jj2H +gQRcgrdU +5j7eoQon +44OMgMKE +So2MJbGf +4qpLhbOm +6u9rjdgO +Kk8ja1N3 +1epEBULj +msPmwpRv +AD2QptMM +JOt5vU6Q +bH17QHqO +Ap0Fa1BA +dCvKBSI6 +PjQHWMei +999pRqBI +mqpSjfpK +IBObkOA1 +7LvP06kk +2k9NGs00 +rav88aAh +O3n74qPM +HAPhceGn +VCkIAIfv +uhNLufqu +fdNWsqun +gfW5tuLb +JAfVqwM1 +b2jOgNm9 +GiJEkwqQ +rH2DrjaC +5cdSDde4 +bbA5Eisc +HpHk2uCa +sBfF8lSw +0MjTUkPt +cIrO7ddU +lb4k9aoH +tMc7lKqV +JP5fCoia +lmPq6KFb +UoPPeu9k +FncTQseQ +QCI1EFG0 +5hLGqFrS +2twlfHjm +iHoHrd8M +MuVCRrMq +SG4UKE5O +jpa9JfiA +G4Gr9qk1 +nNTeMdoK +oW95PCiB +L25c8hgt +ei0sBOtH +viE7kiPR +oc7S1i4c +RMg0v9Ap +scNjJsCm +NjD9NTAn +gcHTTEIV +PTMgGCB8 +DD25EanI +T3WfbWGr +rq42UvpV +4vi5t1N0 +1Rh52Ii0 +FGdbloQo +487V3Gs9 +5BPFfRFB +I8Wbs8ag +vwVlUJff +m9sp2rUt +kWNlnL6b +L8KGGjSM +iCsLTlDj +o2IjN03v +f12AbNR7 +mOmMwH53 +KgGkO9wa +790V42bN +CpI5ePf9 +UikggjkL +BSpADSim +p7desd7L +1lQdctVv +Vn6A8M8Q +r38rRbtD +KD2CFIgI +LOlehtlA +t7tfQCv6 +nPCR6suq +ham0k87M +joeovsMq +lhEV6VuW +UnNd0lGc +trWTO7Jw +VnMJnH4t +0KcNaRcG +Kaa0B2oq +cJnn0N8r +IGNER2c8 +apeOlKIA +Qcg3R82P +pi4FodCT +m9kWQIfC +RAqcMehh +8QEDjajV +FPgTF1LC +pP2pbqi6 +Kp4DdKp6 +FlPdk4QU +uPTR3udd +uLPCKSnp +1LEDJ6nC +AJ5PpuLB +NoquM1Km +EBLVvaQg diff --git a/test/run_spanning.t b/test/run_spanning.t new file mode 100644 index 00000000..d88143b8 --- /dev/null +++ b/test/run_spanning.t @@ -0,0 +1,3406 @@ +Make sure we have a fresh build: + + $ export BUILDDIR=$TESTDIR/../build + $ cd $BUILDDIR + $ make 2> /dev/null >/dev/null + $ cd $CRAMTMP + + $ $BUILDDIR/dmg/dmg build $TESTDIR/run_spanning_reference/hdiutila.hfs testa.dmg __MOZILLA__attr-value-and-a-very-long-string-with-some-padding-to-push-this-across-tworuns-EOL- >/dev/null + +Note the "attr-value-p" suffix below! + + $ $BUILDDIR/dmg/dmg build $TESTDIR/run_spanning_reference/hdiutilp.hfs testb.dmg __MOZILLA__attr-value-and-a-very-long-string-with-some-padding-to-push-this-across-tworuns-EOL- >/dev/null + + $ xxd testa.dmg > testa.txt + $ xxd testb.dmg > testb.txt + $ diff --unified=3 testa.txt testb.txt + --- testa.txt* (glob) + +++ testb.txt* (glob) + @@ -81,12 +81,12 @@ + 00000500: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + 00000510: 0000 0000 0000 0000 0000 0000 0000 0048 ...............H + 00000520: 2b00 0480 0001 0031 302e 3000 0000 00e1 +......10.0..... + -00000530: 0172 e8e1 0172 e900 0000 00e1 0172 e800 .r...r.......r.. + +00000530: 0172 ede1 0172 ee00 0000 00e1 0172 ed00 .r...r.......r.. + 00000540: 0000 0100 0000 0200 0010 0000 0004 f600 ................ + 00000550: 0004 8000 0001 1e00 0100 0000 0100 0000 ................ + 00000560: 0000 1300 0000 0200 0000 0000 0000 0100 ................ + 00000570: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + -00000580: 0000 0000 0000 001b e630 59b8 ee0d 1800 .........0Y..... + +00000580: 0000 0000 0000 007a 9e3c f784 7ff4 8c00 .......z.<...... + 00000590: 0000 0000 0010 0000 0010 0000 0000 0100 ................ + 000005a0: 0000 0100 0000 0100 0000 0000 0000 0000 ................ + 000005b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + @@ -16403,7 +16403,7 @@ + 00040120: 696e 672d 7769 7468 2d73 6f6d 652d 7061 ing-with-some-pa + 00040130: 6464 696e 672d 746f 2d70 7573 682d 7468 dding-to-push-th + 00040140: 6973 2d61 6372 6f73 732d 7477 6f72 756e is-across-tworun + -00040150: 732d 454f 4c2d 6100 1c00 0000 0000 1200 s-EOL-a......... + +00040150: 732d 454f 4c2d 7000 1c00 0000 0000 1200 s-EOL-p......... + 00040160: 0000 0000 0800 6100 7500 6900 6600 7000 ......a.u.i.f.p. + 00040170: 7100 6f00 4300 0000 1000 0000 0000 0000 q.o.C........... + 00040180: 0000 0000 0861 7569 6670 716f 4300 1c00 .....auifpqoC... + @@ -32784,773 +32784,773 @@ + 000800f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + 00080100: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + 00080110: 0000 0000 0000 0000 0000 0000 0000 0042 ...............B + -00080120: 5a68 3931 4159 2653 59f4 9605 6800 0210 Zh91AY&SY...h... + -00080130: 7fff fffb f643 c00d 5400 6d40 4810 2e6a .....C..T.m@H..j + -00080140: 9d71 2340 4050 0400 0085 5000 800a 2062 .q#@@P....P... b + -00080150: 0158 b001 4584 c328 8d34 988d aa66 91a0 .X..E..(.4...f.. + -00080160: 3d4f 4086 8c09 a643 4191 91e9 a469 e504 =O@....CA....i.. + -00080170: 8a49 3460 2321 9313 4031 3218 8d30 8340 .I4`#!..@12..0.@ + -00080180: 188d 3201 5535 4c84 d068 0034 0000 000f ..2.U5L..h.4.... + -00080190: 5340 da80 034d 2375 2a71 015e 336d a986 S@...M#u*q.^3m.. + -000801a0: 21ea b117 1874 4ec5 307e b6d3 122b 2012 !....tN.0~...+ . + -000801b0: 4684 132a 0100 07d0 4800 026d b99f 65ae F..*....H..m..e. + -000801c0: 1e48 3a56 0a69 b7d6 c505 f057 91b2 1e41 .H:V.i.....W...A + -000801d0: 1347 073b 6098 dcc7 a488 3858 8100 11d8 .G.;`.....8X.... + -000801e0: 86c4 972b 6d1f 0c49 2494 adc0 ead9 c54c ...+m..I$......L + -000801f0: 4b3e 18d1 2156 ad84 c889 2655 a674 f295 K>..!V....&U.t.. + -00080200: 7421 16d4 a1c4 504f c2ce 59a1 3f22 5614 t!....PO..Y.?"V. + -00080210: 1cc9 8a0b 8761 4986 98b8 9c82 9682 75c5 .....aI.......u. + -00080220: 9295 4668 b8a8 662e dfb7 ded9 32b5 1e10 ..Fh..f.....2... + -00080230: 5684 a403 7be2 a58b d509 5374 2c2b cf5a V...{.....St,+.Z + -00080240: 1111 07e7 02f4 d6a0 ab12 335c 848d 1059 ..........3\...Y + -00080250: 5a8f 9602 6c3e 58bd 9a8c e6b6 c6c0 8310 Z...l>X......... + -00080260: 6884 8221 360a 3761 0250 c089 895e 62d4 h..!6.7a.P...^b. + -00080270: c47d b05b 000c 12d2 d6f4 07bf a76a 790c .}.[.........jy. + -00080280: beff 9434 1280 21f8 7da0 b20d 1087 e871 ...4..!.}......q + -00080290: 2092 4926 2ff1 7724 5385 090f 4960 5680 .I&/.w$S...I`V. + -000802a0: 425a 6839 3141 5926 5359 4457 7047 0002 BZh91AY&SYDWpG.. + -000802b0: 0440 00c0 0000 0820 0030 802a 6945 b005 .@..... .0.*iE.. + -000802c0: 8601 c5dc 914e 1424 1115 dc11 c042 5a68 .....N.$.....BZh + -000802d0: 3931 4159 2653 598c efb4 ea00 01e1 f182 91AY&SY......... + -000802e0: c010 0400 0002 0a01 8440 0002 0008 2000 .........@.... . + -000802f0: 5081 a068 0549 4f50 1e53 6409 25d0 1772 P..h.IOP.Sd.%..r + -00080300: 4804 cacd afb7 35be 1007 e2ee 48a7 0a12 H.....5.....H... + -00080310: 119d f69d 4042 5a68 3931 4159 2653 5944 ....@BZh91AY&SYD + -00080320: 5770 4700 0204 4000 c000 0008 2000 3080 WpG...@..... .0. + -00080330: 2a69 45b0 0586 01c5 dc91 4e14 2411 15dc *iE.......N.$... + -00080340: 11c0 425a 6839 3141 5926 5359 4457 7047 ..BZh91AY&SYDWpG + -00080350: 0002 0440 00c0 0000 0820 0030 802a 6945 ...@..... .0.*iE + -00080360: b005 8601 c5dc 914e 1424 1115 dc11 c042 .......N.$.....B + -00080370: 5a68 3931 4159 2653 5944 5770 4700 0204 Zh91AY&SYDWpG... + -00080380: 4000 c000 0008 2000 3080 2a69 45b0 0586 @..... .0.*iE... + -00080390: 01c5 dc91 4e14 2411 15dc 11c0 425a 6839 ....N.$.....BZh9 + -000803a0: 3141 5926 5359 4457 7047 0002 0440 00c0 1AY&SYDWpG...@.. + -000803b0: 0000 0820 0030 802a 6945 b005 8601 c5dc ... .0.*iE...... + -000803c0: 914e 1424 1115 dc11 c042 5a68 3931 4159 .N.$.....BZh91AY + -000803d0: 2653 5944 5770 4700 0204 4000 c000 0008 &SYDWpG...@..... + -000803e0: 2000 3080 2a69 45b0 0586 01c5 dc91 4e14 .0.*iE.......N. + -000803f0: 2411 15dc 11c0 425a 6839 3141 5926 5359 $.....BZh91AY&SY + -00080400: 4457 7047 0002 0440 00c0 0000 0820 0030 DWpG...@..... .0 + -00080410: 802a 6945 b005 8601 c5dc 914e 1424 1115 .*iE.......N.$.. + -00080420: dc11 c042 5a68 3931 4159 2653 5944 5770 ...BZh91AY&SYDWp + -00080430: 4700 0204 4000 c000 0008 2000 3080 2a69 G...@..... .0.*i + -00080440: 45b0 0586 01c5 dc91 4e14 2411 15dc 11c0 E.......N.$..... + -00080450: 425a 6839 3141 5926 5359 4457 7047 0002 BZh91AY&SYDWpG.. + -00080460: 0440 00c0 0000 0820 0030 802a 6945 b005 .@..... .0.*iE.. + -00080470: 8601 c5dc 914e 1424 1115 dc11 c042 5a68 .....N.$.....BZh + -00080480: 3931 4159 2653 5944 5770 4700 0204 4000 91AY&SYDWpG...@. + -00080490: c000 0008 2000 3080 2a69 45b0 0586 01c5 .... .0.*iE..... + -000804a0: dc91 4e14 2411 15dc 11c0 425a 6839 3141 ..N.$.....BZh91A + -000804b0: 5926 5359 4457 7047 0002 0440 00c0 0000 Y&SYDWpG...@.... + -000804c0: 0820 0030 802a 6945 b005 8601 c5dc 914e . .0.*iE.......N + -000804d0: 1424 1115 dc11 c042 5a68 3931 4159 2653 .$.....BZh91AY&S + -000804e0: 5944 5770 4700 0204 4000 c000 0008 2000 YDWpG...@..... . + -000804f0: 3080 2a69 45b0 0586 01c5 dc91 4e14 2411 0.*iE.......N.$. + -00080500: 15dc 11c0 425a 6839 3141 5926 5359 4457 ....BZh91AY&SYDW + -00080510: 7047 0002 0440 00c0 0000 0820 0030 802a pG...@..... .0.* + -00080520: 6945 b005 8601 c5dc 914e 1424 1115 dc11 iE.......N.$.... + -00080530: c042 5a68 3931 4159 2653 5944 5770 4700 .BZh91AY&SYDWpG. + -00080540: 0204 4000 c000 0008 2000 3080 2a69 45b0 ..@..... .0.*iE. + -00080550: 0586 01c5 dc91 4e14 2411 15dc 11c0 425a ......N.$.....BZ + -00080560: 6839 3141 5926 5359 4457 7047 0002 0440 h91AY&SYDWpG...@ + -00080570: 00c0 0000 0820 0030 802a 6945 b005 8601 ..... .0.*iE.... + -00080580: c5dc 914e 1424 1115 dc11 c042 5a68 3931 ...N.$.....BZh91 + -00080590: 4159 2653 59ac 0d59 3f00 01ba 7fe9 fd2a AY&SY..Y?......* + -000805a0: 4c49 0009 6030 0040 0028 4000 1000 4100 LI..`0.@.(@...A. + -000805b0: 4000 0048 2141 0108 2000 8819 29e9 a81a @..H!A.. ...)... + -000805c0: 0000 0004 524d 4641 a340 0d1a 68f5 3d49 ....RMFA.@..h.=I + -000805d0: 361d dae6 14c4 a15e 89f0 5087 5400 9208 6......^..P.T... + -000805e0: 3c35 081a 5415 c6e5 13f4 fb0d 9396 701c <5..T.........p. + -000805f0: 6303 5484 4519 c0d6 16e8 4054 7b42 9de1 c.T.E.....@T{B.. + -00080600: 0551 e700 5180 3d42 560b 7097 8c6c cf1c .Q..Q.=BV.p..l.. + -00080610: bdd6 e0a6 8916 8664 9fa5 2594 14fc d6d9 .......d..%..... + -00080620: a00a 3fc5 dc91 4e14 242b 0356 4fc0 3c3f ..?...N.$+.VO......r + -000806e0: 6573 6f75 7263 652d 666f 726b 3c2f 6b65 esource-fork.....blkx...< + -00080710: 6172 7261 793e 0a09 0909 3c64 6963 743e array>.... + -00080720: 0a09 0909 093c 6b65 793e 4174 7472 6962 .....Attrib + -00080730: 7574 6573 3c2f 6b65 793e 0a09 0909 093c utes.....< + -00080740: 7374 7269 6e67 3e30 7830 3035 303c 2f73 string>0x0050..... + -00080760: 4346 4e61 6d65 3c2f 6b65 793e 0a09 0909 CFName.... + -00080770: 093c 7374 7269 6e67 3e44 7269 7665 7220 .Driver + -00080780: 4465 7363 7269 7074 6f72 204d 6170 2028 Descriptor Map ( + -00080790: 4444 4d20 3a20 3029 3c2f 7374 7269 6e67 DDM : 0).....Data< + -000807b0: 2f6b 6579 3e0a 0909 0909 3c64 6174 613e /key>..... + -000807c0: 0a09 0909 0962 576c 7a61 4141 4141 4145 .....bWlzaAAAAAE + -000807d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000807e0: 4141 4141 4241 4141 4141 4141 4141 4141 AAAABAAAAAAAAAAA + -000807f0: 410a 0909 0909 4141 4949 2f2f 2f2f 2f77 A.....AAII/////w + +00080120: 5a68 3931 4159 2653 59c5 5007 0100 0210 Zh91AY&SY.P..... + +00080130: 7fff fffb f643 c00d 5400 6d40 4810 2e2a .....C..T.m@H..* + +00080140: 9d71 2340 4050 0400 0085 5000 800a 2043 .q#@@P....P... C + +00080150: 0158 b001 4602 1249 3424 f44d 943f 5401 .X..F..I4$.M.?T. + +00080160: a69a 0000 3264 6419 034d 0cd4 38c9 9343 ....2dd..M..8..C + +00080170: 1189 a300 8c04 c200 c04d 3469 91a0 182a .........M4i...* + +00080180: 9a91 127e a86d 4064 3200 0182 6836 a681 ...~.m@d2...h6.. + +00080190: ed50 7a83 4c4d 2cd4 7472 311d dc99 2bf6 .Pz.LM,.tr1...+. + +000801a0: 40c1 290d 72a1 9a88 e81e f8a7 71a2 c248 @.).r.......q..H + +000801b0: f064 be58 4013 3240 025b d257 f6b5 0d6a .d.X@.2@.[.W...j + +000801c0: db72 89d9 efe1 a232 5d08 597a 2664 63b1 .r.....2].Yz&dc. + +000801d0: 5b65 e356 4d59 c8b8 eec5 140c b149 1555 [e.VMY.......I.U + +000801e0: e192 53ef 1555 5555 5c30 7bbc 7d45 c576 ..S..UUU\0{.}E.v + +000801f0: e3ab 2864 c982 e494 b993 1bd7 d56a 2227 ..(d.........j"' + +00080200: 0b14 6e19 cbf6 db0c d9d7 ef2b 0673 7d71 ..n........+.s}q + +00080210: 9cd0 7bcc 4e92 e342 f218 bb8b da19 8c56 ..{.N..B.......V + +00080220: 7686 858e cb97 9edb 69d6 ad99 f386 58aa v.......i.....X. + +00080230: 01b5 fab6 1cd6 2b1e 50c1 a97e 5892 43fb ......+.P..~X.C. + +00080240: b8e6 bb66 1925 3f3b d6c3 8ad5 a656 5d36 ...f.%?;.....V]6 + +00080250: 5487 e22b eb2a f99a 4890 5a28 e2b6 0b95 T..+.*..H.Z(.... + +00080260: 2157 fb16 7410 5d15 5bf0 393f 962b 9c10 !W..t.].[.9?.+.. + +00080270: aae3 95c7 09bf b2c5 96d1 e79b 1d2c 3982 .............,9. + +00080280: 7c55 6225 0a58 44e5 5a64 7092 4925 0ff1 |Ub%.XD.Zdp.I%.. + +00080290: 7724 5385 090c 5500 7010 425a 6839 3141 w$S...U.p.BZh91A + +000802a0: 5926 5359 4457 7047 0002 0440 00c0 0000 Y&SYDWpG...@.... + +000802b0: 0820 0030 802a 6945 b005 8601 c5dc 914e . .0.*iE.......N + +000802c0: 1424 1115 dc11 c042 5a68 3931 4159 2653 .$.....BZh91AY&S + +000802d0: 598c efb4 ea00 01e1 f182 c010 0400 0002 Y............... + +000802e0: 0a01 8440 0002 0008 2000 5081 a068 0549 ...@.... .P..h.I + +000802f0: 4f50 1e53 6409 25d0 1772 4804 cacd afb7 OP.Sd.%..rH..... + +00080300: 35be 1007 e2ee 48a7 0a12 119d f69d 4042 5.....H.......@B + +00080310: 5a68 3931 4159 2653 5944 5770 4700 0204 Zh91AY&SYDWpG... + +00080320: 4000 c000 0008 2000 3080 2a69 45b0 0586 @..... .0.*iE... + +00080330: 01c5 dc91 4e14 2411 15dc 11c0 425a 6839 ....N.$.....BZh9 + +00080340: 3141 5926 5359 4457 7047 0002 0440 00c0 1AY&SYDWpG...@.. + +00080350: 0000 0820 0030 802a 6945 b005 8601 c5dc ... .0.*iE...... + +00080360: 914e 1424 1115 dc11 c042 5a68 3931 4159 .N.$.....BZh91AY + +00080370: 2653 5944 5770 4700 0204 4000 c000 0008 &SYDWpG...@..... + +00080380: 2000 3080 2a69 45b0 0586 01c5 dc91 4e14 .0.*iE.......N. + +00080390: 2411 15dc 11c0 425a 6839 3141 5926 5359 $.....BZh91AY&SY + +000803a0: 4457 7047 0002 0440 00c0 0000 0820 0030 DWpG...@..... .0 + +000803b0: 802a 6945 b005 8601 c5dc 914e 1424 1115 .*iE.......N.$.. + +000803c0: dc11 c042 5a68 3931 4159 2653 5944 5770 ...BZh91AY&SYDWp + +000803d0: 4700 0204 4000 c000 0008 2000 3080 2a69 G...@..... .0.*i + +000803e0: 45b0 0586 01c5 dc91 4e14 2411 15dc 11c0 E.......N.$..... + +000803f0: 425a 6839 3141 5926 5359 4457 7047 0002 BZh91AY&SYDWpG.. + +00080400: 0440 00c0 0000 0820 0030 802a 6945 b005 .@..... .0.*iE.. + +00080410: 8601 c5dc 914e 1424 1115 dc11 c042 5a68 .....N.$.....BZh + +00080420: 3931 4159 2653 5944 5770 4700 0204 4000 91AY&SYDWpG...@. + +00080430: c000 0008 2000 3080 2a69 45b0 0586 01c5 .... .0.*iE..... + +00080440: dc91 4e14 2411 15dc 11c0 425a 6839 3141 ..N.$.....BZh91A + +00080450: 5926 5359 4457 7047 0002 0440 00c0 0000 Y&SYDWpG...@.... + +00080460: 0820 0030 802a 6945 b005 8601 c5dc 914e . .0.*iE.......N + +00080470: 1424 1115 dc11 c042 5a68 3931 4159 2653 .$.....BZh91AY&S + +00080480: 5944 5770 4700 0204 4000 c000 0008 2000 YDWpG...@..... . + +00080490: 3080 2a69 45b0 0586 01c5 dc91 4e14 2411 0.*iE.......N.$. + +000804a0: 15dc 11c0 425a 6839 3141 5926 5359 4457 ....BZh91AY&SYDW + +000804b0: 7047 0002 0440 00c0 0000 0820 0030 802a pG...@..... .0.* + +000804c0: 6945 b005 8601 c5dc 914e 1424 1115 dc11 iE.......N.$.... + +000804d0: c042 5a68 3931 4159 2653 5944 5770 4700 .BZh91AY&SYDWpG. + +000804e0: 0204 4000 c000 0008 2000 3080 2a69 45b0 ..@..... .0.*iE. + +000804f0: 0586 01c5 dc91 4e14 2411 15dc 11c0 425a ......N.$.....BZ + +00080500: 6839 3141 5926 5359 4457 7047 0002 0440 h91AY&SYDWpG...@ + +00080510: 00c0 0000 0820 0030 802a 6945 b005 8601 ..... .0.*iE.... + +00080520: c5dc 914e 1424 1115 dc11 c042 5a68 3931 ...N.$.....BZh91 + +00080530: 4159 2653 5944 5770 4700 0204 4000 c000 AY&SYDWpG...@... + +00080540: 0008 2000 3080 2a69 45b0 0586 01c5 dc91 .. .0.*iE....... + +00080550: 4e14 2411 15dc 11c0 425a 6839 3141 5926 N.$.....BZh91AY& + +00080560: 5359 4457 7047 0002 0440 00c0 0000 0820 SYDWpG...@..... + +00080570: 0030 802a 6945 b005 8601 c5dc 914e 1424 .0.*iE.......N.$ + +00080580: 1115 dc11 c042 5a68 3931 4159 2653 59d5 .....BZh91AY&SY. + +00080590: 5621 ce00 01ba 7fe9 fd28 4c01 0009 6034 V!.......(L...`4 + +000805a0: 0040 0008 4000 1010 c504 4001 0008 2002 .@..@.....@... . + +000805b0: 0588 2000 881a 29e9 a8d1 a0d0 0006 8022 .. ...)........" + +000805c0: 9299 1a00 0068 c43c 51bb 883d 8a38 9102 .....h..F...hO)....V + +00080610: dac1 f4a4 b182 8d6e ad88 028f f177 2453 .......n.....w$S + +00080620: 8509 0d55 621c e03c 3f78 6d6c 2076 6572 ...Ub.......resource + +000806e0: 2d66 6f72 6b3c 2f6b 6579 3e0a 093c 6469 -fork.....blkx< + +00080700: 2f6b 6579 3e0a 0909 3c61 7272 6179 3e0a /key>.... + +00080710: 0909 093c 6469 6374 3e0a 0909 0909 3c6b ........Attributes..... + +00080740: 3078 3030 3530 3c2f 7374 7269 6e67 3e0a 0x0050. + +00080750: 0909 0909 3c6b 6579 3e43 464e 616d 653c ....CFName< + +00080760: 2f6b 6579 3e0a 0909 0909 3c73 7472 696e /key>.....Driver Descrip + +00080780: 746f 7220 4d61 7020 2844 444d 203a 2030 tor Map (DDM : 0 + +00080790: 293c 2f73 7472 696e 673e 0a09 0909 093c ).....< + +000807a0: 6b65 793e 4461 7461 3c2f 6b65 793e 0a09 key>Data.. + +000807b0: 0909 093c 6461 7461 3e0a 0909 0909 6257 ........bW + +000807c0: 6c7a 6141 4141 4141 4541 4141 4141 4141 lzaAAAAAEAAAAAAA + +000807d0: 4141 4141 4141 4141 4141 4141 4142 4141 AAAAAAAAAAAAABAA + +000807e0: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + +000807f0: 4149 492f 2f2f 2f2f 7741 4141 4141 4141 AII/////wAAAAAAA + 00080800: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080810: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080820: 4141 0a09 0909 0941 4149 4141 4141 6758 AA.....AAIAAAAgX + -00080830: 444d 5943 5141 4141 4141 4141 4141 4141 DMYCQAAAAAAAAAAA + -00080840: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080850: 4141 410a 0909 0909 4141 4141 4141 4141 AAA.....AAAAAAAA + +00080810: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + +00080820: 4141 4941 4141 4167 5844 4d59 4351 4141 AAIAAAAgXDMYCQAA + +00080830: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080840: 4141 4141 4141 4141 4141 4141 0a09 0909 AAAAAAAAAAAA.... + +00080850: 0941 4141 4141 4141 4141 4141 4141 4141 .AAAAAAAAAAAAAAA + 00080860: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080870: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080880: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + +00080870: 4141 4141 4141 4141 4141 4141 410a 0909 AAAAAAAAAAAAA... + +00080880: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + 00080890: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000808a0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000808b0: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + +000808a0: 4141 4141 4141 4141 4141 4141 4141 0a09 AAAAAAAAAAAAAA.. + +000808b0: 0909 0941 4141 4141 4141 4141 4141 4141 ...AAAAAAAAAAAAA + 000808c0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000808d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000808e0: 4141 4141 4141 0a09 0909 0941 4141 4141 AAAAAA.....AAAAA + -000808f0: 4141 4367 4141 4142 6741 4141 4141 4141 AACgAAABgAAAAAAA + -00080900: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080910: 4141 4241 4141 410a 0909 0909 4141 4141 AABAAAA.....AAAA + -00080920: 4141 4141 4141 4141 4141 4141 4e66 2f2f AAAAAAAAAAAANf// + -00080930: 2f2f 3841 4141 4141 4141 4141 4141 4141 //8AAAAAAAAAAAAA + -00080940: 4141 4541 4141 4141 0a09 0909 0941 4141 AAEAAAAA.....AAA + -00080950: 4141 4141 4141 4141 4141 4141 3141 4141 AAAAAAAAAAAA1AAA + -00080960: 4141 4141 4141 4141 3d0a 0909 0909 3c2f AAAAAAAA=..........I + -00080980: 443c 2f6b 6579 3e0a 0909 0909 3c73 7472 D.....-1. + -000809a0: 0909 0909 3c6b 6579 3e4e 616d 653c 2f6b ....Name..... + -000809c0: 4472 6976 6572 2044 6573 6372 6970 746f Driver Descripto + -000809d0: 7220 4d61 7020 2844 444d 203a 2030 293c r Map (DDM : 0)< + -000809e0: 2f73 7472 696e 673e 0a09 0909 3c2f 6469 /string>........... + -00080a00: 0909 3c6b 6579 3e41 7474 7269 6275 7465 ..Attribute + -00080a10: 733c 2f6b 6579 3e0a 0909 0909 3c73 7472 s.....0x0050.....CFN + -00080a40: 616d 653c 2f6b 6579 3e0a 0909 0909 3c73 ame.....Apple (App + -00080a60: 6c65 5f70 6172 7469 7469 6f6e 5f6d 6170 le_partition_map + -00080a70: 203a 2031 293c 2f73 7472 696e 673e 0a09 : 1).. + -00080a80: 0909 093c 6b65 793e 4461 7461 3c2f 6b65 ...Data........ + -00080aa0: 0909 6257 6c7a 6141 4141 4141 4541 4141 ..bWlzaAAAAAEAAA + -00080ab0: 4141 4141 4141 4151 4141 4141 4141 4141 AAAAAAAQAAAAAAAA + -00080ac0: 412f 4141 4141 4141 4141 4141 4141 0a09 A/AAAAAAAAAAAA.. + -00080ad0: 0909 0941 4149 4941 4141 4141 4141 4141 ...AAIIAAAAAAAAA + +000808d0: 4141 4141 4141 4141 4141 4141 4141 410a AAAAAAAAAAAAAAA. + +000808e0: 0909 0909 4141 4141 4141 4143 6741 4141 ....AAAAAAACgAAA + +000808f0: 4267 4141 4141 4141 4141 4141 4141 4141 BgAAAAAAAAAAAAAA + +00080900: 4141 4141 4141 4141 4141 4142 4141 4141 AAAAAAAAAAABAAAA + +00080910: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + +00080920: 4141 4141 414e 662f 2f2f 2f38 4141 4141 AAAAANf////8AAAA + +00080930: 4141 4141 4141 4141 4141 4145 4141 4141 AAAAAAAAAAAEAAAA + +00080940: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + +00080950: 4141 4141 4131 4141 4141 4141 4141 4141 AAAAA1AAAAAAAAAA + +00080960: 413d 0a09 0909 093c 2f64 6174 613e 0a09 A=....... + +00080970: 0909 093c 6b65 793e 4944 3c2f 6b65 793e ...ID + +00080980: 0a09 0909 093c 7374 7269 6e67 3e2d 313c .....-1< + +00080990: 2f73 7472 696e 673e 0a09 0909 093c 6b65 /string>.....Name.... + +000809b0: 093c 7374 7269 6e67 3e44 7269 7665 7220 .Driver + +000809c0: 4465 7363 7269 7074 6f72 204d 6170 2028 Descriptor Map ( + +000809d0: 4444 4d20 3a20 3029 3c2f 7374 7269 6e67 DDM : 0)........ + +000809f0: 3c64 6963 743e 0a09 0909 093c 6b65 793e ..... + +00080a00: 4174 7472 6962 7574 6573 3c2f 6b65 793e Attributes + +00080a10: 0a09 0909 093c 7374 7269 6e67 3e30 7830 .....0x0 + +00080a20: 3035 303c 2f73 7472 696e 673e 0a09 0909 050.... + +00080a30: 093c 6b65 793e 4346 4e61 6d65 3c2f 6b65 .CFName.....A + +00080a50: 7070 6c65 2028 4170 706c 655f 7061 7274 pple (Apple_part + +00080a60: 6974 696f 6e5f 6d61 7020 3a20 3129 3c2f ition_map : 1).....Data..... + +00080a90: 3c64 6174 613e 0a09 0909 0962 576c 7a61 .....bWlza + +00080aa0: 4141 4141 4145 4141 4141 4141 4141 4141 AAAAAEAAAAAAAAAA + +00080ab0: 5141 4141 4141 4141 4141 2f41 4141 4141 QAAAAAAAAA/AAAAA + +00080ac0: 4141 4141 4141 410a 0909 0909 4141 4949 AAAAAAA.....AAII + +00080ad0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00080ae0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080af0: 4141 4141 4141 4141 4141 4141 4141 410a AAAAAAAAAAAAAAA. + -00080b00: 0909 0909 4141 4941 4141 4167 3778 4861 ....AAIAAAAg7xHa + -00080b10: 3267 4141 4141 4141 4141 4141 4141 4141 2gAAAAAAAAAAAAAA + -00080b20: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080b30: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + +00080af0: 4141 4141 4141 4141 0a09 0909 0941 4149 AAAAAAAA.....AAI + +00080b00: 4141 4141 6737 7848 6132 6741 4141 4141 AAAAg7xHa2gAAAAA + +00080b10: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080b20: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + +00080b30: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00080b40: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080b50: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080b60: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + +00080b50: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + +00080b60: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00080b70: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080b80: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080b90: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + +00080b80: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + +00080b90: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00080ba0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080bb0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080bc0: 4141 410a 0909 0909 4141 4141 4141 4143 AAA.....AAAAAAAC + -00080bd0: 6741 4141 4267 4141 4141 4141 4141 4141 gAAABgAAAAAAAAAA + -00080be0: 4141 4141 4141 4141 4141 4141 4141 412f AAAAAAAAAAAAAAA/ + -00080bf0: 4141 4141 0a09 0909 0941 4141 4141 4455 AAAA.....AAAAADU + -00080c00: 4141 4141 4141 4141 4176 2f2f 2f2f 2f38 AAAAAAAAAv/////8 + -00080c10: 4141 4141 4141 4141 4141 4141 4141 4438 AAAAAAAAAAAAAAD8 + -00080c20: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + -00080c30: 4141 4141 4141 4141 4430 4141 4141 4141 AAAAAAAAD0AAAAAA + -00080c40: 4141 4141 413d 0a09 0909 093c 2f64 6174 AAAAA=..........ID.....0..... + -00080c80: 3c6b 6579 3e4e 616d 653c 2f6b 6579 3e0a Name. + -00080c90: 0909 0909 3c73 7472 696e 673e 4170 706c ....Appl + -00080ca0: 6520 2841 7070 6c65 5f70 6172 7469 7469 e (Apple_partiti + -00080cb0: 6f6e 5f6d 6170 203a 2031 293c 2f73 7472 on_map : 1)..... + -00080cd0: 0909 093c 6469 6374 3e0a 0909 0909 3c6b ........Attributes..... + -00080d00: 3078 3030 3530 3c2f 7374 7269 6e67 3e0a 0x0050. + -00080d10: 0909 0909 3c6b 6579 3e43 464e 616d 653c ....CFName< + -00080d20: 2f6b 6579 3e0a 0909 0909 3c73 7472 696e /key>.....Macintosh (App + -00080d40: 6c65 5f44 7269 7665 725f 4154 4150 4920 le_Driver_ATAPI + -00080d50: 3a20 3229 3c2f 7374 7269 6e67 3e0a 0909 : 2)... + -00080d60: 0909 3c6b 6579 3e44 6174 613c 2f6b 6579 ..Data......... + -00080d80: 0962 576c 7a61 4141 4141 4145 4141 4141 .bWlzaAAAAAEAAAA + -00080d90: 4141 4141 4151 4141 4141 4141 4141 4141 AAAAAQAAAAAAAAAA + -00080da0: 4941 4141 4141 4141 4141 4141 410a 0909 IAAAAAAAAAAAA... + -00080db0: 0909 4141 4949 4141 4141 4151 4141 4141 ..AAIIAAAAAQAAAA + +00080bb0: 4141 4141 4141 4141 4141 4141 0a09 0909 AAAAAAAAAAAA.... + +00080bc0: 0941 4141 4141 4141 4367 4141 4142 6741 .AAAAAAACgAAABgA + +00080bd0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080be0: 4141 4141 4141 4141 2f41 4141 410a 0909 AAAAAAAA/AAAA... + +00080bf0: 0909 4141 4141 4144 5541 4141 4141 4141 ..AAAAADUAAAAAAA + +00080c00: 4141 762f 2f2f 2f2f 3841 4141 4141 4141 AAv/////8AAAAAAA + +00080c10: 4141 4141 4141 4144 3841 4141 4141 0a09 AAAAAAAD8AAAAA.. + +00080c20: 0909 0941 4141 4141 4141 4141 4141 4141 ...AAAAAAAAAAAAA + +00080c30: 4144 3041 4141 4141 4141 4141 4141 3d0a AD0AAAAAAAAAAA=. + +00080c40: 0909 0909 3c2f 6461 7461 3e0a 0909 0909 ......... + +00080c50: 3c6b 6579 3e49 443c 2f6b 6579 3e0a 0909 ID... + +00080c60: 0909 3c73 7472 696e 673e 303c 2f73 7472 ..0.....Na + +00080c80: 6d65 3c2f 6b65 793e 0a09 0909 093c 7374 me.....Apple (Appl + +00080ca0: 655f 7061 7274 6974 696f 6e5f 6d61 7020 e_partition_map + +00080cb0: 3a20 3129 3c2f 7374 7269 6e67 3e0a 0909 : 1)... + +00080cc0: 093c 2f64 6963 743e 0a09 0909 3c64 6963 ..........Attr + +00080ce0: 6962 7574 6573 3c2f 6b65 793e 0a09 0909 ibutes.... + +00080cf0: 093c 7374 7269 6e67 3e30 7830 3035 303c .0x0050< + +00080d00: 2f73 7472 696e 673e 0a09 0909 093c 6b65 /string>.....CFName.. + +00080d20: 0909 093c 7374 7269 6e67 3e4d 6163 696e ...Macin + +00080d30: 746f 7368 2028 4170 706c 655f 4472 6976 tosh (Apple_Driv + +00080d40: 6572 5f41 5441 5049 203a 2032 293c 2f73 er_ATAPI : 2)..... + +00080d60: 4461 7461 3c2f 6b65 793e 0a09 0909 093c Data.....< + +00080d70: 6461 7461 3e0a 0909 0909 6257 6c7a 6141 data>.....bWlzaA + +00080d80: 4141 4141 4541 4141 4141 4141 4141 5141 AAAAEAAAAAAAAAQA + +00080d90: 4141 4141 4141 4141 4149 4141 4141 4141 AAAAAAAAAIAAAAAA + +00080da0: 4141 4141 4141 0a09 0909 0941 4149 4941 AAAAAA.....AAIIA + +00080db0: 4141 4141 5141 4141 4141 4141 4141 4141 AAAAQAAAAAAAAAAA + 00080dc0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080dd0: 4141 4141 4141 4141 4141 4141 4141 0a09 AAAAAAAAAAAAAA.. + -00080de0: 0909 0941 4149 4141 4141 6778 7877 4145 ...AAIAAAAgxxwAE + -00080df0: 5141 4141 4141 4141 4141 4141 4141 4141 QAAAAAAAAAAAAAAA + -00080e00: 4141 4141 4141 4141 4141 4141 4141 410a AAAAAAAAAAAAAAA. + -00080e10: 0909 0909 4141 4141 4141 4141 4141 4141 ....AAAAAAAAAAAA + +00080dd0: 4141 4141 4141 410a 0909 0909 4141 4941 AAAAAAA.....AAIA + +00080de0: 4141 4167 7878 7741 4551 4141 4141 4141 AAAgxxwAEQAAAAAA + +00080df0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080e00: 4141 4141 4141 4141 0a09 0909 0941 4141 AAAAAAAA.....AAA + +00080e10: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00080e20: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080e30: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080e40: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + +00080e30: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + +00080e40: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00080e50: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080e60: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080e70: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + +00080e60: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + +00080e70: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00080e80: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080e90: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080ea0: 4141 0a09 0909 0941 4141 4141 4141 4367 AA.....AAAAAAACg + -00080eb0: 4141 4142 6741 4141 4141 4141 4141 4141 AAABgAAAAAAAAAAA + -00080ec0: 4141 4141 4141 4141 4141 4141 4141 4941 AAAAAAAAAAAAAAIA + -00080ed0: 4141 410a 0909 0909 4141 4141 4150 5141 AAA.....AAAAAPQA + -00080ee0: 4141 4141 4141 4141 4b2f 2f2f 2f2f 3841 AAAAAAAAK/////8A + -00080ef0: 4141 4141 4141 4141 4141 4141 4141 6741 AAAAAAAAAAAAAAgA + -00080f00: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + -00080f10: 4141 4141 4141 4145 6641 4141 4141 4141 AAAAAAAEfAAAAAAA + -00080f20: 4141 4141 3d0a 0909 0909 3c2f 6461 7461 AAAA=..........ID..... + -00080f50: 313c 2f73 7472 696e 673e 0a09 0909 093c 1.....< + -00080f60: 6b65 793e 4e61 6d65 3c2f 6b65 793e 0a09 key>Name.. + -00080f70: 0909 093c 7374 7269 6e67 3e4d 6163 696e ...Macin + -00080f80: 746f 7368 2028 4170 706c 655f 4472 6976 tosh (Apple_Driv + -00080f90: 6572 5f41 5441 5049 203a 2032 293c 2f73 er_ATAPI : 2)............. + -00080fc0: 3c6b 6579 3e41 7474 7269 6275 7465 733c Attributes< + -00080fd0: 2f6b 6579 3e0a 0909 0909 3c73 7472 696e /key>.....0x0050.....CFNam + -00081000: 653c 2f6b 6579 3e0a 0909 0909 3c73 7472 e.....Mac_OS_X (Ap + -00081020: 706c 655f 4846 5358 203a 2033 293c 2f73 ple_HFSX : 3)..... + -00081040: 4461 7461 3c2f 6b65 793e 0a09 0909 093c Data.....< + -00081050: 6461 7461 3e0a 0909 0909 6257 6c7a 6141 data>.....bWlzaA + -00081060: 4141 4141 4541 4141 4141 4141 4141 5341 AAAAEAAAAAAAAASA + -00081070: 4141 4141 4141 4143 6577 4141 4141 4141 AAAAAAACewAAAAAA + -00081080: 4141 4141 4141 0a09 0909 0941 4149 4941 AAAAAA.....AAIIA + -00081090: 4141 4141 6741 4141 4141 4141 4141 4141 AAAAgAAAAAAAAAAA + +00080e90: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + +00080ea0: 4141 4141 4141 4143 6741 4141 4267 4141 AAAAAAACgAAABgAA + +00080eb0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080ec0: 4141 4141 4141 4149 4141 4141 0a09 0909 AAAAAAAIAAAA.... + +00080ed0: 0941 4141 4141 5051 4141 4141 4141 4141 .AAAAAPQAAAAAAAA + +00080ee0: 414b 2f2f 2f2f 2f38 4141 4141 4141 4141 AK/////8AAAAAAAA + +00080ef0: 4141 4141 4141 4167 4141 4141 410a 0909 AAAAAAAgAAAAA... + +00080f00: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + +00080f10: 4566 4141 4141 4141 4141 4141 413d 0a09 EfAAAAAAAAAAA=.. + +00080f20: 0909 093c 2f64 6174 613e 0a09 0909 093c ........< + +00080f30: 6b65 793e 4944 3c2f 6b65 793e 0a09 0909 key>ID.... + +00080f40: 093c 7374 7269 6e67 3e31 3c2f 7374 7269 .1.....Nam + +00080f60: 653c 2f6b 6579 3e0a 0909 0909 3c73 7472 e.....Macintosh (A + +00080f80: 7070 6c65 5f44 7269 7665 725f 4154 4150 pple_Driver_ATAP + +00080f90: 4920 3a20 3229 3c2f 7374 7269 6e67 3e0a I : 2). + +00080fa0: 0909 093c 2f64 6963 743e 0a09 0909 3c64 ............At + +00080fc0: 7472 6962 7574 6573 3c2f 6b65 793e 0a09 tributes.. + +00080fd0: 0909 093c 7374 7269 6e67 3e30 7830 3035 ...0x005 + +00080fe0: 303c 2f73 7472 696e 673e 0a09 0909 093c 0.....< + +00080ff0: 6b65 793e 4346 4e61 6d65 3c2f 6b65 793e key>CFName + +00081000: 0a09 0909 093c 7374 7269 6e67 3e4d 6163 .....Mac + +00081010: 5f4f 535f 5820 2841 7070 6c65 5f48 4653 _OS_X (Apple_HFS + +00081020: 5820 3a20 3329 3c2f 7374 7269 6e67 3e0a X : 3). + +00081030: 0909 0909 3c6b 6579 3e44 6174 613c 2f6b ....Data....... + +00081050: 0909 0962 576c 7a61 4141 4141 4145 4141 ...bWlzaAAAAAEAA + +00081060: 4141 4141 4141 4153 4141 4141 4141 4141 AAAAAAASAAAAAAAA + +00081070: 4365 7741 4141 4141 4141 4141 4141 410a CewAAAAAAAAAAAA. + +00081080: 0909 0909 4141 4949 4141 4141 4167 4141 ....AAIIAAAAAgAA + +00081090: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 000810a0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000810b0: 4141 4141 4141 410a 0909 0909 4141 4941 AAAAAAA.....AAIA + -000810c0: 4141 4167 6a4c 7235 6c67 4141 4141 4141 AAAgjLr5lgAAAAAA + +000810b0: 0a09 0909 0941 4149 4141 4141 6776 4461 .....AAIAAAAgvDa + +000810c0: 3278 6741 4141 4141 4141 4141 4141 4141 2xgAAAAAAAAAAAAA + 000810d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000810e0: 4141 4141 4141 4141 0a09 0909 0941 4141 AAAAAAAA.....AAA + +000810e0: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + 000810f0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00081100: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00081110: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + +00081110: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + 00081120: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00081130: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00081140: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + +00081140: 4141 410a 0909 0909 4141 4141 4141 4141 AAA.....AAAAAAAA + 00081150: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00081160: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00081170: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + -00081180: 4141 4141 4141 4156 4141 4141 4151 4141 AAAAAAAVAAAAAQAA + -00081190: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000811a0: 4141 4141 4141 4941 4141 4141 0a09 0909 AAAAAAIAAAAA.... + -000811b0: 0941 4141 4141 5238 4141 4141 4141 4151 .AAAAAR8AAAAAAAQ + -000811c0: 4141 4141 4141 4145 4141 4141 4141 4141 AAAAAAAEAAAAAAAA + -000811d0: 4141 4141 4141 6741 4141 4141 410a 0909 AAAAAAgAAAAAA... + -000811e0: 0909 4141 4143 4141 4141 4141 4141 4241 ..AAACAAAAAAAABA + -000811f0: 4566 4141 4141 4141 4145 4141 4341 4141 EfAAAAAAAEAACAAA + -00081200: 4147 4141 4141 4141 4141 4141 4141 0a09 AGAAAAAAAAAAAA.. + -00081210: 0909 0941 4151 4141 4141 4141 4141 4141 ...AAQAAAAAAAAAA + -00081220: 6741 4141 4141 4141 4167 4248 7741 4141 gAAAAAAAAgBHwAAA + -00081230: 4141 4141 4147 4267 4141 4142 6741 410a AAAAAGBgAAABgAA. + -00081240: 0909 0909 4141 4141 4141 4141 4141 4147 ....AAAAAAAAAAAG + -00081250: 4141 4141 4141 4141 4141 4941 4141 4141 AAAAAAAAAAIAAAAA + -00081260: 4141 4149 4171 4141 4141 4141 4141 4141 AAAIAqAAAAAAAAAA + -00081270: 0a09 0909 094c 5941 4141 4159 4141 4141 .....LYAAAAYAAAA + -00081280: 4141 4141 4141 4141 4143 4141 4141 4141 AAAAAAAAACAAAAAA + -00081290: 4141 4141 4341 4141 4141 4141 4143 414c AAAACAAAAAAAACAL + -000812a0: 4e0a 0909 0909 4141 4141 4141 4141 4145 N.....AAAAAAAAAE + -000812b0: 6941 4141 4147 4141 4141 4141 4141 4141 iAAAAGAAAAAAAAAA + -000812c0: 4141 4141 6f41 4141 4141 4141 4141 4167 AAAAoAAAAAAAAAAg + -000812d0: 4141 0a09 0909 0941 4141 4141 4167 4446 AA.....AAAAAAgDF + -000812e0: 5141 4141 4141 4141 4141 7467 4141 4142 QAAAAAAAAAtgAAAB + -000812f0: 6741 4141 4141 4141 4141 4141 4141 4d41 gAAAAAAAAAAAAAMA + -00081300: 4141 410a 0909 0909 4141 4141 4141 4941 AAA.....AAAAAAIA + -00081310: 4141 4141 4141 4149 4130 4941 4141 4141 AAAAAAAIA0IAAAAA + -00081320: 4141 4141 4c59 4141 4141 5941 4141 4141 AAAALYAAAAYAAAAA + -00081330: 4141 4141 0a09 0909 0941 4141 4144 6741 AAAA.....AAAADgA + -00081340: 4141 4141 4141 4141 4341 4141 4141 4141 AAAAAAAACAAAAAAA + -00081350: 4143 414e 7641 4141 4141 4141 4141 4332 ACANvAAAAAAAAAC2 + -00081360: 4141 4141 470a 0909 0909 4141 4141 4141 AAAAG.....AAAAAA + -00081370: 4141 4141 4141 4142 4141 4141 4141 4141 AAAAAAABAAAAAAAA + -00081380: 4141 4167 4141 4141 4141 4141 6744 6e41 AAAgAAAAAAAAgDnA + -00081390: 4141 4141 4141 0a09 0909 0941 4141 7467 AAAAAA.....AAAtg + -000813a0: 4141 4142 6741 4141 4141 4141 4141 4141 AAABgAAAAAAAAAAA + -000813b0: 4141 5341 4141 4141 4141 4141 4149 4141 AASAAAAAAAAAAIAA + -000813c0: 4141 4141 4141 490a 0909 0909 4138 6b41 AAAAAAI.....A8kA + -000813d0: 4141 4141 4141 4141 4c59 4141 4141 5941 AAAAAAAALYAAAAYA + -000813e0: 4141 4141 4141 4141 4141 4141 4641 4141 AAAAAAAAAAAAFAAA + -000813f0: 4141 4141 4141 4143 0a09 0909 0941 4141 AAAAAAAC.....AAA + -00081400: 4141 4141 4143 4150 3241 4141 4141 4141 AAAAACAP2AAAAAAA + -00081410: 4141 4332 4141 4141 4741 4141 4141 4141 AAC2AAAAGAAAAAAA + -00081420: 4141 4141 4141 4259 410a 0909 0909 4141 AAAAAABYA.....AA + -00081430: 4141 4141 4141 4167 4141 4141 4141 4141 AAAAAAAgAAAAAAAA + -00081440: 6745 4977 4141 4141 4141 4141 4174 6741 gEIwAAAAAAAAAtgA + -00081450: 4141 4267 4141 4141 4141 0a09 0909 0941 AABgAAAAAA.....A + -00081460: 4141 4141 4141 5941 4141 4141 4141 4141 AAAAAAYAAAAAAAAA + -00081470: 4149 4141 4141 4141 4141 4942 4641 4141 AIAAAAAAAAIBFAAA + -00081480: 4141 4141 4141 414c 5941 410a 0909 0909 AAAAAAALYAA..... + -00081490: 4141 5941 4141 4141 4141 4141 4141 4141 AAYAAAAAAAAAAAAA + -000814a0: 4767 4141 4141 4141 4141 4143 4141 4141 GgAAAAAAAAACAAAA + -000814b0: 4141 4141 4341 5239 4141 4141 0a09 0909 AAAACAR9AAAA.... + -000814c0: 0941 4141 4141 4332 4141 4141 4741 4141 .AAAAAC2AAAAGAAA + -000814d0: 4141 4141 4141 4141 4141 4277 4141 4141 AAAAAAAAAABwAAAA + -000814e0: 4141 4141 4141 6741 4141 4141 410a 0909 AAAAAAgAAAAAA... + -000814f0: 0909 4141 6745 7167 4141 4141 4141 4141 ..AAgEqgAAAAAAAA + -00081500: 4174 6741 4141 4267 4141 4141 4141 4141 AtgAAABgAAAAAAAA + -00081510: 4141 4141 4165 4141 4141 4141 4141 0a09 AAAAAeAAAAAAAA.. + -00081520: 0909 0941 4149 4141 4141 4141 4141 4942 ...AAIAAAAAAAAIB + -00081530: 4e63 4141 4141 4141 4141 414c 5941 4141 NcAAAAAAAAALYAAA + -00081540: 4159 4141 4141 4141 4141 4141 4141 410a AYAAAAAAAAAAAAA. + -00081550: 0909 0909 4941 4141 4141 4141 4141 4143 ....IAAAAAAAAAAC + -00081560: 4141 4141 4141 4141 4341 5545 4141 4141 AAAAAAAACAUEAAAA + -00081570: 4141 4141 4143 3241 4141 4147 4141 4141 AAAAAC2AAAAGAAAA + -00081580: 0a09 0909 0941 4141 4141 4141 4141 4349 .....AAAAAAAAACI + -00081590: 4141 4141 4141 4141 4141 6741 4141 4141 AAAAAAAAAAgAAAAA + -000815a0: 4141 4167 464d 5141 4141 4141 4141 4141 AAAgFMQAAAAAAAAA + -000815b0: 740a 0909 0909 6741 4141 4267 4141 4141 t.....gAAABgAAAA + -000815c0: 4141 4141 4141 4141 416b 4141 4141 4141 AAAAAAAAAkAAAAAA + -000815d0: 4141 4141 4941 4141 4141 4141 4149 4256 AAAAIAAAAAAAAIBV + -000815e0: 3441 0a09 0909 0941 4141 4141 4141 414c 4A.....AAAAAAAAL + -000815f0: 5941 4141 4159 4141 4141 4141 4141 4141 YAAAAYAAAAAAAAAA + -00081600: 4141 414a 6741 4141 4141 4141 4141 4273 AAAJgAAAAAAAAABs + -00081610: 4141 410a 0909 0909 4141 4141 4341 574c AAA.....AAAACAWL + -00081620: 4141 4141 4141 4141 414b 502f 2f2f 2f2f AAAAAAAAAKP///// + -00081630: 4141 4141 4141 4141 4141 4141 4143 6577 AAAAAAAAAAAAACew + -00081640: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + -00081650: 4141 4141 4141 4167 474c 6741 4141 4141 AAAAAAAgGLgAAAAA + -00081660: 4141 4141 410a 0909 0909 3c2f 6461 7461 AAAAA..........ID..... + -00081690: 323c 2f73 7472 696e 673e 0a09 0909 093c 2.....< + -000816a0: 6b65 793e 4e61 6d65 3c2f 6b65 793e 0a09 key>Name.. + -000816b0: 0909 093c 7374 7269 6e67 3e4d 6163 5f4f ...Mac_O + -000816c0: 535f 5820 2841 7070 6c65 5f48 4653 5820 S_X (Apple_HFSX + -000816d0: 3a20 3329 3c2f 7374 7269 6e67 3e0a 0909 : 3)... + -000816e0: 093c 2f64 6963 743e 0a09 0909 3c64 6963 ..........Attr + -00081700: 6962 7574 6573 3c2f 6b65 793e 0a09 0909 ibutes.... + -00081710: 093c 7374 7269 6e67 3e30 7830 3035 303c .0x0050< + -00081720: 2f73 7472 696e 673e 0a09 0909 093c 6b65 /string>.....CFName.. + -00081740: 0909 093c 7374 7269 6e67 3e20 2841 7070 ... (App + -00081750: 6c65 5f46 7265 6520 3a20 3429 3c2f 7374 le_Free : 4).....D + -00081770: 6174 613c 2f6b 6579 3e0a 0909 0909 3c64 ata..........bWlzaAA + -00081790: 4141 4145 4141 4141 4141 4141 6e2b 4141 AAAEAAAAAAAAn+AA + -000817a0: 4141 4141 4141 4141 4b41 4141 4141 4141 AAAAAAAAKAAAAAAA + -000817b0: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + -000817c0: 4141 4177 4141 4141 4141 4141 4141 4141 AAAwAAAAAAAAAAAA + -000817d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000817e0: 4141 4141 4141 0a09 0909 0941 4149 4141 AAAAAA.....AAIAA + -000817f0: 4141 6741 4141 4141 4141 4141 4141 4141 AAgAAAAAAAAAAAAA + +00081170: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + +00081180: 5641 4141 4141 5141 4141 4141 4141 4141 VAAAAAQAAAAAAAAA + +00081190: 4141 4141 4141 4141 4141 4141 4141 4149 AAAAAAAAAAAAAAAI + +000811a0: 4141 4141 410a 0909 0909 4141 4141 4152 AAAAA.....AAAAAR + +000811b0: 3841 4141 4141 4141 5141 4141 4141 4141 8AAAAAAAQAAAAAAA + +000811c0: 4541 4141 4141 4141 4141 4141 4141 4167 EAAAAAAAAAAAAAAg + +000811d0: 4141 4141 4141 0a09 0909 0941 4141 4341 AAAAAA.....AAACA + +000811e0: 4141 4141 4141 4142 4145 6641 4141 4141 AAAAAAABAEfAAAAA + +000811f0: 4141 4541 4143 4141 4141 4741 4141 4141 AAEAACAAAAGAAAAA + +00081200: 4141 4141 4141 410a 0909 0909 4141 5141 AAAAAAA.....AAQA + +00081210: 4141 4141 4141 4141 4167 4141 4141 4141 AAAAAAAAAgAAAAAA + +00081220: 4141 6742 4877 4141 4141 4141 4141 4637 AAgBHwAAAAAAAAF7 + +00081230: 6741 4141 4267 4141 0a09 0909 0941 4141 gAAABgAA.....AAA + +00081240: 4141 4141 4141 4141 4741 4141 4141 4141 AAAAAAAAGAAAAAAA + +00081250: 4141 4149 4141 4141 4141 4141 4941 706f AAAIAAAAAAAAIApo + +00081260: 4141 4141 4141 4141 410a 0909 0909 4c59 AAAAAAAAA.....LY + +00081270: 4141 4141 5941 4141 4141 4141 4141 4141 AAAAYAAAAAAAAAAA + +00081280: 4141 4341 4141 4141 4141 4141 4143 4141 AACAAAAAAAAAACAA + +00081290: 4141 4141 4141 4341 4c48 0a09 0909 0941 AAAAAACALH.....A + +000812a0: 4141 4141 4141 4141 4569 4141 4141 4741 AAAAAAAAEiAAAAGA + +000812b0: 4141 4141 4141 4141 4141 4141 416f 4141 AAAAAAAAAAAAAoAA + +000812c0: 4141 4141 4141 4141 6741 410a 0909 0909 AAAAAAAAgAA..... + +000812d0: 4141 4141 4141 6744 4477 4141 4141 4141 AAAAAAgDDwAAAAAA + +000812e0: 4141 4174 6741 4141 4267 4141 4141 4141 AAAtgAAABgAAAAAA + +000812f0: 4141 4141 4141 414d 4141 4141 0a09 0909 AAAAAAAMAAAA.... + +00081300: 0941 4141 4141 4149 4141 4141 4141 4141 .AAAAAAIAAAAAAAA + +00081310: 4941 7a77 4141 4141 4141 4141 414c 5941 IAzwAAAAAAAAALYA + +00081320: 4141 4159 4141 4141 4141 4141 410a 0909 AAAYAAAAAAAAA... + +00081330: 0909 4141 4141 4467 4141 4141 4141 4141 ..AAAADgAAAAAAAA + +00081340: 4143 4141 4141 4141 4141 4341 4e70 4141 ACAAAAAAAACANpAA + +00081350: 4141 4141 4141 4143 3241 4141 4147 0a09 AAAAAAAC2AAAAG.. + +00081360: 0909 0941 4141 4141 4141 4141 4141 4141 ...AAAAAAAAAAAAA + +00081370: 4241 4141 4141 4141 4141 4141 6741 4141 BAAAAAAAAAAAgAAA + +00081380: 4141 4141 4167 446c 6741 4141 4141 410a AAAAAgDlgAAAAAA. + +00081390: 0909 0909 4141 4174 6741 4141 4267 4141 ....AAAtgAAABgAA + +000813a0: 4141 4141 4141 4141 4141 4153 4141 4141 AAAAAAAAAAASAAAA + +000813b0: 4141 4141 4141 4941 4141 4141 4141 4149 AAAAAAIAAAAAAAAI + +000813c0: 0a09 0909 0941 384d 4141 4141 4141 4141 .....A8MAAAAAAAA + +000813d0: 414c 5941 4141 4159 4141 4141 4141 4141 ALYAAAAYAAAAAAAA + +000813e0: 4141 4141 4146 4141 4141 4141 4141 4141 AAAAAFAAAAAAAAAA + +000813f0: 430a 0909 0909 4141 4141 4141 4141 4341 C.....AAAAAAAACA + +00081400: 5077 4141 4141 4141 4141 4143 3241 4141 PwAAAAAAAAAC2AAA + +00081410: 4147 4141 4141 4141 4141 4141 4141 4142 AGAAAAAAAAAAAAAB + +00081420: 5941 0a09 0909 0941 4141 4141 4141 4141 YA.....AAAAAAAAA + +00081430: 6741 4141 4141 4141 4167 4548 5141 4141 gAAAAAAAAgEHQAAA + +00081440: 4141 4141 4141 7467 4141 4142 6741 4141 AAAAAAtgAAABgAAA + +00081450: 4141 410a 0909 0909 4141 4141 4141 4159 AAA.....AAAAAAAY + +00081460: 4141 4141 4141 4141 4141 4941 4141 4141 AAAAAAAAAAIAAAAA + +00081470: 4141 4149 4245 6f41 4141 4141 4141 4141 AAAIBEoAAAAAAAAA + +00081480: 4c59 4141 0a09 0909 0941 4159 4141 4141 LYAA.....AAYAAAA + +00081490: 4141 4141 4141 4141 4147 6741 4141 4141 AAAAAAAAAGgAAAAA + +000814a0: 4141 4141 4341 4141 4141 4141 4143 4152 AAAACAAAAAAAACAR + +000814b0: 3341 4141 410a 0909 0909 4141 4141 4143 3AAAA.....AAAAAC + +000814c0: 3241 4141 4147 4141 4141 4141 4141 4141 2AAAAGAAAAAAAAAA + +000814d0: 4141 4142 7741 4141 4141 4141 4141 4167 AAABwAAAAAAAAAAg + +000814e0: 4141 4141 4141 0a09 0909 0941 4167 4570 AAAAAA.....AAgEp + +000814f0: 4141 4141 4141 4141 4141 7467 4141 4142 AAAAAAAAAAtgAAAB + +00081500: 6741 4141 4141 4141 4141 4141 4141 6541 gAAAAAAAAAAAAAeA + +00081510: 4141 4141 4141 410a 0909 0909 4141 4941 AAAAAAA.....AAIA + +00081520: 4141 4141 4141 4149 424e 4541 4141 4141 AAAAAAAIBNEAAAAA + +00081530: 4141 4141 4c59 4141 4141 5941 4141 4141 AAAALYAAAAYAAAAA + +00081540: 4141 4141 4141 4141 0a09 0909 0949 4141 AAAAAAAA.....IAA + +00081550: 4141 4141 4141 4141 4341 4141 4141 4141 AAAAAAAACAAAAAAA + +00081560: 4143 4154 2b41 4141 4141 4141 4141 4332 ACAT+AAAAAAAAAC2 + +00081570: 4141 4141 4741 4141 410a 0909 0909 4141 AAAAGAAAA.....AA + +00081580: 4141 4141 4141 4143 4941 4141 4141 4141 AAAAAAACIAAAAAAA + +00081590: 4141 4167 4141 4141 4141 4141 6746 4b77 AAAgAAAAAAAAgFKw + +000815a0: 4141 4141 4141 4141 4174 0a09 0909 0967 AAAAAAAAAt.....g + +000815b0: 4141 4142 6741 4141 4141 4141 4141 4141 AAABgAAAAAAAAAAA + +000815c0: 4141 6b41 4141 4141 4141 4141 4149 4141 AAkAAAAAAAAAAIAA + +000815d0: 4141 4141 4141 4942 5667 410a 0909 0909 AAAAAAIBVgA..... + +000815e0: 4141 4141 4141 4141 4c59 4141 4141 5941 AAAAAAAALYAAAAYA + +000815f0: 4141 4141 4141 4141 4141 4141 4a67 4141 AAAAAAAAAAAAJgAA + +00081600: 4141 4141 4141 4142 7341 4141 0a09 0909 AAAAAAABsAAA.... + +00081610: 0941 4141 4143 4157 4641 4141 4141 4141 .AAAACAWFAAAAAAA + +00081620: 4141 4b4c 2f2f 2f2f 2f41 4141 4141 4141 AAKL/////AAAAAAA + +00081630: 4141 4141 4141 4365 7741 4141 410a 0909 AAAAAACewAAAA... + +00081640: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + +00081650: 6747 4a77 4141 4141 4141 4141 4141 0a09 gGJwAAAAAAAAAA.. + +00081660: 0909 093c 2f64 6174 613e 0a09 0909 093c ........< + +00081670: 6b65 793e 4944 3c2f 6b65 793e 0a09 0909 key>ID.... + +00081680: 093c 7374 7269 6e67 3e32 3c2f 7374 7269 .2.....Nam + +000816a0: 653c 2f6b 6579 3e0a 0909 0909 3c73 7472 e.....Mac_OS_X (Ap + +000816c0: 706c 655f 4846 5358 203a 2033 293c 2f73 ple_HFSX : 3)............. + +000816f0: 3c6b 6579 3e41 7474 7269 6275 7465 733c Attributes< + +00081700: 2f6b 6579 3e0a 0909 0909 3c73 7472 696e /key>.....0x0050.....CFNam + +00081730: 653c 2f6b 6579 3e0a 0909 0909 3c73 7472 e..... (Apple_Free + +00081750: 203a 2034 293c 2f73 7472 696e 673e 0a09 : 4).. + +00081760: 0909 093c 6b65 793e 4461 7461 3c2f 6b65 ...Data........ + +00081780: 0909 6257 6c7a 6141 4141 4141 4541 4141 ..bWlzaAAAAAEAAA + +00081790: 4141 4141 416e 2b41 4141 4141 4141 4141 AAAAAn+AAAAAAAAA + +000817a0: 414b 4141 4141 4141 4141 4141 4141 0a09 AKAAAAAAAAAAAA.. + +000817b0: 0909 0941 4141 4141 4141 4141 7741 4141 ...AAAAAAAAAwAAA + +000817c0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000817d0: 4141 4141 4141 4141 4141 4141 4141 410a AAAAAAAAAAAAAAA. + +000817e0: 0909 0909 4141 4941 4141 4167 4141 4141 ....AAIAAAAgAAAA + +000817f0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00081800: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00081810: 4141 4141 4141 410a 0909 0909 4141 4141 AAAAAAA.....AAAA + +00081810: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + 00081820: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00081830: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00081840: 4141 4141 4141 4141 0a09 0909 0941 4141 AAAAAAAA.....AAA + +00081840: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + 00081850: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00081860: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00081870: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + +00081870: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + 00081880: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00081890: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000818a0: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + -000818b0: 4141 4141 4141 4341 4141 4141 6741 4141 AAAAAACAAAAAgAAA + -000818c0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000818d0: 4141 4141 4141 4b41 4141 410a 0909 0909 AAAAAAKAAAA..... + -000818e0: 4141 4149 4269 3441 4141 4141 4141 4141 AAAIBi4AAAAAAAAA + -000818f0: 4150 2f2f 2f2f 3841 4141 4141 4141 4141 AP////8AAAAAAAAA + -00081900: 4141 4141 4141 6f41 4141 4141 0a09 0909 AAAAAAoAAAAA.... + -00081910: 0941 4141 4141 4141 4141 4141 4143 4159 .AAAAAAAAAAAACAY + -00081920: 7541 4141 4141 4141 4141 4141 3d0a 0909 uAAAAAAAAAAA=... + -00081930: 0909 3c2f 6461 7461 3e0a 0909 0909 3c6b .......ID..... + -00081950: 3c73 7472 696e 673e 333c 2f73 7472 696e 3.....Name + -00081970: 3c2f 6b65 793e 0a09 0909 093c 7374 7269 ..... (Apple_Free + -00081990: 3a20 3429 3c2f 7374 7269 6e67 3e0a 0909 : 4)... + -000819a0: 093c 2f64 6963 743e 0a09 093c 2f61 7272 .......cSum< + -000819c0: 2f6b 6579 3e0a 0909 3c61 7272 6179 3e0a /key>.... + -000819d0: 0909 093c 6469 6374 3e0a 0909 0909 3c6b ........Attributes..... + -00081a00: 3078 3030 3030 3c2f 7374 7269 6e67 3e0a 0x0000. + -00081a10: 0909 0909 3c6b 6579 3e44 6174 613c 2f6b ....Data....... + -00081a30: 0909 0941 5141 4341 4141 4168 5932 3436 ...AQACAAAAhY246 + -00081a40: 413d 3d0a 0909 0909 3c2f 6461 7461 3e0a A==...... + -00081a50: 0909 0909 3c6b 6579 3e49 443c 2f6b 6579 ....ID.....0< + -00081a70: 2f73 7472 696e 673e 0a09 0909 093c 6b65 /string>.....Name.... + -00081a90: 093c 7374 7269 6e67 3e3c 2f73 7472 696e ........ + -00081ab0: 093c 6469 6374 3e0a 0909 0909 3c6b 6579 ......Attributes.....0x + -00081ae0: 3030 3030 3c2f 7374 7269 6e67 3e0a 0909 0000... + -00081af0: 0909 3c6b 6579 3e44 6174 613c 2f6b 6579 ..Data......... + -00081b10: 0941 5141 4341 4141 4141 4141 4141 413d .AQACAAAAAAAAAA= + -00081b20: 3d0a 0909 0909 3c2f 6461 7461 3e0a 0909 =........ + -00081b30: 0909 3c6b 6579 3e49 443c 2f6b 6579 3e0a ..ID. + -00081b40: 0909 0909 3c73 7472 696e 673e 313c 2f73 ....1..... + -00081b60: 4e61 6d65 3c2f 6b65 793e 0a09 0909 093c Name.....< + -00081b70: 7374 7269 6e67 3e3c 2f73 7472 696e 673e string> + -00081b80: 0a09 0909 3c2f 6469 6374 3e0a 0909 093c ........< + -00081b90: 6469 6374 3e0a 0909 0909 3c6b 6579 3e41 dict>.....A + -00081ba0: 7474 7269 6275 7465 733c 2f6b 6579 3e0a ttributes. + -00081bb0: 0909 0909 3c73 7472 696e 673e 3078 3030 ....0x00 + -00081bc0: 3030 3c2f 7374 7269 6e67 3e0a 0909 0909 00..... + -00081bd0: 3c6b 6579 3e44 6174 613c 2f6b 6579 3e0a Data. + -00081be0: 0909 0909 3c64 6174 613e 0a09 0909 0941 .........A + -00081bf0: 5141 4341 4141 4174 5378 6e73 413d 3d0a QACAAAAtSxnsA==. + -00081c00: 0909 0909 3c2f 6461 7461 3e0a 0909 0909 ......... + -00081c10: 3c6b 6579 3e49 443c 2f6b 6579 3e0a 0909 ID... + -00081c20: 0909 3c73 7472 696e 673e 323c 2f73 7472 ..2.....Na + -00081c40: 6d65 3c2f 6b65 793e 0a09 0909 093c 7374 me....... + -00081c60: 0909 3c2f 6469 6374 3e0a 0909 3c2f 6172 ........nsiz + -00081c80: 3c2f 6b65 793e 0a09 093c 6172 7261 793e ... + -00081c90: 0a09 0909 3c64 6963 743e 0a09 0909 093c .........< + -00081ca0: 6b65 793e 4174 7472 6962 7574 6573 3c2f key>Attributes.....0x0000 + -00081cd0: 0a09 0909 093c 6b65 793e 4461 7461 3c2f .....Data...... + -00081cf0: 0909 0909 5044 3934 6257 7767 646d 5679 ....PD94bWwgdmVy + -00081d00: 6332 6c76 626a 3069 4d53 3477 4969 426c c2lvbj0iMS4wIiBl + -00081d10: 626d 4e76 5a47 6c75 5a7a 3069 5656 5247 bmNvZGluZz0iVVRG + -00081d20: 0a09 0909 094c 5467 6950 7a34 4b50 4346 .....LTgiPz4KPCF + -00081d30: 4554 304e 5557 5642 4649 4842 7361 584e ET0NUWVBFIHBsaXN + -00081d40: 3049 4642 5651 6b78 4a51 7941 694c 5338 0IFBVQkxJQyAiLS8 + -00081d50: 760a 0909 0909 5158 4277 6247 5576 4c30 v.....QXBwbGUvL0 + -00081d60: 5255 5243 4251 5445 6c54 5643 4178 4c6a RURCBQTElTVCAxLj + -00081d70: 4176 4c30 564f 4969 4169 6148 5230 6344 AvL0VOIiAiaHR0cD + -00081d80: 6f76 0a09 0909 094c 3364 3364 7935 6863 ov.....L3d3dy5hc + -00081d90: 4842 735a 5335 6a62 3230 7652 4652 4563 HBsZS5jb20vRFREc + -00081da0: 7939 5163 6d39 775a 584a 3065 5578 7063 y9Qcm9wZXJ0eUxpc + -00081db0: 3351 740a 0909 0909 4d53 3477 4c6d 5230 3Qt.....MS4wLmR0 + -00081dc0: 5a43 492b 436a 7877 6247 6c7a 6443 4232 ZCI+CjxwbGlzdCB2 + -00081dd0: 5a58 4a7a 6157 3975 5053 4978 4c6a 4169 ZXJzaW9uPSIxLjAi + -00081de0: 5067 6f38 0a09 0909 095a 476c 6a64 4434 Pgo8.....ZGljdD4 + -00081df0: 4b43 5478 725a 586b 2b59 6d78 7659 3273 KCTxrZXk+YmxvY2s + -00081e00: 7459 3268 6c59 3274 7a64 5730 744d 6a77 tY2hlY2tzdW0tMjw + -00081e10: 7661 3256 350a 0909 0909 5067 6f4a 5047 va2V5.....PgoJPG + -00081e20: 6c75 6447 566e 5a58 492b 4c54 4d35 4d44 ludGVnZXI+LTM5MD + -00081e30: 5531 4f44 4d7a 4d54 7776 6157 3530 5a57 U1ODMzMTwvaW50ZW + -00081e40: 646c 636a 344b 0a09 0909 0943 5478 725a dlcj4K.....CTxrZ + -00081e50: 586b 2b63 4746 7964 4331 7564 5730 384c Xk+cGFydC1udW08L + -00081e60: 3274 6c65 5434 4b43 5478 7062 6e52 6c5a 2tleT4KCTxpbnRlZ + -00081e70: 3256 7950 6a41 380a 0909 0909 4c32 6c75 2VyPjA8.....L2lu + -00081e80: 6447 566e 5a58 492b 4367 6b38 6132 5635 dGVnZXI+Cgk8a2V5 + -00081e90: 506e 5a6c 636e 4e70 6232 3438 4c32 746c PnZlcnNpb248L2tl + -00081ea0: 6554 344b 4354 7870 0a09 0909 0962 6e52 eT4KCTxp.....bnR + -00081eb0: 6c5a 3256 7950 6a59 384c 326c 7564 4756 lZ2VyPjY8L2ludGV + -00081ec0: 6e5a 5849 2b43 6a77 765a 476c 6a64 4434 nZXI+CjwvZGljdD4 + -00081ed0: 4b50 4339 7762 476c 7a0a 0909 0909 6444 KPC9wbGlz.....dD + -00081ee0: 344b 0a09 0909 093c 2f64 6174 613e 0a09 4K....... + -00081ef0: 0909 093c 6b65 793e 4944 3c2f 6b65 793e ...ID + -00081f00: 0a09 0909 093c 7374 7269 6e67 3e30 3c2f .....0.....Name..... + -00081f30: 3c73 7472 696e 673e 3c2f 7374 7269 6e67 ........ + -00081f50: 3c64 6963 743e 0a09 0909 093c 6b65 793e ..... + -00081f60: 4174 7472 6962 7574 6573 3c2f 6b65 793e Attributes + -00081f70: 0a09 0909 093c 7374 7269 6e67 3e30 7830 .....0x0 + -00081f80: 3030 303c 2f73 7472 696e 673e 0a09 0909 000.... + -00081f90: 093c 6b65 793e 4461 7461 3c2f 6b65 793e .Data + -00081fa0: 0a09 0909 093c 6461 7461 3e0a 0909 0909 .......... + -00081fb0: 5044 3934 6257 7767 646d 5679 6332 6c76 PD94bWwgdmVyc2lv + -00081fc0: 626a 3069 4d53 3477 4969 426c 626d 4e76 bj0iMS4wIiBlbmNv + -00081fd0: 5a47 6c75 5a7a 3069 5656 5247 0a09 0909 ZGluZz0iVVRG.... + -00081fe0: 094c 5467 6950 7a34 4b50 4346 4554 304e .LTgiPz4KPCFET0N + -00081ff0: 5557 5642 4649 4842 7361 584e 3049 4642 UWVBFIHBsaXN0IFB + -00082000: 5651 6b78 4a51 7941 694c 5338 760a 0909 VQkxJQyAiLS8v... + -00082010: 0909 5158 4277 6247 5576 4c30 5255 5243 ..QXBwbGUvL0RURC + -00082020: 4251 5445 6c54 5643 4178 4c6a 4176 4c30 BQTElTVCAxLjAvL0 + -00082030: 564f 4969 4169 6148 5230 6344 6f76 0a09 VOIiAiaHR0cDov.. + -00082040: 0909 094c 3364 3364 7935 6863 4842 735a ...L3d3dy5hcHBsZ + -00082050: 5335 6a62 3230 7652 4652 4563 7939 5163 S5jb20vRFREcy9Qc + -00082060: 6d39 775a 584a 3065 5578 7063 3351 740a m9wZXJ0eUxpc3Qt. + -00082070: 0909 0909 4d53 3477 4c6d 5230 5a43 492b ....MS4wLmR0ZCI+ + -00082080: 436a 7877 6247 6c7a 6443 4232 5a58 4a7a CjxwbGlzdCB2ZXJz + -00082090: 6157 3975 5053 4978 4c6a 4169 5067 6f38 aW9uPSIxLjAiPgo8 + -000820a0: 0a09 0909 095a 476c 6a64 4434 4b43 5478 .....ZGljdD4KCTx + -000820b0: 725a 586b 2b59 6d78 7659 3273 7459 3268 rZXk+YmxvY2stY2h + -000820c0: 6c59 3274 7a64 5730 744d 6a77 7661 3256 lY2tzdW0tMjwva2V + -000820d0: 350a 0909 0909 5067 6f4a 5047 6c75 6447 5.....PgoJPGludG + -000820e0: 566e 5a58 492b 4d44 7776 6157 3530 5a57 VnZXI+MDwvaW50ZW + -000820f0: 646c 636a 344b 4354 7872 5a58 6b2b 6347 dlcj4KCTxrZXk+cG + -00082100: 4679 0a09 0909 0964 4331 7564 5730 384c Fy.....dC1udW08L + -00082110: 3274 6c65 5434 4b43 5478 7062 6e52 6c5a 2tleT4KCTxpbnRlZ + -00082120: 3256 7950 6a45 384c 326c 7564 4756 6e5a 2VyPjE8L2ludGVnZ + -00082130: 5849 2b0a 0909 0909 4367 6b38 6132 5635 XI+.....Cgk8a2V5 + -00082140: 506e 5a6c 636e 4e70 6232 3438 4c32 746c PnZlcnNpb248L2tl + -00082150: 6554 344b 4354 7870 626e 526c 5a32 5679 eT4KCTxpbnRlZ2Vy + -00082160: 506a 5938 0a09 0909 094c 326c 7564 4756 PjY8.....L2ludGV + -00082170: 6e5a 5849 2b43 6a77 765a 476c 6a64 4434 nZXI+CjwvZGljdD4 + -00082180: 4b50 4339 7762 476c 7a64 4434 4b0a 0909 KPC9wbGlzdD4K... + -00082190: 0909 3c2f 6461 7461 3e0a 0909 0909 3c6b .......ID..... + -000821b0: 3c73 7472 696e 673e 313c 2f73 7472 696e 1.....Name + -000821d0: 3c2f 6b65 793e 0a09 0909 093c 7374 7269 ......... + -000821f0: 3c2f 6469 6374 3e0a 0909 093c 6469 6374 .........Attri + -00082210: 6275 7465 733c 2f6b 6579 3e0a 0909 0909 butes..... + -00082220: 3c73 7472 696e 673e 3078 3030 3030 3c2f 0x0000.....Data..... + -00082250: 3c64 6174 613e 0a09 0909 0950 4439 3462 .....PD94b + -00082260: 5777 6764 6d56 7963 326c 7662 6a30 694d WwgdmVyc2lvbj0iM + -00082270: 5334 7749 6942 6c62 6d4e 765a 476c 755a S4wIiBlbmNvZGluZ + -00082280: 7a30 6956 5652 470a 0909 0909 4c54 6769 z0iVVRG.....LTgi + -00082290: 507a 344b 5043 4645 5430 4e55 5756 4246 Pz4KPCFET0NUWVBF + -000822a0: 4948 4273 6158 4e30 4946 4256 516b 784a IHBsaXN0IFBVQkxJ + -000822b0: 5179 4169 4c53 3876 0a09 0909 0951 5842 QyAiLS8v.....QXB + -000822c0: 7762 4755 764c 3052 5552 4342 5154 456c wbGUvL0RURCBQTEl + -000822d0: 5456 4341 784c 6a41 764c 3056 4f49 6941 TVCAxLjAvL0VOIiA + -000822e0: 6961 4852 3063 446f 760a 0909 0909 4c33 iaHR0cDov.....L3 + -000822f0: 6433 6479 3568 6348 4273 5a53 356a 6232 d3dy5hcHBsZS5jb2 + -00082300: 3076 5246 5245 6379 3951 636d 3977 5a58 0vRFREcy9Qcm9wZX + -00082310: 4a30 6555 7870 6333 5174 0a09 0909 094d J0eUxpc3Qt.....M + -00082320: 5334 774c 6d52 305a 4349 2b43 6a78 7762 S4wLmR0ZCI+Cjxwb + -00082330: 476c 7a64 4342 325a 584a 7a61 5739 7550 GlzdCB2ZXJzaW9uP + -00082340: 5349 784c 6a41 6950 676f 380a 0909 0909 SIxLjAiPgo8..... + -00082350: 5a47 6c6a 6444 344b 4354 7872 5a58 6b2b ZGljdD4KCTxrZXk+ + -00082360: 5530 6842 4c54 4574 5a47 6c6e 5a58 4e30 U0hBLTEtZGlnZXN0 + -00082370: 5043 3972 5a58 6b2b 4367 6b38 0a09 0909 PC9rZXk+Cgk8.... + -00082380: 095a 4746 3059 5434 4b43 5731 7562 5546 .ZGF0YT4KCW1ubUF + -00082390: 5253 544a 4b51 304a 6d55 3274 514f 544a RSTJKQ0JmU2tQOTJ + -000823a0: 5465 4670 7565 6a64 494f 5535 540a 0909 TeFpuejdIOU5T... + -000823b0: 0909 5554 304b 4354 7776 5a47 4630 5954 ..UT0KCTwvZGF0YT + -000823c0: 344b 4354 7872 5a58 6b2b 596d 7876 5932 4KCTxrZXk+YmxvY2 + -000823d0: 7374 5932 686c 5932 747a 6457 3074 0a09 stY2hlY2tzdW0t.. + -000823e0: 0909 094d 6a77 7661 3256 3550 676f 4a50 ...Mjwva2V5PgoJP + -000823f0: 476c 7564 4756 6e5a 5849 2b4c 5445 7a4d GludGVnZXI+LTEzM + -00082400: 7a55 304d 5455 324d 6a63 384c 326c 750a zU0MTU2Mjc8L2lu. + -00082410: 0909 0909 6447 566e 5a58 492b 4367 6b38 ....dGVnZXI+Cgk8 + -00082420: 6132 5635 506d 4a35 6447 567a 5043 3972 a2V5PmJ5dGVzPC9r + -00082430: 5a58 6b2b 4367 6b38 6157 3530 5a57 646c ZXk+Cgk8aW50ZWdl + -00082440: 0a09 0909 0963 6a34 304f 444d 7a4d 6a67 .....cj40ODMzMjg + -00082450: 384c 326c 7564 4756 6e5a 5849 2b43 676b 8L2ludGVnZXI+Cgk + -00082460: 3861 3256 3550 6d52 6864 4755 384c 3274 8a2V5PmRhdGU8L2t + -00082470: 6c0a 0909 0909 6554 344b 4354 7870 626e l.....eT4KCTxpbn + -00082480: 526c 5a32 5679 5069 3031 4d54 6b35 4f54 RlZ2VyPi01MTk5OT + -00082490: 6733 4e44 4d38 4c32 6c75 6447 566e 5a58 g3NDM8L2ludGVnZX + -000824a0: 492b 0a09 0909 0943 676b 3861 3256 3550 I+.....Cgk8a2V5P + -000824b0: 6e42 6863 6e51 7462 6e56 7450 4339 725a nBhcnQtbnVtPC9rZ + -000824c0: 586b 2b43 676b 3861 5735 305a 5764 6c63 Xk+Cgk8aW50ZWdlc + -000824d0: 6a34 790a 0909 0909 5043 3970 626e 526c j4y.....PC9pbnRl + -000824e0: 5a32 5679 5067 6f4a 5047 746c 6554 3532 Z2VyPgoJPGtleT52 + -000824f0: 5a58 4a7a 6157 3975 5043 3972 5a58 6b2b ZXJzaW9uPC9rZXk+ + -00082500: 4367 6b38 0a09 0909 0961 5735 305a 5764 Cgk8.....aW50ZWd + -00082510: 6c63 6a34 3250 4339 7062 6e52 6c5a 3256 lcj42PC9pbnRlZ2V + -00082520: 7950 676f 4a50 4774 6c65 5435 3262 3278 yPgoJPGtleT52b2x + -00082530: 3162 5755 740a 0909 0909 6332 6c6e 626d 1bWUt.....c2lnbm + -00082540: 4630 6458 4a6c 5043 3972 5a58 6b2b 4367 F0dXJlPC9rZXk+Cg + -00082550: 6b38 6157 3530 5a57 646c 636a 3478 4f44 k8aW50ZWdlcj4xOD + -00082560: 5133 4e54 7776 0a09 0909 0961 5735 305a Q3NTwv.....aW50Z + -00082570: 5764 6c63 6a34 4b50 4339 6b61 574e 3050 Wdlcj4KPC9kaWN0P + -00082580: 676f 384c 3342 7361 584e 3050 676f 3d0a go8L3BsaXN0Pgo=. + -00082590: 0909 0909 3c2f 6461 7461 3e0a 0909 0909 ......... + -000825a0: 3c6b 6579 3e49 443c 2f6b 6579 3e0a 0909 ID... + -000825b0: 0909 3c73 7472 696e 673e 323c 2f73 7472 ..2.....Na + -000825d0: 6d65 3c2f 6b65 793e 0a09 0909 093c 7374 me....... + -000825f0: 0909 3c2f 6469 6374 3e0a 0909 3c2f 6172 ........plst + -00082610: 3c2f 6b65 793e 0a09 093c 6172 7261 793e ... + -00082620: 0a09 0909 3c64 6963 743e 0a09 0909 093c .........< + -00082630: 6b65 793e 4174 7472 6962 7574 6573 3c2f key>Attributes.....0x0050 + -00082660: 0a09 0909 093c 6b65 793e 4461 7461 3c2f .....Data...... + -00082680: 0909 0909 4141 4141 4141 4141 4141 4141 ....AAAAAAAAAAAA + +000818a0: 4141 410a 0909 0909 4141 4141 4141 4143 AAA.....AAAAAAAC + +000818b0: 4141 4141 4167 4141 4141 4141 4141 4141 AAAAAgAAAAAAAAAA + +000818c0: 4141 4141 4141 4141 4141 4141 4141 414b AAAAAAAAAAAAAAAK + +000818d0: 4141 4141 0a09 0909 0941 4141 4942 6963 AAAA.....AAAIBic + +000818e0: 4141 4141 4141 4141 4141 502f 2f2f 2f38 AAAAAAAAAAP////8 + +000818f0: 4141 4141 4141 4141 4141 4141 4141 416f AAAAAAAAAAAAAAAo + +00081900: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + +00081910: 4141 4141 4141 4341 596e 4141 4141 4141 AAAAAACAYnAAAAAA + +00081920: 4141 4141 413d 0a09 0909 093c 2f64 6174 AAAAA=..........ID.....3..... + +00081960: 3c6b 6579 3e4e 616d 653c 2f6b 6579 3e0a Name. + +00081970: 0909 0909 3c73 7472 696e 673e 2028 4170 .... (Ap + +00081980: 706c 655f 4672 6565 203a 2034 293c 2f73 ple_Free : 4)..........< + +000819b0: 6b65 793e 6353 756d 3c2f 6b65 793e 0a09 key>cSum.. + +000819c0: 093c 6172 7261 793e 0a09 0909 3c64 6963 ..........Attr + +000819e0: 6962 7574 6573 3c2f 6b65 793e 0a09 0909 ibutes.... + +000819f0: 093c 7374 7269 6e67 3e30 7830 3030 303c .0x0000< + +00081a00: 2f73 7472 696e 673e 0a09 0909 093c 6b65 /string>.....Data.... + +00081a20: 093c 6461 7461 3e0a 0909 0909 4151 4143 ......AQAC + +00081a30: 4141 4141 6859 3234 3641 3d3d 0a09 0909 AAAAhY246A==.... + +00081a40: 093c 2f64 6174 613e 0a09 0909 093c 6b65 ......ID.....< + +00081a60: 7374 7269 6e67 3e30 3c2f 7374 7269 6e67 string>0.....Name< + +00081a80: 2f6b 6579 3e0a 0909 0909 3c73 7472 696e /key>.........< + +00081aa0: 2f64 6963 743e 0a09 0909 3c64 6963 743e /dict>.... + +00081ab0: 0a09 0909 093c 6b65 793e 4174 7472 6962 .....Attrib + +00081ac0: 7574 6573 3c2f 6b65 793e 0a09 0909 093c utes.....< + +00081ad0: 7374 7269 6e67 3e30 7830 3030 303c 2f73 string>0x0000..... + +00081af0: 4461 7461 3c2f 6b65 793e 0a09 0909 093c Data.....< + +00081b00: 6461 7461 3e0a 0909 0909 4151 4143 4141 data>.....AQACAA + +00081b10: 4141 4141 4141 4141 3d3d 0a09 0909 093c AAAAAAAA==.....< + +00081b20: 2f64 6174 613e 0a09 0909 093c 6b65 793e /data>..... + +00081b30: 4944 3c2f 6b65 793e 0a09 0909 093c 7374 ID.....1. + +00081b50: 0909 0909 3c6b 6579 3e4e 616d 653c 2f6b ....Name..... + +00081b70: 3c2f 7374 7269 6e67 3e0a 0909 093c 2f64 .......... + +00081b90: 0909 093c 6b65 793e 4174 7472 6962 7574 ...Attribut + +00081ba0: 6573 3c2f 6b65 793e 0a09 0909 093c 7374 es.....0x0000.....Da + +00081bd0: 7461 3c2f 6b65 793e 0a09 0909 093c 6461 ta..........AQACAAAA + +00081bf0: 2f4a 4335 4c51 3d3d 0a09 0909 093c 2f64 /JC5LQ==..........ID + +00081c10: 3c2f 6b65 793e 0a09 0909 093c 7374 7269 .....2... + +00081c30: 0909 3c6b 6579 3e4e 616d 653c 2f6b 6579 ..Name............... + +00081c70: 3c6b 6579 3e6e 7369 7a3c 2f6b 6579 3e0a nsiz. + +00081c80: 0909 3c61 7272 6179 3e0a 0909 093c 6469 ...........Att + +00081ca0: 7269 6275 7465 733c 2f6b 6579 3e0a 0909 ributes... + +00081cb0: 0909 3c73 7472 696e 673e 3078 3030 3030 ..0x0000 + +00081cc0: 3c2f 7374 7269 6e67 3e0a 0909 0909 3c6b .....Data... + +00081ce0: 0909 3c64 6174 613e 0a09 0909 0950 4439 .......PD9 + +00081cf0: 3462 5777 6764 6d56 7963 326c 7662 6a30 4bWwgdmVyc2lvbj0 + +00081d00: 694d 5334 7749 6942 6c62 6d4e 765a 476c iMS4wIiBlbmNvZGl + +00081d10: 755a 7a30 6956 5652 470a 0909 0909 4c54 uZz0iVVRG.....LT + +00081d20: 6769 507a 344b 5043 4645 5430 4e55 5756 giPz4KPCFET0NUWV + +00081d30: 4246 4948 4273 6158 4e30 4946 4256 516b BFIHBsaXN0IFBVQk + +00081d40: 784a 5179 4169 4c53 3876 0a09 0909 0951 xJQyAiLS8v.....Q + +00081d50: 5842 7762 4755 764c 3052 5552 4342 5154 XBwbGUvL0RURCBQT + +00081d60: 456c 5456 4341 784c 6a41 764c 3056 4f49 ElTVCAxLjAvL0VOI + +00081d70: 6941 6961 4852 3063 446f 760a 0909 0909 iAiaHR0cDov..... + +00081d80: 4c33 6433 6479 3568 6348 4273 5a53 356a L3d3dy5hcHBsZS5j + +00081d90: 6232 3076 5246 5245 6379 3951 636d 3977 b20vRFREcy9Qcm9w + +00081da0: 5a58 4a30 6555 7870 6333 5174 0a09 0909 ZXJ0eUxpc3Qt.... + +00081db0: 094d 5334 774c 6d52 305a 4349 2b43 6a78 .MS4wLmR0ZCI+Cjx + +00081dc0: 7762 476c 7a64 4342 325a 584a 7a61 5739 wbGlzdCB2ZXJzaW9 + +00081dd0: 7550 5349 784c 6a41 6950 676f 380a 0909 uPSIxLjAiPgo8... + +00081de0: 0909 5a47 6c6a 6444 344b 4354 7872 5a58 ..ZGljdD4KCTxrZX + +00081df0: 6b2b 596d 7876 5932 7374 5932 686c 5932 k+YmxvY2stY2hlY2 + +00081e00: 747a 6457 3074 4d6a 7776 6132 5635 0a09 tzdW0tMjwva2V5.. + +00081e10: 0909 0950 676f 4a50 476c 7564 4756 6e5a ...PgoJPGludGVnZ + +00081e20: 5849 2b4c 544d 354d 4455 314f 444d 7a4d XI+LTM5MDU1ODMzM + +00081e30: 5477 7661 5735 305a 5764 6c63 6a34 4b0a TwvaW50ZWdlcj4K. + +00081e40: 0909 0909 4354 7872 5a58 6b2b 6347 4679 ....CTxrZXk+cGFy + +00081e50: 6443 3175 6457 3038 4c32 746c 6554 344b dC1udW08L2tleT4K + +00081e60: 4354 7870 626e 526c 5a32 5679 506a 4138 CTxpbnRlZ2VyPjA8 + +00081e70: 0a09 0909 094c 326c 7564 4756 6e5a 5849 .....L2ludGVnZXI + +00081e80: 2b43 676b 3861 3256 3550 6e5a 6c63 6e4e +Cgk8a2V5PnZlcnN + +00081e90: 7062 3234 384c 3274 6c65 5434 4b43 5478 pb248L2tleT4KCTx + +00081ea0: 700a 0909 0909 626e 526c 5a32 5679 506a p.....bnRlZ2VyPj + +00081eb0: 5938 4c32 6c75 6447 566e 5a58 492b 436a Y8L2ludGVnZXI+Cj + +00081ec0: 7776 5a47 6c6a 6444 344b 5043 3977 6247 wvZGljdD4KPC9wbG + +00081ed0: 6c7a 0a09 0909 0964 4434 4b0a 0909 0909 lz.....dD4K..... + +00081ee0: 3c2f 6461 7461 3e0a 0909 0909 3c6b 6579 .....ID.....0 + +00081f10: 0a09 0909 093c 6b65 793e 4e61 6d65 3c2f .....Name.............. + +00081f50: 0909 0909 3c6b 6579 3e41 7474 7269 6275 ....Attribu + +00081f60: 7465 733c 2f6b 6579 3e0a 0909 0909 3c73 tes.....0x0000.....D + +00081f90: 6174 613c 2f6b 6579 3e0a 0909 0909 3c64 ata..........PD94bWw + +00081fb0: 6764 6d56 7963 326c 7662 6a30 694d 5334 gdmVyc2lvbj0iMS4 + +00081fc0: 7749 6942 6c62 6d4e 765a 476c 755a 7a30 wIiBlbmNvZGluZz0 + +00081fd0: 6956 5652 470a 0909 0909 4c54 6769 507a iVVRG.....LTgiPz + +00081fe0: 344b 5043 4645 5430 4e55 5756 4246 4948 4KPCFET0NUWVBFIH + +00081ff0: 4273 6158 4e30 4946 4256 516b 784a 5179 BsaXN0IFBVQkxJQy + +00082000: 4169 4c53 3876 0a09 0909 0951 5842 7762 AiLS8v.....QXBwb + +00082010: 4755 764c 3052 5552 4342 5154 456c 5456 GUvL0RURCBQTElTV + +00082020: 4341 784c 6a41 764c 3056 4f49 6941 6961 CAxLjAvL0VOIiAia + +00082030: 4852 3063 446f 760a 0909 0909 4c33 6433 HR0cDov.....L3d3 + +00082040: 6479 3568 6348 4273 5a53 356a 6232 3076 dy5hcHBsZS5jb20v + +00082050: 5246 5245 6379 3951 636d 3977 5a58 4a30 RFREcy9Qcm9wZXJ0 + +00082060: 6555 7870 6333 5174 0a09 0909 094d 5334 eUxpc3Qt.....MS4 + +00082070: 774c 6d52 305a 4349 2b43 6a78 7762 476c wLmR0ZCI+CjxwbGl + +00082080: 7a64 4342 325a 584a 7a61 5739 7550 5349 zdCB2ZXJzaW9uPSI + +00082090: 784c 6a41 6950 676f 380a 0909 0909 5a47 xLjAiPgo8.....ZG + +000820a0: 6c6a 6444 344b 4354 7872 5a58 6b2b 596d ljdD4KCTxrZXk+Ym + +000820b0: 7876 5932 7374 5932 686c 5932 747a 6457 xvY2stY2hlY2tzdW + +000820c0: 3074 4d6a 7776 6132 5635 0a09 0909 0950 0tMjwva2V5.....P + +000820d0: 676f 4a50 476c 7564 4756 6e5a 5849 2b4d goJPGludGVnZXI+M + +000820e0: 4477 7661 5735 305a 5764 6c63 6a34 4b43 DwvaW50ZWdlcj4KC + +000820f0: 5478 725a 586b 2b63 4746 790a 0909 0909 TxrZXk+cGFy..... + +00082100: 6443 3175 6457 3038 4c32 746c 6554 344b dC1udW08L2tleT4K + +00082110: 4354 7870 626e 526c 5a32 5679 506a 4538 CTxpbnRlZ2VyPjE8 + +00082120: 4c32 6c75 6447 566e 5a58 492b 0a09 0909 L2ludGVnZXI+.... + +00082130: 0943 676b 3861 3256 3550 6e5a 6c63 6e4e .Cgk8a2V5PnZlcnN + +00082140: 7062 3234 384c 3274 6c65 5434 4b43 5478 pb248L2tleT4KCTx + +00082150: 7062 6e52 6c5a 3256 7950 6a59 380a 0909 pbnRlZ2VyPjY8... + +00082160: 0909 4c32 6c75 6447 566e 5a58 492b 436a ..L2ludGVnZXI+Cj + +00082170: 7776 5a47 6c6a 6444 344b 5043 3977 6247 wvZGljdD4KPC9wbG + +00082180: 6c7a 6444 344b 0a09 0909 093c 2f64 6174 lzdD4K..........ID.....1..... + +000821c0: 3c6b 6579 3e4e 616d 653c 2f6b 6579 3e0a Name. + +000821d0: 0909 0909 3c73 7472 696e 673e 3c2f 7374 ........ + +000821f0: 0a09 0909 3c64 6963 743e 0a09 0909 093c .........< + +00082200: 6b65 793e 4174 7472 6962 7574 6573 3c2f key>Attributes.....0x0000 + +00082230: 0a09 0909 093c 6b65 793e 4461 7461 3c2f .....Data...... + +00082250: 0909 0909 5044 3934 6257 7767 646d 5679 ....PD94bWwgdmVy + +00082260: 6332 6c76 626a 3069 4d53 3477 4969 426c c2lvbj0iMS4wIiBl + +00082270: 626d 4e76 5a47 6c75 5a7a 3069 5656 5247 bmNvZGluZz0iVVRG + +00082280: 0a09 0909 094c 5467 6950 7a34 4b50 4346 .....LTgiPz4KPCF + +00082290: 4554 304e 5557 5642 4649 4842 7361 584e ET0NUWVBFIHBsaXN + +000822a0: 3049 4642 5651 6b78 4a51 7941 694c 5338 0IFBVQkxJQyAiLS8 + +000822b0: 760a 0909 0909 5158 4277 6247 5576 4c30 v.....QXBwbGUvL0 + +000822c0: 5255 5243 4251 5445 6c54 5643 4178 4c6a RURCBQTElTVCAxLj + +000822d0: 4176 4c30 564f 4969 4169 6148 5230 6344 AvL0VOIiAiaHR0cD + +000822e0: 6f76 0a09 0909 094c 3364 3364 7935 6863 ov.....L3d3dy5hc + +000822f0: 4842 735a 5335 6a62 3230 7652 4652 4563 HBsZS5jb20vRFREc + +00082300: 7939 5163 6d39 775a 584a 3065 5578 7063 y9Qcm9wZXJ0eUxpc + +00082310: 3351 740a 0909 0909 4d53 3477 4c6d 5230 3Qt.....MS4wLmR0 + +00082320: 5a43 492b 436a 7877 6247 6c7a 6443 4232 ZCI+CjxwbGlzdCB2 + +00082330: 5a58 4a7a 6157 3975 5053 4978 4c6a 4169 ZXJzaW9uPSIxLjAi + +00082340: 5067 6f38 0a09 0909 095a 476c 6a64 4434 Pgo8.....ZGljdD4 + +00082350: 4b43 5478 725a 586b 2b55 3068 424c 5445 KCTxrZXk+U0hBLTE + +00082360: 745a 476c 6e5a 584e 3050 4339 725a 586b tZGlnZXN0PC9rZXk + +00082370: 2b43 676b 380a 0909 0909 5a47 4630 5954 +Cgk8.....ZGF0YT + +00082380: 344b 4354 4e50 4e31 5a69 4d6c 644e 5a30 4KCTNPN1ZiMldNZ0 + +00082390: 3151 5930 6c69 5358 706c 4e6a 5648 5957 1QY0liSXplNjVHYW + +000823a0: 4a75 636c 5244 0a09 0909 094d 4430 4b43 JuclRD.....MD0KC + +000823b0: 5477 765a 4746 3059 5434 4b43 5478 725a TwvZGF0YT4KCTxrZ + +000823c0: 586b 2b59 6d78 7659 3273 7459 3268 6c59 Xk+YmxvY2stY2hlY + +000823d0: 3274 7a64 5730 740a 0909 0909 4d6a 7776 2tzdW0t.....Mjwv + +000823e0: 6132 5635 5067 6f4a 5047 6c75 6447 566e a2V5PgoJPGludGVn + +000823f0: 5a58 492b 4e7a 5933 4d54 4d31 4f54 6b32 ZXI+NzY3MTM1OTk2 + +00082400: 5043 3970 626e 526c 0a09 0909 095a 3256 PC9pbnRl.....Z2V + +00082410: 7950 676f 4a50 4774 6c65 5435 6965 5852 yPgoJPGtleT5ieXR + +00082420: 6c63 7a77 7661 3256 3550 676f 4a50 476c lczwva2V5PgoJPGl + +00082430: 7564 4756 6e5a 5849 2b0a 0909 0909 4e44 udGVnZXI+.....ND + +00082440: 677a 4d7a 4934 5043 3970 626e 526c 5a32 gzMzI4PC9pbnRlZ2 + +00082450: 5679 5067 6f4a 5047 746c 6554 356b 5958 VyPgoJPGtleT5kYX + +00082460: 526c 5043 3972 5a58 6b2b 0a09 0909 0943 RlPC9rZXk+.....C + +00082470: 676b 3861 5735 305a 5764 6c63 6a34 744e gk8aW50ZWdlcj4tN + +00082480: 5445 354f 546b 344e 7a4d 3450 4339 7062 TE5OTk4NzM4PC9pb + +00082490: 6e52 6c5a 3256 7950 676f 4a0a 0909 0909 nRlZ2VyPgoJ..... + +000824a0: 5047 746c 6554 3577 5958 4a30 4c57 3531 PGtleT5wYXJ0LW51 + +000824b0: 6254 7776 6132 5635 5067 6f4a 5047 6c75 bTwva2V5PgoJPGlu + +000824c0: 6447 566e 5a58 492b 4d6a 7776 0a09 0909 dGVnZXI+Mjwv.... + +000824d0: 0961 5735 305a 5764 6c63 6a34 4b43 5478 .aW50ZWdlcj4KCTx + +000824e0: 725a 586b 2b64 6d56 7963 326c 7662 6a77 rZXk+dmVyc2lvbjw + +000824f0: 7661 3256 3550 676f 4a50 476c 750a 0909 va2V5PgoJPGlu... + +00082500: 0909 6447 566e 5a58 492b 4e6a 7776 6157 ..dGVnZXI+NjwvaW + +00082510: 3530 5a57 646c 636a 344b 4354 7872 5a58 50ZWdlcj4KCTxrZX + +00082520: 6b2b 646d 3973 6457 316c 4c58 4e70 0a09 k+dm9sdW1lLXNp.. + +00082530: 0909 095a 3235 6864 4856 795a 5477 7661 ...Z25hdHVyZTwva + +00082540: 3256 3550 676f 4a50 476c 7564 4756 6e5a 2V5PgoJPGludGVnZ + +00082550: 5849 2b4d 5467 304e 7a55 384c 326c 750a XI+MTg0NzU8L2lu. + +00082560: 0909 0909 6447 566e 5a58 492b 436a 7776 ....dGVnZXI+Cjwv + +00082570: 5a47 6c6a 6444 344b 5043 3977 6247 6c7a ZGljdD4KPC9wbGlz + +00082580: 6444 344b 0a09 0909 093c 2f64 6174 613e dD4K..... + +00082590: 0a09 0909 093c 6b65 793e 4944 3c2f 6b65 .....ID.....2 + +000825b0: 3c2f 7374 7269 6e67 3e0a 0909 0909 3c6b .....Name... + +000825d0: 0909 3c73 7472 696e 673e 3c2f 7374 7269 ........ + +000825f0: 093c 2f61 7272 6179 3e0a 0909 3c6b 6579 ....plst........ + +00082620: 0909 0909 3c6b 6579 3e41 7474 7269 6275 ....Attribu + +00082630: 7465 733c 2f6b 6579 3e0a 0909 0909 3c73 tes.....0x0050.....D + +00082660: 6174 613c 2f6b 6579 3e0a 0909 0909 3c64 ata..........AAAAAAA + +00082680: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082690: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000826a0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000826b0: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + +000826a0: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + +000826b0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 000826c0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000826d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000826e0: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + +000826d0: 4141 4141 4141 0a09 0909 0941 4141 4141 AAAAAA.....AAAAA + +000826e0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 000826f0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082700: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082710: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + +00082700: 4141 4141 4141 410a 0909 0909 4141 4141 AAAAAAA.....AAAA + +00082710: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082720: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082730: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082740: 4141 410a 0909 0909 4141 4141 4141 4141 AAA.....AAAAAAAA + +00082730: 4141 4141 4141 4141 0a09 0909 0941 4141 AAAAAAAA.....AAA + +00082740: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082750: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082760: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082770: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + +00082760: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + +00082770: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082780: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082790: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000827a0: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + +00082790: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + +000827a0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 000827b0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000827c0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000827d0: 4141 4141 4141 0a09 0909 0941 4141 4141 AAAAAA.....AAAAA + +000827c0: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + +000827d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 000827e0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000827f0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082800: 4141 4141 4141 410a 0909 0909 4141 4141 AAAAAAA.....AAAA + +000827f0: 4141 4141 4141 4141 4141 4141 0a09 0909 AAAAAAAAAAAA.... + +00082800: 0941 4141 4141 4141 4141 4141 4141 4141 .AAAAAAAAAAAAAAA + 00082810: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082820: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082830: 4141 4141 4141 4141 0a09 0909 0941 4141 AAAAAAAA.....AAA + +00082820: 4141 4141 4141 4141 4141 4141 410a 0909 AAAAAAAAAAAAA... + +00082830: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + 00082840: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082850: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082860: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + +00082850: 4141 4141 4141 4141 4141 4141 4141 0a09 AAAAAAAAAAAAAA.. + +00082860: 0909 0941 4141 4141 4141 4141 4141 4141 ...AAAAAAAAAAAAA + 00082870: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082880: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082890: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + +00082880: 4141 4141 4141 4141 4141 4141 4141 410a AAAAAAAAAAAAAAA. + +00082890: 0909 0909 4141 4141 4141 4141 4141 4141 ....AAAAAAAAAAAA + 000828a0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 000828b0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000828c0: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + +000828c0: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + 000828d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 000828e0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000828f0: 4141 4141 4141 4141 4141 4141 0a09 0909 AAAAAAAAAAAA.... + -00082900: 0941 4141 4141 4141 4141 4141 4141 4141 .AAAAAAAAAAAAAAA + +000828f0: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + +00082900: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082910: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082920: 4141 4141 4141 4141 4141 4141 410a 0909 AAAAAAAAAAAAA... + -00082930: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + +00082920: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + +00082930: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082940: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082950: 4141 4141 4141 4141 4141 4141 4141 0a09 AAAAAAAAAAAAAA.. + -00082960: 0909 0941 4141 4141 4141 4141 4141 4141 ...AAAAAAAAAAAAA + -00082970: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082980: 4145 4141 5141 4141 4141 4141 4141 410a AEAAQAAAAAAAAAA. + -00082990: 0909 0909 4141 4141 4141 4141 4141 4141 ....AAAAAAAAAAAA + +00082950: 4141 410a 0909 0909 4141 4141 4141 4141 AAA.....AAAAAAAA + +00082960: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082970: 4141 4141 4141 4541 4151 4141 4141 4141 AAAAAAEAAQAAAAAA + +00082980: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + +00082990: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 000829a0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000829b0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000829c0: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + +000829b0: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + +000829c0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 000829d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000829e0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000829f0: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + +000829e0: 4141 4141 4141 0a09 0909 0941 4141 4141 AAAAAA.....AAAAA + +000829f0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082a00: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082a10: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082a20: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + +00082a10: 4141 4141 4141 410a 0909 0909 4141 4141 AAAAAAA.....AAAA + +00082a20: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082a30: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082a40: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082a50: 4141 410a 0909 0909 4141 4141 4141 4141 AAA.....AAAAAAAA + +00082a40: 4141 4141 4141 4141 0a09 0909 0941 4141 AAAAAAAA.....AAA + +00082a50: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082a60: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082a70: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082a80: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + +00082a70: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + +00082a80: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082a90: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082aa0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082ab0: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + +00082aa0: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + +00082ab0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082ac0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082ad0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082ae0: 4141 4141 4141 0a09 0909 0941 4141 4141 AAAAAA.....AAAAA + +00082ad0: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + +00082ae0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082af0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082b00: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082b10: 4141 4141 4141 410a 0909 0909 4141 4141 AAAAAAA.....AAAA + +00082b00: 4141 4141 4141 4141 4141 4141 0a09 0909 AAAAAAAAAAAA.... + +00082b10: 0941 4141 4141 4141 4141 4141 4141 4141 .AAAAAAAAAAAAAAA + 00082b20: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082b30: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082b40: 4141 4141 4141 4141 0a09 0909 0941 4141 AAAAAAAA.....AAA + +00082b30: 4141 4141 4141 4141 4141 4141 410a 0909 AAAAAAAAAAAAA... + +00082b40: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + 00082b50: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082b60: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082b70: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + +00082b60: 4141 4141 4141 4141 4141 4141 4141 0a09 AAAAAAAAAAAAAA.. + +00082b70: 0909 0941 4141 4141 4141 4141 4141 4141 ...AAAAAAAAAAAAA + 00082b80: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082b90: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082ba0: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + +00082b90: 4141 4141 4141 4141 4141 4141 4141 410a AAAAAAAAAAAAAAA. + +00082ba0: 0909 0909 4141 4141 4141 4141 4141 4141 ....AAAAAAAAAAAA + 00082bb0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082bc0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082bd0: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + +00082bd0: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + 00082be0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082bf0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082c00: 4141 4141 4141 4141 4141 4141 0a09 0909 AAAAAAAAAAAA.... + -00082c10: 0941 4141 4141 4141 4141 4141 4141 4141 .AAAAAAAAAAAAAAA + +00082c00: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + +00082c10: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082c20: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082c30: 4141 4141 4141 4141 4141 4141 410a 0909 AAAAAAAAAAAAA... + -00082c40: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + +00082c30: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + +00082c40: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082c50: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082c60: 4141 4141 4141 4141 4141 4141 4141 0a09 AAAAAAAAAAAAAA.. + -00082c70: 0909 0941 4141 4141 4141 4141 4141 410a ...AAAAAAAAAAAA. + -00082c80: 0909 0909 3c2f 6461 7461 3e0a 0909 0909 ......... + -00082c90: 3c6b 6579 3e49 443c 2f6b 6579 3e0a 0909 ID... + -00082ca0: 0909 3c73 7472 696e 673e 303c 2f73 7472 ..0.....Na + -00082cc0: 6d65 3c2f 6b65 793e 0a09 0909 093c 7374 me..........cnR0YQ + -00082ce0: 4541 4141 4258 3344 424d 4877 4541 4141 EAAABX3DBMHwEAAA + -00082cf0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082d00: 4141 4141 4166 0a09 0909 0941 5141 4141 AAAAAf.....AQAAA + -00082d10: 4141 4141 4141 4143 4141 4141 4141 4174 AAAAAAACAAAAAAAt + -00082d20: 5048 4d63 6257 6e72 6c38 5042 5141 4141 PHMcbWnrl8PBQAAA + -00082d30: 4141 4141 4c52 760a 0909 0909 7843 4941 AAAALRv.....xCIA + -00082d40: 5945 6341 4141 4141 4141 3d3d 0a09 0909 YEcAAAAAAA==.... + -00082d50: 093c 2f73 7472 696e 673e 0a09 0909 3c2f ........ + -00082d70: 0a09 093c 6b65 793e 7369 7a65 3c2f 6b65 ...size....... + -00082d90: 3c64 6963 743e 0a09 0909 093c 6b65 793e ..... + -00082da0: 4174 7472 6962 7574 6573 3c2f 6b65 793e Attributes + -00082db0: 0a09 0909 093c 7374 7269 6e67 3e30 7830 .....0x0 + -00082dc0: 3030 303c 2f73 7472 696e 673e 0a09 0909 000.... + -00082dd0: 093c 6b65 793e 4461 7461 3c2f 6b65 793e .Data + -00082de0: 0a09 0909 093c 6461 7461 3e0a 0909 0909 .......... + -00082df0: 4251 4142 4141 4141 4141 4141 4141 4141 BQABAAAAAAAAAAAA + +00082c60: 4141 410a 0909 0909 4141 4141 4141 4141 AAA.....AAAAAAAA + +00082c70: 4141 4141 0a09 0909 093c 2f64 6174 613e AAAA..... + +00082c80: 0a09 0909 093c 6b65 793e 4944 3c2f 6b65 .....ID.....0 + +00082ca0: 3c2f 7374 7269 6e67 3e0a 0909 0909 3c6b .....Name... + +00082cc0: 0909 3c73 7472 696e 673e 0a09 0909 0963 .......c + +00082cd0: 6e52 3059 5145 4141 4142 5833 4442 4d48 nR0YQEAAABX3DBMH + +00082ce0: 7745 4141 4141 4141 4141 4141 4141 4141 wEAAAAAAAAAAAAAA + +00082cf0: 4141 4141 4141 4141 4141 660a 0909 0909 AAAAAAAAAAf..... + +00082d00: 4151 4141 4141 4141 4141 4141 4341 4141 AQAAAAAAAAAACAAA + +00082d10: 4141 4141 734b 4f6f 6432 3166 4c4b 6349 AAAAsKOod21fLKcI + +00082d20: 4251 4141 4141 4141 4143 3054 0a09 0909 BQAAAAAAAC0T.... + +00082d30: 0964 6259 4159 4563 4141 4141 4141 413d .dbYAYEcAAAAAAA= + +00082d40: 3d0a 0909 0909 3c2f 7374 7269 6e67 3e0a =...... + +00082d50: 0909 093c 2f64 6963 743e 0a09 093c 2f61 .........siz + +00082d70: 653c 2f6b 6579 3e0a 0909 3c61 7272 6179 e............ + +00082d90: 3c6b 6579 3e41 7474 7269 6275 7465 733c Attributes< + +00082da0: 2f6b 6579 3e0a 0909 0909 3c73 7472 696e /key>.....0x0000.....Data< + +00082dd0: 2f6b 6579 3e0a 0909 0909 3c64 6174 613e /key>..... + +00082de0: 0a09 0909 0942 5141 4241 4141 4141 4141 .....BQABAAAAAAA + +00082df0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082e00: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082e10: 4141 4141 4141 4141 4141 4141 0a09 0909 AAAAAAAAAAAA.... + -00082e20: 0941 4141 4141 4141 4141 4141 4141 4141 .AAAAAAAAAAAAAAA + +00082e10: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + +00082e20: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082e30: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082e40: 4141 4141 4141 4141 4141 4141 410a 0909 AAAAAAAAAAAAA... + -00082e50: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + +00082e40: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + +00082e50: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082e60: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082e70: 4141 4141 4141 4141 4141 4141 4141 0a09 AAAAAAAAAAAAAA.. + -00082e80: 0909 0941 4141 4141 4141 4141 4141 4141 ...AAAAAAAAAAAAA + +00082e70: 4141 410a 0909 0909 4141 4141 4141 4141 AAA.....AAAAAAAA + +00082e80: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082e90: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082ea0: 4141 4141 4141 4141 4141 4141 4141 410a AAAAAAAAAAAAAAA. + -00082eb0: 0909 0909 4141 4141 4141 4141 4141 4141 ....AAAAAAAAAAAA + +00082ea0: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + +00082eb0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082ec0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082ed0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082ee0: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + +00082ed0: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + +00082ee0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082ef0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082f00: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082f10: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + +00082f00: 4141 4141 4141 0a09 0909 0941 4141 4141 AAAAAA.....AAAAA + +00082f10: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082f20: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082f30: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082f40: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + +00082f30: 4141 4141 4141 410a 0909 0909 4141 4141 AAAAAAA.....AAAA + +00082f40: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082f50: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082f60: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082f70: 4141 410a 0909 0909 4141 4141 4141 4141 AAA.....AAAAAAAA + -00082f80: 4141 4141 414f 6c79 4165 4541 4141 4141 AAAAAOlyAeEAAAAA + -00082f90: 4b30 6742 4141 3d3d 0a09 0909 093c 2f64 K0gBAA==..........ID + -00082fb0: 3c2f 6b65 793e 0a09 0909 093c 7374 7269 .....2... + -00082fd0: 0909 3c6b 6579 3e4e 616d 653c 2f6b 6579 ..Name..............< + -00083010: 2f64 6963 743e 0a3c 2f64 6963 743e 0a3c /dict>..< + -00083020: 2f70 6c69 7374 3e0a 6b6f 6c79 0000 0004 /plist>.koly.... + -00083030: 0000 0200 0000 0001 0000 0000 0000 0000 ................ + -00083040: 0000 0000 0000 0000 0000 0000 0008 062e ................ + -00083050: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + -00083060: 0000 0001 0000 0001 7348 3366 6998 3c64 ........sH3fi......ID..... + +00082fb0: 3c73 7472 696e 673e 323c 2f73 7472 696e 2.....Name + +00082fd0: 3c2f 6b65 793e 0a09 0909 093c 7374 7269 ......... + +00082ff0: 3c2f 6469 6374 3e0a 0909 3c2f 6172 7261 ........kol + +00083020: 7900 0000 0400 0002 0000 0000 0100 0000 y............... + +00083030: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + +00083040: 0000 0806 2700 0000 0000 0000 0000 0000 ....'........... + +00083050: 0000 0000 0000 0000 0100 0000 0173 4833 .............sH3 + +00083060: 6669 983c 64c6 237b 3267 458b 6b00 0000 fi. + + + + resource-fork + + blkx + + + Attributes + 0x0050 + CFName + Driver Descriptor Map (DDM : 0) + Data + + bWlzaAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAA + AAII/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAgXDMYCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACgAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAA + AAAAAAAAAAAAAAAANf////8AAAAAAAAAAAAAAAEAAAAA + AAAAAAAAAAAAAAA1AAAAAAAAAAA= + + ID + -1 + Name + Driver Descriptor Map (DDM : 0) + + + Attributes + 0x0050 + CFName + Apple (Apple_partition_map : 1) + Data + + bWlzaAAAAAEAAAAAAAAAAQAAAAAAAAA/AAAAAAAAAAAA + AAIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAg7xHa2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACgAAABgAAAAAAAAAAAAAAAAAAAAAAAAA/AAAA + AAAAADUAAAAAAAAAv/////8AAAAAAAAAAAAAAD8AAAAA + AAAAAAAAAAAAAAD0AAAAAAAAAAA= + + ID + 0 + Name + Apple (Apple_partition_map : 1) + + + Attributes + 0x0050 + CFName + Macintosh (Apple_Driver_ATAPI : 2) + Data + + bWlzaAAAAAEAAAAAAAAAQAAAAAAAAAAIAAAAAAAAAAAA + AAIIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAgxxwAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACgAAABgAAAAAAAAAAAAAAAAAAAAAAAAAIAAAA + AAAAAPQAAAAAAAAAK/////8AAAAAAAAAAAAAAAgAAAAA + AAAAAAAAAAAAAAEfAAAAAAAAAAA= + + ID + 1 + Name + Macintosh (Apple_Driver_ATAPI : 2) + + + Attributes + 0x0050 + CFName + Mac_OS_X (Apple_HFSX : 3) + Data + + bWlzaAAAAAEAAAAAAAAASAAAAAAAACewAAAAAAAAAAAA + AAIIAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAgjLr5lgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAVAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAIAAAAA + AAAAAR8AAAAAAAQAAAAAAAEAAAAAAAAAAAAAAgAAAAAA + AAACAAAAAAAABAEfAAAAAAAEAACAAAAGAAAAAAAAAAAA + AAQAAAAAAAAAAgAAAAAAAAgBHwAAAAAAAAGBgAAABgAA + AAAAAAAAAAAGAAAAAAAAAAIAAAAAAAAIAqAAAAAAAAAA + LYAAAAYAAAAAAAAAAAAACAAAAAAAAAACAAAAAAAACALN + AAAAAAAAAEiAAAAGAAAAAAAAAAAAAAoAAAAAAAAAAgAA + AAAAAAgDFQAAAAAAAAAtgAAABgAAAAAAAAAAAAAMAAAA + AAAAAAIAAAAAAAAIA0IAAAAAAAAALYAAAAYAAAAAAAAA + AAAADgAAAAAAAAACAAAAAAAACANvAAAAAAAAAC2AAAAG + AAAAAAAAAAAAABAAAAAAAAAAAgAAAAAAAAgDnAAAAAAA + AAAtgAAABgAAAAAAAAAAAAASAAAAAAAAAAIAAAAAAAAI + A8kAAAAAAAAALYAAAAYAAAAAAAAAAAAAFAAAAAAAAAAC + AAAAAAAACAP2AAAAAAAAAC2AAAAGAAAAAAAAAAAAABYA + AAAAAAAAAgAAAAAAAAgEIwAAAAAAAAAtgAAABgAAAAAA + AAAAAAAYAAAAAAAAAAIAAAAAAAAIBFAAAAAAAAAALYAA + AAYAAAAAAAAAAAAAGgAAAAAAAAACAAAAAAAACAR9AAAA + AAAAAC2AAAAGAAAAAAAAAAAAABwAAAAAAAAAAgAAAAAA + AAgEqgAAAAAAAAAtgAAABgAAAAAAAAAAAAAeAAAAAAAA + AAIAAAAAAAAIBNcAAAAAAAAALYAAAAYAAAAAAAAAAAAA + IAAAAAAAAAACAAAAAAAACAUEAAAAAAAAAC2AAAAGAAAA + AAAAAAAAACIAAAAAAAAAAgAAAAAAAAgFMQAAAAAAAAAt + gAAABgAAAAAAAAAAAAAkAAAAAAAAAAIAAAAAAAAIBV4A + AAAAAAAALYAAAAYAAAAAAAAAAAAAJgAAAAAAAAABsAAA + AAAACAWLAAAAAAAAAKP/////AAAAAAAAAAAAACewAAAA + AAAAAAAAAAAAAAgGLgAAAAAAAAAA + + ID + 2 + Name + Mac_OS_X (Apple_HFSX : 3) + + + Attributes + 0x0050 + CFName + (Apple_Free : 4) + Data + + bWlzaAAAAAEAAAAAAAAn+AAAAAAAAAAKAAAAAAAAAAAA + AAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAKAAAA + AAAIBi4AAAAAAAAAAP////8AAAAAAAAAAAAAAAoAAAAA + AAAAAAAAAAAACAYuAAAAAAAAAAA= + + ID + 3 + Name + (Apple_Free : 4) + + + cSum + + + Attributes + 0x0000 + Data + + AQACAAAAhY246A== + + ID + 0 + Name + + + + Attributes + 0x0000 + Data + + AQACAAAAAAAAAA== + + ID + 1 + Name + + + + Attributes + 0x0000 + Data + + AQACAAAAtSxnsA== + + ID + 2 + Name + + + + nsiz + + + Attributes + 0x0000 + Data + + PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRG + LTgiPz4KPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8v + QXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDov + L3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3Qt + MS4wLmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8 + ZGljdD4KCTxrZXk+YmxvY2stY2hlY2tzdW0tMjwva2V5 + PgoJPGludGVnZXI+LTM5MDU1ODMzMTwvaW50ZWdlcj4K + CTxrZXk+cGFydC1udW08L2tleT4KCTxpbnRlZ2VyPjA8 + L2ludGVnZXI+Cgk8a2V5PnZlcnNpb248L2tleT4KCTxp + bnRlZ2VyPjY8L2ludGVnZXI+CjwvZGljdD4KPC9wbGlz + dD4K + + ID + 0 + Name + + + + Attributes + 0x0000 + Data + + PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRG + LTgiPz4KPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8v + QXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDov + L3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3Qt + MS4wLmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8 + ZGljdD4KCTxrZXk+YmxvY2stY2hlY2tzdW0tMjwva2V5 + PgoJPGludGVnZXI+MDwvaW50ZWdlcj4KCTxrZXk+cGFy + dC1udW08L2tleT4KCTxpbnRlZ2VyPjE8L2ludGVnZXI+ + Cgk8a2V5PnZlcnNpb248L2tleT4KCTxpbnRlZ2VyPjY8 + L2ludGVnZXI+CjwvZGljdD4KPC9wbGlzdD4K + + ID + 1 + Name + + + + Attributes + 0x0000 + Data + + PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRG + LTgiPz4KPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8v + QXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDov + L3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3Qt + MS4wLmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8 + ZGljdD4KCTxrZXk+U0hBLTEtZGlnZXN0PC9rZXk+Cgk8 + ZGF0YT4KCW1ubUFRSTJKQ0JmU2tQOTJTeFpuejdIOU5T + UT0KCTwvZGF0YT4KCTxrZXk+YmxvY2stY2hlY2tzdW0t + Mjwva2V5PgoJPGludGVnZXI+LTEzMzU0MTU2Mjc8L2lu + dGVnZXI+Cgk8a2V5PmJ5dGVzPC9rZXk+Cgk8aW50ZWdl + cj40ODMzMjg8L2ludGVnZXI+Cgk8a2V5PmRhdGU8L2tl + eT4KCTxpbnRlZ2VyPi01MTk5OTg3NDM8L2ludGVnZXI+ + Cgk8a2V5PnBhcnQtbnVtPC9rZXk+Cgk8aW50ZWdlcj4y + PC9pbnRlZ2VyPgoJPGtleT52ZXJzaW9uPC9rZXk+Cgk8 + aW50ZWdlcj42PC9pbnRlZ2VyPgoJPGtleT52b2x1bWUt + c2lnbmF0dXJlPC9rZXk+Cgk8aW50ZWdlcj4xODQ3NTwv + aW50ZWdlcj4KPC9kaWN0Pgo8L3BsaXN0Pgo= + + ID + 2 + Name + + + + plst + + + Attributes + 0x0050 + Data + + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAA + + ID + 0 + Name + + cnR0YQEAAABX3DBMHwEAAAAAAAAAAAAAAAAAAAAAAAAf + AQAAAAAAAAAACAAAAAAAtPHMcbWnrl8PBQAAAAAAALRv + xCIAYEcAAAAAAA== + + + + size + + + Attributes + 0x0000 + Data + + BQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOlyAeEAAAAAK0gBAA== + + ID + 2 + Name + + + + + + + +Line in the sand: + + $ shasum testa.dmg testb.dmg + af9ba2c30013be3dc7f49739fae73a9328808ca3 testa.dmg + 60194ebb91f15682bd7e0b7657ab96723e907655 testb.dmg + +Attribute, changing parts of the string on both sides of the run boundary: + + $ $BUILDDIR/dmg/dmg attribute testa.dmg testa_updated.dmg __MOZILLA__attr-value-and-a-very-long-string-with-some-padding-to-push-this-across-tworuns-EOL- __MOZILLA__ottr-value-and-a-very-long-string-with-some-padding-to-push-this-across-tworuns-EOL-p >/dev/null + +Unfortunately, attributing builds does not update the cSum block, so we expect some differences here: + + $ xxd testa_updated.dmg > testa_updated.txt + $ diff --unified=3 testb.txt testa_updated.txt + --- testb.txt* (glob) + +++ testa_updated.txt* (glob) + @@ -81,12 +81,12 @@ + 00000500: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + 00000510: 0000 0000 0000 0000 0000 0000 0000 0048 ...............H + 00000520: 2b00 0480 0001 0031 302e 3000 0000 00e1 +......10.0..... + -00000530: 0172 ede1 0172 ee00 0000 00e1 0172 ed00 .r...r.......r.. + +00000530: 0172 e8e1 0172 e900 0000 00e1 0172 e800 .r...r.......r.. + 00000540: 0000 0100 0000 0200 0010 0000 0004 f600 ................ + 00000550: 0004 8000 0001 1e00 0100 0000 0100 0000 ................ + 00000560: 0000 1300 0000 0200 0000 0000 0000 0100 ................ + 00000570: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + -00000580: 0000 0000 0000 007a 9e3c f784 7ff4 8c00 .......z.<...... + +00000580: 0000 0000 0000 001b e630 59b8 ee0d 1800 .........0Y..... + 00000590: 0000 0000 0010 0000 0010 0000 0000 0100 ................ + 000005a0: 0000 0100 0000 0100 0000 0000 0000 0000 ................ + 000005b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + @@ -16398,7 +16398,7 @@ + 000400d0: 1200 0000 0000 0800 6100 7400 7400 7200 ........a.t.t.r. + 000400e0: 2d00 6b00 6500 7900 0000 1000 0000 0000 -.k.e.y......... + 000400f0: 0000 0000 0000 605f 5f4d 4f5a 494c 4c41 ......`__MOZILLA + -00040100: 5f5f 6174 7472 2d76 616c 7565 2d61 6e64 __attr-value-and + +00040100: 5f5f 6f74 7472 2d76 616c 7565 2d61 6e64 __ottr-value-and + 00040110: 2d61 2d76 6572 792d 6c6f 6e67 2d73 7472 -a-very-long-str + 00040120: 696e 672d 7769 7468 2d73 6f6d 652d 7061 ing-with-some-pa + 00040130: 6464 696e 672d 746f 2d70 7573 682d 7468 dding-to-push-th + @@ -32784,773 +32784,773 @@ + 000800f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + 00080100: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + 00080110: 0000 0000 0000 0000 0000 0000 0000 0042 ...............B + -00080120: 5a68 3931 4159 2653 59c5 5007 0100 0210 Zh91AY&SY.P..... + -00080130: 7fff fffb f643 c00d 5400 6d40 4810 2e2a .....C..T.m@H..* + -00080140: 9d71 2340 4050 0400 0085 5000 800a 2043 .q#@@P....P... C + -00080150: 0158 b001 4602 1249 3424 f44d 943f 5401 .X..F..I4$.M.?T. + -00080160: a69a 0000 3264 6419 034d 0cd4 38c9 9343 ....2dd..M..8..C + -00080170: 1189 a300 8c04 c200 c04d 3469 91a0 182a .........M4i...* + -00080180: 9a91 127e a86d 4064 3200 0182 6836 a681 ...~.m@d2...h6.. + -00080190: ed50 7a83 4c4d 2cd4 7472 311d dc99 2bf6 .Pz.LM,.tr1...+. + -000801a0: 40c1 290d 72a1 9a88 e81e f8a7 71a2 c248 @.).r.......q..H + -000801b0: f064 be58 4013 3240 025b d257 f6b5 0d6a .d.X@.2@.[.W...j + -000801c0: db72 89d9 efe1 a232 5d08 597a 2664 63b1 .r.....2].Yz&dc. + -000801d0: 5b65 e356 4d59 c8b8 eec5 140c b149 1555 [e.VMY.......I.U + -000801e0: e192 53ef 1555 5555 5c30 7bbc 7d45 c576 ..S..UUU\0{.}E.v + -000801f0: e3ab 2864 c982 e494 b993 1bd7 d56a 2227 ..(d.........j"' + -00080200: 0b14 6e19 cbf6 db0c d9d7 ef2b 0673 7d71 ..n........+.s}q + -00080210: 9cd0 7bcc 4e92 e342 f218 bb8b da19 8c56 ..{.N..B.......V + -00080220: 7686 858e cb97 9edb 69d6 ad99 f386 58aa v.......i.....X. + -00080230: 01b5 fab6 1cd6 2b1e 50c1 a97e 5892 43fb ......+.P..~X.C. + -00080240: b8e6 bb66 1925 3f3b d6c3 8ad5 a656 5d36 ...f.%?;.....V]6 + -00080250: 5487 e22b eb2a f99a 4890 5a28 e2b6 0b95 T..+.*..H.Z(.... + -00080260: 2157 fb16 7410 5d15 5bf0 393f 962b 9c10 !W..t.].[.9?.+.. + -00080270: aae3 95c7 09bf b2c5 96d1 e79b 1d2c 3982 .............,9. + -00080280: 7c55 6225 0a58 44e5 5a64 7092 4925 0ff1 |Ub%.XD.Zdp.I%.. + -00080290: 7724 5385 090c 5500 7010 425a 6839 3141 w$S...U.p.BZh91A + -000802a0: 5926 5359 4457 7047 0002 0440 00c0 0000 Y&SYDWpG...@.... + -000802b0: 0820 0030 802a 6945 b005 8601 c5dc 914e . .0.*iE.......N + -000802c0: 1424 1115 dc11 c042 5a68 3931 4159 2653 .$.....BZh91AY&S + -000802d0: 598c efb4 ea00 01e1 f182 c010 0400 0002 Y............... + -000802e0: 0a01 8440 0002 0008 2000 5081 a068 0549 ...@.... .P..h.I + -000802f0: 4f50 1e53 6409 25d0 1772 4804 cacd afb7 OP.Sd.%..rH..... + -00080300: 35be 1007 e2ee 48a7 0a12 119d f69d 4042 5.....H.......@B + -00080310: 5a68 3931 4159 2653 5944 5770 4700 0204 Zh91AY&SYDWpG... + -00080320: 4000 c000 0008 2000 3080 2a69 45b0 0586 @..... .0.*iE... + -00080330: 01c5 dc91 4e14 2411 15dc 11c0 425a 6839 ....N.$.....BZh9 + -00080340: 3141 5926 5359 4457 7047 0002 0440 00c0 1AY&SYDWpG...@.. + -00080350: 0000 0820 0030 802a 6945 b005 8601 c5dc ... .0.*iE...... + -00080360: 914e 1424 1115 dc11 c042 5a68 3931 4159 .N.$.....BZh91AY + -00080370: 2653 5944 5770 4700 0204 4000 c000 0008 &SYDWpG...@..... + -00080380: 2000 3080 2a69 45b0 0586 01c5 dc91 4e14 .0.*iE.......N. + -00080390: 2411 15dc 11c0 425a 6839 3141 5926 5359 $.....BZh91AY&SY + -000803a0: 4457 7047 0002 0440 00c0 0000 0820 0030 DWpG...@..... .0 + -000803b0: 802a 6945 b005 8601 c5dc 914e 1424 1115 .*iE.......N.$.. + -000803c0: dc11 c042 5a68 3931 4159 2653 5944 5770 ...BZh91AY&SYDWp + -000803d0: 4700 0204 4000 c000 0008 2000 3080 2a69 G...@..... .0.*i + -000803e0: 45b0 0586 01c5 dc91 4e14 2411 15dc 11c0 E.......N.$..... + -000803f0: 425a 6839 3141 5926 5359 4457 7047 0002 BZh91AY&SYDWpG.. + -00080400: 0440 00c0 0000 0820 0030 802a 6945 b005 .@..... .0.*iE.. + -00080410: 8601 c5dc 914e 1424 1115 dc11 c042 5a68 .....N.$.....BZh + -00080420: 3931 4159 2653 5944 5770 4700 0204 4000 91AY&SYDWpG...@. + -00080430: c000 0008 2000 3080 2a69 45b0 0586 01c5 .... .0.*iE..... + -00080440: dc91 4e14 2411 15dc 11c0 425a 6839 3141 ..N.$.....BZh91A + -00080450: 5926 5359 4457 7047 0002 0440 00c0 0000 Y&SYDWpG...@.... + -00080460: 0820 0030 802a 6945 b005 8601 c5dc 914e . .0.*iE.......N + -00080470: 1424 1115 dc11 c042 5a68 3931 4159 2653 .$.....BZh91AY&S + -00080480: 5944 5770 4700 0204 4000 c000 0008 2000 YDWpG...@..... . + -00080490: 3080 2a69 45b0 0586 01c5 dc91 4e14 2411 0.*iE.......N.$. + -000804a0: 15dc 11c0 425a 6839 3141 5926 5359 4457 ....BZh91AY&SYDW + -000804b0: 7047 0002 0440 00c0 0000 0820 0030 802a pG...@..... .0.* + -000804c0: 6945 b005 8601 c5dc 914e 1424 1115 dc11 iE.......N.$.... + -000804d0: c042 5a68 3931 4159 2653 5944 5770 4700 .BZh91AY&SYDWpG. + -000804e0: 0204 4000 c000 0008 2000 3080 2a69 45b0 ..@..... .0.*iE. + -000804f0: 0586 01c5 dc91 4e14 2411 15dc 11c0 425a ......N.$.....BZ + -00080500: 6839 3141 5926 5359 4457 7047 0002 0440 h91AY&SYDWpG...@ + -00080510: 00c0 0000 0820 0030 802a 6945 b005 8601 ..... .0.*iE.... + -00080520: c5dc 914e 1424 1115 dc11 c042 5a68 3931 ...N.$.....BZh91 + -00080530: 4159 2653 5944 5770 4700 0204 4000 c000 AY&SYDWpG...@... + -00080540: 0008 2000 3080 2a69 45b0 0586 01c5 dc91 .. .0.*iE....... + -00080550: 4e14 2411 15dc 11c0 425a 6839 3141 5926 N.$.....BZh91AY& + -00080560: 5359 4457 7047 0002 0440 00c0 0000 0820 SYDWpG...@..... + -00080570: 0030 802a 6945 b005 8601 c5dc 914e 1424 .0.*iE.......N.$ + -00080580: 1115 dc11 c042 5a68 3931 4159 2653 59d5 .....BZh91AY&SY. + -00080590: 5621 ce00 01ba 7fe9 fd28 4c01 0009 6034 V!.......(L...`4 + -000805a0: 0040 0008 4000 1010 c504 4001 0008 2002 .@..@.....@... . + -000805b0: 0588 2000 881a 29e9 a8d1 a0d0 0006 8022 .. ...)........" + -000805c0: 9299 1a00 0068 c43c 51bb 883d 8a38 9102 .....h..F...hO)....V + -00080610: dac1 f4a4 b182 8d6e ad88 028f f177 2453 .......n.....w$S + -00080620: 8509 0d55 621c e03c 3f78 6d6c 2076 6572 ...Ub.......resource + -000806e0: 2d66 6f72 6b3c 2f6b 6579 3e0a 093c 6469 -fork.....blkx< + -00080700: 2f6b 6579 3e0a 0909 3c61 7272 6179 3e0a /key>.... + -00080710: 0909 093c 6469 6374 3e0a 0909 0909 3c6b ........Attributes..... + -00080740: 3078 3030 3530 3c2f 7374 7269 6e67 3e0a 0x0050. + -00080750: 0909 0909 3c6b 6579 3e43 464e 616d 653c ....CFName< + -00080760: 2f6b 6579 3e0a 0909 0909 3c73 7472 696e /key>.....Driver Descrip + -00080780: 746f 7220 4d61 7020 2844 444d 203a 2030 tor Map (DDM : 0 + -00080790: 293c 2f73 7472 696e 673e 0a09 0909 093c ).....< + -000807a0: 6b65 793e 4461 7461 3c2f 6b65 793e 0a09 key>Data.. + -000807b0: 0909 093c 6461 7461 3e0a 0909 0909 6257 ........bW + -000807c0: 6c7a 6141 4141 4141 4541 4141 4141 4141 lzaAAAAAEAAAAAAA + -000807d0: 4141 4141 4141 4141 4141 4141 4142 4141 AAAAAAAAAAAAABAA + -000807e0: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + -000807f0: 4149 492f 2f2f 2f2f 7741 4141 4141 4141 AII/////wAAAAAAA + +00080120: 5a68 3931 4159 2653 59f4 9605 6800 0210 Zh91AY&SY...h... + +00080130: 7fff fffb f643 c00d 5400 6d40 4810 2e6a .....C..T.m@H..j + +00080140: 9d71 2340 4050 0400 0085 5000 800a 2062 .q#@@P....P... b + +00080150: 0158 b001 4584 c328 8d34 988d aa66 91a0 .X..E..(.4...f.. + +00080160: 3d4f 4086 8c09 a643 4191 91e9 a469 e504 =O@....CA....i.. + +00080170: 8a49 3460 2321 9313 4031 3218 8d30 8340 .I4`#!..@12..0.@ + +00080180: 188d 3201 5535 4c84 d068 0034 0000 000f ..2.U5L..h.4.... + +00080190: 5340 da80 034d 2375 2a71 015e 336d a986 S@...M#u*q.^3m.. + +000801a0: 21ea b117 1874 4ec5 307e b6d3 122b 2012 !....tN.0~...+ . + +000801b0: 4684 132a 0100 07d0 4800 026d b99f 65ae F..*....H..m..e. + +000801c0: 1e48 3a56 0a69 b7d6 c505 f057 91b2 1e41 .H:V.i.....W...A + +000801d0: 1347 073b 6098 dcc7 a488 3858 8100 11d8 .G.;`.....8X.... + +000801e0: 86c4 972b 6d1f 0c49 2494 adc0 ead9 c54c ...+m..I$......L + +000801f0: 4b3e 18d1 2156 ad84 c889 2655 a674 f295 K>..!V....&U.t.. + +00080200: 7421 16d4 a1c4 504f c2ce 59a1 3f22 5614 t!....PO..Y.?"V. + +00080210: 1cc9 8a0b 8761 4986 98b8 9c82 9682 75c5 .....aI.......u. + +00080220: 9295 4668 b8a8 662e dfb7 ded9 32b5 1e10 ..Fh..f.....2... + +00080230: 5684 a403 7be2 a58b d509 5374 2c2b cf5a V...{.....St,+.Z + +00080240: 1111 07e7 02f4 d6a0 ab12 335c 848d 1059 ..........3\...Y + +00080250: 5a8f 9602 6c3e 58bd 9a8c e6b6 c6c0 8310 Z...l>X......... + +00080260: 6884 8221 360a 3761 0250 c089 895e 62d4 h..!6.7a.P...^b. + +00080270: c47d b05b 000c 12d2 d6f4 07bf a76a 790c .}.[.........jy. + +00080280: beff 9434 1280 21f8 7da0 b20d 1087 e871 ...4..!.}......q + +00080290: 2092 4926 2ff1 7724 5385 090f 4960 5680 .I&/.w$S...I`V. + +000802a0: 425a 6839 3141 5926 5359 4457 7047 0002 BZh91AY&SYDWpG.. + +000802b0: 0440 00c0 0000 0820 0030 802a 6945 b005 .@..... .0.*iE.. + +000802c0: 8601 c5dc 914e 1424 1115 dc11 c042 5a68 .....N.$.....BZh + +000802d0: 3931 4159 2653 598c efb4 ea00 01e1 f182 91AY&SY......... + +000802e0: c010 0400 0002 0a01 8440 0002 0008 2000 .........@.... . + +000802f0: 5081 a068 0549 4f50 1e53 6409 25d0 1772 P..h.IOP.Sd.%..r + +00080300: 4804 cacd afb7 35be 1007 e2ee 48a7 0a12 H.....5.....H... + +00080310: 119d f69d 4042 5a68 3931 4159 2653 5944 ....@BZh91AY&SYD + +00080320: 5770 4700 0204 4000 c000 0008 2000 3080 WpG...@..... .0. + +00080330: 2a69 45b0 0586 01c5 dc91 4e14 2411 15dc *iE.......N.$... + +00080340: 11c0 425a 6839 3141 5926 5359 4457 7047 ..BZh91AY&SYDWpG + +00080350: 0002 0440 00c0 0000 0820 0030 802a 6945 ...@..... .0.*iE + +00080360: b005 8601 c5dc 914e 1424 1115 dc11 c042 .......N.$.....B + +00080370: 5a68 3931 4159 2653 5944 5770 4700 0204 Zh91AY&SYDWpG... + +00080380: 4000 c000 0008 2000 3080 2a69 45b0 0586 @..... .0.*iE... + +00080390: 01c5 dc91 4e14 2411 15dc 11c0 425a 6839 ....N.$.....BZh9 + +000803a0: 3141 5926 5359 4457 7047 0002 0440 00c0 1AY&SYDWpG...@.. + +000803b0: 0000 0820 0030 802a 6945 b005 8601 c5dc ... .0.*iE...... + +000803c0: 914e 1424 1115 dc11 c042 5a68 3931 4159 .N.$.....BZh91AY + +000803d0: 2653 5944 5770 4700 0204 4000 c000 0008 &SYDWpG...@..... + +000803e0: 2000 3080 2a69 45b0 0586 01c5 dc91 4e14 .0.*iE.......N. + +000803f0: 2411 15dc 11c0 425a 6839 3141 5926 5359 $.....BZh91AY&SY + +00080400: 4457 7047 0002 0440 00c0 0000 0820 0030 DWpG...@..... .0 + +00080410: 802a 6945 b005 8601 c5dc 914e 1424 1115 .*iE.......N.$.. + +00080420: dc11 c042 5a68 3931 4159 2653 5944 5770 ...BZh91AY&SYDWp + +00080430: 4700 0204 4000 c000 0008 2000 3080 2a69 G...@..... .0.*i + +00080440: 45b0 0586 01c5 dc91 4e14 2411 15dc 11c0 E.......N.$..... + +00080450: 425a 6839 3141 5926 5359 4457 7047 0002 BZh91AY&SYDWpG.. + +00080460: 0440 00c0 0000 0820 0030 802a 6945 b005 .@..... .0.*iE.. + +00080470: 8601 c5dc 914e 1424 1115 dc11 c042 5a68 .....N.$.....BZh + +00080480: 3931 4159 2653 5944 5770 4700 0204 4000 91AY&SYDWpG...@. + +00080490: c000 0008 2000 3080 2a69 45b0 0586 01c5 .... .0.*iE..... + +000804a0: dc91 4e14 2411 15dc 11c0 425a 6839 3141 ..N.$.....BZh91A + +000804b0: 5926 5359 4457 7047 0002 0440 00c0 0000 Y&SYDWpG...@.... + +000804c0: 0820 0030 802a 6945 b005 8601 c5dc 914e . .0.*iE.......N + +000804d0: 1424 1115 dc11 c042 5a68 3931 4159 2653 .$.....BZh91AY&S + +000804e0: 5944 5770 4700 0204 4000 c000 0008 2000 YDWpG...@..... . + +000804f0: 3080 2a69 45b0 0586 01c5 dc91 4e14 2411 0.*iE.......N.$. + +00080500: 15dc 11c0 425a 6839 3141 5926 5359 4457 ....BZh91AY&SYDW + +00080510: 7047 0002 0440 00c0 0000 0820 0030 802a pG...@..... .0.* + +00080520: 6945 b005 8601 c5dc 914e 1424 1115 dc11 iE.......N.$.... + +00080530: c042 5a68 3931 4159 2653 5944 5770 4700 .BZh91AY&SYDWpG. + +00080540: 0204 4000 c000 0008 2000 3080 2a69 45b0 ..@..... .0.*iE. + +00080550: 0586 01c5 dc91 4e14 2411 15dc 11c0 425a ......N.$.....BZ + +00080560: 6839 3141 5926 5359 4457 7047 0002 0440 h91AY&SYDWpG...@ + +00080570: 00c0 0000 0820 0030 802a 6945 b005 8601 ..... .0.*iE.... + +00080580: c5dc 914e 1424 1115 dc11 c042 5a68 3931 ...N.$.....BZh91 + +00080590: 4159 2653 59ac 0d59 3f00 01ba 7fe9 fd2a AY&SY..Y?......* + +000805a0: 4c49 0009 6030 0040 0028 4000 1000 4100 LI..`0.@.(@...A. + +000805b0: 4000 0048 2141 0108 2000 8819 29e9 a81a @..H!A.. ...)... + +000805c0: 0000 0004 524d 4641 a340 0d1a 68f5 3d49 ....RMFA.@..h.=I + +000805d0: 361d dae6 14c4 a15e 89f0 5087 5400 9208 6......^..P.T... + +000805e0: 3c35 081a 5415 c6e5 13f4 fb0d 9396 701c <5..T.........p. + +000805f0: 6303 5484 4519 c0d6 16e8 4054 7b42 9de1 c.T.E.....@T{B.. + +00080600: 0551 e700 5180 3d42 560b 7097 8c6c cf1c .Q..Q.=BV.p..l.. + +00080610: bdd6 e0a6 8916 8664 9fa5 2594 14fc d6d9 .......d..%..... + +00080620: a00a 3fc5 dc91 4e14 242b 0356 4fc0 3c3f ..?...N.$+.VO......r + +000806e0: 6573 6f75 7263 652d 666f 726b 3c2f 6b65 esource-fork.....blkx...< + +00080710: 6172 7261 793e 0a09 0909 3c64 6963 743e array>.... + +00080720: 0a09 0909 093c 6b65 793e 4174 7472 6962 .....Attrib + +00080730: 7574 6573 3c2f 6b65 793e 0a09 0909 093c utes.....< + +00080740: 7374 7269 6e67 3e30 7830 3035 303c 2f73 string>0x0050..... + +00080760: 4346 4e61 6d65 3c2f 6b65 793e 0a09 0909 CFName.... + +00080770: 093c 7374 7269 6e67 3e44 7269 7665 7220 .Driver + +00080780: 4465 7363 7269 7074 6f72 204d 6170 2028 Descriptor Map ( + +00080790: 4444 4d20 3a20 3029 3c2f 7374 7269 6e67 DDM : 0).....Data< + +000807b0: 2f6b 6579 3e0a 0909 0909 3c64 6174 613e /key>..... + +000807c0: 0a09 0909 0962 576c 7a61 4141 4141 4145 .....bWlzaAAAAAE + +000807d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000807e0: 4141 4141 4241 4141 4141 4141 4141 4141 AAAABAAAAAAAAAAA + +000807f0: 410a 0909 0909 4141 4949 2f2f 2f2f 2f77 A.....AAII/////w + 00080800: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080810: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + -00080820: 4141 4941 4141 4167 5844 4d59 4351 4141 AAIAAAAgXDMYCQAA + -00080830: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080840: 4141 4141 4141 4141 4141 4141 0a09 0909 AAAAAAAAAAAA.... + -00080850: 0941 4141 4141 4141 4141 4141 4141 4141 .AAAAAAAAAAAAAAA + +00080810: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080820: 4141 0a09 0909 0941 4149 4141 4141 6758 AA.....AAIAAAAgX + +00080830: 444d 5943 5141 4141 4141 4141 4141 4141 DMYCQAAAAAAAAAAA + +00080840: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080850: 4141 410a 0909 0909 4141 4141 4141 4141 AAA.....AAAAAAAA + 00080860: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080870: 4141 4141 4141 4141 4141 4141 410a 0909 AAAAAAAAAAAAA... + -00080880: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + +00080870: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080880: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + 00080890: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000808a0: 4141 4141 4141 4141 4141 4141 4141 0a09 AAAAAAAAAAAAAA.. + -000808b0: 0909 0941 4141 4141 4141 4141 4141 4141 ...AAAAAAAAAAAAA + +000808a0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000808b0: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + 000808c0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000808d0: 4141 4141 4141 4141 4141 4141 4141 410a AAAAAAAAAAAAAAA. + -000808e0: 0909 0909 4141 4141 4141 4143 6741 4141 ....AAAAAAACgAAA + -000808f0: 4267 4141 4141 4141 4141 4141 4141 4141 BgAAAAAAAAAAAAAA + -00080900: 4141 4141 4141 4141 4141 4142 4141 4141 AAAAAAAAAAABAAAA + -00080910: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + -00080920: 4141 4141 414e 662f 2f2f 2f38 4141 4141 AAAAANf////8AAAA + -00080930: 4141 4141 4141 4141 4141 4145 4141 4141 AAAAAAAAAAAEAAAA + -00080940: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + -00080950: 4141 4141 4131 4141 4141 4141 4141 4141 AAAAA1AAAAAAAAAA + -00080960: 413d 0a09 0909 093c 2f64 6174 613e 0a09 A=....... + -00080970: 0909 093c 6b65 793e 4944 3c2f 6b65 793e ...ID + -00080980: 0a09 0909 093c 7374 7269 6e67 3e2d 313c .....-1< + -00080990: 2f73 7472 696e 673e 0a09 0909 093c 6b65 /string>.....Name.... + -000809b0: 093c 7374 7269 6e67 3e44 7269 7665 7220 .Driver + -000809c0: 4465 7363 7269 7074 6f72 204d 6170 2028 Descriptor Map ( + -000809d0: 4444 4d20 3a20 3029 3c2f 7374 7269 6e67 DDM : 0)........ + -000809f0: 3c64 6963 743e 0a09 0909 093c 6b65 793e ..... + -00080a00: 4174 7472 6962 7574 6573 3c2f 6b65 793e Attributes + -00080a10: 0a09 0909 093c 7374 7269 6e67 3e30 7830 .....0x0 + -00080a20: 3035 303c 2f73 7472 696e 673e 0a09 0909 050.... + -00080a30: 093c 6b65 793e 4346 4e61 6d65 3c2f 6b65 .CFName.....A + -00080a50: 7070 6c65 2028 4170 706c 655f 7061 7274 pple (Apple_part + -00080a60: 6974 696f 6e5f 6d61 7020 3a20 3129 3c2f ition_map : 1).....Data..... + -00080a90: 3c64 6174 613e 0a09 0909 0962 576c 7a61 .....bWlza + -00080aa0: 4141 4141 4145 4141 4141 4141 4141 4141 AAAAAEAAAAAAAAAA + -00080ab0: 5141 4141 4141 4141 4141 2f41 4141 4141 QAAAAAAAAA/AAAAA + -00080ac0: 4141 4141 4141 410a 0909 0909 4141 4949 AAAAAAA.....AAII + -00080ad0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000808d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000808e0: 4141 4141 4141 0a09 0909 0941 4141 4141 AAAAAA.....AAAAA + +000808f0: 4141 4367 4141 4142 6741 4141 4141 4141 AACgAAABgAAAAAAA + +00080900: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080910: 4141 4241 4141 410a 0909 0909 4141 4141 AABAAAA.....AAAA + +00080920: 4141 4141 4141 4141 4141 4141 4e66 2f2f AAAAAAAAAAAANf// + +00080930: 2f2f 3841 4141 4141 4141 4141 4141 4141 //8AAAAAAAAAAAAA + +00080940: 4141 4541 4141 4141 0a09 0909 0941 4141 AAEAAAAA.....AAA + +00080950: 4141 4141 4141 4141 4141 4141 3141 4141 AAAAAAAAAAAA1AAA + +00080960: 4141 4141 4141 4141 3d0a 0909 0909 3c2f AAAAAAAA=..........I + +00080980: 443c 2f6b 6579 3e0a 0909 0909 3c73 7472 D.....-1. + +000809a0: 0909 0909 3c6b 6579 3e4e 616d 653c 2f6b ....Name..... + +000809c0: 4472 6976 6572 2044 6573 6372 6970 746f Driver Descripto + +000809d0: 7220 4d61 7020 2844 444d 203a 2030 293c r Map (DDM : 0)< + +000809e0: 2f73 7472 696e 673e 0a09 0909 3c2f 6469 /string>........... + +00080a00: 0909 3c6b 6579 3e41 7474 7269 6275 7465 ..Attribute + +00080a10: 733c 2f6b 6579 3e0a 0909 0909 3c73 7472 s.....0x0050.....CFN + +00080a40: 616d 653c 2f6b 6579 3e0a 0909 0909 3c73 ame.....Apple (App + +00080a60: 6c65 5f70 6172 7469 7469 6f6e 5f6d 6170 le_partition_map + +00080a70: 203a 2031 293c 2f73 7472 696e 673e 0a09 : 1).. + +00080a80: 0909 093c 6b65 793e 4461 7461 3c2f 6b65 ...Data........ + +00080aa0: 0909 6257 6c7a 6141 4141 4141 4541 4141 ..bWlzaAAAAAEAAA + +00080ab0: 4141 4141 4141 4151 4141 4141 4141 4141 AAAAAAAQAAAAAAAA + +00080ac0: 412f 4141 4141 4141 4141 4141 4141 0a09 A/AAAAAAAAAAAA.. + +00080ad0: 0909 0941 4149 4941 4141 4141 4141 4141 ...AAIIAAAAAAAAA + 00080ae0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080af0: 4141 4141 4141 4141 0a09 0909 0941 4149 AAAAAAAA.....AAI + -00080b00: 4141 4141 6737 7848 6132 6741 4141 4141 AAAAg7xHa2gAAAAA + -00080b10: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080b20: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + -00080b30: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080af0: 4141 4141 4141 4141 4141 4141 4141 410a AAAAAAAAAAAAAAA. + +00080b00: 0909 0909 4141 4941 4141 4167 3778 4861 ....AAIAAAAg7xHa + +00080b10: 3267 4141 4141 4141 4141 4141 4141 4141 2gAAAAAAAAAAAAAA + +00080b20: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080b30: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + 00080b40: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080b50: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + -00080b60: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080b50: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080b60: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + 00080b70: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080b80: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + -00080b90: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080b80: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080b90: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + 00080ba0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080bb0: 4141 4141 4141 4141 4141 4141 0a09 0909 AAAAAAAAAAAA.... + -00080bc0: 0941 4141 4141 4141 4367 4141 4142 6741 .AAAAAAACgAAABgA + -00080bd0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080be0: 4141 4141 4141 4141 2f41 4141 410a 0909 AAAAAAAA/AAAA... + -00080bf0: 0909 4141 4141 4144 5541 4141 4141 4141 ..AAAAADUAAAAAAA + -00080c00: 4141 762f 2f2f 2f2f 3841 4141 4141 4141 AAv/////8AAAAAAA + -00080c10: 4141 4141 4141 4144 3841 4141 4141 0a09 AAAAAAAD8AAAAA.. + -00080c20: 0909 0941 4141 4141 4141 4141 4141 4141 ...AAAAAAAAAAAAA + -00080c30: 4144 3041 4141 4141 4141 4141 4141 3d0a AD0AAAAAAAAAAA=. + -00080c40: 0909 0909 3c2f 6461 7461 3e0a 0909 0909 ......... + -00080c50: 3c6b 6579 3e49 443c 2f6b 6579 3e0a 0909 ID... + -00080c60: 0909 3c73 7472 696e 673e 303c 2f73 7472 ..0.....Na + -00080c80: 6d65 3c2f 6b65 793e 0a09 0909 093c 7374 me.....Apple (Appl + -00080ca0: 655f 7061 7274 6974 696f 6e5f 6d61 7020 e_partition_map + -00080cb0: 3a20 3129 3c2f 7374 7269 6e67 3e0a 0909 : 1)... + -00080cc0: 093c 2f64 6963 743e 0a09 0909 3c64 6963 ..........Attr + -00080ce0: 6962 7574 6573 3c2f 6b65 793e 0a09 0909 ibutes.... + -00080cf0: 093c 7374 7269 6e67 3e30 7830 3035 303c .0x0050< + -00080d00: 2f73 7472 696e 673e 0a09 0909 093c 6b65 /string>.....CFName.. + -00080d20: 0909 093c 7374 7269 6e67 3e4d 6163 696e ...Macin + -00080d30: 746f 7368 2028 4170 706c 655f 4472 6976 tosh (Apple_Driv + -00080d40: 6572 5f41 5441 5049 203a 2032 293c 2f73 er_ATAPI : 2)..... + -00080d60: 4461 7461 3c2f 6b65 793e 0a09 0909 093c Data.....< + -00080d70: 6461 7461 3e0a 0909 0909 6257 6c7a 6141 data>.....bWlzaA + -00080d80: 4141 4141 4541 4141 4141 4141 4141 5141 AAAAEAAAAAAAAAQA + -00080d90: 4141 4141 4141 4141 4149 4141 4141 4141 AAAAAAAAAIAAAAAA + -00080da0: 4141 4141 4141 0a09 0909 0941 4149 4941 AAAAAA.....AAIIA + -00080db0: 4141 4141 5141 4141 4141 4141 4141 4141 AAAAQAAAAAAAAAAA + +00080bb0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080bc0: 4141 410a 0909 0909 4141 4141 4141 4143 AAA.....AAAAAAAC + +00080bd0: 6741 4141 4267 4141 4141 4141 4141 4141 gAAABgAAAAAAAAAA + +00080be0: 4141 4141 4141 4141 4141 4141 4141 412f AAAAAAAAAAAAAAA/ + +00080bf0: 4141 4141 0a09 0909 0941 4141 4141 4455 AAAA.....AAAAADU + +00080c00: 4141 4141 4141 4141 4176 2f2f 2f2f 2f38 AAAAAAAAAv/////8 + +00080c10: 4141 4141 4141 4141 4141 4141 4141 4438 AAAAAAAAAAAAAAD8 + +00080c20: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + +00080c30: 4141 4141 4141 4141 4430 4141 4141 4141 AAAAAAAAD0AAAAAA + +00080c40: 4141 4141 413d 0a09 0909 093c 2f64 6174 AAAAA=..........ID.....0..... + +00080c80: 3c6b 6579 3e4e 616d 653c 2f6b 6579 3e0a Name. + +00080c90: 0909 0909 3c73 7472 696e 673e 4170 706c ....Appl + +00080ca0: 6520 2841 7070 6c65 5f70 6172 7469 7469 e (Apple_partiti + +00080cb0: 6f6e 5f6d 6170 203a 2031 293c 2f73 7472 on_map : 1)..... + +00080cd0: 0909 093c 6469 6374 3e0a 0909 0909 3c6b ........Attributes..... + +00080d00: 3078 3030 3530 3c2f 7374 7269 6e67 3e0a 0x0050. + +00080d10: 0909 0909 3c6b 6579 3e43 464e 616d 653c ....CFName< + +00080d20: 2f6b 6579 3e0a 0909 0909 3c73 7472 696e /key>.....Macintosh (App + +00080d40: 6c65 5f44 7269 7665 725f 4154 4150 4920 le_Driver_ATAPI + +00080d50: 3a20 3229 3c2f 7374 7269 6e67 3e0a 0909 : 2)... + +00080d60: 0909 3c6b 6579 3e44 6174 613c 2f6b 6579 ..Data......... + +00080d80: 0962 576c 7a61 4141 4141 4145 4141 4141 .bWlzaAAAAAEAAAA + +00080d90: 4141 4141 4151 4141 4141 4141 4141 4141 AAAAAQAAAAAAAAAA + +00080da0: 4941 4141 4141 4141 4141 4141 410a 0909 IAAAAAAAAAAAA... + +00080db0: 0909 4141 4949 4141 4141 4151 4141 4141 ..AAIIAAAAAQAAAA + 00080dc0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080dd0: 4141 4141 4141 410a 0909 0909 4141 4941 AAAAAAA.....AAIA + -00080de0: 4141 4167 7878 7741 4551 4141 4141 4141 AAAgxxwAEQAAAAAA + -00080df0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080e00: 4141 4141 4141 4141 0a09 0909 0941 4141 AAAAAAAA.....AAA + -00080e10: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080dd0: 4141 4141 4141 4141 4141 4141 4141 0a09 AAAAAAAAAAAAAA.. + +00080de0: 0909 0941 4149 4141 4141 6778 7877 4145 ...AAIAAAAgxxwAE + +00080df0: 5141 4141 4141 4141 4141 4141 4141 4141 QAAAAAAAAAAAAAAA + +00080e00: 4141 4141 4141 4141 4141 4141 4141 410a AAAAAAAAAAAAAAA. + +00080e10: 0909 0909 4141 4141 4141 4141 4141 4141 ....AAAAAAAAAAAA + 00080e20: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080e30: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + -00080e40: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080e30: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080e40: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + 00080e50: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080e60: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + -00080e70: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080e60: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080e70: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + 00080e80: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080e90: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + -00080ea0: 4141 4141 4141 4143 6741 4141 4267 4141 AAAAAAACgAAABgAA + -00080eb0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00080ec0: 4141 4141 4141 4149 4141 4141 0a09 0909 AAAAAAAIAAAA.... + -00080ed0: 0941 4141 4141 5051 4141 4141 4141 4141 .AAAAAPQAAAAAAAA + -00080ee0: 414b 2f2f 2f2f 2f38 4141 4141 4141 4141 AK/////8AAAAAAAA + -00080ef0: 4141 4141 4141 4167 4141 4141 410a 0909 AAAAAAAgAAAAA... + -00080f00: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + -00080f10: 4566 4141 4141 4141 4141 4141 413d 0a09 EfAAAAAAAAAAA=.. + -00080f20: 0909 093c 2f64 6174 613e 0a09 0909 093c ........< + -00080f30: 6b65 793e 4944 3c2f 6b65 793e 0a09 0909 key>ID.... + -00080f40: 093c 7374 7269 6e67 3e31 3c2f 7374 7269 .1.....Nam + -00080f60: 653c 2f6b 6579 3e0a 0909 0909 3c73 7472 e.....Macintosh (A + -00080f80: 7070 6c65 5f44 7269 7665 725f 4154 4150 pple_Driver_ATAP + -00080f90: 4920 3a20 3229 3c2f 7374 7269 6e67 3e0a I : 2). + -00080fa0: 0909 093c 2f64 6963 743e 0a09 0909 3c64 ............At + -00080fc0: 7472 6962 7574 6573 3c2f 6b65 793e 0a09 tributes.. + -00080fd0: 0909 093c 7374 7269 6e67 3e30 7830 3035 ...0x005 + -00080fe0: 303c 2f73 7472 696e 673e 0a09 0909 093c 0.....< + -00080ff0: 6b65 793e 4346 4e61 6d65 3c2f 6b65 793e key>CFName + -00081000: 0a09 0909 093c 7374 7269 6e67 3e4d 6163 .....Mac + -00081010: 5f4f 535f 5820 2841 7070 6c65 5f48 4653 _OS_X (Apple_HFS + -00081020: 5820 3a20 3329 3c2f 7374 7269 6e67 3e0a X : 3). + -00081030: 0909 0909 3c6b 6579 3e44 6174 613c 2f6b ....Data....... + -00081050: 0909 0962 576c 7a61 4141 4141 4145 4141 ...bWlzaAAAAAEAA + -00081060: 4141 4141 4141 4153 4141 4141 4141 4141 AAAAAAASAAAAAAAA + -00081070: 4365 7741 4141 4141 4141 4141 4141 410a CewAAAAAAAAAAAA. + -00081080: 0909 0909 4141 4949 4141 4141 4167 4141 ....AAIIAAAAAgAA + -00081090: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080e90: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00080ea0: 4141 0a09 0909 0941 4141 4141 4141 4367 AA.....AAAAAAACg + +00080eb0: 4141 4142 6741 4141 4141 4141 4141 4141 AAABgAAAAAAAAAAA + +00080ec0: 4141 4141 4141 4141 4141 4141 4141 4941 AAAAAAAAAAAAAAIA + +00080ed0: 4141 410a 0909 0909 4141 4141 4150 5141 AAA.....AAAAAPQA + +00080ee0: 4141 4141 4141 4141 4b2f 2f2f 2f2f 3841 AAAAAAAAK/////8A + +00080ef0: 4141 4141 4141 4141 4141 4141 4141 6741 AAAAAAAAAAAAAAgA + +00080f00: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + +00080f10: 4141 4141 4141 4145 6641 4141 4141 4141 AAAAAAAEfAAAAAAA + +00080f20: 4141 4141 3d0a 0909 0909 3c2f 6461 7461 AAAA=..........ID..... + +00080f50: 313c 2f73 7472 696e 673e 0a09 0909 093c 1.....< + +00080f60: 6b65 793e 4e61 6d65 3c2f 6b65 793e 0a09 key>Name.. + +00080f70: 0909 093c 7374 7269 6e67 3e4d 6163 696e ...Macin + +00080f80: 746f 7368 2028 4170 706c 655f 4472 6976 tosh (Apple_Driv + +00080f90: 6572 5f41 5441 5049 203a 2032 293c 2f73 er_ATAPI : 2)............. + +00080fc0: 3c6b 6579 3e41 7474 7269 6275 7465 733c Attributes< + +00080fd0: 2f6b 6579 3e0a 0909 0909 3c73 7472 696e /key>.....0x0050.....CFNam + +00081000: 653c 2f6b 6579 3e0a 0909 0909 3c73 7472 e.....Mac_OS_X (Ap + +00081020: 706c 655f 4846 5358 203a 2033 293c 2f73 ple_HFSX : 3)..... + +00081040: 4461 7461 3c2f 6b65 793e 0a09 0909 093c Data.....< + +00081050: 6461 7461 3e0a 0909 0909 6257 6c7a 6141 data>.....bWlzaA + +00081060: 4141 4141 4541 4141 4141 4141 4141 5341 AAAAEAAAAAAAAASA + +00081070: 4141 4141 4141 4143 6577 4141 4141 4141 AAAAAAACewAAAAAA + +00081080: 4141 4141 4141 0a09 0909 0941 4149 4941 AAAAAA.....AAIIA + +00081090: 4141 4141 6741 4141 4141 4141 4141 4141 AAAAgAAAAAAAAAAA + 000810a0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000810b0: 0a09 0909 0941 4149 4141 4141 6776 4461 .....AAIAAAAgvDa + -000810c0: 3278 6741 4141 4141 4141 4141 4141 4141 2xgAAAAAAAAAAAAA + +000810b0: 4141 4141 4141 410a 0909 0909 4141 4941 AAAAAAA.....AAIA + +000810c0: 4141 4167 6853 4839 3751 4141 4141 4141 AAAghSH97QAAAAAA + 000810d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000810e0: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + +000810e0: 4141 4141 4141 4141 0a09 0909 0941 4141 AAAAAAAA.....AAA + 000810f0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00081100: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00081110: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + +00081110: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + 00081120: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00081130: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00081140: 4141 410a 0909 0909 4141 4141 4141 4141 AAA.....AAAAAAAA + +00081140: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + 00081150: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00081160: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00081170: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + -00081180: 5641 4141 4141 5141 4141 4141 4141 4141 VAAAAAQAAAAAAAAA + -00081190: 4141 4141 4141 4141 4141 4141 4141 4149 AAAAAAAAAAAAAAAI + -000811a0: 4141 4141 410a 0909 0909 4141 4141 4152 AAAAA.....AAAAAR + -000811b0: 3841 4141 4141 4141 5141 4141 4141 4141 8AAAAAAAQAAAAAAA + -000811c0: 4541 4141 4141 4141 4141 4141 4141 4167 EAAAAAAAAAAAAAAg + -000811d0: 4141 4141 4141 0a09 0909 0941 4141 4341 AAAAAA.....AAACA + -000811e0: 4141 4141 4141 4142 4145 6641 4141 4141 AAAAAAABAEfAAAAA + -000811f0: 4141 4541 4143 4141 4141 4741 4141 4141 AAEAACAAAAGAAAAA + -00081200: 4141 4141 4141 410a 0909 0909 4141 5141 AAAAAAA.....AAQA + -00081210: 4141 4141 4141 4141 4167 4141 4141 4141 AAAAAAAAAgAAAAAA + -00081220: 4141 6742 4877 4141 4141 4141 4141 4637 AAgBHwAAAAAAAAF7 + -00081230: 6741 4141 4267 4141 0a09 0909 0941 4141 gAAABgAA.....AAA + -00081240: 4141 4141 4141 4141 4741 4141 4141 4141 AAAAAAAAGAAAAAAA + -00081250: 4141 4149 4141 4141 4141 4141 4941 706f AAAIAAAAAAAAIApo + -00081260: 4141 4141 4141 4141 410a 0909 0909 4c59 AAAAAAAAA.....LY + -00081270: 4141 4141 5941 4141 4141 4141 4141 4141 AAAAYAAAAAAAAAAA + -00081280: 4141 4341 4141 4141 4141 4141 4143 4141 AACAAAAAAAAAACAA + -00081290: 4141 4141 4141 4341 4c48 0a09 0909 0941 AAAAAACALH.....A + -000812a0: 4141 4141 4141 4141 4569 4141 4141 4741 AAAAAAAAEiAAAAGA + -000812b0: 4141 4141 4141 4141 4141 4141 416f 4141 AAAAAAAAAAAAAoAA + -000812c0: 4141 4141 4141 4141 6741 410a 0909 0909 AAAAAAAAgAA..... + -000812d0: 4141 4141 4141 6744 4477 4141 4141 4141 AAAAAAgDDwAAAAAA + -000812e0: 4141 4174 6741 4141 4267 4141 4141 4141 AAAtgAAABgAAAAAA + -000812f0: 4141 4141 4141 414d 4141 4141 0a09 0909 AAAAAAAMAAAA.... + -00081300: 0941 4141 4141 4149 4141 4141 4141 4141 .AAAAAAIAAAAAAAA + -00081310: 4941 7a77 4141 4141 4141 4141 414c 5941 IAzwAAAAAAAAALYA + -00081320: 4141 4159 4141 4141 4141 4141 410a 0909 AAAYAAAAAAAAA... + -00081330: 0909 4141 4141 4467 4141 4141 4141 4141 ..AAAADgAAAAAAAA + -00081340: 4143 4141 4141 4141 4141 4341 4e70 4141 ACAAAAAAAACANpAA + -00081350: 4141 4141 4141 4143 3241 4141 4147 0a09 AAAAAAAC2AAAAG.. + -00081360: 0909 0941 4141 4141 4141 4141 4141 4141 ...AAAAAAAAAAAAA + -00081370: 4241 4141 4141 4141 4141 4141 6741 4141 BAAAAAAAAAAAgAAA + -00081380: 4141 4141 4167 446c 6741 4141 4141 410a AAAAAgDlgAAAAAA. + -00081390: 0909 0909 4141 4174 6741 4141 4267 4141 ....AAAtgAAABgAA + -000813a0: 4141 4141 4141 4141 4141 4153 4141 4141 AAAAAAAAAAASAAAA + -000813b0: 4141 4141 4141 4941 4141 4141 4141 4149 AAAAAAIAAAAAAAAI + -000813c0: 0a09 0909 0941 384d 4141 4141 4141 4141 .....A8MAAAAAAAA + -000813d0: 414c 5941 4141 4159 4141 4141 4141 4141 ALYAAAAYAAAAAAAA + -000813e0: 4141 4141 4146 4141 4141 4141 4141 4141 AAAAAFAAAAAAAAAA + -000813f0: 430a 0909 0909 4141 4141 4141 4141 4341 C.....AAAAAAAACA + -00081400: 5077 4141 4141 4141 4141 4143 3241 4141 PwAAAAAAAAAC2AAA + -00081410: 4147 4141 4141 4141 4141 4141 4141 4142 AGAAAAAAAAAAAAAB + -00081420: 5941 0a09 0909 0941 4141 4141 4141 4141 YA.....AAAAAAAAA + -00081430: 6741 4141 4141 4141 4167 4548 5141 4141 gAAAAAAAAgEHQAAA + -00081440: 4141 4141 4141 7467 4141 4142 6741 4141 AAAAAAtgAAABgAAA + -00081450: 4141 410a 0909 0909 4141 4141 4141 4159 AAA.....AAAAAAAY + -00081460: 4141 4141 4141 4141 4141 4941 4141 4141 AAAAAAAAAAIAAAAA + -00081470: 4141 4149 4245 6f41 4141 4141 4141 4141 AAAIBEoAAAAAAAAA + -00081480: 4c59 4141 0a09 0909 0941 4159 4141 4141 LYAA.....AAYAAAA + -00081490: 4141 4141 4141 4141 4147 6741 4141 4141 AAAAAAAAAGgAAAAA + -000814a0: 4141 4141 4341 4141 4141 4141 4143 4152 AAAACAAAAAAAACAR + -000814b0: 3341 4141 410a 0909 0909 4141 4141 4143 3AAAA.....AAAAAC + -000814c0: 3241 4141 4147 4141 4141 4141 4141 4141 2AAAAGAAAAAAAAAA + -000814d0: 4141 4142 7741 4141 4141 4141 4141 4167 AAABwAAAAAAAAAAg + -000814e0: 4141 4141 4141 0a09 0909 0941 4167 4570 AAAAAA.....AAgEp + -000814f0: 4141 4141 4141 4141 4141 7467 4141 4142 AAAAAAAAAAtgAAAB + -00081500: 6741 4141 4141 4141 4141 4141 4141 6541 gAAAAAAAAAAAAAeA + -00081510: 4141 4141 4141 410a 0909 0909 4141 4941 AAAAAAA.....AAIA + -00081520: 4141 4141 4141 4149 424e 4541 4141 4141 AAAAAAAIBNEAAAAA + -00081530: 4141 4141 4c59 4141 4141 5941 4141 4141 AAAALYAAAAYAAAAA + -00081540: 4141 4141 4141 4141 0a09 0909 0949 4141 AAAAAAAA.....IAA + -00081550: 4141 4141 4141 4141 4341 4141 4141 4141 AAAAAAAACAAAAAAA + -00081560: 4143 4154 2b41 4141 4141 4141 4141 4332 ACAT+AAAAAAAAAC2 + -00081570: 4141 4141 4741 4141 410a 0909 0909 4141 AAAAGAAAA.....AA + -00081580: 4141 4141 4141 4143 4941 4141 4141 4141 AAAAAAACIAAAAAAA + -00081590: 4141 4167 4141 4141 4141 4141 6746 4b77 AAAgAAAAAAAAgFKw + -000815a0: 4141 4141 4141 4141 4174 0a09 0909 0967 AAAAAAAAAt.....g + -000815b0: 4141 4142 6741 4141 4141 4141 4141 4141 AAABgAAAAAAAAAAA + -000815c0: 4141 6b41 4141 4141 4141 4141 4149 4141 AAkAAAAAAAAAAIAA + -000815d0: 4141 4141 4141 4942 5667 410a 0909 0909 AAAAAAIBVgA..... + -000815e0: 4141 4141 4141 4141 4c59 4141 4141 5941 AAAAAAAALYAAAAYA + -000815f0: 4141 4141 4141 4141 4141 4141 4a67 4141 AAAAAAAAAAAAJgAA + -00081600: 4141 4141 4141 4142 7341 4141 0a09 0909 AAAAAAABsAAA.... + -00081610: 0941 4141 4143 4157 4641 4141 4141 4141 .AAAACAWFAAAAAAA + -00081620: 4141 4b4c 2f2f 2f2f 2f41 4141 4141 4141 AAKL/////AAAAAAA + -00081630: 4141 4141 4141 4365 7741 4141 410a 0909 AAAAAACewAAAA... + -00081640: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + -00081650: 6747 4a77 4141 4141 4141 4141 4141 0a09 gGJwAAAAAAAAAA.. + -00081660: 0909 093c 2f64 6174 613e 0a09 0909 093c ........< + -00081670: 6b65 793e 4944 3c2f 6b65 793e 0a09 0909 key>ID.... + -00081680: 093c 7374 7269 6e67 3e32 3c2f 7374 7269 .2.....Nam + -000816a0: 653c 2f6b 6579 3e0a 0909 0909 3c73 7472 e.....Mac_OS_X (Ap + -000816c0: 706c 655f 4846 5358 203a 2033 293c 2f73 ple_HFSX : 3)............. + -000816f0: 3c6b 6579 3e41 7474 7269 6275 7465 733c Attributes< + -00081700: 2f6b 6579 3e0a 0909 0909 3c73 7472 696e /key>.....0x0050.....CFNam + -00081730: 653c 2f6b 6579 3e0a 0909 0909 3c73 7472 e..... (Apple_Free + -00081750: 203a 2034 293c 2f73 7472 696e 673e 0a09 : 4).. + -00081760: 0909 093c 6b65 793e 4461 7461 3c2f 6b65 ...Data........ + -00081780: 0909 6257 6c7a 6141 4141 4141 4541 4141 ..bWlzaAAAAAEAAA + -00081790: 4141 4141 416e 2b41 4141 4141 4141 4141 AAAAAn+AAAAAAAAA + -000817a0: 414b 4141 4141 4141 4141 4141 4141 0a09 AKAAAAAAAAAAAA.. + -000817b0: 0909 0941 4141 4141 4141 4141 7741 4141 ...AAAAAAAAAwAAA + -000817c0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000817d0: 4141 4141 4141 4141 4141 4141 4141 410a AAAAAAAAAAAAAAA. + -000817e0: 0909 0909 4141 4941 4141 4167 4141 4141 ....AAIAAAAgAAAA + -000817f0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00081170: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + +00081180: 4141 4141 4141 4156 4141 4141 4151 4141 AAAAAAAVAAAAAQAA + +00081190: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000811a0: 4141 4141 4141 4941 4141 4141 0a09 0909 AAAAAAIAAAAA.... + +000811b0: 0941 4141 4141 5238 4141 4141 4141 4151 .AAAAAR8AAAAAAAQ + +000811c0: 4141 4141 4141 4145 4141 4141 4141 4141 AAAAAAAEAAAAAAAA + +000811d0: 4141 4141 4141 6741 4141 4141 410a 0909 AAAAAAgAAAAAA... + +000811e0: 0909 4141 4143 4141 4141 4141 4141 4241 ..AAACAAAAAAAABA + +000811f0: 4566 4141 4141 4141 4145 4141 4341 4141 EfAAAAAAAEAACAAA + +00081200: 4147 4141 4141 4141 4141 4141 4141 0a09 AGAAAAAAAAAAAA.. + +00081210: 0909 0941 4151 4141 4141 4141 4141 4141 ...AAQAAAAAAAAAA + +00081220: 6741 4141 4141 4141 4167 4248 7741 4141 gAAAAAAAAgBHwAAA + +00081230: 4141 4141 4147 4267 4141 4142 6741 410a AAAAAGBgAAABgAA. + +00081240: 0909 0909 4141 4141 4141 4141 4141 4147 ....AAAAAAAAAAAG + +00081250: 4141 4141 4141 4141 4141 4941 4141 4141 AAAAAAAAAAIAAAAA + +00081260: 4141 4149 4171 4141 4141 4141 4141 4141 AAAIAqAAAAAAAAAA + +00081270: 0a09 0909 094c 5941 4141 4159 4141 4141 .....LYAAAAYAAAA + +00081280: 4141 4141 4141 4141 4143 4141 4141 4141 AAAAAAAAACAAAAAA + +00081290: 4141 4141 4341 4141 4141 4141 4143 414c AAAACAAAAAAAACAL + +000812a0: 4e0a 0909 0909 4141 4141 4141 4141 4145 N.....AAAAAAAAAE + +000812b0: 6941 4141 4147 4141 4141 4141 4141 4141 iAAAAGAAAAAAAAAA + +000812c0: 4141 4141 6f41 4141 4141 4141 4141 4167 AAAAoAAAAAAAAAAg + +000812d0: 4141 0a09 0909 0941 4141 4141 4167 4446 AA.....AAAAAAgDF + +000812e0: 5141 4141 4141 4141 4141 7467 4141 4142 QAAAAAAAAAtgAAAB + +000812f0: 6741 4141 4141 4141 4141 4141 4141 4d41 gAAAAAAAAAAAAAMA + +00081300: 4141 410a 0909 0909 4141 4141 4141 4941 AAA.....AAAAAAIA + +00081310: 4141 4141 4141 4149 4130 4941 4141 4141 AAAAAAAIA0IAAAAA + +00081320: 4141 4141 4c59 4141 4141 5941 4141 4141 AAAALYAAAAYAAAAA + +00081330: 4141 4141 0a09 0909 0941 4141 4144 6741 AAAA.....AAAADgA + +00081340: 4141 4141 4141 4141 4341 4141 4141 4141 AAAAAAAACAAAAAAA + +00081350: 4143 414e 7641 4141 4141 4141 4141 4332 ACANvAAAAAAAAAC2 + +00081360: 4141 4141 470a 0909 0909 4141 4141 4141 AAAAG.....AAAAAA + +00081370: 4141 4141 4141 4142 4141 4141 4141 4141 AAAAAAABAAAAAAAA + +00081380: 4141 4167 4141 4141 4141 4141 6744 6e41 AAAgAAAAAAAAgDnA + +00081390: 4141 4141 4141 0a09 0909 0941 4141 7467 AAAAAA.....AAAtg + +000813a0: 4141 4142 6741 4141 4141 4141 4141 4141 AAABgAAAAAAAAAAA + +000813b0: 4141 5341 4141 4141 4141 4141 4149 4141 AASAAAAAAAAAAIAA + +000813c0: 4141 4141 4141 490a 0909 0909 4138 6b41 AAAAAAI.....A8kA + +000813d0: 4141 4141 4141 4141 4c59 4141 4141 5941 AAAAAAAALYAAAAYA + +000813e0: 4141 4141 4141 4141 4141 4141 4641 4141 AAAAAAAAAAAAFAAA + +000813f0: 4141 4141 4141 4143 0a09 0909 0941 4141 AAAAAAAC.....AAA + +00081400: 4141 4141 4143 4150 3241 4141 4141 4141 AAAAACAP2AAAAAAA + +00081410: 4141 4332 4141 4141 4741 4141 4141 4141 AAC2AAAAGAAAAAAA + +00081420: 4141 4141 4141 4259 410a 0909 0909 4141 AAAAAABYA.....AA + +00081430: 4141 4141 4141 4167 4141 4141 4141 4141 AAAAAAAgAAAAAAAA + +00081440: 6745 4977 4141 4141 4141 4141 4174 6741 gEIwAAAAAAAAAtgA + +00081450: 4141 4267 4141 4141 4141 0a09 0909 0941 AABgAAAAAA.....A + +00081460: 4141 4141 4141 5941 4141 4141 4141 4141 AAAAAAYAAAAAAAAA + +00081470: 4149 4141 4141 4141 4141 4942 4641 4141 AIAAAAAAAAIBFAAA + +00081480: 4141 4141 4141 414c 5941 410a 0909 0909 AAAAAAALYAA..... + +00081490: 4141 5941 4141 4141 4141 4141 4141 4141 AAYAAAAAAAAAAAAA + +000814a0: 4767 4141 4141 4141 4141 4143 4141 4141 GgAAAAAAAAACAAAA + +000814b0: 4141 4141 4341 5239 4141 4141 0a09 0909 AAAACAR9AAAA.... + +000814c0: 0941 4141 4141 4332 4141 4141 4741 4141 .AAAAAC2AAAAGAAA + +000814d0: 4141 4141 4141 4141 4141 4277 4141 4141 AAAAAAAAAABwAAAA + +000814e0: 4141 4141 4141 6741 4141 4141 410a 0909 AAAAAAgAAAAAA... + +000814f0: 0909 4141 6745 7167 4141 4141 4141 4141 ..AAgEqgAAAAAAAA + +00081500: 4174 6741 4141 4267 4141 4141 4141 4141 AtgAAABgAAAAAAAA + +00081510: 4141 4141 4165 4141 4141 4141 4141 0a09 AAAAAeAAAAAAAA.. + +00081520: 0909 0941 4149 4141 4141 4141 4141 4942 ...AAIAAAAAAAAIB + +00081530: 4e63 4141 4141 4141 4141 414c 5941 4141 NcAAAAAAAAALYAAA + +00081540: 4159 4141 4141 4141 4141 4141 4141 410a AYAAAAAAAAAAAAA. + +00081550: 0909 0909 4941 4141 4141 4141 4141 4143 ....IAAAAAAAAAAC + +00081560: 4141 4141 4141 4141 4341 5545 4141 4141 AAAAAAAACAUEAAAA + +00081570: 4141 4141 4143 3241 4141 4147 4141 4141 AAAAAC2AAAAGAAAA + +00081580: 0a09 0909 0941 4141 4141 4141 4141 4349 .....AAAAAAAAACI + +00081590: 4141 4141 4141 4141 4141 6741 4141 4141 AAAAAAAAAAgAAAAA + +000815a0: 4141 4167 464d 5141 4141 4141 4141 4141 AAAgFMQAAAAAAAAA + +000815b0: 740a 0909 0909 6741 4141 4267 4141 4141 t.....gAAABgAAAA + +000815c0: 4141 4141 4141 4141 416b 4141 4141 4141 AAAAAAAAAkAAAAAA + +000815d0: 4141 4141 4941 4141 4141 4141 4149 4256 AAAAIAAAAAAAAIBV + +000815e0: 3441 0a09 0909 0941 4141 4141 4141 414c 4A.....AAAAAAAAL + +000815f0: 5941 4141 4159 4141 4141 4141 4141 4141 YAAAAYAAAAAAAAAA + +00081600: 4141 414a 6741 4141 4141 4141 4141 4273 AAAJgAAAAAAAAABs + +00081610: 4141 410a 0909 0909 4141 4141 4341 574c AAA.....AAAACAWL + +00081620: 4141 4141 4141 4141 414b 502f 2f2f 2f2f AAAAAAAAAKP///// + +00081630: 4141 4141 4141 4141 4141 4141 4143 6577 AAAAAAAAAAAAACew + +00081640: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + +00081650: 4141 4141 4141 4167 474c 6741 4141 4141 AAAAAAAgGLgAAAAA + +00081660: 4141 4141 410a 0909 0909 3c2f 6461 7461 AAAAA..........ID..... + +00081690: 323c 2f73 7472 696e 673e 0a09 0909 093c 2.....< + +000816a0: 6b65 793e 4e61 6d65 3c2f 6b65 793e 0a09 key>Name.. + +000816b0: 0909 093c 7374 7269 6e67 3e4d 6163 5f4f ...Mac_O + +000816c0: 535f 5820 2841 7070 6c65 5f48 4653 5820 S_X (Apple_HFSX + +000816d0: 3a20 3329 3c2f 7374 7269 6e67 3e0a 0909 : 3)... + +000816e0: 093c 2f64 6963 743e 0a09 0909 3c64 6963 ..........Attr + +00081700: 6962 7574 6573 3c2f 6b65 793e 0a09 0909 ibutes.... + +00081710: 093c 7374 7269 6e67 3e30 7830 3035 303c .0x0050< + +00081720: 2f73 7472 696e 673e 0a09 0909 093c 6b65 /string>.....CFName.. + +00081740: 0909 093c 7374 7269 6e67 3e20 2841 7070 ... (App + +00081750: 6c65 5f46 7265 6520 3a20 3429 3c2f 7374 le_Free : 4).....D + +00081770: 6174 613c 2f6b 6579 3e0a 0909 0909 3c64 ata..........bWlzaAA + +00081790: 4141 4145 4141 4141 4141 4141 6e2b 4141 AAAEAAAAAAAAn+AA + +000817a0: 4141 4141 4141 4141 4b41 4141 4141 4141 AAAAAAAAKAAAAAAA + +000817b0: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + +000817c0: 4141 4177 4141 4141 4141 4141 4141 4141 AAAwAAAAAAAAAAAA + +000817d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000817e0: 4141 4141 4141 0a09 0909 0941 4149 4141 AAAAAA.....AAIAA + +000817f0: 4141 6741 4141 4141 4141 4141 4141 4141 AAgAAAAAAAAAAAAA + 00081800: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00081810: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + +00081810: 4141 4141 4141 410a 0909 0909 4141 4141 AAAAAAA.....AAAA + 00081820: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00081830: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00081840: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + +00081840: 4141 4141 4141 4141 0a09 0909 0941 4141 AAAAAAAA.....AAA + 00081850: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00081860: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00081870: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + +00081870: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + 00081880: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00081890: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000818a0: 4141 410a 0909 0909 4141 4141 4141 4143 AAA.....AAAAAAAC + -000818b0: 4141 4141 4167 4141 4141 4141 4141 4141 AAAAAgAAAAAAAAAA + -000818c0: 4141 4141 4141 4141 4141 4141 4141 414b AAAAAAAAAAAAAAAK + -000818d0: 4141 4141 0a09 0909 0941 4141 4942 6963 AAAA.....AAAIBic + -000818e0: 4141 4141 4141 4141 4141 502f 2f2f 2f38 AAAAAAAAAAP////8 + -000818f0: 4141 4141 4141 4141 4141 4141 4141 416f AAAAAAAAAAAAAAAo + -00081900: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + -00081910: 4141 4141 4141 4341 596e 4141 4141 4141 AAAAAACAYnAAAAAA + -00081920: 4141 4141 413d 0a09 0909 093c 2f64 6174 AAAAA=..........ID.....3..... + -00081960: 3c6b 6579 3e4e 616d 653c 2f6b 6579 3e0a Name. + -00081970: 0909 0909 3c73 7472 696e 673e 2028 4170 .... (Ap + -00081980: 706c 655f 4672 6565 203a 2034 293c 2f73 ple_Free : 4)..........< + -000819b0: 6b65 793e 6353 756d 3c2f 6b65 793e 0a09 key>cSum.. + -000819c0: 093c 6172 7261 793e 0a09 0909 3c64 6963 ..........Attr + -000819e0: 6962 7574 6573 3c2f 6b65 793e 0a09 0909 ibutes.... + -000819f0: 093c 7374 7269 6e67 3e30 7830 3030 303c .0x0000< + -00081a00: 2f73 7472 696e 673e 0a09 0909 093c 6b65 /string>.....Data.... + -00081a20: 093c 6461 7461 3e0a 0909 0909 4151 4143 ......AQAC + -00081a30: 4141 4141 6859 3234 3641 3d3d 0a09 0909 AAAAhY246A==.... + -00081a40: 093c 2f64 6174 613e 0a09 0909 093c 6b65 ......ID.....< + -00081a60: 7374 7269 6e67 3e30 3c2f 7374 7269 6e67 string>0.....Name< + -00081a80: 2f6b 6579 3e0a 0909 0909 3c73 7472 696e /key>.........< + -00081aa0: 2f64 6963 743e 0a09 0909 3c64 6963 743e /dict>.... + -00081ab0: 0a09 0909 093c 6b65 793e 4174 7472 6962 .....Attrib + -00081ac0: 7574 6573 3c2f 6b65 793e 0a09 0909 093c utes.....< + -00081ad0: 7374 7269 6e67 3e30 7830 3030 303c 2f73 string>0x0000..... + -00081af0: 4461 7461 3c2f 6b65 793e 0a09 0909 093c Data.....< + -00081b00: 6461 7461 3e0a 0909 0909 4151 4143 4141 data>.....AQACAA + -00081b10: 4141 4141 4141 4141 3d3d 0a09 0909 093c AAAAAAAA==.....< + -00081b20: 2f64 6174 613e 0a09 0909 093c 6b65 793e /data>..... + -00081b30: 4944 3c2f 6b65 793e 0a09 0909 093c 7374 ID.....1. + -00081b50: 0909 0909 3c6b 6579 3e4e 616d 653c 2f6b ....Name..... + -00081b70: 3c2f 7374 7269 6e67 3e0a 0909 093c 2f64 .......... + -00081b90: 0909 093c 6b65 793e 4174 7472 6962 7574 ...Attribut + -00081ba0: 6573 3c2f 6b65 793e 0a09 0909 093c 7374 es.....0x0000.....Da + -00081bd0: 7461 3c2f 6b65 793e 0a09 0909 093c 6461 ta..........AQACAAAA + -00081bf0: 2f4a 4335 4c51 3d3d 0a09 0909 093c 2f64 /JC5LQ==..........ID + -00081c10: 3c2f 6b65 793e 0a09 0909 093c 7374 7269 .....2... + -00081c30: 0909 3c6b 6579 3e4e 616d 653c 2f6b 6579 ..Name............... + -00081c70: 3c6b 6579 3e6e 7369 7a3c 2f6b 6579 3e0a nsiz. + -00081c80: 0909 3c61 7272 6179 3e0a 0909 093c 6469 ...........Att + -00081ca0: 7269 6275 7465 733c 2f6b 6579 3e0a 0909 ributes... + -00081cb0: 0909 3c73 7472 696e 673e 3078 3030 3030 ..0x0000 + -00081cc0: 3c2f 7374 7269 6e67 3e0a 0909 0909 3c6b .....Data... + -00081ce0: 0909 3c64 6174 613e 0a09 0909 0950 4439 .......PD9 + -00081cf0: 3462 5777 6764 6d56 7963 326c 7662 6a30 4bWwgdmVyc2lvbj0 + -00081d00: 694d 5334 7749 6942 6c62 6d4e 765a 476c iMS4wIiBlbmNvZGl + -00081d10: 755a 7a30 6956 5652 470a 0909 0909 4c54 uZz0iVVRG.....LT + -00081d20: 6769 507a 344b 5043 4645 5430 4e55 5756 giPz4KPCFET0NUWV + -00081d30: 4246 4948 4273 6158 4e30 4946 4256 516b BFIHBsaXN0IFBVQk + -00081d40: 784a 5179 4169 4c53 3876 0a09 0909 0951 xJQyAiLS8v.....Q + -00081d50: 5842 7762 4755 764c 3052 5552 4342 5154 XBwbGUvL0RURCBQT + -00081d60: 456c 5456 4341 784c 6a41 764c 3056 4f49 ElTVCAxLjAvL0VOI + -00081d70: 6941 6961 4852 3063 446f 760a 0909 0909 iAiaHR0cDov..... + -00081d80: 4c33 6433 6479 3568 6348 4273 5a53 356a L3d3dy5hcHBsZS5j + -00081d90: 6232 3076 5246 5245 6379 3951 636d 3977 b20vRFREcy9Qcm9w + -00081da0: 5a58 4a30 6555 7870 6333 5174 0a09 0909 ZXJ0eUxpc3Qt.... + -00081db0: 094d 5334 774c 6d52 305a 4349 2b43 6a78 .MS4wLmR0ZCI+Cjx + -00081dc0: 7762 476c 7a64 4342 325a 584a 7a61 5739 wbGlzdCB2ZXJzaW9 + -00081dd0: 7550 5349 784c 6a41 6950 676f 380a 0909 uPSIxLjAiPgo8... + -00081de0: 0909 5a47 6c6a 6444 344b 4354 7872 5a58 ..ZGljdD4KCTxrZX + -00081df0: 6b2b 596d 7876 5932 7374 5932 686c 5932 k+YmxvY2stY2hlY2 + -00081e00: 747a 6457 3074 4d6a 7776 6132 5635 0a09 tzdW0tMjwva2V5.. + -00081e10: 0909 0950 676f 4a50 476c 7564 4756 6e5a ...PgoJPGludGVnZ + -00081e20: 5849 2b4c 544d 354d 4455 314f 444d 7a4d XI+LTM5MDU1ODMzM + -00081e30: 5477 7661 5735 305a 5764 6c63 6a34 4b0a TwvaW50ZWdlcj4K. + -00081e40: 0909 0909 4354 7872 5a58 6b2b 6347 4679 ....CTxrZXk+cGFy + -00081e50: 6443 3175 6457 3038 4c32 746c 6554 344b dC1udW08L2tleT4K + -00081e60: 4354 7870 626e 526c 5a32 5679 506a 4138 CTxpbnRlZ2VyPjA8 + -00081e70: 0a09 0909 094c 326c 7564 4756 6e5a 5849 .....L2ludGVnZXI + -00081e80: 2b43 676b 3861 3256 3550 6e5a 6c63 6e4e +Cgk8a2V5PnZlcnN + -00081e90: 7062 3234 384c 3274 6c65 5434 4b43 5478 pb248L2tleT4KCTx + -00081ea0: 700a 0909 0909 626e 526c 5a32 5679 506a p.....bnRlZ2VyPj + -00081eb0: 5938 4c32 6c75 6447 566e 5a58 492b 436a Y8L2ludGVnZXI+Cj + -00081ec0: 7776 5a47 6c6a 6444 344b 5043 3977 6247 wvZGljdD4KPC9wbG + -00081ed0: 6c7a 0a09 0909 0964 4434 4b0a 0909 0909 lz.....dD4K..... + -00081ee0: 3c2f 6461 7461 3e0a 0909 0909 3c6b 6579 .....ID.....0 + -00081f10: 0a09 0909 093c 6b65 793e 4e61 6d65 3c2f .....Name.............. + -00081f50: 0909 0909 3c6b 6579 3e41 7474 7269 6275 ....Attribu + -00081f60: 7465 733c 2f6b 6579 3e0a 0909 0909 3c73 tes.....0x0000.....D + -00081f90: 6174 613c 2f6b 6579 3e0a 0909 0909 3c64 ata..........PD94bWw + -00081fb0: 6764 6d56 7963 326c 7662 6a30 694d 5334 gdmVyc2lvbj0iMS4 + -00081fc0: 7749 6942 6c62 6d4e 765a 476c 755a 7a30 wIiBlbmNvZGluZz0 + -00081fd0: 6956 5652 470a 0909 0909 4c54 6769 507a iVVRG.....LTgiPz + -00081fe0: 344b 5043 4645 5430 4e55 5756 4246 4948 4KPCFET0NUWVBFIH + -00081ff0: 4273 6158 4e30 4946 4256 516b 784a 5179 BsaXN0IFBVQkxJQy + -00082000: 4169 4c53 3876 0a09 0909 0951 5842 7762 AiLS8v.....QXBwb + -00082010: 4755 764c 3052 5552 4342 5154 456c 5456 GUvL0RURCBQTElTV + -00082020: 4341 784c 6a41 764c 3056 4f49 6941 6961 CAxLjAvL0VOIiAia + -00082030: 4852 3063 446f 760a 0909 0909 4c33 6433 HR0cDov.....L3d3 + -00082040: 6479 3568 6348 4273 5a53 356a 6232 3076 dy5hcHBsZS5jb20v + -00082050: 5246 5245 6379 3951 636d 3977 5a58 4a30 RFREcy9Qcm9wZXJ0 + -00082060: 6555 7870 6333 5174 0a09 0909 094d 5334 eUxpc3Qt.....MS4 + -00082070: 774c 6d52 305a 4349 2b43 6a78 7762 476c wLmR0ZCI+CjxwbGl + -00082080: 7a64 4342 325a 584a 7a61 5739 7550 5349 zdCB2ZXJzaW9uPSI + -00082090: 784c 6a41 6950 676f 380a 0909 0909 5a47 xLjAiPgo8.....ZG + -000820a0: 6c6a 6444 344b 4354 7872 5a58 6b2b 596d ljdD4KCTxrZXk+Ym + -000820b0: 7876 5932 7374 5932 686c 5932 747a 6457 xvY2stY2hlY2tzdW + -000820c0: 3074 4d6a 7776 6132 5635 0a09 0909 0950 0tMjwva2V5.....P + -000820d0: 676f 4a50 476c 7564 4756 6e5a 5849 2b4d goJPGludGVnZXI+M + -000820e0: 4477 7661 5735 305a 5764 6c63 6a34 4b43 DwvaW50ZWdlcj4KC + -000820f0: 5478 725a 586b 2b63 4746 790a 0909 0909 TxrZXk+cGFy..... + -00082100: 6443 3175 6457 3038 4c32 746c 6554 344b dC1udW08L2tleT4K + -00082110: 4354 7870 626e 526c 5a32 5679 506a 4538 CTxpbnRlZ2VyPjE8 + -00082120: 4c32 6c75 6447 566e 5a58 492b 0a09 0909 L2ludGVnZXI+.... + -00082130: 0943 676b 3861 3256 3550 6e5a 6c63 6e4e .Cgk8a2V5PnZlcnN + -00082140: 7062 3234 384c 3274 6c65 5434 4b43 5478 pb248L2tleT4KCTx + -00082150: 7062 6e52 6c5a 3256 7950 6a59 380a 0909 pbnRlZ2VyPjY8... + -00082160: 0909 4c32 6c75 6447 566e 5a58 492b 436a ..L2ludGVnZXI+Cj + -00082170: 7776 5a47 6c6a 6444 344b 5043 3977 6247 wvZGljdD4KPC9wbG + -00082180: 6c7a 6444 344b 0a09 0909 093c 2f64 6174 lzdD4K..........ID.....1..... + -000821c0: 3c6b 6579 3e4e 616d 653c 2f6b 6579 3e0a Name. + -000821d0: 0909 0909 3c73 7472 696e 673e 3c2f 7374 ........ + -000821f0: 0a09 0909 3c64 6963 743e 0a09 0909 093c .........< + -00082200: 6b65 793e 4174 7472 6962 7574 6573 3c2f key>Attributes.....0x0000 + -00082230: 0a09 0909 093c 6b65 793e 4461 7461 3c2f .....Data...... + -00082250: 0909 0909 5044 3934 6257 7767 646d 5679 ....PD94bWwgdmVy + -00082260: 6332 6c76 626a 3069 4d53 3477 4969 426c c2lvbj0iMS4wIiBl + -00082270: 626d 4e76 5a47 6c75 5a7a 3069 5656 5247 bmNvZGluZz0iVVRG + -00082280: 0a09 0909 094c 5467 6950 7a34 4b50 4346 .....LTgiPz4KPCF + -00082290: 4554 304e 5557 5642 4649 4842 7361 584e ET0NUWVBFIHBsaXN + -000822a0: 3049 4642 5651 6b78 4a51 7941 694c 5338 0IFBVQkxJQyAiLS8 + -000822b0: 760a 0909 0909 5158 4277 6247 5576 4c30 v.....QXBwbGUvL0 + -000822c0: 5255 5243 4251 5445 6c54 5643 4178 4c6a RURCBQTElTVCAxLj + -000822d0: 4176 4c30 564f 4969 4169 6148 5230 6344 AvL0VOIiAiaHR0cD + -000822e0: 6f76 0a09 0909 094c 3364 3364 7935 6863 ov.....L3d3dy5hc + -000822f0: 4842 735a 5335 6a62 3230 7652 4652 4563 HBsZS5jb20vRFREc + -00082300: 7939 5163 6d39 775a 584a 3065 5578 7063 y9Qcm9wZXJ0eUxpc + -00082310: 3351 740a 0909 0909 4d53 3477 4c6d 5230 3Qt.....MS4wLmR0 + -00082320: 5a43 492b 436a 7877 6247 6c7a 6443 4232 ZCI+CjxwbGlzdCB2 + -00082330: 5a58 4a7a 6157 3975 5053 4978 4c6a 4169 ZXJzaW9uPSIxLjAi + -00082340: 5067 6f38 0a09 0909 095a 476c 6a64 4434 Pgo8.....ZGljdD4 + -00082350: 4b43 5478 725a 586b 2b55 3068 424c 5445 KCTxrZXk+U0hBLTE + -00082360: 745a 476c 6e5a 584e 3050 4339 725a 586b tZGlnZXN0PC9rZXk + -00082370: 2b43 676b 380a 0909 0909 5a47 4630 5954 +Cgk8.....ZGF0YT + -00082380: 344b 4354 4e50 4e31 5a69 4d6c 644e 5a30 4KCTNPN1ZiMldNZ0 + -00082390: 3151 5930 6c69 5358 706c 4e6a 5648 5957 1QY0liSXplNjVHYW + -000823a0: 4a75 636c 5244 0a09 0909 094d 4430 4b43 JuclRD.....MD0KC + -000823b0: 5477 765a 4746 3059 5434 4b43 5478 725a TwvZGF0YT4KCTxrZ + -000823c0: 586b 2b59 6d78 7659 3273 7459 3268 6c59 Xk+YmxvY2stY2hlY + -000823d0: 3274 7a64 5730 740a 0909 0909 4d6a 7776 2tzdW0t.....Mjwv + -000823e0: 6132 5635 5067 6f4a 5047 6c75 6447 566e a2V5PgoJPGludGVn + -000823f0: 5a58 492b 4e7a 5933 4d54 4d31 4f54 6b32 ZXI+NzY3MTM1OTk2 + -00082400: 5043 3970 626e 526c 0a09 0909 095a 3256 PC9pbnRl.....Z2V + -00082410: 7950 676f 4a50 4774 6c65 5435 6965 5852 yPgoJPGtleT5ieXR + -00082420: 6c63 7a77 7661 3256 3550 676f 4a50 476c lczwva2V5PgoJPGl + -00082430: 7564 4756 6e5a 5849 2b0a 0909 0909 4e44 udGVnZXI+.....ND + -00082440: 677a 4d7a 4934 5043 3970 626e 526c 5a32 gzMzI4PC9pbnRlZ2 + -00082450: 5679 5067 6f4a 5047 746c 6554 356b 5958 VyPgoJPGtleT5kYX + -00082460: 526c 5043 3972 5a58 6b2b 0a09 0909 0943 RlPC9rZXk+.....C + -00082470: 676b 3861 5735 305a 5764 6c63 6a34 744e gk8aW50ZWdlcj4tN + -00082480: 5445 354f 546b 344e 7a4d 3450 4339 7062 TE5OTk4NzM4PC9pb + -00082490: 6e52 6c5a 3256 7950 676f 4a0a 0909 0909 nRlZ2VyPgoJ..... + -000824a0: 5047 746c 6554 3577 5958 4a30 4c57 3531 PGtleT5wYXJ0LW51 + -000824b0: 6254 7776 6132 5635 5067 6f4a 5047 6c75 bTwva2V5PgoJPGlu + -000824c0: 6447 566e 5a58 492b 4d6a 7776 0a09 0909 dGVnZXI+Mjwv.... + -000824d0: 0961 5735 305a 5764 6c63 6a34 4b43 5478 .aW50ZWdlcj4KCTx + -000824e0: 725a 586b 2b64 6d56 7963 326c 7662 6a77 rZXk+dmVyc2lvbjw + -000824f0: 7661 3256 3550 676f 4a50 476c 750a 0909 va2V5PgoJPGlu... + -00082500: 0909 6447 566e 5a58 492b 4e6a 7776 6157 ..dGVnZXI+NjwvaW + -00082510: 3530 5a57 646c 636a 344b 4354 7872 5a58 50ZWdlcj4KCTxrZX + -00082520: 6b2b 646d 3973 6457 316c 4c58 4e70 0a09 k+dm9sdW1lLXNp.. + -00082530: 0909 095a 3235 6864 4856 795a 5477 7661 ...Z25hdHVyZTwva + -00082540: 3256 3550 676f 4a50 476c 7564 4756 6e5a 2V5PgoJPGludGVnZ + -00082550: 5849 2b4d 5467 304e 7a55 384c 326c 750a XI+MTg0NzU8L2lu. + -00082560: 0909 0909 6447 566e 5a58 492b 436a 7776 ....dGVnZXI+Cjwv + -00082570: 5a47 6c6a 6444 344b 5043 3977 6247 6c7a ZGljdD4KPC9wbGlz + -00082580: 6444 344b 0a09 0909 093c 2f64 6174 613e dD4K..... + -00082590: 0a09 0909 093c 6b65 793e 4944 3c2f 6b65 .....ID.....2 + -000825b0: 3c2f 7374 7269 6e67 3e0a 0909 0909 3c6b .....Name... + -000825d0: 0909 3c73 7472 696e 673e 3c2f 7374 7269 ........ + -000825f0: 093c 2f61 7272 6179 3e0a 0909 3c6b 6579 ....plst........ + -00082620: 0909 0909 3c6b 6579 3e41 7474 7269 6275 ....Attribu + -00082630: 7465 733c 2f6b 6579 3e0a 0909 0909 3c73 tes.....0x0050.....D + -00082660: 6174 613c 2f6b 6579 3e0a 0909 0909 3c64 ata..........AAAAAAA + -00082680: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000818a0: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + +000818b0: 4141 4141 4141 4341 4141 4141 6741 4141 AAAAAACAAAAAgAAA + +000818c0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000818d0: 4141 4141 4141 4b41 4141 410a 0909 0909 AAAAAAKAAAA..... + +000818e0: 4141 4149 4269 3441 4141 4141 4141 4141 AAAIBi4AAAAAAAAA + +000818f0: 4150 2f2f 2f2f 3841 4141 4141 4141 4141 AP////8AAAAAAAAA + +00081900: 4141 4141 4141 6f41 4141 4141 0a09 0909 AAAAAAoAAAAA.... + +00081910: 0941 4141 4141 4141 4141 4141 4143 4159 .AAAAAAAAAAAACAY + +00081920: 7541 4141 4141 4141 4141 4141 3d0a 0909 uAAAAAAAAAAA=... + +00081930: 0909 3c2f 6461 7461 3e0a 0909 0909 3c6b .......ID..... + +00081950: 3c73 7472 696e 673e 333c 2f73 7472 696e 3.....Name + +00081970: 3c2f 6b65 793e 0a09 0909 093c 7374 7269 ..... (Apple_Free + +00081990: 3a20 3429 3c2f 7374 7269 6e67 3e0a 0909 : 4)... + +000819a0: 093c 2f64 6963 743e 0a09 093c 2f61 7272 .......cSum< + +000819c0: 2f6b 6579 3e0a 0909 3c61 7272 6179 3e0a /key>.... + +000819d0: 0909 093c 6469 6374 3e0a 0909 0909 3c6b ........Attributes..... + +00081a00: 3078 3030 3030 3c2f 7374 7269 6e67 3e0a 0x0000. + +00081a10: 0909 0909 3c6b 6579 3e44 6174 613c 2f6b ....Data....... + +00081a30: 0909 0941 5141 4341 4141 4168 5932 3436 ...AQACAAAAhY246 + +00081a40: 413d 3d0a 0909 0909 3c2f 6461 7461 3e0a A==...... + +00081a50: 0909 0909 3c6b 6579 3e49 443c 2f6b 6579 ....ID.....0< + +00081a70: 2f73 7472 696e 673e 0a09 0909 093c 6b65 /string>.....Name.... + +00081a90: 093c 7374 7269 6e67 3e3c 2f73 7472 696e ........ + +00081ab0: 093c 6469 6374 3e0a 0909 0909 3c6b 6579 ......Attributes.....0x + +00081ae0: 3030 3030 3c2f 7374 7269 6e67 3e0a 0909 0000... + +00081af0: 0909 3c6b 6579 3e44 6174 613c 2f6b 6579 ..Data......... + +00081b10: 0941 5141 4341 4141 4141 4141 4141 413d .AQACAAAAAAAAAA= + +00081b20: 3d0a 0909 0909 3c2f 6461 7461 3e0a 0909 =........ + +00081b30: 0909 3c6b 6579 3e49 443c 2f6b 6579 3e0a ..ID. + +00081b40: 0909 0909 3c73 7472 696e 673e 313c 2f73 ....1..... + +00081b60: 4e61 6d65 3c2f 6b65 793e 0a09 0909 093c Name.....< + +00081b70: 7374 7269 6e67 3e3c 2f73 7472 696e 673e string> + +00081b80: 0a09 0909 3c2f 6469 6374 3e0a 0909 093c ........< + +00081b90: 6469 6374 3e0a 0909 0909 3c6b 6579 3e41 dict>.....A + +00081ba0: 7474 7269 6275 7465 733c 2f6b 6579 3e0a ttributes. + +00081bb0: 0909 0909 3c73 7472 696e 673e 3078 3030 ....0x00 + +00081bc0: 3030 3c2f 7374 7269 6e67 3e0a 0909 0909 00..... + +00081bd0: 3c6b 6579 3e44 6174 613c 2f6b 6579 3e0a Data. + +00081be0: 0909 0909 3c64 6174 613e 0a09 0909 0941 .........A + +00081bf0: 5141 4341 4141 4174 5378 6e73 413d 3d0a QACAAAAtSxnsA==. + +00081c00: 0909 0909 3c2f 6461 7461 3e0a 0909 0909 ......... + +00081c10: 3c6b 6579 3e49 443c 2f6b 6579 3e0a 0909 ID... + +00081c20: 0909 3c73 7472 696e 673e 323c 2f73 7472 ..2.....Na + +00081c40: 6d65 3c2f 6b65 793e 0a09 0909 093c 7374 me....... + +00081c60: 0909 3c2f 6469 6374 3e0a 0909 3c2f 6172 ........nsiz + +00081c80: 3c2f 6b65 793e 0a09 093c 6172 7261 793e ... + +00081c90: 0a09 0909 3c64 6963 743e 0a09 0909 093c .........< + +00081ca0: 6b65 793e 4174 7472 6962 7574 6573 3c2f key>Attributes.....0x0000 + +00081cd0: 0a09 0909 093c 6b65 793e 4461 7461 3c2f .....Data...... + +00081cf0: 0909 0909 5044 3934 6257 7767 646d 5679 ....PD94bWwgdmVy + +00081d00: 6332 6c76 626a 3069 4d53 3477 4969 426c c2lvbj0iMS4wIiBl + +00081d10: 626d 4e76 5a47 6c75 5a7a 3069 5656 5247 bmNvZGluZz0iVVRG + +00081d20: 0a09 0909 094c 5467 6950 7a34 4b50 4346 .....LTgiPz4KPCF + +00081d30: 4554 304e 5557 5642 4649 4842 7361 584e ET0NUWVBFIHBsaXN + +00081d40: 3049 4642 5651 6b78 4a51 7941 694c 5338 0IFBVQkxJQyAiLS8 + +00081d50: 760a 0909 0909 5158 4277 6247 5576 4c30 v.....QXBwbGUvL0 + +00081d60: 5255 5243 4251 5445 6c54 5643 4178 4c6a RURCBQTElTVCAxLj + +00081d70: 4176 4c30 564f 4969 4169 6148 5230 6344 AvL0VOIiAiaHR0cD + +00081d80: 6f76 0a09 0909 094c 3364 3364 7935 6863 ov.....L3d3dy5hc + +00081d90: 4842 735a 5335 6a62 3230 7652 4652 4563 HBsZS5jb20vRFREc + +00081da0: 7939 5163 6d39 775a 584a 3065 5578 7063 y9Qcm9wZXJ0eUxpc + +00081db0: 3351 740a 0909 0909 4d53 3477 4c6d 5230 3Qt.....MS4wLmR0 + +00081dc0: 5a43 492b 436a 7877 6247 6c7a 6443 4232 ZCI+CjxwbGlzdCB2 + +00081dd0: 5a58 4a7a 6157 3975 5053 4978 4c6a 4169 ZXJzaW9uPSIxLjAi + +00081de0: 5067 6f38 0a09 0909 095a 476c 6a64 4434 Pgo8.....ZGljdD4 + +00081df0: 4b43 5478 725a 586b 2b59 6d78 7659 3273 KCTxrZXk+YmxvY2s + +00081e00: 7459 3268 6c59 3274 7a64 5730 744d 6a77 tY2hlY2tzdW0tMjw + +00081e10: 7661 3256 350a 0909 0909 5067 6f4a 5047 va2V5.....PgoJPG + +00081e20: 6c75 6447 566e 5a58 492b 4c54 4d35 4d44 ludGVnZXI+LTM5MD + +00081e30: 5531 4f44 4d7a 4d54 7776 6157 3530 5a57 U1ODMzMTwvaW50ZW + +00081e40: 646c 636a 344b 0a09 0909 0943 5478 725a dlcj4K.....CTxrZ + +00081e50: 586b 2b63 4746 7964 4331 7564 5730 384c Xk+cGFydC1udW08L + +00081e60: 3274 6c65 5434 4b43 5478 7062 6e52 6c5a 2tleT4KCTxpbnRlZ + +00081e70: 3256 7950 6a41 380a 0909 0909 4c32 6c75 2VyPjA8.....L2lu + +00081e80: 6447 566e 5a58 492b 4367 6b38 6132 5635 dGVnZXI+Cgk8a2V5 + +00081e90: 506e 5a6c 636e 4e70 6232 3438 4c32 746c PnZlcnNpb248L2tl + +00081ea0: 6554 344b 4354 7870 0a09 0909 0962 6e52 eT4KCTxp.....bnR + +00081eb0: 6c5a 3256 7950 6a59 384c 326c 7564 4756 lZ2VyPjY8L2ludGV + +00081ec0: 6e5a 5849 2b43 6a77 765a 476c 6a64 4434 nZXI+CjwvZGljdD4 + +00081ed0: 4b50 4339 7762 476c 7a0a 0909 0909 6444 KPC9wbGlz.....dD + +00081ee0: 344b 0a09 0909 093c 2f64 6174 613e 0a09 4K....... + +00081ef0: 0909 093c 6b65 793e 4944 3c2f 6b65 793e ...ID + +00081f00: 0a09 0909 093c 7374 7269 6e67 3e30 3c2f .....0.....Name..... + +00081f30: 3c73 7472 696e 673e 3c2f 7374 7269 6e67 ........ + +00081f50: 3c64 6963 743e 0a09 0909 093c 6b65 793e ..... + +00081f60: 4174 7472 6962 7574 6573 3c2f 6b65 793e Attributes + +00081f70: 0a09 0909 093c 7374 7269 6e67 3e30 7830 .....0x0 + +00081f80: 3030 303c 2f73 7472 696e 673e 0a09 0909 000.... + +00081f90: 093c 6b65 793e 4461 7461 3c2f 6b65 793e .Data + +00081fa0: 0a09 0909 093c 6461 7461 3e0a 0909 0909 .......... + +00081fb0: 5044 3934 6257 7767 646d 5679 6332 6c76 PD94bWwgdmVyc2lv + +00081fc0: 626a 3069 4d53 3477 4969 426c 626d 4e76 bj0iMS4wIiBlbmNv + +00081fd0: 5a47 6c75 5a7a 3069 5656 5247 0a09 0909 ZGluZz0iVVRG.... + +00081fe0: 094c 5467 6950 7a34 4b50 4346 4554 304e .LTgiPz4KPCFET0N + +00081ff0: 5557 5642 4649 4842 7361 584e 3049 4642 UWVBFIHBsaXN0IFB + +00082000: 5651 6b78 4a51 7941 694c 5338 760a 0909 VQkxJQyAiLS8v... + +00082010: 0909 5158 4277 6247 5576 4c30 5255 5243 ..QXBwbGUvL0RURC + +00082020: 4251 5445 6c54 5643 4178 4c6a 4176 4c30 BQTElTVCAxLjAvL0 + +00082030: 564f 4969 4169 6148 5230 6344 6f76 0a09 VOIiAiaHR0cDov.. + +00082040: 0909 094c 3364 3364 7935 6863 4842 735a ...L3d3dy5hcHBsZ + +00082050: 5335 6a62 3230 7652 4652 4563 7939 5163 S5jb20vRFREcy9Qc + +00082060: 6d39 775a 584a 3065 5578 7063 3351 740a m9wZXJ0eUxpc3Qt. + +00082070: 0909 0909 4d53 3477 4c6d 5230 5a43 492b ....MS4wLmR0ZCI+ + +00082080: 436a 7877 6247 6c7a 6443 4232 5a58 4a7a CjxwbGlzdCB2ZXJz + +00082090: 6157 3975 5053 4978 4c6a 4169 5067 6f38 aW9uPSIxLjAiPgo8 + +000820a0: 0a09 0909 095a 476c 6a64 4434 4b43 5478 .....ZGljdD4KCTx + +000820b0: 725a 586b 2b59 6d78 7659 3273 7459 3268 rZXk+YmxvY2stY2h + +000820c0: 6c59 3274 7a64 5730 744d 6a77 7661 3256 lY2tzdW0tMjwva2V + +000820d0: 350a 0909 0909 5067 6f4a 5047 6c75 6447 5.....PgoJPGludG + +000820e0: 566e 5a58 492b 4d44 7776 6157 3530 5a57 VnZXI+MDwvaW50ZW + +000820f0: 646c 636a 344b 4354 7872 5a58 6b2b 6347 dlcj4KCTxrZXk+cG + +00082100: 4679 0a09 0909 0964 4331 7564 5730 384c Fy.....dC1udW08L + +00082110: 3274 6c65 5434 4b43 5478 7062 6e52 6c5a 2tleT4KCTxpbnRlZ + +00082120: 3256 7950 6a45 384c 326c 7564 4756 6e5a 2VyPjE8L2ludGVnZ + +00082130: 5849 2b0a 0909 0909 4367 6b38 6132 5635 XI+.....Cgk8a2V5 + +00082140: 506e 5a6c 636e 4e70 6232 3438 4c32 746c PnZlcnNpb248L2tl + +00082150: 6554 344b 4354 7870 626e 526c 5a32 5679 eT4KCTxpbnRlZ2Vy + +00082160: 506a 5938 0a09 0909 094c 326c 7564 4756 PjY8.....L2ludGV + +00082170: 6e5a 5849 2b43 6a77 765a 476c 6a64 4434 nZXI+CjwvZGljdD4 + +00082180: 4b50 4339 7762 476c 7a64 4434 4b0a 0909 KPC9wbGlzdD4K... + +00082190: 0909 3c2f 6461 7461 3e0a 0909 0909 3c6b .......ID..... + +000821b0: 3c73 7472 696e 673e 313c 2f73 7472 696e 1.....Name + +000821d0: 3c2f 6b65 793e 0a09 0909 093c 7374 7269 ......... + +000821f0: 3c2f 6469 6374 3e0a 0909 093c 6469 6374 .........Attri + +00082210: 6275 7465 733c 2f6b 6579 3e0a 0909 0909 butes..... + +00082220: 3c73 7472 696e 673e 3078 3030 3030 3c2f 0x0000.....Data..... + +00082250: 3c64 6174 613e 0a09 0909 0950 4439 3462 .....PD94b + +00082260: 5777 6764 6d56 7963 326c 7662 6a30 694d WwgdmVyc2lvbj0iM + +00082270: 5334 7749 6942 6c62 6d4e 765a 476c 755a S4wIiBlbmNvZGluZ + +00082280: 7a30 6956 5652 470a 0909 0909 4c54 6769 z0iVVRG.....LTgi + +00082290: 507a 344b 5043 4645 5430 4e55 5756 4246 Pz4KPCFET0NUWVBF + +000822a0: 4948 4273 6158 4e30 4946 4256 516b 784a IHBsaXN0IFBVQkxJ + +000822b0: 5179 4169 4c53 3876 0a09 0909 0951 5842 QyAiLS8v.....QXB + +000822c0: 7762 4755 764c 3052 5552 4342 5154 456c wbGUvL0RURCBQTEl + +000822d0: 5456 4341 784c 6a41 764c 3056 4f49 6941 TVCAxLjAvL0VOIiA + +000822e0: 6961 4852 3063 446f 760a 0909 0909 4c33 iaHR0cDov.....L3 + +000822f0: 6433 6479 3568 6348 4273 5a53 356a 6232 d3dy5hcHBsZS5jb2 + +00082300: 3076 5246 5245 6379 3951 636d 3977 5a58 0vRFREcy9Qcm9wZX + +00082310: 4a30 6555 7870 6333 5174 0a09 0909 094d J0eUxpc3Qt.....M + +00082320: 5334 774c 6d52 305a 4349 2b43 6a78 7762 S4wLmR0ZCI+Cjxwb + +00082330: 476c 7a64 4342 325a 584a 7a61 5739 7550 GlzdCB2ZXJzaW9uP + +00082340: 5349 784c 6a41 6950 676f 380a 0909 0909 SIxLjAiPgo8..... + +00082350: 5a47 6c6a 6444 344b 4354 7872 5a58 6b2b ZGljdD4KCTxrZXk+ + +00082360: 5530 6842 4c54 4574 5a47 6c6e 5a58 4e30 U0hBLTEtZGlnZXN0 + +00082370: 5043 3972 5a58 6b2b 4367 6b38 0a09 0909 PC9rZXk+Cgk8.... + +00082380: 095a 4746 3059 5434 4b43 5731 7562 5546 .ZGF0YT4KCW1ubUF + +00082390: 5253 544a 4b51 304a 6d55 3274 514f 544a RSTJKQ0JmU2tQOTJ + +000823a0: 5465 4670 7565 6a64 494f 5535 540a 0909 TeFpuejdIOU5T... + +000823b0: 0909 5554 304b 4354 7776 5a47 4630 5954 ..UT0KCTwvZGF0YT + +000823c0: 344b 4354 7872 5a58 6b2b 596d 7876 5932 4KCTxrZXk+YmxvY2 + +000823d0: 7374 5932 686c 5932 747a 6457 3074 0a09 stY2hlY2tzdW0t.. + +000823e0: 0909 094d 6a77 7661 3256 3550 676f 4a50 ...Mjwva2V5PgoJP + +000823f0: 476c 7564 4756 6e5a 5849 2b4c 5445 7a4d GludGVnZXI+LTEzM + +00082400: 7a55 304d 5455 324d 6a63 384c 326c 750a zU0MTU2Mjc8L2lu. + +00082410: 0909 0909 6447 566e 5a58 492b 4367 6b38 ....dGVnZXI+Cgk8 + +00082420: 6132 5635 506d 4a35 6447 567a 5043 3972 a2V5PmJ5dGVzPC9r + +00082430: 5a58 6b2b 4367 6b38 6157 3530 5a57 646c ZXk+Cgk8aW50ZWdl + +00082440: 0a09 0909 0963 6a34 304f 444d 7a4d 6a67 .....cj40ODMzMjg + +00082450: 384c 326c 7564 4756 6e5a 5849 2b43 676b 8L2ludGVnZXI+Cgk + +00082460: 3861 3256 3550 6d52 6864 4755 384c 3274 8a2V5PmRhdGU8L2t + +00082470: 6c0a 0909 0909 6554 344b 4354 7870 626e l.....eT4KCTxpbn + +00082480: 526c 5a32 5679 5069 3031 4d54 6b35 4f54 RlZ2VyPi01MTk5OT + +00082490: 6733 4e44 4d38 4c32 6c75 6447 566e 5a58 g3NDM8L2ludGVnZX + +000824a0: 492b 0a09 0909 0943 676b 3861 3256 3550 I+.....Cgk8a2V5P + +000824b0: 6e42 6863 6e51 7462 6e56 7450 4339 725a nBhcnQtbnVtPC9rZ + +000824c0: 586b 2b43 676b 3861 5735 305a 5764 6c63 Xk+Cgk8aW50ZWdlc + +000824d0: 6a34 790a 0909 0909 5043 3970 626e 526c j4y.....PC9pbnRl + +000824e0: 5a32 5679 5067 6f4a 5047 746c 6554 3532 Z2VyPgoJPGtleT52 + +000824f0: 5a58 4a7a 6157 3975 5043 3972 5a58 6b2b ZXJzaW9uPC9rZXk+ + +00082500: 4367 6b38 0a09 0909 0961 5735 305a 5764 Cgk8.....aW50ZWd + +00082510: 6c63 6a34 3250 4339 7062 6e52 6c5a 3256 lcj42PC9pbnRlZ2V + +00082520: 7950 676f 4a50 4774 6c65 5435 3262 3278 yPgoJPGtleT52b2x + +00082530: 3162 5755 740a 0909 0909 6332 6c6e 626d 1bWUt.....c2lnbm + +00082540: 4630 6458 4a6c 5043 3972 5a58 6b2b 4367 F0dXJlPC9rZXk+Cg + +00082550: 6b38 6157 3530 5a57 646c 636a 3478 4f44 k8aW50ZWdlcj4xOD + +00082560: 5133 4e54 7776 0a09 0909 0961 5735 305a Q3NTwv.....aW50Z + +00082570: 5764 6c63 6a34 4b50 4339 6b61 574e 3050 Wdlcj4KPC9kaWN0P + +00082580: 676f 384c 3342 7361 584e 3050 676f 3d0a go8L3BsaXN0Pgo=. + +00082590: 0909 0909 3c2f 6461 7461 3e0a 0909 0909 ......... + +000825a0: 3c6b 6579 3e49 443c 2f6b 6579 3e0a 0909 ID... + +000825b0: 0909 3c73 7472 696e 673e 323c 2f73 7472 ..2.....Na + +000825d0: 6d65 3c2f 6b65 793e 0a09 0909 093c 7374 me....... + +000825f0: 0909 3c2f 6469 6374 3e0a 0909 3c2f 6172 ........plst + +00082610: 3c2f 6b65 793e 0a09 093c 6172 7261 793e ... + +00082620: 0a09 0909 3c64 6963 743e 0a09 0909 093c .........< + +00082630: 6b65 793e 4174 7472 6962 7574 6573 3c2f key>Attributes.....0x0050 + +00082660: 0a09 0909 093c 6b65 793e 4461 7461 3c2f .....Data...... + +00082680: 0909 0909 4141 4141 4141 4141 4141 4141 ....AAAAAAAAAAAA + 00082690: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000826a0: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + -000826b0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000826a0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000826b0: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + 000826c0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000826d0: 4141 4141 4141 0a09 0909 0941 4141 4141 AAAAAA.....AAAAA + -000826e0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000826d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000826e0: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + 000826f0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082700: 4141 4141 4141 410a 0909 0909 4141 4141 AAAAAAA.....AAAA + -00082710: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082700: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082710: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + 00082720: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082730: 4141 4141 4141 4141 0a09 0909 0941 4141 AAAAAAAA.....AAA + -00082740: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082730: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082740: 4141 410a 0909 0909 4141 4141 4141 4141 AAA.....AAAAAAAA + 00082750: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082760: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + -00082770: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082760: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082770: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + 00082780: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082790: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + -000827a0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082790: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000827a0: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + 000827b0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000827c0: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + -000827d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000827c0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000827d0: 4141 4141 4141 0a09 0909 0941 4141 4141 AAAAAA.....AAAAA + 000827e0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000827f0: 4141 4141 4141 4141 4141 4141 0a09 0909 AAAAAAAAAAAA.... + -00082800: 0941 4141 4141 4141 4141 4141 4141 4141 .AAAAAAAAAAAAAAA + +000827f0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082800: 4141 4141 4141 410a 0909 0909 4141 4141 AAAAAAA.....AAAA + 00082810: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082820: 4141 4141 4141 4141 4141 4141 410a 0909 AAAAAAAAAAAAA... + -00082830: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + +00082820: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082830: 4141 4141 4141 4141 0a09 0909 0941 4141 AAAAAAAA.....AAA + 00082840: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082850: 4141 4141 4141 4141 4141 4141 4141 0a09 AAAAAAAAAAAAAA.. + -00082860: 0909 0941 4141 4141 4141 4141 4141 4141 ...AAAAAAAAAAAAA + +00082850: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082860: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + 00082870: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082880: 4141 4141 4141 4141 4141 4141 4141 410a AAAAAAAAAAAAAAA. + -00082890: 0909 0909 4141 4141 4141 4141 4141 4141 ....AAAAAAAAAAAA + +00082880: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082890: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + 000828a0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 000828b0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000828c0: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + +000828c0: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + 000828d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 000828e0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000828f0: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + -00082900: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000828f0: 4141 4141 4141 4141 4141 4141 0a09 0909 AAAAAAAAAAAA.... + +00082900: 0941 4141 4141 4141 4141 4141 4141 4141 .AAAAAAAAAAAAAAA + 00082910: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082920: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + -00082930: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082920: 4141 4141 4141 4141 4141 4141 410a 0909 AAAAAAAAAAAAA... + +00082930: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + 00082940: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082950: 4141 410a 0909 0909 4141 4141 4141 4141 AAA.....AAAAAAAA + -00082960: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082970: 4141 4141 4141 4541 4151 4141 4141 4141 AAAAAAEAAQAAAAAA + -00082980: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + -00082990: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082950: 4141 4141 4141 4141 4141 4141 4141 0a09 AAAAAAAAAAAAAA.. + +00082960: 0909 0941 4141 4141 4141 4141 4141 4141 ...AAAAAAAAAAAAA + +00082970: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082980: 4145 4141 5141 4141 4141 4141 4141 410a AEAAQAAAAAAAAAA. + +00082990: 0909 0909 4141 4141 4141 4141 4141 4141 ....AAAAAAAAAAAA + 000829a0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000829b0: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + -000829c0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000829b0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000829c0: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + 000829d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -000829e0: 4141 4141 4141 0a09 0909 0941 4141 4141 AAAAAA.....AAAAA + -000829f0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000829e0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +000829f0: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + 00082a00: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082a10: 4141 4141 4141 410a 0909 0909 4141 4141 AAAAAAA.....AAAA + -00082a20: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082a10: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082a20: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + 00082a30: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082a40: 4141 4141 4141 4141 0a09 0909 0941 4141 AAAAAAAA.....AAA + -00082a50: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082a40: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082a50: 4141 410a 0909 0909 4141 4141 4141 4141 AAA.....AAAAAAAA + 00082a60: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082a70: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + -00082a80: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082a70: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082a80: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + 00082a90: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082aa0: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + -00082ab0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082aa0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082ab0: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + 00082ac0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082ad0: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + -00082ae0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082ad0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082ae0: 4141 4141 4141 0a09 0909 0941 4141 4141 AAAAAA.....AAAAA + 00082af0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082b00: 4141 4141 4141 4141 4141 4141 0a09 0909 AAAAAAAAAAAA.... + -00082b10: 0941 4141 4141 4141 4141 4141 4141 4141 .AAAAAAAAAAAAAAA + +00082b00: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082b10: 4141 4141 4141 410a 0909 0909 4141 4141 AAAAAAA.....AAAA + 00082b20: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082b30: 4141 4141 4141 4141 4141 4141 410a 0909 AAAAAAAAAAAAA... + -00082b40: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + +00082b30: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082b40: 4141 4141 4141 4141 0a09 0909 0941 4141 AAAAAAAA.....AAA + 00082b50: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082b60: 4141 4141 4141 4141 4141 4141 4141 0a09 AAAAAAAAAAAAAA.. + -00082b70: 0909 0941 4141 4141 4141 4141 4141 4141 ...AAAAAAAAAAAAA + +00082b60: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082b70: 4141 4141 4141 4141 410a 0909 0909 4141 AAAAAAAAA.....AA + 00082b80: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082b90: 4141 4141 4141 4141 4141 4141 4141 410a AAAAAAAAAAAAAAA. + -00082ba0: 0909 0909 4141 4141 4141 4141 4141 4141 ....AAAAAAAAAAAA + +00082b90: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082ba0: 4141 4141 4141 4141 4141 0a09 0909 0941 AAAAAAAAAA.....A + 00082bb0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082bc0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082bd0: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + +00082bd0: 4141 4141 4141 4141 4141 410a 0909 0909 AAAAAAAAAAA..... + 00082be0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + 00082bf0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082c00: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + -00082c10: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082c00: 4141 4141 4141 4141 4141 4141 0a09 0909 AAAAAAAAAAAA.... + +00082c10: 0941 4141 4141 4141 4141 4141 4141 4141 .AAAAAAAAAAAAAAA + 00082c20: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082c30: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + -00082c40: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082c30: 4141 4141 4141 4141 4141 4141 410a 0909 AAAAAAAAAAAAA... + +00082c40: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + 00082c50: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082c60: 4141 410a 0909 0909 4141 4141 4141 4141 AAA.....AAAAAAAA + -00082c70: 4141 4141 0a09 0909 093c 2f64 6174 613e AAAA..... + -00082c80: 0a09 0909 093c 6b65 793e 4944 3c2f 6b65 .....ID.....0 + -00082ca0: 3c2f 7374 7269 6e67 3e0a 0909 0909 3c6b .....Name... + -00082cc0: 0909 3c73 7472 696e 673e 0a09 0909 0963 .......c + -00082cd0: 6e52 3059 5145 4141 4142 5833 4442 4d48 nR0YQEAAABX3DBMH + -00082ce0: 7745 4141 4141 4141 4141 4141 4141 4141 wEAAAAAAAAAAAAAA + -00082cf0: 4141 4141 4141 4141 4141 660a 0909 0909 AAAAAAAAAAf..... + -00082d00: 4151 4141 4141 4141 4141 4141 4341 4141 AQAAAAAAAAAACAAA + -00082d10: 4141 4141 734b 4f6f 6432 3166 4c4b 6349 AAAAsKOod21fLKcI + -00082d20: 4251 4141 4141 4141 4143 3054 0a09 0909 BQAAAAAAAC0T.... + -00082d30: 0964 6259 4159 4563 4141 4141 4141 413d .dbYAYEcAAAAAAA= + -00082d40: 3d0a 0909 0909 3c2f 7374 7269 6e67 3e0a =...... + -00082d50: 0909 093c 2f64 6963 743e 0a09 093c 2f61 .........siz + -00082d70: 653c 2f6b 6579 3e0a 0909 3c61 7272 6179 e............ + -00082d90: 3c6b 6579 3e41 7474 7269 6275 7465 733c Attributes< + -00082da0: 2f6b 6579 3e0a 0909 0909 3c73 7472 696e /key>.....0x0000.....Data< + -00082dd0: 2f6b 6579 3e0a 0909 0909 3c64 6174 613e /key>..... + -00082de0: 0a09 0909 0942 5141 4241 4141 4141 4141 .....BQABAAAAAAA + -00082df0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082c60: 4141 4141 4141 4141 4141 4141 4141 0a09 AAAAAAAAAAAAAA.. + +00082c70: 0909 0941 4141 4141 4141 4141 4141 410a ...AAAAAAAAAAAA. + +00082c80: 0909 0909 3c2f 6461 7461 3e0a 0909 0909 ......... + +00082c90: 3c6b 6579 3e49 443c 2f6b 6579 3e0a 0909 ID... + +00082ca0: 0909 3c73 7472 696e 673e 303c 2f73 7472 ..0.....Na + +00082cc0: 6d65 3c2f 6b65 793e 0a09 0909 093c 7374 me..........cnR0YQ + +00082ce0: 4541 4141 4258 3344 424d 4877 4541 4141 EAAABX3DBMHwEAAA + +00082cf0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082d00: 4141 4141 4166 0a09 0909 0941 5141 4141 AAAAAf.....AQAAA + +00082d10: 4141 4141 4141 4143 4141 4141 4141 4154 AAAAAAACAAAAAAAT + +00082d20: 4256 3632 7257 6e72 6c38 5042 5141 4141 BV62rWnrl8PBQAAA + +00082d30: 4141 4141 4c52 760a 0909 0909 7843 4941 AAAALRv.....xCIA + +00082d40: 5945 6341 4141 4141 4141 3d3d 0a09 0909 YEcAAAAAAA==.... + +00082d50: 093c 2f73 7472 696e 673e 0a09 0909 3c2f ........ + +00082d70: 0a09 093c 6b65 793e 7369 7a65 3c2f 6b65 ...size....... + +00082d90: 3c64 6963 743e 0a09 0909 093c 6b65 793e ..... + +00082da0: 4174 7472 6962 7574 6573 3c2f 6b65 793e Attributes + +00082db0: 0a09 0909 093c 7374 7269 6e67 3e30 7830 .....0x0 + +00082dc0: 3030 303c 2f73 7472 696e 673e 0a09 0909 000.... + +00082dd0: 093c 6b65 793e 4461 7461 3c2f 6b65 793e .Data + +00082de0: 0a09 0909 093c 6461 7461 3e0a 0909 0909 .......... + +00082df0: 4251 4142 4141 4141 4141 4141 4141 4141 BQABAAAAAAAAAAAA + 00082e00: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082e10: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + -00082e20: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082e10: 4141 4141 4141 4141 4141 4141 0a09 0909 AAAAAAAAAAAA.... + +00082e20: 0941 4141 4141 4141 4141 4141 4141 4141 .AAAAAAAAAAAAAAA + 00082e30: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082e40: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + -00082e50: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082e40: 4141 4141 4141 4141 4141 4141 410a 0909 AAAAAAAAAAAAA... + +00082e50: 0909 4141 4141 4141 4141 4141 4141 4141 ..AAAAAAAAAAAAAA + 00082e60: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082e70: 4141 410a 0909 0909 4141 4141 4141 4141 AAA.....AAAAAAAA + -00082e80: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082e70: 4141 4141 4141 4141 4141 4141 4141 0a09 AAAAAAAAAAAAAA.. + +00082e80: 0909 0941 4141 4141 4141 4141 4141 4141 ...AAAAAAAAAAAAA + 00082e90: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082ea0: 4141 4141 0a09 0909 0941 4141 4141 4141 AAAA.....AAAAAAA + -00082eb0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082ea0: 4141 4141 4141 4141 4141 4141 4141 410a AAAAAAAAAAAAAAA. + +00082eb0: 0909 0909 4141 4141 4141 4141 4141 4141 ....AAAAAAAAAAAA + 00082ec0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082ed0: 4141 4141 410a 0909 0909 4141 4141 4141 AAAAA.....AAAAAA + -00082ee0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082ed0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082ee0: 0a09 0909 0941 4141 4141 4141 4141 4141 .....AAAAAAAAAAA + 00082ef0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082f00: 4141 4141 4141 0a09 0909 0941 4141 4141 AAAAAA.....AAAAA + -00082f10: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082f00: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082f10: 410a 0909 0909 4141 4141 4141 4141 4141 A.....AAAAAAAAAA + 00082f20: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082f30: 4141 4141 4141 410a 0909 0909 4141 4141 AAAAAAA.....AAAA + -00082f40: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082f30: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + +00082f40: 4141 0a09 0909 0941 4141 4141 4141 4141 AA.....AAAAAAAAA + 00082f50: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA + -00082f60: 4141 4141 4141 4141 0a09 0909 0941 4141 AAAAAAAA.....AAA + -00082f70: 4141 4141 4141 4141 4141 4f35 7941 6545 AAAAAAAAAAO5yAeE + -00082f80: 4141 4141 414b 3067 4241 413d 3d0a 0909 AAAAAK0gBAA==... + -00082f90: 0909 3c2f 6461 7461 3e0a 0909 0909 3c6b .......ID..... + -00082fb0: 3c73 7472 696e 673e 323c 2f73 7472 696e 2.....Name + -00082fd0: 3c2f 6b65 793e 0a09 0909 093c 7374 7269 ......... + -00082ff0: 3c2f 6469 6374 3e0a 0909 3c2f 6172 7261 ........kol + -00083020: 7900 0000 0400 0002 0000 0000 0100 0000 y............... + -00083030: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + -00083040: 0000 0806 2700 0000 0000 0000 0000 0000 ....'........... + -00083050: 0000 0000 0000 0000 0100 0000 0173 4833 .............sH3 + -00083060: 6669 983c 64c6 237b 3267 458b 6b00 0000 fi......ID + +00082fb0: 3c2f 6b65 793e 0a09 0909 093c 7374 7269 .....2... + +00082fd0: 0909 3c6b 6579 3e4e 616d 653c 2f6b 6579 ..Name..............< + +00083010: 2f64 6963 743e 0a3c 2f64 6963 743e 0a3c /dict>..< + +00083020: 2f70 6c69 7374 3e0a 6b6f 6c79 0000 0004 /plist>.koly.... + +00083030: 0000 0200 0000 0001 0000 0000 0000 0000 ................ + +00083040: 0000 0000 0000 0000 0000 0000 0008 062e ................ + +00083050: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + +00083060: 0000 0001 0000 0001 7348 3366 6998 3c64 ........sH3fi./dev/null + +Note -- same same: + + $ xxd testa_reverted.dmg > testa_reverted.txt + $ diff --unified=3 testa.txt testa_reverted.txt + $ shasum testa.dmg testa_reverted.dmg + af9ba2c30013be3dc7f49739fae73a9328808ca3 testa.dmg + af9ba2c30013be3dc7f49739fae73a9328808ca3 testa_reverted.dmg diff --git a/test/run_spanning_reference.t b/test/run_spanning_reference.t new file mode 100644 index 00000000..3f069449 --- /dev/null +++ b/test/run_spanning_reference.t @@ -0,0 +1,131 @@ +This takes about 10 seconds, which is too slow for constant inputs. +Run this like +``` +time venv/bin/cram test/run_spanning_reference.t --keep-tmpdir +``` +and then copy the reference directory like +``` +cp -R /var/folders/3s/_m9prk6n7g5cx6hhs_33q2f80000gn/T/cramtests-0uzbp0wu/reference test/run_spanning_reference +``` +to update test inputs. + +Make sure we have a fresh build: + + $ export BUILDDIR=$TESTDIR/../build + $ mkdir -p $BUILDDIR + $ cd $BUILDDIR + $ cmake .. &>/dev/null + $ make &> /dev/null + $ cd $CRAMTMP + +Prepare content: + + $ mkdir stagedir + $ echo "content-x" >> stagedir/x + $ for i in `cat $TESTDIR/offset-files.txt`; do xattr -w "$i" "$i" "stagedir/x"; done + +Create reference DMGs using macOS: + + $ mkdir reference + $ xattr -w 'attr-key' '__MOZILLA__attr-value-and-a-very-long-string-with-some-padding-to-push-this-across-tworuns-EOL-a' stagedir/x + $ hdiutil create -megabytes 5 -fs HFS+ -volname myDisk -srcfolder stagedir reference/hdiutila.hfs + created: */reference/hdiutila.hfs.dmg (glob) + $ xattr -w 'attr-key' '__MOZILLA__attr-value-and-a-very-long-string-with-some-padding-to-push-this-across-tworuns-EOL-p' stagedir/x + $ hdiutil create -megabytes 5 -fs HFS+ -volname myDisk -srcfolder stagedir reference/hdiutilp.hfs + created: */reference/hdiutilp.hfs.dmg (glob) + +Extract reference HFSs: + + $ $BUILDDIR/dmg/dmg extract reference/hdiutila.hfs.dmg reference/hdiutila.hfs > /dev/null + $ $BUILDDIR/dmg/dmg extract reference/hdiutilp.hfs.dmg reference/hdiutilp.hfs > /dev/null + +Ensure that the reference images only differ in the expected ways. (Some sections have minor differences between them - but always in the same places.) + + $ xxd reference/hdiutila.hfs | grep -v 000bc140: | grep -v 000bc150: > hdiutila.txt + $ xxd reference/hdiutilp.hfs | grep -v 000bc140: | grep -v 000bc150: > hdiutilp.txt + $ diff --unified=3 hdiutila.txt hdiutilp.txt + --- hdiutila.txt* (glob) + +++ hdiutilp.txt* (glob) + @@ -63,12 +63,12 @@ + 000003e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + 000003f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + 00000400: 482b 0004 8000 0100 3130 2e30 0000 0000 H+......10.0.... + -00000410:* (glob) + +00000410:* (glob) + 00000420: 0000 0001 0000 0002 0000 1000 0000 04f6 ................ + 00000430: 0000 0480 0000 011e 0001 0000 0001 0000 ................ + 00000440: 0000 0013 0000 0002 0000 0000 0000 0001 ................ + 00000450: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + -00000460:* (glob) + +00000460:* (glob) + 00000470: 0000 0000 0000 1000 0000 1000 0000 0001 ................ + 00000480: 0000 0001 0000 0001 0000 0000 0000 0000 ................ + 00000490: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + @@ -16385,7 +16385,7 @@ + 00040000: 7269 6e67 2d77 6974 682d 736f 6d65 2d70 ring-with-some-p + 00040010: 6164 6469 6e67 2d74 6f2d 7075 7368 2d74 adding-to-push-t + 00040020: 6869 732d 6163 726f 7373 2d74 776f 7275 his-across-tworu + -00040030:* (glob) + +00040030:* (glob) + 00040040: 0000 0000 0008 0061 0075 0069 0066 0070 .......a.u.i.f.p + 00040050: 0071 006f 0043 0000 0010 0000 0000 0000 .q.o.C.......... + 00040060: 0000 0000 0008 6175 6966 7071 6f43 001c ......auifpqoC.. + @@ -48129,7 +48129,7 @@ + 000bc000: 0000 0000 0000 0000 ff01 0008 0000 0012 ................ + 000bc010: 0000 0001 0006 006d 0079 0044 0069 0073 .......m.y.D.i.s + 000bc020: 006b 0001 0000 0000 0003 0000 0002 e101 .k.............. + -000bc030:* (glob) + +000bc030:* (glob) + 000bc040: 0000 0000 01f6 0000 0014 0000 41ed 0000 ............A... + 000bc050: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + 000bc060: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + @@ -48140,15 +48140,15 @@ + 000bc0b0: 0069 0076 0061 0074 0065 0020 0044 0069 .i.v.a.t.e. .D.i + 000bc0c0: 0072 0065 0063 0074 006f 0072 0079 0020 .r.e.c.t.o.r.y. + 000bc0d0: 0044 0061 0074 0061 000d 0001 0010 0000 .D.a.t.a........ + -000bc0e0:* (glob) + -000bc0f0:* (glob) + +000bc0e0:* (glob) + +000bc0f0:* (glob) + 000bc100: 0000 0002 436d 0000 0001 0000 0000 0000 ....Cm.......... + 000bc110: 0000 5000 4000 4000 0000 0000 0000 0000 ..P.@.@......... + 000bc120: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + 000bc130: 0000 0008 0000 0002 0001 0078 0002 0086 ...........x.... + 000bc160: 0000 0014 0000 81a4 0000 0001 0000 0000 ................ + 000bc170: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + -000bc180:* (glob) + +000bc180:* (glob) + 000bc190: 0000 0000 0000 0000 0000 000a 0000 0000 ................ + 000bc1a0: 0000 0001 0000 011e 0000 0001 0000 0000 ................ + 000bc1b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + @@ -48163,8 +48163,8 @@ + 000bc240: 0000 0000 0048 0046 0053 002b 0020 0050 .....H.F.S.+. .P + 000bc250: 0072 0069 0076 0061 0074 0065 0020 0044 .r.i.v.a.t.e. .D + 000bc260: 0061 0074 0061 0001 0010 0000 0000 0000 .a.t.a.......... + -000bc270:* (glob) + -000bc280:* (glob) + +000bc270:* (glob) + +000bc280:* (glob) + 000bc290: 4000 0000 0001 0000 0000 0000 0000 5000 @.............P. + 000bc2a0: 4000 4000 0000 0000 0000 0000 0000 0000 @.@............. + 000bc2b0: 0000 0000 0000 0000 0000 0000 0000 0006 ................ + @@ -325053,12 +325053,12 @@ + 004f5be0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + 004f5bf0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + 004f5c00: 482b 0004 8000 0000 3130 2e30 0000 0000 H+......10.0.... + -004f5c10:* (glob) + +004f5c10:* (glob) + 004f5c20: 0000 0001 0000 0002 0000 1000 0000 04f6 ................ + 004f5c30: 0000 0480 0000 011e 0001 0000 0001 0000 ................ + 004f5c40: 0000 0013 0000 0002 0000 0000 0000 0001 ................ + 004f5c50: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + -004f5c60:* (glob) + +004f5c60:* (glob) + 004f5c70: 0000 0000 0000 1000 0000 1000 0000 0001 ................ + 004f5c80: 0000 0001 0000 0001 0000 0000 0000 0000 ................ + 004f5c90: 0000 0000 0000 0000 0000 0000 0000 0000 ................ + [1] + +Remove the unneeded dmg: + + $ rm reference/hdiutilp.hfs.dmg diff --git a/test/run_spanning_reference/hdiutila.hfs b/test/run_spanning_reference/hdiutila.hfs new file mode 100644 index 00000000..71d4f839 Binary files /dev/null and b/test/run_spanning_reference/hdiutila.hfs differ diff --git a/test/run_spanning_reference/hdiutila.hfs.dmg b/test/run_spanning_reference/hdiutila.hfs.dmg new file mode 100644 index 00000000..df867ccb Binary files /dev/null and b/test/run_spanning_reference/hdiutila.hfs.dmg differ diff --git a/test/run_spanning_reference/hdiutilp.hfs b/test/run_spanning_reference/hdiutilp.hfs new file mode 100644 index 00000000..7dcba61f Binary files /dev/null and b/test/run_spanning_reference/hdiutilp.hfs differ