segment.writeMetadata();
raf.pwrite(offsetGeneralProgress, generalProgress, 0, generalProgress.length);
keyListener.innerWriteMainBloomFilter(offsetMainBloomFilter);
keyListener.initialWriteSegmentBloomFilters(offsetSegmentBloomFilters);
BucketTools.copyTo(metadataTemp, raf, offsetOriginalMetadata, -1);
metadataTemp.free();
raf.pwrite(offsetOriginalDetails, encodedURI, 0, encodedURI.length);
raf.pwrite(offsetBasicSettings, encodedBasicSettings, 0, encodedBasicSettings.length);
// This bit tricky because version is included in the checksum.
// When the RAF is encrypted, we use HMAC's and this is important.