Download the verified synthesis replay archive

The ZIP is split into parts because the full archive exceeds the static-file size limit. Download the parts together with the archive manifest, then use the button below to verify each part and the reconstructed ZIP before saving it.

Download the archive manifest

Join the files with Python

Alternatively, save the manifest and every listed part in one folder, then run this Python standard-library script there. It writes the ZIP only after checking all part hashes, offsets, and the complete archive hash.

import hashlib
import json
from pathlib import Path

manifest = json.loads(Path("archive-manifest.json").read_text(encoding="utf-8"))
whole = hashlib.sha256()
partial = Path(manifest["archive_filename"] + ".partial")
target = Path(manifest["archive_filename"])
if partial.exists() or target.exists():
    raise FileExistsError("Choose an empty folder or move the existing output first.")
with partial.open("xb") as output:
    for part in manifest["parts"]:
        data = Path(part["file"]).read_bytes()
        assert len(data) == part["length"], part["file"]
        assert hashlib.sha256(data).hexdigest() == part["sha256"], part["file"]
        assert output.tell() == part["offset"], part["file"]
        output.write(data)
        whole.update(data)
assert partial.stat().st_size == manifest["archive_size"]
assert whole.hexdigest() == manifest["archive_sha256"]
partial.rename(target)