openzoo 0.49.8 → 0.49.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -7
- package/bin/openzoo.js +3 -2
- package/lib/claudecode.js +847 -0
- package/lib/grokui.mjs +1323 -225
- package/lib/launch.js +220 -91
- package/lib/livestatus.js +4 -2
- package/lib/modelroute/README.md +1 -0
- package/lib/modelroute/catalog.json +1 -0
- package/lib/modelroute/outcomes.json +1566 -0
- package/lib/modelroute/router.json +1 -0
- package/lib/modelroute.js +737 -0
- package/lib/models.js +155 -64
- package/lib/package.json +3 -0
- package/lib/podagent.mjs +73 -27
- package/lib/proxy.js +106 -46
- package/lib/relay.js +275 -0
- package/lib/runguard.js +31 -0
- package/lib/spill.js +9 -1
- package/lib/think.js +126 -0
- package/package.json +5 -4
- package/vendor/modelroute/CURRENT_STATE.md +132 -0
- package/vendor/modelroute/HANDOFF.md +159 -0
- package/vendor/modelroute/catalog.json +1 -0
- package/vendor/modelroute/holographic_modelroute.py +809 -0
- package/vendor/modelroute/outcomes.json +1566 -0
- package/vendor/modelroute/router.json +1 -0
package/lib/launch.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `npx openzoo claude [args...]` —
|
|
3
|
-
*
|
|
4
|
-
* over x402 instead of hitting Anthropic directly.
|
|
2
|
+
* `npx openzoo claude [args...]` — install and/or launch `openzoo-claude`
|
|
3
|
+
* (the staccDOTsol fork of open-claude-code) already pointed at the local zoo.
|
|
5
4
|
*
|
|
6
|
-
* This is the supported front door
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
5
|
+
* This is the supported front door. We exec that package's binary
|
|
6
|
+
* (`openzoo-claude` / `occ` / its `claude` bin), never Anthropic's bun
|
|
7
|
+
* `~/.local/bin/claude`. First run prefers `npx -y openzoo-claude` so there
|
|
8
|
+
* is no global-install dance and no official Anthropic installer.
|
|
9
|
+
*
|
|
10
|
+
* ANTHROPIC_BASE_URL is the env the harness reads at startup. The proxy
|
|
11
|
+
* serves POST /v1/messages (see lib/anthropic.js). We boot :8402 first if
|
|
12
|
+
* needed, then spawn with the same zoo env pair — no second key/url pair.
|
|
11
13
|
*/
|
|
12
14
|
import { spawn, spawnSync } from 'node:child_process';
|
|
13
15
|
import fs from 'node:fs';
|
|
@@ -58,19 +60,207 @@ function resolveClaudeDesktop() {
|
|
|
58
60
|
return null;
|
|
59
61
|
}
|
|
60
62
|
|
|
61
|
-
/**
|
|
62
|
-
|
|
63
|
-
for
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
/** Extra bin dirs (Homebrew, ~/.local/bin, npm-global-ish). Finder-launched
|
|
64
|
+
* grokui has no ~/.zshrc PATH, so PATH-only lookup misses user bins. We
|
|
65
|
+
* still scan these for `openzoo-claude` / `occ` — not for Anthropic bun. */
|
|
66
|
+
export function claudeCodeBinDirs(home = os.homedir()) {
|
|
67
|
+
return [
|
|
68
|
+
path.join(home, '.local', 'bin'),
|
|
69
|
+
'/opt/homebrew/bin',
|
|
70
|
+
'/usr/local/bin',
|
|
71
|
+
];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export const OPENZOO_CLAUDE_PACKAGE = 'openzoo-claude';
|
|
75
|
+
|
|
76
|
+
function exeName(name) {
|
|
77
|
+
return name + (process.platform === 'win32' ? '.cmd' : '');
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function isExecutable(file) {
|
|
81
|
+
try { fs.accessSync(file, fs.constants.X_OK); return true; } catch { return false; }
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function readHeadBytes(file, n = 8192) {
|
|
85
|
+
const fd = fs.openSync(file, 'r');
|
|
86
|
+
try {
|
|
87
|
+
const buf = Buffer.alloc(n);
|
|
88
|
+
const got = fs.readSync(fd, buf, 0, n, 0);
|
|
89
|
+
return buf.subarray(0, got);
|
|
90
|
+
} finally {
|
|
91
|
+
fs.closeSync(fd);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function isNativeBinary(buf) {
|
|
96
|
+
if (!buf || buf.length < 2) return false;
|
|
97
|
+
if (buf[0] === 0x7f && buf[1] === 0x45 && buf[2] === 0x4c && buf[3] === 0x46) return true; // ELF
|
|
98
|
+
if (buf[0] === 0x4d && buf[1] === 0x5a) return true; // PE
|
|
99
|
+
if (buf.length >= 4) {
|
|
100
|
+
const mag = buf.readUInt32BE(0);
|
|
101
|
+
// Mach-O 32/64 + fat (incl. byte-swapped).
|
|
102
|
+
if (mag === 0xfeedface || mag === 0xfeedfacf || mag === 0xcafebabe
|
|
103
|
+
|| mag === 0xcffaedfe || mag === 0xcefaedfe) return true;
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** True for Anthropic's bun `claude` (install.sh standalone or bun shebang). */
|
|
109
|
+
export function isAnthropicBunClaude(filePath) {
|
|
110
|
+
try {
|
|
111
|
+
const buf = readHeadBytes(filePath, 512);
|
|
112
|
+
if (isNativeBinary(buf)) return true;
|
|
113
|
+
const shebang = buf.toString('utf8').split(/\r?\n/, 1)[0] || '';
|
|
114
|
+
return shebang.startsWith('#!') && /\bbun\b/i.test(shebang);
|
|
115
|
+
} catch {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/** True when this file is the openzoo-claude package (name, realpath, or shim). */
|
|
121
|
+
export function isOpenzooClaudeBin(filePath) {
|
|
122
|
+
try {
|
|
123
|
+
const real = fs.realpathSync(filePath);
|
|
124
|
+
if (/(?:^|[\\/])openzoo-claude(?:[\\/]|$)/i.test(real)) return true;
|
|
125
|
+
if (isAnthropicBunClaude(real)) return false;
|
|
126
|
+
const buf = readHeadBytes(real, 8192);
|
|
127
|
+
if (isNativeBinary(buf)) return false;
|
|
128
|
+
return buf.toString('utf8').includes('openzoo-claude');
|
|
129
|
+
} catch {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function pathSearchDirs(env = process.env) {
|
|
135
|
+
const extras = env.OPENZOO_CLAUDE_PATH_ONLY === '1'
|
|
136
|
+
? []
|
|
137
|
+
: claudeCodeBinDirs(env.HOME || os.homedir());
|
|
138
|
+
const pathDirs = String(env.PATH || '').split(path.delimiter).filter(Boolean);
|
|
139
|
+
return [...new Set([...extras, ...pathDirs])].filter(Boolean);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
function findNamedBin(name, env, { requireOpenzoo = false } = {}) {
|
|
143
|
+
const bin = exeName(name);
|
|
144
|
+
for (const dir of pathSearchDirs(env)) {
|
|
145
|
+
const f = path.join(dir, bin);
|
|
146
|
+
if (!isExecutable(f)) continue;
|
|
147
|
+
if (requireOpenzoo && !isOpenzooClaudeBin(f)) continue;
|
|
148
|
+
return f;
|
|
66
149
|
}
|
|
67
150
|
return null;
|
|
68
151
|
}
|
|
69
152
|
|
|
153
|
+
export function resolveNpx(env = process.env) {
|
|
154
|
+
return findNamedBin('npx', env);
|
|
155
|
+
}
|
|
156
|
+
|
|
70
157
|
/**
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
158
|
+
* Resolve the openzoo-claude TERMINAL CLI.
|
|
159
|
+
* Prefers `openzoo-claude`, then package `occ`, then that package's `claude`
|
|
160
|
+
* bin. Never returns Anthropic bun `~/.local/bin/claude`.
|
|
161
|
+
*/
|
|
162
|
+
export function resolveClaudeCli(env = process.env) {
|
|
163
|
+
const named = findNamedBin('openzoo-claude', env);
|
|
164
|
+
if (named) return named;
|
|
165
|
+
const occ = findNamedBin('occ', env, { requireOpenzoo: true });
|
|
166
|
+
if (occ) return occ;
|
|
167
|
+
const pkgClaude = findNamedBin('claude', env, { requireOpenzoo: true });
|
|
168
|
+
if (pkgClaude) return pkgClaude;
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Path hit or `npx -y openzoo-claude` fallback. Null only when neither the
|
|
174
|
+
* package nor npx is available.
|
|
175
|
+
*/
|
|
176
|
+
export function resolveOpenzooClaude(env = process.env) {
|
|
177
|
+
const cli = resolveClaudeCli(env);
|
|
178
|
+
if (cli) return { command: cli, prefixArgs: [], via: 'path' };
|
|
179
|
+
const npx = resolveNpx(env);
|
|
180
|
+
if (npx) return { command: npx, prefixArgs: ['-y', OPENZOO_CLAUDE_PACKAGE], via: 'npx' };
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/** Spawn argv for `openzoo claude [args]` — `--help` execs openzoo-claude. */
|
|
185
|
+
export function claudeSpawnSpec(argv = [], env = process.env) {
|
|
186
|
+
const rest = argv.filter((a) => !['--terminal', '-t', '--desktop'].includes(a));
|
|
187
|
+
const resolved = resolveOpenzooClaude(env);
|
|
188
|
+
if (!resolved) return null;
|
|
189
|
+
return {
|
|
190
|
+
command: resolved.command,
|
|
191
|
+
args: [...resolved.prefixArgs, ...rest],
|
|
192
|
+
via: resolved.via,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
function zooAuthToken(baseEnv) {
|
|
197
|
+
if (baseEnv.ANTHROPIC_AUTH_TOKEN) return baseEnv.ANTHROPIC_AUTH_TOKEN;
|
|
198
|
+
const envKey = String(baseEnv.OPENZOO_SUBSCRIPTION_KEY || '').trim();
|
|
199
|
+
if (envKey) return envKey;
|
|
200
|
+
const file = baseEnv.OPENZOO_SUBSCRIPTION_PATH
|
|
201
|
+
|| path.join(baseEnv.HOME || os.homedir(), '.openzoo', 'subscription.json');
|
|
202
|
+
try {
|
|
203
|
+
const key = String(JSON.parse(fs.readFileSync(file, 'utf8'))?.key || '').trim();
|
|
204
|
+
if (key) return key;
|
|
205
|
+
} catch { /* no subscription file */ }
|
|
206
|
+
return 'sk-openzoo';
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* The same env `openzoo claude` writes: gateway auth at the local proxy,
|
|
211
|
+
* Anthropic API key UNSET (it would bill api.anthropic.com), catalog
|
|
212
|
+
* discovery on, compact off because the proxy already spills.
|
|
213
|
+
*
|
|
214
|
+
* grokui Auto and the CLI share this. Do not invent a second key/url pair.
|
|
215
|
+
*/
|
|
216
|
+
export function claudeZooEnv(baseEnv = process.env, { base, port } = {}) {
|
|
217
|
+
const url = base || `http://localhost:${port ?? config.port}/v1`;
|
|
218
|
+
const env = { ...baseEnv };
|
|
219
|
+
delete env.ANTHROPIC_API_KEY;
|
|
220
|
+
env.ANTHROPIC_BASE_URL = url;
|
|
221
|
+
env.ANTHROPIC_AUTH_TOKEN = zooAuthToken(baseEnv);
|
|
222
|
+
const extras = claudeCodeBinDirs(baseEnv.HOME || os.homedir()).filter((d) => {
|
|
223
|
+
try { return fs.existsSync(d); } catch { return false; }
|
|
224
|
+
});
|
|
225
|
+
const pathDirs = String(env.PATH || '').split(path.delimiter).filter(Boolean);
|
|
226
|
+
env.PATH = [...new Set([...extras, ...pathDirs])].join(path.delimiter);
|
|
227
|
+
applyClaudeCodeCatalogEnv(env);
|
|
228
|
+
// ANTHROPIC_MODEL is only aliased (never invented) in applyClaudeCodeCatalogEnv.
|
|
229
|
+
// A default pin to openzoo-claude-sonnet-5 hid the live zoo catalog.
|
|
230
|
+
// THE ACTUAL SWITCHES. Three earlier attempts missed these entirely:
|
|
231
|
+
// autoCompactEnabled in settings (global, trapped a session), a raised
|
|
232
|
+
// CLAUDE_CODE_MAX_CONTEXT_TOKENS (clamped to 200k by the model table), and an
|
|
233
|
+
// unrecognised model alias (resolves fine, still compacted). DISABLE_COMPACT
|
|
234
|
+
// and DISABLE_AUTO_COMPACT are in the binary and are the direct controls.
|
|
235
|
+
//
|
|
236
|
+
// Correct here for the same reason as everything else in this block: the
|
|
237
|
+
// proxy binds the prefix and forwards a bounded tail, so the request that
|
|
238
|
+
// leaves this machine stays small no matter how long the conversation runs.
|
|
239
|
+
if (baseEnv.OPENZOO_KEEP_COMPACT !== '1') {
|
|
240
|
+
env.DISABLE_COMPACT = baseEnv.DISABLE_COMPACT || '1';
|
|
241
|
+
env.DISABLE_AUTO_COMPACT = baseEnv.DISABLE_AUTO_COMPACT || '1';
|
|
242
|
+
}
|
|
243
|
+
// RAISE THE CEILING, because the proxy already removed it.
|
|
244
|
+
//
|
|
245
|
+
// Claude Code counts the WHOLE local transcript against the model's window and
|
|
246
|
+
// hard-stops with "Context limit reached - /compact or /clear to continue". It
|
|
247
|
+
// cannot know the proxy binds the old prefix into leCore and forwards only the
|
|
248
|
+
// system block plus a bounded tail - MEASURED live, 8 of 166 turns actually
|
|
249
|
+
// sent. Disabling auto-compact WITHOUT raising this made it worse: it used to
|
|
250
|
+
// compact and carry on, and instead it just stopped.
|
|
251
|
+
//
|
|
252
|
+
// Safe only because spillTranscript is real: OPENZOO_TAIL_MAX_CHARS bounds what
|
|
253
|
+
// leaves this machine however long the conversation gets.
|
|
254
|
+
if (baseEnv.OPENZOO_KEEP_COMPACT !== '1' && !baseEnv.CLAUDE_CODE_MAX_CONTEXT_TOKENS) {
|
|
255
|
+
env.CLAUDE_CODE_MAX_CONTEXT_TOKENS = baseEnv.OPENZOO_CLAUDE_CONTEXT_TOKENS || '1000000';
|
|
256
|
+
}
|
|
257
|
+
return env;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* `npx openzoo claude [args]` — launch openzoo-claude on the zoo.
|
|
262
|
+
* Terminal (openzoo-claude) is the default; `--desktop` opens the Anthropic app.
|
|
263
|
+
* Both get the same zoo env pair so inference pays x402 / subscription.
|
|
74
264
|
*/
|
|
75
265
|
export async function launchClaude(argv) {
|
|
76
266
|
// let, not const: startProxy can heal onto a different port and every URL
|
|
@@ -162,45 +352,17 @@ export async function launchClaude(argv) {
|
|
|
162
352
|
// api.anthropic.com and it TAKES PRECEDENCE over ANTHROPIC_BASE_URL — observed:
|
|
163
353
|
// "Both ... set · auth may not work" + "API Usage Billing", never hitting the
|
|
164
354
|
// zoo. A custom gateway uses BASE_URL + AUTH_TOKEN only; API_KEY must be UNSET
|
|
165
|
-
// (including any inherited one) or it wins.
|
|
166
|
-
const env =
|
|
167
|
-
delete env.ANTHROPIC_API_KEY;
|
|
168
|
-
env.ANTHROPIC_BASE_URL = base;
|
|
169
|
-
env.ANTHROPIC_AUTH_TOKEN = process.env.ANTHROPIC_AUTH_TOKEN || 'sk-openzoo';
|
|
170
|
-
applyClaudeCodeCatalogEnv(env);
|
|
171
|
-
// ANTHROPIC_MODEL is only aliased (never invented) in applyClaudeCodeCatalogEnv.
|
|
172
|
-
// A default pin to openzoo-claude-sonnet-5 hid the live zoo catalog.
|
|
173
|
-
// THE ACTUAL SWITCHES. Three earlier attempts missed these entirely:
|
|
174
|
-
// autoCompactEnabled in settings (global, trapped a session), a raised
|
|
175
|
-
// CLAUDE_CODE_MAX_CONTEXT_TOKENS (clamped to 200k by the model table), and an
|
|
176
|
-
// unrecognised model alias (resolves fine, still compacted). DISABLE_COMPACT
|
|
177
|
-
// and DISABLE_AUTO_COMPACT are in the binary and are the direct controls.
|
|
178
|
-
//
|
|
179
|
-
// Correct here for the same reason as everything else in this block: the
|
|
180
|
-
// proxy binds the prefix and forwards a bounded tail, so the request that
|
|
181
|
-
// leaves this machine stays small no matter how long the conversation runs.
|
|
182
|
-
if (process.env.OPENZOO_KEEP_COMPACT !== '1') {
|
|
183
|
-
env.DISABLE_COMPACT = process.env.DISABLE_COMPACT || '1';
|
|
184
|
-
env.DISABLE_AUTO_COMPACT = process.env.DISABLE_AUTO_COMPACT || '1';
|
|
185
|
-
}
|
|
186
|
-
// RAISE THE CEILING, because the proxy already removed it.
|
|
187
|
-
//
|
|
188
|
-
// Claude Code counts the WHOLE local transcript against the model's window and
|
|
189
|
-
// hard-stops with "Context limit reached - /compact or /clear to continue". It
|
|
190
|
-
// cannot know the proxy binds the old prefix into leCore and forwards only the
|
|
191
|
-
// system block plus a bounded tail - MEASURED live, 8 of 166 turns actually
|
|
192
|
-
// sent. Disabling auto-compact WITHOUT raising this made it worse: it used to
|
|
193
|
-
// compact and carry on, and instead it just stopped.
|
|
194
|
-
//
|
|
195
|
-
// Safe only because spillTranscript is real: OPENZOO_TAIL_MAX_CHARS bounds what
|
|
196
|
-
// leaves this machine however long the conversation gets.
|
|
197
|
-
if (process.env.OPENZOO_KEEP_COMPACT !== '1' && !process.env.CLAUDE_CODE_MAX_CONTEXT_TOKENS) {
|
|
198
|
-
env.CLAUDE_CODE_MAX_CONTEXT_TOKENS = process.env.OPENZOO_CLAUDE_CONTEXT_TOKENS || '1000000';
|
|
199
|
-
}
|
|
355
|
+
// (including any inherited one) or it wins. claudeZooEnv is the one writer.
|
|
356
|
+
const env = claudeZooEnv(process.env, { base });
|
|
200
357
|
|
|
201
358
|
if (terminal) {
|
|
202
|
-
const
|
|
203
|
-
if (!
|
|
359
|
+
const spec = claudeSpawnSpec(argv, env);
|
|
360
|
+
if (!spec) {
|
|
361
|
+
console.error('openzoo: openzoo-claude not found and npx is unavailable.');
|
|
362
|
+
console.error(' install: npx -y openzoo-claude');
|
|
363
|
+
console.error(' or: npm i -g openzoo-claude');
|
|
364
|
+
process.exit(1);
|
|
365
|
+
}
|
|
204
366
|
// ALWAYS-ON HUD via Claude Code's NATIVE status line (the title bar is owned
|
|
205
367
|
// by Claude Code and gets overwritten, so OSC there is useless). We write a
|
|
206
368
|
// tiny status script that reads the proxy's /v1/info, and merge a statusLine
|
|
@@ -310,17 +472,17 @@ export async function launchClaude(argv) {
|
|
|
310
472
|
let wallet = '';
|
|
311
473
|
try { const { PayClient } = await import('./pay.js'); wallet = new PayClient().address; } catch { /* optional */ }
|
|
312
474
|
console.error('');
|
|
313
|
-
console.error(' \x1b[38;5;208m●\x1b[0m openzoo — this
|
|
475
|
+
console.error(' \x1b[38;5;208m●\x1b[0m openzoo — this openzoo-claude session routes through the zoo');
|
|
314
476
|
console.error(` endpoint : ${base}`);
|
|
315
|
-
console.error(' models : GET /v1/models (
|
|
477
|
+
console.error(' models : GET /v1/models (quoteable catalog — Claude /model includes OpenRouter ids + Auto)');
|
|
316
478
|
console.error(' auth : gateway token (ANTHROPIC_API_KEY unset — no api.anthropic.com billing)');
|
|
317
479
|
if (wallet) console.error(` wallet : ${wallet}`);
|
|
318
480
|
console.error(' spend : live in the status line below (bottom of screen); receipts in ~/.openzoo/proxy.log');
|
|
319
481
|
console.error(' every turn pays x402.');
|
|
320
482
|
console.error('');
|
|
321
|
-
const child = spawn(
|
|
483
|
+
const child = spawn(spec.command, spec.args, { stdio: 'inherit', env });
|
|
322
484
|
child.on('exit', (c) => { try { restoreStatus?.(); } catch { /* ignore */ } process.exit(c ?? 0); });
|
|
323
|
-
child.on('error', (e) => { console.error(`openzoo: could not launch claude: ${e.message}`); process.exit(1); });
|
|
485
|
+
child.on('error', (e) => { console.error(`openzoo: could not launch openzoo-claude: ${e.message}`); process.exit(1); });
|
|
324
486
|
return;
|
|
325
487
|
}
|
|
326
488
|
|
|
@@ -415,40 +577,7 @@ export async function launchHarness(cmd, args) {
|
|
|
415
577
|
process.exit(1);
|
|
416
578
|
}
|
|
417
579
|
|
|
418
|
-
const env =
|
|
419
|
-
delete env.ANTHROPIC_API_KEY; // conflicts with the gateway auth-token path
|
|
420
|
-
env.ANTHROPIC_BASE_URL = base;
|
|
421
|
-
env.ANTHROPIC_AUTH_TOKEN = process.env.ANTHROPIC_AUTH_TOKEN || 'sk-openzoo';
|
|
422
|
-
applyClaudeCodeCatalogEnv(env);
|
|
423
|
-
// ANTHROPIC_MODEL is only aliased (never invented) in applyClaudeCodeCatalogEnv.
|
|
424
|
-
// A default pin to openzoo-claude-sonnet-5 hid the live zoo catalog.
|
|
425
|
-
// THE ACTUAL SWITCHES. Three earlier attempts missed these entirely:
|
|
426
|
-
// autoCompactEnabled in settings (global, trapped a session), a raised
|
|
427
|
-
// CLAUDE_CODE_MAX_CONTEXT_TOKENS (clamped to 200k by the model table), and an
|
|
428
|
-
// unrecognised model alias (resolves fine, still compacted). DISABLE_COMPACT
|
|
429
|
-
// and DISABLE_AUTO_COMPACT are in the binary and are the direct controls.
|
|
430
|
-
//
|
|
431
|
-
// Correct here for the same reason as everything else in this block: the
|
|
432
|
-
// proxy binds the prefix and forwards a bounded tail, so the request that
|
|
433
|
-
// leaves this machine stays small no matter how long the conversation runs.
|
|
434
|
-
if (process.env.OPENZOO_KEEP_COMPACT !== '1') {
|
|
435
|
-
env.DISABLE_COMPACT = process.env.DISABLE_COMPACT || '1';
|
|
436
|
-
env.DISABLE_AUTO_COMPACT = process.env.DISABLE_AUTO_COMPACT || '1';
|
|
437
|
-
}
|
|
438
|
-
// RAISE THE CEILING, because the proxy already removed it.
|
|
439
|
-
//
|
|
440
|
-
// Claude Code counts the WHOLE local transcript against the model's window and
|
|
441
|
-
// hard-stops with "Context limit reached - /compact or /clear to continue". It
|
|
442
|
-
// cannot know the proxy binds the old prefix into leCore and forwards only the
|
|
443
|
-
// system block plus a bounded tail - MEASURED live, 8 of 166 turns actually
|
|
444
|
-
// sent. Disabling auto-compact WITHOUT raising this made it worse: it used to
|
|
445
|
-
// compact and carry on, and instead it just stopped.
|
|
446
|
-
//
|
|
447
|
-
// Safe only because spillTranscript is real: OPENZOO_TAIL_MAX_CHARS bounds what
|
|
448
|
-
// leaves this machine however long the conversation gets.
|
|
449
|
-
if (process.env.OPENZOO_KEEP_COMPACT !== '1' && !process.env.CLAUDE_CODE_MAX_CONTEXT_TOKENS) {
|
|
450
|
-
env.CLAUDE_CODE_MAX_CONTEXT_TOKENS = process.env.OPENZOO_CLAUDE_CONTEXT_TOKENS || '1000000';
|
|
451
|
-
}
|
|
580
|
+
const env = claudeZooEnv(process.env, { base });
|
|
452
581
|
console.error(`openzoo: launching \`${cmd}\` on the zoo (ANTHROPIC_BASE_URL=${base}) — every turn pays x402`);
|
|
453
582
|
const child = spawn(cmd, args, { stdio: 'inherit', env });
|
|
454
583
|
child.on('exit', (code) => process.exit(code ?? 0));
|
package/lib/livestatus.js
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* tool) and abort a reader that has gone silent.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
import { stripThinkTags } from './think.js';
|
|
10
|
+
|
|
9
11
|
export const STREAM_IDLE_MS = Number(process.env.OZ_STREAM_IDLE_MS || 180_000);
|
|
10
12
|
export const STALE_THINKING_MS = Number(process.env.OZ_STALE_THINKING_MS || 240_000);
|
|
11
13
|
export const MODEL_WAIT_TICK_MS = 1000;
|
|
@@ -107,7 +109,7 @@ export function shortModelName(id) {
|
|
|
107
109
|
|
|
108
110
|
/** Compact spectator preview — opening lines, not the whole answer. */
|
|
109
111
|
export function clipRacePreview(text, maxLines = 8, maxChars = 420) {
|
|
110
|
-
const s = String(text || '').replace(/\r/g, '');
|
|
112
|
+
const s = stripThinkTags(String(text || '')).replace(/\r/g, '');
|
|
111
113
|
if (!s) return '';
|
|
112
114
|
const lines = s.split('\n');
|
|
113
115
|
let out = lines.length > maxLines ? lines.slice(0, maxLines).join('\n') + '\n…' : s;
|
|
@@ -133,7 +135,7 @@ export function isRaceCountable(textOrArrival) {
|
|
|
133
135
|
? textOrArrival
|
|
134
136
|
: { text: textOrArrival };
|
|
135
137
|
if (arrival.error) return false;
|
|
136
|
-
const s = String(arrival.text || '').trim();
|
|
138
|
+
const s = stripThinkTags(String(arrival.text || '')).trim();
|
|
137
139
|
if (!s) return false;
|
|
138
140
|
if (RACE_FETCH_FAILED.test(s)) return false;
|
|
139
141
|
if (RACE_HTTP_NOTE.test(s)) return false;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Measured route table. catalog.json + router.json + outcomes.json. Regenerated from leCore bench_ledger_hard.jsonl. Do not edit by hand.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"stamp":"2026-08-20T10:58:45Z","ids":["aion-labs/aion-2.0","aion-labs/aion-3.0","aion-labs/aion-3.0-mini","aion-labs/aion-rp-llama-3.1-8b","allenai/olmo-3-32b-think","amazon/nova-2-lite-v1","amazon/nova-lite-v1","amazon/nova-micro-v1","amazon/nova-premier-v1","amazon/nova-pro-v1","anthracite-org/magnum-v4-72b","anthropic/claude-3-haiku","anthropic/claude-fable-5","anthropic/claude-fable-5:batch","anthropic/claude-haiku-4.5","anthropic/claude-haiku-4.5:batch","anthropic/claude-opus-4","anthropic/claude-opus-4.1","anthropic/claude-opus-4.1:batch","anthropic/claude-opus-4.5","anthropic/claude-opus-4.5:batch","anthropic/claude-opus-4.6","anthropic/claude-opus-4.6:batch","anthropic/claude-opus-4.7","anthropic/claude-opus-4.7-fast","anthropic/claude-opus-4.7:batch","anthropic/claude-opus-4.8","anthropic/claude-opus-4.8-fast","anthropic/claude-opus-4.8:batch","anthropic/claude-opus-5","anthropic/claude-opus-5-fast","anthropic/claude-opus-5:batch","anthropic/claude-sonnet-4","anthropic/claude-sonnet-4.5","anthropic/claude-sonnet-4.5:batch","anthropic/claude-sonnet-4.6","anthropic/claude-sonnet-4.6:batch","anthropic/claude-sonnet-5","anthropic/claude-sonnet-5:batch","arcee-ai/trinity-large-thinking","arcee-ai/virtuoso-large","baidu/ernie-4.5-vl-424b-a47b","bytedance-seed/seed-1.6","bytedance-seed/seed-1.6-flash","bytedance-seed/seed-2-1-turbo","bytedance-seed/seed-2.0-code","bytedance-seed/seed-2.0-lite","bytedance-seed/seed-2.0-mini","bytedance/ui-tars-1.5-7b","cognitivecomputations/dolphin-mistral-24b-venice-edition","cohere/command-a","cohere/command-r-08-2024","cohere/command-r-plus-08-2024","cohere/command-r7b-12-2024","cohere/north-mini-code:free","deepcogito/cogito-v2.1-671b","deepseek/deepseek-chat","deepseek/deepseek-chat-v3-0324","deepseek/deepseek-chat-v3.1","deepseek/deepseek-r1","deepseek/deepseek-r1-0528","deepseek/deepseek-r1-distill-llama-70b","deepseek/deepseek-v3.1-terminus","deepseek/deepseek-v3.2","deepseek/deepseek-v3.2-exp","deepseek/deepseek-v4-flash","deepseek/deepseek-v4-flash-0731","deepseek/deepseek-v4-pro","deepseek/deepseek-v4-pro-0813","dots-studio/dots-3-note-preview:free","google/gemini-2.5-flash","google/gemini-2.5-flash-image","google/gemini-2.5-flash-lite","google/gemini-2.5-flash-lite:batch","google/gemini-2.5-flash:batch","google/gemini-2.5-pro","google/gemini-2.5-pro-preview","google/gemini-2.5-pro-preview-05-06","google/gemini-2.5-pro:batch","google/gemini-3-flash-preview","google/gemini-3-flash-preview:batch","google/gemini-3-pro-image","google/gemini-3-pro-image-preview","google/gemini-3.1-flash-image","google/gemini-3.1-flash-image-preview","google/gemini-3.1-flash-lite","google/gemini-3.1-flash-lite-image","google/gemini-3.1-flash-lite-preview","google/gemini-3.1-flash-lite:batch","google/gemini-3.1-pro-preview","google/gemini-3.1-pro-preview-customtools","google/gemini-3.1-pro-preview:batch","google/gemini-3.5-flash","google/gemini-3.5-flash-lite","google/gemini-3.5-flash-lite:batch","google/gemini-3.5-flash:batch","google/gemini-3.6-flash","google/gemini-3.6-flash:batch","google/gemini-3.7-flash","google/gemini-3.7-flash:batch","google/gemma-2-27b-it","google/gemma-3-12b-it","google/gemma-3-27b-it","google/gemma-3-4b-it","google/gemma-3n-e4b-it","google/gemma-4-26b-a4b-it","google/gemma-4-26b-a4b-it:free","google/gemma-4-31b-it","google/gemma-4-31b-it:free","google/lyria-3-clip-preview","google/lyria-3-pro-preview","gryphe/mythomax-l2-13b","ibm-granite/granite-4.0-h-micro","ibm-granite/granite-4.1-8b","inception/mercury-2","inclusionai/ling-2.6-1t","inclusionai/ling-2.6-flash","inclusionai/ling-3.0-flash","inclusionai/ring-2.6-1t","kwaipilot/kat-coder-air-v2.5","kwaipilot/kat-coder-pro-v2","kwaipilot/kat-coder-pro-v2.5","liquid/lfm-2.5-2.6b:free","meituan/longcat-2.0","meta-llama/llama-3.1-70b-instruct","meta-llama/llama-3.1-8b-instruct","meta-llama/llama-3.2-1b-instruct","meta-llama/llama-3.2-3b-instruct","meta-llama/llama-3.3-70b-instruct","meta-llama/llama-4-maverick","meta-llama/llama-4-scout","meta-llama/llama-guard-4-12b","meta/muse-glimmer-30b","meta/muse-spark-1.1","meta/muse-spark-1.2","microsoft/phi-4","microsoft/wizardlm-2-8x22b","minimax/minimax-01","minimax/minimax-m1","minimax/minimax-m2","minimax/minimax-m2-her","minimax/minimax-m2.1","minimax/minimax-m2.5","minimax/minimax-m2.7","minimax/minimax-m3","minimax/minimax-m3:batch","mistralai/codestral-2508","mistralai/ministral-14b-2512","mistralai/ministral-3b-2512","mistralai/ministral-8b-2512","mistralai/mistral-large","mistralai/mistral-large-2407","mistralai/mistral-large-2512","mistralai/mistral-medium-3","mistralai/mistral-medium-3-5","mistralai/mistral-medium-3.1","mistralai/mistral-nemo","mistralai/mistral-saba","mistralai/mistral-small-24b-instruct-2501","mistralai/mistral-small-2603","mistralai/mistral-small-3.1-24b-instruct","mistralai/mistral-small-3.2-24b-instruct","mistralai/mixtral-8x22b-instruct","mistralai/voxtral-small-24b-2507","moonshotai/kimi-k2","moonshotai/kimi-k2-0905","moonshotai/kimi-k2-thinking","moonshotai/kimi-k2.5","moonshotai/kimi-k2.6","moonshotai/kimi-k2.7-code","moonshotai/kimi-k2.7-code:batch","moonshotai/kimi-k3","morph/morph-v3-fast","morph/morph-v3-large","nex-agi/nex-n2-mini","nex-agi/nex-n2-pro","nousresearch/hermes-3-llama-3.1-405b","nousresearch/hermes-3-llama-3.1-70b","nousresearch/hermes-4-405b","nousresearch/hermes-4-70b","nvidia/nemotron-3-nano-30b-a3b","nvidia/nemotron-3-nano-30b-a3b:free","nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free","nvidia/nemotron-3-super-120b-a12b","nvidia/nemotron-3-super-120b-a12b:free","nvidia/nemotron-3-ultra-550b-a55b","nvidia/nemotron-3-ultra-550b-a55b:batch","nvidia/nemotron-3-ultra-550b-a55b:free","nvidia/nemotron-3.5-content-safety:free","nvidia/nemotron-3.5-lightning","nvidia/nemotron-3.5-lightning:free","nvidia/nemotron-nano-12b-v2-vl:free","nvidia/nemotron-nano-9b-v2:free","openai/gpt-3.5-turbo","openai/gpt-3.5-turbo-0613","openai/gpt-3.5-turbo-16k","openai/gpt-3.5-turbo-instruct","openai/gpt-3.5-turbo:batch","openai/gpt-4","openai/gpt-4-turbo","openai/gpt-4-turbo-preview","openai/gpt-4-turbo:batch","openai/gpt-4.1","openai/gpt-4.1-mini","openai/gpt-4.1-mini:batch","openai/gpt-4.1-nano","openai/gpt-4.1-nano:batch","openai/gpt-4.1:batch","openai/gpt-4o","openai/gpt-4o-2024-05-13","openai/gpt-4o-2024-08-06","openai/gpt-4o-2024-11-20","openai/gpt-4o-mini","openai/gpt-4o-mini-2024-07-18","openai/gpt-4o-mini:batch","openai/gpt-4o:batch","openai/gpt-5","openai/gpt-5-codex:batch","openai/gpt-5-image","openai/gpt-5-image-mini","openai/gpt-5-mini","openai/gpt-5-mini:batch","openai/gpt-5-nano","openai/gpt-5-nano:batch","openai/gpt-5-pro","openai/gpt-5-pro:batch","openai/gpt-5.1","openai/gpt-5.1-codex","openai/gpt-5.1-codex-max","openai/gpt-5.1-codex-mini","openai/gpt-5.1:batch","openai/gpt-5.2","openai/gpt-5.2-chat","openai/gpt-5.2-codex","openai/gpt-5.2-pro","openai/gpt-5.2-pro:batch","openai/gpt-5.2:batch","openai/gpt-5.3-codex","openai/gpt-5.4","openai/gpt-5.4-image-2","openai/gpt-5.4-mini","openai/gpt-5.4-mini:batch","openai/gpt-5.4-nano","openai/gpt-5.4-nano:batch","openai/gpt-5.4-pro","openai/gpt-5.4-pro:batch","openai/gpt-5.4:batch","openai/gpt-5.5","openai/gpt-5.5-pro","openai/gpt-5.5-pro:batch","openai/gpt-5.5:batch","openai/gpt-5.6-luna","openai/gpt-5.6-luna-pro","openai/gpt-5.6-luna-pro:batch","openai/gpt-5.6-luna:batch","openai/gpt-5.6-sol","openai/gpt-5.6-sol-pro","openai/gpt-5.6-sol-pro:batch","openai/gpt-5.6-sol:batch","openai/gpt-5.6-terra","openai/gpt-5.6-terra-pro","openai/gpt-5.6-terra-pro:batch","openai/gpt-5.6-terra:batch","openai/gpt-5:batch","openai/gpt-audio","openai/gpt-audio-mini","openai/gpt-chat-latest","openai/gpt-oss-120b","openai/gpt-oss-20b","openai/gpt-oss-20b:free","openai/gpt-oss-safeguard-20b","openai/o1","openai/o1-pro","openai/o1-pro:batch","openai/o1:batch","openai/o3","openai/o3-mini","openai/o3-mini-high","openai/o3-mini-high:batch","openai/o3-mini:batch","openai/o3-pro","openai/o3-pro:batch","openai/o3:batch","openai/o4-mini","openai/o4-mini-high","openai/o4-mini-high:batch","openai/o4-mini:batch","openrouter/auto","openrouter/auto-beta","openrouter/bodybuilder","openrouter/free","openrouter/fusion","openrouter/pareto-code","perceptron/perceptron-mk1","perplexity/sonar","perplexity/sonar-deep-research","perplexity/sonar-pro","perplexity/sonar-pro-search","perplexity/sonar-reasoning-pro","poolside/laguna-s-2.1","poolside/laguna-s-2.1:free","poolside/laguna-xs-2.1","poolside/laguna-xs-2.1:free","qwen/qwen-2.5-72b-instruct","qwen/qwen-2.5-7b-instruct","qwen/qwen-2.5-coder-32b-instruct","qwen/qwen-plus","qwen/qwen-plus-2025-07-28","qwen/qwen-plus-2025-07-28:thinking","qwen/qwen2.5-vl-72b-instruct","qwen/qwen3-14b","qwen/qwen3-235b-a22b","qwen/qwen3-235b-a22b-2507","qwen/qwen3-235b-a22b-thinking-2507","qwen/qwen3-30b-a3b","qwen/qwen3-30b-a3b-instruct-2507","qwen/qwen3-30b-a3b-thinking-2507","qwen/qwen3-32b","qwen/qwen3-8b","qwen/qwen3-coder","qwen/qwen3-coder-30b-a3b-instruct","qwen/qwen3-coder-flash","qwen/qwen3-coder-next","qwen/qwen3-coder-plus","qwen/qwen3-max","qwen/qwen3-max-thinking","qwen/qwen3-next-80b-a3b-instruct","qwen/qwen3-next-80b-a3b-thinking","qwen/qwen3-vl-235b-a22b-instruct","qwen/qwen3-vl-235b-a22b-thinking","qwen/qwen3-vl-30b-a3b-instruct","qwen/qwen3-vl-30b-a3b-thinking","qwen/qwen3-vl-32b-instruct","qwen/qwen3-vl-8b-instruct","qwen/qwen3-vl-8b-thinking","qwen/qwen3.5-122b-a10b","qwen/qwen3.5-27b","qwen/qwen3.5-35b-a3b","qwen/qwen3.5-397b-a17b","qwen/qwen3.5-9b","qwen/qwen3.5-flash-02-23","qwen/qwen3.5-plus-02-15","qwen/qwen3.5-plus-20260420","qwen/qwen3.6-27b","qwen/qwen3.6-35b-a3b","qwen/qwen3.6-flash","qwen/qwen3.6-max-preview","qwen/qwen3.6-plus","qwen/qwen3.7-flash","qwen/qwen3.7-max","qwen/qwen3.7-plus","qwen/qwen3.8-2.4t-a95b","qwen/qwen3.8-27b","qwen/qwen3.8-max","rekaai/reka-edge","rekaai/reka-flash-3","relace/relace-apply-3","relace/relace-search","sakana/fugu-ultra","sakana/sakana-namazu","sao10k/l3-lunaris-8b","sao10k/l3.1-euryale-70b","sao10k/l3.3-euryale-70b","stepfun/step-3.5-flash","stepfun/step-3.7-flash","tencent/hunyuan-a13b-instruct","tencent/hy3","tencent/hy3-preview","thedrummer/cydonia-24b-v4.1","thedrummer/rocinante-12b","thedrummer/skyfall-36b-v2","thedrummer/unslopnemo-12b","thinkingmachines/inkling","thinkingmachines/inkling-small","thinkingmachines/inkling:batch","undi95/remm-slerp-l2-13b","upstage/solar-pro-3","upstage/solar-pro4","writer/palmyra-x5","x-ai/grok-4.20","x-ai/grok-4.20-multi-agent","x-ai/grok-4.3","x-ai/grok-4.5","x-ai/grok-4.6","x-ai/grok-build-0.1","xiaomi/mimo-v2.5","xiaomi/mimo-v2.5-pro","z-ai/glm-4.5","z-ai/glm-4.5-air","z-ai/glm-4.5v","z-ai/glm-4.6","z-ai/glm-4.6v","z-ai/glm-4.7","z-ai/glm-4.7-flash","z-ai/glm-5","z-ai/glm-5-turbo","z-ai/glm-5.1","z-ai/glm-5.2","z-ai/glm-5.2:batch","z-ai/glm-5.2:free","z-ai/glm-5.3","z-ai/glm-5v-turbo","~anthropic/claude-fable-latest","~anthropic/claude-haiku-latest","~anthropic/claude-opus-latest","~anthropic/claude-sonnet-latest","~deepseek/deepseek-v4-flash-latest","~google/gemini-flash-latest","~google/gemini-pro-latest","~moonshotai/kimi-latest","~openai/gpt-latest","~openai/gpt-mini-latest","~x-ai/grok-latest","~z-ai/glm-latest"],"ctx":[131072,131072,131072,32768,65536,1000000,300000,128000,1000000,300000,32768,200000,1000000,1000000,200000,200000,200000,200000,200000,200000,200000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,1000000,262144,131072,123000,262144,262144,262144,262144,262144,262144,128000,128000,256000,128000,128000,128000,256000,128000,163840,163840,163840,64000,163840,8192,163840,163840,163840,1048576,1310720,1048576,1048576,512000,1048576,32768,1048576,1048576,1048576,1048576,1048576,1048576,1048576,1048576,1048576,0,65536,131072,65536,1048576,65536,1048576,1048576,1048576,1048576,1048576,1048576,1048576,1048576,1048576,1048576,1048576,1048576,1048576,8192,131072,262144,131072,32768,262144,262144,262144,262144,1048576,1048576,8192,131000,131072,128000,262144,262144,262144,262144,256000,262144,256000,128000,1048756,131072,131072,60000,131072,131072,1048576,1310720,1048576,131072,1048576,1048576,16384,65535,1000192,1000000,204800,65536,204800,204800,204800,1048576,524288,256000,262144,131072,262144,128000,131072,262144,131072,262144,131072,131072,32768,32768,262144,128000,256000,65536,32000,131072,262144,262144,262144,262144,262144,262144,1048576,81920,262144,262144,262144,131072,131072,131072,131072,262144,256000,256000,1000000,262144,512288,512288,1000000,128000,1000000,1000000,128000,128000,16385,4095,16385,4095,16385,8191,128000,128000,128000,1047576,1047576,1047576,1047576,1047576,1047576,128000,128000,128000,128000,128000,128000,128000,128000,400000,400000,400000,400000,400000,400000,400000,400000,400000,400000,400000,400000,400000,400000,400000,400000,128000,400000,400000,400000,400000,400000,1050000,272000,400000,400000,400000,400000,1050000,1050000,1050000,1050000,1050000,1050000,1050000,1050000,1050000,1050000,1050000,1050000,1050000,1050000,1050000,1050000,1050000,1050000,1050000,400000,128000,128000,400000,131072,131072,131072,131072,200000,200000,200000,200000,200000,200000,200000,200000,200000,200000,200000,200000,200000,200000,200000,200000,2000000,2000000,128000,200000,1000000,2000000,32768,127072,128000,200000,200000,128000,1048576,262144,262144,262144,32768,32768,32768,1000000,1000000,1000000,128000,131072,131072,262144,262144,131072,262144,81920,131072,131072,262144,262144,1000000,262144,1000000,262144,262144,262144,262144,262144,131072,262144,262144,131072,262144,131072,262144,262144,262144,262144,262144,1000000,1000000,1000000,262144,262144,1000000,262144,1000000,1000000,1000000,1000000,1048576,1000000,1000000,16384,65536,256000,256000,1000000,262144,8192,131072,131072,262144,262144,131072,262144,262144,131072,65536,32768,1024000,1048576,524288,524288,6144,131072,524288,1040000,2000000,2000000,1000000,500000,500000,256000,1050000,1050000,131072,131072,65536,204800,131072,204800,202752,204800,202752,204800,1048576,512000,256000,1048576,202752,1000000,200000,1000000,1000000,1310720,1048576,1048576,1048576,1050000,400000,500000,1048576],"price_in":[2.4000000953674316,9.0,2.0999999046325684,2.4000000953674316,0.44999998807907104,0.8999999761581421,0.18000000715255737,0.10499999672174454,7.5,2.4000000953674316,9.0,0.75,30.0,15.0,3.0,1.5,45.0,45.0,22.5,15.0,7.5,15.0,7.5,15.0,90.0,7.5,15.0,30.0,7.5,15.0,30.0,7.5,9.0,9.0,4.5,9.0,4.5,6.0,3.0,0.6600000262260437,2.25,1.2599999904632568,0.75,0.22499999403953552,1.5,1.5,0.75,0.30000001192092896,0.30000001192092896,0.6000000238418579,7.5,0.44999998807907104,7.5,0.11249999701976776,0.0,3.75,0.7721999883651733,0.75,0.75,2.0999999046325684,1.5,2.4000000953674316,0.8100000023841858,0.8069999814033508,0.8100000023841858,0.2658179998397827,0.41999998688697815,4.800000190734863,3.563999891281128,0.0,0.8999999761581421,0.8999999761581421,0.30000001192092896,0.15000000596046448,0.44999998807907104,3.75,3.75,3.75,1.875,1.5,0.75,NaN,6.0,1.5,1.5,0.75,0.75,0.75,0.375,6.0,6.0,3.0,4.5,0.8999999761581421,0.44999998807907104,2.25,2.25,1.125,1.125,0.5625,1.9500000476837158,0.15000000596046448,0.23999999463558197,0.15000000596046448,0.18000000715255737,0.20999999344348907,0.0,0.27000001072883606,0.0,0.0,0.0,0.18000000715255737,0.050999999046325684,0.15000000596046448,0.75,0.22499999403953552,0.029999999329447746,0.06300000101327896,0.22499999403953552,0.44999998807907104,0.8999999761581421,2.2200000286102295,0.0,0.8999999761581421,1.2000000476837158,0.15000000596046448,0.08100000023841858,0.15000000596046448,0.30000001192092896,0.6000000238418579,0.30000001192092896,0.5400000214576721,1.0499999523162842,3.75,3.75,0.20999999344348907,1.8600000143051147,0.6000000238418579,1.649999976158142,0.7649999856948853,0.8999999761581421,0.8999999761581421,0.675000011920929,0.8999999761581421,0.8999999761581421,0.8999999761581421,0.8999999761581421,0.6000000238418579,0.30000001192092896,0.44999998807907104,6.0,6.0,1.5,1.2000000476837158,4.5,1.2000000476837158,0.05700000002980232,0.6000000238418579,0.15000000596046448,0.44999998807907104,1.0529999732971191,0.28125,6.0,0.30000001192092896,1.7100000381469727,1.7999999523162842,1.7999999523162842,1.350000023841858,2.8499999046325684,2.130000114440918,2.8499999046325684,9.0,2.4000000953674316,2.700000047683716,0.07500000298023224,0.75,3.0,2.0999999046325684,3.0,0.38999998569488525,0.15000000596046448,0.0,0.0,0.2549999952316284,0.0,1.7999999523162842,1.7999999523162842,0.0,0.0,0.23999999463558197,0.0,0.0,0.0,1.5,3.0,9.0,4.5,0.75,90.0,30.0,30.0,15.0,6.0,1.2000000476837158,0.6000000238418579,0.30000001192092896,0.15000000596046448,3.0,7.5,15.0,7.5,7.5,0.44999998807907104,0.44999998807907104,0.22499999403953552,3.75,3.75,1.875,30.0,7.5,0.75,0.375,0.15000000596046448,0.07500000298023224,45.0,22.5,3.75,3.75,3.75,0.75,1.875,5.25,5.25,5.25,63.0,31.5,2.625,5.25,7.5,24.0,2.25,1.125,0.6000000238418579,0.30000001192092896,90.0,45.0,3.75,15.0,90.0,45.0,7.5,0.6000000238418579,0.6000000238418579,0.30000001192092896,0.30000001192092896,7.5,7.5,3.75,3.75,6.0,6.0,3.0,3.0,1.875,7.5,1.7999999523162842,15.0,0.09000000357627869,0.09000000357627869,0.0,0.22499999403953552,45.0,450.0,225.0,22.5,6.0,3.299999952316284,3.299999952316284,1.649999976158142,1.649999976158142,60.0,30.0,3.0,3.299999952316284,3.299999952316284,1.649999976158142,1.649999976158142,NaN,NaN,NaN,0.0,NaN,NaN,0.44999998807907104,3.0,6.0,9.0,9.0,6.0,0.27000001072883606,0.0,0.18000000715255737,0.0,1.0800000429153442,0.30000001192092896,1.9800000190734863,0.7799999713897705,0.7799999713897705,0.7799999713897705,2.4000000953674316,0.36000001430511475,1.3650000095367432,0.27000001072883606,0.6899999976158142,0.38999998569488525,0.14444999396800995,0.6000000238418579,0.23999999463558197,0.35100001096725464,0.8999999761581421,0.20999999344348907,0.5849999785423279,0.36000001430511475,1.9500000476837158,2.3399999141693115,2.3399999141693115,0.27000001072883606,0.44999998807907104,0.6299999952316284,1.2000000476837158,0.38999998569488525,0.6000000238418579,0.31200000643730164,0.35100001096725464,0.5400000214576721,0.7799999713897705,0.5849999785423279,0.75,1.1699999570846558,0.30000001192092896,0.19499999284744263,0.7799999713897705,0.8999999761581421,1.7999999523162842,0.41999998688697815,0.5625,3.0810000896453857,0.9750000238418579,0.09000000357627869,4.425000190734863,0.9599999785423279,6.0,1.350000023841858,6.0,0.30000001192092896,0.30000001192092896,2.549999952316284,3.0,15.0,2.8499999046325684,0.11999999731779099,2.549999952316284,1.9500000476837158,0.30000001192092896,0.6000000238418579,0.41999998688697815,0.3959999978542328,0.5400000214576721,0.8999999761581421,0.75,1.649999976158142,1.2000000476837158,2.8499999046325684,1.350000023841858,3.0,1.350000023841858,0.44999998807907104,0.09000000357627869,1.7999999523162842,3.75,3.75,3.75,6.0,6.0,3.0,0.41999998688697815,1.3049999475479126,1.7999999523162842,0.38999998569488525,1.7999999523162842,1.5,0.8999999761581421,1.2000000476837158,0.18000000715255737,1.7999999523162842,3.5999999046325684,2.8980000019073486,2.8980000019073486,4.199999809265137,0.0,4.199999809265137,3.5999999046325684,30.0,3.0,15.0,6.0,0.19499999284744263,1.125,6.0,7.800000190734863,7.5,2.25,6.0,4.199999809265137],"price_out":[4.800000190734863,18.0,4.199999809265137,4.800000190734863,1.5,7.5,0.7200000286102295,0.41999998688697815,37.5,9.600000381469727,15.0,3.75,150.0,75.0,15.0,7.5,225.0,225.0,112.5,75.0,37.5,75.0,37.5,75.0,450.0,37.5,75.0,150.0,37.5,75.0,150.0,37.5,45.0,45.0,22.5,45.0,22.5,30.0,15.0,2.549999952316284,3.5999999046325684,3.75,6.0,0.8999999761581421,7.5,9.0,6.0,1.2000000476837158,0.6000000238418579,2.700000047683716,30.0,1.7999999523162842,30.0,0.44999998807907104,0.0,3.75,3.0861001014709473,3.0,2.8499999046325684,7.5,6.449999809265137,2.4000000953674316,3.0,1.2000000476837158,1.2300000190734863,0.5316359996795654,0.8399999737739563,9.600000381469727,10.692000389099121,0.0,7.5,7.5,1.2000000476837158,0.6000000238418579,3.75,30.0,30.0,30.0,15.0,9.0,4.5,NaN,36.0,9.0,9.0,4.5,4.5,4.5,2.25,36.0,36.0,18.0,27.0,7.5,3.75,13.5,11.25,5.625,5.625,2.8125,1.9500000476837158,0.44999998807907104,1.350000023841858,0.30000001192092896,0.36000001430511475,1.0199999809265137,0.0,1.0199999809265137,0.0,0.0,0.0,0.18000000715255737,0.335999995470047,0.30000001192092896,2.25,1.875,0.09000000357627869,0.1889999955892563,1.875,1.7999999523162842,3.5999999046325684,8.880000114440918,0.0,3.5999999046325684,1.2000000476837158,0.23999999463558197,0.6029999852180481,0.9900000095367432,0.9599999785423279,2.4000000953674316,0.8999999761581421,0.5400000214576721,4.5,12.75,12.75,0.41999998688697815,1.8600000143051147,3.299999952316284,6.599999904632568,3.059999942779541,3.5999999046325684,3.5999999046325684,2.700000047683716,3.5999999046325684,3.5999999046325684,3.5999999046325684,2.700000047683716,0.6000000238418579,0.30000001192092896,0.44999998807907104,18.0,18.0,4.5,6.0,22.5,6.0,0.09000000357627869,1.7999999523162842,0.23999999463558197,1.7999999523162842,1.6649999618530273,0.75,18.0,0.8999999761581421,6.900000095367432,7.5,7.5,6.75,12.0,10.5,12.0,45.0,3.5999999046325684,5.699999809265137,0.30000001192092896,3.0,3.0,2.0999999046325684,9.0,1.2000000476837158,0.6000000238418579,0.0,0.0,1.2000000476837158,0.0,10.800000190734863,10.800000190734863,0.0,0.0,0.6000000238418579,0.0,0.0,0.0,4.5,6.0,12.0,6.0,2.25,180.0,90.0,90.0,45.0,24.0,4.800000190734863,2.4000000953674316,1.2000000476837158,0.6000000238418579,12.0,30.0,45.0,30.0,30.0,1.7999999523162842,1.7999999523162842,0.8999999761581421,15.0,30.0,15.0,30.0,6.0,6.0,3.0,1.2000000476837158,0.6000000238418579,360.0,180.0,30.0,30.0,30.0,6.0,15.0,42.0,42.0,42.0,504.0,252.0,21.0,42.0,45.0,45.0,13.5,6.75,3.75,1.875,540.0,270.0,22.5,90.0,540.0,270.0,45.0,3.5999999046325684,3.5999999046325684,1.7999999523162842,1.7999999523162842,45.0,45.0,22.5,22.5,36.0,36.0,18.0,18.0,15.0,30.0,7.199999809265137,90.0,0.5099999904632568,0.38999998569488525,0.0,0.8999999761581421,180.0,1800.0,900.0,90.0,24.0,13.199999809265137,13.199999809265137,6.599999904632568,6.599999904632568,240.0,120.0,12.0,13.199999809265137,13.199999809265137,6.599999904632568,6.599999904632568,NaN,NaN,NaN,0.0,NaN,NaN,4.5,3.0,24.0,45.0,45.0,24.0,0.5400000214576721,0.0,0.36000001430511475,0.0,1.2000000476837158,0.6000000238418579,3.0,2.3399999141693115,2.3399999141693115,2.3399999141693115,3.0,0.7200000286102295,5.460000038146973,1.649999976158142,6.900000095367432,1.559999942779541,0.5791500210762024,7.199999809265137,0.8399999737739563,1.3650000095367432,3.0,0.8399999737739563,2.924999952316284,2.4000000953674316,9.75,11.699999809265137,11.699999809265137,3.299999952316284,3.5999999046325684,5.699999809265137,12.0,1.559999942779541,7.199999809265137,1.2480000257492065,1.3650000095367432,6.300000190734863,6.239999771118164,4.679999828338623,3.75,7.019999980926514,0.44999998807907104,0.7799999713897705,4.679999828338623,5.400000095367432,10.800000190734863,3.0,3.375,18.486000061035156,5.849999904632568,0.38999998569488525,13.274999618530273,3.8399999141693115,18.0,9.600000381469727,18.0,0.30000001192092896,0.6000000238418579,3.75,9.0,90.0,12.0,0.15000000596046448,2.549999952316284,2.25,0.8999999761581421,3.450000047683716,1.7100000381469727,1.5839999914169312,1.7999999523162842,1.5,1.5,2.4000000953674316,1.2000000476837158,12.149999618530273,3.5999999046325684,12.149999618530273,1.9500000476837158,1.7999999523162842,0.36000001430511475,18.0,7.5,7.5,7.5,18.0,18.0,6.0,0.8399999737739563,2.609999895095825,6.599999904632568,2.549999952316284,5.400000095367432,6.0,2.700000047683716,5.25,1.2000000476837158,5.760000228881836,12.0,9.107999801635742,9.107999801635742,13.199999809265137,0.0,13.199999809265137,12.0,150.0,15.0,75.0,30.0,0.41999998688697815,5.625,36.0,39.0,45.0,13.5,18.0,13.199999809265137],"modality":[1,1,1,1,1,11,3,1,3,3,1,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,1,1,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,15,3,15,15,15,15,15,15,15,15,15,3,3,3,3,15,3,15,15,15,15,15,15,15,15,15,15,15,15,15,1,3,3,3,1,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,15,15,1,1,3,1,1,1,1,1,1,3,3,9,3,3,3,9,9,11,11,11,11,1,9,1,3,3,3,9,13,1,1,1,3,3,3,3,3,1,1,3,3,1,1,1,1,1,1,7,1,1,1,1,1,3,1,1,3,1,1,1,1,1,1,1,3,1,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,3,3,3,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,11,1,1,1,1,11,11,11,11,11,9,9,9,9,11,11,11,11,11,11,11,15,15,1,3,1,1,3,3,1,3,3,3,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,1,3,3,3,1,1,1,3,11,1,1,1,1,3,1,1,1,1,1,1,1,7,7,7,1,1,1,1,11,11,11,11,11,11,7,1,1,1,3,1,3,1,1,1,1,1,1,1,1,1,3,11,11,11,11,1,15,15,3,11,11,11,1],"tools":[true,true,true,false,false,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,false,false,false,true,true,false,true,false,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,false,false,false,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,false,false,true,true,true,true,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,false,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,false,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,false,false,false,false,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,false,true,false,true,true,false,true,true,false,false,false,true,true,true,true,false,true,true,false,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],"jsonmode":[true,true,true,false,true,false,false,false,false,false,true,false,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,false,true,true,true,true,true,true,true,true,true,true,false,false,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,true,true,false,false,true,true,true,true,false,false,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,false,false,true,false,false,false,true,false,false,false,false,false,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,true,false,true,true,true,true,true,true,false,true,true,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],"reasoning":[true,true,true,false,true,true,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,true,true,true,true,false,false,false,false,false,true,false,false,true,true,false,false,false,true,true,false,false,false,false,false,false,false,false,true,true,true,false,false,false,true,true,false,true,true,true,true,true,false,false,false,false,false,false,false,false,true,false,false,false,false,true,false,false,false,false,false,false,true,true,true,true,true,true,false,false,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,false,false,true,false,true,false,true,true,true,true,true,true,false,false,false,false,true,true,false,true,true,false,true,true,false,true,true,true,false,false,false,false,true,true,true,false,true,false,true,false,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,false,false,false,true,true,true,true,true,false,false,false,false,true,true,true,false,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],"moderated":[false,false,false,false,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,false,false,true,true,false,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,false,true,true,false,false,false,false,true,true,false,false],"created":[1771881306,1783443095,1783443096,1738696718,1763758276,1764696672,1733437363,1733437237,1761950332,1733436303,1729555200,1710288000,1781007515,1781007515,1760547638,1760547638,1747931245,1754411591,1754411591,1764010580,1764010580,1770219050,1770219050,1776351100,1778613011,1776351100,1779905091,1779913703,1779905091,1784912544,1784912546,1784912544,1747930371,1759161676,1759161676,1771342990,1771342990,1782843083,1782843083,1775058318,1746478885,1751300903,1766504997,1766505011,1786552176,1786550701,1773157231,1772131107,1753205056,1752094966,1741894342,1724976000,1724976000,1734158152,1781723748,1763071233,1735241320,1742824755,1755779628,1737381095,1748455170,1737663169,1758548275,1764594642,1759150481,1777000666,1785478908,1777000679,1786549364,1786680361,1750172488,1759870431,1753200276,1753200276,1750172488,1750169544,1749137257,1746578513,1750169544,1765987078,1765987078,1781754054,1763653797,1781754065,1772119558,1778168828,1782837225,1772512673,1778168828,1771509627,1772045923,1771509627,1779193800,1784646726,1784646726,1779193800,1784646733,1784646733,1786640581,1786640581,1720828800,1741902625,1741756359,1741905510,1747776824,1775227989,1775227989,1775148486,1775148486,1774907255,1774907286,1688256000,1760927695,1777577071,1772636275,1776948238,1776795886,1784818580,1778247440,1783714590,1774649310,1783714589,1786470519,1784554658,1721692800,1721692800,1727222400,1727222400,1733506137,1743881822,1743881519,1745975193,1786302394,1784215741,1785959287,1736489872,1713225600,1736915462,1750200414,1761252093,1769177239,1766454997,1770908502,1773836697,1780245374,1780245374,1754079630,1764681735,1764681560,1764681654,1708905600,1731978415,1764624472,1746627341,1777570439,1755095639,1721347200,1739803239,1738255409,1773695685,1742238937,1750443016,1713312000,1761835144,1752263252,1757021147,1762440622,1769487076,1776699402,1781266361,1781266361,1784215858,1751910002,1751910858,1782312964,1780937140,1723766400,1723939200,1756235463,1756236182,1765731275,1765731275,1777393095,1773245239,1773245239,1780551208,1780551208,1780551208,1780581864,1786452751,1786452751,1761675565,1757106807,1685232000,1706140800,1693180800,1695859200,1685232000,1685232000,1712620800,1706140800,1712620800,1744651385,1744651381,1744651381,1744651369,1744651369,1744651385,1715558400,1715558400,1722902400,1732127594,1721260800,1721260800,1721260800,1715558400,1754587413,1758643403,1760447986,1760624583,1754587407,1754587407,1754587402,1754587402,1759776663,1759776663,1763060305,1763060298,1764878934,1763057820,1763060305,1765389775,1765389783,1768409315,1765389780,1765389780,1765389775,1771959164,1772734352,1776797528,1773748178,1773748178,1773748187,1773748187,1772734366,1772734366,1772734352,1777051893,1777051896,1777051896,1777051893,1783590864,1783590867,1783590867,1783590864,1783590850,1783590854,1783590854,1783590850,1783590857,1783590861,1783590861,1783590857,1754587413,1768862569,1768859419,1778000212,1754414231,1754414229,1754414229,1761752836,1734459999,1742423211,1742423211,1734459999,1744823457,1738351721,1739372611,1739372611,1738351721,1749598352,1749598352,1744823457,1744820942,1744824212,1744824212,1744820942,1699401600,1784311165,1764903653,1769917427,1781371647,1776747900,1778597029,1738013808,1741311246,1741312423,1761854366,1741313308,1784652683,1784652683,1783002429,1783002429,1726704000,1729036800,1731368400,1738409840,1757347599,1757347599,1738410311,1745876478,1745875757,1753119555,1753449557,1745878604,1753806965,1756399192,1745875945,1745876632,1753230546,1753972379,1758115536,1770164101,1758662707,1758662808,1770671901,1757612213,1757612284,1758668687,1758668690,1759794476,1759794479,1761231332,1760463308,1760463746,1772053789,1772053810,1772053822,1771223018,1773152396,1772053776,1771229416,1777261368,1777255064,1777260255,1777261362,1777260242,1775133557,1785190561,1779376861,1780491783,1786551702,1786722910,1785731612,1774026965,1741812813,1758891572,1765213560,1782276303,1786410129,1723507200,1724803200,1734535928,1769728337,1779985069,1751987664,1783344048,1776878150,1758931878,1727654400,1741636566,1731103448,1784325956,1785443117,1784325956,1689984000,1769481200,1786371636,1769003823,1774979019,1774979158,1777591821,1783523154,1786548957,1779298123,1776874269,1776874273,1753471347,1753471258,1754922288,1759235576,1765207462,1766378014,1768833913,1770829182,1773583573,1775578025,1781631930,1781631930,1781631930,1787086655,1775061458,1781029944,1777318492,1776795361,1777318368,1785606009,1777318398,1777318451,1777318428,1777318334,1777318471,1783519360,1787151053],"ranks":[[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,10,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,19,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[17,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,17,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[11,10,12,0,0,0,14,0,0,0,13,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,18,0,18,0,0,13,8,10,0,9,20],[0,0,0,0,0,0,0,0,0,0,0,0],[18,13,17,0,0,0,6,19,18,0,19,17],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,3,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[9,6,4,2,1,4,2,2,2,1,1,1],[2,2,1,1,2,2,1,1,1,2,2,2],[7,7,8,7,16,15,9,0,8,4,17,11],[12,19,14,0,0,0,0,0,0,12,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,13,14,17,15,12,11,18,12,15],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,5,8,8,10,9,15,6,6,7],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,19,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,16,16,16,11,3,4,7,12,10,7,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,14,6,0,18,6,19,0,18,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,13,0,0,14,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,12,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,18,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[6,1,0,0,0,0,0,0,0,0,0,18],[0,0,0,0,0,0,0,0,0,0,0,0],[13,12,10,12,13,11,16,17,16,14,8,12],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,6],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,8,10,19,0,14,17,9,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,15,9,16,0,0,6,7,14,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,20,0,0,0],[0,0,0,0,4,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[8,8,11,0,0,18,11,0,0,0,0,10],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,17,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,12,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[10,15,13,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[15,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,12,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,17,0,0,11,0,0,16,14],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,17,0,5,0,13,0,0,0,13],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,19,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,18,20,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,7,0,0,0,0,0,0,19],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[4,3,3,3,3,1,5,4,4,13,5,5],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[16,20,15,20,0,9,20,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[20,0,20,19,0,0,0,20,0,0,15,4],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,11,0,6,0,3,0,15,3,3],[0,0,0,0,0,0,0,18,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,5,0,0,0,0,0,0,8],[0,0,0,0,0,0,19,0,0,0,0,0],[0,0,0,0,0,0,0,16,7,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,17,9,0,0,0,0,0,13,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[5,4,2,4,0,14,8,15,9,20,4,9],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,14,7,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[19,0,0,0,0,10,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[1,11,5,9,15,0,7,10,3,5,20,0],[14,0,0,0,0,0,0,0,0,8,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,16,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[3,5,6,6,20,7,3,5,5,11,11,16],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0]],"categories":["programming","technology","science","academia","translation","legal","finance","health","trivia","roleplay","marketing","marketing/seo"],"bind_ctx":[128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,0,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000]}
|