upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlog <log@invalid>2026-10-17 16:21:51 +0000
committerlog <log@invalid>2026-10-17 16:21:51 +0000
commit8f3393255bf23489f0c83d09770be76b13a0a7f2 (patch)
tree710d77b521a98f2730cfa0be72135b35e733b8fb
parent14a83b0e2e638e146dbfbb3df0e52ddbb88b1988 (diff)
size 116435
-rw-r--r--reveal/v5-000001/r33044212.held.json1
-rw-r--r--reveal/v5-000001/r33073012.held.json1
-rw-r--r--reveal/v5-000021/check.py319
-rw-r--r--reveal/v5-000021/manifest.txt46
-rw-r--r--reveal/v5-000021/manifest.txt.otsbin0 -> 724 bytes
-rw-r--r--reveal/v5-000021/r33764212.ctbin0 -> 113979 bytes
-rw-r--r--reveal/v5-000021/r33764212.nostr.json1
-rw-r--r--reveal/v5-000021/r33764212.tlock11
-rw-r--r--reveal/v5-000021/r33793012.ctbin0 -> 179793 bytes
-rw-r--r--reveal/v5-000021/r33793012.nostr.json1
-rw-r--r--reveal/v5-000021/r33793012.tlock11
-rw-r--r--reveal/v5-000021/r33850612.ctbin0 -> 6384 bytes
-rw-r--r--reveal/v5-000021/r33850612.nostr.json1
-rw-r--r--reveal/v5-000021/r33850612.tlock11
-rw-r--r--reveal/v5-000021/r33879412.ctbin0 -> 48547 bytes
-rw-r--r--reveal/v5-000021/r33879412.nostr.json1
-rw-r--r--reveal/v5-000021/r33879412.tlock11
-rw-r--r--reveal/v5-000021/r33908212.ctbin0 -> 6698 bytes
-rw-r--r--reveal/v5-000021/r33908212.nostr.json1
-rw-r--r--reveal/v5-000021/r33908212.tlock11
-rw-r--r--reveal/v5-000021/r33937012.ctbin0 -> 483 bytes
-rw-r--r--reveal/v5-000021/r33937012.nostr.json1
-rw-r--r--reveal/v5-000021/r33937012.tlock11
-rw-r--r--reveal/v5-000021/r33965812.ctbin0 -> 4511 bytes
-rw-r--r--reveal/v5-000021/r33965812.nostr.json1
-rw-r--r--reveal/v5-000021/r33965812.tlock11
-rw-r--r--reveal/v5-000021/r34023412.ctbin0 -> 8910 bytes
-rw-r--r--reveal/v5-000021/r34023412.nostr.json1
-rw-r--r--reveal/v5-000021/r34023412.tlock11
-rw-r--r--reveal/v5-000021/r34599412.ctbin0 -> 1027 bytes
-rw-r--r--reveal/v5-000021/r34599412.nostr.json1
-rw-r--r--reveal/v5-000021/r34599412.tlock11
-rw-r--r--reveal/v5-000021/r34714612.ctbin0 -> 1027 bytes
-rw-r--r--reveal/v5-000021/r34714612.nostr.json1
-rw-r--r--reveal/v5-000021/r34714612.tlock11
-rw-r--r--reveal/v5-000021/r34916212.ctbin0 -> 114795 bytes
-rw-r--r--reveal/v5-000021/r34916212.nostr.json1
-rw-r--r--reveal/v5-000021/r34916212.tlock11
-rw-r--r--reveal/v5-000021/r34945012.ctbin0 -> 179123 bytes
-rw-r--r--reveal/v5-000021/r34945012.nostr.json1
-rw-r--r--reveal/v5-000021/r34945012.tlock11
-rw-r--r--reveal/v5-000021/r35002612.ctbin0 -> 6223 bytes
-rw-r--r--reveal/v5-000021/r35002612.nostr.json1
-rw-r--r--reveal/v5-000021/r35002612.tlock11
-rw-r--r--reveal/v5-000021/r35031412.ctbin0 -> 48541 bytes
-rw-r--r--reveal/v5-000021/r35031412.nostr.json1
-rw-r--r--reveal/v5-000021/r35031412.tlock11
-rw-r--r--reveal/v5-000021/r35060212.ctbin0 -> 6703 bytes
-rw-r--r--reveal/v5-000021/r35060212.nostr.json1
-rw-r--r--reveal/v5-000021/r35060212.tlock11
-rw-r--r--reveal/v5-000021/r35089012.ctbin0 -> 835 bytes
-rw-r--r--reveal/v5-000021/r35089012.nostr.json1
-rw-r--r--reveal/v5-000021/r35089012.tlock11
-rw-r--r--reveal/v5-000021/r35117812.ctbin0 -> 4559 bytes
-rw-r--r--reveal/v5-000021/r35117812.nostr.json1
-rw-r--r--reveal/v5-000021/r35117812.tlock11
-rw-r--r--reveal/v5-000021/r35175412.ctbin0 -> 9200 bytes
-rw-r--r--reveal/v5-000021/r35175412.nostr.json1
-rw-r--r--reveal/v5-000021/r35175412.tlock11
-rw-r--r--reveal/v5-000021/r35261812.ctbin0 -> 661 bytes
-rw-r--r--reveal/v5-000021/r35261812.nostr.json1
-rw-r--r--reveal/v5-000021/r35261812.tlock11
-rw-r--r--reveal/v5-000021/r35405812.ctbin0 -> 1380 bytes
-rw-r--r--reveal/v5-000021/r35405812.nostr.json1
-rw-r--r--reveal/v5-000021/r35405812.tlock11
-rw-r--r--reveal/v5-000021/r35722612.ctbin0 -> 673 bytes
-rw-r--r--reveal/v5-000021/r35722612.nostr.json1
-rw-r--r--reveal/v5-000021/r35722612.tlock11
-rw-r--r--reveal/v5-000021/r35751412.ctbin0 -> 1779 bytes
-rw-r--r--reveal/v5-000021/r35751412.nostr.json1
-rw-r--r--reveal/v5-000021/r35751412.tlock11
-rw-r--r--reveal/v5-000021/r35809012.ctbin0 -> 1202 bytes
-rw-r--r--reveal/v5-000021/r35809012.nostr.json1
-rw-r--r--reveal/v5-000021/r35809012.tlock11
-rw-r--r--reveal/v5-000021/r35866612.ctbin0 -> 1022 bytes
-rw-r--r--reveal/v5-000021/r35866612.nostr.json1
-rw-r--r--reveal/v5-000021/r35866612.tlock11
-rw-r--r--reveal/v5-000021/r35924212.ctbin0 -> 25963 bytes
-rw-r--r--reveal/v5-000021/r35924212.nostr.json1
-rw-r--r--reveal/v5-000021/r35924212.tlock11
-rw-r--r--reveal/v5-000021/r36068212.ctbin0 -> 1798 bytes
-rw-r--r--reveal/v5-000021/r36068212.nostr.json1
-rw-r--r--reveal/v5-000021/r36068212.tlock11
-rw-r--r--reveal/v5-000021/r36097012.ctbin0 -> 1203 bytes
-rw-r--r--reveal/v5-000021/r36097012.nostr.json1
-rw-r--r--reveal/v5-000021/r36097012.tlock11
-rw-r--r--reveal/v5-000021/r36183412.ctbin0 -> 1583 bytes
-rw-r--r--reveal/v5-000021/r36183412.nostr.json1
-rw-r--r--reveal/v5-000021/r36183412.tlock11
-rw-r--r--reveal/v5-000021/r36269812.ctbin0 -> 1020 bytes
-rw-r--r--reveal/v5-000021/r36269812.nostr.json1
-rw-r--r--reveal/v5-000021/r36269812.tlock11
-rw-r--r--reveal/v5-000021/r36413812.ctbin0 -> 674 bytes
-rw-r--r--reveal/v5-000021/r36413812.nostr.json1
-rw-r--r--reveal/v5-000021/r36413812.tlock11
-rw-r--r--reveal/v5-000021/r36557812.ctbin0 -> 1392 bytes
-rw-r--r--reveal/v5-000021/r36557812.nostr.json1
-rw-r--r--reveal/v5-000021/r36557812.tlock11
-rw-r--r--reveal/v5-000021/r36874612.ct4
-rw-r--r--reveal/v5-000021/r36874612.nostr.json1
-rw-r--r--reveal/v5-000021/r36874612.tlock11
-rw-r--r--reveal/v5-000021/r36903412.ctbin0 -> 1032 bytes
-rw-r--r--reveal/v5-000021/r36903412.nostr.json1
-rw-r--r--reveal/v5-000021/r36903412.tlock11
-rw-r--r--reveal/v5-000021/r36961012.ctbin0 -> 1374 bytes
-rw-r--r--reveal/v5-000021/r36961012.nostr.json1
-rw-r--r--reveal/v5-000021/r36961012.tlock11
-rw-r--r--reveal/v5-000021/r37018612.ctbin0 -> 3645 bytes
-rw-r--r--reveal/v5-000021/r37018612.nostr.json1
-rw-r--r--reveal/v5-000021/r37018612.tlock11
-rw-r--r--reveal/v5-000021/r37076212.ctbin0 -> 27128 bytes
-rw-r--r--reveal/v5-000021/r37076212.nostr.json1
-rw-r--r--reveal/v5-000021/r37076212.tlock11
-rw-r--r--reveal/v5-000021/r37220212.ctbin0 -> 1032 bytes
-rw-r--r--reveal/v5-000021/r37220212.nostr.json1
-rw-r--r--reveal/v5-000021/r37220212.tlock11
-rw-r--r--reveal/v5-000021/r37249012.ctbin0 -> 1360 bytes
-rw-r--r--reveal/v5-000021/r37249012.nostr.json1
-rw-r--r--reveal/v5-000021/r37249012.tlock11
-rw-r--r--reveal/v5-000021/r37421812.ctbin0 -> 1028 bytes
-rw-r--r--reveal/v5-000021/r37421812.nostr.json1
-rw-r--r--reveal/v5-000021/r37421812.tlock11
-rw-r--r--reveal/v5-000021/r38170612.ctbin0 -> 3658 bytes
-rw-r--r--reveal/v5-000021/r38170612.nostr.json1
-rw-r--r--reveal/v5-000021/r38170612.tlock11
-rw-r--r--reveal/v5-000021/seal.json43
126 files changed, 894 insertions, 0 deletions
diff --git a/reveal/v5-000001/r33044212.held.json b/reveal/v5-000001/r33044212.held.json
new file mode 100644
index 0000000..7966c68
--- /dev/null
+++ b/reveal/v5-000001/r33044212.held.json
@@ -0,0 +1 @@
{"format":"echo-reveal-held/1","group":"99c16ff5fade9838c722a6c8309b151227bd6f7666e47f15d4702a78cfac3701","held":15,"held_at":"2026-10-17T16:15:49.346448Z","reveal_at":"2026-10-14T00:00:00.000000Z","round":33044212,"seal":"ab1c64ee208cedf8ce14e1e4a1568de02e03578c9af283db73392ad2e61c90e8","seal_seq":1,"why":"no decision by Echo yet"}
diff --git a/reveal/v5-000001/r33073012.held.json b/reveal/v5-000001/r33073012.held.json
new file mode 100644
index 0000000..0dd9cb0
--- /dev/null
+++ b/reveal/v5-000001/r33073012.held.json
@@ -0,0 +1 @@
{"format":"echo-reveal-held/1","group":"da24bb511465e1181c1fddfa5db258764070e5f512e95a400f2e0c6d17f5980b","held":15,"held_at":"2026-10-17T16:15:49.347484Z","reveal_at":"2026-10-15T00:00:00.000000Z","round":33073012,"seal":"ab1c64ee208cedf8ce14e1e4a1568de02e03578c9af283db73392ad2e61c90e8","seal_seq":1,"why":"no decision by Echo yet"}
diff --git a/reveal/v5-000021/check.py b/reveal/v5-000021/check.py
new file mode 100644
index 0000000..7f86b8d
--- /dev/null
+++ b/reveal/v5-000021/check.py
@@ -0,0 +1,319 @@
1#!/usr/bin/env python3
2"""
3Check Echo's self-revealing ledger seals (`sha256-live-v5`) without trusting Echo.
4
5 python3 check.py SEAL_DIR [SEAL_DIR ...] [--tle PATH] [--offline]
6
7Needs Python 3.11+, the `cryptography` package (ChaCha20-Poly1305) and drand's `tle` binary
8(`go install github.com/drand/tlock/cmd/tle@v1.2.0`). It imports nothing of Echo's: a checker that needs the thing it
9checks is not a checker, which is why it is copied, whole, into every seal directory.
10
11Each SEAL_DIR is one seal: `manifest.txt` (the exact text the seal's digest is the sha256 of), `seal.json`, and per
12reveal group `r<ROUND>.tlock` (the group's key, time-locked to that drand round) and `r<ROUND>.ct` (the group,
13encrypted under that key), and, once the group has been revealed, `r<ROUND>.held.json` (how many of its withheld
14lines Echo publishes no salt for, and why) and any number of `r<ROUND>.salts.<N>.json`: each the salts of withheld
15lines Echo decided to open and had not erased, each with its line. `manifest.txt.ots`, when present, is an
16OpenTimestamps proof over the manifest: `ots verify manifest.txt.ots` checks it against Bitcoin.
17
18What it checks, from the files alone and the beacon:
19 1. the manifest hashes to the seal's digest, and each seal names the one before it (when several are given);
20 2. each group's ciphertext and locked key hash to what the manifest commits, and the key is locked to the
21 manifest's round of the manifest's chain;
22 3. for every group whose round the beacon has signed: the round's signature as each relay serves it, the key
23 unlocked with it, the group decrypted, its bytes hashed to the committed digest, its lines and withheld lines
24 counted against the committed counts, its lines in id order, and every line's reveal day recomputed from its
25 own settling instant under the seal's named rule (`utc-day-after-close`: the first 00:00 UTC after
26 `settles_at`, else after the deadline);
27 4. for every opened group with releases: each names this seal, round and group and its own number; each released
28 salt and line hash to the withheld line's committed hash; no line is settled twice; and a hold, where there is
29 one, names the group and counts no more lines than are withheld;
30 5. once every group of every seal from the first is open and every withheld line released: the union of their v4
31 lines, sorted by id, rehashes to the v4 digest the last seal follows, so no sealed forecast was left out of a
32 reveal. Where a withheld line has no released salt (held, erased, or not yet released) that digest cannot be
33 rebuilt, and this says so and why: what is checked then is only that every forecast the v4 seal covers is in a
34 group, counted. A withheld line is never called verified.
35
36A group whose round is not yet signed, or whose withheld lines have no release yet, is reported as pending or held,
37not as a failure. Exit 0 when everything checkable passed, 1 when anything did not match.
38"""
39from __future__ import annotations
40
41import argparse
42import base64
43import hashlib
44import json
45import re
46import subprocess
47import sys
48import urllib.request
49import zlib
50from datetime import datetime, timedelta, timezone
51from pathlib import Path
52
53
54def sha(b: bytes) -> str:
55 return hashlib.sha256(b).hexdigest()
56
57
58def parse_manifest(text: str) -> dict:
59 lines = text.split("\n")
60 if lines[0] != "sha256-live-v5":
61 raise ValueError(f"not a v5 manifest: {lines[0]!r}")
62 m = {"groups": []}
63 for ln in lines[1:]:
64 word, _, rest = ln.partition(" ")
65 if word == "prev":
66 m["prev"] = None if rest == "-" else rest
67 elif word == "follows":
68 seq, digest, n = rest.split(" ")
69 m["follows"] = {"seq": int(seq), "digest": digest, "n": int(n)}
70 elif word == "covers":
71 m["covers"] = rest.split(" ")
72 elif word == "variant":
73 m["variant"] = json.loads(rest)
74 elif word == "counts":
75 m["n"], m["n_withheld"], m["n_groups"] = map(int, rest.split(" "))
76 elif word == "group":
77 r, at, n, w, digest, ct, key, late = rest.split(" ")
78 m["groups"].append({"round": int(r), "reveal_at": at, "n": int(n), "n_withheld": int(w),
79 "digest": digest, "ct": ct, "key": key, "late": late == "1"})
80 else:
81 raise ValueError(f"unknown manifest line {ln!r}")
82 return m
83
84
85def stanza(locked: str) -> tuple[int, str] | None:
86 body = "".join(ln for ln in locked.strip().splitlines() if not ln.startswith("-----"))
87 m = re.search(rb"-> tlock (\d+) ([0-9a-f]{64})", base64.b64decode(body))
88 return (int(m.group(1)), m.group(2).decode()) if m else None
89
90
91def round_at(beacon: dict, at: datetime) -> int:
92 t = at.timestamp()
93 whole = int(t) + (t != int(t))
94 if whole <= beacon["genesis_time"]:
95 return 1
96 return -(-(whole - beacon["genesis_time"]) // beacon["period"]) + 1
97
98
99def reveal_day(closes: datetime) -> datetime:
100 d = closes.astimezone(timezone.utc).date() + timedelta(days=1)
101 return datetime(d.year, d.month, d.day, tzinfo=timezone.utc)
102
103
104def parse_line(ln: str) -> dict:
105 """One line: `id|issued_at|deadline|forecaster|p|settlement|anchor<TAB>open:<v4>` or `...<TAB>withheld:<hex>`."""
106 numeric, tab, text = ln.partition("\t")
107 if not tab:
108 raise ValueError("a line without its text layer")
109 fid, issued, deadline, forecaster, p, rest = numeric.split("|", 5)
110 dec = json.JSONDecoder()
111 settle, end = dec.raw_decode(rest)
112 if rest[end] != "|":
113 raise ValueError("settlement not followed by the anchor")
114 anchor, end2 = dec.raw_decode(rest, end + 1)
115 if end2 != len(rest):
116 raise ValueError("trailing bytes after the anchor")
117 out = {"id": int(fid), "issued_at": issued, "deadline": deadline, "forecaster": forecaster, "p": float(p),
118 "settlement": settle, "anchor": anchor}
119 if text.startswith("open:"):
120 out["v4"] = text[5:]
121 if not out["v4"].startswith(f"{fid}|"):
122 raise ValueError("the text layer is another forecast's line")
123 elif re.fullmatch(r"withheld:[0-9a-f]{64}", text):
124 out["withheld"] = text[9:]
125 else:
126 raise ValueError(f"unknown text layer {text[:20]!r}")
127 return out
128
129
130def beacon_round(beacon: dict, rnd: int) -> dict:
131 """What each relay serves for the round: its signature, or why there is none."""
132 out = {}
133 for relay in beacon["relays"]:
134 url = f"{relay.rstrip('/')}/{beacon['chain_hash']}/public/{rnd}"
135 try:
136 with urllib.request.urlopen(url, timeout=20) as r: # noqa: S310 — the seal's own relays
137 out[relay] = json.loads(r.read()).get("signature")
138 except Exception as exc: # noqa: BLE001 — report, go on
139 out[relay] = f"unavailable ({type(exc).__name__})"
140 return out
141
142
143def unlock(tle: str, beacon: dict, locked: str) -> bytes | None:
144 """The key, or None while the round is unsigned. Each relay is tried in turn."""
145 errors = []
146 for relay in beacon["relays"]:
147 r = subprocess.run([tle, "-d", "-n", relay.rstrip("/") + "/", "-c", beacon["chain_hash"]],
148 input=locked.encode(), capture_output=True, timeout=120, check=False)
149 if r.returncode == 0:
150 return r.stdout
151 if b"too early" in r.stderr:
152 return None
153 errors.append(f"{relay}: {r.stderr.decode(errors='replace').strip()[-160:]}")
154 raise RuntimeError("; ".join(errors))
155
156
157def release(d: Path, seal_digest: str, g: dict, lines: list[dict], say) -> tuple[dict[int, str], int, str | None]:
158 """An opened group's releases and hold, checked against the group: (id -> the v4 line each released salt opens,
159 how many withheld lines were opened and found erased, and the hold's reason where Echo published one)."""
160 r = g["round"]
161 shut = {x["id"]: x["withheld"] for x in lines if "withheld" in x}
162 out, erased, seen, bad = {}, set(), set(), []
163 files = sorted(d.glob(f"r{r}.salts.*.json"), key=lambda p: int(p.name.split(".")[-2]))
164 for k, path in enumerate(files):
165 rel = json.loads(path.read_text())
166 say(rel.get("format") == "echo-reveal-salts/1" and rel.get("seal") == seal_digest
167 and rel.get("round") == r and rel.get("group") == g["digest"] and rel.get("n") == k
168 and path.name == f"r{r}.salts.{k}.json",
169 f"round {r}: release {k} names this seal, round and group, and follows the one before")
170 for x in rel.get("released", []):
171 i, line = x["id"], x["line"]
172 opens = (i in shut and i not in seen and line.startswith(f"{i}|")
173 and sha(bytes.fromhex(x["salt"]) + line.encode()) == shut[i])
174 if opens:
175 out[i] = line
176 else:
177 bad.append(i)
178 seen.add(i)
179 for i in rel.get("erased", []):
180 if i not in shut or i in seen:
181 bad.append(i)
182 erased.add(i)
183 seen.add(i)
184 if files:
185 say(not bad, f"round {r}: {len(out)} released lines open their committed hashes, {len(erased)} opened lines "
186 f"found erased, none settled twice" + (f" ({len(bad)} do not, e.g. {bad[:3]})" if bad else ""))
187 why = None
188 hold = d / f"r{r}.held.json"
189 if hold.exists():
190 h = json.loads(hold.read_text())
191 say(h.get("format") == "echo-reveal-held/1" and h.get("seal") == seal_digest and h.get("round") == r
192 and h.get("group") == g["digest"] and 0 <= h.get("held", -1) <= len(shut),
193 f"round {r}: the hold names this seal, round and group, and counts at most its withheld lines")
194 why = str(h.get("why") or "no reason given")
195 left = len(shut) - len(out) - len(erased)
196 if left:
197 print(f" .... round {r}: {left} withheld lines have no released salt: counted, not rehashed"
198 + (f" (Echo publishes none: {why})" if why else " (no release or hold published yet)"))
199 return out, len(erased), why
200
201
202def check(dirs: list[Path], tle: str = "tle", offline: bool = False) -> int:
203 from cryptography.hazmat.primitives.ciphers.aead import ChaCha20Poly1305
204
205 failed, pending, withheld, held, erased, union = 0, 0, 0, 0, 0, {}
206 reasons: set[str] = set()
207 first_prev = "unset"
208
209 def say(ok: bool, what: str) -> None:
210 nonlocal failed
211 failed += not ok
212 print(f" {'PASS' if ok else 'FAIL'} {what}")
213
214 prev_digest = None
215 seals = []
216 for d in dirs:
217 text = (d / "manifest.txt").read_bytes()
218 row = json.loads((d / "seal.json").read_text())
219 seals.append((d, text, row, parse_manifest(text.decode())))
220 seals.sort(key=lambda s: s[2]["seq"])
221 last = None
222 for i, (d, text, row, m) in enumerate(seals):
223 print(f"v5 seal {row['seq']}: {m['n']} forecasts in {m['n_groups']} reveal groups, {m['n_withheld']} withheld, "
224 f"follows v4 seal {m['follows']['seq']}")
225 say(sha(text) == row["digest"], f"sha256(manifest.txt) is the seal's digest {row['digest'][:16]}…")
226 say(len(m["groups"]) == m["n_groups"] and sum(g["n"] for g in m["groups"]) == m["n"]
227 and sum(g["n_withheld"] for g in m["groups"]) == m["n_withheld"], "the manifest's counts add up")
228 if i == 0:
229 first_prev = m["prev"]
230 else:
231 say(m["prev"] == prev_digest, "it names the seal before it")
232 prev_digest, last = row["digest"], m
233 b = m["variant"]["beacon"]
234 for g in m["groups"]:
235 r = g["round"]
236 ct, locked = (d / f"r{r}.ct").read_bytes(), (d / f"r{r}.tlock").read_text()
237 say(sha(ct) == g["ct"] and sha(locked.encode()) == g["key"],
238 f"round {r}: the ciphertext and the locked key are the committed ones")
239 say(stanza(locked) == (r, b["chain_hash"]), f"round {r}: the key is locked to that round of that chain")
240 say(round_at(b, datetime.fromisoformat(g["reveal_at"])) == r, f"round {r} is signed at {g['reveal_at']}")
241 if not offline:
242 sigs = beacon_round(b, r)
243 good = {s for s in sigs.values() if s and not s.startswith("unavailable")}
244 print(f" .... round {r} signature from {len(sigs)} relays: "
245 + ("not yet signed" if not good else f"{len(good)} distinct: {min(good)[:24]}…"))
246 if len(good) > 1:
247 say(False, f"round {r}: relays disagree on its signature")
248 key = unlock(tle, b, locked)
249 if key is None:
250 pending += 1
251 print(f" .... round {r} ({g['reveal_at']}) not yet signed: {g['n']} forecasts stay locked")
252 continue
253 try:
254 plain = zlib.decompress(ChaCha20Poly1305(key).decrypt(b"\x00" * 12, ct, None))
255 except Exception as exc: # noqa: BLE001 — a finding, not a crash
256 say(False, f"round {r}: the ciphertext does not open under its key ({type(exc).__name__})")
257 continue
258 say(sha(plain) == g["digest"], f"round {r}: the opened group hashes to its committed digest")
259 lines = [parse_line(ln) for ln in plain.decode().split("\n")]
260 ids = [x["id"] for x in lines]
261 say(len(lines) == g["n"] and sum("withheld" in x for x in lines) == g["n_withheld"],
262 f"round {r}: {len(lines)} lines, {g['n_withheld']} withheld, as committed")
263 say(ids == sorted(set(ids)), f"round {r}: lines in id order, none twice")
264 due = datetime.fromisoformat(g["reveal_at"])
265 if m["variant"].get("reveal") == "utc-day-after-close":
266 wrong = [x["id"] for x in lines if reveal_day(datetime.fromisoformat(
267 (x["settlement"] or {}).get("settles_at") or x["deadline"])) != due]
268 say(not wrong, f"round {r}: every line belongs to this reveal day"
269 + (f" ({len(wrong)} do not, e.g. {wrong[:3]})" if wrong else ""))
270 else:
271 print(f" .... round {r}: reveal rule {m['variant'].get('reveal')!r} is not one this checker "
272 "recomputes; which lines belong to the day is unchecked")
273 opened, gone, why = release(d, row["digest"], g, lines, say)
274 for x in lines:
275 if x["id"] in union:
276 say(False, f"forecast {x['id']} is in two groups")
277 union[x["id"]] = x.get("v4") or opened.get(x["id"])
278 shut = sum(1 for x in lines if "withheld" in x and x["id"] not in opened) - gone
279 erased += gone
280 if why is None:
281 withheld += shut
282 else:
283 held += shut
284 reasons.add(why)
285 if last is not None:
286 if first_prev is not None:
287 print(" .... completeness: the first seal given is not the chain's first; give every seal from it")
288 elif pending:
289 print(f" .... completeness: {pending} groups still locked; it is checkable once all have opened")
290 elif withheld or held or erased:
291 told = [f"{withheld} withheld lines not yet released"] if withheld else []
292 told += ([f"{held} withheld lines held, for which Echo publishes no salt ({'; '.join(sorted(reasons))})"]
293 if held else [])
294 told += [f"{erased} erased stay hashes"] if erased else []
295 print(f" .... completeness: {', '.join(told)}: those lines can be counted but not rehashed, so the v4 "
296 f"lines cannot all be rebuilt and the v4 digest is NOT checked; {len(union)} forecasts against "
297 f"the v4 seal's {last['follows']['n']}")
298 say(len(union) == last["follows"]["n"], "every forecast the v4 seal covers is in a group, counted")
299 else:
300 got = sha("\n".join(union[k] for k in sorted(union)).encode())
301 say(got == last["follows"]["digest"] and len(union) == last["follows"]["n"],
302 f"the union of {len(union)} lines rehashes to v4 seal {last['follows']['seq']}'s digest")
303 print("\nNOT VERIFIED" if failed else f"\nVERIFIED{f' ({pending} groups not yet revealed)' if pending else ''}")
304 return 1 if failed else 0
305
306
307def main(argv: list[str]) -> int:
308 ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
309 ap.add_argument("dirs", nargs="*", default=[str(Path(__file__).resolve().parent)],
310 help="seal directories, any order (default: the one this script sits in)")
311 ap.add_argument("--tle", default="tle", help="the tle binary that unlocks a key once its round is signed")
312 ap.add_argument("--offline", action="store_true",
313 help="do not fetch each round's signature from the relays for display; tle still asks them")
314 args = ap.parse_args(argv)
315 return check([Path(d) for d in args.dirs], tle=args.tle, offline=args.offline)
316
317
318if __name__ == "__main__":
319 raise SystemExit(main(sys.argv[1:]))
diff --git a/reveal/v5-000021/manifest.txt b/reveal/v5-000021/manifest.txt
new file mode 100644
index 0000000..ea0e811
--- /dev/null
+++ b/reveal/v5-000021/manifest.txt
@@ -0,0 +1,46 @@
1sha256-live-v5
2prev b4e16362e652726ac09a3e88fc4b276dbfc6dd59c57501ec2219f461d390180a
3follows 51 4939130d23fa2acb1d28554f7cf7cb142fecd8214d8b26f3deb1a6587cd60528 69980
4covers 2026-10-10T23:12:20.583026Z 2026-10-17T16:11:15.061357Z
5variant {"beacon":{"chain_hash":"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971","genesis_time":1692803367,"period":3,"relays":["https://api.drand.sh","https://api2.drand.sh","https://api3.drand.sh","https://drand.cloudflare.com"],"scheme":"bls-unchained-g1-rfc9380"},"cipher":"chacha20poly1305-zlib6-nonce0","gate":{"default":"withheld: a kept salt can be released later; an opened text can never be withdrawn","opened":"none","why":"no decision by Echo yet"},"line":"numeric<TAB>open:<v4 line> | numeric<TAB>withheld:sha256(salt||v4 line)","reveal":"utc-day-after-close","salts":"key ring: one content a seal, one part a line","tool":{"name":"tle","sha256":"69157d8c14a1d390d1b7744946288f83d4b10748471d5447f9abb77a5902c541","version":"tlock v1.2.0 -- github.com/drand/tlock"}}
6counts 14288 14288 40
7group 33764212 2026-11-08T00:00:00.000000Z 2040 2040 260756fa43939f135315c998fe1d6be3c14ed9b98a96e5ffd2a8a3940b34f538 03bf864b81b2262b4532ab53a95eab21eae3b58509d0eb6ef290c3ff28067d72 934b0d9a6da6747820302fcd4f9d19cdd5beb8b028000f6e562d7ad8cba0c6d3 0
8group 33793012 2026-11-09T00:00:00.000000Z 3162 3162 1490fac8a088a4ce9405a14e0850a1b169809e2dc9f9b0232fde56aa41a35542 fea2eb4a90bf40c8b3e07c95ccd616338d59c15e34a2f178f3f064936d32a410 315ef1f57470259f6eb40978887988349fd9d43a077d680eda3fa0d615b98c7f 0
9group 33850612 2026-11-11T00:00:00.000000Z 108 108 fd10e4c74e22a1721d169426f14ecdf7d65546a50463f6c3f9aef5307ea3b9e6 7d22dacef63bb99207f7f1dc9c1d90b64c340f4e4e9a1f2c3a278ef31b1fc569 70be885c5e325ad2fd8d7917ee9a2875a8a8f6888f9f61460493ab1a1b914876 0
10group 33879412 2026-11-12T00:00:00.000000Z 851 851 084620eaf5020c14fcb0b87a1eae2f3f03f28996e92cca13c65861b9d6f4e4b4 a10af1054fac4d7f8f7bfdd1323a3658a2361f5a8aa88c1577223ba26d572c59 28135ad2abb2e30c6675013bf89b35dea7864443eecbce156fee626f375fc429 0
11group 33908212 2026-11-13T00:00:00.000000Z 108 108 3fc4ffbea8a9cce98099de3d23e46833255bc7283bb4eaaf887b21f0805cd0ef 18306e862bda11cefb4a2638c85d7ceee1799dda96e16e56daf5ee3c0492ba52 567bb9f8fa736e015474faf71326e12ddbae60c3e050d0fbf1f6ddd06fbcb52e 0
12group 33937012 2026-11-14T00:00:00.000000Z 3 3 db0949a810d6a9013cbb272242e3fc67515181960791c9c4c7d0fd304aebb26b d3743ad005ec46ea10999a61a9ef487d740666daa051ceecd6a6ae62ae7c4ed3 f4ec2e791810cc487e63f3d256153696c59c4f9a9a07fed01fa4a73ce6f62795 0
13group 33965812 2026-11-15T00:00:00.000000Z 72 72 6acafee7e05e7d8cbf4f8dc35c0f97a14160c3c5bdb181d0e21cb2848ac24e30 d429c61e5a314a3287f49940e8c03af282371d4de6765459786376221234a210 1ea3bbe2bdbdc964661792bbb80982159c6e5edf30a3582fdb90b5322c708234 0
14group 34023412 2026-11-17T00:00:00.000000Z 150 150 6b53a9b9387ca0bc31d5897fc1c4b4133fee1fc1737bcf2d9a5cdcb22384805c 937fb40f2ba09bca8a943ac059691f887952b446503ba7209d6469456f499a34 a5b457e741b9c62021ec8bfa2c5201eeecedfaf6c3386f320ade9954f5b5620b 0
15group 34599412 2026-12-07T00:00:00.000000Z 12 12 7a1bd956fb148a0bb87d68c7482cce3f988b069a3fe5facbec1f3c60a6fad7d1 2f3ebbcc0386935aaa2e6f38743f69dbfc14297e6445b8e6df611c7112fce0e2 76789dd25e51e900ecfcd52139b6067f4f55ca5a558ef961c6d852b990b43280 0
16group 34714612 2026-12-11T00:00:00.000000Z 12 12 6d15ccc18a3c0910a89a6f6cd167867c7be156f2a20c2c8486aa6f5b2ebb9ab3 ba718b11758245d811733e07330d9ba437bc81ca2fea514a1fdfc37dbf670175 287a2129e778aa947211950826505204f76fb1ae7cb82719b6c810a375201260 0
17group 34916212 2026-12-18T00:00:00.000000Z 2049 2049 c094eb5bf3ecbd3713953c9f9ed298837c5158c55653f1bd8dcefae322dcefd0 0971181056e5b34c55fe830769313a7640e3a55204eff382b9b5fa9abd410e99 d6186e28c75df61038361d8346f5ba5ea0bdb0c38611823665d3333e33a10697 0
18group 34945012 2026-12-19T00:00:00.000000Z 3141 3141 5b40db3a51313fa4e3ca3c3a4a4d2633d800366b3de93e84fb7520405d432511 229e69ec5cb4c7a9956938b95e1611c846a4fdb2fca36459bb166e20dbb13175 2d250c5c70b4abf61f34ec7379e099e0b087bdb415da7df31818e781f835eb19 0
19group 35002612 2026-12-21T00:00:00.000000Z 105 105 8347d3da80486622dc1a521eb5f7bd42d069121999da17c7cfde4148fa39ee5a 751d585ea2508c587b90d6f60827b4c574d781d5cb401e4d9586ea7ed1224e55 7527be9974938bef433a7b560ce802d6f36a8d0de843ac0676df5a54260b2c8d 0
20group 35031412 2026-12-22T00:00:00.000000Z 845 845 2f17b05403cdc0e64c584063da24024f1f5233acb30714fcbadff365a5177e07 69d3e4744e1ddd2270a7d9938f666720e96c1713733ceaa5ed1eea5b2f9e7783 a174a5a7e1b50fcf75d8373fd33ea038b09d24dd9241220be03bbbb4b7e8a5e6 0
21group 35060212 2026-12-23T00:00:00.000000Z 108 108 b8bc583385354c608c925a22c7890e0d4b9d572ee398a65aa38acea7ef28a055 22279d17f43806474ecff7d03a59fdf1d7dc4f6e76837848934b782cf24d35ed cdd2e910036ea452ee38a9639aea4186d2beea55d400c831f3bea2227c54d7a9 0
22group 35089012 2026-12-24T00:00:00.000000Z 9 9 42cc76ba2d92a7adaaab88bd5ccf722c4d024695c4d9f4e4e5f1897a288fdde7 66e7707dabe89e88260c561a48bf6ee6472eff4019f3c38434587433467c80a1 9895d90eeacf5e39004cf3b8cd180688715418ef85ad633da6db0f777d0b781f 0
23group 35117812 2026-12-25T00:00:00.000000Z 72 72 5bd1b281fb22a7fe00eeb61e360e4545238e2a3ad877da453358ec2d85a0958d ce45b7943f75937ab9dbc4ac868d3f054d70fe6021fdd0282752b473cc476abe 45d2b7c8fa3e58d90cd752506718d8f11c4a77e52c971fcde8b8d74e7e4a8e50 0
24group 35175412 2026-12-27T00:00:00.000000Z 154 154 91ace0a2945e21524101e27ec9b188f61d78f07494a986f13424594d61f3316b b80fef007a8e281a11f050948e82be2350b0c414016489654a4e35e2e449bd58 a16dd4b0599f7681a5ffa37fb7147d1d38b1b21348c192cec1d43ec8e17d8b11 0
25group 35261812 2026-12-30T00:00:00.000000Z 6 6 fb6303f968f6a393128624ee452af332dfbf373a6994e30e40eb39cb8a6d796e 13aec7211d2487df603d0e702d2ee6f01efe3e7ab65533f3bb8ccc9e087dab08 b8289f71b8ce658da3185e66167780558f4dcc7a0d5e67b2fe3a0c5a7913b291 0
26group 35405812 2027-01-04T00:00:00.000000Z 18 18 5c37164877bea0c5924ca20e051c8bdd81d6566b27c2e3cb96a0f26207b15ac4 ced91e3040ebb1b169c0c2a82f71167505a83a7e09fa236941e75884b0839815 3306466c28fbb65842c82172d45deb18648b5a73056ede802dd610b8543f8ce8 0
27group 35722612 2027-01-15T00:00:00.000000Z 6 6 87d5a265a3e1718ba07428192110da7bbd30029338d52408b7882990ff5bdda4 ea878e4d8c35156e573b50338e98d4c6e6bed815f86e01b0c8416637c6b9d3d0 3197a5e552b96b8d79ab61b2332b764525e9489fff8283a27ec36af93ac859a6 0
28group 35751412 2027-01-16T00:00:00.000000Z 24 24 b8e86b052508c4796178d00d338507d1631028175b3f113ba39e249df593691b 38b3508bfeb043271b0bb15d8258b47f4ef9cd26ddf107eb7ecfb4c1481ec1d9 f3836fffd86920c0c8d580ed3b706fa03c5a14c8281ddcf840b13699f58bee1f 0
29group 35809012 2027-01-18T00:00:00.000000Z 15 15 a724fe3bd7e892f4582f11bbbd6aaecac0ed1298bdcdc7212e270d3b2fd414c3 c85fd44bb15960f2f9d09601b06bb96a9caacfffa78ff009fa4871101e9859c3 c7ebb21f2132a388a2a423813dbd31846c7cd33d697a3e124ed4de3eee58cf30 0
30group 35866612 2027-01-20T00:00:00.000000Z 12 12 edf671852ddb1a3e873493cd53f8e81d793981df3a85fa20999dad655d988459 d6f4cade2ab9ab3b59d7f8e8cdc31dad926a17c1606faeb62bcfe26ce2ea92bd 7d5a1c4967229ac5136561655a798b45249c0250e8c16a17471e4eb9a2b9b901 0
31group 35924212 2027-01-22T00:00:00.000000Z 450 450 518f86f2e0964b668a851516c93b0a2e2ae4711123b38c0a4594ab861e938412 94f2c89d7b07c3c8b8ebbafa5bc07de99b52b00b79244a694c9c49152897a7ff 6774bd157c9981a44537401fb30792a0eb7ac4e6e78d17c38f3ac74c962fc846 0
32group 36068212 2027-01-27T00:00:00.000000Z 24 24 4c9f4194fa0e35446d483c167e45a25bd55b40dd6317427c4249a90ba1dc8297 7c52ffd17f68eed23b7294c8b159ec782e04ec97bc222c666d9a42bd7256e6a5 6b7fe9f2299f79cabd230584dc312e45612be3191433b1149d31beb52cadca36 0
33group 36097012 2027-01-28T00:00:00.000000Z 15 15 d6af19c49377fdd564c7384f07274dddbe5dd32990d8df5e3359d5abd6121de9 4e5f6cb36bd357664aa569d4b661bf776275b0684a5465347e86bc130fcc2826 3574f9f0ed9cbf9136a668447ca7b01968c675c16aa23a69da2e2cc1a8b3b5c6 0
34group 36183412 2027-01-31T00:00:00.000000Z 21 21 42c38e0289b0f5d9ead1ba9ebac654baee0d3983768b4333dc4a14ff4cdd9e8c 3e6e3963d59fd19ab29bb7de088024545e94063a932ed262044b5d705156150d f35ecd9f1c67089833f0538be783429b26674de2267643f89380e9a61232a358 0
35group 36269812 2027-02-03T00:00:00.000000Z 12 12 176e42e2a34f540a077a5bf54776c439c86fe1fb913e9b69577a4202438b9664 882b12330e08a6e2a89915a5cc50cf1d41006d1b416760941e5d9530ebf3da4d 97bea05ef0f5d6e55fd947b8bbb8ebc798c1e6c788fdafa48f95c22b8b25eebb 0
36group 36413812 2027-02-08T00:00:00.000000Z 6 6 d0cff2be0ab613b87fb606d6aeafb8b233afd436626d3993b16a97777ae928f9 6b4c4f3ec74789c6a96bd4ad98dc9f5ace7bf7ef7e002194114a05e5aba314e7 3642257e8a1e11fd5f4f6feda384480e5303ae360df1a47f5baa2f1d80ee1a77 0
37group 36557812 2027-02-13T00:00:00.000000Z 18 18 3dc8ed9943925ba02cd7a6f93a97df66b20590bb717b1d02c71a773929f8d5c5 d948bc16600eab3b515c400d3e3906f6c72eab2e7c2758c99fccfcbb6987e89d 613ed4db85cd5c5b1f369c7f9037a3c69fe6188b6b5b7b27453d79a6817abcb7 0
38group 36874612 2027-02-24T00:00:00.000000Z 6 6 788f0c668ed38b942efc08d8fa6405e411b4cb2477aac1e6dc0553629628acb1 a3a170f588d91eeb64ef880ae2ea42f99ee5e5d4f23af036d39402cc956e2fe9 db189859ec4349901aabf510ac96272528c9275987d50a90e4372c6a1e592817 0
39group 36903412 2027-02-25T00:00:00.000000Z 12 12 85abef4dc1c417c3aa1e6aa2260c41f5da206fbc6551aa596bc5b3119264007e 90fd4283d2048ae541df93521ac65aa575bac2777c690a8cda8eb11019200a0c 6baa6b96fc59091fa3b688e48e64e941dbd05e3357e934a376237789b450e381 0
40group 36961012 2027-02-27T00:00:00.000000Z 18 18 433744b601fd0ac54266c2952649dd5b4240ab8b9a41447aff3b6cd1ede0e464 30bc661599bf5a39ae802635919cf2b3cb239f6260b95158f15a7f966a9e7d02 ca2ac36bdae0c9fc3b65b4140700c6ec7da0f05943b30f1b064dd898b2267819 0
41group 37018612 2027-03-01T00:00:00.000000Z 57 57 7e24683bce20fd49ff451819480c3cb7061a89370e396bc87d1d850daefd9aee 7850b8955052157a728b4fc4f087473cc0d1b7bd57575f531e75393a3c858d81 cbe4c7d791ec5158707ad9f9be99284be386b754c28cc12ec7690326cf9ab575 0
42group 37076212 2027-03-03T00:00:00.000000Z 468 468 e6212ad417dc3eec6737580bb37ecf5094822ca51ff0bcf04a5bd942ae046fad dcb4dbf040fe5cd639b3e7ae5db4338c9729e030de3b9d34bac5a02d01bbdc62 5cfaf05467998410c6883d1bc53e91e735da31ff097a1f414c357fe67809a02f 0
43group 37220212 2027-03-08T00:00:00.000000Z 12 12 f68831e4cfebc679c5c27b65a140363c88a99a87799ccfd6165b13d55d838127 a3ebb9fa2837420e3fefef88cf949dbad03ab85447bb2741edae3c9cd6aff17f ff5c605ae76e03c1b6f6042bce0b9af407080266bcff24862d014bfe457df000 0
44group 37249012 2027-03-09T00:00:00.000000Z 18 18 3fd00b0ee4ab8a477f263e5f5d1776a3d1932c23ac5dd48a08b8ce733d8cc531 2689dc06728256851f0e1475ce81b424c1bdd962b14f05a370273380a741b889 24d0ed4944c24121076f5f9deaaacb68a93ed2a0e2af752b763e4c10aab2b1f3 0
45group 37421812 2027-03-15T00:00:00.000000Z 12 12 42b5991ce7d770d55c11c31f41ced5bd645ad6eab221c149f7a200b248af63fb bb69c30123cb9273bd2d7e9272b04599c960cbac5dfce701685bbfdf8bc8402b 84f7eb0ef0f232dbdfd29be531907f5d2f444190b897ccd01a0f918812e0353f 0
46group 38170612 2027-04-10T00:00:00.000000Z 57 57 b19d55efae472e7d04de39881211fb90a148e8b8125e86f965fd78fa876b389c 2d9c1bac12257ec81fb9c7dd8de3bf2b41a2f64767f132e8d8e24c6366617f13 e3dd948f065b207a796a4417829fc1404719155ac1d46bb5ac7af9ff36e06174 0 \ No newline at end of file
diff --git a/reveal/v5-000021/manifest.txt.ots b/reveal/v5-000021/manifest.txt.ots
new file mode 100644
index 0000000..f369f36
--- /dev/null
+++ b/reveal/v5-000021/manifest.txt.ots
Binary files differ
diff --git a/reveal/v5-000021/r33764212.ct b/reveal/v5-000021/r33764212.ct
new file mode 100644
index 0000000..cd1b716
--- /dev/null
+++ b/reveal/v5-000021/r33764212.ct
Binary files differ
diff --git a/reveal/v5-000021/r33764212.nostr.json b/reveal/v5-000021/r33764212.nostr.json
new file mode 100644
index 0000000..cd3fc91
--- /dev/null
+++ b/reveal/v5-000021/r33764212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNzY0MjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKc2wzdkpJcHFDM0d4bllmcG5TVDRrSGg2a3ByNmkzQ0tqblhqaEZG\nUGd5NzZSMmtncFZHaW5FU0FMTzQ5NUJkLwpDa3U4cURQdGRuK1BhZThXa3dEenFP\nYzRRMEs1RXZjR2U5OTMrV3VjejFONEFnTld0ek13anp2ckhzTzRPYllzCjVJTm0r\nZjFSd0ZhdzdFN1MzM1RJVEMxZ0lmekg3R3FPQ0lmSE5LaUJ2VEkKLS0tIHptRlh2\nZWQycFcyRE8zK2VEbVc4WFh4NmFGQlpPZ3puOHd1R1g3a2NsTjgKqguQUErwsq0v\n4VKsZiZ2lg9CCn0CrP1uw7GDkxIgC6xwl18sL2ImBUuw+mZ1JVr5B99Bpk+ubHS/\n49ESxI2ILQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33764212"],["reveal_at","2026-11-08T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","260756fa43939f135315c998fe1d6be3c14ed9b98a96e5ffd2a8a3940b34f538"],["ct","03bf864b81b2262b4532ab53a95eab21eae3b58509d0eb6ef290c3ff28067d72"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r33764212.tlock b/reveal/v5-000021/r33764212.tlock
new file mode 100644
index 0000000..0fc72d6
--- /dev/null
+++ b/reveal/v5-000021/r33764212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNzY0MjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKc2wzdkpJcHFDM0d4bllmcG5TVDRrSGg2a3ByNmkzQ0tqblhqaEZG
5UGd5NzZSMmtncFZHaW5FU0FMTzQ5NUJkLwpDa3U4cURQdGRuK1BhZThXa3dEenFP
6YzRRMEs1RXZjR2U5OTMrV3VjejFONEFnTld0ek13anp2ckhzTzRPYllzCjVJTm0r
7ZjFSd0ZhdzdFN1MzM1RJVEMxZ0lmekg3R3FPQ0lmSE5LaUJ2VEkKLS0tIHptRlh2
8ZWQycFcyRE8zK2VEbVc4WFh4NmFGQlpPZ3puOHd1R1g3a2NsTjgKqguQUErwsq0v
94VKsZiZ2lg9CCn0CrP1uw7GDkxIgC6xwl18sL2ImBUuw+mZ1JVr5B99Bpk+ubHS/
1049ESxI2ILQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r33793012.ct b/reveal/v5-000021/r33793012.ct
new file mode 100644
index 0000000..2a04f0d
--- /dev/null
+++ b/reveal/v5-000021/r33793012.ct
Binary files differ
diff --git a/reveal/v5-000021/r33793012.nostr.json b/reveal/v5-000021/r33793012.nostr.json
new file mode 100644
index 0000000..54ff25c
--- /dev/null
+++ b/reveal/v5-000021/r33793012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNzkzMDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKc0xnaVp4TmJIcStpZkptOTk1ZnExMk1Sb2t4dHRYbjFUZy93V0RO\nb2xOeHBwSzFOMUl6VzlldlNjbnV5Y1MwdQpGOUpvT0pCT0g4WDlGd0E3NW5uSHZq\nUkdNVGlEdVhuUlBMbmt0bmpkOGZIV3V0bUc2MU5LRnVQS2ZQUkdBRld2ClNGOXc4\nbklDdzNnTHh5TDZqSUlIajJzalkyU09FOGlWU1UxSzFtaGUzeHMKLS0tIGYvVnRU\nd1d2WmJmcEJZK2NrWGF0Wms0S0doM0lEb3VtS0tCUEJ5dVkzUFkKoCGJU1UIvv8S\nKgfFrupaMyM704d2ZlN6SO33iWkkg+Bbw7ROT8oPJT3OeDX9gptFmwVl8nQvDa8+\nySrt5kJCxw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33793012"],["reveal_at","2026-11-09T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","1490fac8a088a4ce9405a14e0850a1b169809e2dc9f9b0232fde56aa41a35542"],["ct","fea2eb4a90bf40c8b3e07c95ccd616338d59c15e34a2f178f3f064936d32a410"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r33793012.tlock b/reveal/v5-000021/r33793012.tlock
new file mode 100644
index 0000000..f3d81c0
--- /dev/null
+++ b/reveal/v5-000021/r33793012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzNzkzMDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKc0xnaVp4TmJIcStpZkptOTk1ZnExMk1Sb2t4dHRYbjFUZy93V0RO
5b2xOeHBwSzFOMUl6VzlldlNjbnV5Y1MwdQpGOUpvT0pCT0g4WDlGd0E3NW5uSHZq
6UkdNVGlEdVhuUlBMbmt0bmpkOGZIV3V0bUc2MU5LRnVQS2ZQUkdBRld2ClNGOXc4
7bklDdzNnTHh5TDZqSUlIajJzalkyU09FOGlWU1UxSzFtaGUzeHMKLS0tIGYvVnRU
8d1d2WmJmcEJZK2NrWGF0Wms0S0doM0lEb3VtS0tCUEJ5dVkzUFkKoCGJU1UIvv8S
9KgfFrupaMyM704d2ZlN6SO33iWkkg+Bbw7ROT8oPJT3OeDX9gptFmwVl8nQvDa8+
10ySrt5kJCxw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r33850612.ct b/reveal/v5-000021/r33850612.ct
new file mode 100644
index 0000000..14bc7d7
--- /dev/null
+++ b/reveal/v5-000021/r33850612.ct
Binary files differ
diff --git a/reveal/v5-000021/r33850612.nostr.json b/reveal/v5-000021/r33850612.nostr.json
new file mode 100644
index 0000000..28a2c9a
--- /dev/null
+++ b/reveal/v5-000021/r33850612.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzODUwNjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKaDJ6T2lFVzk4bk9ZTDVVWDBySU1kYU1vNEprMGJqYWJJM0lBSUdY\nZXZLVXJoK1oyQkhaTWVvUXJ3ZEhQY3hjbgpBVzVrdFY3VzhzUk9Jc0F4RmtCUHRs\nYVEvRVo4a25KL3ZGekthS0pRekF0bmREV0JyY1hHZ0JKcXRQcXcwNFhICjhCUXhP\nNk1VSTIxbTZiSTBhMndFdzBkcEdpdndEUWFVVEpMNU1xOWZHalUKLS0tIHlBRjBj\nbEhYYXFkMUVTbHRlcEo2Umw4Y3lpTlJDV2djNkJJUlowYjNKdzQK9N6dkrSYonEX\nN0n5O1YXnf+BGq8Q0P13dYqvWzNcmpWysObkK5NHBJzFV6DkAjTjoeRcrC2naNtv\nMKIw2Qe4Sg==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33850612"],["reveal_at","2026-11-11T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","fd10e4c74e22a1721d169426f14ecdf7d65546a50463f6c3f9aef5307ea3b9e6"],["ct","7d22dacef63bb99207f7f1dc9c1d90b64c340f4e4e9a1f2c3a278ef31b1fc569"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r33850612.tlock b/reveal/v5-000021/r33850612.tlock
new file mode 100644
index 0000000..8b43fec
--- /dev/null
+++ b/reveal/v5-000021/r33850612.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzODUwNjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKaDJ6T2lFVzk4bk9ZTDVVWDBySU1kYU1vNEprMGJqYWJJM0lBSUdY
5ZXZLVXJoK1oyQkhaTWVvUXJ3ZEhQY3hjbgpBVzVrdFY3VzhzUk9Jc0F4RmtCUHRs
6YVEvRVo4a25KL3ZGekthS0pRekF0bmREV0JyY1hHZ0JKcXRQcXcwNFhICjhCUXhP
7Nk1VSTIxbTZiSTBhMndFdzBkcEdpdndEUWFVVEpMNU1xOWZHalUKLS0tIHlBRjBj
8bEhYYXFkMUVTbHRlcEo2Umw4Y3lpTlJDV2djNkJJUlowYjNKdzQK9N6dkrSYonEX
9N0n5O1YXnf+BGq8Q0P13dYqvWzNcmpWysObkK5NHBJzFV6DkAjTjoeRcrC2naNtv
10MKIw2Qe4Sg==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r33879412.ct b/reveal/v5-000021/r33879412.ct
new file mode 100644
index 0000000..4ceccec
--- /dev/null
+++ b/reveal/v5-000021/r33879412.ct
Binary files differ
diff --git a/reveal/v5-000021/r33879412.nostr.json b/reveal/v5-000021/r33879412.nostr.json
new file mode 100644
index 0000000..47144f7
--- /dev/null
+++ b/reveal/v5-000021/r33879412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzODc5NDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKaldUQUpSVGdyNWMyTFhMR2VqYWZEVFd1cEtKbXI5cm44N056THNk\nbTJoRzhFOWM3eGQxMDlNWkRsVnM1bEFFVApGQlpqalhNb2NmZll5Y01rOG1wWEFZ\nbXVSWDZNZHB6cU81aG54U3Q0K1VRcEdheFM0dGk5RVAzTmpkZytXMEdnCk1XL1or\nQzhZcFBCVWtueFkyOENuajQ0eXIwcVlValc0b1lyZ2lPQ1AwcncKLS0tIGFMZ1JL\nb2VEd0Vtb1JXQnV6OVhSSXJFWE1lRDlTditpZEFUZUZ0eEo3akkKYCddJgYTgo3D\nISFpo2tphSmnbhgrqKHyeSKIP9iHm1zU0Ah1cGdUkyUHiKXvtPA0Yenfi7NcaVVs\nyo5Sc4sl9g==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33879412"],["reveal_at","2026-11-12T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","084620eaf5020c14fcb0b87a1eae2f3f03f28996e92cca13c65861b9d6f4e4b4"],["ct","a10af1054fac4d7f8f7bfdd1323a3658a2361f5a8aa88c1577223ba26d572c59"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r33879412.tlock b/reveal/v5-000021/r33879412.tlock
new file mode 100644
index 0000000..dfcb87e
--- /dev/null
+++ b/reveal/v5-000021/r33879412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzODc5NDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKaldUQUpSVGdyNWMyTFhMR2VqYWZEVFd1cEtKbXI5cm44N056THNk
5bTJoRzhFOWM3eGQxMDlNWkRsVnM1bEFFVApGQlpqalhNb2NmZll5Y01rOG1wWEFZ
6bXVSWDZNZHB6cU81aG54U3Q0K1VRcEdheFM0dGk5RVAzTmpkZytXMEdnCk1XL1or
7QzhZcFBCVWtueFkyOENuajQ0eXIwcVlValc0b1lyZ2lPQ1AwcncKLS0tIGFMZ1JL
8b2VEd0Vtb1JXQnV6OVhSSXJFWE1lRDlTditpZEFUZUZ0eEo3akkKYCddJgYTgo3D
9ISFpo2tphSmnbhgrqKHyeSKIP9iHm1zU0Ah1cGdUkyUHiKXvtPA0Yenfi7NcaVVs
10yo5Sc4sl9g==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r33908212.ct b/reveal/v5-000021/r33908212.ct
new file mode 100644
index 0000000..1c82c23
--- /dev/null
+++ b/reveal/v5-000021/r33908212.ct
Binary files differ
diff --git a/reveal/v5-000021/r33908212.nostr.json b/reveal/v5-000021/r33908212.nostr.json
new file mode 100644
index 0000000..c9a770a
--- /dev/null
+++ b/reveal/v5-000021/r33908212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzOTA4MjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKbEJBN0pkT09YaHFHWnAvcHFZeG5IeFBKclhnQndvRU5IMXBkd2pm\naXp3MjlSUERPRHhUK2RpRnFMZlloeURmZApCb0l4NWNYTHJpWjJLWHZyUFZkUWdX\nUE4xTzhTb3RPZGVuNFIzcjdmYzZBb3REVWpERDREbTc5czhodzFqZkxqCjE3dnlL\nZ3dwS2FndGg5QmRGTnhXbndUbVk3MWZndUFwNEsvcFFCYnQzbEEKLS0tIDdjWGpV\nRzMrcG45a1ZacXVlTkdVeDdFWlVYRlBCT0d4K2tsVnBTSWFGZmMK+E4TCmaFIV7Q\n0YbK8ellG3O4qiRxi7ezzF+8QDVRaI3F2tGjFaIJJnDtgLZkRzmnicSEyJf/uEOq\nXTBHqsUfpQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33908212"],["reveal_at","2026-11-13T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","3fc4ffbea8a9cce98099de3d23e46833255bc7283bb4eaaf887b21f0805cd0ef"],["ct","18306e862bda11cefb4a2638c85d7ceee1799dda96e16e56daf5ee3c0492ba52"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r33908212.tlock b/reveal/v5-000021/r33908212.tlock
new file mode 100644
index 0000000..99f180f
--- /dev/null
+++ b/reveal/v5-000021/r33908212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzOTA4MjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKbEJBN0pkT09YaHFHWnAvcHFZeG5IeFBKclhnQndvRU5IMXBkd2pm
5aXp3MjlSUERPRHhUK2RpRnFMZlloeURmZApCb0l4NWNYTHJpWjJLWHZyUFZkUWdX
6UE4xTzhTb3RPZGVuNFIzcjdmYzZBb3REVWpERDREbTc5czhodzFqZkxqCjE3dnlL
7Z3dwS2FndGg5QmRGTnhXbndUbVk3MWZndUFwNEsvcFFCYnQzbEEKLS0tIDdjWGpV
8RzMrcG45a1ZacXVlTkdVeDdFWlVYRlBCT0d4K2tsVnBTSWFGZmMK+E4TCmaFIV7Q
90YbK8ellG3O4qiRxi7ezzF+8QDVRaI3F2tGjFaIJJnDtgLZkRzmnicSEyJf/uEOq
10XTBHqsUfpQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r33937012.ct b/reveal/v5-000021/r33937012.ct
new file mode 100644
index 0000000..f841ff9
--- /dev/null
+++ b/reveal/v5-000021/r33937012.ct
Binary files differ
diff --git a/reveal/v5-000021/r33937012.nostr.json b/reveal/v5-000021/r33937012.nostr.json
new file mode 100644
index 0000000..9808d81
--- /dev/null
+++ b/reveal/v5-000021/r33937012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzOTM3MDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcTFmTUFwRHdSRjJydkxMa0lJMXkrQ3FjakVpT05qYnNqTjdYYUc1\nNzljZExrcEZvNmpESnV2M1FwdUxOSEV0RQpCbkl3RUIwdmZUUTZLeEpibXdPZXlu\nSFN2VkVjSnlRVDZFZndyOTByaVJBcEhpbGhEcFFVbGJUWHpuQ3JhelgrCmZmUHY4\nNzUycnIvS0NJNCt5VTRNZkV4VzFYWmFISnM4MGlBN2NwVDAvdE0KLS0tIFZZVm04\nOHE1eWNFQ2JFTktmaFp1SFQ3MytxZDJCSERheDkxL1BlaG4xNUkK3BpnaP3vnBJu\nBL5G3/z3D1G+U/vm0Q5ALl9ObXKpnKxOFf+M/NCAn5tz0RZoT745J3RNjDFMIyfp\n+z3AZ2r3mw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33937012"],["reveal_at","2026-11-14T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","db0949a810d6a9013cbb272242e3fc67515181960791c9c4c7d0fd304aebb26b"],["ct","d3743ad005ec46ea10999a61a9ef487d740666daa051ceecd6a6ae62ae7c4ed3"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r33937012.tlock b/reveal/v5-000021/r33937012.tlock
new file mode 100644
index 0000000..631b36c
--- /dev/null
+++ b/reveal/v5-000021/r33937012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzOTM3MDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcTFmTUFwRHdSRjJydkxMa0lJMXkrQ3FjakVpT05qYnNqTjdYYUc1
5NzljZExrcEZvNmpESnV2M1FwdUxOSEV0RQpCbkl3RUIwdmZUUTZLeEpibXdPZXlu
6SFN2VkVjSnlRVDZFZndyOTByaVJBcEhpbGhEcFFVbGJUWHpuQ3JhelgrCmZmUHY4
7NzUycnIvS0NJNCt5VTRNZkV4VzFYWmFISnM4MGlBN2NwVDAvdE0KLS0tIFZZVm04
8OHE1eWNFQ2JFTktmaFp1SFQ3MytxZDJCSERheDkxL1BlaG4xNUkK3BpnaP3vnBJu
9BL5G3/z3D1G+U/vm0Q5ALl9ObXKpnKxOFf+M/NCAn5tz0RZoT745J3RNjDFMIyfp
10+z3AZ2r3mw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r33965812.ct b/reveal/v5-000021/r33965812.ct
new file mode 100644
index 0000000..dcddefc
--- /dev/null
+++ b/reveal/v5-000021/r33965812.ct
Binary files differ
diff --git a/reveal/v5-000021/r33965812.nostr.json b/reveal/v5-000021/r33965812.nostr.json
new file mode 100644
index 0000000..c88e7a5
--- /dev/null
+++ b/reveal/v5-000021/r33965812.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzOTY1ODEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKamtQR29QS2p5eit4RldwT2t5Mm1qb0xoNlNURU51TVFHWDcyZ05s\nQktwT1Ywb0hTSHVZWFpQekRrODFRTC9JRwpFVGZyQ2hkMk42OGMrUFBMbWxpNEFN\nL0hsOCtpajVtSUQxR0Y2SVIyR0lucW5tSkNsTTdxbU5MdkVhMzhTNnkzClhmV08w\nbkpwd1FaeXM2WjdxN245NXFTNm1Sd3kwaGNRa3NVcUJSTGZrTTAKLS0tIDF5TGd6\nY1hzWm9HRFp1MUVlTXZldy8wQTRITmFNNGNNVmRpampjYkxCMnMK16dfI2WTkaMn\n9+PYacm8oK0ozB7jLuw86F7lLteECNSC3DAZqXVSNh5i/WMKs4p5P/nIB8EimUgr\nEc6e1noG+g==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","33965812"],["reveal_at","2026-11-15T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","6acafee7e05e7d8cbf4f8dc35c0f97a14160c3c5bdb181d0e21cb2848ac24e30"],["ct","d429c61e5a314a3287f49940e8c03af282371d4de6765459786376221234a210"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r33965812.tlock b/reveal/v5-000021/r33965812.tlock
new file mode 100644
index 0000000..ebd962c
--- /dev/null
+++ b/reveal/v5-000021/r33965812.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMzOTY1ODEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKamtQR29QS2p5eit4RldwT2t5Mm1qb0xoNlNURU51TVFHWDcyZ05s
5QktwT1Ywb0hTSHVZWFpQekRrODFRTC9JRwpFVGZyQ2hkMk42OGMrUFBMbWxpNEFN
6L0hsOCtpajVtSUQxR0Y2SVIyR0lucW5tSkNsTTdxbU5MdkVhMzhTNnkzClhmV08w
7bkpwd1FaeXM2WjdxN245NXFTNm1Sd3kwaGNRa3NVcUJSTGZrTTAKLS0tIDF5TGd6
8Y1hzWm9HRFp1MUVlTXZldy8wQTRITmFNNGNNVmRpampjYkxCMnMK16dfI2WTkaMn
99+PYacm8oK0ozB7jLuw86F7lLteECNSC3DAZqXVSNh5i/WMKs4p5P/nIB8EimUgr
10Ec6e1noG+g==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r34023412.ct b/reveal/v5-000021/r34023412.ct
new file mode 100644
index 0000000..e61e580
--- /dev/null
+++ b/reveal/v5-000021/r34023412.ct
Binary files differ
diff --git a/reveal/v5-000021/r34023412.nostr.json b/reveal/v5-000021/r34023412.nostr.json
new file mode 100644
index 0000000..cee249b
--- /dev/null
+++ b/reveal/v5-000021/r34023412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0MDIzNDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKb245STZEaExVekl5WUgxTFVMV3I2WDdtUVliaGZ6RXVySC9kWDFk\nQlFHRlR5L29zcXRvUXY1QkZIRTNyekw3bgpHUU55UWpzeE9PelhJdllpTXJ0ODBi\nTVNvaDFUQTAxTnEyZmR4NEpIMWNraFV3YU5oMXh2eUtUVzNLTXFOVndBCkxEMHE0\nV25NWWc0cVRJS2tsL2Zzdk9iTUVIKzdTS3E0OGtiR1Y0bkNIeW8KLS0tIFM2M0Z2\nd1VBd05ZVVN2ZS94WHlQdEM3WDNyYktWb3F2N1pnSVErci8vWG8KFo/N6N29YXW3\nBHA35o5wCQn7IJLjJGJ0rBD36Ck/hIlE0ngAWYidH7r12x9EFoV+mECBT0PFOL39\nEktVSssMGQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34023412"],["reveal_at","2026-11-17T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","6b53a9b9387ca0bc31d5897fc1c4b4133fee1fc1737bcf2d9a5cdcb22384805c"],["ct","937fb40f2ba09bca8a943ac059691f887952b446503ba7209d6469456f499a34"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r34023412.tlock b/reveal/v5-000021/r34023412.tlock
new file mode 100644
index 0000000..9af084f
--- /dev/null
+++ b/reveal/v5-000021/r34023412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0MDIzNDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKb245STZEaExVekl5WUgxTFVMV3I2WDdtUVliaGZ6RXVySC9kWDFk
5QlFHRlR5L29zcXRvUXY1QkZIRTNyekw3bgpHUU55UWpzeE9PelhJdllpTXJ0ODBi
6TVNvaDFUQTAxTnEyZmR4NEpIMWNraFV3YU5oMXh2eUtUVzNLTXFOVndBCkxEMHE0
7V25NWWc0cVRJS2tsL2Zzdk9iTUVIKzdTS3E0OGtiR1Y0bkNIeW8KLS0tIFM2M0Z2
8d1VBd05ZVVN2ZS94WHlQdEM3WDNyYktWb3F2N1pnSVErci8vWG8KFo/N6N29YXW3
9BHA35o5wCQn7IJLjJGJ0rBD36Ck/hIlE0ngAWYidH7r12x9EFoV+mECBT0PFOL39
10EktVSssMGQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r34599412.ct b/reveal/v5-000021/r34599412.ct
new file mode 100644
index 0000000..01e0380
--- /dev/null
+++ b/reveal/v5-000021/r34599412.ct
Binary files differ
diff --git a/reveal/v5-000021/r34599412.nostr.json b/reveal/v5-000021/r34599412.nostr.json
new file mode 100644
index 0000000..4eedf00
--- /dev/null
+++ b/reveal/v5-000021/r34599412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NTk5NDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKdDZjZVRXWHdOeEhzYUlYREdLUERvb2xyczdDY1JocFhGQmc3UUpW\ncU8wRUlVR3ZrWUtBZzJYOWlpdzNGdnJKSApGek9qU3BKR3FzVW56Ny9hRzhVNGFv\namNPdTBIbXN1TXpvZjZleEF4TitLOEpTQ2YyZ1lwV2dHSk5ic0xVTVJYClprbGk5\nS3dMaFZLNWwwbEc4WVNsUUNoRmY4TlN3RUlCZzN5aUc3ZnI5UlkKLS0tIG5qbzR0\nWTF3RE1iQllRZEFoMi83WFRLRXd5MCtXNWRLMnRuem91d1FxRVUKcs/BM0khmDiw\nERDgzH6S3WyMTfRiFeVZhAirq/Zhhdx4/3n0923FrE51WkY5dt0hXLJg71FvGjog\n6TZdv01I2Q==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34599412"],["reveal_at","2026-12-07T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","7a1bd956fb148a0bb87d68c7482cce3f988b069a3fe5facbec1f3c60a6fad7d1"],["ct","2f3ebbcc0386935aaa2e6f38743f69dbfc14297e6445b8e6df611c7112fce0e2"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r34599412.tlock b/reveal/v5-000021/r34599412.tlock
new file mode 100644
index 0000000..6ec09c6
--- /dev/null
+++ b/reveal/v5-000021/r34599412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NTk5NDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKdDZjZVRXWHdOeEhzYUlYREdLUERvb2xyczdDY1JocFhGQmc3UUpW
5cU8wRUlVR3ZrWUtBZzJYOWlpdzNGdnJKSApGek9qU3BKR3FzVW56Ny9hRzhVNGFv
6amNPdTBIbXN1TXpvZjZleEF4TitLOEpTQ2YyZ1lwV2dHSk5ic0xVTVJYClprbGk5
7S3dMaFZLNWwwbEc4WVNsUUNoRmY4TlN3RUlCZzN5aUc3ZnI5UlkKLS0tIG5qbzR0
8WTF3RE1iQllRZEFoMi83WFRLRXd5MCtXNWRLMnRuem91d1FxRVUKcs/BM0khmDiw
9ERDgzH6S3WyMTfRiFeVZhAirq/Zhhdx4/3n0923FrE51WkY5dt0hXLJg71FvGjog
106TZdv01I2Q==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r34714612.ct b/reveal/v5-000021/r34714612.ct
new file mode 100644
index 0000000..52d4b52
--- /dev/null
+++ b/reveal/v5-000021/r34714612.ct
Binary files differ
diff --git a/reveal/v5-000021/r34714612.nostr.json b/reveal/v5-000021/r34714612.nostr.json
new file mode 100644
index 0000000..9960160
--- /dev/null
+++ b/reveal/v5-000021/r34714612.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NzE0NjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKaHFUMDZXYTJpSXhWbXdJd2NoRVNqbHYrTS9vdTFlckpqQkxYeitK\nNkVqMXBvNlRaclErLzI4MW4rOWwxMFhuLwpGL0RSeTg1Mm1GWXc0RWlVWGFjQnBF\nVW1RTlhUUzEzaTN3T2JiVW5Ed2dCL3BaTEtxUUY1dTZ0aTdhRDJrOTFUCmUwdzJ0\nRTF5SkIzTGpMUnRoM2NVYWdaK25pRmo3U1ZrSWtHRWFiQ3RWVXcKLS0tIGVkRE9F\nek1aSE0zczVuSDMwdXRaWkxyTmZpQ2pYSkkwRUo2REU4cEhObzAKv/0B9e9ZDf6Q\nNY/9SFKu/VbHx+hBc7DsduP+DY1GO2z2mVxds/Q81zNHhsug+lA5eqgESfEOkb6x\n33xeQuCLKw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34714612"],["reveal_at","2026-12-11T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","6d15ccc18a3c0910a89a6f6cd167867c7be156f2a20c2c8486aa6f5b2ebb9ab3"],["ct","ba718b11758245d811733e07330d9ba437bc81ca2fea514a1fdfc37dbf670175"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r34714612.tlock b/reveal/v5-000021/r34714612.tlock
new file mode 100644
index 0000000..2dc8d67
--- /dev/null
+++ b/reveal/v5-000021/r34714612.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0NzE0NjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKaHFUMDZXYTJpSXhWbXdJd2NoRVNqbHYrTS9vdTFlckpqQkxYeitK
5NkVqMXBvNlRaclErLzI4MW4rOWwxMFhuLwpGL0RSeTg1Mm1GWXc0RWlVWGFjQnBF
6VW1RTlhUUzEzaTN3T2JiVW5Ed2dCL3BaTEtxUUY1dTZ0aTdhRDJrOTFUCmUwdzJ0
7RTF5SkIzTGpMUnRoM2NVYWdaK25pRmo3U1ZrSWtHRWFiQ3RWVXcKLS0tIGVkRE9F
8ek1aSE0zczVuSDMwdXRaWkxyTmZpQ2pYSkkwRUo2REU4cEhObzAKv/0B9e9ZDf6Q
9NY/9SFKu/VbHx+hBc7DsduP+DY1GO2z2mVxds/Q81zNHhsug+lA5eqgESfEOkb6x
1033xeQuCLKw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r34916212.ct b/reveal/v5-000021/r34916212.ct
new file mode 100644
index 0000000..b6e03f5
--- /dev/null
+++ b/reveal/v5-000021/r34916212.ct
Binary files differ
diff --git a/reveal/v5-000021/r34916212.nostr.json b/reveal/v5-000021/r34916212.nostr.json
new file mode 100644
index 0000000..edbc2b6
--- /dev/null
+++ b/reveal/v5-000021/r34916212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0OTE2MjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKZ3FJb3dOQzNLd2hIVEhaTk96eDd4WTdaR09UbVkyeHpUaTdid0Rz\nakxoSld2TWJDR2ErdEdQM0g1RUdJNHZRWApCSzljdnk1ZkxFWEoxY1dyWW1GR3Fm\nK1lVRUVmNWwrLzRWRzlwMkdVSW9JRFdSamF0eDFFUC9SeGVOMWh0K3pICmZFdnky\nOHlTNlRaMlIyWmxibnM0cmJVWnEzK0NvZHVpbURZUXYzNlJYQ2cKLS0tIGdicjU1\nZHExR1kzWElMR1FrNFhUejdNUnlqK2ozdklrRzVOMVpSK0x3VzAKL/n41ct3idL/\n/dz0ZjiC6UrFkems4jbnc/WWlPuHJbppjmP0vMwCp5RbVFGwLOeIFhqF1xAfl4Q8\nGYOPipISYQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34916212"],["reveal_at","2026-12-18T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","c094eb5bf3ecbd3713953c9f9ed298837c5158c55653f1bd8dcefae322dcefd0"],["ct","0971181056e5b34c55fe830769313a7640e3a55204eff382b9b5fa9abd410e99"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r34916212.tlock b/reveal/v5-000021/r34916212.tlock
new file mode 100644
index 0000000..33b0d4a
--- /dev/null
+++ b/reveal/v5-000021/r34916212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0OTE2MjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKZ3FJb3dOQzNLd2hIVEhaTk96eDd4WTdaR09UbVkyeHpUaTdid0Rz
5akxoSld2TWJDR2ErdEdQM0g1RUdJNHZRWApCSzljdnk1ZkxFWEoxY1dyWW1GR3Fm
6K1lVRUVmNWwrLzRWRzlwMkdVSW9JRFdSamF0eDFFUC9SeGVOMWh0K3pICmZFdnky
7OHlTNlRaMlIyWmxibnM0cmJVWnEzK0NvZHVpbURZUXYzNlJYQ2cKLS0tIGdicjU1
8ZHExR1kzWElMR1FrNFhUejdNUnlqK2ozdklrRzVOMVpSK0x3VzAKL/n41ct3idL/
9/dz0ZjiC6UrFkems4jbnc/WWlPuHJbppjmP0vMwCp5RbVFGwLOeIFhqF1xAfl4Q8
10GYOPipISYQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r34945012.ct b/reveal/v5-000021/r34945012.ct
new file mode 100644
index 0000000..8abcff8
--- /dev/null
+++ b/reveal/v5-000021/r34945012.ct
Binary files differ
diff --git a/reveal/v5-000021/r34945012.nostr.json b/reveal/v5-000021/r34945012.nostr.json
new file mode 100644
index 0000000..195f444
--- /dev/null
+++ b/reveal/v5-000021/r34945012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0OTQ1MDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKci9OZnErNFJUSjVBWGNpT3doTFRkK2FRK1RyLzdwUmlKOGxkUW1O\ndk81ZE1ocG9Dd3VkQzRtc2FtK1hNSWNTaQpFdzFNakJPUm11ZUkvc08ydE16cHVF\naDhKWko2OFYxcTJOS2g4dkVtWnZzVkxsNTR4R0VjeTFackpiMjdpZFRTCkovOUdJ\nc25lZlIrMGJVWFY3MlhUNTJaVVB5elVkMklMWEU1ZW5GbGNiVVkKLS0tIDNJMW5F\nTFExeGNDOHowVUtsN3lSeG1iSTROSFRYOFVOTkdaQWc4eFFCZ3cKAcTKGorrYb2c\njwdfkzPy+EWRhFv/GV5SKx5eIYlhTf2n0ja1LTeu2+S3clI80Y9wXpXj5bp42IIW\nYRY844nZtA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","34945012"],["reveal_at","2026-12-19T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","5b40db3a51313fa4e3ca3c3a4a4d2633d800366b3de93e84fb7520405d432511"],["ct","229e69ec5cb4c7a9956938b95e1611c846a4fdb2fca36459bb166e20dbb13175"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r34945012.tlock b/reveal/v5-000021/r34945012.tlock
new file mode 100644
index 0000000..5921700
--- /dev/null
+++ b/reveal/v5-000021/r34945012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM0OTQ1MDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKci9OZnErNFJUSjVBWGNpT3doTFRkK2FRK1RyLzdwUmlKOGxkUW1O
5dk81ZE1ocG9Dd3VkQzRtc2FtK1hNSWNTaQpFdzFNakJPUm11ZUkvc08ydE16cHVF
6aDhKWko2OFYxcTJOS2g4dkVtWnZzVkxsNTR4R0VjeTFackpiMjdpZFRTCkovOUdJ
7c25lZlIrMGJVWFY3MlhUNTJaVVB5elVkMklMWEU1ZW5GbGNiVVkKLS0tIDNJMW5F
8TFExeGNDOHowVUtsN3lSeG1iSTROSFRYOFVOTkdaQWc4eFFCZ3cKAcTKGorrYb2c
9jwdfkzPy+EWRhFv/GV5SKx5eIYlhTf2n0ja1LTeu2+S3clI80Y9wXpXj5bp42IIW
10YRY844nZtA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r35002612.ct b/reveal/v5-000021/r35002612.ct
new file mode 100644
index 0000000..eba3752
--- /dev/null
+++ b/reveal/v5-000021/r35002612.ct
Binary files differ
diff --git a/reveal/v5-000021/r35002612.nostr.json b/reveal/v5-000021/r35002612.nostr.json
new file mode 100644
index 0000000..456fdf5
--- /dev/null
+++ b/reveal/v5-000021/r35002612.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MDAyNjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKdGwxSndVUmVoZkZTbE52allERGt0K2tySHZLTElWTXo4ZkxWdVla\nR1RxYmJOTU14bDlyS1h1cU1YUWxkRis4UwpHV1NScGJDTzVrZnh5Mk5uR0ZBTlZK\nVHVqSjJDU0RZWmxncjE1ekFDRmVDdlFUVldNTnBDWEhGNWpjMFprdEhGCmxYV0VJ\ndSt1SS9pZ29sZjUyUVc2cE85UHRQZEIvMjlrSU42NkUwWGp6RmcKLS0tIG44b3JU\nOG1wWDdLUlJ3S210Y1NwR1dMYUdMb0xLVDlJNXQyZXVFbisxT0kKsHlGa/TO2MVI\nR8wjRI3d1kc+L0bPzUeFkao/oJZ6P+6SDhJ0mVfzKzuxVV6y11HubbTlKH6TYCfU\nbxj8r1pkdg==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35002612"],["reveal_at","2026-12-21T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","8347d3da80486622dc1a521eb5f7bd42d069121999da17c7cfde4148fa39ee5a"],["ct","751d585ea2508c587b90d6f60827b4c574d781d5cb401e4d9586ea7ed1224e55"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r35002612.tlock b/reveal/v5-000021/r35002612.tlock
new file mode 100644
index 0000000..9f84bb6
--- /dev/null
+++ b/reveal/v5-000021/r35002612.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MDAyNjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKdGwxSndVUmVoZkZTbE52allERGt0K2tySHZLTElWTXo4ZkxWdVla
5R1RxYmJOTU14bDlyS1h1cU1YUWxkRis4UwpHV1NScGJDTzVrZnh5Mk5uR0ZBTlZK
6VHVqSjJDU0RZWmxncjE1ekFDRmVDdlFUVldNTnBDWEhGNWpjMFprdEhGCmxYV0VJ
7dSt1SS9pZ29sZjUyUVc2cE85UHRQZEIvMjlrSU42NkUwWGp6RmcKLS0tIG44b3JU
8OG1wWDdLUlJ3S210Y1NwR1dMYUdMb0xLVDlJNXQyZXVFbisxT0kKsHlGa/TO2MVI
9R8wjRI3d1kc+L0bPzUeFkao/oJZ6P+6SDhJ0mVfzKzuxVV6y11HubbTlKH6TYCfU
10bxj8r1pkdg==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r35031412.ct b/reveal/v5-000021/r35031412.ct
new file mode 100644
index 0000000..7db2083
--- /dev/null
+++ b/reveal/v5-000021/r35031412.ct
Binary files differ
diff --git a/reveal/v5-000021/r35031412.nostr.json b/reveal/v5-000021/r35031412.nostr.json
new file mode 100644
index 0000000..ccb0e2d
--- /dev/null
+++ b/reveal/v5-000021/r35031412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MDMxNDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKaldkZGtkQ1R1M1VuRzYzak1ENXlPaHAwNlNHTktiZ0xyVnFLT2Np\nSXJKTkhtaGdWY2JtMzNPL1NUWVFBWWZrVwpCZzNHWDVLMkExY0ZJL0VTa0tXTW1S\nOUdPTlN6ZFlURFRnUkI0Y1lkVW9BbzE3bFFrMFdTY1Z2dFN6QjlTVDFkCmRHVytR\nTnlGUXNhaGJVNERycGphelNpMUhBcEVCbytDeGxsMW1NRUFaaEUKLS0tIFM2dSto\nczRsTlJFdUY4a1NTT3oxWTZvTVA0blhjYXBuM1NETDZmNUkvdFkKNwmh0a7C6aXi\nS8Uq6HZiE9MOjKIxxhjvICbPhXew7lC6ammxuTA+bbER26TY9UZB1JQ20cnP8BAA\nX3QiVo4C1A==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35031412"],["reveal_at","2026-12-22T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","2f17b05403cdc0e64c584063da24024f1f5233acb30714fcbadff365a5177e07"],["ct","69d3e4744e1ddd2270a7d9938f666720e96c1713733ceaa5ed1eea5b2f9e7783"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r35031412.tlock b/reveal/v5-000021/r35031412.tlock
new file mode 100644
index 0000000..2ecc2fc
--- /dev/null
+++ b/reveal/v5-000021/r35031412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MDMxNDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKaldkZGtkQ1R1M1VuRzYzak1ENXlPaHAwNlNHTktiZ0xyVnFLT2Np
5SXJKTkhtaGdWY2JtMzNPL1NUWVFBWWZrVwpCZzNHWDVLMkExY0ZJL0VTa0tXTW1S
6OUdPTlN6ZFlURFRnUkI0Y1lkVW9BbzE3bFFrMFdTY1Z2dFN6QjlTVDFkCmRHVytR
7TnlGUXNhaGJVNERycGphelNpMUhBcEVCbytDeGxsMW1NRUFaaEUKLS0tIFM2dSto
8czRsTlJFdUY4a1NTT3oxWTZvTVA0blhjYXBuM1NETDZmNUkvdFkKNwmh0a7C6aXi
9S8Uq6HZiE9MOjKIxxhjvICbPhXew7lC6ammxuTA+bbER26TY9UZB1JQ20cnP8BAA
10X3QiVo4C1A==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r35060212.ct b/reveal/v5-000021/r35060212.ct
new file mode 100644
index 0000000..ca6bf34
--- /dev/null
+++ b/reveal/v5-000021/r35060212.ct
Binary files differ
diff --git a/reveal/v5-000021/r35060212.nostr.json b/reveal/v5-000021/r35060212.nostr.json
new file mode 100644
index 0000000..9404516
--- /dev/null
+++ b/reveal/v5-000021/r35060212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MDYwMjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcXlvU1ZnSkp4UzJlMVExYlRBYlM2REFVQ2w2SjBVQ3VFWS9zYUsy\nY0crOTFFMEEvd2R3Vk43dG9TK1JZT3RhVwpEa1RDV09hSUFncGh3RGtIcWJpQU1D\ndjc4cXplSUhWYnd4d0s5aE1aakhWdExwNEFoSWVYbTJSUGFhL1pNZFNtCnM2aWRC\nMFhLVmZuMnBYUmVJSUdZblhxQ3M2WFJGNUR3OGVpQVBnd2orbU0KLS0tIGJzQ25s\nWlhnTUdIbGFJMjFEK0NuczBIMFZxMklrcXZubDBTTTJnaDVLclUKygccHELx1Vcd\nSGamzg2zDOlxyhRL8KTkYbLfhsJDWXYyUFxKcgQXvJl10sHuJPssEmXo1XIMXpGS\nvE9zeVgGnQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35060212"],["reveal_at","2026-12-23T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","b8bc583385354c608c925a22c7890e0d4b9d572ee398a65aa38acea7ef28a055"],["ct","22279d17f43806474ecff7d03a59fdf1d7dc4f6e76837848934b782cf24d35ed"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r35060212.tlock b/reveal/v5-000021/r35060212.tlock
new file mode 100644
index 0000000..4c1a2dd
--- /dev/null
+++ b/reveal/v5-000021/r35060212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MDYwMjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcXlvU1ZnSkp4UzJlMVExYlRBYlM2REFVQ2w2SjBVQ3VFWS9zYUsy
5Y0crOTFFMEEvd2R3Vk43dG9TK1JZT3RhVwpEa1RDV09hSUFncGh3RGtIcWJpQU1D
6djc4cXplSUhWYnd4d0s5aE1aakhWdExwNEFoSWVYbTJSUGFhL1pNZFNtCnM2aWRC
7MFhLVmZuMnBYUmVJSUdZblhxQ3M2WFJGNUR3OGVpQVBnd2orbU0KLS0tIGJzQ25s
8WlhnTUdIbGFJMjFEK0NuczBIMFZxMklrcXZubDBTTTJnaDVLclUKygccHELx1Vcd
9SGamzg2zDOlxyhRL8KTkYbLfhsJDWXYyUFxKcgQXvJl10sHuJPssEmXo1XIMXpGS
10vE9zeVgGnQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r35089012.ct b/reveal/v5-000021/r35089012.ct
new file mode 100644
index 0000000..a96637e
--- /dev/null
+++ b/reveal/v5-000021/r35089012.ct
Binary files differ
diff --git a/reveal/v5-000021/r35089012.nostr.json b/reveal/v5-000021/r35089012.nostr.json
new file mode 100644
index 0000000..492b664
--- /dev/null
+++ b/reveal/v5-000021/r35089012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MDg5MDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKaW1OUU91c2w4MlVvTkh3emtiQk5hb0FjanhzRit3ZFVuVTdUbVpp\nSElOZWpOdkFQRjc1MG1zRW15ZzR0VzQzdApEbDMvUHluWllnWlU1UHZUTGpIcUtL\nMFg0a2lMWjBuR2ZZbHZscy9ac3Q4bXRkczd0TG16djdqZC91c2VsZ2ZHCmw5YVkv\nQ1JabkVsL3d1Y2xta2RnTmRvMkVtakVNWVNsT3hpOUppZHF6T2sKLS0tIERXdlZR\na2NBeitueWk0UmhZdXZXSlp1MWxnZGVpOEVXVEdsckRPTjVZK1kKzeafDy6BC+QJ\n3vSQzUYI2PV5vBG5i4n/xFPma8duUtt0YmmOQJZwvnkCQYbMgI1TGhcj9RImlYnW\njtUTbXz3uQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35089012"],["reveal_at","2026-12-24T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","42cc76ba2d92a7adaaab88bd5ccf722c4d024695c4d9f4e4e5f1897a288fdde7"],["ct","66e7707dabe89e88260c561a48bf6ee6472eff4019f3c38434587433467c80a1"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r35089012.tlock b/reveal/v5-000021/r35089012.tlock
new file mode 100644
index 0000000..bc5e7f3
--- /dev/null
+++ b/reveal/v5-000021/r35089012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MDg5MDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKaW1OUU91c2w4MlVvTkh3emtiQk5hb0FjanhzRit3ZFVuVTdUbVpp
5SElOZWpOdkFQRjc1MG1zRW15ZzR0VzQzdApEbDMvUHluWllnWlU1UHZUTGpIcUtL
6MFg0a2lMWjBuR2ZZbHZscy9ac3Q4bXRkczd0TG16djdqZC91c2VsZ2ZHCmw5YVkv
7Q1JabkVsL3d1Y2xta2RnTmRvMkVtakVNWVNsT3hpOUppZHF6T2sKLS0tIERXdlZR
8a2NBeitueWk0UmhZdXZXSlp1MWxnZGVpOEVXVEdsckRPTjVZK1kKzeafDy6BC+QJ
93vSQzUYI2PV5vBG5i4n/xFPma8duUtt0YmmOQJZwvnkCQYbMgI1TGhcj9RImlYnW
10jtUTbXz3uQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r35117812.ct b/reveal/v5-000021/r35117812.ct
new file mode 100644
index 0000000..395595e
--- /dev/null
+++ b/reveal/v5-000021/r35117812.ct
Binary files differ
diff --git a/reveal/v5-000021/r35117812.nostr.json b/reveal/v5-000021/r35117812.nostr.json
new file mode 100644
index 0000000..d8e63fc
--- /dev/null
+++ b/reveal/v5-000021/r35117812.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MTE3ODEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcmQraEZRWEdaaVBEM1I0NGRreWg4OFpTK0c4L2ViODUrWm80eFlO\nM3ZUY3dmWllvRmdJbUJBTjhxZjVqWU1IcgpCaU9RRE1kbmd0aFRKN3lHLzdmUEc3\nejBQcGN6YWFDb25zZHZOTVBQQjVBNmREVmQwTkRxcEhrcU91a2RjV3ZUCmpYWGdC\naElFMG12bFBVYlpSbnpZTHBlZkd5R2xjYnQwdlBrWjNOdWJnRG8KLS0tIFNuR3VY\nVjBpQ2VpNDlSMWZ0M1VpcFZiaUl3aTRMektjai9MbUlpbDViaUEKNG3r9xWMyRyI\nWTKGbMYE0uM++tniZofYU6LJciRnqamy0ss4H9U4wpBKlY0zTQ72/7VVKaxRgMiI\ngewyeiMQvQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35117812"],["reveal_at","2026-12-25T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","5bd1b281fb22a7fe00eeb61e360e4545238e2a3ad877da453358ec2d85a0958d"],["ct","ce45b7943f75937ab9dbc4ac868d3f054d70fe6021fdd0282752b473cc476abe"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r35117812.tlock b/reveal/v5-000021/r35117812.tlock
new file mode 100644
index 0000000..647de83
--- /dev/null
+++ b/reveal/v5-000021/r35117812.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MTE3ODEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcmQraEZRWEdaaVBEM1I0NGRreWg4OFpTK0c4L2ViODUrWm80eFlO
5M3ZUY3dmWllvRmdJbUJBTjhxZjVqWU1IcgpCaU9RRE1kbmd0aFRKN3lHLzdmUEc3
6ejBQcGN6YWFDb25zZHZOTVBQQjVBNmREVmQwTkRxcEhrcU91a2RjV3ZUCmpYWGdC
7aElFMG12bFBVYlpSbnpZTHBlZkd5R2xjYnQwdlBrWjNOdWJnRG8KLS0tIFNuR3VY
8VjBpQ2VpNDlSMWZ0M1VpcFZiaUl3aTRMektjai9MbUlpbDViaUEKNG3r9xWMyRyI
9WTKGbMYE0uM++tniZofYU6LJciRnqamy0ss4H9U4wpBKlY0zTQ72/7VVKaxRgMiI
10gewyeiMQvQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r35175412.ct b/reveal/v5-000021/r35175412.ct
new file mode 100644
index 0000000..9e5d20c
--- /dev/null
+++ b/reveal/v5-000021/r35175412.ct
Binary files differ
diff --git a/reveal/v5-000021/r35175412.nostr.json b/reveal/v5-000021/r35175412.nostr.json
new file mode 100644
index 0000000..c973687
--- /dev/null
+++ b/reveal/v5-000021/r35175412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MTc1NDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcVk5UjVhQ0ZkSEQxVitQdE5JQ2NGaCtzMHgrL01OS3lNb0VvN1JQ\nc2NiRm8zSHZqU3RLcVo0TGp5clZydzRBTQpGRmFhaTRZdkM3K01UaDl5ZytQYXZS\naTc1RWRwRmpFSWhHdElldmxzbUJtNW1OMWhacy9HOG04aDkxQkJoVzNaCldscXdJ\nTTk2NmliZy9tK1RDbVkvQzI1aU95WGpZL3dyY2JDbERhWGwyQjQKLS0tIFl5V3RQ\neUs1TTNsVUtiN2ZyeTYxOFd4bFVLeG9yb1hrT0pKMHNUcGhVcE0Kp5iq70hdNXKO\n0cmp1+SWhcqNhXL1Jl/8qYPwCJ3QYU4Hv/ArvMI8ScnrHVu9wwoZ6ih7m7FcQ0WK\ntP+qU8tP9g==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35175412"],["reveal_at","2026-12-27T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","91ace0a2945e21524101e27ec9b188f61d78f07494a986f13424594d61f3316b"],["ct","b80fef007a8e281a11f050948e82be2350b0c414016489654a4e35e2e449bd58"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r35175412.tlock b/reveal/v5-000021/r35175412.tlock
new file mode 100644
index 0000000..578bd4c
--- /dev/null
+++ b/reveal/v5-000021/r35175412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MTc1NDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcVk5UjVhQ0ZkSEQxVitQdE5JQ2NGaCtzMHgrL01OS3lNb0VvN1JQ
5c2NiRm8zSHZqU3RLcVo0TGp5clZydzRBTQpGRmFhaTRZdkM3K01UaDl5ZytQYXZS
6aTc1RWRwRmpFSWhHdElldmxzbUJtNW1OMWhacy9HOG04aDkxQkJoVzNaCldscXdJ
7TTk2NmliZy9tK1RDbVkvQzI1aU95WGpZL3dyY2JDbERhWGwyQjQKLS0tIFl5V3RQ
8eUs1TTNsVUtiN2ZyeTYxOFd4bFVLeG9yb1hrT0pKMHNUcGhVcE0Kp5iq70hdNXKO
90cmp1+SWhcqNhXL1Jl/8qYPwCJ3QYU4Hv/ArvMI8ScnrHVu9wwoZ6ih7m7FcQ0WK
10tP+qU8tP9g==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r35261812.ct b/reveal/v5-000021/r35261812.ct
new file mode 100644
index 0000000..e3ede27
--- /dev/null
+++ b/reveal/v5-000021/r35261812.ct
Binary files differ
diff --git a/reveal/v5-000021/r35261812.nostr.json b/reveal/v5-000021/r35261812.nostr.json
new file mode 100644
index 0000000..4e2b1c0
--- /dev/null
+++ b/reveal/v5-000021/r35261812.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MjYxODEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKZ01kM1NXZTFsSm93ZldHV2Q5VmdrRzFnYTVIcklUbGVTZmhOL1NF\ndU84b3l4dFhOSW5Mb1U4SWc1cnVLM1dTdApBWGxWcEgzcm5jZWt5WW1NczJTSDhW\nZTQ1QkFaTVZjNlRpWXJoTmRCODFZWTlpcnp5YkYrSFIwM2VodWsrV1IrCjNxVWNP\nOXBSalYwWGRNRXBkRVgrcnZHUDVnOWp3OGZvWWhIb0F2NFJ3NU0KLS0tIGFSVzFH\nMjloK3ZWUlFBMERRZUpiVmo4cjJWeWx2ekZ1b1UzSmdKRnN4K28KA/7xuz+RKZ4x\nnQ2zNoWfyHVs0RhD2SjXxPrFlE3KE7fFfuJuxcNsGKPZECWuKhm5CFh9TVdTd8wI\nmHmh93r9Mw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35261812"],["reveal_at","2026-12-30T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","fb6303f968f6a393128624ee452af332dfbf373a6994e30e40eb39cb8a6d796e"],["ct","13aec7211d2487df603d0e702d2ee6f01efe3e7ab65533f3bb8ccc9e087dab08"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r35261812.tlock b/reveal/v5-000021/r35261812.tlock
new file mode 100644
index 0000000..50a9cec
--- /dev/null
+++ b/reveal/v5-000021/r35261812.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1MjYxODEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKZ01kM1NXZTFsSm93ZldHV2Q5VmdrRzFnYTVIcklUbGVTZmhOL1NF
5dU84b3l4dFhOSW5Mb1U4SWc1cnVLM1dTdApBWGxWcEgzcm5jZWt5WW1NczJTSDhW
6ZTQ1QkFaTVZjNlRpWXJoTmRCODFZWTlpcnp5YkYrSFIwM2VodWsrV1IrCjNxVWNP
7OXBSalYwWGRNRXBkRVgrcnZHUDVnOWp3OGZvWWhIb0F2NFJ3NU0KLS0tIGFSVzFH
8MjloK3ZWUlFBMERRZUpiVmo4cjJWeWx2ekZ1b1UzSmdKRnN4K28KA/7xuz+RKZ4x
9nQ2zNoWfyHVs0RhD2SjXxPrFlE3KE7fFfuJuxcNsGKPZECWuKhm5CFh9TVdTd8wI
10mHmh93r9Mw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r35405812.ct b/reveal/v5-000021/r35405812.ct
new file mode 100644
index 0000000..798de19
--- /dev/null
+++ b/reveal/v5-000021/r35405812.ct
Binary files differ
diff --git a/reveal/v5-000021/r35405812.nostr.json b/reveal/v5-000021/r35405812.nostr.json
new file mode 100644
index 0000000..8d93e39
--- /dev/null
+++ b/reveal/v5-000021/r35405812.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1NDA1ODEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcVkyZ1pUcDFKV3p4Y2gvbUo4R0MvV1hieVEvNWJGREZ0TlplMmdl\nNjNYQzUxZUZ5Z3czZXp3YlJYcHBobXVCKwpFSlJ0TmV0UEYrcmZxWklOWmd0aDQ3\nUFRrY2VHN2Vzc042aHNvbElMUnNjelM0RTJ0Tmg5SkxzMjNFNkJ1L3g5CjdnbW5u\nVGdFUlZSdk9GTGtIVmUwWHhyVnM1MTRIZjZVcTJ2aHNDTkp3ZncKLS0tIGVHN0FU\nK2Z2ZUNBb2RHOFpHRmV0WXZtWnlIdjFtV1RuK3RkeVdQajFXeTgKNUzBc6PTeHO7\n/v6nLNOIybSg+zhQ3kSqESPNP6j3RrDezHBQXBY8oTzKZjYRfY6bE9xLbUN6OwbR\nOFIFdgbrRA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35405812"],["reveal_at","2027-01-04T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","5c37164877bea0c5924ca20e051c8bdd81d6566b27c2e3cb96a0f26207b15ac4"],["ct","ced91e3040ebb1b169c0c2a82f71167505a83a7e09fa236941e75884b0839815"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r35405812.tlock b/reveal/v5-000021/r35405812.tlock
new file mode 100644
index 0000000..f583986
--- /dev/null
+++ b/reveal/v5-000021/r35405812.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1NDA1ODEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcVkyZ1pUcDFKV3p4Y2gvbUo4R0MvV1hieVEvNWJGREZ0TlplMmdl
5NjNYQzUxZUZ5Z3czZXp3YlJYcHBobXVCKwpFSlJ0TmV0UEYrcmZxWklOWmd0aDQ3
6UFRrY2VHN2Vzc042aHNvbElMUnNjelM0RTJ0Tmg5SkxzMjNFNkJ1L3g5CjdnbW5u
7VGdFUlZSdk9GTGtIVmUwWHhyVnM1MTRIZjZVcTJ2aHNDTkp3ZncKLS0tIGVHN0FU
8K2Z2ZUNBb2RHOFpHRmV0WXZtWnlIdjFtV1RuK3RkeVdQajFXeTgKNUzBc6PTeHO7
9/v6nLNOIybSg+zhQ3kSqESPNP6j3RrDezHBQXBY8oTzKZjYRfY6bE9xLbUN6OwbR
10OFIFdgbrRA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r35722612.ct b/reveal/v5-000021/r35722612.ct
new file mode 100644
index 0000000..abd507b
--- /dev/null
+++ b/reveal/v5-000021/r35722612.ct
Binary files differ
diff --git a/reveal/v5-000021/r35722612.nostr.json b/reveal/v5-000021/r35722612.nostr.json
new file mode 100644
index 0000000..8603f80
--- /dev/null
+++ b/reveal/v5-000021/r35722612.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1NzIyNjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcEd0RUlMQ3VPZ3NWMWIwb1c4UnRVZTRhTjdRcXI5SEdrU3JrcjVC\nR21JZHdEL01LYW0xRXIxVVJPaXFGV3hxUApBMWVHWVpYaUR2K1V3U3hkSDdpTW93\nU3BlMHZvd1VEa0hNS0lWalRyRHNFSUhkOWxLQXR5UlZXR1lGblJ6dC9yCno3R0JF\nVnpEY2FqT3ZoSmpZWkZmdlJaditYNE9MdDh0cGxhYUtRcnRrclkKLS0tIExzN1Ey\nZkNBVkN6QW4yQW9HVzZOTS9nMHRsREpxdU9rU0krbnN6Q210OVUKUANS65RxhDtT\n3oL0KGGXPBgOFObbmnQbZTlNDwN4rqk/QOMOhr9VzMvys48+W8f2mCM7qoxws896\nlm9mj2oOrA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35722612"],["reveal_at","2027-01-15T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","87d5a265a3e1718ba07428192110da7bbd30029338d52408b7882990ff5bdda4"],["ct","ea878e4d8c35156e573b50338e98d4c6e6bed815f86e01b0c8416637c6b9d3d0"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r35722612.tlock b/reveal/v5-000021/r35722612.tlock
new file mode 100644
index 0000000..f0f1981
--- /dev/null
+++ b/reveal/v5-000021/r35722612.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1NzIyNjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcEd0RUlMQ3VPZ3NWMWIwb1c4UnRVZTRhTjdRcXI5SEdrU3JrcjVC
5R21JZHdEL01LYW0xRXIxVVJPaXFGV3hxUApBMWVHWVpYaUR2K1V3U3hkSDdpTW93
6U3BlMHZvd1VEa0hNS0lWalRyRHNFSUhkOWxLQXR5UlZXR1lGblJ6dC9yCno3R0JF
7VnpEY2FqT3ZoSmpZWkZmdlJaditYNE9MdDh0cGxhYUtRcnRrclkKLS0tIExzN1Ey
8ZkNBVkN6QW4yQW9HVzZOTS9nMHRsREpxdU9rU0krbnN6Q210OVUKUANS65RxhDtT
93oL0KGGXPBgOFObbmnQbZTlNDwN4rqk/QOMOhr9VzMvys48+W8f2mCM7qoxws896
10lm9mj2oOrA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r35751412.ct b/reveal/v5-000021/r35751412.ct
new file mode 100644
index 0000000..2fd8647
--- /dev/null
+++ b/reveal/v5-000021/r35751412.ct
Binary files differ
diff --git a/reveal/v5-000021/r35751412.nostr.json b/reveal/v5-000021/r35751412.nostr.json
new file mode 100644
index 0000000..995bf2b
--- /dev/null
+++ b/reveal/v5-000021/r35751412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1NzUxNDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcDlVYjl1VkFpZ3h2NTJIdW13eHFCY3oyNVllcVptdFBNbUUwVkVL\nSjhiQlczemFGNU1valNuSi9uNTRXMXBZYQpFYUU2RHVEZWhrRFpSdVI4RFpxZDMx\nclBDWndjM3lsbUw4YUhlL0JVQ0h6V0VFMEhZMXk0S3lvRXhFWlgrTHRkCkZ5amlQ\nNWpsSllqd3Z5djB2RmdIdjh5ZFl2YlVueHE5aUQ1M1AvS2NEV2cKLS0tIHg5SWUw\nVEdJcFhmb2ZCQXR3eHV1TThZUVl6aVNWaFVBTytQU0NhNzU1UWsKhAwyVwPvU/r6\nbvmXcEQa8cMIc4u4cdkmcg1/t32ytU2SWqNjsYk0HmUnNEYGz7YhdQTy6rcpOhPl\ncT1UyUUcpw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35751412"],["reveal_at","2027-01-16T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","b8e86b052508c4796178d00d338507d1631028175b3f113ba39e249df593691b"],["ct","38b3508bfeb043271b0bb15d8258b47f4ef9cd26ddf107eb7ecfb4c1481ec1d9"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r35751412.tlock b/reveal/v5-000021/r35751412.tlock
new file mode 100644
index 0000000..84eb20c
--- /dev/null
+++ b/reveal/v5-000021/r35751412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1NzUxNDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcDlVYjl1VkFpZ3h2NTJIdW13eHFCY3oyNVllcVptdFBNbUUwVkVL
5SjhiQlczemFGNU1valNuSi9uNTRXMXBZYQpFYUU2RHVEZWhrRFpSdVI4RFpxZDMx
6clBDWndjM3lsbUw4YUhlL0JVQ0h6V0VFMEhZMXk0S3lvRXhFWlgrTHRkCkZ5amlQ
7NWpsSllqd3Z5djB2RmdIdjh5ZFl2YlVueHE5aUQ1M1AvS2NEV2cKLS0tIHg5SWUw
8VEdJcFhmb2ZCQXR3eHV1TThZUVl6aVNWaFVBTytQU0NhNzU1UWsKhAwyVwPvU/r6
9bvmXcEQa8cMIc4u4cdkmcg1/t32ytU2SWqNjsYk0HmUnNEYGz7YhdQTy6rcpOhPl
10cT1UyUUcpw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r35809012.ct b/reveal/v5-000021/r35809012.ct
new file mode 100644
index 0000000..ffeb14b
--- /dev/null
+++ b/reveal/v5-000021/r35809012.ct
Binary files differ
diff --git a/reveal/v5-000021/r35809012.nostr.json b/reveal/v5-000021/r35809012.nostr.json
new file mode 100644
index 0000000..1106a5e
--- /dev/null
+++ b/reveal/v5-000021/r35809012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1ODA5MDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKa1NsUlRjeXp2Rmd2M3JVaEw4MFlJSWkvVUN1WWZ4MFFMQVMrR2pD\nWUVXQWRoME9NNXorWFpmWnRHN1RGcTlFRApESFpKUmF1Qk9ETHhIdDBYTnh2ekRE\na3FFeUF4NWwyd1VGbHpnR3BORW4wMW5peHhqRnlOdXBBNXlJS3pZeEE5CmdCV2k2\nTTJTdUI0RkpJNXBmSFgyeWxTRlZyYkxsSG42a3VOS290YWtDUmMKLS0tIDB1aWps\nVDd0djNDa1lCWmo0bW00QWFhay9ZSnhUNHcyd2diZnRTemVoeVEKgF3bHb64hQqu\nmYVClB2vN1X9wH9mEAq4bjMcIF6zu9eU70Ydo2sFTI0tS81pUW4j0Or9IhlkEIBI\nHfG+GVKL4w==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35809012"],["reveal_at","2027-01-18T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","a724fe3bd7e892f4582f11bbbd6aaecac0ed1298bdcdc7212e270d3b2fd414c3"],["ct","c85fd44bb15960f2f9d09601b06bb96a9caacfffa78ff009fa4871101e9859c3"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r35809012.tlock b/reveal/v5-000021/r35809012.tlock
new file mode 100644
index 0000000..7e0ff91
--- /dev/null
+++ b/reveal/v5-000021/r35809012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1ODA5MDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKa1NsUlRjeXp2Rmd2M3JVaEw4MFlJSWkvVUN1WWZ4MFFMQVMrR2pD
5WUVXQWRoME9NNXorWFpmWnRHN1RGcTlFRApESFpKUmF1Qk9ETHhIdDBYTnh2ekRE
6a3FFeUF4NWwyd1VGbHpnR3BORW4wMW5peHhqRnlOdXBBNXlJS3pZeEE5CmdCV2k2
7TTJTdUI0RkpJNXBmSFgyeWxTRlZyYkxsSG42a3VOS290YWtDUmMKLS0tIDB1aWps
8VDd0djNDa1lCWmo0bW00QWFhay9ZSnhUNHcyd2diZnRTemVoeVEKgF3bHb64hQqu
9mYVClB2vN1X9wH9mEAq4bjMcIF6zu9eU70Ydo2sFTI0tS81pUW4j0Or9IhlkEIBI
10HfG+GVKL4w==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r35866612.ct b/reveal/v5-000021/r35866612.ct
new file mode 100644
index 0000000..76d3ed4
--- /dev/null
+++ b/reveal/v5-000021/r35866612.ct
Binary files differ
diff --git a/reveal/v5-000021/r35866612.nostr.json b/reveal/v5-000021/r35866612.nostr.json
new file mode 100644
index 0000000..db7416d
--- /dev/null
+++ b/reveal/v5-000021/r35866612.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1ODY2NjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcitsU0NUWUFqNWpiVXdQS25mbG9vOGYxSmEvVDlXc29mWHh1Yk1w\ndmU0OGJTMUwvdHBYRlV2WTFmTks0ZUhWZgpDdUtoK2E4YjdRM2w2ZXlOUi9kbG51\nWEg4WXJKK3dNbSszSm1hdzArdUlmaXF0K2c5b2lLTDZxS01UV3A1ZTJsCmQ2K2pU\ndWJGdnNvaU5oV3JDUm02ZjROaDZXSDhzRlFMczMvVC9ETms4dU0KLS0tIENlRnNv\nejN3RmJQRngzK2NkdkVzamVza2ZSd1hIaWdmcktxdVRQU3krWWsKrjZyZc55aFUG\nwSg/NQ4BVvi3c0YvFhvuSC1HcJu/3xezodkq8ucvCU2oSBmSWmN4SVx9IjvspXLg\npdk8qC5hMw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35866612"],["reveal_at","2027-01-20T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","edf671852ddb1a3e873493cd53f8e81d793981df3a85fa20999dad655d988459"],["ct","d6f4cade2ab9ab3b59d7f8e8cdc31dad926a17c1606faeb62bcfe26ce2ea92bd"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r35866612.tlock b/reveal/v5-000021/r35866612.tlock
new file mode 100644
index 0000000..6af9eb0
--- /dev/null
+++ b/reveal/v5-000021/r35866612.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1ODY2NjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcitsU0NUWUFqNWpiVXdQS25mbG9vOGYxSmEvVDlXc29mWHh1Yk1w
5dmU0OGJTMUwvdHBYRlV2WTFmTks0ZUhWZgpDdUtoK2E4YjdRM2w2ZXlOUi9kbG51
6WEg4WXJKK3dNbSszSm1hdzArdUlmaXF0K2c5b2lLTDZxS01UV3A1ZTJsCmQ2K2pU
7dWJGdnNvaU5oV3JDUm02ZjROaDZXSDhzRlFMczMvVC9ETms4dU0KLS0tIENlRnNv
8ejN3RmJQRngzK2NkdkVzamVza2ZSd1hIaWdmcktxdVRQU3krWWsKrjZyZc55aFUG
9wSg/NQ4BVvi3c0YvFhvuSC1HcJu/3xezodkq8ucvCU2oSBmSWmN4SVx9IjvspXLg
10pdk8qC5hMw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r35924212.ct b/reveal/v5-000021/r35924212.ct
new file mode 100644
index 0000000..fac7058
--- /dev/null
+++ b/reveal/v5-000021/r35924212.ct
Binary files differ
diff --git a/reveal/v5-000021/r35924212.nostr.json b/reveal/v5-000021/r35924212.nostr.json
new file mode 100644
index 0000000..50f720a
--- /dev/null
+++ b/reveal/v5-000021/r35924212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1OTI0MjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKalFjakVnenE4MlNQVnBmc3ZyZVZ0YWViZEk5MXlFdU1rMDcvQkRK\nQkJGaDR4Z05aTzZtWk51Z0NVRWcwZTVQbApHTmt6bXN5T1doWEdVSHV3ZkZscW5x\nRkZuVEpNUGJhWTlhSHZYb1J4SWdUSFZDMEZaeVBRQWd1cFdPMnhMZkU3ClRFc3VL\nMy90RWxoOUZVVDBudjJNZjd4bjdtZmNJRVZ2R09jMUk4bWhTeUkKLS0tIGx1T3ZH\nL3A3cmZJZWgvOE5tLy9rNHpIVjRFNmRGVTRwVnI4U1BWMzBjYUkKr4AIiqySG+uc\n6G+C3EzB7CzRJRoluqcx3QLDNauHm9iSXVprqkUNYilywO+fUhtiILKtg9HxB6U7\nx/heercaLg==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","35924212"],["reveal_at","2027-01-22T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","518f86f2e0964b668a851516c93b0a2e2ae4711123b38c0a4594ab861e938412"],["ct","94f2c89d7b07c3c8b8ebbafa5bc07de99b52b00b79244a694c9c49152897a7ff"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r35924212.tlock b/reveal/v5-000021/r35924212.tlock
new file mode 100644
index 0000000..6de8a49
--- /dev/null
+++ b/reveal/v5-000021/r35924212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM1OTI0MjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKalFjakVnenE4MlNQVnBmc3ZyZVZ0YWViZEk5MXlFdU1rMDcvQkRK
5QkJGaDR4Z05aTzZtWk51Z0NVRWcwZTVQbApHTmt6bXN5T1doWEdVSHV3ZkZscW5x
6RkZuVEpNUGJhWTlhSHZYb1J4SWdUSFZDMEZaeVBRQWd1cFdPMnhMZkU3ClRFc3VL
7My90RWxoOUZVVDBudjJNZjd4bjdtZmNJRVZ2R09jMUk4bWhTeUkKLS0tIGx1T3ZH
8L3A3cmZJZWgvOE5tLy9rNHpIVjRFNmRGVTRwVnI4U1BWMzBjYUkKr4AIiqySG+uc
96G+C3EzB7CzRJRoluqcx3QLDNauHm9iSXVprqkUNYilywO+fUhtiILKtg9HxB6U7
10x/heercaLg==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r36068212.ct b/reveal/v5-000021/r36068212.ct
new file mode 100644
index 0000000..19915e9
--- /dev/null
+++ b/reveal/v5-000021/r36068212.ct
Binary files differ
diff --git a/reveal/v5-000021/r36068212.nostr.json b/reveal/v5-000021/r36068212.nostr.json
new file mode 100644
index 0000000..607de74
--- /dev/null
+++ b/reveal/v5-000021/r36068212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2MDY4MjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKdDQwMWxyKzFhNXF1U1YyYmk1REZRblRGaXV1UGp0UzFyREh5ZFNO\nZjJDQXIxOWFBUFJUZnpnWHQ2M0szV0RvRApGSlhPd1VPWjR1ekRkOHJ2ekNiUDVJ\nR3ZZNHdBUWlHWXpCaSs3Tko4d1crd3A1WFZpdkt0UDl2QmtnTmI5eEJhCkJTL3lK\nT2NMWjJxUWd4OVJ6MUtNK0Fib2hqckZSYXd2VmF3N0sveG5mOTQKLS0tIG5yVlkx\neWtXMytnRW9YSGUzZnVIajlDNE82MFAxajZlZFl1QWhmOVRYc0EKPYHC1rsoC50j\n7d7Ld88bq57XQ4k5YlrcJvoyOWi4sAznNplUrtQ5dUBk/ki27KgrWRcYUBRgIxSZ\nOGcS+8Y3qA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36068212"],["reveal_at","2027-01-27T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","4c9f4194fa0e35446d483c167e45a25bd55b40dd6317427c4249a90ba1dc8297"],["ct","7c52ffd17f68eed23b7294c8b159ec782e04ec97bc222c666d9a42bd7256e6a5"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r36068212.tlock b/reveal/v5-000021/r36068212.tlock
new file mode 100644
index 0000000..f4814f0
--- /dev/null
+++ b/reveal/v5-000021/r36068212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2MDY4MjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKdDQwMWxyKzFhNXF1U1YyYmk1REZRblRGaXV1UGp0UzFyREh5ZFNO
5ZjJDQXIxOWFBUFJUZnpnWHQ2M0szV0RvRApGSlhPd1VPWjR1ekRkOHJ2ekNiUDVJ
6R3ZZNHdBUWlHWXpCaSs3Tko4d1crd3A1WFZpdkt0UDl2QmtnTmI5eEJhCkJTL3lK
7T2NMWjJxUWd4OVJ6MUtNK0Fib2hqckZSYXd2VmF3N0sveG5mOTQKLS0tIG5yVlkx
8eWtXMytnRW9YSGUzZnVIajlDNE82MFAxajZlZFl1QWhmOVRYc0EKPYHC1rsoC50j
97d7Ld88bq57XQ4k5YlrcJvoyOWi4sAznNplUrtQ5dUBk/ki27KgrWRcYUBRgIxSZ
10OGcS+8Y3qA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r36097012.ct b/reveal/v5-000021/r36097012.ct
new file mode 100644
index 0000000..41a39e1
--- /dev/null
+++ b/reveal/v5-000021/r36097012.ct
Binary files differ
diff --git a/reveal/v5-000021/r36097012.nostr.json b/reveal/v5-000021/r36097012.nostr.json
new file mode 100644
index 0000000..3e4ed57
--- /dev/null
+++ b/reveal/v5-000021/r36097012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2MDk3MDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKaHBDZ2JONjdtdjJnOXRHcm9Gak9STlFEMCtwUXNsSnBNbFF5Wmo0\nQkpaZ0tIa3pCSHM4ZEdmR3cwSis5eWNYSApHYU1LMjFRTjMvbGVCRFkyUnNjNHgv\nQ2QxMWx0UEtZUDRXSWQwa2NydjYyd1RRNW9mZXhMckR5c2dUd0JXbTdPCndlZlkr\ndEpkM3ppUzE3L0hpUm1xbER0MHYxNHBoNUtCQVhJRFE4TWp3SE0KLS0tIEZ0WmFl\nNTZ1RUh1emRwM25CeGdzVEIyOWdVNzVtQmJBRktKU3ovcW1Gb2MKqe80E6cJW1+j\nkjdnjJHiXST2c52kI8FIUzn56wZbKTeq+QKR5s74kOoT9WJ4cB06QQX23nnpnwBJ\nspMZ2I7fkA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36097012"],["reveal_at","2027-01-28T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","d6af19c49377fdd564c7384f07274dddbe5dd32990d8df5e3359d5abd6121de9"],["ct","4e5f6cb36bd357664aa569d4b661bf776275b0684a5465347e86bc130fcc2826"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r36097012.tlock b/reveal/v5-000021/r36097012.tlock
new file mode 100644
index 0000000..5c4eac3
--- /dev/null
+++ b/reveal/v5-000021/r36097012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2MDk3MDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKaHBDZ2JONjdtdjJnOXRHcm9Gak9STlFEMCtwUXNsSnBNbFF5Wmo0
5QkpaZ0tIa3pCSHM4ZEdmR3cwSis5eWNYSApHYU1LMjFRTjMvbGVCRFkyUnNjNHgv
6Q2QxMWx0UEtZUDRXSWQwa2NydjYyd1RRNW9mZXhMckR5c2dUd0JXbTdPCndlZlkr
7dEpkM3ppUzE3L0hpUm1xbER0MHYxNHBoNUtCQVhJRFE4TWp3SE0KLS0tIEZ0WmFl
8NTZ1RUh1emRwM25CeGdzVEIyOWdVNzVtQmJBRktKU3ovcW1Gb2MKqe80E6cJW1+j
9kjdnjJHiXST2c52kI8FIUzn56wZbKTeq+QKR5s74kOoT9WJ4cB06QQX23nnpnwBJ
10spMZ2I7fkA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r36183412.ct b/reveal/v5-000021/r36183412.ct
new file mode 100644
index 0000000..d6d128e
--- /dev/null
+++ b/reveal/v5-000021/r36183412.ct
Binary files differ
diff --git a/reveal/v5-000021/r36183412.nostr.json b/reveal/v5-000021/r36183412.nostr.json
new file mode 100644
index 0000000..a18b12f
--- /dev/null
+++ b/reveal/v5-000021/r36183412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2MTgzNDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKajI1Uzl4SXZNS0ZnVkF3UVBXQmdaODl6VkdhV00zRW4xcXRHd0lq\nZDdORjE5VUt3d0VoaW03RFVycVJ3UjMwRApBd29IVDFkTVJuR0c3NkpEVnIxRFRG\nWllMMVZqL0VJOWRSbUZ5bkRCTndiM1MyOUhxM3NKSURqamM4cWxyZVNTCmJ3a2hn\nS0NMYTdCWFVpN3RrbmdpQmxzMWVQOFRPVDljdWdla2hDKzJkZjAKLS0tIG5zcm4v\ndVhZTjF5Mm9RYjZndVUxcnZYeWNZQUY5WnJYVVJCVHJNWmFwODgK8uDjY4+TYd4x\ngPmXm8MBTmKKP0B95TayhnuARGKEoTxGJKUjgjxCNLkV6FGhQc/65Dn/QqA+OyFA\nIBXfPm7omw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36183412"],["reveal_at","2027-01-31T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","42c38e0289b0f5d9ead1ba9ebac654baee0d3983768b4333dc4a14ff4cdd9e8c"],["ct","3e6e3963d59fd19ab29bb7de088024545e94063a932ed262044b5d705156150d"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r36183412.tlock b/reveal/v5-000021/r36183412.tlock
new file mode 100644
index 0000000..4b54b60
--- /dev/null
+++ b/reveal/v5-000021/r36183412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2MTgzNDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKajI1Uzl4SXZNS0ZnVkF3UVBXQmdaODl6VkdhV00zRW4xcXRHd0lq
5ZDdORjE5VUt3d0VoaW03RFVycVJ3UjMwRApBd29IVDFkTVJuR0c3NkpEVnIxRFRG
6WllMMVZqL0VJOWRSbUZ5bkRCTndiM1MyOUhxM3NKSURqamM4cWxyZVNTCmJ3a2hn
7S0NMYTdCWFVpN3RrbmdpQmxzMWVQOFRPVDljdWdla2hDKzJkZjAKLS0tIG5zcm4v
8dVhZTjF5Mm9RYjZndVUxcnZYeWNZQUY5WnJYVVJCVHJNWmFwODgK8uDjY4+TYd4x
9gPmXm8MBTmKKP0B95TayhnuARGKEoTxGJKUjgjxCNLkV6FGhQc/65Dn/QqA+OyFA
10IBXfPm7omw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r36269812.ct b/reveal/v5-000021/r36269812.ct
new file mode 100644
index 0000000..b3dec6d
--- /dev/null
+++ b/reveal/v5-000021/r36269812.ct
Binary files differ
diff --git a/reveal/v5-000021/r36269812.nostr.json b/reveal/v5-000021/r36269812.nostr.json
new file mode 100644
index 0000000..2d8e236
--- /dev/null
+++ b/reveal/v5-000021/r36269812.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2MjY5ODEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKbGtUM2hsNlU5bjZEV3loVit4UnFzTGNhL25zZE1BQzN0UVU1RC9F\nKzlhc3NWS0NROWhFcWhWaGNoY29lcGo3NApCZlNVYURnUnRVMmlBME1qVjdzbkY5\nUDlLSGdxQ2oyNjdKMU9ISHUyOFN6eVVOZTkzTklzWmFWTHF0bEtKMmxzCkFVbE9s\naHNpeEsxaUNZaDlLeDI1TGI5S0gvRjR0QlAwbHJweGU5YUlDRnMKLS0tIG40NHh3\nYTFRcURhMXUyd0hDZzk3eXRBTVAzVjBIZldjdjFXUFBHQkpaU1UKMNn5Poxw2UDl\nFxrPW5UVzGlr1AzPCk1K2soUE5zhHCuZKiPK78/rHwJM4YSU4x5VEaO12cAvvlRP\nG2hHAJBkZw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36269812"],["reveal_at","2027-02-03T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","176e42e2a34f540a077a5bf54776c439c86fe1fb913e9b69577a4202438b9664"],["ct","882b12330e08a6e2a89915a5cc50cf1d41006d1b416760941e5d9530ebf3da4d"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r36269812.tlock b/reveal/v5-000021/r36269812.tlock
new file mode 100644
index 0000000..b1602e3
--- /dev/null
+++ b/reveal/v5-000021/r36269812.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2MjY5ODEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKbGtUM2hsNlU5bjZEV3loVit4UnFzTGNhL25zZE1BQzN0UVU1RC9F
5Kzlhc3NWS0NROWhFcWhWaGNoY29lcGo3NApCZlNVYURnUnRVMmlBME1qVjdzbkY5
6UDlLSGdxQ2oyNjdKMU9ISHUyOFN6eVVOZTkzTklzWmFWTHF0bEtKMmxzCkFVbE9s
7aHNpeEsxaUNZaDlLeDI1TGI5S0gvRjR0QlAwbHJweGU5YUlDRnMKLS0tIG40NHh3
8YTFRcURhMXUyd0hDZzk3eXRBTVAzVjBIZldjdjFXUFBHQkpaU1UKMNn5Poxw2UDl
9FxrPW5UVzGlr1AzPCk1K2soUE5zhHCuZKiPK78/rHwJM4YSU4x5VEaO12cAvvlRP
10G2hHAJBkZw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r36413812.ct b/reveal/v5-000021/r36413812.ct
new file mode 100644
index 0000000..f485a91
--- /dev/null
+++ b/reveal/v5-000021/r36413812.ct
Binary files differ
diff --git a/reveal/v5-000021/r36413812.nostr.json b/reveal/v5-000021/r36413812.nostr.json
new file mode 100644
index 0000000..fa56a06
--- /dev/null
+++ b/reveal/v5-000021/r36413812.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2NDEzODEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcEVRLzEyQVVwdU5oTGhLTDhaNUI1by9VTE5yZ3FoMjdvcXBoZlh5\nWkxySEhQcEl3RGN2QzR6bjBMTlIvVDFaRApENXRhUURKamRmMzJudG5WWHVrR1NW\ncWRscjZPN0RXUjNJbGh5dEhnQWVNMWdPa081enhvaDZuWlFUdGRwbzQzCkxweGlr\nMFQ1K1JNOW5acVJMWldNRUxjNkptbWxDNFloRWFqVHEyeVF4NDAKLS0tIGJ2NGV2\nMFZ1N09VdDRWK1lVLzRNOU5VSjJlSFQwSHpteHR2eGwyVEkzMHcKzwScJC2nRYr7\nXOky/XyxXtJFKj7taap3NdFG37lSMYNnlNOcoPKt+YJr92zzroTNfHQZrq1/qWTC\n9OA0zazlHw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36413812"],["reveal_at","2027-02-08T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","d0cff2be0ab613b87fb606d6aeafb8b233afd436626d3993b16a97777ae928f9"],["ct","6b4c4f3ec74789c6a96bd4ad98dc9f5ace7bf7ef7e002194114a05e5aba314e7"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r36413812.tlock b/reveal/v5-000021/r36413812.tlock
new file mode 100644
index 0000000..a0d18d9
--- /dev/null
+++ b/reveal/v5-000021/r36413812.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2NDEzODEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcEVRLzEyQVVwdU5oTGhLTDhaNUI1by9VTE5yZ3FoMjdvcXBoZlh5
5WkxySEhQcEl3RGN2QzR6bjBMTlIvVDFaRApENXRhUURKamRmMzJudG5WWHVrR1NW
6cWRscjZPN0RXUjNJbGh5dEhnQWVNMWdPa081enhvaDZuWlFUdGRwbzQzCkxweGlr
7MFQ1K1JNOW5acVJMWldNRUxjNkptbWxDNFloRWFqVHEyeVF4NDAKLS0tIGJ2NGV2
8MFZ1N09VdDRWK1lVLzRNOU5VSjJlSFQwSHpteHR2eGwyVEkzMHcKzwScJC2nRYr7
9XOky/XyxXtJFKj7taap3NdFG37lSMYNnlNOcoPKt+YJr92zzroTNfHQZrq1/qWTC
109OA0zazlHw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r36557812.ct b/reveal/v5-000021/r36557812.ct
new file mode 100644
index 0000000..b7c44e4
--- /dev/null
+++ b/reveal/v5-000021/r36557812.ct
Binary files differ
diff --git a/reveal/v5-000021/r36557812.nostr.json b/reveal/v5-000021/r36557812.nostr.json
new file mode 100644
index 0000000..806a7e2
--- /dev/null
+++ b/reveal/v5-000021/r36557812.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2NTU3ODEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKZ0lJYzdiL0NocDR4Z0lqVGNMNkNZTUs1TkZSQlNzQ01TZ0h3QzZW\nS0lpRHA4aWlWWmlHMGFxWGF4ZWRrMUdSTQpFZlRlZVBsVk9ReWwwaXltWWx2eEJ6\nK2xaVVFZRVZsVzIzQWdoV3czRG9UVDJVVGM3cVNMbHlnbi9SMkE2M1BVCjRlajE1\nM2xGZWR4WGJVSDFXMWRFcHNnaUlIZzY1b3g4N2VZdm5NbFkxeDQKLS0tIFVoczVL\nKzJ6eG9hYis4MHR4R09hT0RZVHZqbkhFdGwyZmNxSVJqMnBEa2cKgV/iesMt/BmW\nVXAXJ8xu5oW6uF8DwSfxH5YN9p1gKKSGkDedU/+hJM2ch01h25J1F34zB4zsSov+\nafuqmmla8w==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36557812"],["reveal_at","2027-02-13T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","3dc8ed9943925ba02cd7a6f93a97df66b20590bb717b1d02c71a773929f8d5c5"],["ct","d948bc16600eab3b515c400d3e3906f6c72eab2e7c2758c99fccfcbb6987e89d"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r36557812.tlock b/reveal/v5-000021/r36557812.tlock
new file mode 100644
index 0000000..704e047
--- /dev/null
+++ b/reveal/v5-000021/r36557812.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2NTU3ODEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKZ0lJYzdiL0NocDR4Z0lqVGNMNkNZTUs1TkZSQlNzQ01TZ0h3QzZW
5S0lpRHA4aWlWWmlHMGFxWGF4ZWRrMUdSTQpFZlRlZVBsVk9ReWwwaXltWWx2eEJ6
6K2xaVVFZRVZsVzIzQWdoV3czRG9UVDJVVGM3cVNMbHlnbi9SMkE2M1BVCjRlajE1
7M2xGZWR4WGJVSDFXMWRFcHNnaUlIZzY1b3g4N2VZdm5NbFkxeDQKLS0tIFVoczVL
8KzJ6eG9hYis4MHR4R09hT0RZVHZqbkhFdGwyZmNxSVJqMnBEa2cKgV/iesMt/BmW
9VXAXJ8xu5oW6uF8DwSfxH5YN9p1gKKSGkDedU/+hJM2ch01h25J1F34zB4zsSov+
10afuqmmla8w==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r36874612.ct b/reveal/v5-000021/r36874612.ct
new file mode 100644
index 0000000..d5b7066
--- /dev/null
+++ b/reveal/v5-000021/r36874612.ct
@@ -0,0 +1,4 @@
17á|:1ãp9È«�}‡7�ý¤É½Õ*á·…å4‚¨}ëP†0qÏ;[HãâÜ+à ·ñ’Pã:¥Ù¹v<¦][Î#¿8ŽÆe5ò|¿[TxYæKy„�§êodþvA£±»Æì¼ã²^!‹—¦(׸äž\Úóñ7ÙÉæx+]�¼Í,’"²KéÙækÓD$ñèÖÇÖ—…’l"˜ö¼@@„Ú€$lX¬ªdϤW÷lÕu ìR¹Û%¼ˆ@°gƒèØ×Ç9ªÇhØ@,Vò.9ùnûžtç¨X—R+¤Üz&Å]âÃÜw�ÈL˜B89¤`$I„«@~îx¤‹öFJÌY 5÷L¬Å€~¼ËñHÏ&ÒØ÷i”ÚèØ&»÷ܶ­3%›p.Å£õ.@ú4Í�k¤Z«ëËþµ²÷­áÚĪo†¾aWéîŠ
2/HO®²×‚òËhÍ—KG×7N©»êÕ^º?°Íô¡ky7Iв©€4öh—n–cw¬i™9Hãt«_çjKN¶R+ýbÕ†òùÛy‡pâ,P%1¨x‘ñ³5U°šåcCq)Ê uJ霭íÓ1¼qŽ!QÒò'À
3q ¥¨æ LNò€¼¾t¤mìÚÖpäµà 7&kW´ž’uo |UõÃñŠç
4'ôjÛìÍq:ØTmfø@!ÆT”Œò7ã[ö^i"ßu‡@ý†÷)(͸žOcBQÓvwØVñ0¤‰‡MÎuVË Ù*d÷\…?E…q©+Ñ;ÏD€±×:gs·÷ˆ´7£$Sê�w J1L$�íjZdæuWîæc]OóGÒÙ~e4M �Ù�¬¢$'$èë�Êt×D[í"ò;@S<”ÀÇÙÍêhý;ýÄ \ No newline at end of file
diff --git a/reveal/v5-000021/r36874612.nostr.json b/reveal/v5-000021/r36874612.nostr.json
new file mode 100644
index 0000000..09344f7
--- /dev/null
+++ b/reveal/v5-000021/r36874612.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2ODc0NjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKaEJRRHVSTHZvNkcxWWxtdjNmS25RNTlZK3pMTXMxV0I4RDFtcklD\nbWxUUmNCZGI4QVdKa0dSZHE0b0FLWFNoUApCaUs1OEhkZzJGUllnNUM3MThtcHdt\nUGV5eWtUNlo2UllWUkpoUTF5bm43R3hNcG1rdCtIbWNadXRVclNPcit2CmtCcnA4\ncmN6bnkyTEZyRnhNUmNlOU01M3pRMGEwaHJUT2k1WWhHM21qYTQKLS0tIE1JN3Vi\ndFc5OVJrMjV2cTBlUUQzMzA2dWlscmlEcFU3dlAyNjhPRW9hR2sK4leiPmTStQW5\nsk5FB+orcmlzN+cv+T3O4HtoTcbEp7AMgFjXMClOwTEKTAbbwDnzB1jAIVla0kdK\nmyL200hRww==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36874612"],["reveal_at","2027-02-24T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","788f0c668ed38b942efc08d8fa6405e411b4cb2477aac1e6dc0553629628acb1"],["ct","a3a170f588d91eeb64ef880ae2ea42f99ee5e5d4f23af036d39402cc956e2fe9"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r36874612.tlock b/reveal/v5-000021/r36874612.tlock
new file mode 100644
index 0000000..e8ae720
--- /dev/null
+++ b/reveal/v5-000021/r36874612.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2ODc0NjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKaEJRRHVSTHZvNkcxWWxtdjNmS25RNTlZK3pMTXMxV0I4RDFtcklD
5bWxUUmNCZGI4QVdKa0dSZHE0b0FLWFNoUApCaUs1OEhkZzJGUllnNUM3MThtcHdt
6UGV5eWtUNlo2UllWUkpoUTF5bm43R3hNcG1rdCtIbWNadXRVclNPcit2CmtCcnA4
7cmN6bnkyTEZyRnhNUmNlOU01M3pRMGEwaHJUT2k1WWhHM21qYTQKLS0tIE1JN3Vi
8dFc5OVJrMjV2cTBlUUQzMzA2dWlscmlEcFU3dlAyNjhPRW9hR2sK4leiPmTStQW5
9sk5FB+orcmlzN+cv+T3O4HtoTcbEp7AMgFjXMClOwTEKTAbbwDnzB1jAIVla0kdK
10myL200hRww==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r36903412.ct b/reveal/v5-000021/r36903412.ct
new file mode 100644
index 0000000..cdf1416
--- /dev/null
+++ b/reveal/v5-000021/r36903412.ct
Binary files differ
diff --git a/reveal/v5-000021/r36903412.nostr.json b/reveal/v5-000021/r36903412.nostr.json
new file mode 100644
index 0000000..adfb9b0
--- /dev/null
+++ b/reveal/v5-000021/r36903412.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2OTAzNDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKb3hTb1puUE90VW55bE9vTjFuekRqRjBndkdFOWZNWC9JaElHZXNv\ndk9lbEN1eGlZL1hGRHZ3OC8xYjZndkpqaApEamR4L2dMQ0p3YTVVN1YvV3NqK2Fo\nRFpZMWhnY0ozcDVISFRxQ25RcFpPdjQyVkNiTjhDL3dNMnFlSnE2REo3CnZhRVM0\nQ1k1bHdabWY0cW5sbUVxN2tEVWZoVUhzWktBMGZscG52ZkN6M1EKLS0tIGtBUXpk\nU2Nxd0NtSWFnc2NiL1BUUWFXajdZKy8rTlFza1BGUnlWd2t4LzgKQ4yYhoPie+XG\n5JRc/DQKuGiyHrP6krUCm8BAAm32ZfjAt4xZHd2GpDVpZbj3gk83v4ys8JavTool\ndLWgG6WZVA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36903412"],["reveal_at","2027-02-25T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","85abef4dc1c417c3aa1e6aa2260c41f5da206fbc6551aa596bc5b3119264007e"],["ct","90fd4283d2048ae541df93521ac65aa575bac2777c690a8cda8eb11019200a0c"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r36903412.tlock b/reveal/v5-000021/r36903412.tlock
new file mode 100644
index 0000000..900c07f
--- /dev/null
+++ b/reveal/v5-000021/r36903412.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2OTAzNDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKb3hTb1puUE90VW55bE9vTjFuekRqRjBndkdFOWZNWC9JaElHZXNv
5dk9lbEN1eGlZL1hGRHZ3OC8xYjZndkpqaApEamR4L2dMQ0p3YTVVN1YvV3NqK2Fo
6RFpZMWhnY0ozcDVISFRxQ25RcFpPdjQyVkNiTjhDL3dNMnFlSnE2REo3CnZhRVM0
7Q1k1bHdabWY0cW5sbUVxN2tEVWZoVUhzWktBMGZscG52ZkN6M1EKLS0tIGtBUXpk
8U2Nxd0NtSWFnc2NiL1BUUWFXajdZKy8rTlFza1BGUnlWd2t4LzgKQ4yYhoPie+XG
95JRc/DQKuGiyHrP6krUCm8BAAm32ZfjAt4xZHd2GpDVpZbj3gk83v4ys8JavTool
10dLWgG6WZVA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r36961012.ct b/reveal/v5-000021/r36961012.ct
new file mode 100644
index 0000000..38f8800
--- /dev/null
+++ b/reveal/v5-000021/r36961012.ct
Binary files differ
diff --git a/reveal/v5-000021/r36961012.nostr.json b/reveal/v5-000021/r36961012.nostr.json
new file mode 100644
index 0000000..1462c8d
--- /dev/null
+++ b/reveal/v5-000021/r36961012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2OTYxMDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKc254K2JxMDY0T1ZYR3ArNCswY0xKdndKK2ZNcXhGU1paeklJdHZR\neC9uYlpJOVFtSk5YM0NiaVBqT1RFL0cwWgpBSUxEUy9IcTUzUTFLeC9YU21xTkxY\nU0dmTk1MY1NWQzlNcXJKeG82aDJVT0pGZm5LMys0Yjd0bU4xMkxtSmt6CkZjNi9Z\nc3lTbFVQWXZYck0rR2Y0LzJuZXJIdW03bnIwZHFMVkNFRkRxS2sKLS0tIEM2WjZk\nL3FyM1RZUmEyTVpRWVlKVEd0eTlINFBEY0JDUGxNQm9NeU9nQVEK7G9FDph9/J4H\nwflePHKJ3v6CNTwHpsYxOUNU55yAMtA7TnKnBdr7+HF3i86ZqqlPdDa7akVh+FLj\n/EOzQQ/mYA==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","36961012"],["reveal_at","2027-02-27T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","433744b601fd0ac54266c2952649dd5b4240ab8b9a41447aff3b6cd1ede0e464"],["ct","30bc661599bf5a39ae802635919cf2b3cb239f6260b95158f15a7f966a9e7d02"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r36961012.tlock b/reveal/v5-000021/r36961012.tlock
new file mode 100644
index 0000000..9f0f291
--- /dev/null
+++ b/reveal/v5-000021/r36961012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM2OTYxMDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKc254K2JxMDY0T1ZYR3ArNCswY0xKdndKK2ZNcXhGU1paeklJdHZR
5eC9uYlpJOVFtSk5YM0NiaVBqT1RFL0cwWgpBSUxEUy9IcTUzUTFLeC9YU21xTkxY
6U0dmTk1MY1NWQzlNcXJKeG82aDJVT0pGZm5LMys0Yjd0bU4xMkxtSmt6CkZjNi9Z
7c3lTbFVQWXZYck0rR2Y0LzJuZXJIdW03bnIwZHFMVkNFRkRxS2sKLS0tIEM2WjZk
8L3FyM1RZUmEyTVpRWVlKVEd0eTlINFBEY0JDUGxNQm9NeU9nQVEK7G9FDph9/J4H
9wflePHKJ3v6CNTwHpsYxOUNU55yAMtA7TnKnBdr7+HF3i86ZqqlPdDa7akVh+FLj
10/EOzQQ/mYA==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r37018612.ct b/reveal/v5-000021/r37018612.ct
new file mode 100644
index 0000000..9fc49e9
--- /dev/null
+++ b/reveal/v5-000021/r37018612.ct
Binary files differ
diff --git a/reveal/v5-000021/r37018612.nostr.json b/reveal/v5-000021/r37018612.nostr.json
new file mode 100644
index 0000000..5a4f6a9
--- /dev/null
+++ b/reveal/v5-000021/r37018612.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3MDE4NjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKaWszMTNuczZNTllrWjhxdWhMWU9rZFU1WmxhSG13TWg2NElUQkhX\naWlxL0VXMmNoVEJ0azZZODlwdlpGSkkxcwpBWjV0Y2tlZ3dmQW1yVkM4VitvOHha\nbUFmSXVBcXZUMFpkcGlkTURzZmx0cnJFYU5XUjZXNzFMRlRqT0p6STdHCmFhNTBs\nMkR4WkdKVG9hN0g3QThrM2lBYWgyNm9lL3hjMkVwN3dzc2tEMDAKLS0tIEprRmU4\nYWwxZHIzMEYxWk9xWUxYZjBrWldHU3pTOHBxUzVYcCtlOWdZaGcK0GrbV2TVGCnH\nMWT5iAsa5LTENcFnbYWoHbDYa5rUE2pN8y4kHTgsFhiR2DFp7BgU8C8ehhxHWPA0\n+/1IZ5bTvg==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","37018612"],["reveal_at","2027-03-01T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","7e24683bce20fd49ff451819480c3cb7061a89370e396bc87d1d850daefd9aee"],["ct","7850b8955052157a728b4fc4f087473cc0d1b7bd57575f531e75393a3c858d81"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r37018612.tlock b/reveal/v5-000021/r37018612.tlock
new file mode 100644
index 0000000..952e51d
--- /dev/null
+++ b/reveal/v5-000021/r37018612.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3MDE4NjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKaWszMTNuczZNTllrWjhxdWhMWU9rZFU1WmxhSG13TWg2NElUQkhX
5aWlxL0VXMmNoVEJ0azZZODlwdlpGSkkxcwpBWjV0Y2tlZ3dmQW1yVkM4VitvOHha
6bUFmSXVBcXZUMFpkcGlkTURzZmx0cnJFYU5XUjZXNzFMRlRqT0p6STdHCmFhNTBs
7MkR4WkdKVG9hN0g3QThrM2lBYWgyNm9lL3hjMkVwN3dzc2tEMDAKLS0tIEprRmU4
8YWwxZHIzMEYxWk9xWUxYZjBrWldHU3pTOHBxUzVYcCtlOWdZaGcK0GrbV2TVGCnH
9MWT5iAsa5LTENcFnbYWoHbDYa5rUE2pN8y4kHTgsFhiR2DFp7BgU8C8ehhxHWPA0
10+/1IZ5bTvg==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r37076212.ct b/reveal/v5-000021/r37076212.ct
new file mode 100644
index 0000000..f3a7664
--- /dev/null
+++ b/reveal/v5-000021/r37076212.ct
Binary files differ
diff --git a/reveal/v5-000021/r37076212.nostr.json b/reveal/v5-000021/r37076212.nostr.json
new file mode 100644
index 0000000..b68689b
--- /dev/null
+++ b/reveal/v5-000021/r37076212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3MDc2MjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKZ0NmTmZWdVpvRDN4VEY5ampMbEhaK1F4RUNEZHJ0ZTFjQm5vUlNB\ncXZ4TDM5NXovTTQ5U0ZRa1B0YmJUdDdpVApDdEJyUkdMTjA0ak91VnVyMDdHUHBU\nMCs0SEd4RlRxK1VGTG1qU1RoN2Q2SG5uTFJYWm15SkNPUnRPMlZibnZlCmdFaC9m\nVm5ldTBFNExmWW9LTWFSNjk4bHZjeVMvNkU1cll6YWE4elhram8KLS0tIEl0R2Rx\nMjhtYlh4TStHY2M0MVV3TFRQMTNMN2JST0tiMERRNXlaa2NaMkkK3Rex1qzBjO4k\nqDvlNWVPXfTxLocJ6VHT7fqbgKo3+CHQYRRRVK5SP46jJXb3X408Sj+OeRCUBLhW\nIlcRnXG3xQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","37076212"],["reveal_at","2027-03-03T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","e6212ad417dc3eec6737580bb37ecf5094822ca51ff0bcf04a5bd942ae046fad"],["ct","dcb4dbf040fe5cd639b3e7ae5db4338c9729e030de3b9d34bac5a02d01bbdc62"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r37076212.tlock b/reveal/v5-000021/r37076212.tlock
new file mode 100644
index 0000000..901f080
--- /dev/null
+++ b/reveal/v5-000021/r37076212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3MDc2MjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKZ0NmTmZWdVpvRDN4VEY5ampMbEhaK1F4RUNEZHJ0ZTFjQm5vUlNB
5cXZ4TDM5NXovTTQ5U0ZRa1B0YmJUdDdpVApDdEJyUkdMTjA0ak91VnVyMDdHUHBU
6MCs0SEd4RlRxK1VGTG1qU1RoN2Q2SG5uTFJYWm15SkNPUnRPMlZibnZlCmdFaC9m
7Vm5ldTBFNExmWW9LTWFSNjk4bHZjeVMvNkU1cll6YWE4elhram8KLS0tIEl0R2Rx
8MjhtYlh4TStHY2M0MVV3TFRQMTNMN2JST0tiMERRNXlaa2NaMkkK3Rex1qzBjO4k
9qDvlNWVPXfTxLocJ6VHT7fqbgKo3+CHQYRRRVK5SP46jJXb3X408Sj+OeRCUBLhW
10IlcRnXG3xQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r37220212.ct b/reveal/v5-000021/r37220212.ct
new file mode 100644
index 0000000..14652af
--- /dev/null
+++ b/reveal/v5-000021/r37220212.ct
Binary files differ
diff --git a/reveal/v5-000021/r37220212.nostr.json b/reveal/v5-000021/r37220212.nostr.json
new file mode 100644
index 0000000..1ba8152
--- /dev/null
+++ b/reveal/v5-000021/r37220212.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3MjIwMjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKcmRHOUxFWGhFNlQ5YVJ4R2prV2RFQjdMa1E2UklWdG5qdHY4WFEx\naFVwNkpVcDJscWcyeHZiSCtObEUyWld2aQpDQ0hzQjR2cFFMUG9iRy9oV01XWlA0\nNDlhZlZibnRHajFpUUsrMzhFL2xlQTFsSTJOSlM3cE5WeG9XZjdaZlJRClBpcFoz\nd3luc3R6UzNkWnNyUU5iTUFVNFBKU2JSWFRidE0xeUxqL0hQOE0KLS0tIHpTdGhB\nUnNncE9pTk5Ub2cvT3dMdUVVMTFGMEtMcElmQXkybTZ0TnI4ejAKIKDYfc0jKuzq\ngago3zHg0TygWLfEaqE3OudtT99oxzcrYOfR0DaTEwPTu3cD+9ea18hvonl3fiFf\nfu1Oo8le+A==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","37220212"],["reveal_at","2027-03-08T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","f68831e4cfebc679c5c27b65a140363c88a99a87799ccfd6165b13d55d838127"],["ct","a3ebb9fa2837420e3fefef88cf949dbad03ab85447bb2741edae3c9cd6aff17f"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r37220212.tlock b/reveal/v5-000021/r37220212.tlock
new file mode 100644
index 0000000..a6eee2f
--- /dev/null
+++ b/reveal/v5-000021/r37220212.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3MjIwMjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKcmRHOUxFWGhFNlQ5YVJ4R2prV2RFQjdMa1E2UklWdG5qdHY4WFEx
5aFVwNkpVcDJscWcyeHZiSCtObEUyWld2aQpDQ0hzQjR2cFFMUG9iRy9oV01XWlA0
6NDlhZlZibnRHajFpUUsrMzhFL2xlQTFsSTJOSlM3cE5WeG9XZjdaZlJRClBpcFoz
7d3luc3R6UzNkWnNyUU5iTUFVNFBKU2JSWFRidE0xeUxqL0hQOE0KLS0tIHpTdGhB
8UnNncE9pTk5Ub2cvT3dMdUVVMTFGMEtMcElmQXkybTZ0TnI4ejAKIKDYfc0jKuzq
9gago3zHg0TygWLfEaqE3OudtT99oxzcrYOfR0DaTEwPTu3cD+9ea18hvonl3fiFf
10fu1Oo8le+A==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r37249012.ct b/reveal/v5-000021/r37249012.ct
new file mode 100644
index 0000000..344252b
--- /dev/null
+++ b/reveal/v5-000021/r37249012.ct
Binary files differ
diff --git a/reveal/v5-000021/r37249012.nostr.json b/reveal/v5-000021/r37249012.nostr.json
new file mode 100644
index 0000000..b79eb4f
--- /dev/null
+++ b/reveal/v5-000021/r37249012.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3MjQ5MDEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKbHhUV2ZCM1BPZlhDYkZwZktPNG5QSzVtUTQ5ZnVibXo1MzBtMmZO\nTTYvMTZFQU9PT1owTVNKRXc4RHM5dDgwVgpESmZPMVJNcnQ5WUlPM0pmQUdBVEYy\naFBuQkZ1cmlyQkNUNGZoQllVYTFEbnp4Nm5vYXR5Y1BpKzU5R2VaSkovClh6dVBy\nRG82Z244bFltWEpFeUxRTGVnYi8vdWtadDhJcXg4UWFvdlJ4VWcKLS0tIHJPN3pK\nQkkvSUdnMWR6WTFnNmNuQWxoc2dLOTRBaEJhVkhDQTc5bUlTaHcKIvKt2IJbrtjI\ny9QVwNzH+eCL1vvdHzxICcjEpo19A/3SQkqxrxA5R58y8L+ukQ6+aZKz5grieH4Y\nFrtglWdS1Q==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","37249012"],["reveal_at","2027-03-09T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","3fd00b0ee4ab8a477f263e5f5d1776a3d1932c23ac5dd48a08b8ce733d8cc531"],["ct","2689dc06728256851f0e1475ce81b424c1bdd962b14f05a370273380a741b889"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r37249012.tlock b/reveal/v5-000021/r37249012.tlock
new file mode 100644
index 0000000..5f10ad5
--- /dev/null
+++ b/reveal/v5-000021/r37249012.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3MjQ5MDEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKbHhUV2ZCM1BPZlhDYkZwZktPNG5QSzVtUTQ5ZnVibXo1MzBtMmZO
5TTYvMTZFQU9PT1owTVNKRXc4RHM5dDgwVgpESmZPMVJNcnQ5WUlPM0pmQUdBVEYy
6aFBuQkZ1cmlyQkNUNGZoQllVYTFEbnp4Nm5vYXR5Y1BpKzU5R2VaSkovClh6dVBy
7RG82Z244bFltWEpFeUxRTGVnYi8vdWtadDhJcXg4UWFvdlJ4VWcKLS0tIHJPN3pK
8QkkvSUdnMWR6WTFnNmNuQWxoc2dLOTRBaEJhVkhDQTc5bUlTaHcKIvKt2IJbrtjI
9y9QVwNzH+eCL1vvdHzxICcjEpo19A/3SQkqxrxA5R58y8L+ukQ6+aZKz5grieH4Y
10FrtglWdS1Q==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r37421812.ct b/reveal/v5-000021/r37421812.ct
new file mode 100644
index 0000000..0828098
--- /dev/null
+++ b/reveal/v5-000021/r37421812.ct
Binary files differ
diff --git a/reveal/v5-000021/r37421812.nostr.json b/reveal/v5-000021/r37421812.nostr.json
new file mode 100644
index 0000000..1ca119a
--- /dev/null
+++ b/reveal/v5-000021/r37421812.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3NDIxODEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKaGdLN01CQjN3Y3FISEFaVkNnYWJkb1dZTUF2dzUweUsyYVo5cmtP\nU3pCOXRKNSszRE9HQWg2MlhyaVh3Ykg1UgpDeVlrWUdackIyemRucUZZSFlEVkZG\nenlFNmJvbXhEclVHRnhLcW85dk9Wem1TVnR0b1NvQXFZV3RPVnJ0UFFrCm5JTHpr\nU3dlak5NWTV4TjFWRUVvUDhlWG5uWXNHOEhNdHlzUnFMVkltNE0KLS0tIDQ3djhr\nOEpOSy9UZFJLZ0h2OGIrN2g4MlhERkFHdTNXNnJZOS8zTWl2SmsKTwTAjXTala3J\neQbENUD4mAmBKpVR7K58x/+PcKa+qeQ8QJ6807S/7zWTymG/bP6gGF+lCnxZzaKj\nGRxh6M0svw==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","37421812"],["reveal_at","2027-03-15T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","42b5991ce7d770d55c11c31f41ced5bd645ad6eab221c149f7a200b248af63fb"],["ct","bb69c30123cb9273bd2d7e9272b04599c960cbac5dfce701685bbfdf8bc8402b"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r37421812.tlock b/reveal/v5-000021/r37421812.tlock
new file mode 100644
index 0000000..03b65d1
--- /dev/null
+++ b/reveal/v5-000021/r37421812.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM3NDIxODEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKaGdLN01CQjN3Y3FISEFaVkNnYWJkb1dZTUF2dzUweUsyYVo5cmtP
5U3pCOXRKNSszRE9HQWg2MlhyaVh3Ykg1UgpDeVlrWUdackIyemRucUZZSFlEVkZG
6enlFNmJvbXhEclVHRnhLcW85dk9Wem1TVnR0b1NvQXFZV3RPVnJ0UFFrCm5JTHpr
7U3dlak5NWTV4TjFWRUVvUDhlWG5uWXNHOEhNdHlzUnFMVkltNE0KLS0tIDQ3djhr
8OEpOSy9UZFJLZ0h2OGIrN2g4MlhERkFHdTNXNnJZOS8zTWl2SmsKTwTAjXTala3J
9eQbENUD4mAmBKpVR7K58x/+PcKa+qeQ8QJ6807S/7zWTymG/bP6gGF+lCnxZzaKj
10GRxh6M0svw==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/r38170612.ct b/reveal/v5-000021/r38170612.ct
new file mode 100644
index 0000000..0931601
--- /dev/null
+++ b/reveal/v5-000021/r38170612.ct
Binary files differ
diff --git a/reveal/v5-000021/r38170612.nostr.json b/reveal/v5-000021/r38170612.nostr.json
new file mode 100644
index 0000000..7f6cc54
--- /dev/null
+++ b/reveal/v5-000021/r38170612.nostr.json
@@ -0,0 +1 @@
{"content":"-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM4MTcwNjEyIDUyZGI5YmE3\nMGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw\nMGM4NGU5NzEKa1ZvUGRkRkRSRS9ValB5bGt3L0h6a2Y2YXdhNGdaalQ2Y0ZyQmdQ\nNnJrRVVnOFRWQ1plSFdWbWZQSkNSeC9nYgpDZ0p6MDFWdXZFRU9IbWxLc2NaZFpD\nTnN0RU9vMkRsUTlvSEcrTGUyVDJUcTNsREx6QkxubTM2bjFQajR1S004Ci9IN3Iz\nUktqQjJncFk0dmZZM0VyM25PRHpmU203MXd1QkdOOVNUcjU3ZHcKLS0tIDlNYjJo\naXZIMnNremJjcmlsZFU0T2swS282d004Znpqd0N0YWFrbVYvUVkKtXuSSlZnFz4q\nMD/FpXXC/0F5aUe8zWSsbTT9H7alp/64quL0doUgJJn14YAoWhAOm63w+WiGcz6q\nl8KZemmWpQ==\n-----END AGE ENCRYPTED FILE-----\n","tags":[["t","echo-ledger-reveal"],["round","38170612"],["reveal_at","2027-04-10T00:00:00.000000Z"],["chain","52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"],["digest","b19d55efae472e7d04de39881211fb90a148e8b8125e86f965fd78fa876b389c"],["ct","2d9c1bac12257ec81fb9c7dd8de3bf2b41a2f64767f132e8d8e24c6366617f13"],["seal","ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1"]]}
diff --git a/reveal/v5-000021/r38170612.tlock b/reveal/v5-000021/r38170612.tlock
new file mode 100644
index 0000000..66ecc59
--- /dev/null
+++ b/reveal/v5-000021/r38170612.tlock
@@ -0,0 +1,11 @@
1-----BEGIN AGE ENCRYPTED FILE-----
2YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDM4MTcwNjEyIDUyZGI5YmE3
3MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
4MGM4NGU5NzEKa1ZvUGRkRkRSRS9ValB5bGt3L0h6a2Y2YXdhNGdaalQ2Y0ZyQmdQ
5NnJrRVVnOFRWQ1plSFdWbWZQSkNSeC9nYgpDZ0p6MDFWdXZFRU9IbWxLc2NaZFpD
6TnN0RU9vMkRsUTlvSEcrTGUyVDJUcTNsREx6QkxubTM2bjFQajR1S004Ci9IN3Iz
7UktqQjJncFk0dmZZM0VyM25PRHpmU203MXd1QkdOOVNUcjU3ZHcKLS0tIDlNYjJo
8aXZIMnNremJjcmlsZFU0T2swS282d004Znpqd0N0YWFrbVYvUVkKtXuSSlZnFz4q
9MD/FpXXC/0F5aUe8zWSsbTT9H7alp/64quL0doUgJJn14YAoWhAOm63w+WiGcz6q
10l8KZemmWpQ==
11-----END AGE ENCRYPTED FILE-----
diff --git a/reveal/v5-000021/seal.json b/reveal/v5-000021/seal.json
new file mode 100644
index 0000000..582fbf5
--- /dev/null
+++ b/reveal/v5-000021/seal.json
@@ -0,0 +1,43 @@
1{
2 "algorithm": "sha256-live-v5",
3 "anchor_ref": "sha256:ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1",
4 "covers_after": "2026-10-10T23:12:20.583026Z",
5 "covers_through": "2026-10-17T16:11:15.061357Z",
6 "digest": "ac8ad12cdde9c9418ddaf81b2b71ce8f42d09657fc37268dbe2365ab770920a1",
7 "follows_seq": 51,
8 "n_forecasts": 14288,
9 "n_groups": 40,
10 "n_withheld": 14288,
11 "prev_digest": "b4e16362e652726ac09a3e88fc4b276dbfc6dd59c57501ec2219f461d390180a",
12 "prev_seq": 20,
13 "sealed_at": "2026-10-17T16:15:00.852924Z",
14 "seq": 21,
15 "variant": {
16 "beacon": {
17 "chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",
18 "genesis_time": 1692803367,
19 "period": 3,
20 "relays": [
21 "https://api.drand.sh",
22 "https://api2.drand.sh",
23 "https://api3.drand.sh",
24 "https://drand.cloudflare.com"
25 ],
26 "scheme": "bls-unchained-g1-rfc9380"
27 },
28 "cipher": "chacha20poly1305-zlib6-nonce0",
29 "gate": {
30 "default": "withheld: a kept salt can be released later; an opened text can never be withdrawn",
31 "opened": "none",
32 "why": "no decision by Echo yet"
33 },
34 "line": "numeric<TAB>open:<v4 line> | numeric<TAB>withheld:sha256(salt||v4 line)",
35 "reveal": "utc-day-after-close",
36 "salts": "key ring: one content a seal, one part a line",
37 "tool": {
38 "name": "tle",
39 "sha256": "69157d8c14a1d390d1b7744946288f83d4b10748471d5447f9abb77a5902c541",
40 "version": "tlock v1.2.0 -- github.com/drand/tlock"
41 }
42 }
43}