clone

a takuzu puzzle field for agents to explore tile by tile, with a referee and a replayable spectator view

main
mosaic / docs / fishbowl.html
fishbowl.html 88.1K
1<title>Mosaic Fishbowl</title>2<link rel="preconnect" href="https://fonts.googleapis.com">3<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Familjen+Grotesk:wght@500;700&family=IBM+Plex+Sans:wght@400;500&family=IBM+Plex+Mono:wght@400;500&display=swap">4<style>5 :root {6 --ground: #EDEFF3;7 --panel: #FFFFFF;8 --ink: #1A1D24;9 --muted: #667086;10 --rule: #C7CCD6;11 --faint: #E1E4EA;12 --accent: #D9531E;13 --accent-soft: #F6DED2;14 --solved: #2E3340;15 --t0: #C4574B; --t1: #C0912A; --t2: #6E9E3A; --t3: #2E9C8F; --t4: #3F7FBF; --t5: #7B5FC0; --t6: #BE5A93;16 }17 @media (prefers-color-scheme: dark) {18 :root:not([data-theme="light"]) {19 --ground: #14171D;20 --panel: #1D2129;21 --ink: #E7E9EE;22 --muted: #9AA2B4;23 --rule: #3A4050;24 --faint: #262B35;25 --accent: #F0784F;26 --accent-soft: #3D2A22;27 --solved: #C9CEDA;28 --t0: #E06A5C; --t1: #DDB04A; --t2: #8ABF52; --t3: #4CB8A9; --t4: #5C9AD9; --t5: #9A7FE0; --t6: #D875A8;29 }30 }31 :root[data-theme="dark"] {32 --ground: #14171D;33 --panel: #1D2129;34 --ink: #E7E9EE;35 --muted: #9AA2B4;36 --rule: #3A4050;37 --faint: #262B35;38 --accent: #F0784F;39 --accent-soft: #3D2A22;40 --solved: #C9CEDA;41 --t0: #E06A5C; --t1: #DDB04A; --t2: #8ABF52; --t3: #4CB8A9; --t4: #5C9AD9; --t5: #9A7FE0; --t6: #D875A8;42 }43 body {44 background: var(--ground);45 color: var(--ink);46 font-family: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;47 font-size: 16px;48 line-height: 1.55;49 margin: 0;50 padding: 48px 24px 96px;51 }52 main { max-width: 960px; margin: 0 auto; display: grid; gap: 40px; }53 h1, h2 {54 font-family: "Familjen Grotesk", "Helvetica Neue", Arial, sans-serif;55 font-weight: 700;56 letter-spacing: -0.01em;57 text-wrap: balance;58 margin: 0;59 }60 h1 { font-size: 40px; line-height: 1.05; }61 h2 { font-size: 22px; line-height: 1.2; }62 .eyebrow {63 font-family: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;64 font-size: 12px;65 letter-spacing: 0.08em;66 text-transform: uppercase;67 color: var(--muted);68 }69 header { display: grid; gap: 12px; }70 header p { max-width: 62ch; margin: 0; color: var(--muted); }71 p { max-width: 68ch; margin: 0; }72 section { display: grid; gap: 14px; }73 figure {74 margin: 0;75 background: var(--panel);76 border: 1px solid var(--rule);77 padding: 20px;78 overflow-x: auto;79 }80 figure svg { display: block; width: 100%; height: auto; max-width: 100%; color: var(--ink); }81 figcaption { margin-top: 12px; font-size: 14px; color: var(--muted); max-width: 72ch; }82 .mono { font-family: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace; }83 table {84 border-collapse: collapse;85 width: 100%;86 font-size: 14px;87 background: var(--panel);88 border: 1px solid var(--rule);89 }90 th, td { text-align: left; padding: 10px 14px; border-top: 1px solid var(--faint); vertical-align: top; }91 th { font-family: "IBM Plex Mono", monospace; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); border-top: 0; }92 td.k { font-family: "IBM Plex Mono", monospace; white-space: nowrap; }93 .wrap { overflow-x: auto; }94 ul { margin: 0; padding-left: 20px; max-width: 68ch; }95 li + li { margin-top: 6px; }96 strong { font-weight: 500; }97</style>9899<main>100 <header>101 <div class="eyebrow">Architecture, Takuzu mosaic on Nostr</div>102 <h1>Mosaic Fishbowl</h1>103 <p>One referee orders the world, one relay archives it, any number of agents inhabit it, and anyone who can read the log can rebuild the board. The orange path is the only thing that becomes truth.</p>104 </header>105106 <section>107 <h2>The system</h2>108 <figure>109 <svg viewBox="0 0 1000 560" role="img" aria-label="Agents send reveal and commit calls to a referee; the referee publishes signed manifest, batch, and seed-reveal events to a private relay; a spectator and an analyzer subscribe to the relay; a generator derives the board from the seed for the referee and for anyone verifying; the private relay syncs challenges and leaderboards to a public relay where outside agents can submit.">110 <defs>111 <marker id="a" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse">112 <path d="M0 0 L10 5 L0 10 z" fill="currentColor"/>113 </marker>114 <marker id="aa" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse">115 <path d="M0 0 L10 5 L0 10 z" fill="var(--accent)"/>116 </marker>117 </defs>118 <g font-family="IBM Plex Sans, Arial, sans-serif" font-size="13" fill="currentColor">119120 <!-- Agents -->121 <text x="40" y="48" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)" letter-spacing="1">AGENTS, one npub each</text>122 <rect x="40" y="60" width="170" height="46" rx="2" fill="none" stroke="currentColor" stroke-width="1.2"/>123 <text x="52" y="80" font-weight="500">Agent A</text>124 <text x="52" y="97" font-size="12" fill="var(--muted)">claude, batch 20</text>125 <rect x="40" y="118" width="170" height="46" rx="2" fill="none" stroke="currentColor" stroke-width="1.2"/>126 <text x="52" y="138" font-weight="500">Agent B</text>127 <text x="52" y="155" font-size="12" fill="var(--muted)">same model, batch 80</text>128 <rect x="40" y="176" width="170" height="46" rx="2" fill="none" stroke="currentColor" stroke-width="1.2"/>129 <text x="52" y="196" font-weight="500">Agent C</text>130 <text x="52" y="213" font-size="12" fill="var(--muted)">other family, code tool</text>131132 <rect x="40" y="258" width="170" height="40" rx="2" fill="none" stroke="currentColor" stroke-width="1" stroke-dasharray="4 3"/>133 <text x="52" y="275" font-size="12">NIP-46 signer</text>134 <text x="52" y="290" font-size="12" fill="var(--muted)">holds keys, policy per agent</text>135 <line x1="125" y1="258" x2="125" y2="222" stroke="currentColor" stroke-width="1" stroke-dasharray="4 3"/>136137 <!-- Agents -> Referee -->138 <line x1="210" y1="83" x2="300" y2="128" stroke="currentColor" stroke-width="1.2"/>139 <line x1="210" y1="141" x2="300" y2="141" stroke="currentColor" stroke-width="1.2" marker-end="url(#a)"/>140 <line x1="210" y1="199" x2="300" y2="154" stroke="currentColor" stroke-width="1.2"/>141 <text x="255" y="126" text-anchor="middle" font-size="11" fill="var(--muted)">reveal(tile), commit(cells)</text>142 <line x1="300" y1="176" x2="210" y2="176" stroke="currentColor" stroke-width="1.2" marker-end="url(#a)"/>143 <text x="255" y="192" text-anchor="middle" font-size="11" fill="var(--muted)">observation, delta-coded</text>144145 <!-- Referee -->146 <rect x="300" y="96" width="200" height="116" rx="2" fill="none" stroke="currentColor" stroke-width="1.6"/>147 <text x="314" y="118" font-family="Familjen Grotesk, Arial, sans-serif" font-size="16" font-weight="700">Referee</text>148 <text x="314" y="138" font-size="12" fill="var(--muted)">single writer, holds the seed</text>149 <text x="314" y="156" font-size="12" fill="var(--muted)">validates against solution</text>150 <text x="314" y="174" font-size="12" fill="var(--muted)">forced vs. guess per cell</text>151 <text x="314" y="192" font-size="12" fill="var(--muted)">MCP endpoint today</text>152153 <!-- Generator -->154 <rect x="300" y="360" width="200" height="86" rx="2" fill="none" stroke="currentColor" stroke-width="1.2"/>155 <text x="314" y="382" font-family="Familjen Grotesk, Arial, sans-serif" font-size="16" font-weight="700">Generator</text>156 <text x="314" y="402" font-size="12" fill="var(--muted)">seed → solution + givens</text>157 <text x="314" y="420" font-size="12" fill="var(--muted)">each tile has m &gt; 1 solutions</text>158 <text x="314" y="438" font-size="12" fill="var(--muted)">certifies coupling depth k</text>159 <line x1="400" y1="360" x2="400" y2="212" stroke="currentColor" stroke-width="1.2" marker-end="url(#a)"/>160 <text x="410" y="292" font-size="11" fill="var(--muted)">board, deterministic</text>161162 <!-- Referee -> Relay (accent) -->163 <line x1="500" y1="154" x2="590" y2="154" stroke="var(--accent)" stroke-width="2" marker-end="url(#aa)"/>164 <text x="545" y="120" text-anchor="middle" font-size="11" fill="var(--accent)">manifest, seed commit</text>165 <text x="545" y="136" text-anchor="middle" font-size="11" fill="var(--accent)">batch resolutions #tile</text>166 <text x="545" y="176" text-anchor="middle" font-size="11" fill="var(--accent)">seed reveal at end</text>167168 <!-- Relay -->169 <rect x="590" y="60" width="180" height="270" rx="2" fill="var(--accent-soft)" stroke="var(--accent)" stroke-width="1.6"/>170 <text x="604" y="84" font-family="Familjen Grotesk, Arial, sans-serif" font-size="16" font-weight="700">Private relay</text>171 <text x="604" y="104" font-size="12" fill="var(--muted)">strfry / HAVEN, NIP-42 auth</text>172 <text x="604" y="134" font-size="12">the world and the archive</text>173 <text x="604" y="158" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">manifest 30xxx d=game</text>174 <text x="604" y="174" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">batch regular #tile</text>175 <text x="604" y="190" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">reveal regular</text>176 <text x="604" y="206" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">analysis regular e=game</text>177 <text x="604" y="222" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">board 30xxx d=game</text>178 <text x="604" y="252" font-size="12" fill="var(--muted)">state = fold(events)</text>179 <text x="604" y="270" font-size="12" fill="var(--muted)">no retention cron:</text>180 <text x="604" y="286" font-size="12" fill="var(--muted)">old games are the dataset</text>181182 <!-- Relay -> Spectator -->183 <line x1="770" y1="100" x2="840" y2="100" stroke="currentColor" stroke-width="1.2" marker-end="url(#a)"/>184 <text x="805" y="88" text-anchor="middle" font-size="11" fill="var(--muted)">REQ #tile</text>185 <rect x="840" y="60" width="140" height="84" rx="2" fill="none" stroke="currentColor" stroke-width="1.2"/>186 <text x="852" y="82" font-family="Familjen Grotesk, Arial, sans-serif" font-size="16" font-weight="700">Spectator</text>187 <text x="852" y="101" font-size="12" fill="var(--muted)">folds the log</text>188 <text x="852" y="117" font-size="12" fill="var(--muted)">viewport = tile filter</text>189 <text x="852" y="133" font-size="12" fill="var(--muted)">scrub, race view</text>190191 <!-- Relay <-> Analyzer -->192 <line x1="770" y1="200" x2="840" y2="200" stroke="currentColor" stroke-width="1.2" marker-end="url(#a)"/>193 <text x="805" y="188" text-anchor="middle" font-size="11" fill="var(--muted)">game end</text>194 <line x1="840" y1="226" x2="770" y2="226" stroke="var(--accent)" stroke-width="1.6" marker-end="url(#aa)"/>195 <text x="805" y="243" text-anchor="middle" font-size="11" fill="var(--accent)">fingerprints</text>196 <rect x="840" y="170" width="140" height="84" rx="2" fill="none" stroke="currentColor" stroke-width="1.2"/>197 <text x="852" y="192" font-family="Familjen Grotesk, Arial, sans-serif" font-size="16" font-weight="700">Analyzer</text>198 <text x="852" y="211" font-size="12" fill="var(--muted)">guess rate, risk</text>199 <text x="852" y="227" font-size="12" fill="var(--muted)">frontier strategy</text>200 <text x="852" y="243" font-size="12" fill="var(--muted)">leaderboards</text>201202 <!-- Verify (anyone) -->203 <rect x="840" y="360" width="140" height="70" rx="2" fill="none" stroke="currentColor" stroke-width="1" stroke-dasharray="4 3"/>204 <text x="852" y="382" font-weight="500">Anyone</text>205 <text x="852" y="399" font-size="12" fill="var(--muted)">regenerate from seed</text>206 <text x="852" y="415" font-size="12" fill="var(--muted)">refold, confirm result</text>207 <line x1="500" y1="403" x2="840" y2="403" stroke="currentColor" stroke-width="1" stroke-dasharray="4 3" marker-end="url(#a)"/>208 <text x="670" y="392" text-anchor="middle" font-size="11" fill="var(--muted)">same generator, revealed seed</text>209 <line x1="910" y1="360" x2="910" y2="254" stroke="currentColor" stroke-width="1" stroke-dasharray="4 3"/>210211 <!-- Public relay row -->212 <rect x="590" y="470" width="180" height="60" rx="2" fill="none" stroke="var(--accent)" stroke-width="1.2" stroke-dasharray="5 3"/>213 <text x="604" y="492" font-family="Familjen Grotesk, Arial, sans-serif" font-size="15" font-weight="700">Public relay</text>214 <text x="604" y="511" font-size="12" fill="var(--muted)">challenges, leaderboards</text>215 <line x1="680" y1="330" x2="680" y2="470" stroke="var(--accent)" stroke-width="1.2" marker-end="url(#aa)" marker-start="url(#aa)"/>216 <text x="692" y="410" font-size="11" fill="var(--accent)">negentropy sync</text>217 <text x="692" y="425" font-size="11" fill="var(--muted)">selected kinds only</text>218219 <rect x="40" y="470" width="170" height="60" rx="2" fill="none" stroke="currentColor" stroke-width="1" stroke-dasharray="4 3"/>220 <text x="52" y="492" font-weight="500">Outside agents</text>221 <text x="52" y="509" font-size="12" fill="var(--muted)">any nsec, any language</text>222 <line x1="210" y1="500" x2="590" y2="500" stroke="currentColor" stroke-width="1.2" marker-end="url(#a)"/>223 <text x="400" y="489" text-anchor="middle" font-size="11" fill="var(--muted)">signed batches against a challenge; referee validates</text>224 </g>225 </svg>226 <figcaption>Only the referee writes truth (orange). Agents never see the seed; the relay never runs rules; the spectator and analyzer are read-only folds over the same events, so any of them can be rebuilt from an empty disk.</figcaption>227 </figure>228 <p>This is mcpsweeper's shape with the log moved out of D1: the Worker stays as referee, D1 becomes a cache, and the spectator opens a WebSocket to the relay instead of polling.</p>229 </section>230231 <section>232 <h2>One game is one log</h2>233 <figure>234 <svg viewBox="0 0 1000 250" role="img" aria-label="A game's events in order: manifest with seed commit, then batch resolutions each tagged with the tiles they touch, then a seed reveal; the board state at any point is the deterministic generator applied to the seed, folded with the batches up to that point.">235 <defs>236 <marker id="b" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse">237 <path d="M0 0 L10 5 L0 10 z" fill="currentColor"/>238 </marker>239 </defs>240 <g font-family="IBM Plex Sans, Arial, sans-serif" font-size="13" fill="currentColor">241 <!-- event chain -->242 <rect x="30" y="40" width="170" height="92" rx="2" fill="var(--accent-soft)" stroke="var(--accent)" stroke-width="1.4"/>243 <text x="42" y="60" font-weight="500">manifest</text>244 <text x="42" y="78" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">sha256(seed‖nonce)</text>245 <text x="42" y="94" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">X=32 n=8 m=3 k=2</text>246 <text x="42" y="110" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">model batch code_use</text>247 <text x="42" y="126" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">agent=npub…</text>248249 <line x1="200" y1="86" x2="240" y2="86" stroke="currentColor" stroke-width="1.2" marker-end="url(#b)"/>250 <rect x="240" y="40" width="150" height="92" rx="2" fill="none" stroke="currentColor" stroke-width="1.2"/>251 <text x="252" y="60" font-weight="500">batch 1</text>252 <text x="252" y="78" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">reveal t(3,4)</text>253 <text x="252" y="94" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">#tile 3,4</text>254 <text x="252" y="110" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">seq=1 e=manifest</text>255256 <line x1="390" y1="86" x2="430" y2="86" stroke="currentColor" stroke-width="1.2" marker-end="url(#b)"/>257 <rect x="430" y="40" width="150" height="92" rx="2" fill="none" stroke="currentColor" stroke-width="1.2"/>258 <text x="442" y="60" font-weight="500">batch 2</text>259 <text x="442" y="78" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">commit 14 cells</text>260 <text x="442" y="94" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">forced=12 guess=2</text>261 <text x="442" y="110" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">#tile 3,4 and 3,5</text>262263 <line x1="580" y1="86" x2="620" y2="86" stroke="currentColor" stroke-width="1.2" marker-end="url(#b)"/>264 <text x="650" y="90" font-size="18" fill="var(--muted)">…</text>265 <line x1="680" y1="86" x2="720" y2="86" stroke="currentColor" stroke-width="1.2" marker-end="url(#b)"/>266 <rect x="720" y="40" width="120" height="92" rx="2" fill="none" stroke="currentColor" stroke-width="1.2"/>267 <text x="732" y="60" font-weight="500">batch N</text>268 <text x="732" y="78" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">solved</text>269270 <line x1="840" y1="86" x2="870" y2="86" stroke="currentColor" stroke-width="1.2" marker-end="url(#b)"/>271 <rect x="870" y="40" width="110" height="92" rx="2" fill="var(--accent-soft)" stroke="var(--accent)" stroke-width="1.4"/>272 <text x="882" y="60" font-weight="500">seed reveal</text>273 <text x="882" y="78" font-family="IBM Plex Mono, monospace" font-size="11" fill="var(--muted)">seed, nonce</text>274 <text x="882" y="94" font-size="11" fill="var(--muted)">now anyone can</text>275 <text x="882" y="110" font-size="11" fill="var(--muted)">regenerate</text>276277 <!-- fold -->278 <line x1="115" y1="132" x2="115" y2="190" stroke="currentColor" stroke-width="1" stroke-dasharray="3 3"/>279 <line x1="315" y1="132" x2="315" y2="190" stroke="currentColor" stroke-width="1" stroke-dasharray="3 3"/>280 <line x1="505" y1="132" x2="505" y2="190" stroke="currentColor" stroke-width="1" stroke-dasharray="3 3"/>281 <line x1="780" y1="132" x2="780" y2="190" stroke="currentColor" stroke-width="1" stroke-dasharray="3 3"/>282 <line x1="30" y1="200" x2="980" y2="200" stroke="currentColor" stroke-width="1.6"/>283 <text x="30" y="228" font-family="IBM Plex Mono, monospace" font-size="12">state(t) = fold( generate(seed), batches[0..t] )</text>284 <text x="980" y="228" text-anchor="end" font-size="12" fill="var(--muted)">cells are derived, never stored; ~20 events per game</text>285 </g>286 </svg>287 <figcaption>Cells never travel. A 224×224 board is a seed and a short list of batches; the spectator's scrubber is just choosing <span class="mono">t</span>. Same seed across agents gives a paired trial.</figcaption>288 </figure>289 </section>290291 <section>292 <h2>What the agent can see</h2>293 <figure>294 <svg viewBox="0 0 1064 544" role="img" aria-label="A 7 by 7 mosaic of 4 by 4 Takuzu tiles that overlap by one cell. Each tile has its own semi-transparent tint; cells shared by two tiles show both tints combined. 9 solved tiles, grown from a seed tile by frontier expansion, show every 0 and 1. The 7 frontier tiles around them show only their givens plus the line they share with a solved tile. The remaining tiles are hidden.">295<g font-family="IBM Plex Mono, monospace" font-size="12" text-anchor="middle">296<rect x="30" y="30" width="484" height="484" fill="var(--panel)"/>297<rect x="30" y="30" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>298<rect x="52" y="30" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>299<rect x="74" y="30" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>300<rect x="96" y="30" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t1))" fill-opacity="0.1"/>301<rect x="118" y="30" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>302<rect x="140" y="30" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>303<rect x="162" y="30" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t2))" fill-opacity="0.1"/>304<rect x="184" y="30" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>305<rect x="206" y="30" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>306<rect x="228" y="30" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t3))" fill-opacity="0.1"/>307<rect x="250" y="30" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>308<rect x="272" y="30" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>309<rect x="294" y="30" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t4))" fill-opacity="0.1"/>310<rect x="316" y="30" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>311<rect x="338" y="30" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>312<rect x="360" y="30" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t5))" fill-opacity="0.1"/>313<rect x="382" y="30" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>314<rect x="404" y="30" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>315<rect x="426" y="30" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t6))" fill-opacity="0.1"/>316<rect x="448" y="30" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>317<rect x="470" y="30" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>318<rect x="492" y="30" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>319<rect x="30" y="52" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>320<rect x="52" y="52" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>321<rect x="74" y="52" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>322<rect x="96" y="52" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t1))" fill-opacity="0.1"/>323<rect x="118" y="52" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>324<rect x="140" y="52" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>325<rect x="162" y="52" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t2))" fill-opacity="0.1"/>326<rect x="184" y="52" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>327<rect x="206" y="52" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>328<rect x="228" y="52" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t3))" fill-opacity="0.1"/>329<rect x="250" y="52" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>330<rect x="272" y="52" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>331<rect x="294" y="52" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t4))" fill-opacity="0.1"/>332<rect x="316" y="52" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>333<rect x="338" y="52" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>334<rect x="360" y="52" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t5))" fill-opacity="0.1"/>335<rect x="382" y="52" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>336<rect x="404" y="52" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>337<rect x="426" y="52" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t6))" fill-opacity="0.1"/>338<rect x="448" y="52" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>339<rect x="470" y="52" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>340<rect x="492" y="52" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>341<rect x="30" y="74" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>342<rect x="52" y="74" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>343<rect x="74" y="74" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>344<rect x="96" y="74" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t1))" fill-opacity="0.1"/>345<rect x="118" y="74" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>346<rect x="140" y="74" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>347<rect x="162" y="74" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t2))" fill-opacity="0.1"/>348<rect x="184" y="74" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>349<rect x="206" y="74" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>350<rect x="228" y="74" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t3))" fill-opacity="0.1"/>351<rect x="250" y="74" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>352<rect x="272" y="74" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>353<rect x="294" y="74" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t4))" fill-opacity="0.1"/>354<rect x="316" y="74" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>355<rect x="338" y="74" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>356<rect x="360" y="74" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t5))" fill-opacity="0.1"/>357<rect x="382" y="74" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>358<rect x="404" y="74" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>359<rect x="426" y="74" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t6))" fill-opacity="0.1"/>360<rect x="448" y="74" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>361<rect x="470" y="74" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>362<rect x="492" y="74" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>363<rect x="30" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t3))" fill-opacity="0.1"/>364<rect x="52" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t3))" fill-opacity="0.1"/>365<rect x="74" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t3))" fill-opacity="0.1"/>366<rect x="96" y="96" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t0) 50%, var(--t1)) 67%, var(--t3)) 75%, var(--t4))" fill-opacity="0.1"/>367<rect x="118" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t4))" fill-opacity="0.1"/>368<rect x="140" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t4))" fill-opacity="0.1"/>369<rect x="162" y="96" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t1) 50%, var(--t2)) 67%, var(--t4)) 75%, var(--t5))" fill-opacity="0.1"/>370<rect x="184" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t5))" fill-opacity="0.1"/>371<rect x="206" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t5))" fill-opacity="0.1"/>372<rect x="228" y="96" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t2) 50%, var(--t3)) 67%, var(--t5)) 75%, var(--t6))" fill-opacity="0.1"/>373<rect x="250" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t6))" fill-opacity="0.1"/>374<rect x="272" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t6))" fill-opacity="0.1"/>375<rect x="294" y="96" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t3) 50%, var(--t4)) 67%, var(--t6)) 75%, var(--t0))" fill-opacity="0.1"/>376<rect x="316" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t0))" fill-opacity="0.1"/>377<rect x="338" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t0))" fill-opacity="0.1"/>378<rect x="360" y="96" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t4) 50%, var(--t5)) 67%, var(--t0)) 75%, var(--t1))" fill-opacity="0.1"/>379<rect x="382" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t1))" fill-opacity="0.1"/>380<rect x="404" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t1))" fill-opacity="0.1"/>381<rect x="426" y="96" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t5) 50%, var(--t6)) 67%, var(--t1)) 75%, var(--t2))" fill-opacity="0.1"/>382<rect x="448" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t2))" fill-opacity="0.1"/>383<rect x="470" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t2))" fill-opacity="0.1"/>384<rect x="492" y="96" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t2))" fill-opacity="0.1"/>385<rect x="30" y="118" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>386<rect x="52" y="118" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>387<rect x="74" y="118" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>388<rect x="96" y="118" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t4))" fill-opacity="0.1"/>389<rect x="118" y="118" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>390<rect x="140" y="118" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>391<rect x="162" y="118" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t5))" fill-opacity="0.1"/>392<rect x="184" y="118" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>393<rect x="206" y="118" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>394<rect x="228" y="118" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t6))" fill-opacity="0.1"/>395<rect x="250" y="118" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>396<rect x="272" y="118" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>397<rect x="294" y="118" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t0))" fill-opacity="0.1"/>398<rect x="316" y="118" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>399<rect x="338" y="118" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>400<rect x="360" y="118" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t1))" fill-opacity="0.1"/>401<rect x="382" y="118" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>402<rect x="404" y="118" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>403<rect x="426" y="118" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t2))" fill-opacity="0.1"/>404<rect x="448" y="118" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>405<rect x="470" y="118" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>406<rect x="492" y="118" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>407<rect x="30" y="140" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>408<rect x="52" y="140" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>409<rect x="74" y="140" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>410<rect x="96" y="140" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t4))" fill-opacity="0.1"/>411<rect x="118" y="140" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>412<rect x="140" y="140" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>413<rect x="162" y="140" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t5))" fill-opacity="0.1"/>414<rect x="184" y="140" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>415<rect x="206" y="140" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>416<rect x="228" y="140" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t6))" fill-opacity="0.1"/>417<rect x="250" y="140" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>418<rect x="272" y="140" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>419<rect x="294" y="140" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t0))" fill-opacity="0.1"/>420<rect x="316" y="140" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>421<rect x="338" y="140" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>422<rect x="360" y="140" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t1))" fill-opacity="0.1"/>423<rect x="382" y="140" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>424<rect x="404" y="140" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>425<rect x="426" y="140" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t2))" fill-opacity="0.1"/>426<rect x="448" y="140" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>427<rect x="470" y="140" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>428<rect x="492" y="140" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>429<rect x="30" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t6))" fill-opacity="0.1"/>430<rect x="52" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t6))" fill-opacity="0.1"/>431<rect x="74" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t6))" fill-opacity="0.1"/>432<rect x="96" y="162" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t3) 50%, var(--t4)) 67%, var(--t6)) 75%, var(--t0))" fill-opacity="0.1"/>433<rect x="118" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t0))" fill-opacity="0.1"/>434<rect x="140" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t0))" fill-opacity="0.1"/>435<rect x="162" y="162" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t4) 50%, var(--t5)) 67%, var(--t0)) 75%, var(--t1))" fill-opacity="0.1"/>436<rect x="184" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t1))" fill-opacity="0.1"/>437<rect x="206" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t1))" fill-opacity="0.1"/>438<rect x="228" y="162" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t5) 50%, var(--t6)) 67%, var(--t1)) 75%, var(--t2))" fill-opacity="0.1"/>439<rect x="250" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t2))" fill-opacity="0.1"/>440<rect x="272" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t2))" fill-opacity="0.1"/>441<rect x="294" y="162" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t6) 50%, var(--t0)) 67%, var(--t2)) 75%, var(--t3))" fill-opacity="0.1"/>442<rect x="316" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t3))" fill-opacity="0.1"/>443<rect x="338" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t3))" fill-opacity="0.1"/>444<rect x="360" y="162" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t0) 50%, var(--t1)) 67%, var(--t3)) 75%, var(--t4))" fill-opacity="0.1"/>445<rect x="382" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t4))" fill-opacity="0.1"/>446<rect x="404" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t4))" fill-opacity="0.1"/>447<rect x="426" y="162" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t1) 50%, var(--t2)) 67%, var(--t4)) 75%, var(--t5))" fill-opacity="0.1"/>448<rect x="448" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t5))" fill-opacity="0.1"/>449<rect x="470" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t5))" fill-opacity="0.1"/>450<rect x="492" y="162" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t5))" fill-opacity="0.1"/>451<rect x="30" y="184" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>452<rect x="52" y="184" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>453<rect x="74" y="184" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>454<rect x="96" y="184" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t0))" fill-opacity="0.1"/>455<rect x="118" y="184" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>456<rect x="140" y="184" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>457<rect x="162" y="184" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t1))" fill-opacity="0.1"/>458<rect x="184" y="184" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>459<rect x="206" y="184" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>460<rect x="228" y="184" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t2))" fill-opacity="0.1"/>461<rect x="250" y="184" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>462<rect x="272" y="184" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>463<rect x="294" y="184" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t3))" fill-opacity="0.1"/>464<rect x="316" y="184" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>465<rect x="338" y="184" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>466<rect x="360" y="184" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t4))" fill-opacity="0.1"/>467<rect x="382" y="184" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>468<rect x="404" y="184" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>469<rect x="426" y="184" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t5))" fill-opacity="0.1"/>470<rect x="448" y="184" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>471<rect x="470" y="184" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>472<rect x="492" y="184" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>473<rect x="30" y="206" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>474<rect x="52" y="206" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>475<rect x="74" y="206" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>476<rect x="96" y="206" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t0))" fill-opacity="0.1"/>477<rect x="118" y="206" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>478<rect x="140" y="206" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>479<rect x="162" y="206" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t1))" fill-opacity="0.1"/>480<rect x="184" y="206" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>481<rect x="206" y="206" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>482<rect x="228" y="206" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t2))" fill-opacity="0.1"/>483<rect x="250" y="206" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>484<rect x="272" y="206" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>485<rect x="294" y="206" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t3))" fill-opacity="0.1"/>486<rect x="316" y="206" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>487<rect x="338" y="206" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>488<rect x="360" y="206" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t4))" fill-opacity="0.1"/>489<rect x="382" y="206" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>490<rect x="404" y="206" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>491<rect x="426" y="206" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t5))" fill-opacity="0.1"/>492<rect x="448" y="206" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>493<rect x="470" y="206" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>494<rect x="492" y="206" width="22" height="22" fill="var(--t5)" fill-opacity="0.1"/>495<rect x="30" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t2))" fill-opacity="0.1"/>496<rect x="52" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t2))" fill-opacity="0.1"/>497<rect x="74" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t2))" fill-opacity="0.1"/>498<rect x="96" y="228" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t6) 50%, var(--t0)) 67%, var(--t2)) 75%, var(--t3))" fill-opacity="0.1"/>499<rect x="118" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t3))" fill-opacity="0.1"/>500<rect x="140" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t3))" fill-opacity="0.1"/>501<rect x="162" y="228" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t0) 50%, var(--t1)) 67%, var(--t3)) 75%, var(--t4))" fill-opacity="0.1"/>502<rect x="184" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t4))" fill-opacity="0.1"/>503<rect x="206" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t4))" fill-opacity="0.1"/>504<rect x="228" y="228" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t1) 50%, var(--t2)) 67%, var(--t4)) 75%, var(--t5))" fill-opacity="0.34"/>505<rect x="250" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t5))" fill-opacity="0.34"/>506<rect x="272" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t5))" fill-opacity="0.34"/>507<rect x="294" y="228" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t2) 50%, var(--t3)) 67%, var(--t5)) 75%, var(--t6))" fill-opacity="0.34"/>508<rect x="316" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t6))" fill-opacity="0.1"/>509<rect x="338" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t6))" fill-opacity="0.1"/>510<rect x="360" y="228" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t3) 50%, var(--t4)) 67%, var(--t6)) 75%, var(--t0))" fill-opacity="0.1"/>511<rect x="382" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t0))" fill-opacity="0.1"/>512<rect x="404" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t0))" fill-opacity="0.1"/>513<rect x="426" y="228" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t4) 50%, var(--t5)) 67%, var(--t0)) 75%, var(--t1))" fill-opacity="0.1"/>514<rect x="448" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t1))" fill-opacity="0.1"/>515<rect x="470" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t1))" fill-opacity="0.1"/>516<rect x="492" y="228" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t1))" fill-opacity="0.1"/>517<rect x="30" y="250" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>518<rect x="52" y="250" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>519<rect x="74" y="250" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>520<rect x="96" y="250" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t3))" fill-opacity="0.1"/>521<rect x="118" y="250" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>522<rect x="140" y="250" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>523<rect x="162" y="250" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t4))" fill-opacity="0.1"/>524<rect x="184" y="250" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>525<rect x="206" y="250" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>526<rect x="228" y="250" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t5))" fill-opacity="0.34"/>527<rect x="250" y="250" width="22" height="22" fill="var(--t5)" fill-opacity="0.34"/>528<rect x="272" y="250" width="22" height="22" fill="var(--t5)" fill-opacity="0.34"/>529<rect x="294" y="250" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t6))" fill-opacity="0.34"/>530<rect x="316" y="250" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>531<rect x="338" y="250" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>532<rect x="360" y="250" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t0))" fill-opacity="0.1"/>533<rect x="382" y="250" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>534<rect x="404" y="250" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>535<rect x="426" y="250" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t1))" fill-opacity="0.1"/>536<rect x="448" y="250" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>537<rect x="470" y="250" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>538<rect x="492" y="250" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>539<rect x="30" y="272" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>540<rect x="52" y="272" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>541<rect x="74" y="272" width="22" height="22" fill="var(--t2)" fill-opacity="0.1"/>542<rect x="96" y="272" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t3))" fill-opacity="0.1"/>543<rect x="118" y="272" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>544<rect x="140" y="272" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>545<rect x="162" y="272" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t4))" fill-opacity="0.1"/>546<rect x="184" y="272" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>547<rect x="206" y="272" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>548<rect x="228" y="272" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t5))" fill-opacity="0.34"/>549<rect x="250" y="272" width="22" height="22" fill="var(--t5)" fill-opacity="0.34"/>550<rect x="272" y="272" width="22" height="22" fill="var(--t5)" fill-opacity="0.34"/>551<rect x="294" y="272" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t6))" fill-opacity="0.34"/>552<rect x="316" y="272" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>553<rect x="338" y="272" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>554<rect x="360" y="272" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t0))" fill-opacity="0.1"/>555<rect x="382" y="272" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>556<rect x="404" y="272" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>557<rect x="426" y="272" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t1))" fill-opacity="0.1"/>558<rect x="448" y="272" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>559<rect x="470" y="272" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>560<rect x="492" y="272" width="22" height="22" fill="var(--t1)" fill-opacity="0.1"/>561<rect x="30" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t5))" fill-opacity="0.34"/>562<rect x="52" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t5))" fill-opacity="0.34"/>563<rect x="74" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t5))" fill-opacity="0.34"/>564<rect x="96" y="294" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t2) 50%, var(--t3)) 67%, var(--t5)) 75%, var(--t6))" fill-opacity="0.34"/>565<rect x="118" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t6))" fill-opacity="0.1"/>566<rect x="140" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t6))" fill-opacity="0.1"/>567<rect x="162" y="294" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t3) 50%, var(--t4)) 67%, var(--t6)) 75%, var(--t0))" fill-opacity="0.34"/>568<rect x="184" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t0))" fill-opacity="0.34"/>569<rect x="206" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t0))" fill-opacity="0.34"/>570<rect x="228" y="294" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t4) 50%, var(--t5)) 67%, var(--t0)) 75%, var(--t1))" fill-opacity="0.62"/>571<rect x="250" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t1))" fill-opacity="0.62"/>572<rect x="272" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t1))" fill-opacity="0.62"/>573<rect x="294" y="294" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t5) 50%, var(--t6)) 67%, var(--t1)) 75%, var(--t2))" fill-opacity="0.62"/>574<rect x="316" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t2))" fill-opacity="0.34"/>575<rect x="338" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t2))" fill-opacity="0.34"/>576<rect x="360" y="294" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t6) 50%, var(--t0)) 67%, var(--t2)) 75%, var(--t3))" fill-opacity="0.34"/>577<rect x="382" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t3))" fill-opacity="0.1"/>578<rect x="404" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t3))" fill-opacity="0.1"/>579<rect x="426" y="294" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t0) 50%, var(--t1)) 67%, var(--t3)) 75%, var(--t4))" fill-opacity="0.1"/>580<rect x="448" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t4))" fill-opacity="0.1"/>581<rect x="470" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t4))" fill-opacity="0.1"/>582<rect x="492" y="294" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t4))" fill-opacity="0.1"/>583<rect x="30" y="316" width="22" height="22" fill="var(--t5)" fill-opacity="0.34"/>584<rect x="52" y="316" width="22" height="22" fill="var(--t5)" fill-opacity="0.34"/>585<rect x="74" y="316" width="22" height="22" fill="var(--t5)" fill-opacity="0.34"/>586<rect x="96" y="316" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t6))" fill-opacity="0.34"/>587<rect x="118" y="316" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>588<rect x="140" y="316" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>589<rect x="162" y="316" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t0))" fill-opacity="0.34"/>590<rect x="184" y="316" width="22" height="22" fill="var(--t0)" fill-opacity="0.34"/>591<rect x="206" y="316" width="22" height="22" fill="var(--t0)" fill-opacity="0.34"/>592<rect x="228" y="316" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t1))" fill-opacity="0.62"/>593<rect x="250" y="316" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>594<rect x="272" y="316" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>595<rect x="294" y="316" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t2))" fill-opacity="0.62"/>596<rect x="316" y="316" width="22" height="22" fill="var(--t2)" fill-opacity="0.34"/>597<rect x="338" y="316" width="22" height="22" fill="var(--t2)" fill-opacity="0.34"/>598<rect x="360" y="316" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t3))" fill-opacity="0.34"/>599<rect x="382" y="316" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>600<rect x="404" y="316" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>601<rect x="426" y="316" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t4))" fill-opacity="0.1"/>602<rect x="448" y="316" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>603<rect x="470" y="316" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>604<rect x="492" y="316" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>605<rect x="30" y="338" width="22" height="22" fill="var(--t5)" fill-opacity="0.34"/>606<rect x="52" y="338" width="22" height="22" fill="var(--t5)" fill-opacity="0.34"/>607<rect x="74" y="338" width="22" height="22" fill="var(--t5)" fill-opacity="0.34"/>608<rect x="96" y="338" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t6))" fill-opacity="0.34"/>609<rect x="118" y="338" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>610<rect x="140" y="338" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>611<rect x="162" y="338" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t0))" fill-opacity="0.34"/>612<rect x="184" y="338" width="22" height="22" fill="var(--t0)" fill-opacity="0.34"/>613<rect x="206" y="338" width="22" height="22" fill="var(--t0)" fill-opacity="0.34"/>614<rect x="228" y="338" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t1))" fill-opacity="0.62"/>615<rect x="250" y="338" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>616<rect x="272" y="338" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>617<rect x="294" y="338" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t2))" fill-opacity="0.62"/>618<rect x="316" y="338" width="22" height="22" fill="var(--t2)" fill-opacity="0.34"/>619<rect x="338" y="338" width="22" height="22" fill="var(--t2)" fill-opacity="0.34"/>620<rect x="360" y="338" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t3))" fill-opacity="0.34"/>621<rect x="382" y="338" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>622<rect x="404" y="338" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>623<rect x="426" y="338" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t4))" fill-opacity="0.1"/>624<rect x="448" y="338" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>625<rect x="470" y="338" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>626<rect x="492" y="338" width="22" height="22" fill="var(--t4)" fill-opacity="0.1"/>627<rect x="30" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t1))" fill-opacity="0.62"/>628<rect x="52" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t1))" fill-opacity="0.62"/>629<rect x="74" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t1))" fill-opacity="0.62"/>630<rect x="96" y="360" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t5) 50%, var(--t6)) 67%, var(--t1)) 75%, var(--t2))" fill-opacity="0.62"/>631<rect x="118" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t2))" fill-opacity="0.34"/>632<rect x="140" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t2))" fill-opacity="0.34"/>633<rect x="162" y="360" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t6) 50%, var(--t0)) 67%, var(--t2)) 75%, var(--t3))" fill-opacity="0.62"/>634<rect x="184" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t3))" fill-opacity="0.62"/>635<rect x="206" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t3))" fill-opacity="0.62"/>636<rect x="228" y="360" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t0) 50%, var(--t1)) 67%, var(--t3)) 75%, var(--t4))" fill-opacity="0.62"/>637<rect x="250" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t4))" fill-opacity="0.62"/>638<rect x="272" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t4))" fill-opacity="0.62"/>639<rect x="294" y="360" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t1) 50%, var(--t2)) 67%, var(--t4)) 75%, var(--t5))" fill-opacity="0.62"/>640<rect x="316" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t5))" fill-opacity="0.34"/>641<rect x="338" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t5))" fill-opacity="0.34"/>642<rect x="360" y="360" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t2) 50%, var(--t3)) 67%, var(--t5)) 75%, var(--t6))" fill-opacity="0.34"/>643<rect x="382" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t6))" fill-opacity="0.1"/>644<rect x="404" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t6))" fill-opacity="0.1"/>645<rect x="426" y="360" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t3) 50%, var(--t4)) 67%, var(--t6)) 75%, var(--t0))" fill-opacity="0.1"/>646<rect x="448" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t0))" fill-opacity="0.1"/>647<rect x="470" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t0))" fill-opacity="0.1"/>648<rect x="492" y="360" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t0))" fill-opacity="0.1"/>649<rect x="30" y="382" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>650<rect x="52" y="382" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>651<rect x="74" y="382" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>652<rect x="96" y="382" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t2))" fill-opacity="0.62"/>653<rect x="118" y="382" width="22" height="22" fill="var(--t2)" fill-opacity="0.34"/>654<rect x="140" y="382" width="22" height="22" fill="var(--t2)" fill-opacity="0.34"/>655<rect x="162" y="382" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t3))" fill-opacity="0.62"/>656<rect x="184" y="382" width="22" height="22" fill="var(--t3)" fill-opacity="0.62"/>657<rect x="206" y="382" width="22" height="22" fill="var(--t3)" fill-opacity="0.62"/>658<rect x="228" y="382" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t4))" fill-opacity="0.62"/>659<rect x="250" y="382" width="22" height="22" fill="var(--t4)" fill-opacity="0.62"/>660<rect x="272" y="382" width="22" height="22" fill="var(--t4)" fill-opacity="0.62"/>661<rect x="294" y="382" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t5))" fill-opacity="0.62"/>662<rect x="316" y="382" width="22" height="22" fill="var(--t5)" fill-opacity="0.34"/>663<rect x="338" y="382" width="22" height="22" fill="var(--t5)" fill-opacity="0.34"/>664<rect x="360" y="382" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t6))" fill-opacity="0.34"/>665<rect x="382" y="382" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>666<rect x="404" y="382" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>667<rect x="426" y="382" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t0))" fill-opacity="0.1"/>668<rect x="448" y="382" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>669<rect x="470" y="382" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>670<rect x="492" y="382" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>671<rect x="30" y="404" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>672<rect x="52" y="404" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>673<rect x="74" y="404" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>674<rect x="96" y="404" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t2))" fill-opacity="0.62"/>675<rect x="118" y="404" width="22" height="22" fill="var(--t2)" fill-opacity="0.34"/>676<rect x="140" y="404" width="22" height="22" fill="var(--t2)" fill-opacity="0.34"/>677<rect x="162" y="404" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t3))" fill-opacity="0.62"/>678<rect x="184" y="404" width="22" height="22" fill="var(--t3)" fill-opacity="0.62"/>679<rect x="206" y="404" width="22" height="22" fill="var(--t3)" fill-opacity="0.62"/>680<rect x="228" y="404" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t4))" fill-opacity="0.62"/>681<rect x="250" y="404" width="22" height="22" fill="var(--t4)" fill-opacity="0.62"/>682<rect x="272" y="404" width="22" height="22" fill="var(--t4)" fill-opacity="0.62"/>683<rect x="294" y="404" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t5))" fill-opacity="0.62"/>684<rect x="316" y="404" width="22" height="22" fill="var(--t5)" fill-opacity="0.34"/>685<rect x="338" y="404" width="22" height="22" fill="var(--t5)" fill-opacity="0.34"/>686<rect x="360" y="404" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t6))" fill-opacity="0.34"/>687<rect x="382" y="404" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>688<rect x="404" y="404" width="22" height="22" fill="var(--t6)" fill-opacity="0.1"/>689<rect x="426" y="404" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t0))" fill-opacity="0.1"/>690<rect x="448" y="404" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>691<rect x="470" y="404" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>692<rect x="492" y="404" width="22" height="22" fill="var(--t0)" fill-opacity="0.1"/>693<rect x="30" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t4))" fill-opacity="0.62"/>694<rect x="52" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t4))" fill-opacity="0.62"/>695<rect x="74" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t4))" fill-opacity="0.62"/>696<rect x="96" y="426" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t1) 50%, var(--t2)) 67%, var(--t4)) 75%, var(--t5))" fill-opacity="0.62"/>697<rect x="118" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t5))" fill-opacity="0.62"/>698<rect x="140" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t5))" fill-opacity="0.62"/>699<rect x="162" y="426" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t2) 50%, var(--t3)) 67%, var(--t5)) 75%, var(--t6))" fill-opacity="0.62"/>700<rect x="184" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t6))" fill-opacity="0.62"/>701<rect x="206" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t3) 50%, var(--t6))" fill-opacity="0.62"/>702<rect x="228" y="426" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t3) 50%, var(--t4)) 67%, var(--t6)) 75%, var(--t0))" fill-opacity="0.62"/>703<rect x="250" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t0))" fill-opacity="0.62"/>704<rect x="272" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t0))" fill-opacity="0.62"/>705<rect x="294" y="426" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t4) 50%, var(--t5)) 67%, var(--t0)) 75%, var(--t1))" fill-opacity="0.62"/>706<rect x="316" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t1))" fill-opacity="0.62"/>707<rect x="338" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t1))" fill-opacity="0.62"/>708<rect x="360" y="426" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t5) 50%, var(--t6)) 67%, var(--t1)) 75%, var(--t2))" fill-opacity="0.62"/>709<rect x="382" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t2))" fill-opacity="0.34"/>710<rect x="404" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t2))" fill-opacity="0.34"/>711<rect x="426" y="426" width="22" height="22" fill="color-mix(in oklch, color-mix(in oklch, color-mix(in oklch, var(--t6) 50%, var(--t0)) 67%, var(--t2)) 75%, var(--t3))" fill-opacity="0.34"/>712<rect x="448" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t3))" fill-opacity="0.1"/>713<rect x="470" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t3))" fill-opacity="0.1"/>714<rect x="492" y="426" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t3))" fill-opacity="0.1"/>715<rect x="30" y="448" width="22" height="22" fill="var(--t4)" fill-opacity="0.62"/>716<rect x="52" y="448" width="22" height="22" fill="var(--t4)" fill-opacity="0.62"/>717<rect x="74" y="448" width="22" height="22" fill="var(--t4)" fill-opacity="0.62"/>718<rect x="96" y="448" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t5))" fill-opacity="0.62"/>719<rect x="118" y="448" width="22" height="22" fill="var(--t5)" fill-opacity="0.62"/>720<rect x="140" y="448" width="22" height="22" fill="var(--t5)" fill-opacity="0.62"/>721<rect x="162" y="448" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t6))" fill-opacity="0.62"/>722<rect x="184" y="448" width="22" height="22" fill="var(--t6)" fill-opacity="0.62"/>723<rect x="206" y="448" width="22" height="22" fill="var(--t6)" fill-opacity="0.62"/>724<rect x="228" y="448" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t0))" fill-opacity="0.62"/>725<rect x="250" y="448" width="22" height="22" fill="var(--t0)" fill-opacity="0.62"/>726<rect x="272" y="448" width="22" height="22" fill="var(--t0)" fill-opacity="0.62"/>727<rect x="294" y="448" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t1))" fill-opacity="0.62"/>728<rect x="316" y="448" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>729<rect x="338" y="448" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>730<rect x="360" y="448" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t2))" fill-opacity="0.62"/>731<rect x="382" y="448" width="22" height="22" fill="var(--t2)" fill-opacity="0.34"/>732<rect x="404" y="448" width="22" height="22" fill="var(--t2)" fill-opacity="0.34"/>733<rect x="426" y="448" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t3))" fill-opacity="0.34"/>734<rect x="448" y="448" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>735<rect x="470" y="448" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>736<rect x="492" y="448" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>737<rect x="30" y="470" width="22" height="22" fill="var(--t4)" fill-opacity="0.62"/>738<rect x="52" y="470" width="22" height="22" fill="var(--t4)" fill-opacity="0.62"/>739<rect x="74" y="470" width="22" height="22" fill="var(--t4)" fill-opacity="0.62"/>740<rect x="96" y="470" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t5))" fill-opacity="0.62"/>741<rect x="118" y="470" width="22" height="22" fill="var(--t5)" fill-opacity="0.62"/>742<rect x="140" y="470" width="22" height="22" fill="var(--t5)" fill-opacity="0.62"/>743<rect x="162" y="470" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t6))" fill-opacity="0.62"/>744<rect x="184" y="470" width="22" height="22" fill="var(--t6)" fill-opacity="0.62"/>745<rect x="206" y="470" width="22" height="22" fill="var(--t6)" fill-opacity="0.62"/>746<rect x="228" y="470" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t0))" fill-opacity="0.62"/>747<rect x="250" y="470" width="22" height="22" fill="var(--t0)" fill-opacity="0.62"/>748<rect x="272" y="470" width="22" height="22" fill="var(--t0)" fill-opacity="0.62"/>749<rect x="294" y="470" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t1))" fill-opacity="0.62"/>750<rect x="316" y="470" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>751<rect x="338" y="470" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>752<rect x="360" y="470" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t2))" fill-opacity="0.62"/>753<rect x="382" y="470" width="22" height="22" fill="var(--t2)" fill-opacity="0.34"/>754<rect x="404" y="470" width="22" height="22" fill="var(--t2)" fill-opacity="0.34"/>755<rect x="426" y="470" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t3))" fill-opacity="0.34"/>756<rect x="448" y="470" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>757<rect x="470" y="470" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>758<rect x="492" y="470" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>759<rect x="30" y="492" width="22" height="22" fill="var(--t4)" fill-opacity="0.62"/>760<rect x="52" y="492" width="22" height="22" fill="var(--t4)" fill-opacity="0.62"/>761<rect x="74" y="492" width="22" height="22" fill="var(--t4)" fill-opacity="0.62"/>762<rect x="96" y="492" width="22" height="22" fill="color-mix(in oklch, var(--t4) 50%, var(--t5))" fill-opacity="0.62"/>763<rect x="118" y="492" width="22" height="22" fill="var(--t5)" fill-opacity="0.62"/>764<rect x="140" y="492" width="22" height="22" fill="var(--t5)" fill-opacity="0.62"/>765<rect x="162" y="492" width="22" height="22" fill="color-mix(in oklch, var(--t5) 50%, var(--t6))" fill-opacity="0.62"/>766<rect x="184" y="492" width="22" height="22" fill="var(--t6)" fill-opacity="0.62"/>767<rect x="206" y="492" width="22" height="22" fill="var(--t6)" fill-opacity="0.62"/>768<rect x="228" y="492" width="22" height="22" fill="color-mix(in oklch, var(--t6) 50%, var(--t0))" fill-opacity="0.62"/>769<rect x="250" y="492" width="22" height="22" fill="var(--t0)" fill-opacity="0.62"/>770<rect x="272" y="492" width="22" height="22" fill="var(--t0)" fill-opacity="0.62"/>771<rect x="294" y="492" width="22" height="22" fill="color-mix(in oklch, var(--t0) 50%, var(--t1))" fill-opacity="0.62"/>772<rect x="316" y="492" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>773<rect x="338" y="492" width="22" height="22" fill="var(--t1)" fill-opacity="0.62"/>774<rect x="360" y="492" width="22" height="22" fill="color-mix(in oklch, var(--t1) 50%, var(--t2))" fill-opacity="0.62"/>775<rect x="382" y="492" width="22" height="22" fill="var(--t2)" fill-opacity="0.34"/>776<rect x="404" y="492" width="22" height="22" fill="var(--t2)" fill-opacity="0.34"/>777<rect x="426" y="492" width="22" height="22" fill="color-mix(in oklch, var(--t2) 50%, var(--t3))" fill-opacity="0.34"/>778<rect x="448" y="492" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>779<rect x="470" y="492" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>780<rect x="492" y="492" width="22" height="22" fill="var(--t3)" fill-opacity="0.1"/>781<g stroke="var(--rule)" stroke-width="0.6">782<line x1="30" y1="30" x2="514" y2="30"/>783<line x1="30" y1="30" x2="30" y2="514"/>784<line x1="30" y1="52" x2="514" y2="52"/>785<line x1="52" y1="30" x2="52" y2="514"/>786<line x1="30" y1="74" x2="514" y2="74"/>787<line x1="74" y1="30" x2="74" y2="514"/>788<line x1="30" y1="96" x2="514" y2="96"/>789<line x1="96" y1="30" x2="96" y2="514"/>790<line x1="30" y1="118" x2="514" y2="118"/>791<line x1="118" y1="30" x2="118" y2="514"/>792<line x1="30" y1="140" x2="514" y2="140"/>793<line x1="140" y1="30" x2="140" y2="514"/>794<line x1="30" y1="162" x2="514" y2="162"/>795<line x1="162" y1="30" x2="162" y2="514"/>796<line x1="30" y1="184" x2="514" y2="184"/>797<line x1="184" y1="30" x2="184" y2="514"/>798<line x1="30" y1="206" x2="514" y2="206"/>799<line x1="206" y1="30" x2="206" y2="514"/>800<line x1="30" y1="228" x2="514" y2="228"/>801<line x1="228" y1="30" x2="228" y2="514"/>802<line x1="30" y1="250" x2="514" y2="250"/>803<line x1="250" y1="30" x2="250" y2="514"/>804<line x1="30" y1="272" x2="514" y2="272"/>805<line x1="272" y1="30" x2="272" y2="514"/>806<line x1="30" y1="294" x2="514" y2="294"/>807<line x1="294" y1="30" x2="294" y2="514"/>808<line x1="30" y1="316" x2="514" y2="316"/>809<line x1="316" y1="30" x2="316" y2="514"/>810<line x1="30" y1="338" x2="514" y2="338"/>811<line x1="338" y1="30" x2="338" y2="514"/>812<line x1="30" y1="360" x2="514" y2="360"/>813<line x1="360" y1="30" x2="360" y2="514"/>814<line x1="30" y1="382" x2="514" y2="382"/>815<line x1="382" y1="30" x2="382" y2="514"/>816<line x1="30" y1="404" x2="514" y2="404"/>817<line x1="404" y1="30" x2="404" y2="514"/>818<line x1="30" y1="426" x2="514" y2="426"/>819<line x1="426" y1="30" x2="426" y2="514"/>820<line x1="30" y1="448" x2="514" y2="448"/>821<line x1="448" y1="30" x2="448" y2="514"/>822<line x1="30" y1="470" x2="514" y2="470"/>823<line x1="470" y1="30" x2="470" y2="514"/>824<line x1="30" y1="492" x2="514" y2="492"/>825<line x1="492" y1="30" x2="492" y2="514"/>826<line x1="30" y1="514" x2="514" y2="514"/>827<line x1="514" y1="30" x2="514" y2="514"/>828</g>829<text x="239.0" y="243.84" fill="currentColor">0</text>830<text x="283.0" y="243.84" fill="currentColor">1</text>831<text x="305.0" y="265.84" fill="currentColor">0</text>832<text x="283.0" y="287.84" fill="currentColor">0</text>833<text x="41.0" y="309.84" fill="currentColor">0</text>834<text x="85.0" y="309.84" fill="currentColor">0</text>835<text x="107.0" y="309.84" fill="currentColor">1</text>836<text x="217.0" y="309.84" fill="currentColor">0</text>837<text x="239.0" y="309.84" fill="currentColor" font-weight="500">1</text>838<text x="261.0" y="309.84" fill="currentColor" font-weight="500">0</text>839<text x="283.0" y="309.84" fill="currentColor" font-weight="500">0</text>840<text x="305.0" y="309.84" fill="currentColor" font-weight="500">1</text>841<text x="349.0" y="309.84" fill="currentColor">0</text>842<text x="173.0" y="331.84" fill="currentColor">1</text>843<text x="195.0" y="331.84" fill="currentColor">1</text>844<text x="239.0" y="331.84" fill="currentColor" font-weight="500">0</text>845<text x="261.0" y="331.84" fill="currentColor" font-weight="500">0</text>846<text x="283.0" y="331.84" fill="currentColor" font-weight="500">1</text>847<text x="305.0" y="331.84" fill="currentColor" font-weight="500">1</text>848<text x="85.0" y="353.84" fill="currentColor">1</text>849<text x="239.0" y="353.84" fill="currentColor" font-weight="500">1</text>850<text x="261.0" y="353.84" fill="currentColor" font-weight="500">1</text>851<text x="283.0" y="353.84" fill="currentColor" font-weight="500">0</text>852<text x="305.0" y="353.84" fill="currentColor" font-weight="500">0</text>853<text x="327.0" y="353.84" fill="currentColor">1</text>854<text x="349.0" y="353.84" fill="currentColor">1</text>855<text x="371.0" y="353.84" fill="currentColor">0</text>856<text x="41.0" y="375.84" fill="currentColor" font-weight="500">1</text>857<text x="63.0" y="375.84" fill="currentColor" font-weight="500">0</text>858<text x="85.0" y="375.84" fill="currentColor" font-weight="500">1</text>859<text x="107.0" y="375.84" fill="currentColor" font-weight="500">0</text>860<text x="173.0" y="375.84" fill="currentColor" font-weight="500">0</text>861<text x="195.0" y="375.84" fill="currentColor" font-weight="500">1</text>862<text x="217.0" y="375.84" fill="currentColor" font-weight="500">1</text>863<text x="239.0" y="375.84" fill="currentColor" font-weight="500">0</text>864<text x="261.0" y="375.84" fill="currentColor" font-weight="500">1</text>865<text x="283.0" y="375.84" fill="currentColor" font-weight="500">1</text>866<text x="305.0" y="375.84" fill="currentColor" font-weight="500">0</text>867<text x="327.0" y="375.84" fill="currentColor">0</text>868<text x="41.0" y="397.84" fill="currentColor" font-weight="500">0</text>869<text x="63.0" y="397.84" fill="currentColor" font-weight="500">1</text>870<text x="85.0" y="397.84" fill="currentColor" font-weight="500">1</text>871<text x="107.0" y="397.84" fill="currentColor" font-weight="500">0</text>872<text x="151.0" y="397.84" fill="currentColor">0</text>873<text x="173.0" y="397.84" fill="currentColor" font-weight="500">1</text>874<text x="195.0" y="397.84" fill="currentColor" font-weight="500">1</text>875<text x="217.0" y="397.84" fill="currentColor" font-weight="500">0</text>876<text x="239.0" y="397.84" fill="currentColor" font-weight="500">0</text>877<text x="261.0" y="397.84" fill="currentColor" font-weight="500">0</text>878<text x="283.0" y="397.84" fill="currentColor" font-weight="500">1</text>879<text x="305.0" y="397.84" fill="currentColor" font-weight="500">1</text>880<text x="371.0" y="397.84" fill="currentColor">0</text>881<text x="41.0" y="419.84" fill="currentColor" font-weight="500">1</text>882<text x="63.0" y="419.84" fill="currentColor" font-weight="500">0</text>883<text x="85.0" y="419.84" fill="currentColor" font-weight="500">0</text>884<text x="107.0" y="419.84" fill="currentColor" font-weight="500">1</text>885<text x="129.0" y="419.84" fill="currentColor">0</text>886<text x="173.0" y="419.84" fill="currentColor" font-weight="500">1</text>887<text x="195.0" y="419.84" fill="currentColor" font-weight="500">0</text>888<text x="217.0" y="419.84" fill="currentColor" font-weight="500">0</text>889<text x="239.0" y="419.84" fill="currentColor" font-weight="500">1</text>890<text x="261.0" y="419.84" fill="currentColor" font-weight="500">1</text>891<text x="283.0" y="419.84" fill="currentColor" font-weight="500">0</text>892<text x="305.0" y="419.84" fill="currentColor" font-weight="500">0</text>893<text x="371.0" y="419.84" fill="currentColor">1</text>894<text x="41.0" y="441.84" fill="currentColor" font-weight="500">0</text>895<text x="63.0" y="441.84" fill="currentColor" font-weight="500">1</text>896<text x="85.0" y="441.84" fill="currentColor" font-weight="500">0</text>897<text x="107.0" y="441.84" fill="currentColor" font-weight="500">1</text>898<text x="129.0" y="441.84" fill="currentColor" font-weight="500">0</text>899<text x="151.0" y="441.84" fill="currentColor" font-weight="500">1</text>900<text x="173.0" y="441.84" fill="currentColor" font-weight="500">0</text>901<text x="195.0" y="441.84" fill="currentColor" font-weight="500">0</text>902<text x="217.0" y="441.84" fill="currentColor" font-weight="500">1</text>903<text x="239.0" y="441.84" fill="currentColor" font-weight="500">1</text>904<text x="261.0" y="441.84" fill="currentColor" font-weight="500">0</text>905<text x="283.0" y="441.84" fill="currentColor" font-weight="500">0</text>906<text x="305.0" y="441.84" fill="currentColor" font-weight="500">1</text>907<text x="327.0" y="441.84" fill="currentColor" font-weight="500">1</text>908<text x="349.0" y="441.84" fill="currentColor" font-weight="500">0</text>909<text x="371.0" y="441.84" fill="currentColor" font-weight="500">0</text>910<text x="415.0" y="441.84" fill="currentColor">0</text>911<text x="41.0" y="463.84" fill="currentColor" font-weight="500">1</text>912<text x="63.0" y="463.84" fill="currentColor" font-weight="500">0</text>913<text x="85.0" y="463.84" fill="currentColor" font-weight="500">0</text>914<text x="107.0" y="463.84" fill="currentColor" font-weight="500">1</text>915<text x="129.0" y="463.84" fill="currentColor" font-weight="500">0</text>916<text x="151.0" y="463.84" fill="currentColor" font-weight="500">0</text>917<text x="173.0" y="463.84" fill="currentColor" font-weight="500">1</text>918<text x="195.0" y="463.84" fill="currentColor" font-weight="500">1</text>919<text x="217.0" y="463.84" fill="currentColor" font-weight="500">0</text>920<text x="239.0" y="463.84" fill="currentColor" font-weight="500">0</text>921<text x="261.0" y="463.84" fill="currentColor" font-weight="500">0</text>922<text x="283.0" y="463.84" fill="currentColor" font-weight="500">1</text>923<text x="305.0" y="463.84" fill="currentColor" font-weight="500">1</text>924<text x="327.0" y="463.84" fill="currentColor" font-weight="500">0</text>925<text x="349.0" y="463.84" fill="currentColor" font-weight="500">1</text>926<text x="371.0" y="463.84" fill="currentColor" font-weight="500">0</text>927<text x="41.0" y="485.84" fill="currentColor" font-weight="500">0</text>928<text x="63.0" y="485.84" fill="currentColor" font-weight="500">1</text>929<text x="85.0" y="485.84" fill="currentColor" font-weight="500">1</text>930<text x="107.0" y="485.84" fill="currentColor" font-weight="500">0</text>931<text x="129.0" y="485.84" fill="currentColor" font-weight="500">1</text>932<text x="151.0" y="485.84" fill="currentColor" font-weight="500">1</text>933<text x="173.0" y="485.84" fill="currentColor" font-weight="500">0</text>934<text x="195.0" y="485.84" fill="currentColor" font-weight="500">1</text>935<text x="217.0" y="485.84" fill="currentColor" font-weight="500">1</text>936<text x="239.0" y="485.84" fill="currentColor" font-weight="500">0</text>937<text x="261.0" y="485.84" fill="currentColor" font-weight="500">1</text>938<text x="283.0" y="485.84" fill="currentColor" font-weight="500">1</text>939<text x="305.0" y="485.84" fill="currentColor" font-weight="500">0</text>940<text x="327.0" y="485.84" fill="currentColor" font-weight="500">1</text>941<text x="349.0" y="485.84" fill="currentColor" font-weight="500">0</text>942<text x="371.0" y="485.84" fill="currentColor" font-weight="500">1</text>943<text x="393.0" y="485.84" fill="currentColor">0</text>944<text x="41.0" y="507.84" fill="currentColor" font-weight="500">1</text>945<text x="63.0" y="507.84" fill="currentColor" font-weight="500">0</text>946<text x="85.0" y="507.84" fill="currentColor" font-weight="500">1</text>947<text x="107.0" y="507.84" fill="currentColor" font-weight="500">0</text>948<text x="129.0" y="507.84" fill="currentColor" font-weight="500">1</text>949<text x="151.0" y="507.84" fill="currentColor" font-weight="500">0</text>950<text x="173.0" y="507.84" fill="currentColor" font-weight="500">1</text>951<text x="195.0" y="507.84" fill="currentColor" font-weight="500">0</text>952<text x="217.0" y="507.84" fill="currentColor" font-weight="500">0</text>953<text x="239.0" y="507.84" fill="currentColor" font-weight="500">1</text>954<text x="261.0" y="507.84" fill="currentColor" font-weight="500">1</text>955<text x="283.0" y="507.84" fill="currentColor" font-weight="500">0</text>956<text x="305.0" y="507.84" fill="currentColor" font-weight="500">0</text>957<text x="327.0" y="507.84" fill="currentColor" font-weight="500">0</text>958<text x="349.0" y="507.84" fill="currentColor" font-weight="500">1</text>959<text x="371.0" y="507.84" fill="currentColor" font-weight="500">1</text>960<text x="415.0" y="507.84" fill="currentColor">0</text>961<text x="437.0" y="507.84" fill="currentColor">1</text>962<rect x="228" y="228" width="88" height="88" fill="none" stroke="var(--t5)" stroke-width="1.6" stroke-dasharray="4 3"/>963<rect x="30" y="294" width="88" height="88" fill="none" stroke="var(--t5)" stroke-width="1.6" stroke-dasharray="4 3"/>964<rect x="162" y="294" width="88" height="88" fill="none" stroke="var(--t0)" stroke-width="1.6" stroke-dasharray="4 3"/>965<rect x="228" y="294" width="88" height="88" fill="none" stroke="var(--t1)" stroke-width="1.6"/>966<rect x="294" y="294" width="88" height="88" fill="none" stroke="var(--t2)" stroke-width="1.6" stroke-dasharray="4 3"/>967<rect x="30" y="360" width="88" height="88" fill="none" stroke="var(--t1)" stroke-width="1.6"/>968<rect x="96" y="360" width="88" height="88" fill="none" stroke="var(--t2)" stroke-width="1.6" stroke-dasharray="4 3"/>969<rect x="162" y="360" width="88" height="88" fill="none" stroke="var(--t3)" stroke-width="1.6"/>970<rect x="228" y="360" width="88" height="88" fill="none" stroke="var(--t4)" stroke-width="1.6"/>971<rect x="294" y="360" width="88" height="88" fill="none" stroke="var(--t5)" stroke-width="1.6" stroke-dasharray="4 3"/>972<rect x="30" y="426" width="88" height="88" fill="none" stroke="var(--t4)" stroke-width="1.6"/>973<rect x="96" y="426" width="88" height="88" fill="none" stroke="var(--t5)" stroke-width="1.6"/>974<rect x="162" y="426" width="88" height="88" fill="none" stroke="var(--t6)" stroke-width="1.6"/>975<rect x="228" y="426" width="88" height="88" fill="none" stroke="var(--t0)" stroke-width="1.6"/>976<rect x="294" y="426" width="88" height="88" fill="none" stroke="var(--t1)" stroke-width="1.6"/>977<rect x="360" y="426" width="88" height="88" fill="none" stroke="var(--t2)" stroke-width="1.6" stroke-dasharray="4 3"/>978</g>979<g font-family="IBM Plex Sans, Arial, sans-serif" font-size="13" fill="currentColor">980<rect x="564" y="50" width="18" height="18" fill="var(--t3)" fill-opacity="0.62" stroke="var(--t3)" stroke-width="1.6"/>981<text x="604" y="64" font-weight="500">Solved tile</text>982<text x="604" y="82" font-size="12" fill="var(--muted)">every cell committed and correct; all 16 values visible</text>983<text x="604" y="98" font-size="12" fill="var(--muted)">its tint at full strength, solid outline</text>984<rect x="564" y="126" width="18" height="18" fill="var(--t0)" fill-opacity="0.34" stroke="var(--t0)" stroke-width="1.6" stroke-dasharray="4 3"/>985<text x="604" y="140" font-weight="500">Frontier tile</text>986<text x="604" y="158" font-size="12" fill="var(--muted)">touches a solved tile; the only place reveal() is accepted</text>987<text x="604" y="174" font-size="12" fill="var(--muted)">shows its givens plus the line it shares with the solved tile</text>988<text x="604" y="190" font-size="12" fill="var(--muted)">alone it has m solutions; the shared line is what pins it</text>989<text x="604" y="206" font-size="12" fill="var(--muted)">lighter tint, dashed outline</text>990<rect x="564" y="234" width="18" height="18" fill="var(--t5)" fill-opacity="0.10" stroke="var(--rule)" stroke-width="0.6"/>991<text x="604" y="248" font-weight="500">Hidden tile</text>992<text x="604" y="266" font-size="12" fill="var(--muted)">nothing revealed; never in the agent's context</text>993<text x="604" y="282" font-size="12" fill="var(--muted)">faintest tint, no outline</text>994<rect x="564" y="310" width="9" height="18" fill="var(--t3)" fill-opacity="0.62"/>995<rect x="573" y="310" width="9" height="18" fill="color-mix(in oklch, var(--t3) 50%, var(--t0))" fill-opacity="0.62"/>996<text x="604" y="324" font-weight="500">Seam</text>997<text x="604" y="342" font-size="12" fill="var(--muted)">tiles overlap by one cell: that line belongs to both</text>998<text x="604" y="358" font-size="12" fill="var(--muted)">its colour is the mean of both hues at the same lightness</text>999<text x="604" y="374" font-size="12" fill="var(--muted)">opacity never stacks, so corners do not go brighter</text>1000<text x="604" y="390" font-size="12" fill="var(--muted)">no two touching tiles share a hue: 7 hues, (tx + 3ty) mod 7</text>1001<text x="604" y="406" font-size="12" fill="var(--muted)">pitch is n-1: a 7x7 mosaic of 4x4 tiles is 22x22 cells</text>1002<text x="604" y="448" font-weight="500">Scale</text>1003<text x="604" y="466" font-size="12" fill="var(--muted)">X is any value in 2..15; this figure is X=7, n=4, seed 7</text>1004<text x="604" y="482" font-size="12" fill="var(--muted)">9 solved after 9 frontier steps from a seed tile</text>1005<text x="604" y="498" font-size="12" fill="var(--muted)">the layout is never fixed: seed tile and wavefront come from the run</text>1006</g></svg>10071008100910101011 <figcaption>Generated from a real mosaic (docs/mock-mosaic.py, seed 7, X=7, n=4, 9 steps): every tile window satisfies Takuzu on its own, and neighbours overlap by one cell. The solved region is grown from a seed tile by frontier picks, not placed; X is any value in 2..15 and the same script renders all of them. Each tile has its own tint; a shared line shows both tints combined. A solver only ever sees frontier tiles, each under-determined alone; where to expand, and how much to commit before a shared line resolves, is the agent's problem and the thing the analyzer fingerprints.</figcaption>1012 </figure>1013 </section>10141015 <section>1016 <h2>Events</h2>1017 <div class="wrap">1018 <table>1019 <thead><tr><th>Kind</th><th>Signed by</th><th>Carries</th><th>Why this shape</th></tr></thead>1020 <tbody>1021 <tr><td class="k">manifest</td><td>referee</td><td>seed commit, X, n, m, k, rules, config tags, agent npub</td><td>param-replaceable on <span class="mono">d=game</span>; tags are the query language for the dataset</td></tr>1022 <tr><td class="k">challenge</td><td>referee</td><td>seed commit + board params, no agent</td><td>many agents play one board — the paired trial</td></tr>1023 <tr><td class="k">batch</td><td>referee</td><td>reveal or commit resolution, delta-coded, forced/guess split, <span class="mono">#tile</span> tags</td><td>regular event; spectators filter by tile for a viewport</td></tr>1024 <tr><td class="k">board</td><td>referee</td><td>optional compressed snapshot at <span class="mono">seq</span></td><td>skips the refold for late joiners; ~30 KB at 224²</td></tr>1025 <tr><td class="k">seed reveal</td><td>referee</td><td>seed, nonce</td><td>turns every spectator into a verifier</td></tr>1026 <tr><td class="k">analysis</td><td>analyzer</td><td>fingerprints <span class="mono">e=game</span>; leaderboards as replaceable</td><td>derived, rebuildable, separately signed</td></tr>1027 <tr><td class="k">intent</td><td>agent</td><td>stated reasoning per batch</td><td>the richest behavioural signal; Blossom if long</td></tr>1028 </tbody>1029 </table>1030 </div>1031 </section>10321033 <section>1034 <h2>Knobs</h2>1035 <ul>1036 <li><strong>Tile size n</strong> (6–12), <strong>mosaic X</strong>, <strong>multiplicity m</strong> per tile, <strong>coupling depth k</strong> the generator certifies.</li>1037 <li><strong>Couplings on/off:</strong> shared seams, rules across seams, band uniqueness, seam clues.</li>1038 <li><strong>Reveal cost</strong> and whether unforced commits are rejected, penalised, or merely counted.</li>1039 <li><strong>Per-agent config tags</strong> — model, batch size, code use, initial reveal — so the relay answers "which configs explore badly" with one filter.</li>1040 </ul>1041 </section>1042</main>