superbee 0.3.0 → 0.4.0-pre.2
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 +5 -1
- package/SKILL.md +1 -1
- package/dist/publication-bridge.mjs +136 -15
- package/dist/publication.mjs +136 -15
- package/dist/superbee.mjs +1620 -344
- package/package.json +2 -2
- package/references/hosted-checkout.md +21 -6
- package/references/recipes/review-workflow/references/view-authoring-v0.md +8 -2
- package/references/views/references/view-authoring-v0.md +8 -2
package/dist/superbee.mjs
CHANGED
|
@@ -44,7 +44,7 @@ var __toESM = (mod, isNodeMode, target2) => (target2 = mod != null ? __create(__
|
|
|
44
44
|
var define_SUPERBEE_BUILD_IDENTITY_default;
|
|
45
45
|
var init_define_SUPERBEE_BUILD_IDENTITY = __esm({
|
|
46
46
|
"<define:__SUPERBEE_BUILD_IDENTITY__>"() {
|
|
47
|
-
define_SUPERBEE_BUILD_IDENTITY_default = { schema: "superbee.build-identity.v1", package: { name: "superbee", version: "0.
|
|
47
|
+
define_SUPERBEE_BUILD_IDENTITY_default = { schema: "superbee.build-identity.v1", package: { name: "superbee", version: "0.4.0-pre.2" }, source: { commit: "3b318c6e06999684e762cd552667e70f77be71ea", dirty: false }, artifact: { channel: "npm-package" }, compatibility_contracts: { skill: 1, hook: 1, mcp: 1 } };
|
|
48
48
|
}
|
|
49
49
|
});
|
|
50
50
|
|
|
@@ -4161,7 +4161,7 @@ async function query(backend, filter = {}, options = {}) {
|
|
|
4161
4161
|
}
|
|
4162
4162
|
async function queryHeads(backend, filter = {}, options = {}) {
|
|
4163
4163
|
if (backend.queryHeads) {
|
|
4164
|
-
const rows = (await backend.queryHeads(filter)).filter((row3) => matchesFilter(row3, filter));
|
|
4164
|
+
const rows = (await backend.queryHeads(filter, options.onSkip ? { onSkip: options.onSkip } : void 0)).filter((row3) => matchesFilter(row3, filter));
|
|
4165
4165
|
rows.sort((a, b) => a.id.localeCompare(b.id));
|
|
4166
4166
|
return rows;
|
|
4167
4167
|
}
|
|
@@ -4193,11 +4193,11 @@ function toSelectorList(value) {
|
|
|
4193
4193
|
if (value === void 0) return void 0;
|
|
4194
4194
|
return Array.isArray(value) ? value : [value];
|
|
4195
4195
|
}
|
|
4196
|
-
async function queryEdges(backend, filter = {}) {
|
|
4196
|
+
async function queryEdges(backend, filter = {}, options = {}) {
|
|
4197
4197
|
const fromSelectors = toSelectorList(filter.from)?.map(normalizeEdgeSelector);
|
|
4198
4198
|
const toSelectors = toSelectorList(filter.to)?.map(normalizeEdgeSelector);
|
|
4199
4199
|
const edges = [];
|
|
4200
|
-
for (const doc2 of await query(backend)) {
|
|
4200
|
+
for (const doc2 of await query(backend, {}, options)) {
|
|
4201
4201
|
for (const link4 of parseLinksFromDoc(doc2)) {
|
|
4202
4202
|
if (!matchesEdgeSelector(link4.from, fromSelectors)) continue;
|
|
4203
4203
|
if (!matchesEdgeSelector(link4.to, toSelectors)) continue;
|
|
@@ -5829,8 +5829,8 @@ async function queryHeads2(bundle, filter = {}, options = {}) {
|
|
|
5829
5829
|
function parseLinks2(_bundle, doc2) {
|
|
5830
5830
|
return parseLinks(doc2);
|
|
5831
5831
|
}
|
|
5832
|
-
async function queryEdges2(bundle, filter = {}) {
|
|
5833
|
-
return queryEdges(backendFor(bundle), filter);
|
|
5832
|
+
async function queryEdges2(bundle, filter = {}, options = {}) {
|
|
5833
|
+
return queryEdges(backendFor(bundle), filter, options);
|
|
5834
5834
|
}
|
|
5835
5835
|
async function backlinks2(bundle, target2) {
|
|
5836
5836
|
return backlinks(backendFor(bundle), target2);
|
|
@@ -8882,6 +8882,15 @@ function assertRequestIdentity(requestId2) {
|
|
|
8882
8882
|
function etagForm(token) {
|
|
8883
8883
|
return token.startsWith('"') || token.startsWith("W/") ? token : `"${token}"`;
|
|
8884
8884
|
}
|
|
8885
|
+
async function namesMalformedDocument(res) {
|
|
8886
|
+
if (res.status !== 500) return false;
|
|
8887
|
+
try {
|
|
8888
|
+
const envelope = await res.clone().json();
|
|
8889
|
+
return typeof envelope?.error?.details?.malformed?.reason === "string";
|
|
8890
|
+
} catch {
|
|
8891
|
+
return false;
|
|
8892
|
+
}
|
|
8893
|
+
}
|
|
8885
8894
|
function retryDelayMs(attempt) {
|
|
8886
8895
|
const backoff = Math.min(RETRY_CAP_MS, RETRY_BASE_MS * 2 ** attempt);
|
|
8887
8896
|
return backoff + Math.floor(Math.random() * RETRY_JITTER_MS);
|
|
@@ -8908,6 +8917,7 @@ var init_remote_backend = __esm({
|
|
|
8908
8917
|
init_define_SUPERBEE_UPDATE_POLICY();
|
|
8909
8918
|
init_content_type();
|
|
8910
8919
|
init_errors();
|
|
8920
|
+
init_frontmatter_contract();
|
|
8911
8921
|
init_remote_document_codec();
|
|
8912
8922
|
init_remote_error();
|
|
8913
8923
|
init_remote_parsers();
|
|
@@ -8954,7 +8964,7 @@ var init_remote_backend = __esm({
|
|
|
8954
8964
|
for (let attempt = 0; ; attempt++) {
|
|
8955
8965
|
try {
|
|
8956
8966
|
const res = await this.fetchImpl(new Request(url2, init2));
|
|
8957
|
-
if (RETRIABLE_STATUS.has(res.status) && attempt < this.maxRetries) {
|
|
8967
|
+
if (RETRIABLE_STATUS.has(res.status) && attempt < this.maxRetries && !await namesMalformedDocument(res)) {
|
|
8958
8968
|
await delay2(retryDelayMs(attempt));
|
|
8959
8969
|
continue;
|
|
8960
8970
|
}
|
|
@@ -8981,6 +8991,13 @@ var init_remote_backend = __esm({
|
|
|
8981
8991
|
const actual = envelope?.error?.details?.actual ?? null;
|
|
8982
8992
|
return new VersionConflict(fallbackId, expected, actual);
|
|
8983
8993
|
}
|
|
8994
|
+
const malformedDoc = envelope?.error?.details?.malformed;
|
|
8995
|
+
if (malformedDoc && typeof malformedDoc.reason === "string") {
|
|
8996
|
+
return new MalformedDocumentError(
|
|
8997
|
+
typeof malformedDoc.id === "string" ? malformedDoc.id : fallbackId,
|
|
8998
|
+
new Error(malformedDoc.reason)
|
|
8999
|
+
);
|
|
9000
|
+
}
|
|
8984
9001
|
const message = envelope?.error?.message ?? `wire request failed with status ${res.status}`;
|
|
8985
9002
|
const code3 = envelope?.error?.code ?? (res.status === 401 ? "AUTH_REQUIRED" : res.status >= 500 ? "RUNTIME" : "USAGE");
|
|
8986
9003
|
return new RemoteError(message, code3, res.status);
|
|
@@ -9184,17 +9201,24 @@ var init_remote_backend = __esm({
|
|
|
9184
9201
|
* {@link RemoteBackend.queryHeads} are both thin row-mappings over it, so a wire
|
|
9185
9202
|
* pagination change cannot make the two scans silently paginate differently.
|
|
9186
9203
|
*/
|
|
9187
|
-
async pageDocs(baseParams, mapRow, errorContext) {
|
|
9204
|
+
async pageDocs(baseParams, mapRow, errorContext, skipped) {
|
|
9188
9205
|
const rows = [];
|
|
9189
9206
|
let cursor;
|
|
9190
9207
|
for (; ; ) {
|
|
9191
9208
|
const params = new URLSearchParams(baseParams);
|
|
9209
|
+
if (skipped) params.set("malformed", "skip");
|
|
9192
9210
|
if (cursor) params.set("cursor", cursor);
|
|
9193
9211
|
const qs = params.toString();
|
|
9194
9212
|
const res = await this.send(`/docs${qs ? `?${qs}` : ""}`, { method: "GET" });
|
|
9195
9213
|
if (!res.ok) throw await this.toError(res, errorContext);
|
|
9196
9214
|
const payload = await res.json();
|
|
9197
9215
|
for (const row3 of payload.docs) rows.push(mapRow(row3));
|
|
9216
|
+
if (skipped && Array.isArray(payload.skipped)) {
|
|
9217
|
+
for (const entry of payload.skipped) {
|
|
9218
|
+
if (typeof entry?.id !== "string") continue;
|
|
9219
|
+
skipped.set(entry.id, typeof entry.reason === "string" ? entry.reason : "malformed frontmatter");
|
|
9220
|
+
}
|
|
9221
|
+
}
|
|
9198
9222
|
if (!payload.next_cursor) break;
|
|
9199
9223
|
cursor = payload.next_cursor;
|
|
9200
9224
|
}
|
|
@@ -9203,7 +9227,9 @@ var init_remote_backend = __esm({
|
|
|
9203
9227
|
async list(prefix) {
|
|
9204
9228
|
const params = new URLSearchParams();
|
|
9205
9229
|
if (prefix) params.set("prefix", prefix);
|
|
9206
|
-
|
|
9230
|
+
const skipped = /* @__PURE__ */ new Map();
|
|
9231
|
+
const ids = await this.pageDocs(params, (row3) => row3.id, prefix ?? "", skipped);
|
|
9232
|
+
return [.../* @__PURE__ */ new Set([...ids, ...skipped.keys()])].sort(compareStorageKeys);
|
|
9207
9233
|
}
|
|
9208
9234
|
/**
|
|
9209
9235
|
* The seam's OPTIONAL head-projection push-down, over the SAME `GET /docs` route
|
|
@@ -9216,17 +9242,25 @@ var init_remote_backend = __esm({
|
|
|
9216
9242
|
* `docs/WIRE-PROTOCOL.md`); the engine's `queryHeads` re-filter covers it, per the
|
|
9217
9243
|
* seam contract (over-returning is fine; semantics live in core).
|
|
9218
9244
|
*/
|
|
9219
|
-
async queryHeads(filter = {}) {
|
|
9245
|
+
async queryHeads(filter = {}, options = {}) {
|
|
9220
9246
|
const params = new URLSearchParams();
|
|
9221
9247
|
params.set("fields", "frontmatter");
|
|
9222
9248
|
if (filter.prefix) params.set("prefix", filter.prefix);
|
|
9223
9249
|
if (filter.type) params.set("type", filter.type);
|
|
9224
9250
|
for (const tag of filter.tags ?? []) params.append("tag", tag);
|
|
9225
|
-
|
|
9251
|
+
const skipped = /* @__PURE__ */ new Map();
|
|
9252
|
+
const rows = await this.pageDocs(
|
|
9226
9253
|
params,
|
|
9227
9254
|
(row3) => ({ id: row3.id, frontmatter: row3.frontmatter, version: row3.version }),
|
|
9228
|
-
filter.prefix ?? ""
|
|
9255
|
+
filter.prefix ?? "",
|
|
9256
|
+
skipped
|
|
9229
9257
|
);
|
|
9258
|
+
const named = [...skipped].sort(([a], [b]) => compareStorageKeys(a, b));
|
|
9259
|
+
if (named.length > 0 && !options.onSkip) {
|
|
9260
|
+
throw new MalformedDocumentError(named[0][0], new Error(named[0][1]));
|
|
9261
|
+
}
|
|
9262
|
+
for (const [id, reason] of named) options.onSkip?.({ id, reason });
|
|
9263
|
+
return rows;
|
|
9230
9264
|
}
|
|
9231
9265
|
async versions(id) {
|
|
9232
9266
|
assertSafeConceptId(id);
|
|
@@ -9416,6 +9450,9 @@ var init_mutation = __esm({
|
|
|
9416
9450
|
});
|
|
9417
9451
|
|
|
9418
9452
|
// ../core/src/kinds.ts
|
|
9453
|
+
function isConventionId(id) {
|
|
9454
|
+
return id.startsWith(CONVENTIONS_PREFIX);
|
|
9455
|
+
}
|
|
9419
9456
|
function buildKindRegistry(docs, initialWarnings = [], options = {}) {
|
|
9420
9457
|
const accepted = /* @__PURE__ */ new Map();
|
|
9421
9458
|
const warnings = [...initialWarnings];
|
|
@@ -11824,8 +11861,12 @@ var init_git_path = __esm({
|
|
|
11824
11861
|
// ../board-git/src/porcelain.ts
|
|
11825
11862
|
import { spawnSync } from "node:child_process";
|
|
11826
11863
|
import {
|
|
11864
|
+
closeSync,
|
|
11865
|
+
constants as fsConstants,
|
|
11827
11866
|
existsSync as existsSync2,
|
|
11867
|
+
fstatSync,
|
|
11828
11868
|
lstatSync,
|
|
11869
|
+
openSync,
|
|
11829
11870
|
mkdtempSync,
|
|
11830
11871
|
mkdirSync,
|
|
11831
11872
|
readdirSync,
|
|
@@ -12608,6 +12649,11 @@ function stageAndCommit(boardPath) {
|
|
|
12608
12649
|
return { committed: false, docs: [] };
|
|
12609
12650
|
}
|
|
12610
12651
|
const rows = nameStatusRows(mustGit(boardPath, ["diff", "--cached", "--name-status", "--no-renames", "-z"]));
|
|
12652
|
+
const held2 = malformedDocumentsIn(boardPath, rows, ":0");
|
|
12653
|
+
if (held2.length > 0) {
|
|
12654
|
+
mustGit(boardPath, ["reset", "-q"]);
|
|
12655
|
+
return { committed: false, docs: [], held: held2 };
|
|
12656
|
+
}
|
|
12611
12657
|
const docs = [];
|
|
12612
12658
|
for (const { letter, relPath } of rows) {
|
|
12613
12659
|
if (!isConceptDocPath(relPath)) continue;
|
|
@@ -12629,6 +12675,64 @@ ${bodyLines2.join("\n")}
|
|
|
12629
12675
|
const sha = mustGit(boardPath, ["rev-parse", "HEAD"]).trim();
|
|
12630
12676
|
return { committed: true, sha, subject, docs };
|
|
12631
12677
|
}
|
|
12678
|
+
function malformedOutgoingDocuments(boardPath) {
|
|
12679
|
+
const listed2 = runGit(boardPath, ["status", "--porcelain=v1", "-z", "--untracked-files=all", "--no-renames"]);
|
|
12680
|
+
if (listed2.status !== 0) throw classifyGitError(failureOf(["status"], listed2));
|
|
12681
|
+
const held2 = [];
|
|
12682
|
+
for (const record5 of listed2.stdout.split("\0")) {
|
|
12683
|
+
if (record5.length < 4) continue;
|
|
12684
|
+
const code3 = record5.slice(0, 2);
|
|
12685
|
+
const relPath = record5.slice(3);
|
|
12686
|
+
if (code3.includes("D") || !isConceptDocPath(relPath)) continue;
|
|
12687
|
+
const file2 = path6.join(boardPath, relPath);
|
|
12688
|
+
const content3 = readRegularFile(file2);
|
|
12689
|
+
if (content3 === null) continue;
|
|
12690
|
+
try {
|
|
12691
|
+
parseMarkdown(content3, relPath);
|
|
12692
|
+
} catch (error51) {
|
|
12693
|
+
if (!(error51 instanceof MalformedDocumentError)) throw error51;
|
|
12694
|
+
held2.push({ id: conceptIdFromPath(relPath), relPath, reason: "malformed_frontmatter", detail: error51.detail });
|
|
12695
|
+
}
|
|
12696
|
+
}
|
|
12697
|
+
return held2.sort((a, b) => a.relPath.localeCompare(b.relPath));
|
|
12698
|
+
}
|
|
12699
|
+
function readRegularFile(file2) {
|
|
12700
|
+
let fd;
|
|
12701
|
+
try {
|
|
12702
|
+
fd = openSync(file2, fsConstants.O_RDONLY | (fsConstants.O_NOFOLLOW ?? 0));
|
|
12703
|
+
} catch {
|
|
12704
|
+
return null;
|
|
12705
|
+
}
|
|
12706
|
+
try {
|
|
12707
|
+
if (!fstatSync(fd).isFile()) return null;
|
|
12708
|
+
return readFileSync4(fd, "utf8");
|
|
12709
|
+
} catch {
|
|
12710
|
+
return null;
|
|
12711
|
+
} finally {
|
|
12712
|
+
closeSync(fd);
|
|
12713
|
+
}
|
|
12714
|
+
}
|
|
12715
|
+
function malformedCommittedDocuments(boardPath, base, ref) {
|
|
12716
|
+
const rows = nameStatusRows(mustGit(boardPath, ["diff", "--name-status", "--no-renames", "-z", base, ref]));
|
|
12717
|
+
return malformedDocumentsIn(boardPath, rows, ref);
|
|
12718
|
+
}
|
|
12719
|
+
function malformedDocumentsIn(boardPath, rows, rev) {
|
|
12720
|
+
const held2 = [];
|
|
12721
|
+
for (const { letter, relPath } of rows) {
|
|
12722
|
+
if (!isConceptDocPath(relPath)) continue;
|
|
12723
|
+
const verb = verbOf(letter);
|
|
12724
|
+
if (verb === null || verb === "deleted") continue;
|
|
12725
|
+
const shown2 = runGit(boardPath, ["show", `${rev}:${relPath}`]);
|
|
12726
|
+
if (shown2.status !== 0) continue;
|
|
12727
|
+
try {
|
|
12728
|
+
parseMarkdown(shown2.stdout, relPath);
|
|
12729
|
+
} catch (error51) {
|
|
12730
|
+
if (!(error51 instanceof MalformedDocumentError)) throw error51;
|
|
12731
|
+
held2.push({ id: conceptIdFromPath(relPath), relPath, reason: "malformed_frontmatter", detail: error51.detail });
|
|
12732
|
+
}
|
|
12733
|
+
}
|
|
12734
|
+
return held2.sort((a, b) => a.relPath.localeCompare(b.relPath));
|
|
12735
|
+
}
|
|
12632
12736
|
function snapshotFilesystemFiles(root) {
|
|
12633
12737
|
const files = [];
|
|
12634
12738
|
const visit2 = (dir, prefix) => {
|
|
@@ -14229,14 +14333,14 @@ var init_config = __esm({
|
|
|
14229
14333
|
import { randomBytes } from "node:crypto";
|
|
14230
14334
|
import {
|
|
14231
14335
|
chmodSync,
|
|
14232
|
-
closeSync,
|
|
14336
|
+
closeSync as closeSync2,
|
|
14233
14337
|
constants as constants2,
|
|
14234
14338
|
fchmodSync,
|
|
14235
|
-
fstatSync,
|
|
14339
|
+
fstatSync as fstatSync2,
|
|
14236
14340
|
fsyncSync,
|
|
14237
14341
|
lstatSync as lstatSync2,
|
|
14238
14342
|
mkdirSync as mkdirSync2,
|
|
14239
|
-
openSync,
|
|
14343
|
+
openSync as openSync2,
|
|
14240
14344
|
readFileSync as readFileSync7,
|
|
14241
14345
|
renameSync as renameSync2,
|
|
14242
14346
|
rmdirSync as rmdirSync2,
|
|
@@ -14591,18 +14695,18 @@ function inspectUserStateRootSync(input = homedir5()) {
|
|
|
14591
14695
|
const marker = join4(root, USER_STATE_MARKER_FILE_NAME);
|
|
14592
14696
|
const before = lstatSync2(marker);
|
|
14593
14697
|
if (before.isSymbolicLink() || !before.isFile() || before.size > MARKER_MAX_BYTES) return "conflict";
|
|
14594
|
-
descriptor =
|
|
14698
|
+
descriptor = openSync2(
|
|
14595
14699
|
marker,
|
|
14596
14700
|
constants2.O_RDONLY | constants2.O_NONBLOCK | (constants2.O_NOFOLLOW ?? 0)
|
|
14597
14701
|
);
|
|
14598
|
-
const opened =
|
|
14702
|
+
const opened = fstatSync2(descriptor);
|
|
14599
14703
|
const after = lstatSync2(marker);
|
|
14600
14704
|
if (!opened.isFile() || !sameFileIdentity(before, opened) || after.isSymbolicLink() || !sameFileIdentity(before, after) || currentPrivateStateHost().enforcePrivateMode && currentPrivateStateHost().currentUid() !== void 0 && before.uid !== currentPrivateStateHost().currentUid()) return "conflict";
|
|
14601
14705
|
return readFileSync7(descriptor, "utf8") === USER_STATE_MARKER_BYTES ? "ready" : "conflict";
|
|
14602
14706
|
} catch {
|
|
14603
14707
|
return "conflict";
|
|
14604
14708
|
} finally {
|
|
14605
|
-
if (descriptor !== void 0)
|
|
14709
|
+
if (descriptor !== void 0) closeSync2(descriptor);
|
|
14606
14710
|
}
|
|
14607
14711
|
}
|
|
14608
14712
|
async function inspectPrivateTree(target2, directories, files) {
|
|
@@ -17012,7 +17116,7 @@ var init_command_spec = __esm({
|
|
|
17012
17116
|
id: "checkout",
|
|
17013
17117
|
leaves: [publicLeaf("checkout", "checkout", one, 32, DIR_SURFACE)],
|
|
17014
17118
|
usage: "checkout (<bundle-id> [--host <url>] [--dir <folder>] [--workspace <id>] | --adopt <folder> [--host <url>] [--workspace <id>] | --release <folder>) [--json]",
|
|
17015
|
-
summary: "Mirror a hosted bundle into a new local folder you edit and then sync (sync sends your edits and brings in the host's): signs in if needed (AUTH_REQUIRED carries the link), the host defaults to your last sign-in, the binding stays in private state, and every command then runs on the folder; commands sync cannot send are refused there with 'do this in the app'; the folder carries a read-only .superbee/checkout.json marker that never routes; --adopt binds a moved, copied or restored checkout folder again; --release forgets a checkout and keeps its files"
|
|
17119
|
+
summary: "Mirror a hosted bundle into a new local folder you edit and then sync (sync sends your edits and brings in the host's): signs in if needed (AUTH_REQUIRED carries the link), the host defaults to your last sign-in only when it is the one host signed in (signed in to more than one, it is refused without --host), the binding stays in private state, and every command then runs on the folder; commands sync cannot send are refused there with 'do this in the app'; the folder carries a read-only .superbee/checkout.json marker that never routes; --adopt binds a moved, copied or restored checkout folder again; --release forgets a checkout and keeps its files"
|
|
17016
17120
|
},
|
|
17017
17121
|
{
|
|
17018
17122
|
id: "export",
|
|
@@ -18759,10 +18863,10 @@ Options:
|
|
|
18759
18863
|
});
|
|
18760
18864
|
|
|
18761
18865
|
// ../cli/src/commands/doc/common.ts
|
|
18762
|
-
import { fstatSync as
|
|
18866
|
+
import { fstatSync as fstatSync3 } from "node:fs";
|
|
18763
18867
|
function hasRealStdinInput() {
|
|
18764
18868
|
try {
|
|
18765
|
-
const stats =
|
|
18869
|
+
const stats = fstatSync3(0);
|
|
18766
18870
|
if (stats.isFIFO() || stats.isFile() || stats.isSocket()) return true;
|
|
18767
18871
|
return currentHost().hasAdditionalStdinInput(stats);
|
|
18768
18872
|
} catch {
|
|
@@ -20551,6 +20655,18 @@ var init_reference = __esm({
|
|
|
20551
20655
|
import { createHash as createHash5, randomUUID as randomUUID3 } from "node:crypto";
|
|
20552
20656
|
import { lstat as lstat2, readdir as readdir2, rm, stat as stat2, unlink as unlink2 } from "node:fs/promises";
|
|
20553
20657
|
import { join as join7 } from "node:path";
|
|
20658
|
+
function withDefinitionWrites(binding, stated) {
|
|
20659
|
+
const { definition_writes: _previous, ...rest } = binding;
|
|
20660
|
+
return stated === null ? rest : { ...rest, definition_writes: stated };
|
|
20661
|
+
}
|
|
20662
|
+
async function recordDefinitionWrites(home2, binding, stated) {
|
|
20663
|
+
const current = await readBinding(home2, binding.checkout_id);
|
|
20664
|
+
if (current === null) return binding;
|
|
20665
|
+
if ((current.definition_writes ?? null) === stated) return current;
|
|
20666
|
+
const next = withDefinitionWrites(current, stated);
|
|
20667
|
+
await writeBinding(home2, next);
|
|
20668
|
+
return next;
|
|
20669
|
+
}
|
|
20554
20670
|
function sameFolder(a, b) {
|
|
20555
20671
|
return a.dev === b.dev && a.ino === b.ino && (!a.birth || !b.birth || a.birth === b.birth);
|
|
20556
20672
|
}
|
|
@@ -20618,7 +20734,9 @@ async function writeBinding(home2, binding) {
|
|
|
20618
20734
|
}
|
|
20619
20735
|
async function readBinding(home2, checkoutId) {
|
|
20620
20736
|
const value = await readJson(home2, join7(checkoutDir(home2, checkoutId), "binding.json"));
|
|
20621
|
-
|
|
20737
|
+
if (!isBinding(value) || value.checkout_id !== checkoutId) return null;
|
|
20738
|
+
const stated = value.definition_writes;
|
|
20739
|
+
return stated === void 0 || stated === "allowed" || stated === "refused" ? value : { ...value, definition_writes: "refused" };
|
|
20622
20740
|
}
|
|
20623
20741
|
async function indexCheckoutPath(home2, binding) {
|
|
20624
20742
|
await writeUserStateFileAtomic0600(
|
|
@@ -20721,7 +20839,7 @@ var init_binding = __esm({
|
|
|
20721
20839
|
});
|
|
20722
20840
|
|
|
20723
20841
|
// ../cli/src/nofollow-read.ts
|
|
20724
|
-
import { closeSync as
|
|
20842
|
+
import { closeSync as closeSync3, constants as constants5, fstatSync as fstatSync4, lstatSync as lstatSync4, openSync as openSync3, readFileSync as readFileSync8 } from "node:fs";
|
|
20725
20843
|
function leafIdentity(filePath) {
|
|
20726
20844
|
try {
|
|
20727
20845
|
const leaf = lstatSync4(filePath);
|
|
@@ -20744,19 +20862,19 @@ function readLeafSync(filePath, flags, hasNoFollow) {
|
|
|
20744
20862
|
}
|
|
20745
20863
|
let descriptor;
|
|
20746
20864
|
try {
|
|
20747
|
-
descriptor =
|
|
20865
|
+
descriptor = openSync3(filePath, flags);
|
|
20748
20866
|
} catch (error51) {
|
|
20749
20867
|
return error51.code === "ENOENT" ? { state: "missing" } : { state: "unsafe" };
|
|
20750
20868
|
}
|
|
20751
20869
|
try {
|
|
20752
|
-
const opened =
|
|
20870
|
+
const opened = fstatSync4(descriptor);
|
|
20753
20871
|
if (!opened.isFile()) return { state: "unsafe" };
|
|
20754
20872
|
if (expected && (opened.dev !== expected.dev || opened.ino !== expected.ino)) return { state: "unsafe" };
|
|
20755
20873
|
return { state: "present", bytes: readFileSync8(descriptor) };
|
|
20756
20874
|
} catch {
|
|
20757
20875
|
return { state: "unsafe" };
|
|
20758
20876
|
} finally {
|
|
20759
|
-
|
|
20877
|
+
closeSync3(descriptor);
|
|
20760
20878
|
}
|
|
20761
20879
|
}
|
|
20762
20880
|
function readRegularFileTextNoFollowSync(filePath) {
|
|
@@ -20902,7 +21020,7 @@ function findEntryCollision(paths) {
|
|
|
20902
21020
|
function isRecord6(value) {
|
|
20903
21021
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
20904
21022
|
}
|
|
20905
|
-
function verifyExport(archive, bundleId) {
|
|
21023
|
+
function verifyExport(archive, bundleId, options = {}) {
|
|
20906
21024
|
const raw = readStoredZip(archive);
|
|
20907
21025
|
const manifests = raw.filter((entry) => entry.name === EXPORT_MANIFEST);
|
|
20908
21026
|
if (manifests.length !== 1) throw new ExportArchiveError("manifest_mismatch", `the archive holds ${manifests.length} manifests`);
|
|
@@ -20923,6 +21041,26 @@ function verifyExport(archive, bundleId) {
|
|
|
20923
21041
|
throw new ExportArchiveError("manifest_mismatch", "the manifest is missing a field");
|
|
20924
21042
|
}
|
|
20925
21043
|
if (source.bundleId !== bundleId) throw new ExportArchiveError("wrong_bundle", `the export is of '${source.bundleId}', not '${bundleId}'`);
|
|
21044
|
+
let page;
|
|
21045
|
+
if (options.paged) {
|
|
21046
|
+
const raw2 = manifest.page;
|
|
21047
|
+
const count5 = (n) => Number.isSafeInteger(n) && n >= 0;
|
|
21048
|
+
if (!isRecord6(raw2) || !count5(raw2.from) || !count5(raw2.count) || !count5(raw2.total) || raw2.next !== void 0 && (typeof raw2.next !== "string" || raw2.next === "")) {
|
|
21049
|
+
throw new ExportArchiveError("manifest_mismatch", "the page's manifest does not state its page");
|
|
21050
|
+
}
|
|
21051
|
+
if (raw2.from + raw2.count > raw2.total || raw2.next === void 0 !== (raw2.from + raw2.count === raw2.total) || raw2.next !== void 0 && raw2.count === 0) {
|
|
21052
|
+
throw new ExportArchiveError("manifest_mismatch", "the page's manifest states a page outside the bundle");
|
|
21053
|
+
}
|
|
21054
|
+
page = {
|
|
21055
|
+
from: raw2.from,
|
|
21056
|
+
count: raw2.count,
|
|
21057
|
+
total: raw2.total,
|
|
21058
|
+
...raw2.next !== void 0 ? { next: raw2.next } : {},
|
|
21059
|
+
counts: { documents: counts.documents, reserved: counts.reserved, blobs: counts.blobs }
|
|
21060
|
+
};
|
|
21061
|
+
} else if (manifest.page !== void 0) {
|
|
21062
|
+
throw new ExportArchiveError("manifest_mismatch", "the archive is one page, not the whole bundle");
|
|
21063
|
+
}
|
|
20926
21064
|
const digests = /* @__PURE__ */ new Map();
|
|
20927
21065
|
for (const row3 of listed2) {
|
|
20928
21066
|
if (!isRecord6(row3) || typeof row3.path !== "string" || !Number.isSafeInteger(row3.bytes) || typeof row3.sha256 !== "string" || !/^[0-9a-f]{64}$/.test(row3.sha256)) {
|
|
@@ -20952,7 +21090,9 @@ function verifyExport(archive, bundleId) {
|
|
|
20952
21090
|
for (const listedPath of digests.keys()) {
|
|
20953
21091
|
if (!seen.has(listedPath)) throw new ExportArchiveError("manifest_mismatch", `the manifest lists ${listedPath}, which the archive does not hold`);
|
|
20954
21092
|
}
|
|
20955
|
-
if (
|
|
21093
|
+
if (page) {
|
|
21094
|
+
if (entries.length !== page.count) throw new ExportArchiveError("manifest_mismatch", "the page holds a different number of entries than it states");
|
|
21095
|
+
} else if (tally.documents !== counts.documents || tally.reserved !== counts.reserved || tally.blobs !== counts.blobs) {
|
|
20956
21096
|
throw new ExportArchiveError("manifest_mismatch", "the manifest's counts do not match the archive");
|
|
20957
21097
|
}
|
|
20958
21098
|
const collision = findEntryCollision(entries.map((entry) => entry.path));
|
|
@@ -20964,10 +21104,11 @@ function verifyExport(archive, bundleId) {
|
|
|
20964
21104
|
exportedAt: manifest.exportedAt,
|
|
20965
21105
|
counts: tally,
|
|
20966
21106
|
entries,
|
|
20967
|
-
bytes
|
|
21107
|
+
bytes,
|
|
21108
|
+
...page ? { page } : {}
|
|
20968
21109
|
};
|
|
20969
21110
|
}
|
|
20970
|
-
var EXPORT_MANIFEST, IN_PLACE_STAGING, IN_PLACE_JOURNAL, EXPORT_FORMAT, MAX_EXPORT_ENTRIES, MAX_EXPORT_BYTES, LOCAL, CENTRAL, END, UTF8_NAMES, ExportArchiveError, CRC_TABLE, sha256Hex2, utf8, WINDOWS_DEVICE_NAMES, fold2;
|
|
21111
|
+
var EXPORT_MANIFEST, IN_PLACE_STAGING, IN_PLACE_JOURNAL, EXPORT_FORMAT, MAX_EXPORT_ENTRIES, MAX_EXPORT_BYTES, LOCAL, CENTRAL, END, UTF8_NAMES, ExportArchiveError, CRC_TABLE, sha256Hex2, utf8, WINDOWS_DEVICE_NAMES, fold2, ExportPageChain;
|
|
20971
21112
|
var init_export_archive = __esm({
|
|
20972
21113
|
"../cli/src/hosted/export-archive.ts"() {
|
|
20973
21114
|
"use strict";
|
|
@@ -21005,6 +21146,56 @@ var init_export_archive = __esm({
|
|
|
21005
21146
|
utf8 = new TextDecoder("utf-8", { fatal: true, ignoreBOM: true });
|
|
21006
21147
|
WINDOWS_DEVICE_NAMES = /* @__PURE__ */ new Set(["CON", "PRN", "AUX", "NUL", ...Array.from({ length: 9 }, (_2, i) => `COM${i + 1}`), ...Array.from({ length: 9 }, (_2, i) => `LPT${i + 1}`)]);
|
|
21007
21148
|
fold2 = (segment) => segment.normalize("NFC").toLowerCase();
|
|
21149
|
+
ExportPageChain = class {
|
|
21150
|
+
#pages = [];
|
|
21151
|
+
#from = 0;
|
|
21152
|
+
#ended = false;
|
|
21153
|
+
/** Adds the next page; answers its next cursor, or undefined once the export is whole. */
|
|
21154
|
+
add(verified2) {
|
|
21155
|
+
const page = verified2.page;
|
|
21156
|
+
const first = this.#pages[0] ?? verified2;
|
|
21157
|
+
if (!page || !first.page || this.#ended) throw new ExportArchiveError("manifest_mismatch", "a paged export answered a page outside its run");
|
|
21158
|
+
const counts = first.page.counts;
|
|
21159
|
+
if (verified2.source.tenantId !== first.source.tenantId || verified2.source.bundleId !== first.source.bundleId || verified2.source.revision !== first.source.revision || verified2.source.okfEdition !== first.source.okfEdition || page.counts.documents !== counts.documents || page.counts.reserved !== counts.reserved || page.counts.blobs !== counts.blobs || page.total !== first.page.total || page.total !== counts.documents + counts.reserved + counts.blobs || page.total > MAX_EXPORT_ENTRIES - 1) {
|
|
21160
|
+
throw new ExportArchiveError("manifest_mismatch", "the pages do not describe one export of one revision");
|
|
21161
|
+
}
|
|
21162
|
+
if (page.from !== this.#from) throw new ExportArchiveError("manifest_mismatch", "the pages leave a gap or overlap");
|
|
21163
|
+
this.#pages.push(verified2);
|
|
21164
|
+
this.#from += page.count;
|
|
21165
|
+
if (page.next === void 0) this.#ended = true;
|
|
21166
|
+
return page.next;
|
|
21167
|
+
}
|
|
21168
|
+
/** The whole bundle, as one archive would have carried it. */
|
|
21169
|
+
joined() {
|
|
21170
|
+
const first = this.#pages[0];
|
|
21171
|
+
if (!first?.page || !this.#ended) throw new ExportArchiveError("manifest_mismatch", "the pages end before the last");
|
|
21172
|
+
const { counts } = first.page;
|
|
21173
|
+
const entries = [];
|
|
21174
|
+
const tally = { documents: 0, reserved: 0, blobs: 0 };
|
|
21175
|
+
let bytes = 0;
|
|
21176
|
+
for (const verified2 of this.#pages) {
|
|
21177
|
+
for (const entry of verified2.entries) {
|
|
21178
|
+
entries.push(entry);
|
|
21179
|
+
tally[entry.kind === "document" ? "documents" : entry.kind === "reserved" ? "reserved" : "blobs"] += 1;
|
|
21180
|
+
bytes += entry.bytes.byteLength;
|
|
21181
|
+
}
|
|
21182
|
+
}
|
|
21183
|
+
if (this.#from !== first.page.total || entries.length !== first.page.total) throw new ExportArchiveError("manifest_mismatch", "the pages do not add up to the bundle");
|
|
21184
|
+
if (tally.documents !== counts.documents || tally.reserved !== counts.reserved || tally.blobs !== counts.blobs) {
|
|
21185
|
+
throw new ExportArchiveError("manifest_mismatch", "the manifest's counts do not match the pages");
|
|
21186
|
+
}
|
|
21187
|
+
const seen = /* @__PURE__ */ new Set();
|
|
21188
|
+
for (const entry of entries) {
|
|
21189
|
+
if (seen.has(entry.path)) throw new ExportArchiveError("manifest_mismatch", `the pages hold ${entry.path} twice`);
|
|
21190
|
+
seen.add(entry.path);
|
|
21191
|
+
}
|
|
21192
|
+
const collision = findEntryCollision(entries.map((entry) => entry.path));
|
|
21193
|
+
if (collision) {
|
|
21194
|
+
throw new ExportArchiveError("unsafe_path", `the archive holds paths one folder cannot keep apart: ${JSON.stringify(collision[0])} and ${JSON.stringify(collision[1])}`);
|
|
21195
|
+
}
|
|
21196
|
+
return { source: first.source, exportedAt: first.exportedAt, counts: tally, entries, bytes };
|
|
21197
|
+
}
|
|
21198
|
+
};
|
|
21008
21199
|
}
|
|
21009
21200
|
});
|
|
21010
21201
|
|
|
@@ -21746,8 +21937,10 @@ __export(session_exports, {
|
|
|
21746
21937
|
defaultResumeCommand: () => defaultResumeCommand,
|
|
21747
21938
|
ensureHostedAccessToken: () => ensureHostedAccessToken,
|
|
21748
21939
|
hostArgument: () => hostArgument,
|
|
21940
|
+
hostSourceText: () => hostSourceText,
|
|
21749
21941
|
hostedAuthRoot: () => hostedAuthRoot,
|
|
21750
21942
|
hostedBundleHost: () => hostedBundleHost,
|
|
21943
|
+
hostedWriteHost: () => hostedWriteHost,
|
|
21751
21944
|
logoutHosted: () => logoutHosted,
|
|
21752
21945
|
overrideAudiences: () => overrideAudiences,
|
|
21753
21946
|
persistTokens: () => persistTokens,
|
|
@@ -21761,13 +21954,14 @@ __export(session_exports, {
|
|
|
21761
21954
|
sessionDirFor: () => sessionDirFor,
|
|
21762
21955
|
storeForNewSession: () => storeForNewSession,
|
|
21763
21956
|
storeForSession: () => storeForSession,
|
|
21957
|
+
storedSessionHosts: () => storedSessionHosts,
|
|
21764
21958
|
storedSessionMayNeedSignIn: () => storedSessionMayNeedSignIn,
|
|
21765
21959
|
tokenRequest: () => tokenRequest,
|
|
21766
21960
|
waitForHostedSignIn: () => waitForHostedSignIn,
|
|
21767
21961
|
withSessionLock: () => withSessionLock,
|
|
21768
21962
|
writeDefaultHost: () => writeDefaultHost
|
|
21769
21963
|
});
|
|
21770
|
-
import { mkdir as mkdir2, realpath as realpath2, stat as stat3, unlink as unlink5 } from "node:fs/promises";
|
|
21964
|
+
import { mkdir as mkdir2, readdir as readdir3, realpath as realpath2, stat as stat3, unlink as unlink5 } from "node:fs/promises";
|
|
21771
21965
|
import { createHash as createHash8 } from "node:crypto";
|
|
21772
21966
|
import { basename as basename4, join as join9 } from "node:path";
|
|
21773
21967
|
function defaultHostedAuthDeps(home2, overrides = {}) {
|
|
@@ -21855,6 +22049,68 @@ async function requireHostedBundleHost(flag, home2) {
|
|
|
21855
22049
|
if (!chosen) throw new CliError("USAGE", "no hosted Superbee host: sign in first, or pass --host", { help: `${cliInvocation()} login --host <url>` });
|
|
21856
22050
|
return resolveHostedTarget(chosen);
|
|
21857
22051
|
}
|
|
22052
|
+
async function storedSessionHosts(home2) {
|
|
22053
|
+
const root = hostedAuthRoot(home2);
|
|
22054
|
+
let names;
|
|
22055
|
+
try {
|
|
22056
|
+
names = (await readdir3(root, { withFileTypes: true })).filter((entry) => entry.isDirectory()).map((entry) => entry.name);
|
|
22057
|
+
} catch {
|
|
22058
|
+
return [];
|
|
22059
|
+
}
|
|
22060
|
+
const hosts = /* @__PURE__ */ new Set();
|
|
22061
|
+
for (const name of names) {
|
|
22062
|
+
const record5 = await readRecord(home2, join9(root, name, SESSION_FILE)).catch(() => null);
|
|
22063
|
+
if (!record5 || record5.schema !== 1 || typeof record5.host !== "string" || typeof record5.audience !== "string") continue;
|
|
22064
|
+
const target2 = { origin: record5.host, audience: record5.audience };
|
|
22065
|
+
if (sessionDirFor(home2, sessionAccount(target2)) !== join9(root, name)) continue;
|
|
22066
|
+
hosts.add(hostArgument(target2));
|
|
22067
|
+
}
|
|
22068
|
+
return [...hosts].sort();
|
|
22069
|
+
}
|
|
22070
|
+
function hostSourceText(source) {
|
|
22071
|
+
switch (source) {
|
|
22072
|
+
case "flag":
|
|
22073
|
+
return "--host";
|
|
22074
|
+
case "last-sign-in":
|
|
22075
|
+
return "your last sign-in, the only host with a session";
|
|
22076
|
+
case "only-session":
|
|
22077
|
+
return "the only host with a session";
|
|
22078
|
+
case "last-sign-in-signed-out":
|
|
22079
|
+
return "your last sign-in; no session for it now";
|
|
22080
|
+
}
|
|
22081
|
+
}
|
|
22082
|
+
async function hostedWriteHost(flag, home2, retry) {
|
|
22083
|
+
if (flag !== void 0) {
|
|
22084
|
+
if (flag.trim() === "") throw new CliError("USAGE", "--host is empty: name the hosted Superbee URL", { help: retry("<url>") });
|
|
22085
|
+
return { target: resolveHostedTarget(flag), source: "flag" };
|
|
22086
|
+
}
|
|
22087
|
+
const remembered = await readDefaultHost(home2);
|
|
22088
|
+
const stored = await storedSessionHosts(home2);
|
|
22089
|
+
const candidates = new Set(stored);
|
|
22090
|
+
let rememberedHost = null;
|
|
22091
|
+
if (remembered) {
|
|
22092
|
+
rememberedHost = hostArgument(resolveHostedTarget(remembered));
|
|
22093
|
+
candidates.add(rememberedHost);
|
|
22094
|
+
}
|
|
22095
|
+
if (candidates.size > 1) {
|
|
22096
|
+
const hosts = [...candidates].sort();
|
|
22097
|
+
const signedOut = hosts.filter((host) => !stored.includes(host));
|
|
22098
|
+
throw new CliError("USAGE", `more than one hosted Superbee host could be meant (${hosts.join(", ")}); name the one this write is for with --host`, {
|
|
22099
|
+
details: {
|
|
22100
|
+
reason: "ambiguous_host",
|
|
22101
|
+
hosts,
|
|
22102
|
+
...rememberedHost ? { last_sign_in: rememberedHost } : {},
|
|
22103
|
+
with_session: stored,
|
|
22104
|
+
...signedOut.length > 0 ? { no_session: signedOut } : {},
|
|
22105
|
+
commands: hosts.map(retry)
|
|
22106
|
+
},
|
|
22107
|
+
help: `re-run with --host set to the host you mean (one of: ${hosts.join(", ")}); the last sign-in is not used when sessions are held for more than one host or it has none`
|
|
22108
|
+
});
|
|
22109
|
+
}
|
|
22110
|
+
if (rememberedHost) return { target: resolveHostedTarget(rememberedHost), source: stored.length === 0 ? "last-sign-in-signed-out" : "last-sign-in" };
|
|
22111
|
+
if (stored.length === 1) return { target: resolveHostedTarget(stored[0]), source: "only-session" };
|
|
22112
|
+
return null;
|
|
22113
|
+
}
|
|
21858
22114
|
async function resolveHostSelection(flag, deps) {
|
|
21859
22115
|
const chosen = flag ?? (deps.env[HOST_ENV] || void 0) ?? await readDefaultHost(deps.home) ?? void 0;
|
|
21860
22116
|
if (!chosen) {
|
|
@@ -23966,6 +24222,7 @@ var init_storage = __esm({
|
|
|
23966
24222
|
init_define_SUPERBEE_BUILD_IDENTITY();
|
|
23967
24223
|
init_define_SUPERBEE_UPDATE_POLICY();
|
|
23968
24224
|
init_errors();
|
|
24225
|
+
init_frontmatter_contract();
|
|
23969
24226
|
init_paths();
|
|
23970
24227
|
init_version_transport();
|
|
23971
24228
|
init_uncertain_write();
|
|
@@ -24032,12 +24289,19 @@ function idleBounded(body, deadlineMs, abort) {
|
|
|
24032
24289
|
})
|
|
24033
24290
|
);
|
|
24034
24291
|
}
|
|
24292
|
+
function requestHeaders(credentials, extra, type) {
|
|
24293
|
+
const headers = new Headers(extra);
|
|
24294
|
+
for (const [name, value] of Object.entries(credentials)) headers.set(name, value);
|
|
24295
|
+
headers.set("Content-Type", type);
|
|
24296
|
+
headers.set("Accept", "application/json");
|
|
24297
|
+
return headers;
|
|
24298
|
+
}
|
|
24035
24299
|
function createFetchCarrier(options) {
|
|
24036
24300
|
const fetcher = options.fetch ?? fetch;
|
|
24037
24301
|
const deadlineMs = options.deadlineMs ?? 15e3;
|
|
24038
24302
|
const bindingHeader = options.bindingHeader ?? "X-Superbee-Checkout";
|
|
24039
24303
|
const base = new URL(options.baseUrl);
|
|
24040
|
-
async function send(path53,
|
|
24304
|
+
async function send(path53, body, signal, extra, deadline) {
|
|
24041
24305
|
if (!path53.startsWith("/")) throw new TypeError(`hosted route '${path53}' must be absolute`);
|
|
24042
24306
|
let credentials;
|
|
24043
24307
|
try {
|
|
@@ -24050,14 +24314,29 @@ function createFetchCarrier(options) {
|
|
|
24050
24314
|
return await fetcher(new URL(path53, base), {
|
|
24051
24315
|
method: "POST",
|
|
24052
24316
|
redirect: "error",
|
|
24053
|
-
headers:
|
|
24054
|
-
body:
|
|
24317
|
+
headers: requestHeaders(credentials, extra, body.type),
|
|
24318
|
+
body: body.content,
|
|
24055
24319
|
signal: AbortSignal.any([signal, deadline])
|
|
24056
24320
|
});
|
|
24057
24321
|
} catch (cause) {
|
|
24058
24322
|
throw new HostedCarrierError("unavailable", { cause });
|
|
24059
24323
|
}
|
|
24060
24324
|
}
|
|
24325
|
+
const jsonBody = (input) => ({ type: "application/json", content: JSON.stringify(input) });
|
|
24326
|
+
const owned = /* @__PURE__ */ new Set(["x-superbee-write-request", bindingHeader.toLowerCase(), RECREATE_HEADER.toLowerCase(), VIA_HEADER.toLowerCase(), ACCEPT_DELETES_HEADER.toLowerCase()]);
|
|
24327
|
+
async function answer2(path53, body, signal, extra, maximum) {
|
|
24328
|
+
if (!Number.isSafeInteger(maximum) || maximum <= 0) throw new HostedCarrierError("denied");
|
|
24329
|
+
const deadline = AbortSignal.timeout(deadlineMs);
|
|
24330
|
+
const response = await send(path53, body, signal, extra, deadline);
|
|
24331
|
+
let read;
|
|
24332
|
+
try {
|
|
24333
|
+
read = await readBounded(response, maximum);
|
|
24334
|
+
} catch (error51) {
|
|
24335
|
+
if (response.ok) throw error51 instanceof HostedCarrierError ? error51 : new HostedCarrierError("unavailable", { cause: error51 });
|
|
24336
|
+
read = void 0;
|
|
24337
|
+
}
|
|
24338
|
+
return { status: response.status, headers: response.headers, body: read };
|
|
24339
|
+
}
|
|
24061
24340
|
return {
|
|
24062
24341
|
async json(path53, input, signal, request2) {
|
|
24063
24342
|
if (request2.writeRequest !== void 0 && !WRITE_REQUEST.test(request2.writeRequest)) throw new HostedCarrierError("denied");
|
|
@@ -24071,23 +24350,26 @@ function createFetchCarrier(options) {
|
|
|
24071
24350
|
if (request2.recreate !== void 0) extra[RECREATE_HEADER] = request2.recreate;
|
|
24072
24351
|
if (request2.via !== void 0) extra[VIA_HEADER] = request2.via;
|
|
24073
24352
|
if (request2.acceptDeletes !== void 0) extra[ACCEPT_DELETES_HEADER] = String(request2.acceptDeletes);
|
|
24074
|
-
|
|
24075
|
-
|
|
24076
|
-
|
|
24077
|
-
|
|
24078
|
-
|
|
24079
|
-
|
|
24080
|
-
|
|
24081
|
-
|
|
24353
|
+
return answer2(path53, jsonBody(input), signal, extra, request2.maximum);
|
|
24354
|
+
},
|
|
24355
|
+
async bytes(path53, body, signal, request2) {
|
|
24356
|
+
if (!(body instanceof Uint8Array)) throw new HostedCarrierError("denied");
|
|
24357
|
+
if (request2.writeRequest !== void 0 && !WRITE_REQUEST.test(request2.writeRequest)) throw new HostedCarrierError("denied");
|
|
24358
|
+
const extra = {};
|
|
24359
|
+
for (const [name, value] of Object.entries(request2.headers ?? {})) {
|
|
24360
|
+
const lower = name.toLowerCase();
|
|
24361
|
+
if (!ROUTE_HEADER.test(lower) || owned.has(lower) || lower in extra || typeof value !== "string" || !ROUTE_HEADER_VALUE.test(value)) throw new HostedCarrierError("denied");
|
|
24362
|
+
extra[lower] = value;
|
|
24082
24363
|
}
|
|
24083
|
-
|
|
24364
|
+
if (request2.writeRequest !== void 0) extra["X-Superbee-Write-Request"] = request2.writeRequest;
|
|
24365
|
+
return answer2(path53, { type: "application/octet-stream", content: body }, signal, extra, request2.maximum);
|
|
24084
24366
|
},
|
|
24085
24367
|
async stream(path53, input, signal) {
|
|
24086
24368
|
const idle = new AbortController();
|
|
24087
24369
|
const firstByte = setTimeout(() => idle.abort(), deadlineMs);
|
|
24088
24370
|
let response;
|
|
24089
24371
|
try {
|
|
24090
|
-
response = await send(path53, input, signal, {}, idle.signal);
|
|
24372
|
+
response = await send(path53, jsonBody(input), signal, {}, idle.signal);
|
|
24091
24373
|
} finally {
|
|
24092
24374
|
clearTimeout(firstByte);
|
|
24093
24375
|
}
|
|
@@ -24099,7 +24381,7 @@ function createFetchCarrier(options) {
|
|
|
24099
24381
|
}
|
|
24100
24382
|
};
|
|
24101
24383
|
}
|
|
24102
|
-
var ACCEPT_DELETES_HEADER, MAXIMUM_ACCEPTED_DELETIONS, RECREATE_HEADER, VIA_HEADER, HostedAnswerTooLarge, HostedCarrierError, WRITE_REQUEST, BINDING;
|
|
24384
|
+
var ACCEPT_DELETES_HEADER, MAXIMUM_ACCEPTED_DELETIONS, RECREATE_HEADER, VIA_HEADER, HostedAnswerTooLarge, HostedCarrierError, WRITE_REQUEST, BINDING, ROUTE_HEADER, ROUTE_HEADER_VALUE;
|
|
24103
24385
|
var init_carrier = __esm({
|
|
24104
24386
|
"../core/src/hosted-transport/carrier.ts"() {
|
|
24105
24387
|
"use strict";
|
|
@@ -24127,10 +24409,43 @@ var init_carrier = __esm({
|
|
|
24127
24409
|
};
|
|
24128
24410
|
WRITE_REQUEST = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;
|
|
24129
24411
|
BINDING = /^sha256:[a-f0-9]{64}$/;
|
|
24412
|
+
ROUTE_HEADER = /^x-superbee-[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
24413
|
+
ROUTE_HEADER_VALUE = /^[\x20-\x7e]{0,1024}$/;
|
|
24130
24414
|
}
|
|
24131
24415
|
});
|
|
24132
24416
|
|
|
24133
24417
|
// ../core/src/hosted-transport/answer-rows.ts
|
|
24418
|
+
function definitionFindingsText(details) {
|
|
24419
|
+
const findings = isRecord7(details) && Array.isArray(details.findings) ? details.findings : [];
|
|
24420
|
+
const clauses = [];
|
|
24421
|
+
for (const finding of findings) {
|
|
24422
|
+
if (!isRecord7(finding)) continue;
|
|
24423
|
+
const rule = findingText(finding.rule);
|
|
24424
|
+
if (!rule) continue;
|
|
24425
|
+
const type = findingText(finding.type);
|
|
24426
|
+
const conventionId = findingText(finding.conventionId);
|
|
24427
|
+
const field = findingText(finding.field);
|
|
24428
|
+
const detail = findingText(finding.detail);
|
|
24429
|
+
const where = [type ? `Kind '${type}'` : conventionId ? `'${conventionId}'` : "", field ? `field '${field}'` : ""].filter(Boolean).join(" ");
|
|
24430
|
+
const instances = isRecord7(finding.instances) ? finding.instances : void 0;
|
|
24431
|
+
const total = instances && Number.isSafeInteger(instances.count) && instances.count > 0 ? instances.count : 0;
|
|
24432
|
+
const ids = instances && Array.isArray(instances.ids) ? instances.ids.map(findingText).filter((id) => id !== void 0) : [];
|
|
24433
|
+
const shown2 = ids.slice(0, FINDING_IDS_SHOWN);
|
|
24434
|
+
const documents = total > 0 ? `: ${total} document${total === 1 ? "" : "s"}${shown2.length > 0 ? `, ${shown2.join(", ")}${total > shown2.length ? ", ..." : ""}` : ""}` : "";
|
|
24435
|
+
clauses.push(`${rule}${where ? ` on ${where}` : ""}${detail ? ` (${detail})` : ""}${documents}`);
|
|
24436
|
+
}
|
|
24437
|
+
const more = isRecord7(details) && details.truncated === true;
|
|
24438
|
+
let text4 = "";
|
|
24439
|
+
for (const [index2, clause] of clauses.entries()) {
|
|
24440
|
+
const next = text4 === "" ? clause : `${text4}; ${clause}`;
|
|
24441
|
+
const rest = clauses.length - index2;
|
|
24442
|
+
if (new TextEncoder().encode(next).byteLength > DEFINITION_FINDINGS_TEXT_BYTES - 32) {
|
|
24443
|
+
return text4 === "" ? `${clause.slice(0, 512)}...${rest > 1 ? `; and ${rest - 1} more` : ""}` : `${text4}; and ${rest} more`;
|
|
24444
|
+
}
|
|
24445
|
+
text4 = next;
|
|
24446
|
+
}
|
|
24447
|
+
return more && text4 !== "" ? `${text4}; and more` : text4;
|
|
24448
|
+
}
|
|
24134
24449
|
function parseWriteResult(raw, expected) {
|
|
24135
24450
|
const refuse = () => new HostedAnswerError("the write result envelope is not one the client admits");
|
|
24136
24451
|
if (!isRecord7(raw) || !onlyKeys(raw, ["ok", "operationId", "data", "error"]) || typeof raw.operationId !== "string" || !expected.operationIds.includes(raw.operationId)) throw refuse();
|
|
@@ -24144,7 +24459,8 @@ function parseWriteResult(raw, expected) {
|
|
|
24144
24459
|
}
|
|
24145
24460
|
if (raw.ok !== false) throw refuse();
|
|
24146
24461
|
const error51 = raw.error;
|
|
24147
|
-
if (raw.data !== void 0 || !isRecord7(error51) || !onlyKeys(error51, ERROR_KEYS) || !WRITE_ERROR_CODES.includes(error51.code) || typeof error51.message !== "string" || error51.retryable !== false || error51.writeState !== "not_applied" && error51.writeState !== "unknown" || error51.currentVersion !== void 0 && !isContentVersion(error51.currentVersion) || error51.code === "write_outcome_unknown" && error51.writeState !== "unknown" || (error51.code === "request_capacity" ? error51.scope !== "principal" && error51.scope !== "bundle" || error51.writeState !== "not_applied" || error51.resetAt !== void 0 && (typeof error51.resetAt !== "string" || !Number.isFinite(Date.parse(error51.resetAt))) : error51.scope !== void 0 || error51.resetAt !== void 0) || (error51.code === "deletions_held" ? operationId !== DELETE_OPERATION_ID || error51.writeState !== "not_applied" || !count2(error51.deletions) || !count2(error51.baseline) : error51.deletions !== void 0 || error51.baseline !== void 0)
|
|
24462
|
+
if (raw.data !== void 0 || !isRecord7(error51) || !onlyKeys(error51, ERROR_KEYS) || !WRITE_ERROR_CODES.includes(error51.code) || typeof error51.message !== "string" || error51.retryable !== false || error51.writeState !== "not_applied" && error51.writeState !== "unknown" || error51.currentVersion !== void 0 && !isContentVersion(error51.currentVersion) || error51.code === "write_outcome_unknown" && error51.writeState !== "unknown" || (error51.code === "request_capacity" ? error51.scope !== "principal" && error51.scope !== "bundle" || error51.writeState !== "not_applied" || error51.resetAt !== void 0 && (typeof error51.resetAt !== "string" || !Number.isFinite(Date.parse(error51.resetAt))) : error51.scope !== void 0 || error51.resetAt !== void 0) || (error51.code === "deletions_held" ? operationId !== DELETE_OPERATION_ID || error51.writeState !== "not_applied" || !count2(error51.deletions) || !count2(error51.baseline) : error51.deletions !== void 0 || error51.baseline !== void 0) || // A model-change refusal says nothing was applied; its findings ride on it alone.
|
|
24463
|
+
error51.code === "definition_incompatible" && error51.writeState !== "not_applied" || error51.definitionDetails !== void 0 && error51.code !== "definition_incompatible") throw refuse();
|
|
24148
24464
|
return { ok: false, operationId, error: { ...error51 } };
|
|
24149
24465
|
}
|
|
24150
24466
|
function updateRow(answer2) {
|
|
@@ -24234,13 +24550,14 @@ function decodeOutcomeAnswer(value, expected) {
|
|
|
24234
24550
|
throw malformed4();
|
|
24235
24551
|
}
|
|
24236
24552
|
}
|
|
24237
|
-
var CAPACITY_REFUSAL_CODES, DELETIONS_HELD_REFUSAL_CODE, UPDATE_ANSWER_ROWS, OUTCOME_ANSWER_ROWS, READ_ANSWER_ROWS, WRITE_ERROR_CODES, DELETE_OPERATION_ID, HostedAnswerError, isRecord7, onlyKeys, DATA_KEYS, DELETE_DATA_KEYS, ERROR_KEYS, count2, BEFORE_DISPATCH, rowsByAnswer, HostedOutcomeError, OUTCOME_CONTENT_BYTES;
|
|
24553
|
+
var CAPACITY_REFUSAL_CODES, DELETIONS_HELD_REFUSAL_CODE, UPDATE_ANSWER_ROWS, OUTCOME_ANSWER_ROWS, READ_ANSWER_ROWS, WRITE_ERROR_CODES, DELETE_OPERATION_ID, FINDING_IDS_SHOWN, DEFINITION_FINDINGS_TEXT_BYTES, findingText, HostedAnswerError, isRecord7, onlyKeys, DATA_KEYS, DELETE_DATA_KEYS, ERROR_KEYS, count2, BEFORE_DISPATCH, rowsByAnswer, HostedOutcomeError, OUTCOME_CONTENT_BYTES;
|
|
24238
24554
|
var init_answer_rows = __esm({
|
|
24239
24555
|
"../core/src/hosted-transport/answer-rows.ts"() {
|
|
24240
24556
|
"use strict";
|
|
24241
24557
|
init_define_SUPERBEE_BUILD_IDENTITY();
|
|
24242
24558
|
init_define_SUPERBEE_UPDATE_POLICY();
|
|
24243
24559
|
init_version_transport();
|
|
24560
|
+
init_host_text();
|
|
24244
24561
|
CAPACITY_REFUSAL_CODES = Object.freeze({ principal: "REQUEST_CAPACITY_PRINCIPAL", bundle: "REQUEST_CAPACITY_BUNDLE" });
|
|
24245
24562
|
DELETIONS_HELD_REFUSAL_CODE = "DELETIONS_HELD";
|
|
24246
24563
|
UPDATE_ANSWER_ROWS = Object.freeze([
|
|
@@ -24261,6 +24578,8 @@ var init_answer_rows = __esm({
|
|
|
24261
24578
|
// The remaining not_applied codes of the write schema: definitive once recorded, like the transient ones.
|
|
24262
24579
|
{ answer: "200 result_too_large", recorded: "settled-only", outcome: "refused" },
|
|
24263
24580
|
{ answer: "200 field_action_refused", recorded: "settled-only", outcome: "refused" },
|
|
24581
|
+
// A model change the host's compatibility check refused (designs/hosted-model-evolution.md 4.6).
|
|
24582
|
+
{ answer: "200 definition_incompatible", recorded: "settled-only", outcome: "refused" },
|
|
24264
24583
|
{ answer: "200 document_exists", recorded: "settled-only", outcome: "refused" },
|
|
24265
24584
|
{ answer: "200 candidate_unavailable", recorded: "settled-only", outcome: "refused" },
|
|
24266
24585
|
{ answer: "200 candidate_recovery_unavailable", recorded: "settled-only", outcome: "refused" },
|
|
@@ -24337,9 +24656,17 @@ var init_answer_rows = __esm({
|
|
|
24337
24656
|
"document_id_not_canonical",
|
|
24338
24657
|
"document_id_collision",
|
|
24339
24658
|
"request_capacity",
|
|
24340
|
-
"deletions_held"
|
|
24659
|
+
"deletions_held",
|
|
24660
|
+
"definition_incompatible"
|
|
24341
24661
|
]);
|
|
24342
24662
|
DELETE_OPERATION_ID = "documents.delete.v1";
|
|
24663
|
+
FINDING_IDS_SHOWN = 5;
|
|
24664
|
+
DEFINITION_FINDINGS_TEXT_BYTES = 2048;
|
|
24665
|
+
findingText = (value) => {
|
|
24666
|
+
if (typeof value !== "string" || value.length > 256) return void 0;
|
|
24667
|
+
const text4 = stripHostText(value, 256);
|
|
24668
|
+
return text4.length > 0 ? text4 : void 0;
|
|
24669
|
+
};
|
|
24343
24670
|
HostedAnswerError = class extends Error {
|
|
24344
24671
|
name = "HostedAnswerError";
|
|
24345
24672
|
};
|
|
@@ -24347,7 +24674,7 @@ var init_answer_rows = __esm({
|
|
|
24347
24674
|
onlyKeys = (value, allowed) => Object.keys(value).every((key) => allowed.includes(key));
|
|
24348
24675
|
DATA_KEYS = ["bundleId", "documentId", "version", "changed", "scope"];
|
|
24349
24676
|
DELETE_DATA_KEYS = [...DATA_KEYS, "deletedVersion", "deleted"];
|
|
24350
|
-
ERROR_KEYS = ["code", "message", "retryable", "writeState", "currentVersion", "diagnostics", "fieldActionDetails", "candidate", "retentionUnavailable", "scope", "resetAt", "deletions", "baseline"];
|
|
24677
|
+
ERROR_KEYS = ["code", "message", "retryable", "writeState", "currentVersion", "diagnostics", "fieldActionDetails", "definitionDetails", "candidate", "retentionUnavailable", "scope", "resetAt", "deletions", "baseline"];
|
|
24351
24678
|
count2 = (value) => Number.isSafeInteger(value) && value >= 1;
|
|
24352
24679
|
BEFORE_DISPATCH = /* @__PURE__ */ new Map([
|
|
24353
24680
|
[429, { code: "request_capacity", lenient: true }],
|
|
@@ -24594,7 +24921,8 @@ function decodeHostedCapabilities(value) {
|
|
|
24594
24921
|
bound: Object.freeze({ documents: bound.documents, bytes: bound.bytes }),
|
|
24595
24922
|
paged,
|
|
24596
24923
|
root,
|
|
24597
|
-
operationsRetentionMs: retention ?? DEFAULT_OPERATIONS_RETENTION_MS
|
|
24924
|
+
operationsRetentionMs: retention ?? DEFAULT_OPERATIONS_RETENTION_MS,
|
|
24925
|
+
definitionWrites: body.definitionWrites === void 0 ? null : body.definitionWrites === "allowed" ? "allowed" : "refused"
|
|
24598
24926
|
});
|
|
24599
24927
|
}
|
|
24600
24928
|
function boundedLines(body, maximum) {
|
|
@@ -25034,7 +25362,9 @@ function createWholeDocumentTransport(options) {
|
|
|
25034
25362
|
if (error51.code === "version_conflict" && intent.base === null) return servedHead(intent, "conflict", error51.currentVersion);
|
|
25035
25363
|
if (error51.code === "version_conflict") return error51.currentVersion === void 0 ? servedHead(intent) : { kind: "conflict", actual: error51.currentVersion };
|
|
25036
25364
|
const row3 = UPDATE_ANSWER_ROWS.find((candidate) => candidate.answer === `200 ${error51.code}`) ?? updateRow("200 other");
|
|
25037
|
-
|
|
25365
|
+
if (row3.code) return denial(row3.code, error51.message);
|
|
25366
|
+
const findings = error51.code === "definition_incompatible" ? definitionFindingsText(error51.definitionDetails) : "";
|
|
25367
|
+
return { kind: "refused", code: error51.code, message: findings ? `${error51.message} Findings: ${findings}.` : error51.message };
|
|
25038
25368
|
}
|
|
25039
25369
|
function prepare(intent) {
|
|
25040
25370
|
const request2 = wholeDocumentRequest(bundleId, intent, options.okfVersion);
|
|
@@ -29858,7 +30188,7 @@ var init_show_incoming = __esm({
|
|
|
29858
30188
|
});
|
|
29859
30189
|
|
|
29860
30190
|
// ../cli/src/commands/sync/git-conflict.ts
|
|
29861
|
-
import { constants as
|
|
30191
|
+
import { constants as fsConstants2, existsSync as existsSync7, promises as fs10 } from "node:fs";
|
|
29862
30192
|
import path28 from "node:path";
|
|
29863
30193
|
function hasFlag(argv2, flags) {
|
|
29864
30194
|
for (const token of argv2) {
|
|
@@ -30053,7 +30383,7 @@ async function runInspect(args, board, cwd) {
|
|
|
30053
30383
|
}
|
|
30054
30384
|
let handle;
|
|
30055
30385
|
try {
|
|
30056
|
-
handle = await fs10.open(out,
|
|
30386
|
+
handle = await fs10.open(out, fsConstants2.O_WRONLY | fsConstants2.O_CREAT | fsConstants2.O_TRUNC | (fsConstants2.O_NOFOLLOW ?? 0), 420);
|
|
30057
30387
|
} catch (error51) {
|
|
30058
30388
|
if (error51.code === "ELOOP") throw new CliError("USAGE", "--out must not be a symbolic link", { help: outHelp });
|
|
30059
30389
|
throw error51;
|
|
@@ -30277,9 +30607,17 @@ function qualifyingCarrier(carrier, prefix, slug) {
|
|
|
30277
30607
|
if (bundleId.includes("/")) throw new TypeError("a qualified reference sent through a qualifying client");
|
|
30278
30608
|
return { ...input, bundleId: hostedBundleReferenceText({ slug, bundleId }) };
|
|
30279
30609
|
};
|
|
30610
|
+
const bytes = carrier.bytes?.bind(carrier);
|
|
30280
30611
|
return {
|
|
30281
30612
|
json: async (route, input, signal, options) => carrier.json(route, qualify(route, input), signal, options),
|
|
30282
|
-
stream: async (route, input, signal) => carrier.stream(route, qualify(route, input), signal)
|
|
30613
|
+
stream: async (route, input, signal) => carrier.stream(route, qualify(route, input), signal),
|
|
30614
|
+
// A raw body names no bundle in a body; only unscoped routes carry one.
|
|
30615
|
+
...bytes ? {
|
|
30616
|
+
bytes: async (route, body, signal, options) => {
|
|
30617
|
+
if (scoped(route)) throw new TypeError(`a raw body sent to the bundle-scoped route ${route} through a qualifying client`);
|
|
30618
|
+
return bytes(route, body, signal, options);
|
|
30619
|
+
}
|
|
30620
|
+
} : {}
|
|
30283
30621
|
};
|
|
30284
30622
|
}
|
|
30285
30623
|
function createHostedSyncClient(options) {
|
|
@@ -30480,7 +30818,15 @@ var init_client = __esm({
|
|
|
30480
30818
|
BUNDLES_BYTES = 256 * 1024;
|
|
30481
30819
|
AGENT_AUDIENCE_PATH = /^\/agents\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/mcp$/;
|
|
30482
30820
|
BUNDLE_LIST_CAP = 100;
|
|
30483
|
-
UNSCOPED_ROUTES = Object.freeze([
|
|
30821
|
+
UNSCOPED_ROUTES = Object.freeze([
|
|
30822
|
+
"whoami",
|
|
30823
|
+
"bundles",
|
|
30824
|
+
"bundle-create",
|
|
30825
|
+
"bundle-create-begin",
|
|
30826
|
+
"bundle-create-stage",
|
|
30827
|
+
"bundle-create-blob",
|
|
30828
|
+
"bundle-create-commit"
|
|
30829
|
+
]);
|
|
30484
30830
|
}
|
|
30485
30831
|
});
|
|
30486
30832
|
|
|
@@ -30488,12 +30834,31 @@ var init_client = __esm({
|
|
|
30488
30834
|
import { createHash as createHash10 } from "node:crypto";
|
|
30489
30835
|
import { promises as fs11 } from "node:fs";
|
|
30490
30836
|
import path29 from "node:path";
|
|
30491
|
-
function
|
|
30837
|
+
function underFolded(rel, folder) {
|
|
30838
|
+
const folded = foldedPath(rel);
|
|
30839
|
+
return folded === folder || folded.startsWith(`${folder}/`);
|
|
30840
|
+
}
|
|
30841
|
+
function heldPathReason(rel, options = {}) {
|
|
30492
30842
|
if (isReservedFile(rel)) return "reserved_file";
|
|
30493
30843
|
if (!rel.endsWith(".md")) return "not_a_document";
|
|
30494
|
-
if (
|
|
30844
|
+
if (HELD_FOLDERS.some((folder) => underFolded(rel, folder))) return "convention_folder";
|
|
30845
|
+
if (underFolded(rel, "conventions") && !(options.definitionWrites === "allowed" && isConventionId(rel))) return "convention_folder";
|
|
30495
30846
|
return null;
|
|
30496
30847
|
}
|
|
30848
|
+
function heldTypeReason(rel, type, definitionWrites) {
|
|
30849
|
+
if (type === "View") return `'${conceptIdFromPath(rel)}' is a View registration, which the host installs; it does not sync`;
|
|
30850
|
+
if (type === CONVENTION_TYPE && !(definitionWrites === "allowed" && isConventionId(rel))) return `'${conceptIdFromPath(rel)}' is a Kind convention outside conventions/; the host reads Kinds only from conventions/`;
|
|
30851
|
+
if (definitionWrites === "allowed" && isConventionId(rel) && type !== CONVENTION_TYPE) return `'${conceptIdFromPath(rel)}' is under conventions/ but is not a Convention; only Kind conventions sync there`;
|
|
30852
|
+
return null;
|
|
30853
|
+
}
|
|
30854
|
+
function heldPathMessage(rel, definitionWrites = null, sender = "sync") {
|
|
30855
|
+
if (underFolded(rel, "views-registry")) return `${rel} is under views-registry/, which holds the bundle's View registrations; they are installed on the host and do not sync`;
|
|
30856
|
+
if (underFolded(rel, "conventions") && definitionWrites === "refused") return `${rel} is under conventions/, which holds the bundle's model: ${DEFINITIONS_REFUSED.why}; ${DEFINITIONS_REFUSED.instead}`;
|
|
30857
|
+
if (underFolded(rel, "conventions") && definitionWrites === "allowed") {
|
|
30858
|
+
return sender === "app" ? `${rel} is under conventions/, which holds the bundle's model; change it with the kind and recipe commands` : `${rel} is not under conventions/ as spelled; the bundle's Kinds sync only from the folder named exactly conventions/`;
|
|
30859
|
+
}
|
|
30860
|
+
return `${rel} is under ${rel.split("/")[0]}/, which holds conventions edited in the Superbee app`;
|
|
30861
|
+
}
|
|
30497
30862
|
async function readDeletionWindow(store) {
|
|
30498
30863
|
const raw = await store.readMeta(DELETION_WINDOW_KEY);
|
|
30499
30864
|
const hold = raw?.hold && Array.isArray(raw.hold.ids) && typeof raw.hold.token === "string" ? { ids: raw.hold.ids.filter((id) => typeof id === "string"), token: raw.hold.token } : null;
|
|
@@ -30700,7 +31065,10 @@ function foldedPath(id) {
|
|
|
30700
31065
|
function held(id, rel, reason, message) {
|
|
30701
31066
|
return { id, path: rel, reason, message };
|
|
30702
31067
|
}
|
|
30703
|
-
function unsendable(id, rel, bytes, stored, context) {
|
|
31068
|
+
function unsendable(id, rel, bytes, stored, context, fence) {
|
|
31069
|
+
if (fence && heldPathReason(rel, { definitionWrites: fence.definitionWrites }) === "convention_folder") {
|
|
31070
|
+
return held(id, rel, "convention_folder", heldPathMessage(rel, fence.definitionWrites, fence.sender));
|
|
31071
|
+
}
|
|
30704
31072
|
if (bytes.byteLength > WHOLE_DOCUMENT_BOUNDS.payloadBytes) {
|
|
30705
31073
|
return held(id, rel, "too_large", `'${id}' is over the ${WHOLE_DOCUMENT_BOUNDS.payloadBytes / 1024} KiB a sync write carries`);
|
|
30706
31074
|
}
|
|
@@ -30721,6 +31089,8 @@ function unsendable(id, rel, bytes, stored, context) {
|
|
|
30721
31089
|
if (Buffer.byteLength(JSON.stringify(frontmatter)) > FRONTMATTER_JSON_BYTES || Object.keys(frontmatter).length > FRONTMATTER_KEY_LIMIT) {
|
|
30722
31090
|
return held(id, rel, "too_large", `'${id}' has more frontmatter than the host accepts (${FRONTMATTER_JSON_BYTES / 1024} KiB, ${FRONTMATTER_KEY_LIMIT} fields)`);
|
|
30723
31091
|
}
|
|
31092
|
+
const typed = fence ? heldTypeReason(rel, frontmatter.type, fence.definitionWrites) : null;
|
|
31093
|
+
if (typed !== null) return held(id, rel, "not_sendable", typed);
|
|
30724
31094
|
const storedType = stored?.frontmatter.type;
|
|
30725
31095
|
if (typeof storedType === "string" && storedType !== frontmatter.type) {
|
|
30726
31096
|
return held(id, rel, "type_change", `'${id}' changes type from '${storedType}' to '${String(frontmatter.type)}', which sync cannot send`);
|
|
@@ -30783,11 +31153,7 @@ async function scanCheckout(context) {
|
|
|
30783
31153
|
continue;
|
|
30784
31154
|
}
|
|
30785
31155
|
}
|
|
30786
|
-
|
|
30787
|
-
report.held.push(held(id, rel, "convention_folder", `${rel} is under ${rel.split("/")[0]}/, which holds conventions edited in the Superbee app`));
|
|
30788
|
-
continue;
|
|
30789
|
-
}
|
|
30790
|
-
const refusal = unsendable(id, rel, bytes, stored.document?.doc ?? null, context);
|
|
31156
|
+
const refusal = unsendable(id, rel, bytes, stored.document?.doc ?? null, context, { definitionWrites: context.definitionWrites ?? null });
|
|
30791
31157
|
if (refusal) {
|
|
30792
31158
|
report.held.push(refusal);
|
|
30793
31159
|
continue;
|
|
@@ -30824,6 +31190,14 @@ async function scanCheckout(context) {
|
|
|
30824
31190
|
delete projection.files[id];
|
|
30825
31191
|
continue;
|
|
30826
31192
|
}
|
|
31193
|
+
const definitionWrites = context.definitionWrites ?? null;
|
|
31194
|
+
const refusedPath = heldPathReason(rel, { definitionWrites }) === "convention_folder";
|
|
31195
|
+
const refusedType = refusedPath ? null : heldTypeReason(rel, stored.document.doc.frontmatter.type, definitionWrites);
|
|
31196
|
+
if (refusedPath || refusedType !== null) {
|
|
31197
|
+
delete projection.files[id];
|
|
31198
|
+
report.held.push(held(id, rel, refusedPath ? "convention_folder" : "not_sendable", `${refusedPath ? heldPathMessage(rel, definitionWrites) : refusedType}; the host's version is placed back in the folder`));
|
|
31199
|
+
continue;
|
|
31200
|
+
}
|
|
30827
31201
|
if (stored.intents.some((row3) => row3.state === "conflict")) {
|
|
30828
31202
|
report.held.push(held(id, rel, "deleted_locally", `${rel} was deleted while '${id}' has a conflict to resolve; resolve it first`));
|
|
30829
31203
|
continue;
|
|
@@ -31114,7 +31488,7 @@ async function recoverPlacements(folder, projection) {
|
|
|
31114
31488
|
}
|
|
31115
31489
|
delete projection.discarded;
|
|
31116
31490
|
}
|
|
31117
|
-
var PROJECTION_FILE, PROJECTION_SCHEMA, PROJECTION_BYTES, FRONTMATTER_JSON_BYTES,
|
|
31491
|
+
var PROJECTION_FILE, PROJECTION_SCHEMA, PROJECTION_BYTES, FRONTMATTER_JSON_BYTES, HELD_FOLDERS, DEFINITIONS_REFUSED, MIN_HELD_DELETIONS, DELETION_WINDOW_MS, DELETION_WINDOW_KEY, UTF8;
|
|
31118
31492
|
var init_sync_scan = __esm({
|
|
31119
31493
|
"../cli/src/hosted/sync-scan.ts"() {
|
|
31120
31494
|
"use strict";
|
|
@@ -31132,7 +31506,11 @@ var init_sync_scan = __esm({
|
|
|
31132
31506
|
PROJECTION_SCHEMA = 2;
|
|
31133
31507
|
PROJECTION_BYTES = 8 * 1024 * 1024;
|
|
31134
31508
|
FRONTMATTER_JSON_BYTES = 16 * 1024;
|
|
31135
|
-
|
|
31509
|
+
HELD_FOLDERS = ["views", "views-registry"];
|
|
31510
|
+
DEFINITIONS_REFUSED = Object.freeze({
|
|
31511
|
+
why: "you don't have permission to change this bundle's model",
|
|
31512
|
+
instead: "ask whoever manages access to it"
|
|
31513
|
+
});
|
|
31136
31514
|
MIN_HELD_DELETIONS = 3;
|
|
31137
31515
|
DELETION_WINDOW_MS = 24 * 60 * 60 * 1e3;
|
|
31138
31516
|
DELETION_WINDOW_KEY = "cli-deletion-window";
|
|
@@ -31196,6 +31574,13 @@ function hostedCheckoutRefusal(row3, words, binding, extra = {}) {
|
|
|
31196
31574
|
help: "choose another folder for a local bundle"
|
|
31197
31575
|
});
|
|
31198
31576
|
}
|
|
31577
|
+
if (row3.definitions && binding.definition_writes === "refused") {
|
|
31578
|
+
const { why, instead } = DEFINITIONS_REFUSED;
|
|
31579
|
+
return new CliError("FORBIDDEN", `'${words}' refused: ${why} (bundle ${binding.bundle_id} on ${binding.origin}); ${instead}`, {
|
|
31580
|
+
details: { ...details, reason: "definitions_refused" },
|
|
31581
|
+
help: instead
|
|
31582
|
+
});
|
|
31583
|
+
}
|
|
31199
31584
|
if (row3.instead) {
|
|
31200
31585
|
return new CliError("FORBIDDEN", `'${words}' cannot sync from a hosted checkout (${row3.why}): ${row3.instead}`, { details, help: row3.instead });
|
|
31201
31586
|
}
|
|
@@ -31211,9 +31596,23 @@ async function assertAllowedInHostedCheckout(command, args, context = {}) {
|
|
|
31211
31596
|
if (skip) return;
|
|
31212
31597
|
const binding = await checkoutFor(command, dir, context.home ?? homedir12(), context.cwd ?? process.cwd());
|
|
31213
31598
|
if (!binding) return;
|
|
31599
|
+
if (row3.definitions && binding.definition_writes === "allowed") return;
|
|
31214
31600
|
const sub = row3.words.length > 1 ? args.find((token) => !token.startsWith("-")) : void 0;
|
|
31215
31601
|
throw hostedCheckoutRefusal(row3, sub ? `${command} ${sub}` : command, binding);
|
|
31216
31602
|
}
|
|
31603
|
+
async function assertKindOnlyRecipe(words, dir, recipe2, context = {}) {
|
|
31604
|
+
const artifacts = [...recipe2.docs.map((doc2) => doc2.id), ...recipe2.pages.flatMap((page) => [page.registry.id, page.entry]), ...recipe2.references.map((reference) => reference.doc.id)];
|
|
31605
|
+
const outside = artifacts.filter((id) => !isConventionId(id));
|
|
31606
|
+
if (outside.length === 0) return;
|
|
31607
|
+
const binding = await checkoutFor("recipe", dir, context.home ?? homedir12(), context.cwd ?? process.cwd());
|
|
31608
|
+
if (!binding) return;
|
|
31609
|
+
throw hostedCheckoutRefusal(
|
|
31610
|
+
{ words: words.split(" "), reason: "not_syncable", why: `recipe '${recipe2.id}' installs ${outside.length} artifact(s) outside conventions/, such as Views and References, and a checkout sends Kind conventions only`, instead: KINDS_INSTEAD },
|
|
31611
|
+
words,
|
|
31612
|
+
binding,
|
|
31613
|
+
{ recipe: recipe2.id, artifacts: outside.slice(0, 20).join(", "), artifacts_total: String(outside.length) }
|
|
31614
|
+
);
|
|
31615
|
+
}
|
|
31217
31616
|
function hostedHeldWriteRefusal(binding, held2) {
|
|
31218
31617
|
const instead = HELD_INSTEAD[held2.reason];
|
|
31219
31618
|
return hostedCheckoutRefusal(
|
|
@@ -31286,6 +31685,7 @@ var init_refusals = __esm({
|
|
|
31286
31685
|
"use strict";
|
|
31287
31686
|
init_define_SUPERBEE_BUILD_IDENTITY();
|
|
31288
31687
|
init_define_SUPERBEE_UPDATE_POLICY();
|
|
31688
|
+
init_src();
|
|
31289
31689
|
init_bundle2();
|
|
31290
31690
|
init_errors4();
|
|
31291
31691
|
init_command_text();
|
|
@@ -31297,20 +31697,20 @@ var init_refusals = __esm({
|
|
|
31297
31697
|
KINDS_INSTEAD = "to design Kinds, work in a local or Git bundle and publish it";
|
|
31298
31698
|
HOSTED_CHECKOUT_REFUSALS = Object.freeze([
|
|
31299
31699
|
{ words: ["doc", "verify"], reason: "not_syncable", why: "verification is a managed field the host records" },
|
|
31300
|
-
{ words: ["kind", "*"], reason: "not_syncable", why: "a hosted bundle's Kinds cannot be changed from a checkout", instead: KINDS_INSTEAD },
|
|
31301
|
-
{ words: ["recipe", "add"], reason: "not_syncable", why: "recipes change a hosted bundle's Kinds, which cannot be changed from a checkout", instead: KINDS_INSTEAD },
|
|
31302
|
-
{ words: ["recipe", "evolve"], reason: "not_syncable", why: "recipes change a hosted bundle's Kinds, which cannot be changed from a checkout", instead: KINDS_INSTEAD },
|
|
31700
|
+
{ words: ["kind", "*"], reason: "not_syncable", why: "a hosted bundle's Kinds cannot be changed from a checkout", instead: KINDS_INSTEAD, definitions: true },
|
|
31701
|
+
{ words: ["recipe", "add"], reason: "not_syncable", why: "recipes change a hosted bundle's Kinds, which cannot be changed from a checkout", instead: KINDS_INSTEAD, definitions: true },
|
|
31702
|
+
{ words: ["recipe", "evolve"], reason: "not_syncable", why: "recipes change a hosted bundle's Kinds, which cannot be changed from a checkout", instead: KINDS_INSTEAD, definitions: true },
|
|
31303
31703
|
{ words: ["artifact", "*"], reason: "not_syncable", why: "artifacts carry blobs, which do not sync" },
|
|
31304
31704
|
{
|
|
31305
31705
|
words: ["promote"],
|
|
31306
31706
|
reason: "not_syncable",
|
|
31307
|
-
why: "a key that is not a .md document is stored as a blob
|
|
31707
|
+
why: "a key that is not a .md document is stored as a blob; blobs, reserved files and View files do not sync, and conventions change only through the kind and recipe commands",
|
|
31308
31708
|
when: (args) => heldKey(docKey(args) ?? "")
|
|
31309
31709
|
},
|
|
31310
31710
|
{
|
|
31311
31711
|
words: ["delete"],
|
|
31312
31712
|
reason: "not_syncable",
|
|
31313
|
-
why: "a key that is not a .md document is a blob
|
|
31713
|
+
why: "a key that is not a .md document is a blob; blobs, reserved files and View files do not sync, and conventions change only through the kind and recipe commands (delete a document with doc delete)",
|
|
31314
31714
|
when: (args) => {
|
|
31315
31715
|
const key = docKey(args);
|
|
31316
31716
|
return key !== void 0 && heldKey(key);
|
|
@@ -31324,7 +31724,7 @@ var init_refusals = __esm({
|
|
|
31324
31724
|
when: (args) => !args.some((token) => token === "--check" || token.startsWith("--check="))
|
|
31325
31725
|
},
|
|
31326
31726
|
{ words: ["serve"], reason: "not_syncable", why: "the served bundle accepts writes and deletes that do not sync" },
|
|
31327
|
-
{ words: ["ui"], reason: "not_syncable", why: "the local app writes Views
|
|
31727
|
+
{ words: ["ui"], reason: "not_syncable", why: "the local app writes Views, which do not sync, and conventions outside the kind and recipe commands" },
|
|
31328
31728
|
{ words: ["init"], reason: "checkout_target", why: "the folder is a hosted checkout, not a local bundle" }
|
|
31329
31729
|
].map((row3) => Object.freeze({ ...row3, words: Object.freeze([...row3.words]) })));
|
|
31330
31730
|
HELD_INSTEAD = {
|
|
@@ -31457,7 +31857,7 @@ var init_sync = __esm({
|
|
|
31457
31857
|
|
|
31458
31858
|
// ../cli/src/commands/turn-end.ts
|
|
31459
31859
|
import { createHash as createHash11 } from "node:crypto";
|
|
31460
|
-
import { lstat as lstat5, readdir as
|
|
31860
|
+
import { lstat as lstat5, readdir as readdir4 } from "node:fs/promises";
|
|
31461
31861
|
import { homedir as homedir14 } from "node:os";
|
|
31462
31862
|
import { join as join11 } from "node:path";
|
|
31463
31863
|
import { parseArgs as parseArgs6 } from "node:util";
|
|
@@ -31639,7 +32039,7 @@ async function liveCheckouts(home2) {
|
|
|
31639
32039
|
async function lastChangeIn(folder) {
|
|
31640
32040
|
let newest = 0;
|
|
31641
32041
|
const visit2 = async (dir) => {
|
|
31642
|
-
for (const entry of await
|
|
32042
|
+
for (const entry of await readdir4(dir, { withFileTypes: true })) {
|
|
31643
32043
|
if (entry.name.startsWith(".")) continue;
|
|
31644
32044
|
const full = join11(dir, entry.name);
|
|
31645
32045
|
const info = await lstat5(full).catch(() => null);
|
|
@@ -33582,6 +33982,7 @@ async function publishGreenfieldBoard(top, boardPath, inv, mode, stdout, deps) {
|
|
|
33582
33982
|
}
|
|
33583
33983
|
assertFreshSource(top, boardPath, inv);
|
|
33584
33984
|
await assertNotBoundElsewhere(top, boardPath);
|
|
33985
|
+
await assertNoMalformedDocuments(boardPath, inv);
|
|
33585
33986
|
const snapshot = snapshotBundleCommit(top, boardPath);
|
|
33586
33987
|
writeGitDirMarker(top, ESTABLISH_MARKER_KEY, snapshot.sha);
|
|
33587
33988
|
const remoteCommit = pushAndConfirmRemote(top, snapshot.sha, inv);
|
|
@@ -33595,6 +33996,20 @@ async function publishGreenfieldBoard(top, boardPath, inv, mode, stdout, deps) {
|
|
|
33595
33996
|
const conversion = finishLocalConversion(top, boardPath, snapshot.sha, snapshot.tree, inv);
|
|
33596
33997
|
return renderEstablished(top, conversion, snapshot, inv, mode, stdout, deps);
|
|
33597
33998
|
}
|
|
33999
|
+
async function assertNoMalformedDocuments(boardPath, inv) {
|
|
34000
|
+
const malformed4 = [];
|
|
34001
|
+
await query2({ root: boardPath }, {}, { onSkip: ({ id, reason }) => malformed4.push({ id, reason }) });
|
|
34002
|
+
if (malformed4.length === 0) return;
|
|
34003
|
+
malformed4.sort((a, b) => a.id.localeCompare(b.id));
|
|
34004
|
+
throw new CliError(
|
|
34005
|
+
"USAGE",
|
|
34006
|
+
`${malformed4.length} document(s) have invalid YAML frontmatter (${malformed4.map((row3) => row3.id).join(", ")}); nothing was published or moved`,
|
|
34007
|
+
{
|
|
34008
|
+
help: `fix the lines between the --- markers (quote any value that contains ': '), check with ${inv} status, then run ${inv} sync --establish again`,
|
|
34009
|
+
details: { malformed: malformed4 }
|
|
34010
|
+
}
|
|
34011
|
+
);
|
|
34012
|
+
}
|
|
33598
34013
|
async function establishBoard(dir, inv, mode, stdout, deps, opts = {}) {
|
|
33599
34014
|
const top = repoTopLevel(dir);
|
|
33600
34015
|
if (!top) {
|
|
@@ -33655,6 +34070,7 @@ var init_establish = __esm({
|
|
|
33655
34070
|
init_define_SUPERBEE_UPDATE_POLICY();
|
|
33656
34071
|
init_board_runtime();
|
|
33657
34072
|
init_board_runtime();
|
|
34073
|
+
init_src();
|
|
33658
34074
|
init_bundle2();
|
|
33659
34075
|
init_errors4();
|
|
33660
34076
|
init_src2();
|
|
@@ -34094,6 +34510,34 @@ async function receiptPhase(run, board, commitResult, delta, pushed, establishAl
|
|
|
34094
34510
|
});
|
|
34095
34511
|
run.stdout(render(withSyncEnvelope(receipt2, syncEnvelope("git", { sent: pushed.documents, received: delta.originDelta.length })), run.mode));
|
|
34096
34512
|
}
|
|
34513
|
+
async function heldRun(run, board, baseline, held2) {
|
|
34514
|
+
const pulled = ffPull(board.boardPath);
|
|
34515
|
+
const delta = await deltaPhase(board, baseline);
|
|
34516
|
+
await writeAwarenessCache(board.key, board.boardPath, delta.changes, delta.reanchorNote);
|
|
34517
|
+
reportHeld(run, board, delta, held2, "in the worktree", pulled.swallowed);
|
|
34518
|
+
}
|
|
34519
|
+
function reportHeld(run, board, delta, held2, where, notPulled) {
|
|
34520
|
+
const receipt2 = buildSyncReceipt({
|
|
34521
|
+
outcome: board.outcome,
|
|
34522
|
+
commitDocs: [],
|
|
34523
|
+
pushedCount: 0,
|
|
34524
|
+
originDelta: delta.originDelta,
|
|
34525
|
+
limit: run.limit,
|
|
34526
|
+
reanchorNote: delta.reanchorNote
|
|
34527
|
+
});
|
|
34528
|
+
receipt2.sync = where === "in the worktree" ? "held: nothing was committed or pushed" : "held: local commits carry these documents, so nothing was pushed";
|
|
34529
|
+
if (notPulled) receipt2.pull = `not pulled (${notPulled}); the next sync after the fix pulls`;
|
|
34530
|
+
receipt2.held_documents = held2.map((doc2) => ({ id: doc2.id, path: doc2.relPath, reason: doc2.reason, detail: doc2.detail }));
|
|
34531
|
+
const fix = `fix the lines between the --- markers of ${held2.map((doc2) => doc2.relPath).join(", ")} (quote any value that contains ': '), check with ${run.inv} status, then run ${run.inv} sync`;
|
|
34532
|
+
receipt2.held_help = `not published: the YAML frontmatter of these documents does not parse, and publishing it would break every reader of the board, so this sync sent nothing. Your files are untouched; ${fix}` + (where === "committed locally" ? " (the fix is committed on top and both go out together)" : "");
|
|
34533
|
+
const envelope = syncEnvelope("git", { received: delta.originDelta.length, held: held2.length, next: [`${run.inv} sync`] });
|
|
34534
|
+
run.stdout(render(withSyncEnvelope(receipt2, envelope), run.mode));
|
|
34535
|
+
throw new CliError(
|
|
34536
|
+
"CONFLICT",
|
|
34537
|
+
`${held2.length} document(s) have invalid frontmatter (${held2.map((doc2) => doc2.id).join(", ")}); nothing was published`,
|
|
34538
|
+
{ help: fix, details: { held: held2.map((doc2) => doc2.id) }, handled: true }
|
|
34539
|
+
);
|
|
34540
|
+
}
|
|
34097
34541
|
async function syncCommand(argv2, deps = {}) {
|
|
34098
34542
|
const stdout = deps.stdout ?? ((s) => void process.stdout.write(s));
|
|
34099
34543
|
const inv = cliInvocation();
|
|
@@ -34139,9 +34583,25 @@ async function syncCommand(argv2, deps = {}) {
|
|
|
34139
34583
|
if (board === null) return;
|
|
34140
34584
|
assertBundleOutsidePrivateState(board.boardPath);
|
|
34141
34585
|
const baseline = await baselinePhase(board);
|
|
34586
|
+
if (!run.pullOnly) {
|
|
34587
|
+
const held2 = malformedOutgoingDocuments(board.boardPath);
|
|
34588
|
+
if (held2.length > 0) {
|
|
34589
|
+
await heldRun(run, board, baseline, held2);
|
|
34590
|
+
return;
|
|
34591
|
+
}
|
|
34592
|
+
}
|
|
34142
34593
|
const commitResult = await commitPhase(board, run.pullOnly);
|
|
34594
|
+
if (commitResult.held) {
|
|
34595
|
+
await heldRun(run, board, baseline, commitResult.held);
|
|
34596
|
+
return;
|
|
34597
|
+
}
|
|
34143
34598
|
await pullPhase(run, board, commitResult);
|
|
34144
34599
|
const delta = await deltaPhase(board, baseline);
|
|
34600
|
+
const originRef = run.pullOnly ? null : resolveOriginRef(board.boardPath);
|
|
34601
|
+
if (originRef !== null) {
|
|
34602
|
+
const held2 = malformedCommittedDocuments(board.boardPath, originRef, "HEAD");
|
|
34603
|
+
if (held2.length > 0) reportHeld(run, board, delta, held2, "committed locally");
|
|
34604
|
+
}
|
|
34145
34605
|
const pushed = await pushPhase(run, board, commitResult, delta);
|
|
34146
34606
|
await receiptPhase(run, board, commitResult, delta, pushed, establishAlreadyNote);
|
|
34147
34607
|
}
|
|
@@ -34519,6 +34979,7 @@ function refusalRow(id, row3, accessWithdrawn = false) {
|
|
|
34519
34979
|
if (SIGN_IN_CODES.has(code3) && accessWithdrawn) return { id, state: "refused", reason: "access_withdrawn", version: null, message: ACCESS_WITHDRAWN_MESSAGE };
|
|
34520
34980
|
if (SIGN_IN_CODES.has(code3)) return { id, state: "paused", reason: "sign_in", version: null, message: "The hosted session ended before this change was sent; sign in and run sync again." };
|
|
34521
34981
|
if (BUSY_REFUSAL_CODES.has(code3)) return { id, state: "paused", reason: "busy", version: null, message: "The host was busy and did not apply this change; run sync again." };
|
|
34982
|
+
if (code3 === "definition_incompatible") return { id, state: "refused", reason: code3, version: null, message: `The host refused this model change (${code3}): ${message} Fix the documents it names (the sync that sends them sends this change again), or edit the Kind and run sync again.` };
|
|
34522
34983
|
return { id, state: "refused", reason: code3, version: null, message: `The host refused this document (${code3}): ${message} Edit the file and run sync again.` };
|
|
34523
34984
|
}
|
|
34524
34985
|
function waitingRow(id, pausedBy, notSent) {
|
|
@@ -34858,13 +35319,14 @@ async function withSession(binding, deps, resumeCommand, body, options = {}) {
|
|
|
34858
35319
|
} catch (error51) {
|
|
34859
35320
|
throw await readFailure(error51, { binding, target: target2, client }, resumeCommand, await unsent());
|
|
34860
35321
|
}
|
|
35322
|
+
const bound = await recordDefinitionWrites(deps.auth.home, binding, capabilities.definitionWrites);
|
|
34861
35323
|
projection = await readProjection(deps.auth.home, binding.checkout_id, store);
|
|
34862
35324
|
await recoverPlacements(binding.path, projection);
|
|
34863
35325
|
const record5 = projection;
|
|
34864
35326
|
const persist = () => writeProjection(deps.auth.home, binding.checkout_id, record5);
|
|
34865
35327
|
await persist();
|
|
34866
35328
|
return await body({
|
|
34867
|
-
binding,
|
|
35329
|
+
binding: bound,
|
|
34868
35330
|
target: target2,
|
|
34869
35331
|
reader,
|
|
34870
35332
|
capabilities,
|
|
@@ -34889,18 +35351,23 @@ async function withSession(binding, deps, resumeCommand, body, options = {}) {
|
|
|
34889
35351
|
throw lockFailure(error51, binding.path);
|
|
34890
35352
|
});
|
|
34891
35353
|
}
|
|
34892
|
-
function createsFirst(store, blocked) {
|
|
35354
|
+
function createsFirst(store, blocked, models) {
|
|
34893
35355
|
return new Proxy(store, {
|
|
34894
35356
|
get(inner, prop) {
|
|
34895
35357
|
if (prop === "listIntents") {
|
|
34896
35358
|
return async (state) => {
|
|
34897
|
-
const rows = await inner.listIntents(state)
|
|
35359
|
+
const rows = (await inner.listIntents(state)).filter(
|
|
35360
|
+
(row3) => !(state === "pending" && (row3.base === null && row3.kind !== DOCUMENT_DELETE_KIND && blocked.has(row3.target) || !models && isConventionId(row3.target)))
|
|
35361
|
+
);
|
|
34898
35362
|
if (state !== "pending") return rows;
|
|
34899
35363
|
const deleting = (row3) => row3.kind === DOCUMENT_DELETE_KIND;
|
|
35364
|
+
const model = (row3) => isConventionId(row3.target);
|
|
34900
35365
|
return [
|
|
34901
|
-
...rows.filter((row3) =>
|
|
34902
|
-
...rows.filter((row3) => row3.base
|
|
34903
|
-
...rows.filter(deleting)
|
|
35366
|
+
...rows.filter((row3) => model(row3) && !deleting(row3)),
|
|
35367
|
+
...rows.filter((row3) => !model(row3) && row3.base === null && !deleting(row3)),
|
|
35368
|
+
...rows.filter((row3) => !model(row3) && row3.base !== null && !deleting(row3)),
|
|
35369
|
+
...rows.filter((row3) => !model(row3) && deleting(row3)),
|
|
35370
|
+
...rows.filter((row3) => model(row3) && deleting(row3))
|
|
34904
35371
|
];
|
|
34905
35372
|
};
|
|
34906
35373
|
}
|
|
@@ -34909,18 +35376,18 @@ function createsFirst(store, blocked) {
|
|
|
34909
35376
|
}
|
|
34910
35377
|
});
|
|
34911
35378
|
}
|
|
34912
|
-
async function
|
|
34913
|
-
|
|
35379
|
+
async function requeueRefused(store, eligible) {
|
|
35380
|
+
const requeued = [];
|
|
34914
35381
|
const unsettled = await store.listIntents(UNSETTLED_STATES);
|
|
34915
35382
|
for (const row3 of unsettled) {
|
|
34916
|
-
if (row3.state !== "refused" || !row3.refusal || !
|
|
35383
|
+
if (row3.state !== "refused" || !row3.refusal || !eligible(row3)) continue;
|
|
34917
35384
|
if (unsettled.some((other) => other.after === row3.requestId)) continue;
|
|
34918
35385
|
const current = await store.readWithJournal(row3.target);
|
|
34919
35386
|
const latest = current.intents.filter((intent) => intent.state !== "acknowledged").at(-1);
|
|
34920
35387
|
if (latest?.requestId !== row3.requestId) continue;
|
|
34921
35388
|
const supersede = { requestId: row3.requestId, expectedState: "refused", expectedAttempts: row3.attempts };
|
|
34922
35389
|
if (row3.kind === DOCUMENT_DELETE_KIND) {
|
|
34923
|
-
if (await supersedeDeletion(store, row3)) requeued
|
|
35390
|
+
if (await supersedeDeletion(store, row3)) requeued.push(row3.target);
|
|
34924
35391
|
continue;
|
|
34925
35392
|
}
|
|
34926
35393
|
if (!current.document) continue;
|
|
@@ -34938,10 +35405,37 @@ async function requeueBusy(store) {
|
|
|
34938
35405
|
},
|
|
34939
35406
|
supersede
|
|
34940
35407
|
});
|
|
34941
|
-
requeued
|
|
35408
|
+
requeued.push(row3.target);
|
|
34942
35409
|
}
|
|
34943
35410
|
return requeued;
|
|
34944
35411
|
}
|
|
35412
|
+
function intentFrontmatter(row3, okfVersion) {
|
|
35413
|
+
const text4 = row3.kind === DOCUMENT_DELETE_KIND ? row3.baseContent : row3.content;
|
|
35414
|
+
if (!text4) return null;
|
|
35415
|
+
try {
|
|
35416
|
+
return parseMarkdown(text4, row3.target, { okfVersion }).frontmatter;
|
|
35417
|
+
} catch {
|
|
35418
|
+
return null;
|
|
35419
|
+
}
|
|
35420
|
+
}
|
|
35421
|
+
function recordLanded(landed, row3, okfVersion) {
|
|
35422
|
+
const frontmatter = intentFrontmatter(row3, okfVersion);
|
|
35423
|
+
if (isConventionId(row3.target)) {
|
|
35424
|
+
if (typeof frontmatter?.governs === "string") landed.governed.add(frontmatter.governs);
|
|
35425
|
+
landed.conventionChanged = true;
|
|
35426
|
+
} else if (typeof frontmatter?.type === "string") landed.types.add(frontmatter.type);
|
|
35427
|
+
}
|
|
35428
|
+
function definitionRetry(row3, landed, okfVersion, models) {
|
|
35429
|
+
const code3 = row3.refusal?.code;
|
|
35430
|
+
if (isConventionId(row3.target)) {
|
|
35431
|
+
if (!models || code3 !== "definition_incompatible") return false;
|
|
35432
|
+
const governs = intentFrontmatter(row3, okfVersion)?.governs;
|
|
35433
|
+
return landed.conventionChanged || typeof governs === "string" && landed.types.has(governs);
|
|
35434
|
+
}
|
|
35435
|
+
if (code3 !== "validation_failed") return false;
|
|
35436
|
+
const type = intentFrontmatter(row3, okfVersion)?.type;
|
|
35437
|
+
return typeof type === "string" && landed.governed.has(type);
|
|
35438
|
+
}
|
|
34945
35439
|
async function caseCollidingCreates(store) {
|
|
34946
35440
|
const creates = (await store.listIntents("pending")).filter((row3) => row3.base === null);
|
|
34947
35441
|
if (creates.length === 0) return [];
|
|
@@ -34996,13 +35490,23 @@ async function pushChanges(session, deps, acceptDeletes, heldSink = {}) {
|
|
|
34996
35490
|
heldSink.value ??= { deletions, baseline };
|
|
34997
35491
|
}
|
|
34998
35492
|
});
|
|
34999
|
-
const
|
|
35493
|
+
const models = session.capabilities.definitionWrites === "allowed";
|
|
35494
|
+
const withheld = models ? [] : [...new Set((await store.listIntents("pending")).filter((row3) => isConventionId(row3.target)).map((row3) => row3.target))].map((id) => ({
|
|
35495
|
+
id,
|
|
35496
|
+
path: `${id}.md`,
|
|
35497
|
+
reason: "convention_folder",
|
|
35498
|
+
message: heldPathMessage(`${id}.md`, session.capabilities.definitionWrites)
|
|
35499
|
+
}));
|
|
35500
|
+
const ordered = createsFirst(store, new Set(collisions.map((row3) => row3.id)), models);
|
|
35000
35501
|
let signInRequired = false;
|
|
35502
|
+
const landed = { types: /* @__PURE__ */ new Set(), governed: /* @__PURE__ */ new Set(), conventionChanged: false };
|
|
35503
|
+
const retried = /* @__PURE__ */ new Set();
|
|
35001
35504
|
for (let pass = 0; pass < PUSH_PASSES; pass += 1) {
|
|
35002
35505
|
const report = await push2(ordered, transport, { remote: reader, write: { ...deps.write, settlement: WHOLE_DOCUMENT_SETTLEMENT } });
|
|
35003
35506
|
for (const settled of report.settled) {
|
|
35004
35507
|
if (settled.state !== "acknowledged") continue;
|
|
35005
35508
|
const row3 = await store.readIntent(settled.requestId);
|
|
35509
|
+
if (row3) recordLanded(landed, row3, session.okfVersion);
|
|
35006
35510
|
acknowledged.set(settled.target, row3?.acknowledgedVersion === DELETION_VERSION ? "" : row3?.acknowledgedVersion ?? "");
|
|
35007
35511
|
if (row3?.kind === DOCUMENT_DELETE_KIND) {
|
|
35008
35512
|
deleted.add(settled.target);
|
|
@@ -35014,10 +35518,19 @@ async function pushChanges(session, deps, acceptDeletes, heldSink = {}) {
|
|
|
35014
35518
|
signInRequired = /^(AUTH_REQUIRED|UNAUTHORIZED)\b/.test(control?.reason ?? "") && !denied;
|
|
35015
35519
|
break;
|
|
35016
35520
|
}
|
|
35017
|
-
if (pass === PUSH_PASSES - 1
|
|
35521
|
+
if (pass === PUSH_PASSES - 1) break;
|
|
35522
|
+
const model = /* @__PURE__ */ new Set();
|
|
35523
|
+
const requeued = await requeueRefused(store, (row3) => {
|
|
35524
|
+
if (busyRefusal(row3)) return true;
|
|
35525
|
+
if (retried.has(row3.target) || !definitionRetry(row3, landed, session.okfVersion, models)) return false;
|
|
35526
|
+
model.add(row3.target);
|
|
35527
|
+
return true;
|
|
35528
|
+
});
|
|
35529
|
+
if (requeued.length === 0) break;
|
|
35530
|
+
for (const id of requeued) if (model.has(id)) retried.add(id);
|
|
35018
35531
|
await (deps.sleep ?? ((ms) => new Promise((resolve2) => setTimeout(resolve2, ms))))(50 + Math.floor(Math.random() * 200));
|
|
35019
35532
|
}
|
|
35020
|
-
return { acknowledged, deleted, deletedIntents, signInRequired, accessWithdrawn: denied, notSent: null, collisions, via };
|
|
35533
|
+
return { acknowledged, deleted, deletedIntents, signInRequired, accessWithdrawn: denied, notSent: null, collisions: [...collisions, ...withheld], via };
|
|
35021
35534
|
}
|
|
35022
35535
|
async function forgetPullDigest(store) {
|
|
35023
35536
|
const marker = await store.readMeta("pull");
|
|
@@ -35109,6 +35622,7 @@ async function runSync(binding, values, deps, mode) {
|
|
|
35109
35622
|
okfVersion: session.okfVersion,
|
|
35110
35623
|
local,
|
|
35111
35624
|
projection,
|
|
35625
|
+
definitionWrites: session.capabilities.definitionWrites,
|
|
35112
35626
|
...acceptDeletes !== void 0 ? { acceptDeletes, confirmAccept: confirmAtTerminal(binding, terminal) } : {}
|
|
35113
35627
|
});
|
|
35114
35628
|
await session.persist();
|
|
@@ -35256,7 +35770,7 @@ async function pullOnly(binding, session, deps, resumeCommand) {
|
|
|
35256
35770
|
{
|
|
35257
35771
|
const { store, local, reader, projection } = session;
|
|
35258
35772
|
await reclaimInFlight(local);
|
|
35259
|
-
await scanCheckout({ folder: binding.path, bundleId: binding.bundle_id, okfVersion: session.okfVersion, local, projection });
|
|
35773
|
+
await scanCheckout({ folder: binding.path, bundleId: binding.bundle_id, okfVersion: session.okfVersion, local, projection, definitionWrites: session.capabilities.definitionWrites });
|
|
35260
35774
|
await session.persist();
|
|
35261
35775
|
let report;
|
|
35262
35776
|
try {
|
|
@@ -35499,7 +36013,7 @@ async function runInspect2(binding, values, deps, mode) {
|
|
|
35499
36013
|
}
|
|
35500
36014
|
async function assertSendable(session, id, file2, bytes, resumeCommand) {
|
|
35501
36015
|
const stored = await session.store.readWithJournal(id);
|
|
35502
|
-
const held2 = unsendable(id, `${id}.md`, bytes, stored.document?.doc ?? null, { bundleId: session.binding.bundle_id, okfVersion: session.okfVersion });
|
|
36016
|
+
const held2 = unsendable(id, `${id}.md`, bytes, stored.document?.doc ?? null, { bundleId: session.binding.bundle_id, okfVersion: session.okfVersion }, { definitionWrites: session.capabilities.definitionWrites });
|
|
35503
36017
|
if (held2) throw new CliError("CONFLICT", `${file2} cannot be sent: ${held2.message}`, { details: { reason: held2.reason, id, file: file2 }, help: `edit ${file2}, then re-run: ${resumeCommand}` });
|
|
35504
36018
|
}
|
|
35505
36019
|
async function resolveFolder(session, id, choice, conflict, resumeCommand) {
|
|
@@ -35691,7 +36205,7 @@ async function hostedSync(argv2, binding, partial2 = {}) {
|
|
|
35691
36205
|
if (values["restore-deletes"]) return runRestore(binding, deps, mode);
|
|
35692
36206
|
return runSync(binding, values, deps, mode);
|
|
35693
36207
|
}
|
|
35694
|
-
var HOSTED_SYNC_USAGE, DEFAULT_ROW_LIMIT, INSPECT_PREVIEW_CHARS2, PUSH_PASSES, GIT_ONLY_FLAGS;
|
|
36208
|
+
var HOSTED_SYNC_USAGE, DEFAULT_ROW_LIMIT, INSPECT_PREVIEW_CHARS2, PUSH_PASSES, GIT_ONLY_FLAGS, busyRefusal;
|
|
35695
36209
|
var init_sync2 = __esm({
|
|
35696
36210
|
"../cli/src/hosted/sync.ts"() {
|
|
35697
36211
|
"use strict";
|
|
@@ -35783,6 +36297,7 @@ unless SUPERBEE_VIA says otherwise. SUPERBEE_ACTOR does not set it.
|
|
|
35783
36297
|
INSPECT_PREVIEW_CHARS2 = 4e3;
|
|
35784
36298
|
PUSH_PASSES = 3;
|
|
35785
36299
|
GIT_ONLY_FLAGS = ["establish", "pull-only", "show-incoming", "yes", "body-out", "migrate"];
|
|
36300
|
+
busyRefusal = (row3) => row3.refusal !== void 0 && BUSY_REFUSAL_CODES.has(row3.refusal.code);
|
|
35786
36301
|
}
|
|
35787
36302
|
});
|
|
35788
36303
|
|
|
@@ -74810,6 +75325,12 @@ function errorFromCaught(err) {
|
|
|
74810
75325
|
if (err instanceof UnservableIdError) {
|
|
74811
75326
|
return errorResponse(500, "RUNTIME", err.message);
|
|
74812
75327
|
}
|
|
75328
|
+
if (err instanceof MalformedDocumentError) {
|
|
75329
|
+
const id = err.context === void 0 ? void 0 : err.context.endsWith(".md") ? err.context.slice(0, -3) : err.context;
|
|
75330
|
+
return errorResponse(500, "RUNTIME", err.message, {
|
|
75331
|
+
malformed: { ...id === void 0 ? {} : { id }, reason: err.detail }
|
|
75332
|
+
});
|
|
75333
|
+
}
|
|
74813
75334
|
return errorResponse(500, "RUNTIME", "internal server error");
|
|
74814
75335
|
}
|
|
74815
75336
|
function writeOptionsFromRequest(req, attribution) {
|
|
@@ -75198,7 +75719,12 @@ function buildRouter(options) {
|
|
|
75198
75719
|
const parsedLimit = limitParam ? parseInt(limitParam, 10) : NaN;
|
|
75199
75720
|
const limit = Number.isFinite(parsedLimit) && parsedLimit > 0 ? parsedLimit : DEFAULT_LIST_LIMIT;
|
|
75200
75721
|
const cursor = searchParams.get("cursor") ?? void 0;
|
|
75201
|
-
const
|
|
75722
|
+
const skipped = [];
|
|
75723
|
+
const heads = await queryHeads(
|
|
75724
|
+
backend,
|
|
75725
|
+
{ prefix, type, tags },
|
|
75726
|
+
searchParams.get("malformed") === "skip" ? { onSkip: (skip) => skipped.push(skip) } : {}
|
|
75727
|
+
);
|
|
75202
75728
|
const count5 = heads.length;
|
|
75203
75729
|
let page = heads;
|
|
75204
75730
|
if (cursor) {
|
|
@@ -75216,7 +75742,12 @@ function buildRouter(options) {
|
|
|
75216
75742
|
}
|
|
75217
75743
|
return { id, version: version3, ...captureRemoteFrontmatter(projected) };
|
|
75218
75744
|
});
|
|
75219
|
-
return jsonResponse(200, {
|
|
75745
|
+
return jsonResponse(200, {
|
|
75746
|
+
count: count5,
|
|
75747
|
+
docs,
|
|
75748
|
+
next_cursor: nextCursor,
|
|
75749
|
+
...skipped.length > 0 ? { skipped: skipped.map(({ id, reason }) => ({ id, reason })) } : {}
|
|
75750
|
+
});
|
|
75220
75751
|
}
|
|
75221
75752
|
async function listHeads(backend) {
|
|
75222
75753
|
const ids = await backend.list();
|
|
@@ -75966,11 +76497,15 @@ function pageCsp() {
|
|
|
75966
76497
|
"img-src data:",
|
|
75967
76498
|
"font-src data:",
|
|
75968
76499
|
"connect-src 'none'",
|
|
76500
|
+
"worker-src 'none'",
|
|
75969
76501
|
"form-action 'none'",
|
|
75970
76502
|
"base-uri 'none'",
|
|
75971
76503
|
"frame-ancestors 'self'"
|
|
75972
76504
|
].join("; ");
|
|
75973
76505
|
}
|
|
76506
|
+
function viewChildCsp() {
|
|
76507
|
+
return pageCsp().split("; ").filter((directive) => !directive.startsWith("frame-ancestors ")).join("; ");
|
|
76508
|
+
}
|
|
75974
76509
|
var PAGE_BLOB_PREFIX, VIEW_BLOB_PREFIX, PAGE_BLOB_PREFIXES;
|
|
75975
76510
|
var init_pages = __esm({
|
|
75976
76511
|
"../ui-server/src/pages.ts"() {
|
|
@@ -76585,6 +77120,38 @@ var init_catalog2 = __esm({
|
|
|
76585
77120
|
}
|
|
76586
77121
|
});
|
|
76587
77122
|
|
|
77123
|
+
// ../core/src/query-order.ts
|
|
77124
|
+
function meaningfulChangeOrderKey(id, frontmatter, okfVersion) {
|
|
77125
|
+
const value = meaningfulChangeTimeValue(frontmatter);
|
|
77126
|
+
return {
|
|
77127
|
+
id,
|
|
77128
|
+
timestamp: typeof value === "string" ? value : "",
|
|
77129
|
+
timestampMs: parseTimestamp(value, okfVersion ?? void 0)
|
|
77130
|
+
};
|
|
77131
|
+
}
|
|
77132
|
+
function compareByMeaningfulChange(a, b) {
|
|
77133
|
+
if (a.timestampMs !== null && b.timestampMs !== null) {
|
|
77134
|
+
if (a.timestampMs !== b.timestampMs) return b.timestampMs - a.timestampMs;
|
|
77135
|
+
} else if (a.timestampMs !== null) {
|
|
77136
|
+
return -1;
|
|
77137
|
+
} else if (b.timestampMs !== null) {
|
|
77138
|
+
return 1;
|
|
77139
|
+
}
|
|
77140
|
+
return a.id < b.id ? -1 : a.id > b.id ? 1 : 0;
|
|
77141
|
+
}
|
|
77142
|
+
function sortByMeaningfulChange(rows, okfVersion) {
|
|
77143
|
+
return rows.map((row3) => ({ row: row3, key: meaningfulChangeOrderKey(row3.id, row3.frontmatter, okfVersion) })).sort((a, b) => compareByMeaningfulChange(a.key, b.key)).map(({ row: row3 }) => row3);
|
|
77144
|
+
}
|
|
77145
|
+
var init_query_order = __esm({
|
|
77146
|
+
"../core/src/query-order.ts"() {
|
|
77147
|
+
"use strict";
|
|
77148
|
+
init_define_SUPERBEE_BUILD_IDENTITY();
|
|
77149
|
+
init_define_SUPERBEE_UPDATE_POLICY();
|
|
77150
|
+
init_freshness();
|
|
77151
|
+
init_meaningful_change_time();
|
|
77152
|
+
}
|
|
77153
|
+
});
|
|
77154
|
+
|
|
76588
77155
|
// ../view-runtime/src/bridge.ts
|
|
76589
77156
|
function isPlainRecord2(value) {
|
|
76590
77157
|
if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
|
|
@@ -76613,7 +77180,7 @@ function invalidV0RequestId(value) {
|
|
|
76613
77180
|
}
|
|
76614
77181
|
function normalizeQueryParams(raw) {
|
|
76615
77182
|
if (!isPlainRecord2(raw)) return null;
|
|
76616
|
-
const allowed = /* @__PURE__ */ new Set(["type", "prefix", "field", "open", "limit"]);
|
|
77183
|
+
const allowed = /* @__PURE__ */ new Set(["type", "prefix", "field", "open", "limit", "order"]);
|
|
76617
77184
|
if (Object.keys(raw).some((key) => !allowed.has(key))) return null;
|
|
76618
77185
|
const out = {};
|
|
76619
77186
|
if (raw.type !== void 0) {
|
|
@@ -76641,6 +77208,10 @@ function normalizeQueryParams(raw) {
|
|
|
76641
77208
|
}
|
|
76642
77209
|
out.limit = raw.limit;
|
|
76643
77210
|
}
|
|
77211
|
+
if (raw.order !== void 0) {
|
|
77212
|
+
if (!BRIDGE_QUERY_ORDERS.includes(raw.order)) return null;
|
|
77213
|
+
out.order = raw.order;
|
|
77214
|
+
}
|
|
76644
77215
|
return out;
|
|
76645
77216
|
}
|
|
76646
77217
|
function selector(value) {
|
|
@@ -76768,9 +77339,19 @@ function fail3(id, bridge, code3, message) {
|
|
|
76768
77339
|
function replyWithinLimit(reply) {
|
|
76769
77340
|
return Buffer.byteLength(JSON.stringify(reply), "utf8") <= MAX_REPLY_BYTES;
|
|
76770
77341
|
}
|
|
77342
|
+
function skippedReply(skipped) {
|
|
77343
|
+
if (skipped.length === 0) return {};
|
|
77344
|
+
return { skipped: [...skipped].sort((a, b) => a.id.localeCompare(b.id)).slice(0, MAX_QUERY_ROWS) };
|
|
77345
|
+
}
|
|
76771
77346
|
function boundedRows(rows, params, kinds2) {
|
|
76772
77347
|
const requested = params.limit === 0 || params.limit === void 0 ? MAX_QUERY_ROWS : Math.min(params.limit, MAX_QUERY_ROWS);
|
|
76773
|
-
|
|
77348
|
+
const { order, ...selection } = params;
|
|
77349
|
+
if (order !== "newest") return applyQuerySelectionFilters(rows, { ...selection, limit: requested }, kinds2);
|
|
77350
|
+
const matched = applyQuerySelectionFilters(rows, { ...selection, limit: void 0 }, kinds2);
|
|
77351
|
+
return {
|
|
77352
|
+
rows: sortByMeaningfulChange(matched.rows, selection.okfVersion).slice(0, requested),
|
|
77353
|
+
count: matched.count
|
|
77354
|
+
};
|
|
76774
77355
|
}
|
|
76775
77356
|
function changeMessage(changes, removed) {
|
|
76776
77357
|
const boundedChanges = changes.slice(0, MAX_QUERY_ROWS);
|
|
@@ -76781,7 +77362,7 @@ function changeMessage(changes, removed) {
|
|
|
76781
77362
|
event: { changes: boundedChanges, removed: boundedRemoved }
|
|
76782
77363
|
};
|
|
76783
77364
|
}
|
|
76784
|
-
var BRIDGE_PROTOCOL, ACTION_BRIDGE_PROTOCOL, MAX_REQUEST_ID_BYTES, MAX_DOC_ID_BYTES, MAX_SELECTOR_BYTES, MAX_SELECTOR_VALUES, MAX_QUERY_ROWS, MAX_EDGE_ROWS, MAX_DOCUMENT_BODY_BYTES, MAX_REPLY_BYTES, GRAPH_MAX_DOCUMENTS, GRAPH_MAX_RELATIONSHIPS, MAX_CHANGE_ROWS, MAX_CHANGE_BYTES, MAX_SUBSCRIPTION_HEADS, MAX_HOST_CAPABILITY_BYTES, MAX_HOST_REQUEST_BYTES, HOST_CAPABILITY_NAME, BRIDGE_SERVICE_LIMITS, BRIDGE_HOST_CAPABILITIES, BRIDGE_SERVICE_CAPABILITIES, V0_REQUEST_TYPES, BridgeService;
|
|
77365
|
+
var BRIDGE_PROTOCOL, ACTION_BRIDGE_PROTOCOL, MAX_REQUEST_ID_BYTES, MAX_DOC_ID_BYTES, MAX_SELECTOR_BYTES, MAX_SELECTOR_VALUES, MAX_QUERY_ROWS, MAX_EDGE_ROWS, MAX_DOCUMENT_BODY_BYTES, MAX_REPLY_BYTES, GRAPH_MAX_DOCUMENTS, GRAPH_MAX_RELATIONSHIPS, MAX_CHANGE_ROWS, MAX_CHANGE_BYTES, MAX_SUBSCRIPTION_HEADS, MAX_HOST_CAPABILITY_BYTES, MAX_HOST_REQUEST_BYTES, HOST_CAPABILITY_NAME, BRIDGE_SERVICE_LIMITS, BRIDGE_HOST_CAPABILITIES, BRIDGE_SERVICE_CAPABILITIES, BRIDGE_QUERY_ORDERS, V0_REQUEST_TYPES, BridgeService;
|
|
76785
77366
|
var init_bridge = __esm({
|
|
76786
77367
|
"../view-runtime/src/bridge.ts"() {
|
|
76787
77368
|
"use strict";
|
|
@@ -76789,6 +77370,7 @@ var init_bridge = __esm({
|
|
|
76789
77370
|
init_define_SUPERBEE_UPDATE_POLICY();
|
|
76790
77371
|
init_src();
|
|
76791
77372
|
init_page();
|
|
77373
|
+
init_query_order();
|
|
76792
77374
|
BRIDGE_PROTOCOL = "v0";
|
|
76793
77375
|
ACTION_BRIDGE_PROTOCOL = "v1";
|
|
76794
77376
|
MAX_REQUEST_ID_BYTES = 128;
|
|
@@ -76819,6 +77401,7 @@ var init_bridge = __esm({
|
|
|
76819
77401
|
queryFieldOr: "query.field-or",
|
|
76820
77402
|
queryOpen: "query.open",
|
|
76821
77403
|
queryCount: "query.count",
|
|
77404
|
+
queryNewest: "query.newest",
|
|
76822
77405
|
edges: "edges",
|
|
76823
77406
|
renderDocument: "render-document",
|
|
76824
77407
|
openPage: "open-page",
|
|
@@ -76833,10 +77416,12 @@ var init_bridge = __esm({
|
|
|
76833
77416
|
BRIDGE_HOST_CAPABILITIES.queryFieldOr,
|
|
76834
77417
|
BRIDGE_HOST_CAPABILITIES.queryOpen,
|
|
76835
77418
|
BRIDGE_HOST_CAPABILITIES.queryCount,
|
|
77419
|
+
BRIDGE_HOST_CAPABILITIES.queryNewest,
|
|
76836
77420
|
BRIDGE_HOST_CAPABILITIES.edges,
|
|
76837
77421
|
BRIDGE_HOST_CAPABILITIES.graph,
|
|
76838
77422
|
BRIDGE_HOST_CAPABILITIES.renderDocument
|
|
76839
77423
|
]);
|
|
77424
|
+
BRIDGE_QUERY_ORDERS = Object.freeze(["id", "newest"]);
|
|
76840
77425
|
V0_REQUEST_TYPES = /* @__PURE__ */ new Set(["hello", "query", "read", "render-document", "edges", "graph", "subscribe", "host", "open-page"]);
|
|
76841
77426
|
BridgeService = class {
|
|
76842
77427
|
constructor(options) {
|
|
@@ -76964,7 +77549,8 @@ var init_bridge = __esm({
|
|
|
76964
77549
|
return { status: "reload-required", message };
|
|
76965
77550
|
}
|
|
76966
77551
|
async subscriptionSnapshot() {
|
|
76967
|
-
const rows = await queryHeads2(this.options.bundle, {})
|
|
77552
|
+
const rows = await queryHeads2(this.options.bundle, {}, { onSkip: () => {
|
|
77553
|
+
} });
|
|
76968
77554
|
if (rows.length > MAX_SUBSCRIPTION_HEADS) {
|
|
76969
77555
|
throw new Error("the bundle is too large for the experimental View polling snapshot");
|
|
76970
77556
|
}
|
|
@@ -76981,7 +77567,11 @@ var init_bridge = __esm({
|
|
|
76981
77567
|
* capability before adding them.
|
|
76982
77568
|
*/
|
|
76983
77569
|
async graph(launch, request2) {
|
|
76984
|
-
const
|
|
77570
|
+
const skipped = [];
|
|
77571
|
+
const onSkip = (skip) => {
|
|
77572
|
+
if (!skipped.some((row3) => row3.id === skip.id)) skipped.push({ id: skip.id, reason: skip.reason });
|
|
77573
|
+
};
|
|
77574
|
+
const heads = await queryHeads2(this.options.bundle, {}, { onSkip });
|
|
76985
77575
|
if (heads.length > GRAPH_MAX_DOCUMENTS) {
|
|
76986
77576
|
return {
|
|
76987
77577
|
reply: fail3(request2.id, request2.bridge, "TOO_LARGE", `the graph exceeded ${GRAPH_MAX_DOCUMENTS} documents`)
|
|
@@ -76990,7 +77580,7 @@ var init_bridge = __esm({
|
|
|
76990
77580
|
const [registry2, declaredOkfVersion, edges] = await Promise.all([
|
|
76991
77581
|
loadKinds(this.options.bundle),
|
|
76992
77582
|
readBundleOkfVersion2(this.options.bundle),
|
|
76993
|
-
queryEdges2(this.options.bundle, {})
|
|
77583
|
+
queryEdges2(this.options.bundle, {}, { onSkip })
|
|
76994
77584
|
]);
|
|
76995
77585
|
if (edges.length > GRAPH_MAX_RELATIONSHIPS) {
|
|
76996
77586
|
return {
|
|
@@ -77024,7 +77614,8 @@ var init_bridge = __esm({
|
|
|
77024
77614
|
okfVersion,
|
|
77025
77615
|
documents,
|
|
77026
77616
|
relationships,
|
|
77027
|
-
counts: { documents: documents.length, relationships: relationships.length }
|
|
77617
|
+
counts: { documents: documents.length, relationships: relationships.length },
|
|
77618
|
+
...skippedReply(skipped)
|
|
77028
77619
|
})
|
|
77029
77620
|
};
|
|
77030
77621
|
}
|
|
@@ -77082,10 +77673,14 @@ var init_bridge = __esm({
|
|
|
77082
77673
|
return { reply: ok3(request2.id, request2.bridge, request2.type, { capability: request2.capability, output: outcome.output }) };
|
|
77083
77674
|
}
|
|
77084
77675
|
if (request2.type === "query") {
|
|
77676
|
+
if (request2.params.order !== void 0 && !this.options.host.capabilities.includes(BRIDGE_HOST_CAPABILITIES.queryNewest)) {
|
|
77677
|
+
return { reply: fail3(request2.id, request2.bridge, "USAGE", "invalid or unsupported bridge request") };
|
|
77678
|
+
}
|
|
77679
|
+
const skipped = [];
|
|
77085
77680
|
const rows = await queryHeads2(this.options.bundle, {
|
|
77086
77681
|
...request2.params.type ? { type: request2.params.type } : {},
|
|
77087
77682
|
...request2.params.prefix ? { prefix: request2.params.prefix } : {}
|
|
77088
|
-
});
|
|
77683
|
+
}, { onSkip: (skip) => skipped.push({ id: skip.id, reason: skip.reason }) });
|
|
77089
77684
|
const [registry2, okfVersion] = await Promise.all([
|
|
77090
77685
|
loadKinds(this.options.bundle),
|
|
77091
77686
|
readBundleOkfVersion2(this.options.bundle)
|
|
@@ -77099,7 +77694,7 @@ var init_bridge = __esm({
|
|
|
77099
77694
|
const kind2 = registry2.kinds.get(String(row3.frontmatter.type ?? ""));
|
|
77100
77695
|
return kind2 ? { ...row3, frontmatter: projectLogicalKindFields(okfVersion, kind2, row3.frontmatter) } : row3;
|
|
77101
77696
|
});
|
|
77102
|
-
return { reply: ok3(request2.id, request2.bridge, request2.type, result3) };
|
|
77697
|
+
return { reply: ok3(request2.id, request2.bridge, request2.type, { ...result3, ...skippedReply(skipped) }) };
|
|
77103
77698
|
}
|
|
77104
77699
|
if (request2.type === "read" || request2.type === "read-versioned") {
|
|
77105
77700
|
const [result3, registry2, okfVersion] = await Promise.all([
|
|
@@ -77151,12 +77746,21 @@ var init_bridge = __esm({
|
|
|
77151
77746
|
};
|
|
77152
77747
|
}
|
|
77153
77748
|
if (request2.type === "edges") {
|
|
77154
|
-
const
|
|
77749
|
+
const skipped = [];
|
|
77750
|
+
const edges = await queryEdges2(this.options.bundle, request2.params, {
|
|
77751
|
+
onSkip: (skip) => skipped.push({ id: skip.id, reason: skip.reason })
|
|
77752
|
+
});
|
|
77155
77753
|
if (edges.length > MAX_EDGE_ROWS) {
|
|
77156
77754
|
return { reply: fail3(request2.id, request2.bridge, "TOO_LARGE", `the edge query exceeded ${MAX_EDGE_ROWS} rows`) };
|
|
77157
77755
|
}
|
|
77158
77756
|
const projected = edges.map(({ from, to, text: text4 }) => ({ from, to, text: text4 }));
|
|
77159
|
-
return {
|
|
77757
|
+
return {
|
|
77758
|
+
reply: ok3(request2.id, request2.bridge, request2.type, {
|
|
77759
|
+
edges: projected,
|
|
77760
|
+
count: projected.length,
|
|
77761
|
+
...skippedReply(skipped)
|
|
77762
|
+
})
|
|
77763
|
+
};
|
|
77160
77764
|
}
|
|
77161
77765
|
if (request2.type === "graph") {
|
|
77162
77766
|
return this.graph(launch, request2);
|
|
@@ -77463,6 +78067,12 @@ var init_src6 = __esm({
|
|
|
77463
78067
|
}
|
|
77464
78068
|
return launch;
|
|
77465
78069
|
}
|
|
78070
|
+
/** Resolve a nonce and retire it: a launch's HTML bytes are handed out at most once. */
|
|
78071
|
+
consumeNonce(nonce) {
|
|
78072
|
+
const launch = this.resolveNonce(nonce);
|
|
78073
|
+
this.byNonce.delete(nonce);
|
|
78074
|
+
return launch;
|
|
78075
|
+
}
|
|
77466
78076
|
revoke(launchId) {
|
|
77467
78077
|
const launch = this.byLaunch.get(launchId);
|
|
77468
78078
|
if (!launch) return;
|
|
@@ -77913,6 +78523,88 @@ var init_session2 = __esm({
|
|
|
77913
78523
|
}
|
|
77914
78524
|
});
|
|
77915
78525
|
|
|
78526
|
+
// ../view-runtime/src/view-host.ts
|
|
78527
|
+
function viewHostCsp(viewPolicy) {
|
|
78528
|
+
const inherited = viewPolicy.split(";").map((directive) => directive.trim()).filter((directive) => directive !== "" && !/^frame-ancestors(\s|$)/i.test(directive));
|
|
78529
|
+
return ["sandbox allow-scripts", ...inherited, "frame-src blob:", "child-src blob:"].join("; ");
|
|
78530
|
+
}
|
|
78531
|
+
function viewHostDocument(childPolicy) {
|
|
78532
|
+
const script = `(function () {
|
|
78533
|
+
"use strict";
|
|
78534
|
+
var PROTOCOL = ${JSON.stringify(VIEW_HOST_PROTOCOL)};
|
|
78535
|
+
var CHILD_POLICY = ${JSON.stringify(childPolicy)};
|
|
78536
|
+
var shellOrigin = new URL(location.href).origin;
|
|
78537
|
+
var view = null;
|
|
78538
|
+
var pending = null;
|
|
78539
|
+
function toShell(message) { parent.postMessage(message, shellOrigin); }
|
|
78540
|
+
function fail(reason) {
|
|
78541
|
+
if (pending === null) return;
|
|
78542
|
+
var deliveryId = pending;
|
|
78543
|
+
pending = null;
|
|
78544
|
+
toShell({ protocol: PROTOCOL, type: "failed", deliveryId: deliveryId, reason: String(reason).slice(0, 200) });
|
|
78545
|
+
}
|
|
78546
|
+
// A refused blob navigation still fires the child's load event; a violation of this host's own
|
|
78547
|
+
// policy is the refusal it can observe.
|
|
78548
|
+
document.addEventListener("securitypolicyviolation", function (event) {
|
|
78549
|
+
if (/^blob/.test(String(event.blockedURI)) || /^(frame|child)-src/.test(event.effectiveDirective)) {
|
|
78550
|
+
fail("the browser refused to load the View frame (" + event.effectiveDirective + ")");
|
|
78551
|
+
}
|
|
78552
|
+
});
|
|
78553
|
+
window.addEventListener("message", function (event) {
|
|
78554
|
+
if (view !== null && event.source === view.contentWindow) {
|
|
78555
|
+
toShell({ protocol: PROTOCOL, type: "view-message", message: event.data });
|
|
78556
|
+
return;
|
|
78557
|
+
}
|
|
78558
|
+
if (event.source !== parent || event.origin !== shellOrigin) return;
|
|
78559
|
+
var data = event.data;
|
|
78560
|
+
if (!data || typeof data !== "object" || data.protocol !== PROTOCOL) return;
|
|
78561
|
+
if (data.type === "deliver") {
|
|
78562
|
+
if (view !== null && view.contentWindow) view.contentWindow.postMessage(data.message, "*");
|
|
78563
|
+
return;
|
|
78564
|
+
}
|
|
78565
|
+
if (data.type !== "load" || view !== null) return;
|
|
78566
|
+
if (!(data.bytes instanceof ArrayBuffer) || typeof data.contentType !== "string" ||
|
|
78567
|
+
typeof data.deliveryId !== "string" || typeof data.title !== "string") return;
|
|
78568
|
+
var deliveryId = data.deliveryId;
|
|
78569
|
+
pending = deliveryId;
|
|
78570
|
+
var url = URL.createObjectURL(new Blob([data.bytes], { type: data.contentType }));
|
|
78571
|
+
view = document.createElement("iframe");
|
|
78572
|
+
view.setAttribute("sandbox", "allow-scripts");
|
|
78573
|
+
view.setAttribute("csp", CHILD_POLICY);
|
|
78574
|
+
view.setAttribute("referrerpolicy", "no-referrer");
|
|
78575
|
+
view.setAttribute("title", data.title);
|
|
78576
|
+
view.addEventListener("load", function () {
|
|
78577
|
+
URL.revokeObjectURL(url);
|
|
78578
|
+
// Let a violation reported for this navigation arrive first.
|
|
78579
|
+
setTimeout(function () {
|
|
78580
|
+
if (pending !== deliveryId) return;
|
|
78581
|
+
pending = null;
|
|
78582
|
+
toShell({ protocol: PROTOCOL, type: "loaded", deliveryId: deliveryId });
|
|
78583
|
+
}, 0);
|
|
78584
|
+
}, { once: true });
|
|
78585
|
+
view.src = url;
|
|
78586
|
+
document.body.appendChild(view);
|
|
78587
|
+
});
|
|
78588
|
+
toShell({ protocol: PROTOCOL, type: "ready" });
|
|
78589
|
+
})();`;
|
|
78590
|
+
return [
|
|
78591
|
+
"<!doctype html>",
|
|
78592
|
+
'<html><head><meta charset="utf-8"><title>Superbee View</title>',
|
|
78593
|
+
"<style>html,body{margin:0;width:100%;height:100%;overflow:hidden}iframe{display:block;border:0;width:100%;height:100%}</style>",
|
|
78594
|
+
`</head><body><script>${script}</script></body></html>`
|
|
78595
|
+
].join("");
|
|
78596
|
+
}
|
|
78597
|
+
var VIEW_HOST_PROTOCOL, VIEW_HOST_PATH;
|
|
78598
|
+
var init_view_host = __esm({
|
|
78599
|
+
"../view-runtime/src/view-host.ts"() {
|
|
78600
|
+
"use strict";
|
|
78601
|
+
init_define_SUPERBEE_BUILD_IDENTITY();
|
|
78602
|
+
init_define_SUPERBEE_UPDATE_POLICY();
|
|
78603
|
+
VIEW_HOST_PROTOCOL = "superbee-view-host/v1";
|
|
78604
|
+
VIEW_HOST_PATH = "/__ui/view-host";
|
|
78605
|
+
}
|
|
78606
|
+
});
|
|
78607
|
+
|
|
77916
78608
|
// ../ui-server/src/watch.ts
|
|
77917
78609
|
import { watch as fsWatch } from "node:fs";
|
|
77918
78610
|
function diffSnapshots(prev, next) {
|
|
@@ -77941,7 +78633,8 @@ function isEmptyChange(e) {
|
|
|
77941
78633
|
return e.docs.changed.length === 0 && e.docs.removed.length === 0 && e.blobs.changed.length === 0 && e.blobs.removed.length === 0;
|
|
77942
78634
|
}
|
|
77943
78635
|
async function snapshotBundle(bundle) {
|
|
77944
|
-
const heads = await queryHeads2(bundle, {})
|
|
78636
|
+
const heads = await queryHeads2(bundle, {}, { onSkip: () => {
|
|
78637
|
+
} });
|
|
77945
78638
|
const docs = new Map(heads.map((h2) => [h2.id, h2.version]));
|
|
77946
78639
|
const blobs2 = /* @__PURE__ */ new Map();
|
|
77947
78640
|
const keys = [];
|
|
@@ -78196,29 +78889,23 @@ async function handleManagementRequest(req, res, options, runtime, url2) {
|
|
|
78196
78889
|
await writeResponseToServerResponse(res, jsonError(404, "NOT_FOUND", "unknown managed UI operation"));
|
|
78197
78890
|
return true;
|
|
78198
78891
|
}
|
|
78199
|
-
function escapeHtml(text4) {
|
|
78200
|
-
return text4.replace(/[&<>"']/g, (c) => ({ "&": "&", "<": "<", ">": ">", '"': """, "'": "'" })[c]);
|
|
78201
|
-
}
|
|
78202
|
-
function pageError(status2, message) {
|
|
78203
|
-
const body = `<!doctype html><meta charset="utf-8"><title>page unavailable</title><p>${escapeHtml(message)}</p>`;
|
|
78204
|
-
return new Response(body, {
|
|
78205
|
-
status: status2,
|
|
78206
|
-
headers: { "content-type": "text/html; charset=utf-8", "content-security-policy": pageCsp(), "referrer-policy": "no-referrer" }
|
|
78207
|
-
});
|
|
78208
|
-
}
|
|
78209
78892
|
async function servePageBytes(options, runtime, nonce) {
|
|
78210
|
-
const launch = runtime.launches.
|
|
78211
|
-
if (!launch)
|
|
78893
|
+
const launch = runtime.launches.consumeNonce(nonce);
|
|
78894
|
+
if (!launch) {
|
|
78895
|
+
return { response: jsonError(403, "FORBIDDEN", "this View launch is unknown, already delivered, or expired; reopen the View from the launcher") };
|
|
78896
|
+
}
|
|
78212
78897
|
if (!await launchIsCurrent(options.bundle, launch)) {
|
|
78213
78898
|
runtime.launches.revoke(launch.launchId);
|
|
78214
|
-
return { response:
|
|
78899
|
+
return { response: jsonError(403, "FORBIDDEN", "this View changed after it was opened; reopen it from the launcher") };
|
|
78215
78900
|
}
|
|
78216
78901
|
return {
|
|
78217
78902
|
response: new Response(launch.bytes, {
|
|
78218
78903
|
status: 200,
|
|
78219
78904
|
headers: {
|
|
78220
78905
|
"content-type": launch.contentType,
|
|
78221
|
-
|
|
78906
|
+
// Defense in depth: these bytes are only ever read by the shell's fetch. Should anything
|
|
78907
|
+
// render them directly, they still run sandboxed under the View policy.
|
|
78908
|
+
"content-security-policy": `sandbox allow-scripts; ${pageCsp()}`,
|
|
78222
78909
|
"x-content-type-options": "nosniff",
|
|
78223
78910
|
"cache-control": "no-store",
|
|
78224
78911
|
"referrer-policy": "no-referrer"
|
|
@@ -78227,6 +78914,20 @@ async function servePageBytes(options, runtime, nonce) {
|
|
|
78227
78914
|
deliveredLaunch: launch
|
|
78228
78915
|
};
|
|
78229
78916
|
}
|
|
78917
|
+
function viewHostResponse() {
|
|
78918
|
+
return new Response(viewHostDocument(viewChildCsp()), {
|
|
78919
|
+
status: 200,
|
|
78920
|
+
headers: {
|
|
78921
|
+
"content-type": "text/html; charset=utf-8",
|
|
78922
|
+
"content-security-policy": viewHostCsp(viewChildCsp()),
|
|
78923
|
+
// The host's own framing guard. Unlike `frame-ancestors`, the blob child does not inherit it.
|
|
78924
|
+
"x-frame-options": "SAMEORIGIN",
|
|
78925
|
+
"x-content-type-options": "nosniff",
|
|
78926
|
+
"cache-control": "no-store",
|
|
78927
|
+
"referrer-policy": "no-referrer"
|
|
78928
|
+
}
|
|
78929
|
+
});
|
|
78930
|
+
}
|
|
78230
78931
|
function mintFailureResponse(options, registryId, error51) {
|
|
78231
78932
|
if (error51 instanceof ViewNotFoundError) {
|
|
78232
78933
|
return jsonError(404, "RUNTIME", error51.message);
|
|
@@ -78279,7 +78980,8 @@ async function handleMint(req, runtime, options) {
|
|
|
78279
78980
|
}
|
|
78280
78981
|
const matches = [];
|
|
78281
78982
|
try {
|
|
78282
|
-
const heads = await queryHeads2(options.bundle, { type: "View" })
|
|
78983
|
+
const heads = await queryHeads2(options.bundle, { type: "View" }, { onSkip: () => {
|
|
78984
|
+
} });
|
|
78283
78985
|
for (const head of heads) {
|
|
78284
78986
|
const registration = parseRegistration(head.id, head.frontmatter);
|
|
78285
78987
|
if (registration?.entry === legacyKey) matches.push(registration.id);
|
|
@@ -78432,13 +79134,14 @@ async function edgesResponse(options, url2) {
|
|
|
78432
79134
|
const text4 = url2.searchParams.get("text")?.trim();
|
|
78433
79135
|
if (text4) filter.text = text4;
|
|
78434
79136
|
let links;
|
|
79137
|
+
const skipped = [];
|
|
78435
79138
|
try {
|
|
78436
|
-
links = await queryEdges2(options.bundle, filter);
|
|
79139
|
+
links = await queryEdges2(options.bundle, filter, { onSkip: ({ id, reason }) => skipped.push({ id, reason }) });
|
|
78437
79140
|
} catch {
|
|
78438
79141
|
return jsonError(502, "RUNTIME", "could not read the bundle's edges");
|
|
78439
79142
|
}
|
|
78440
79143
|
const edges = links.map((l) => ({ from: l.from, to: l.to, text: l.text }));
|
|
78441
|
-
return new Response(JSON.stringify({ edges, count: edges.length }), {
|
|
79144
|
+
return new Response(JSON.stringify({ edges, count: edges.length, ...skipped.length > 0 ? { skipped } : {} }), {
|
|
78442
79145
|
status: 200,
|
|
78443
79146
|
headers: { "content-type": "application/json; charset=utf-8" }
|
|
78444
79147
|
});
|
|
@@ -78581,7 +79284,24 @@ async function handleRequest(req, res, options, runtime, sessionSecret) {
|
|
|
78581
79284
|
const origin = `http://${req.headers.host}`;
|
|
78582
79285
|
const url2 = new URL(req.url ?? "/", origin);
|
|
78583
79286
|
if (await handleManagementRequest(req, res, options, runtime, url2)) return;
|
|
79287
|
+
const auth = checkAuth(
|
|
79288
|
+
sessionSecret,
|
|
79289
|
+
url2.searchParams.get("token"),
|
|
79290
|
+
req.headers.cookie ?? null,
|
|
79291
|
+
options.sessionCookieName
|
|
79292
|
+
);
|
|
79293
|
+
if (!auth.ok) {
|
|
79294
|
+
await writeResponseToServerResponse(
|
|
79295
|
+
res,
|
|
79296
|
+
jsonError(403, "FORBIDDEN", "missing or invalid session \u2014 open the printed URL (with its ?token) again")
|
|
79297
|
+
);
|
|
79298
|
+
return;
|
|
79299
|
+
}
|
|
78584
79300
|
if (url2.pathname.startsWith("/__page/") && url2.pathname !== "/__page/mint") {
|
|
79301
|
+
if (req.method !== "GET" || !req.headers["x-requested-with"]) {
|
|
79302
|
+
await writeResponseToServerResponse(res, jsonError(403, "FORBIDDEN", "View bytes are delivered only to the Superbee shell"));
|
|
79303
|
+
return;
|
|
79304
|
+
}
|
|
78585
79305
|
const nonce = decodeURIComponent(url2.pathname.slice("/__page/".length));
|
|
78586
79306
|
const served = await servePageBytes(options, runtime, nonce);
|
|
78587
79307
|
const completed = new Promise((resolve2) => {
|
|
@@ -78606,17 +79326,8 @@ async function handleRequest(req, res, options, runtime, sessionSecret) {
|
|
|
78606
79326
|
}
|
|
78607
79327
|
return;
|
|
78608
79328
|
}
|
|
78609
|
-
|
|
78610
|
-
|
|
78611
|
-
url2.searchParams.get("token"),
|
|
78612
|
-
req.headers.cookie ?? null,
|
|
78613
|
-
options.sessionCookieName
|
|
78614
|
-
);
|
|
78615
|
-
if (!auth.ok) {
|
|
78616
|
-
await writeResponseToServerResponse(
|
|
78617
|
-
res,
|
|
78618
|
-
jsonError(403, "FORBIDDEN", "missing or invalid session \u2014 open the printed URL (with its ?token) again")
|
|
78619
|
-
);
|
|
79329
|
+
if (url2.pathname === VIEW_HOST_PATH && req.method === "GET") {
|
|
79330
|
+
await writeResponseToServerResponse(res, viewHostResponse());
|
|
78620
79331
|
return;
|
|
78621
79332
|
}
|
|
78622
79333
|
const boundedTrustedBody = url2.pathname === "/__page/mint" || url2.pathname.startsWith("/__ui/");
|
|
@@ -78818,6 +79529,7 @@ var init_server = __esm({
|
|
|
78818
79529
|
init_proxy();
|
|
78819
79530
|
init_pages();
|
|
78820
79531
|
init_src6();
|
|
79532
|
+
init_view_host();
|
|
78821
79533
|
init_events();
|
|
78822
79534
|
init_watch();
|
|
78823
79535
|
HOST = "127.0.0.1";
|
|
@@ -78888,11 +79600,11 @@ var init_ui_assets_generated = __esm({
|
|
|
78888
79600
|
"/assets/fonts/DMSans-OFL.txt": { contentType: "text/plain; charset=utf-8", gzipBase64: "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" },
|
|
78889
79601
|
"/assets/fonts/JetBrainsMono-OFL.txt": { contentType: "text/plain; charset=utf-8", gzipBase64: "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" },
|
|
78890
79602
|
"/assets/fonts/SpaceGrotesk-OFL.txt": { contentType: "text/plain; charset=utf-8", gzipBase64: "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" },
|
|
79603
|
+
"/assets/index-BYrtCcU8.js": { contentType: "application/javascript; charset=utf-8", gzipBase64: "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" },
|
|
78891
79604
|
"/assets/index-iXvKuYJp.css": { contentType: "text/css; charset=utf-8", gzipBase64: "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" },
|
|
78892
|
-
"/assets/index-RO-mUKiS.js": { contentType: "application/javascript; charset=utf-8", gzipBase64: "H4sIAAAAAAAC/9y9eX/bOLIo+v/5FDJfrkccQ2rJdjYqjI7X2ImXeElncft6aAmymFCiTFJyvGg++6sq7JTsTs+Z8969p38di9gLhQJQVSgUJlFW2b0MDy+/805R7/JePOQfs3TEs+K2NYHEtVE4DN/eF/0svamc3o74VpalWXXoTyn582VYHbKIjf3wbVSJh5Vhe/eSYu75cDzgWXSZ8GChwTrpsBdfjXX4JosL9T2JkjEPxlM/GJ5F5+GYan6WmZo/Y5UFNJ72KtFC6OW3g8s08drRkucFmIXtpxYc9X6UA4QPD2ujqrcRDYdpUfGWxj7Ve2EyVvdT+vYyHnUrvSwdVEZZPIkKXunFPOl6Phu3x/VOlCRQXRDVr3gBHz4bFbOtta3Gom63UvR5JY8GXFc54INLnlUGacYhMRpW0mGHe1AtoC0vIghA7z7z6McJL9pRHeoQjebYKPZxrFplmQ08YhJqTGdgz9qZhB1KOxX5bLOYg4ao0+F5bgFc9FNCgsDcx8xp/x7qq1xUU/9+XFB8Chmn7Ipi/fuMF+NsCJ+YlPnTqahkMw3v+c9RmhV5cD+dstE4vJ+2fvv73/+j8vfKfyZxhw9zXjnmUafAmAw/at/zn7VsPCziAa+PsrQ77hRxOqx/zyEL5tpIR7dZfNUvKtWOX9nnRVT5mERFL80GOavsDjv1SjTsVqJeL05i6FpelwVP+3FeydNx1uGVTtrlFQhKGLqV8bAL44XjuL97qqIrvRTikdIhAavY293YOjjZAqwnXEZXshSIoBtnMKfS7LYC41pYDRUZ5wjAb4iPu1GrNx5SfyrPLgFvca96N/Il9kbj1t0obBLmhuEJkX0dulX1CDH1IouGeYyFo6TOEz7gwwIGLJqTtZdFVyLZNDiuZjBqff8e6++Fw3GStKD9/kIYTtK4W2ksLlZ7oect9X2W1n/w25kEivWZB3896DwQQx/HE9vFOgcVihxAOcoCxfpng/MwhT/+lCeAz36YtmRv07Bfz3iP3T97JiZ7IGZ9kDEoHPQYJAaphqGdBggxA4oY5UF/OtVIq2/LzoYREBjQyc9wLD9y+poicBsW6j9eGpLdGD08VDcA7WwzrUtaDXFsfCuCargKsRw7KNH0SfHnNP0/jY4vLGQWTUHHF5qOT4rWxb+JjhHNUYKr0pNEzrI5yXmRxZ3iYgAYghzpvNqzFBGQQXJ/TjLsYjnuapDcm59c8J/Y+mAecGl2E2XdC6BiyHE5D75xPsLBgeTRnGTYQVJIOpmTlER3t5B0OycJ/sWTuMDkU5UMO0YWwZiaMftZvdMT4C4MaS14eJB77h3suSmxCF4bE4LqXXi6uHh3dnr+8HB35v3nf6oKvXO1T0Mlnqrda9/RVPVp1uyH93G+D+RX8G6gsujpt9CcMj68HvMx306BzD6NukDpdj6dfsxHSdThJ8VjGWAnnU2csk+K34nyPL4asve0ZClM/KjesSO25d8jrddpcQnvGAXk+IZHIggDmYfvxfeYwMzCrYeH/ekPLFakiIl6nNPE30gHo3SISxKAZ6fnEsZQwwjN0/SZRf7iohWnkQsDsUDj5QsuTXBoXhH94HkF+QwqjLM3x4YqMAYxsl45Mg0C7kqaVaKKRsFNP+70K2I8nq6iDtuJ3f96CfNVTGSIUE911PNdBPTMKFs4kOgvVWtRhKrZs8pD1WYcgduB0eaFaSq0mjX5vv7Xxxup+lv41WppyG8AgNY3WjGKbIwLaPiVfap+s/vus29AHx/HGS/RyEKDlsqkCNeyLLqFTPRrgN7EvhEDHt7viG1wTfycip8T+pmyD4rWDcKBXz28GWouX9e5rRCB9cZFuIUdlnvzzJZ8R1vyEW3JcWH25LiwN+Wt6VRXfygIW64x0FgdK4IW7wTSfZN1WFirkbWe6GkABE8UD191BRkuWqaKZ1gDduQovPdCL/DChsfgBz6WvanslffMW7qDXtIyUv3tLAzOf7timgi3NAxHZ1vnU7F6ATn89sdvS79dGcSdFk7X/gxg4qMw0H5W9RAAZKGCo3qRnsD+NLyqrrywcNEnXOQ3cdHpA85w/o1z/74TwTbRGyewWyW86wVq6a6TMNWi5Ixj65gqFgbsapSnwxbIedE4KQJZqwJYVg5w5wQILNt1YAOG1U226Qe68dCDTaqL6Uyma4wBEkwtJh+wfaawAZpJaMMjWBL+Uh26Z0z1CesABu3fg6DpVIbNMOyIycHigg0KQVmdIlSYa1UhAMAiq4UidNd7eBAxl2ma8Gjo+Qi/WKVpam/BJG8is602W3+Lpj3xxHJcOoXsxmV8FQNTE1BAjo0IgIwNQqUXiMKXAP4P0TVJeYEmHDVNRJWVIZWvRDMlKycKVZByV7+Ih9DlneoWkGH9YhTdJmnU9S1UTKfQia1CcXqDIhwgxTIoHRMGvLZX95ZojjR8WCtYUlShXLu6BWmQbUFODAhvFXoy/iyY92zxN89f8uAPADAoqFEooiklLfScSwsY/WBgKhtSI/ABAB1i4a0l+ItTTfE2d3IuAowioe15AU5IEfIfAWUJ+gr9r4/GeR+b8FmzBX0VC/au02no7BIsODjKCeLEV2LREeY/Kt7c1RM+vCr68L205EPJu7Oj4pwB5ewWiDFA1lGBqFwKdygACOgQ1gWdQMVQFbJuiuuCoMUZUIN34VEh9ACQjVpeqGJT9SFsbSDU1Luw57Sw9bgQk6MEAID2JAiC0CXBOZwLrQ4OQHK4dqq0rFlk1BIz7iiUayBSkOBjxP4FbEgGVAvyCIAIO00EEUKkqnT6cdKtVEmgCSreUvUI4TmTPIsofg4DIiNgQvQrMMB55d5bkpsjBqHJ+vc0HlY9VsGxnnrBEfz49cpur3KbjisDmMcF8kwZJ4kqAlEL1haxPkB3CQ5IY5UxzqwhQAx7Nml3eNQFTmmqJ5ZZV3bVpiuWAloJ1FLVkhvx2TlgCMZNI+8OkQYzwZ4MHTMZjsRwy4GC4Zv6UMC0GdGWgg3WL/RCW2uq/RJiM57D/tA6Co+qSOvuIg/AOiUbMJfcimitVjFNpisMt+yF/i/Ws+zWg2u9ndnJ27DywsZQ6mpTY1hlqssdsaX2ARlPO/5Er/OwIoD0SXTpSDdWfGCzsGYq3MTDbnoTznLyIqFOZbcmyPvZ00WOCHKTMxmrHsdvj91fji+RFyc1K+oRE6VYHfA8j6548DRHomerzG7t/2oyqiQ/MNOTWg/upj6ubwsSvG6cjyLYcASER77E9FStFbItYPhQ1TgHHzKlzgdxCRV2ShV22k40vuoXWz87fEQ52J0vZ8gUmW7YdusEIsA6ZTfh/SAaBbsMVsStqNMPbGkLpx/OQ0tKPKpHo1FyK4SMKLsao1YBWFSGFNxB2dUZaDFMeoaWK1taAnI9mrIiJTbeKTqviOElj6b+w8PZ+ZSlw+S2TFsLxCe7Uh8tifUNuRTVsViF/xwRmyPWrg6PJ7A8VXIYx0SqpSpS5yLWMBTq1AyZKl65clLU16QqIbxlJ6aR8IZCWnj5gUGtgRtj6KNUq4QphUDgMdm/YtQJaWb20y4PMwpLTUh4iaGLi4293a2D04vdg9Ot44O1vZOLzcOLg8PTi08nWxeHxxef144P8Pv45OJ0Z+vrxcbaAaV+fHe8trkVfpaVHO5/3N3bOr44/nRwuru/Fd5fXJBYdHEhhJbOvJH5XN+pw4K+zwfpBlAOR3pCHR8sshAK55SY0WnA3BLkRK1Y5GTqOYmvhlESzhYVYhxmSwBfW2KcwjL5WruHQw6nfRhq2V5lMM6LyiXXG6ccdFa5HBe0w42iHBWGIJMseUgEcv/5VL2faikNtyLim3DaH0nFA/IZUGGMe09JTQzZgac6EnriI3/hg9icjmBz8hWTjKph9X1xkfOkZwdJ26gjUHu2uHiEsmmomnl4ANbkDHb58Aj/CsAhu8a05LNqyy3FrzSB4amrHTvc0sxM8w1upIpR25ICOO6ubBf34N0CMsBf2FW3irNdaFI3AqGl5fOWU28xLcu7wIrGwDXTiALTXcBMEEqGOYR0Fxq5u8cuOuMMKi1+p+OyOze8jBEw9MBpbNDy1GAw6SYxMCqCtjek6lLqBe7qKjm8g4BKtRrsQwMCNFjk2Z0F8WNEKMgFCQToBbCszhNsKonnU0nHpRJNJDHy8KRfkOcH4lsSiRUUREL0dhYTIcSKELYeI4QtQQiDRwhhyyKEXUUIEMkU+75VCMZ9t0C23SKEIyIEu97dgpgQFDkkq/GRZpNBCUlbdhrw3L7sjDOdKGarEP0z1CW5cmuYjmGGzKwn95JoBBlQbqmXdrJrGjT0MGCC7wVqoGJx/jty4ooYYB05EXroJ2s5YUqIDO4lRxbUmkzyW0hpJHEGUSFaQZ13STVarnKkNFId2FNASgiONMKEtvpIVAWtZcWpPmkIZzfwz/VTtoXKYPgAUiiyW6ULu6vSwve5ftJCIVNyTiDpovyipS9iWTRHExdlFguWhrJEhNmUkmUCw9eJlOQ/KfBn2othX0hu7490ZVu0kOQ6XD0SEaFM8BmCLzs9xrNlYAcvYAuj7QuGGXDdn7PTyI3OzlUV9ASx4eM7IzFYItcaZZnVZ7OtciErp8yg6tiA7l5GnR9zR90AKTJRmi75+EqqiokcFsSb/HJ8RSto6JwgqNQe8JC8W8owByAnpwPVVq8H9PBkYZFlTikhETzeHyuX1afd7uOju9s1Y7o7GOGpDbCDO9Gwm/zZkJWzl8ZtF9i1DEv/QodLeZ2e70XAihS/UImd0alh/7E1w+blnBKHIEIM4ryIO0+WM9mc0se8O+7A3vk0+mSuEtbmr7qmTM8a1/K8KueWs8nkvx12tn4WPIMV5KRIsz8b4Jn8JVjnrZ3lOkweSWcTnuVYwmu+ri/XX3kQR1L1D+vAeNAz9fzA0/cfePp+YE7f8UTZtyKoho8hlmPHpdP3W7QoYZ9Ksdfpk2fyOax53TFIKP/TzuW/W2jmTYPm74jm74hmo9gZAr+jdUTVHbYr9sWoCHeUonJH6D13/RYIwMC7tBpvoqIl8k2Azypqzbdv3zZB3t45mxTnyGU13qTVG6jLp5hwl+2cRfB7w6DeSSH4LVI/VwrrtGhc3dGwqtZRRyR29J2zxrnJm2FeaMnO51vik1DNhliIUWdG6ahKaosIt2joJiYB8LJTsjMN7IWskt2FN9ix1qR4c9dS/MLy36uTYqnpAwOzBdUfnQMzEB4tNZFV2EEGjfr/NgUuISp8kDje3CwuYhj10X67KjACAcoMAAALEAI/EciULYaVyvgjo3F1KsKaH6mohFylajCYS0ujnMN82QWy/FnbNd+KySRkNdpREezU4y7kiLvI1A4NjzFMbyTjpTgi2DFwlqBWap6yx6TWh6QeK6m++qGVpVVqaXYN6mMtsO6QukkaNW3CfGSDsCeS/rwOmbE2mNIic4na1xH+OYG5chuKM9Zwhf0MF5psH/98wj/v8c8PpSjMeXEaDzhsT46e0EQLmYxrzWIn4VE2r4idIAp9tRrZHQx4F1ecN96YqtcRlNdM/W84RbQwE46rI7+1KznIFk2eXRK5iPFSamjMpEhuV7LPAMmbcIfSmEUj4S4uzTGyB+kQM7GoegmkZVFgSzRrzfGkkBOXMIggsoV9H8Lj6qUvgfMBxQ22CYvVJn48g32gpUe31JHFxX5RTQpmwVrb8cU4bmITn0OYqR/C52wbPlrWybQe/ffthUawUKJpoIbtNx/c82mCmwZ9U5DqTlgu1NoOd+TSs9AgYaII7gXFANNOfeZF9bNPYPlIUOIQCWbiKWXnAQ0ZIeY2RKS0bnVXF6q3JZS/3VlcPET86OX4Vo9py+heJyW9qsmkiPsWNsE4zeLido9PuFg+YWIXMy0iJWDNs31X8//m0bZuxIDv6tPHCp/iWRx2c3Exg7+UQWiOM+o7peGSo7Dg76ojU+rxnSCHuxI53DnkgC02p1O1KCrxSs9sWDtxak935Uo21Vl220B9wSYVJ5p6ZmH1q9PRZ/bC8rU6BDmuVVKB7wuN+kY/Gg55gvNXDBvIL6jud5PZaRH+FLZvyy350aynQ6WxB+HbafIUs+SFrKQqbK8EKp18PwA01rCtZgBltCV8Dn9UrYw7M1MCuLtdf2rF7oJI8FHSDUwxO0UtSjq5aSfvpTc6YdVOOMCFP9FpK3aa0CjHwysxblbKJxAt1pO08wMSddllO4c4JJmVM2Ex2nEnw9QuRoZG21k04McOHw7FGm93Hh6ay8/f7LTdswfPLVSRRlkVGJ0YJSng6FAlW9xwPqw0iIuEalgFiwH8lR6WrGTIU1b6wIESwxgNMVOlN8qRn8Qz0Xw8QpLgXc8PPoQNAGM/Kvr1XpICDE2+8tuOHzx3OnPFiw2hCfpoz/U5G+KpU27oCNg72jLlVNoVNIVdwbL4WQnE+rciDQyU4clueDrVS91puEvLnT7eNEoPnI5Tp/2MX495XnyMYlsw9u9hKW64GcfDz3HR1xRgYEbyllDvPAI1/ayKn+eBC/tOuGLDvmPDvvsk7ErImEN5bBf5OLVuz+wkrqFO5KiZIqVmagM7C23WuzyJbpHRtbNLQxHgGoFhbwPXCmzcBDhNYsKZwYNY62F3tCxCloObcPm5YyTyHKKajZcrL1ebr5ZX7JRVTOGrpQG/CZ/zFcWA3gCUSzdsJ7yPu8HJ0hJTcy7YZc7OE+wwvXQDpMzdfYIbpvmPoNacQpffTgrgqi22BApF1RH0j+HeEaqNYYc2mhEeMH9qV61dOPiEXIbYN0CYAQz5yI1bNd4QZwMV7j88/AS2ZJY/AUl1xx33fjpOul/xWkZ4aCfcZNFo7jIkZs1pa/ZA6dFZ88iBpUuN06lfvU4BwOuUaPjQkg6HlnR4iNLhIUqHn4wQzkkI/+QK4TslOfuC/8J9jm46+J8mZ+9bmIyl/fu+tn+/4K19Y/+OaouWJWlfimEdhV6/KEZ58NtvwnK7yye/0TaS/+YtXbboUKJ8kuHfj5ZCrw3R+dl56C3xIfb/0/GuPmCtmnOJ5rmvr2achMutk5nqWjAdfaxx8ddqPDlXVi3efjyMezHgWx4uIuCV/wcAX/JalUkM+13FWxotebi3EXZ7MBUrkoNBA2S0msH4YTqsDVRlgIMKH07iDJkd2CuxMBUUiBH00O3KuwOVPk9GkFy5ibIh7J953bNVCtJmNgvvu8BaB2OW2Zbh9sFpVH2+vIw8zibk2oB/e/BvAP++wL8T+LcfjKdsFDQYTLDu5uH+AeBIHq2lT9xasBgtWEVG7EQMPTA3M0OxuGjQvHJuLGztWCHllQ9EUrLNlYZuQmHieUu3TJ1GBZd4Ha+ALZRnu8NeGoxYPBiJcxxaXYMTweD2YCf6L569W0o+7DDNi0s8x+2leE1D0o5ncdIjY3+ir0GRbWXOa52MdwHIOEpyrz2CXk31BANAYRj+VQuBDBYueWz2kYbKLMcEtZwxTw7S8txBWpaDhPYasKqO6kOgFLxICZmbi4tO+HUp3Gz6LlEuv37t60M/QUHC2tvHlRf4vXHeRy2uBb1aW3r1U3YSZvUR7RoADUQI3hnigD++VMi+tHgYzDOiDCfwt1vvoXIFWxrBmpiCZGKr6AlRchAvzSDCHjtqV0fhCPCb5vlhhsasbBTODnf78XEOBF79YKRg7tY3qEVfwdPjwCJtHpw4fZ8HDpbdRElSFsTzxlIvDDU6JUdGc1WPLDtpRR8YC5L6oHrCnN7izRtdEBhXfkUsqdVxEyt7CkKoLkE904ysXcpJkSVbJyHluU2418a+nkCfdF04cIjbDncqMtGq/XsL/uCWGfhOmdvqz6kfiCY7WTwqJIK/QKO/XgUb4mXYQENJQQdAkUGK5IYIcez2U2Sqf2UEfXeV0Sz0SOkTsJgYWmEjLL5119Q4DyhTaYxb2O39crdPrG7/VRL4y0ghAX+kmFwJj6ZzPHT/NTp/Ckf/6hQg9OxBsyeP08V/K4KElYDOTNd07LyULLO65PkvTkS8G4NnwtnHFJhOqxo33qmnVERWFA+ARTrJOie8sHBkIl0sWZmd8vEdz8vFMW5OacoqC5PuxpSjoFNEZJiZmkhuf21qjv58fiETcR9Z3bBpEHfPCO0i1HxtY1j14980K6dKJSmgEbNLaiW2QVA55jkvnD0Ic2Yqp5b9LtHQg3fFxbW8hCK9FY9kqRyvvg1KB8CSgdQHFztOPplcLj/O5x56UNmdNLcMZETuqqhh5hj3ggu9uiX3JFLu2dRyz44WFlubKP8YYVPkXFCUcHFxvLW2cXqxufX76eEhcG/v9g7X1/Yudg4PP1xcvPXGnr6M+nTWOiC182NzY8u+Ien7yPP8YkH0bSGscCL/3tXmRb4+RIMOMNO7EEU+Kzz9cwG41kliYHH+p8nBBxY9RJIeDjQ93I5bB0YORo0Di8Qp/jhE6mlZZ7pSHcaflIqLx6Ri/q9JxTFIxfGsVByDVMx/XSqO/1wqLmypmP//KBWnVX1xZKG6UMA0K0koRUlCKUoSinVV0YxZweKQxqaoRwlZlBScjB1buFhiYy2fh/qbjnCKkLe6KRWuoiwTXeWLq43Xr/AoEE0fY53fZ4UpewNSLYeW1czk9SK6AqZtpR0LgVzD10P4CCaRo7miwSU7Q9j1urR0IuBcKwurRWj1ghmrvupMQd9nfMG9xcOBYPu3XVThd6e2TbclGLtgrTT/jwDrUoKFowqFC0cUzarNV698a+xH1tgbqEjq5VQND7EipuCfV5sSbBHWQugtiqmZmQVLgELk6SYsuYoAoPJc1Sq0zmT+HeYuHJ3QYvKTMJfFWWKY/zBpoWIkHo65OCDEw8ZcWPFC6Y74EgfpWD8FWx1xgI71x0aIzoFIVbOJE81bHagqjy/x+Go6D6to4iHBA+ASRfVxmAMKOmK2KLx08Rx5ooGZCGAmBMx9F3XSqpju0YRAEomACMigEifhRAOGQyf7OlFdn199B2t5rPoOtv9o9eXev/bFhdLYjB1ioJzvdUNhCaYMZFh5ipxiuhPMUUNXl9bPCH67CLih3xObfqFSNdeePzzgz/IL+ftS/L5QI1rQ1oFTUSCocIwqeHhCRF+efC0soDBhzz6hDHTdU5zO0ScaHyk/f92dyv5T7lQ+Pe1O5f2fulP58bQ7FWCKn/Sn8vVJfyrf/tSfSlI87VBl84nkiyTOsZXPjztd+fC405Xtp52uHD5S6QXd+7nIUc815DgEw+Jx/yzPzDZdKcr+WYoZ/yxojw9b9dmwOIdc8z20uIZGheWh5efcsRL8KkmonFyXOR4Q5B7mErrSfM5rUc8g24PDT7Xu003CJLo9iAaceBL6nVNfSVVc6LNSeaT5SV5n99SNNE+cU/5Q8epumox/r+LNlTSZkhQ6SZGVSNgsx+8hOYm0bZWm7s55Uxd+dW9agV2+qL+v4RQzVVT7NdDYcxDlSQt3mY0rkKFedZvnkQL+kqdvAcnS3wK1IIqbHy1Nf04lDJjGKjJkTsVcDpnnAbNGt3S8tretr5pUiQX2vcCK83DLpJY/q+7xsASvsJtTJ948QMoj1Y0PTaFdt4T9Q4BF1V0TBEG4MrDPTLFsFZgjIe7dT2dW4n7J/wrbCaP/6oEI2w3H/6WzCjzZv5deMQLY+7tREQnLQOGwT3xHNMnkidSE7pDfOEZvd2ZB0XeCbAPcI0xvvL3BsdXb5qQ4uzln9Ffo4W9qNYsJ3KoWDLi9m6UlmUeXZKYOoTegOzW0VNCFQvnZMZ9b+tPAvFuIBuRc2ap2MMi20AwW/SSggwJRmmshRU6j18KYo9kMilAQa9ohaU3eX/IlQ41Em4+iDop2fvsb8uZBo2TMQOsciRlE/ijHOMV4COU4Cinv4ZcpVwnuwuTlkysPgLEtLbxBVPQxcrnUYhE2ptOjaqw6WVhIP0JjRJF2hA4p4G/HTk9pbS5JBOYyUXULq2uJmR6bAYsl8GJytbBEjE46bFzHtgTQo3YGhcVjFXg5yUCGgzqTihfqejAj7MuMYVSIjQjkmu+FGf9rvc1wfcWLVDs296e0N7Hi54j/6/wArigeVP36gFJ/+2NYrfy9GhUVv+3/5regRr64yM+a57RkfS9gsrxRJWO0/DjsVf/xHxX4Lyr+4be9SvVNBDL57SAd529hHZuT3ftPDzL+53j4Y5jeDING0PDMkeU//uMfSwWHRfC7uA/R4egQxvibkaSObDKsrx1ujkoxp7AUjUPqMmpb8eLbCbZ+mgEVth6JlzjTN9uS8H6TA2MwAA5EKzKEtVqaFs7huDg05AKpX8JHzs39KW7Pc93JVr8YH1TMo8vEHkMnosGjdU21HSnsDuhpwz6QkFHGw5YAcia6+oWdnSuiWBfwX4fr09mMBWRkX4R+l+r6Iq6hWoWxoPSmYnVHWZw/RoqyYPVLiA5X9AkKVg/J7nVAGWkbX6JSXVcE6F1fXLzWlawLopvhhM5kArsWv+eS7s6EvST8OZ9OW0n9ifG3d97QeyKj1xIiuRz3K15YDsY2udDGAz6ebI15uIgCV5kvLpLrNe0veHFxPkH9SnXsXngXfhJ86Zu2Ez5ZY9Vn3bCDl0hAHoaFAim9u7g4ESS1FnbrgK24gFXiHz47RlFXB0lIzMMkbLSSN2vadmBh7Sw5h+Wik4y7PK8+CaPf8pOlJaqolb85NnUcn+V/oY4c6iD9RxgqOB4eUH2iaiQtXaITa02W6zTgH5pvwgSNCEMYJYQetgUEACqu1QRwJkcrqdUYxOPZjpVXKGBQeQgt44/fTdEwWuZmjbf5w4OTH/G7F+KKSQhTjpk8WIoraCztMfo0bisc0l1c3LPwY63a5JRrL9wzFdqJzKkENq+9qVA1mg76Uq9hbMRpFWePrb6xnIPVOCzac0Uc2B/8NmxzsY87hTlZ4Q7jQxoKydgsv5C2qy+VuarEwbXmjAVH3HxhpXh7JLvKlBUjTZAWAxCPm6HisjG/Em0q29Je0fMDO17X9dpuxRGIZI6G5MQ0oDsKULbQVLU0ZxKlDGLlmVO+IdNWmjYUWvTyNUOlNlOL4d3gVbmFyGMHD3ggEjhRKb0U0hjEPiq2SZwoqZ+18lIu1Ynirv/xH0QOlSs+pOuzw6sKLchB5R9LiXKss4TEnYiVWl48Gv6Z50b2gYdPWBezyEl2jd7ZaRLOt1BlG8PwEXtr9p2XTJPZZR7+uVE5+z186jYAKxyL53n2++zSyeJeDGB3TqJ1nYD97qTYNxTYN+xLkl6xa6e/wI9sxjl+EjaIHWWHXEg7t+LXcGnHXDGkYjP+xt3N/HqI6r9brnfrW+nwVXu7sRUiSHvlDNVDFCC0hEouP4uQrPs7yd3Kctt8Bp+u2DgWadixyVB87x0sG4g/XdmKpLdv34YNVtDFSqhgpVmrjmPI8Ntk+NDwHxrU3qdxuPz8BbuGnxfLzdVVtjMOV5uvV1caq6be32NLgbq4Sv41cAFpGJ2nWrwWa4U2N5eJTWVoLsPLypZchldF+JUKvyovac0XcuLrKlZkHS90JS9kLc1lXQ98ypafy2X0eVNeAmg2luUFgOXG6it5I6DxWmZ71Xyt8r1YeSUzriy/fCFzvnj+fEVmba40Gy81WMXi8ovmq1eqWUKobHl5dfnVK9X46qvnL9XK3nj9svncqmHl9cpy80VD4kiMhARr5dWrFw1VyYuXL19CRgncyvPnq6srVjUvll83V5+rel68bDagsMGWDKstYnW5CbUZzKkI1ZFXqyvPoTY9gipC3hdYefHqZeN1UzevI2T96i6Bbr9RWqud28HrY9wPmRTxEliNpUJkLxryXDE4mvYakj9tsE6otL5d3qXMwNNBaSgqw6Sav4mygQjRjQzY71V/X6p1fkKXYaGdyeI/O3SI1GjnIUyDxA+ALQwnrGviun4Qo5MizAybiDzQpKQYLwxAEWwEKpqYQhM/mFdFMr8KRi702o2AiyT8yfEwcLGD9x7IyQ5E1PC4hy/WOOu8DaFCPJ5aWcbT1UWkJKA7Om712zzIDb5vIsF/aGWije7Ff1bLSAUQbZz6i5xgMBVeX7kMzdx7OIqog9JE5kt4G0WtAGre67n9/9GE/pcnMF96zlf+S5O31izN2dIcLU3J0gycP+GgTnfC1ZrWhPvRk3dPinBnrB1Rjt+8QQcCO2O9lihSM1sEiPCmmkletZwqcdRKxiATrTTfxsLGQrgXsLkpXXZN0qBLfA8hJ3Ww7i3q8UrUiFucTY4U1lMciN1y83slFhaWsJx1RJe75eXFDYYx+6sNQoiuMqnZQlWg8T165HPikHM85p10wrNbyZfY6XmfJ4lgsoXbL55JT7ST0NRIRilsLSxK13dzkFKLej/udvlQ2qGRCBeH3cV/xq3Gm7ilZC/gDD6jVMK+hM03b/Zak7O9c+jHGv7UhD3PNQhreyQUX6vjTqwMIwX3tAeg7b25VjY1ezDeVPt6eI0F140Bw3o9gT4uhjVFtCv+NF4M//llmojF7TtwXDBEDZ91REQu6K6Q58GNOVTwEHZgpYKecVtrSTXRTjJLVzOrWvhPLvyyS3yAaFUeN1HOwTyIrOFs1IOZgQ8xMgWvV6z18bAniF1aPsw2oo+dnXpbasQSM2I5jljSyhf5QwHtLnLEDQIQchBmoE+5Nc/3nXZxn9Cn6CFuEcu0O7SbwUmOdUPULJ4BvwtiK4qt83Wa+aXlfrmk/4alvghX7YgVyvLCuY34f+DK/q8t5tAz4J/sruklG5I0gzV7FKA5IvN8R26z9TBzCrb8pmi/gn/AcGvmRQwMNG1aehUsm2o2zTK/Wx9pbQqVKvBUWbp55RM60zF+1qDKy5HSN1jT68Chp115+0Tdlq2PQJbm1n0TjImFlJNJSSaLoEXU29vu8es5mi9Wl332k6P7Pzqh3o4vefbMW8pi9snEki89EXuT6NgNdf9JpGzlOoWcackC61c6GjUYKMDLlD2TIpxhyfjjno4/5sI+UqbcRTplP8p+yJatI3QawS5POF4TP/vJz5kOfLIDW7kVWL+yAntXllOctcQSyLA6ksiMNGbZVdVRTTUs0ECGFhAyXInPbmCNeIixKEWh+Z0xN+NaUyQsEWK9esdOii/WqSHah5WMY2IBlwIpbsls2pBvWsAm58I331TtLtHmB1QlmjwA9E8Z9Eh7nuaK+F1pzrfzWdF2BfNb3oj+VbshY5TUcm2XVlbsCbThDONx71xzRiAMyKjwvp/GQn9xgtd+8oA8SEQjZuJJBa8Tpj6zOKtLofk6u4vO8RY9yfw98kJxwgt23XOex3kXixl9kdAvw98lbyMaAVTcgxhTr8xC/N5176w4x70RmIDiDVdMALrP/NSjx+44ZBCnfkdX4TG/2vo5qnr/+yxYq327iGp3f/wxbjQ2GjX63Xwhfl6J4LYIbovg8vY2/qy8FJlXXm6Kn20MNrcpdRnqqonfTfoRmZebryh1oyGC21sYXGk0mhjcfEllt1+L1O3NDQpubovg9vbm+f9d4P7xR63eqL0maNZfUrMNCcUL0ezKtmh2tXH+92f4DgMSA1t3SeKrrVO6HIrjsfUeK3z0pqMidkREMzi6qgOniUe57XWiCsgEqeIL9buGgva0nA/TCpqBvYUWDmVDWs/4AHjjtQJ2hstxwZEjo5M412FCLI/czfMcgXweRKre5Msa4lnJYG61Ut0r3uOQj3oEgtXisDftpTc824DEqtqcGuw5OcdBltVDI42at7hIAXw8qeYhx/loO9NpgXpAK4V53lJse086snHz340St9tPAf6ncO8MlYglLXEfhTyeC3ny74U8fgTyg5MqAgnQJzb046HNx0ozrnnPtOgmnXdaZl9wsbqhTdicF1x07BNnF3s9ZxvC962UqiYU9vp0hkUCkk2qeLcxHo7GeJ5O25ZHt2Au05+e2K+8LOrGqWdNyd+vXNXbn535FvYTWJYFABfvBhSlQ40qN+fj5BXJhLANV72uU3I+592EPKQiDI91IYPaOOefJWOf7suP1F65xgmyglysZ3gFxp8yx4Chi0bkQDJd1jGZWJcsGZ5o13oqN6mbABS6BxCEv+9ZOGJqvJSqIYDEIh3huSMepDg2FvULOhOnNJ4J4Vwzkfwc3YQYzV8uWauFUjFFbkR6bUE3SMQeZfJa5VYk3QBo2IazkPV0E756A7ClaNmpRF4nkJmUDQyvKyRVfQYsvqflFiDqRAJY1CWEbQ9okQOcvQjWFlwRqAW01kroEkXcrtIZjKix8PFUMVhoGni/jg23idZxggiVPRl54lMBdW1dm9ziTTbHONYSh6TVsHKvjkfCl2n3Vp796EwUR3zSu6vwt7M/ht4ff5zbz5FlQ1sW1Ifb76yXzbQqF8p6S8jLR9kGrBJrRbVhSVrNF/6SV/Gm1vRfy20FGeuyCRLUkCxEPFR5O3eEuwvz5mvXPOHsxKklsy2WsLA7Z7n2MMUjk3o6m8Z7GWp1bdMSRmog8a4YGp0iGim0EHIy8pNpQIhjRIQf6HQdNzdbly6Wji8HMa6WFMrwrie1MAOmmAUGzjvEW5fJuuKZ2BhiE429x+vLlZjV0U9d6ddrNgSFhwsLHchopUvSx/MA5Tty7sDkZmB8PIlwxnIyt8hkzlhO3LGUxIF4nPjzhlTY/VgTrDdLY3iTpgRQZy5AnTkAdSyACCFEXh09OiS+6rtBC9iSNdQde6hlCd+/p5VR8Q5xqIZUdJTsN9Ay1InlMPJsInZWSWBkXitIDdcgNZTCDJJPkzBpt/H6jtrq5vY5sfu8sJAwM+QTs/IFImWGWJJ/07QlzNJgd31G2LEk9FxxDTy0vZHhWlpPb4Y825RLJvIktPY5mKC5GROynHjBXJpjisThLZH5Sel1oBzlUG4/TZ2DIJq/iZUgmuPpwxk+CBmf5ecoiUhVeKMVvynse6B5WDbEqGKx4iw+11sJfuc8oVd35DmcExfmMEFBGlDxsk8nKhm2nKm+5RWHiqaYtEMQsBc27NRdtARTKx9qtDGcmzqZaC+f256iZK5VOiKnPHSQ2oYcn+22bhra1dt7+u89SzjhC+ZmopoIdGgjKd9ablElHaoZ5o61MEoqE4AteDgJc+ajAe9dz6ETbt8MtFaCeGHeXcXXyz7xruglzqd8zTeJsp4rZV2BrDCH0V11HCbTWGMOBxXHM4Y4gZAy/Djp63g1g25oDPH2I5lgkwgpRUm9wgvsJTPz7nuizYit04RenOUFPd+E/YA6Y1qQkkjGohJP2c+TEuxehCXKLRnVgk8a9n+5UpqjqhcN4wGdNu3S5SP4oEOqSpTjg1THGFO5TLMuz3bR7cThuIBF1o45QUnajvgcd4s+RPzcTvhP9fsuS8cjDBxmXVQki3AnTcYD2aD4zis9LNUTRW7o46NyxImBkz6wPT/o84BfRTr+ENuvXGVxdy3jEX0cQ3n5uzXsqs+TUTTU3+i5kAIb1Lr1qUqIkC4kg1QO3WN95uQDIEFjziQajOhrR0Smo6gTF7cVQg38HfUj6F8OQgc6Gb1EDx6Vm7ib3uSVO3JcWLlL0wHe6k8OZVH0DtpVARQWzHeW/uCbUd4XLxiacNrr4QiJiH28UpbEsEnKCLe8GKr99G7tESqApHU5kOZTjB2E93SvB/ljNQxyKj3Iv2HfRIhGVnzqMRRBMYriWw+7CMqBH+TvzHDZARoiEXFM1b+zxvszv/wRF4/BKFJVRyH0QYdEX3UGh3pF7IZFw3ZMLkOqTvlJfTdB3UkTJTsqIjSKPWmqDLy+b123+dJzRX1ubjbUah4d9bfi0lXE2HrzFtgq8RZq0ibdipHxQQz0A9rVgQijArnETg4jAd+QP0AJEX9ny8E6rhpa0GyEaKfx8PDlCndmWOnaj9Qdi6qrxDbICyEiKl7yRj+tHWJ77gYm2+bmvmVpwX8h9wa634u6eKY5S8V4JOhVI/YX4jIXkfiavVxc5PNSq8nsCJRQlBBqkydQmyBqjceLHMHhPowubO5sptkc39+CFLyFvbhIFAHsqPSBo+roiDpmCnd8WaTD+Fnn3D7WyLXTA9Mj6lCtaZQApRtT0XCYCgeFtZ8DpdqDpT3NavKisVIFwuJZ64HQWw7X8qwzEzfO4pk4enOgmIkmSUVEDuIcX1CsXSW3o77S0i2UjWgWGkJU3xa74n40qp6deVEHH63cgOUVhQomw7WOjDhnZ16/GCTb+LonepCWMcVo63ocTyAOv2ucAphkuTaCRAqlIoSpWPuwEPuGbAz60xdhypDEV+RHZB06hnsM5lJxtUsVSVmz6DLuoC8hzEMBwhUlqpwn/biHLalwLacIgjQaaUDg24aik8Sjj3j/jdFnbYTfKuF4nHCVkOE3JeDQ76LRyyhNIvEIqKSH2Imdn3k7xtPMfH6ZWk+m6rLynrDOrkhOZzgmA3V6F11myXQMZuqmA1jfHSyrKBfJfIgs93rU+XGVoXceyCiiapcmDjNauzkSCoRqki/QyRJxlKYRRzv/BoKISRioEcAm0aqVkp1qYTpsR4M4oWQxNyikEpH5UEk5ftsJa93v47ywk2uRiNK5igy9qeksMmiSbxNTPQVU0u94sjLUlU9kUCV/VpRHqTeG9GgOH9B1IfEtJrpOgqmlXKPuwMS6Q+OBROdNTWqtb5Lnlf4dX73qPFJ2ohJptmNFa93JF5zt+A1YmtR+mjQx3U2ymPAyB3lxs+mRIkr0mPACKPwER5byiHAtlxGUBVEEAUUrKmyRy4CMGbaISsV3jUvyFMH92EoaxHYSsbomkXx9UzLau+F0EBwMzWsVVRupODvjaT/u/BjyPLdzFjoSs47wCgPxgJCHAjVinmXiMM15rUlJ8pPiU1oVhFEIJopwjYsIzKKRuktiEGTSMbSkSAIEZnrkDAlFlIYEuXCFa/y28Gwx6CrRnpR4pvSDIzMyvupbaHPiXdw5STYC3TIuFkuygcgNMbWujnKzCZHBzSfjTEbkRGE7MLkSGeFmwefZ3TwUYzIZkcRkG5g4k9HGJOUq4VLJLybDDQUxGWXetWGnT6OEgVokQipxk3fSTO1HlKFrYlQmmxQoj0sJ5MIFd1a9reuYmrW3k0+30kzRce5w62h7qE1ed5jHwxj9m63H3ZhyUah2iUEr+TgaXnErPaOwzFDkH2HiDERykddGOG0EozBZS0BeveSw3EHypBaZICXvQD0CM5NaX35Twm6Xp1dZNOrLgrEVpgxoMsZRDhOL7KQ2sCMoCzmxE68GYg4K1rgIiwxZAQvvV0rMClp3b3WKWXYp0Vl1TfrXUroofwPrjVluMeQstjdZjGsreRxhKlQj7zqYDCzvMP8CY/UDUikQ/KQQJWqu6qfmqc599uEq/O1/n6F5B9p1wE9zu3L+9+9nf2R/DP8ozv8e6a/JnLhcf3X0V6a/Yv010l+F/gp+s2zbfh9bJ1IfpPkHngT6be97NInEYXEgRCnkk4U49TfhMw+EisolXgjj3UpUsfJXPh3vVSJ8TiXnnTHe6qqgH+NoTN4U/+Z7gWUhuT5U7t8v8tItrh+O8STZcWVXnJTQIC/o4zhh+4i69TTLeD5KyVr4U64O7KQHiUdSUcFn69TatllbIHwAHCZCv7uflCD8YJ3vk7EbmZlRg9wYkvlaw4cWg9JbThEoKcrOCoJeoZ1jSBMA9GtBx3uxUCfCr62RnA3KcwWTsKEj6Ig/ptMA0nLSl4w3ZgV0S8VIx+Qy0DZG9OPQCYtMcf16zLNbobxOs7Ukqf6NenAmTpr+tpQNkbq4v/Q37/yMmpQNnv8NoWm0uFH8c2WGnoTxmbCSRM0qjCZ5PxqQZhQ/tFGBhVw8LcrLOt+G77cAjwnLJR5zF3EzQYXHvIzHXOAxF3icki+8OeALyFkJ3sXFI+iKr166EkYluNMAPiMvIA39/JGW15pVGaHi9wIcRpFdaynovGVhIa4PoGw8SiCJDLiE0Ps9d1xafLNVKt9zbQlJap0WZrYdUxTGpqiSaANhKolXrKuHiT6o2Ncu/GBGfM+qPjsUhw2HCSvCfZpPamp96JGu3fd9g8zCRiZOtZKBwkXkGuMby03b8qr84CSOikMpybycMdATUJ2epWpKpsONBDZkqWyQIWVlqSI30zFIhW5GK66cfT/Fh4rTm+FszNys+8BJz8bMzfppVA7PzbaFzLMXACoWEn205JP7KHmFG1LQiVjoXY6LIkUdYmGMlGRAEqQMaZL20YZjIdHEayzmF5rkdKvslSw2D3M73oLd+by80gSq1WZzxq0g0fjeMNROjMUG4Tgrlvbyyh7kqTT5/ITcLshQhB3SDAJQ94a+mho/IjzGnG9N9CNC+SXP4wl6viiZL2FlDbREkg1H3S7JNcq0verhvuwxqORHpHOJ0/onMkr7FAKVUJLHchcT+yx7Ny7tZu97wi/wu7EakXdjmjIwy8J9uqConl3Fs05p+xAPoeZ2LtegAD7swzF0xylnsbA4RzPjGD36FOdAJTn8kLFxS9zoimvCcWMSNlvJm7CLGeNaIrJ24KOVYGYNHtQurDoL1nyTtJu1RJn2mGXiy9g2wvvBb9GiRlbhKQsb7AbeySCHkSJK3L8GCMgenTb15grapYQiqdlQcWxl+Q0djlPOdhFYN4a2x9oybMGK3jVPK9s2TNdk8m1eBq5qYwv0wRPndXFTgTy/xEzECK5od5gXYS6iaGtNxPeQjlrEg+UdmUwFwq4ISQdPpyJSUIR6bJccTfsztoATn05Ki7PJOdUBv2HcjqsdP+jAt3H3gfXH+aaY8B8zks55N6x21L6m4+Sp8GxC0JEeHZTBAexj7e1xsNtjsnoEK7qKhGv0dDSCBmSiuhtwW+WWheP9SNQtwXLdHMX5DATGq1MZoS30vBXX3fra5YiqORuxuwJLm/RA5VEtdi+hj+wx5G2PfWFDaPU7KL1E9iiopXLtmRgbWOGaYn18CbtBGVo7DW0MnhgMAniEfupzB9lTFqMomtPqVQTbY7r9QGfVcXhP3f0IhMeDBrukdnL4Eu2SSWaDFfEA3bgMRqZa28JOJz884GvD8hFiNkNhDQDkNBvn9D1lH8YhTMMvsc++R+FtFeD8ErP7ScxvIGeXF1GcQDaffbvCfN9hSd7M2UHODiP2bSwKfI/YPQhDnA+/QBnx9RWhJ1+dX/QXxgG6+Bf5S3mKLPnAb7EcqufFZ5TIjwG0L75gtoJIin7HM3IdF3zKmdicCWH4gQjLAFvQMTG95+PJyWLujqGf2XQg9z1iX43UhaaAqfwOnIxBqb4pw31qQN2ebd3TiWIBLuomdxWtPg8jIDf8U2gZBd0A0ebntaubOYIlMF07jNQnDIeO/2riv/oBJGziTd/DKCxw4HwD39en4Ptahu8rVIWb9uceUsG3sc/eX4nB/zZm93ivgF5s6PGMiGWXiOX9FRS4MjTiDg7mO84x32fI9+zKEJ822MCFHwYVio1yKBdTCD7HXT0aWMtHau0Z1FI0TC14SnOZRll3E11Tzumsk0F12C0luQ8nEtHAG9hiAQvB0GqRfGAiQM8IS0NIjhvh/VbeCTz4E42AHULNC7+MssCreGyP94rAWwMW7wY/PfZpJIPAybJjVKDI8LHQqyCTLGOIg2abPEGnYmg17bHPMSQennhsnw/HgfKpigGPrY1GeSnqpJOl+Cib+N1LgX1n++ndxywe0m0tnHjep2FMb2Chw39vyhLoz6vAw1MhcjTpsdeBdxpdeqy5DNXjM+HwuQL9JR6bNV9A/eIgrvlStA+NQQAqWUswFsp/jIDEPbbcCPAGVy4gWX5pkLayTOhaWcG8V8jms5VV8S3QsPIcW+zCB7S3k+IRyspLB7MrryzMrrx20bracJC6CrUBg8HxVGD1hcFvE/u43cQPgGR7GT8AjO0V/IAy26v4AQW2n+MHALD9Aj+g6e2X+AHNbr9CVEF726/xo4kVNvCLqsa6l7HuJla+CpUfjAcCH02Eyh6q5WVIxlc5YFgiGBZAZ+CJldNjEtGBJ9dXpAkgTk8uqDD4OCiBpxZdz7pINW5YHGR5Y9WO+8sLcns2Cr2WAssYNfBOXXthAblgx4b9U27uEYzFlb+sYdYLfD/Qnrd0UA+R2qUmVIxhvGmJv8rbj0u0+rLp1GyVcm2FMsC85LmHrDAxzkwytZJ+A2GCTiv+hmSUIRfaD1t1dJFqEAYrbjzy2omED0uhQ08HLLQEZKivhiUtSTuCsfn1/TDjI5DTZFliD+btkIq5f4RjmEED4QC5Agn1n5Z7rOu631jZTT/u9P8aCH+5EVh1c1qUM3TH0DB7kzwr20XGh05P4FfopnEvwTbHGXFXeGpAj/19tCLjhPgX/EVupbhBrg7KiUpRi0r8FKyZgyi7FbsRLf4dACO1aLlIx50+8XRCHjnV4Q6eLcDupiPmjPZcqpgz4NB8j7CQQvN9a2saSWHmF3fULlXSh0oGFiq7PCmiuXyNSFF7qMzn3fQ5TzatpFpRt+KQNCjr10er/OpU+dWu8uucKp0Mc9J1i9+It4WPfUE9PhtRjwfQ41sLbUN+I1DbYGnSlZ+Q+4py30Luy0Z49hp2PNivYJs6Z9d5uDdcXPTI76U496KFE6GRqvv9SMidlE/pXfalVK7CwAdCPq2VsbMJ7cGkIRo6hf281MLi4sJ+BCIKZaguXOcPD/vAU756g3+bzbfhPnDxvB/injrsO9rRuD/PI5KccOoS4GVDm0txNQXRp4N0CKSnrHY1pDKhh5zl1zqTmPHSkAnZ3K7RCvagw3k61jcPF8qeuBZsx0BJv3R2IgQXNuvhHlFusXvabbl4RixxkHHSmIuMjhlatDFQvUxQbVrum8YArYH4RsiyfBsBEQ8Tse8blfiuOADR3eAEHm1JvL+4OOzLVwnKPskIfssLR0NbW29qNS8pKUuQPzwAbSwuyjHHPRB1Yqgp289DpT8jnDBYkolmS6gYRSBGejYcZQTQTRZelwsYOuQXyxt+yfUNDQ5VBjQ5FBmEySOpp4Bo34gvZd+u0YqRtO0LBKuEedu2yjKdgfaRAUW/trwu9lfkKn6k8l0LMS7zRwHJaAu4MTKZwNub6NBI/aKIjt+eCtSodg/j+AAlbfgYAOvWxw9hV4pfqEzFg1r8ptNt/MiB1+5QxoIn4udnQb+ylXFG0Tec/4Bfi8GL7Cey1FNawket+Xav6Gq+z6jBgaHbQgYH59i5MKPVSnDrpnLf3HE4TNr7+L9wr5X4wX4SniXnwWESJoyH1xma5KbDDdoQPZ81tIcGUsDhkeyHcdXkYF5HfhClYhvo8QorFwqVAKKUx5SAT33h2GFTrL/sICpphE+J8f06AIhtjep7S6NKnjaQ4I7wBMefdYGT9fXkE1NOdkYzoaSb7huFOlW8k9uh9RyWq6HAsrUl0Dnfei7ydPrhfJV91evGE/Ry23evwOsa0TKInAgAhqEldTmtX5cZ7CvM0508XM+Fme0OnQIA6Dt4kWhh7tb08PD6zfw9y3oJoA9M/yYqOjYjWqc7fdq/EELFpqhx7fV9HCY5Yrab/74WCGzWBjEu9PSLizBsB5GvBu7svAWkyKE2VjA6avfZt171tMG4fch209COuMTz4LALxUOQDxBqBnBgDWEMX/Wo+DPQUXmuKknpdjvWYt1ibZj3atR5EsTLGuTBkth6TYD2SEVOoo/WBbdGifroUM7KbQ/ERimzc7pVottS0YuG7YmRNheyA1ggA/jmbyRF/YavoRTiFJvuTRHtv+eK5OThUZw7LwDp2OCiYbm4jTSs74UXanP/2nrJxljEi244lwK4ncrdY1B51ztWjgQA0UgjLHEihLcAdepNj6I5GxIyD3Scgw7W9eF4os728zCG5Y6msXJHwlkOSFrAPpHhO15t05VNZw9S+n3lurBFK7d1h8ov3DtVs2tTt2+fIFNVLTyi0ncClN+lmXtXeGxcLDlnXepsrHiDQ5+8DdWN+HssCyuvMK8LeK2YQivJtAgE3KYNqOxEvD6G7gKcCHV8OnVtLyAo378l+B2PHoO+S5NAdG0iTHT/UtgvRpLhy0IzQO/ibqSow2rQD7yOcNKVaw2hDOM9WgwNMLe6N6oM4GBzrD6aiHe7my/wOr+jDRnR2NIzReoCtnMn9ZFobTQR8xt5rvREDqnSbBnvl3T5Va3VfgufW80LPHfACVXfOd3f2yXf/XJ/aRnv5LGayVy8kTYsPgt9qdJn1PsZ75k3IeQZbSxPwmMfWVynpHiiRriaK0M2nXXGuZf/64yMcjWiHY8Y9QK9RGXrGwSr5UQBz+WEgdlywopl83zpwkTzRphLdnqrG5OmldLRH4RgUH5I0e5x2RCFuLn7LDuQFiZH8tj7k2R2vrpWMLd991JVXBd0QU8SxrrKwFkJXrdjiHBIq/UVhEtoU660B2gDA8MmrgmFBwkz25ows4ZuAAnDwCV+Ownvydg6SOpuLgZsuB25NexO0Vyjmrito3XUo5SuTOV81EueqKrIOce9MJUlm7ekbgJMfB6KlUuliCCjbVwW0d8iVhewQlMfcL+4CBvXp4gRPmAoEmgc2NyjHPlcARPxuYnhc7nF58ocComSz8VhK/G53OJzEzyfUKfeB4lv+3Hbju0d4H6qrUjOSi55zsvupFh85on7et5ScR56N/KbY8J+eidiB/gBUUTGx4RoeZSDIwqte/qCIvRKf6Pq3mc6b6zuLj5eQl9vtMsJYnq0jCBAQJ1+lzIbiybMa+OQ3wSOx0Mnu6n/kQKzLYgD3KfKbFAOp5DC1SMlCFtT9nuOTtCu+jiMpOi5+hORQF4FtNDuqo2ARKX/nWMkfTNwJsDmZNCj9XQ2Qp4J+k6PyoCY8g5WrJB1QfRDLNno39G+RnGsFCBe6zixogvp04ciWSyMOcXFQVIjlGw/Yrx4iMlXfafikJ/F54bFoqcy+iFA4tmIQ/8lpdjYItyTUlouyed7g+IdOkUzrHK0yr9fTugomvrZL6UIoLb66h4geweyZnSZZkUlGv8ke73KJQek8NP06irhFVEV/nxMolv1eypuZVRIvoC/aY4vveuzRfgeQd5xUelm0RX9wcvm4hcQIL5+xiJ9j0cTTl+HE5kmbp93YRQq3bG8x0wCSYUPRgW+Pc6Hnex2VNBXF/+K101SYLJINS8N/yq0vcNfkAqBbwQuHo/48Je0/PjxaVTBxxnpD6cTXvmJJ2ZdFRQQQUfLDQyU8aL4QttE8XUI7YoP7NVA2CNWSGMGf/FBdXx2h/7gaywjVS3hW4aoXvlNNctvrFt9Yu3yG+vP0ivqGb6pLXFGXmPwL17HzzlHE3b8kY/AJAmGyc9MRTpRrqAOSTjjrtDJhQSLvnEo6UPgZIJ3wVVTOR1QQjIRD+UiuG8iukdQIV28fdG79S4XO5knitLiZqlgh2LD2iJthvD1+S4GsUm76dwdKy404/iMMBlMOhKlFT9znGjbQNpKYtc4ksoKo7IZ/25iv57JWPWIIj12r6x5FhxzHlT0iUd3gnlKavOOukpVb/QYdrot/WPpJD9QMcABUHeBC6ElUBl5xvkIWXABoZahhX7HoANoqAM1zsGHTKlzoBUXFXZK1YP4CNaHYusnXimmDcx4KUJPfGnChVt59BPC8iH64P8EcjP7gl5l9PB/RnNCJaoU4SdUE0IOzIkW0y3FyeRDNF/Gv0tLws+7NH5+JCF/LKEjE/DFdSuNGTcnuX6oXdhwJsphe6srVQrtnCTZMA+q8qtLP6wr44EFVYXCfCp9x5+COEve/i2R9tnYKE8BnE8JwlMw/cnNZ2w+E0DiAxpEkv968RkWltfkwvbZovLYXGJumpVbnAUJ+zh2nLt8ix25m3Lq1/1wvpbyn/aNr3vZeNxSD6hoIFuWY5lE57McBuCpRMc8gNXRTp3lI/HSRT06sOlYfXeqdTL6rIOuk9FN8jKZunasiyqWMql+MYnz+DKGFex2sQlMExo0k9V3BwBS9pvmDThR50q72rGN9tHxkuXCKDee8rFh5zUEdMGDyiFlud/GUAhUGkhNOl5uIRSF8YN+YAO6I85sDOY/KpeBz0HiGEsD82QMs46ngszNy/XPfd/SEWg0c41mtAu2Ema6a/XVHLBdJ47L3s2GITRpq3uF75rhJ+zMyuZXPlEvjFFozMSnaFN868ZCYxNMX/LheRJhqY/CdBPPL/EJDFFPDy2XhuORqrdnZZUzlTy4oy20MJqlpwaGnZjnoozzrq2IGtPwHY35mLt5RFWmBbxcpwyYYR8uMs63k+hK1tyjz4ZqGBhjZP2s4oaKRYFEPe+BAU35oUsLu3xmjuM+Zo2IyfuhfDPNWBcv0LuwC6ivPRYe7eVzj/bTwEP34oqZ4/pRB0nY1ThEuJAM8LID0gArCD0gfzojWdghdaOrUBe+LGKwZlxsIQOfgjah2A/QsNkd6HKlahxid4wadG3JHhVfZy7E7+KL541m82VzmcXOYFkBSElkZCLDktDFL4Rd6incsJUuKdANQ7pDjnaIprFN0dQji8CVrlycft4TgAGXgAqNs+D9IdIOThFXau6qL4gTk0/6XGExzTdcSHriW89FK8CsRzxu+uoJHoHdUKJ3tfULFGYjnZ7AEWjnTCbIeVUe42Lu5C3hXEbaiJZRDjpVC5pIiWgCFzSbUjSUkkg0rDLTPHDLC0UJ/hI5zXSlRE6lXjnEJB/nDuV1S/xwiKn4NxGT84RTkc17IakhLrgVtt2H4VFpGYO9ths25Vvo1smR9XJxN9y5xFuJzLxD7reXX4jDPPSIo87I+jzqqm/0h+u1l18Gz0XV5sKrfGVm29h1wBq30oT68fCHOStZuK3HusPExcfKJ1XwfVyVAw4g0TUZ9ajq+6AbvmLAxCw7z9b8cJrE5QebfFguN/pjtlHrwTsquzIf3KSYLbrplnw9v+SmU9B+0/4JacjXL88+eybySeR+BQQ0G86F0QovIPK1G/cN8zXduM8Yt+rGfcC4F0xegFZnUd1wGXoTaiZppaH5wraHfz0ty6H/K1+W1wcXiI+uQgd39zN5FRoNITRerJOO9/HMdk3ofcnwBSry25ioZ8As1lz7O7XLvGCF5s3nFluz7ENwCF9Z/HzDnKDY26wDa7lVqmVVrVpAvOpJXxMTgPwn9nvNzCJQdhv3HfVazu6wlwb6IE6Emdy9N1SFwiRkMBJIFupk2HKciKm8gXMn9GGfYZj3o5HhTztDc0L+FFlK1uauj0cN1rtx+ByNvF4SB1Xogrg0CBIcvckTACHQG7wb+HTBlN1ZSg6uzrueLkPg7yQoPq+j+KwcqV9HEEhJrO4N8cVJac11MQyb7McQ3ZMbR8eylzvJ2ToJkNcR0988wzoLrNAa4g0tw6XDs94QM14Mmf7+YX13Ymy8kBLexbBVQLIUwleWUeZJ/FqzlSyG/6w237yBmREvhU0pjIsM3F8i+5iVxhu91Oe1/H89b3XCarKIxbpQh/04E6xxydu3YZflNfiDvX7zxlT2EENDDwkiorNUCPWHyNOxkqwZsUscsBJ2jNhGqGv6jPDRhMlhsb2fc3NUj8fQWcsHTAJia7X15Fxg+FyP1rz4li7ciUGujUNAaq3WG54L7MrCAOnc+Iv58ZYRh+SjfmUIoTJej7vYGK+ja6Nekt7QwAqLN8npcPl7gLedWSqJrj/E0LNcr5zPm69tD48969VelWUVVp3mmyi7ovOMXJ+P6Ziz5rmeXW50WxzgBh6eXXu0EsvHjXaiKkxpfMrYB3Ash822QZwtMZj74CUGShlCcnzoCZc/vGQPi7d60KQbR0l65QUXRdWT2nh6pgiDqC3HkLVVe3EvM0791JsbFOCDS7wtgCVRD10uOEHnMzJrNEbvEoHxGD0e2y6joYrx+Cw+L9Ug1hXRgtRZlmAbqFdCyH+X/CanL24h9hiQwho3F9mFbnimEWH7ihmksp5q/NqD4Uqkw4fEdVmRaJcVSdllRSKHTTj8QL/SdoelJ4lSW3YW46CiDNC7PwFI7D4++lk2vJp1v18ymc6df+2H3IqTr7igaazt3Vh5IE+A4x+Rie3ObVcckHyOsiFKWmG40Hh42B5UnZJAme1qUh+lI5y92hU2dk+c95hhYe4oobYyHYqbR6oc5hD6eipgMmwNu7N58NBJZaMjJuOJG2LoDClcH6JPFHzkAu8DM/7wgKsCDp3lRlobP21Zmqct3lJ84Raee19JnvC5fOewqV5VDGgdsp9QqgC/LjJRWkOlKXYUmoEqlZ9pY3aiH3qDFWiLG+MvVLUfaAcPBC4thfieVMt6no3FmBXfskOLcKEIXH6JsgnG4btt8sq51D2EC+gEHC0JswGQCX1LzxT+w8NVKm1XylKej27MF2J8X3OR88VFWmeZAEtc89f+6UvSXlgYFq3L+0RivCt4qoWi5JpipfkSVlhY+jm9m6ckK/Gg3X9bC+I9O3xsg3O2FqtXH9GKfStlW6nekAogKfTQjn+3eHuAD0frJd4xQhMm7nO8F8RV/55KW7ubpVbN9XOVaWy/VimJ/EiLvPBVBEfieeF6NBolt5AIu5HaKR0Rd4ce9Uu16gK+8P5cGqvXiWnnLTrhXVWU/Sy329+HJbvmfqy4ta1qAWJF/UKKtcLPTjkitHQt74aC8XEzFB0lGLMjqNGaoryjmhK8i3lqcVbDj1PA1nks0iUS7upo8CXbR3X2XDxXMi9RVjanCMlssS9W+0KvI9b8HnaMsCUYVQkRMWS5pbXXKmi/lbtdRU8gtt6jJZ4OcY6OpOq2hacGtqqjVdAebp1p3IvHlDuQNddq+TXY49fMI4ZrsMVDI5O6PIhHnvNs7RxWQ318wibOWcjE9GRijlgYjKE6xQAcoBEsWoYIyLUs3AknNHemer7nUvXffEVzHrsnK+nqx9XcWb3ahFndNdB1wq4FXcdA13Gh6wqwBEiifYNMbFrhuavGJ29pT9GQs9V1XgBF8PDRU0vYR/PEHKBROktz6KeHvGt6l8tCXR05hcL221LWgyAlpyOoeuyQYb0D00KHfqpS/b8o3v6lh3P9Du5UCus6h3gpWOQwfVBj0jA050zAx4bm1UvhQRy75GoKuw4RT0Jx1tJ6z6vuUYlkkbryNRL0rmRWfFrB8BmeEB2oWDQE4GwZrZuiI0MUT8LbdTcZN4QPoDyVLs3XbQB7Y4KwNwYQc03OU7O0w0IBy7c4FeViHB5CMRDWapIprsUYaKt57o45WoGr2euuuNbOLtZsY/1OT+vhRJx1r/OM5CrYFgq1J7CirOp3zoJt4Mo3Lk65dQh02K9+xjlokuPMOQX+rLatxUWCgh0KYdN6W9wxRi9tQeL92vuO0gQzp/dBzLDH4lgRu2Y9nFI8QiCNV0AgkJWX9dFSA90o6Z6nrFADKuaeoFGo4fehOMbnrguug4ayQ1lDcyp5AT/hGT3FVoore7ApUFEjTwnz+GoYoekkFsH3kpqs7CPLFBdLirpQNZ22xKEfFg2tNnhd1oa8KDnm24o6SOCqGvOcX9WfQj3suBEO6+OheLf3IgdJqztO+EaUJOj9m31ykg/QT33yMYtTdH/J+jB0SkEbfEVfBDk+JiiYO1gcUGaVIWfU50QtyzgYTR516QmKwL7KFne0BwGiFole1OYd0J27SL9CjIdJsrzljzNSih2RWKsxExAOsY4b1U8N5rxcaFoSeCWckR82aW2ddMIG+4oKud/LTjSvza0byO0qECHi7LylCmdp1cfyaCRdjPPAk8urx4RKUOg+WNHnlkcknAWGHJTqOeksLaGGGbJW9/tsv++8vLzfF57QajVomvq8F+lV/neLwfo9qQtY8FglQW/u6F9BOE0D4Fuq+27PtRXBjJfDKkCPXg6rzsusDXthOEO7h8cwQI0BYeSp1Pe6uMg1LnKcGsZEAdFgDei8XikZP+RPvdUFHcBnKXxS39rt0jUgXW3Gv9PzVFirADfM2VPVKa9uwHuJK4v9cKd+0oJ/ZlYTkm4H4Xe0zlYXMWz1NC/bkAkCcB8vleTINvs696ZcqmlcP8ZKvrDuj3b0svUxVpt1WfBpF8EzWJjwEZbuBiw2Fr0lcq/QctFW9WPMTFV+QBGcSltbxkFft4sgtKzbZ9aJori8E/RLWwrDyoJCvlmZGEXjCzTeGXdMxMtViIgyo61cXcYcWXjvkpd/P7VWouPyFXQx+ExcAdR0JY8LNUVYzlC0Tl1qM9DlXHyOL5EZH1XS3gefbiThRs7p9SETChRkkGXLUhNpmjaX0YmyhaZLAyL9HuOVHEGibIcUBfMO51QT1qGpA4h4MJl242eFxWI0Gw1YAPI+T5ITYWhK6yzPSrv16it8wIY8D+o5pKd+ef7Kx9M0SCarkt54K583w3P1XtnUmrt/rTYzsXM1saE24BaldvjfPBRTkcATwMw7+8p/QRopdS+LXqyNh7Hx1gO83cUoukXdrPSUiVu+qC0uLxPxHMPPeGbpaFcBjBjAAGIUk4rPbHVyX+HJfKZs9TkeA4gJzRMNrLzBZKtC+tZF2XeJmEPRLNWsyBveX9QlqMg2Js0yo+U/ilRzR9FS2GRfEs2vVr/gcZrPYD5+ASgcpvVrpFYucrE4IlsxwTGQLk/OU14yvMvlgieHT59eQ5unbb3MLD/3yV+SvHGqjaz0sZa8MuozoxcTy8uZGC55o/bca8vxqwAZ9tHGPa/ce0vuTdY6PlpQ9VjF85e8KdCcc1FovV/yzPmdbYgREBg8CL8bE5PWgTavsWLDs41z9l0x0Xjf8UAsXxv2bh/rmhdcz7ikAdnQApKAgG2EG0oob9l+F8zeUv1uLIY31DWH1ndd0XdEgNqjNujAlaLYdz9QQWGY9N1n36GbpeY2rGEVsCt1b3g0FEB+1+aFurSgx++mbAezsgNTWpY5YEW7itg1Mu+BghbiDyRsB282ENkSuS9eNhuvXr14AY0HB0BD8xLs6GZj9dXzlxhrXQ5GxJm7sxYAZmbM1OvbXZqILrF3up4NbTW7gYoI6MeLdnUj/JZXDwA1aNcHmdmGUqkg8gJIz6uIGTfesk4wzZBKowCkWG/NY0QYfmrviWxymuqjmHcQhS7Egg3D1m44phhh2C30nfGuc+DfNVtZt7Bn8QdYKJNql56N3VCKaNkRAYHPYO2Y7RZ2t8iqogcCNFVC2FsYNM0tb9By/AvYX8VPo/t2DCgg+cCNcTO7lhOU243CDr//lZHVg/HwgOvsI/3ZU/1h3eKJLr2kZmOrWcz/V2nqi5qNhsfZCK3Duo0F+Yi3SdOv/llx8tDO19ACpXve0oaCrQRAy21Nk9mG0TYKPmKjbO/0UzEQB0g9guKgaqSejTnUc0DUc4Br04Fp/0Ccge0HGtz3iKVHYJV2UTov0DtUpxA3FS/RbvgPD8/gr8EADI2pkomDisdwMMNjqGqwFdi9EXzSSm7Yc++rnSvOxBIM+XLxOZ27TVzPLCIbZk9Av4PKO7uE7cCmhgOXGg7mUMPBLDXoxUPIKWK1BOpAIEotaUo4KFPCweOUQBbzuHi1zQoZaCdHZpitjMfzMn6waCupAhkYXMlRPqBRPvAf6ZmZuUJutPr26AiLNmCMoT2BjoO5Yyzy0SiLnLn4nD/K684aYuB4Z4/mO3c0380ZzXezo4mcARp7IS5oqk2QznE8qbGW25ge0HflAX336ICqFt7J8SIEHwQUVI2uUaOiRXeUf6X0cbm0Hvp3OPSwgDsIlKP/jkb/nf8oJvZ0tTME8O5RAlAtAQlAuxKD7+bSgMoKVLDBZOZcfM8ng6wws12xhl2h4Gbr8jeHFYCtwR/g2vblGU1utvu14s2BPmhDD/73ubRff7sGDBuUyAusQ5hyU1AzjqQYLEIkXch0cLZWnEsa39PaaqjOsFnwvV/Io7Yp8GI5/Nsr5jBknKpErrgDdTHsgI89ksMNfdwrgnUNCYQwdY8g3S9wPNcw80HJrVosqz2Adr8iT4vVdsn/VG4gJgZ9Bi+QAddh1Utm4bCKYOZzwcwdMHMCMzd2lCVA6AUaaCipYp4ZEAD769gOZjeA7NsnHYuL+xY+zd0+aTfPYUDtebNWBCJCoHp/bh/2nT7sUx/2TR9oHGc1798tM1noIASnM4g3lHxlUTKukXPF6ubzpnV56xcIne0hD42HGlXfJvqFPXQuMuSEVjvTX6X+77Gi/j35SLycAN/jX54A3+M/mQDf43mj8j22RwXyrGOcmQCyi/8C6T+OnT0xB6y+wrc7Df7KbP21afAkOGY+PAZUaYmZMyX2ylNiz5oS/1J/HpkS7y+dKQHBp6bEe3dKPMVFwZfyz/MJv013AAEoW7uyotaq/2WWTLq60uIp+qbecM56NzQTJg65lRDLhPQq84jD+5cQwj4qRALfY0uWFrzvDGP9PXynbTX08fp/i6D7JHAkeLwjXm0+bEL/I6e6MOwSMZamZ2qGrV19R9JeWazXwp+Q7kutgQT47i+I2XPg1ZwFqkkUqyWH+c+H2BrMVRDvHhPBwxkR3M3sytvhrAj+6Fi4EvcjQyGU9r8yHu/Kgr5b4yyuZmQKa9ZqoUKtwRa7husuSRpykuA30xT7xHNZzecN80bWAYyB0J1C6Su35T+VTCSkfy6ayIyPyyb/dVESNYAkMRrllaKrF+3q/LGfMxfEGEOGb0+NIiyzMH5+EDtitGFc1KKLpw6kaJfLnTW0agCUPh7WbXH4kItlL1f6/NxR6Ofitsg63VZafo18gzVJda3r6vLSO9hXDOjrhX6nT74AOEzC9X4Vn+3Z69NXE/oWO/7Qso6wA7BvOd7jc+jC53fZfJVsRfAFdXFFXxw+J9FsHL5GzLvBvTxEUhmFxYm45a9sKnJpz9Jxw5a6uSNPEcrXdx2oyd1mlT/eE/090wtpAGRiyl1ChDvpsnt4pocfZdgtDdsgNsejZHITFAwol14ConMpgRpVgQgZKx/LS2Lseq5zcPH4A4cYnygwq1+LxWVhKqee09RePGSpXLExXFr7BFX5JXx6MOnag9vOPPD2KzlZYOTkQlxBQ1ML2zeGdOBW8orxe2Q9S4nHS84IGz4Nk1Qv4sXV5uvVxqq0C1QYkdfn8EpVoUCTl8wfrPuFMTukxzft05hOx72qbwMxY7xrW94CAu28yNYnvkKuGNlQP3gYxjOEFmuuqptKS0VBJeLKM5FKTKbzilzQLSh9PUozrY52yBJ2wm6AZrbCHQtT3kanN7Ax8qpu3S3CTREu9kKKbcX2hEqemFB5eQJ11IxJZmdMUtff0/J9a+U6p6Ar4A7mNL89g9QQJ6yAnpWLSWe8acdZBd9F4sA27Sg7i9+FEnTBETQLi2K+RMa0VdSmLKbtaSlWW2UXXR58NPEs9QrtSgWG9MRE22bLDNdNNR581sIJOw7XqOMt8SM3H4WoTngcSFc8xxC7JhQ0DnXvGdLeC/cc0p5AuAws5O6iEbVqYW9mKI6DiWqxXDxc84kTca3DvwACNGG1uiCs74XQLdEVtASX8+Q6FKbbizXl+WWFrYfXeBZN8Yi29Xb1sFi8Rp79Oqgm8su/vxaeh66Ri8Gu4vjhJul2nsAWk7FB83DizMPJn85DvwWMMr3tAzsX8F/hpHUNs4icQQNBq6t0V4V1eaeJ1iaQ/6rQ1SsvXyXHU1/CTDJ37wv2hV0bE3VMca91rwSZtOoM1cdi7cXz5ysvH5rLr0SexmzL1+HcttulhqFyyCrGUDX7Rb4lYsElbx4FOCca0ykOoMIcu3asceVZ6ypbt8Ovmq+XQc5Gg3e1XkBIu57SkeHZ9XmwLo7cr315a2ZdjuT1r42kBZplcbunj/uPw71wna2FX/xAk8o66z6E1zRd5R0BNrEtdGentkkXlzLWYQpPwnVRdt2awuVlAtqauxBM5bqOF//2jIiPcDJrWoVrLJ+dqbOt7LGOpZtSDUo3Oz47gW21q2/Sd2d8aXyxbwL0Z26UPyXFvMaXN2D+KMsPyxKl7+7Uethph1VLCVmdWyQhbcDpVVqlM0WVKYAVoz9MLuxnthN9qaiTwWfDMv77XXlfCT8O2Va1k+FVjK3qtnD1NQyLB04YJo7DctiPNoOU/eNQ5t9OtMGf5eAc80E1ncy6YrQNgBxBWQHdZ66h65avOt3G9k1es6BvVVPOUq7qXGwiDJ/p7lV3GFrclTpfNsDpB75nLxSo1767eAPIMqUgYaLU5PwGSyXfCRfg2g9Zu/rrtfjBVWy/LoChR4D4zOdg/hkZ+B9Buqy8EDULTB9BRQL9KS9RRKovOEi8W17ChDGdvISyYqz9HUzaJEv3HmPrSiCL9ZicpNXYf3j4iT++eVFDXzhU7bwmAci5tlLH50+j5DDr8ky8yZDdRFk39+xhnZsTJ84vZtX28Am/ijq3tb9QtEiveNEHsV+oOqryNskibEuCuZ/TW1LqaKZBhpUcjKIIV/fL0mERD8d8Km9lFnKdJTU21/pZd8xkPYb4dYRrp8VDfUNWV6WBUHekSGqRyiP7iI44HfRPcSNX+A+KWZNXLXsZ3gb+QG8QxfS3n0H2bXRv8U1qFdYbtpXfmFeVoZ02k1tu2rZtg45eg2dfgVBkLC7Qm/dnYmO5HouLduLRBrxOD3/Mow1z7o+OOq6zIqUVgVUOO44S/BxHUnzWkRTXvt126juh7ZPQLa8sGbrB945EWyeMqwn6nRHBD3StLtzGJ1EILt9nX8jItGPx9rQaYVPvI3l9+YNRDH8QwoWa6oARGskuZgrVeIrxc4aLz1zNaZCxr+rMgONdscfvKdF9KoB+QNfFbbeV1lND0H7RUkb7wCoDdNRlCYQvQBJ0tfz8TZjPANUUF+BytA4VfZp177VgMez/L3dv3t22kTyK/v8+hcXjwws8txWSkmUbDIaHknfLS2gnUaLx8aUASIINkhIBUnYkzmd/VdVbdQOUZWdm7u/dnFjE0ui1urr2SjyWJyEq4vHxcZaoT5NNCtau+WHMRT3PzB2uINnJb1ivR/NMGxSGK1yNj0ChxZQsPVSEzsvCSMXY+u13jL08fEZh3haK9AnCw84Hm9RprYPA4OUYzc3JYdv9WAQGFgYvPQAkOjGUmV+Ci8qaHfa2HceTr9aR4HSOaE73iDY513sat+Lsujh2OiDc3V7n3pamyNrxv5hD81GiTImP59Ypzz2NPKdlbOWclpSLYRx6MxTGC48AftWwEySsAdjR2BQcMh+czEzFZX0uhZU3mFsas7w9t5dM/KGl8AYfXPh4AiM3RSn+SiK7gj4zki2T0oCXleOmhENilJXjyV/vuTyvqlhhC4VG1vcpUn3RuVylHy+cH3g0VMyxwJFIXNStIwbWweM+0EbWZBqxDdYlajPtgzGb9ZdcbmpnXz2W4HeuH9EFZ5i+ZwmM8oStRDoPmOxUYxW54BKnKGkzYRR5bXCHL0B9ObYk8hNjBv+EzOD/ZGbwf0oz+Cr+9RSuhYxKBWsvAjucrHnxwtiRV1pTZsReWbyGoHaOLScUwmTOAm64YbGt1tJhqtaqc17qBG5VoxKHvFxXnl/B1gNhAmvzA2eZ2JmUsl7cGp44Ouey29yidArBYXdV4e6qa2Sr3itToShsWJVY5iIvKFHh5mR8FnDnNC3i3iyLPMnQeVHQ+YKpTaUsKov9qg4/2DLCOvcCsY7AKS48gWUo2FBR/qiSWR6qo4y7NYUyYJFXIB7O5+OvMgcXptOqKI8WJtCK39gQdFT2zh0eHvTJ1M0DZT3j7KlGqanZBjtjriHHLEvQO3Twflk5ns7vEl8BcV5TPfjhS5CYKIggGCFJM8/SUZYuEqD9cyMvtYgkYeoIRzCI9EgthgRhS6WNkNJqoeXcq8zWGmNEwcIVk2DlMcdspRmAtzUTiXkz3Z70/VfRUpVUcgTrvI9yXiWaPIhHvmiSqEQYgXxBYskDRBYHERCP6jJUcs0R8Ujzal9JMVFM2QmHG0ycM3SFk7Y8ZUcuMT+DRIZjWrpotCkvxOm4fDw+0XmTR5vOvcj4K3vDRZriQAtN95EKteEYYBhavDqCIdBynLtlDTtGHx00dZ+P/T87Elg8LcxbxsP4QKRxEkZmag9wZ6vgG+ck6Trv47qq1nMYVR4k4gD4hthrfMBbjGQpOeRzNeSDbw55tKmu/tPjPvfGfc7GfUDjPujr9VQ098hAIl7J1ICmUqgtUlUtBXKKiS8WNCyM2Cc0+lthlWChQiB5v7YPBduuJGu0G3woXBSjvlh5Gk0bUB+Fl4c+zVOYLBEfWErhxMWPhM8N2suvQ3t5I9rT8SBz05rAoMRaIJw0iYgs6svrah/AhBo3pTNkxmDGUwUsGCpGKnz6culQalKGfVoWryEMVCI5yxpXjmXtbDNWwC5IEor8mjU4BAzMZvWll4QNaKtSTm8SvyYKWEaBYUelR5l0KExLjHI/iYFiPLzkfCDUAe1+dVWGfixwGdqFhNle2Gehxo6TKcnYiyR4frp5BAdtII0XRIniR8y/IkpKrTYdn5WnMyTNgHNPMXmTNR7z5hAldG0ZE6ww8VI62w/EiyJ4iAnmy2o++6oiG6zEC7/hHIlQyXHdXhfpYxudShNYRkDF3d79UOYk/fM0kIr3lYnaYcPksowUxl1x68E2cghsgMAFy7AD+YoIYS+GukYnWSNFlJFfNjH8OHURETzygSGnBrxIZOJ88VTETMShfIcpSi7rZVyI39FFvN2+fepYGDw/9cLy5jwGgvMNj2LqhMZk7VDgGem9bPNBWtKJpGM43TLnoxGKMXkzq5lyiPRCxmH/kVFonR7rymOGhJBd7rtheb28PBhzlhjFHNEVzNdI6oOwsyQnVzZC+LjLQmX4u55vb4zSfC4tahoNejQus/ZAHt6LnkxFDT1E1YoLRd6e1kM9sz7kggjQlybIeeFQtgU0wXMvdKzokbbdEVK6Ncfpe1LYhR7n6nx1YxsnMGClJSz1UVzZ01TkpU3mRrnJbxivw2YtxPjPTnSFlAKX6fdyL6QYxuPZ5nstcMhxRaNkkzePUpYiSOQRpc8TG/9f23OYEwRO1BRALUEHWfVS2oYIWyZX1DU3lYGvnPhFat7Q/EarUUsdTFZmqOe91NMKg4HD6ZJGFadmJy0BakuMKjWkuB+W6B0GqVjC0USNw5WypxuFl+8lWzKykG0DqKVk91rygGr0IFYvQoHNJ8pQGDuR6A6olpLGlljcv9SYL/1gOIG8HtZhKistQjc+g2bVE/02jKa6eRZ2K7Uiw4bgDxZ75mlAgdBLtb0yazXFDa9wjQkscsopXDkkSBTkFmokDAkCkNwRGLyvsY6MzXNrNGx+eIlcviZssobQEzpKhBlLprqqqB0cBMxSpUDUEzzCJzLrsN1sNwzZY33uU4fjZrhsnBpVy+tK75XbZPM/qan+oBeRoYT66hPcORhwwVrUlxjwM4lPp8j0quS0UMMDGziv5GH7MxnLbzJVybh0sE/L6/rlVxS7cVyNBZp7AZA+2WhdXcmr1kCZNmKlFBS0XnGhPlefWjP84xyDMqEceKXEQYcdjH5nkpS8ItK6lorDIn+0wvvRo6dIG46eDHO0yCONxFcpI7iAHC1Cxg9QLi04hNF8Nok/J25RRLuyJpwBGkkpAzdhzHq3e+YE4UNZ6e9jpIh+6bjVY7qLHClO3hs/5404xKNuo8to7EXaLNmZp3XJzjx1bDCVoKdISd1RxWfzAM5Wuv6xaEuhRu9FTGoVhVJTra9MyRp6MJ5HqcTEcJj0VbcV5CuinCBUTQRPNlCPaWi1L9fQ2X/wyS5xniUbKg4LmPaKTecfHZ17RyETttnLtMYkvqycDc7nHsMH9qlY5ncbPjRjRhaRxlwfb9PqF+7qvyga0mZcoulTJWSK3CgXaXZWRgD90xJJfCYiWEvk0+ZtpPIl2WFl9Jy2Z/pAZZdZYVJrdW7kWgWj3kltr/3CEYgnqVEIkJrGnQqmYJv7kWyJcLZAgXbM7jTClHWvsjqM5JR/TgW4oTOPh+Y6qTVEKwhHl/+RsQJ1GUOc/T7TLlsp9yQJ0C7AK4+LFg4aOp8hohCYT+kGo5RF2Thm6sCCiXuw9bCzc29HPPBiAF0o8wEYMm0p//1vHdwGtvFtpfOqqwaM9cF6llFpjDGVMQlgNbUpn/cZdNmSlnNkBNqxtzk98YrObdwJAKyO1TZ4PjnDiGkhD36IMk5rPe/xEdvM6Ua6K6ko1ypUocnSwHt26lIPMK3boufNadpQZtsrM0l907rM5QphEymkgoyqdUPkoR0tycoo0yCMMmlwtlpJtSTHZlStMBZVAGxO4E392HdjsGdNnG9oC+4EczdXAUkICBmrkU74uUzmX5zUHaIanW16hzOhfZiR1o3vw8xg10ZAyPj2A7R62P0QDgo4+zBRnruVDqGxD845evJ3OsD0vrxxPdvYB5Xlq87XVw18/ZrTAk426DWjg/9KfPGI6bCSJXXub93f7j7oySDLcAa8gX2w03241UGBf8dXf6PLSC2tGpARRxO51ZV0uSLpcuUs6FFaO7ZeoL1HFg7yqGaZiCHvqfcUh5jkLlyMWYWkXNnuUS9vOBYlmq71nwKUrRkB34zLlMsdJMp/vnnWh3+xSnj74B/JIIkeKGklMsJLzQgvxWccD+aBQGGlJpuGcQkNj4glBhBgAvhgKYbALPsk2LCB9RzWybJL6QDwrBMMYQb7f0qXhn2RTUn6RqSYeljoh5J0Owgv1Yt6bEgjBLGcmhJ9HKywltDCKs2Kiazdbi99fl3x6fGS8+s8wvjTjoMC9lgEe2ItZbCkez7Cvr8TatLyHR4QSqZPq1dCBWNGwDzt8OEpsPyCXwnia7iKNOVCw7X72xg1AnrwTDGgYWt8oW5qBi//ViHcuFpx4xmJuy5X9jiTqka3mznrZf5f6GTO+1jbndl1eZ69oo4d1he2XrR2fTVcRu6yij2NiZBbgL5Q/MmlgXCTbMoGakYji+MFF+zekJp9f8NyBx3PILmevfjSROi0Pie9bZ0MRtEIMIJ+FU/yINe8yFkuA76H3EDjj0ypFsRvY3WFTA1UitY3GKEal0oJBU3Y8BUznGXGCx1XQkR9yJW+tPi2hjv3FKOIQu2dZyEmSBg8GBI7RioJlvlb5M4Ic0HSgL9SPIaQZuYUcdrQ6T/HDZmE2UPFJvxnRtY3km4aXBla6jnx3Ri144Y8BxNjnZTY5yG9yJo0mSZNRWi4+9QrKXnaZUyJK6RRqauuxpO2ZGpqOP/gFF+K1FA9Kv16KTpM8dVu/76A83Cjq3Qs1u2ZdIZqLUu+lrq+hgUVG52GFAKf3YOkUOvV4+tFccqblqz4fmCUopfaMfUwNFl/aFhIV/RCca266Gje7ArCokZfVFdXto6MnjCyWpGxL4sYrTo7Jr2wEdqu9RF2eXoSLxsfYUZycnmT7837w8685Fc3ji9lwHyZzuB9JhZlFk3m+KMdzqMFPdVl5J0yLZQ3wABmmFxsmT0bT9MiU4/3x19ni8otOS0BHGBQztNXgJ/VpT7W9N2xupKwIK8fZUeLE5kJQD84zoDSTfkzpmhSNXydJo+/0OoW71B9qruUqotns7KyX72TVJl89UTLodX9MNFF9JM3Z1U+ycsqT9iYpF2lmj68hvHMs/IUHq36L8abZh4pa0O8kLzOXnqTRXHjuytgfVU77Yjt8lkqYMNWfEnf8yWdpY1Lytv7Jjv6FRMzPtze6jxYx5TW4KNxPE49xDk0AZEX6p4JBgxwuUXkBn11PcNZSc3x32cdOVj7syib0lpqmwdWH3tARzT1IicfP18zrVzPDery5d7MBT3GgPM/SnJWDRRnacXylcweo+XvTzwJPRqFFH6atw8rvd3tDDk6fCuVVUwtacN90e7KogpeTxWTTUDfMdNvUGNkTCrF9Ac126dcdpfhoWFSx0NrYU61Abx4bsGU4ata0hepTLFzsPT6rUdECQRD0YAFKnEIp6qa5jombAZLsjPSsKmUbDe2MZKFUW5/vQUOShSazG9qJkdKIKzyHOfCsbgx/JcyRwI2eZb6BkmJMUj6AaOihBsV5St1ctSW6pXUVNyuNvMUoDQ/zrP523l2nH/pO8rNz2gC8HEKExYUbcpobJMch26G4juoa259bN3J7rRG8JMD5J7O79wRnZ9zZLnuxK1n8NT5BvpwB7/R5l67HUzsomuZf/TL34E3NvGJxwOu1p6OHxP3dByn/ukon7DTcc3+vtacRnPZP4ivai+Y24nd8BJucK5rKsuOIEN1gxIyQcLMlXvOL5PaOV8XhDTszQMXQUp0wOiCNVMGUHCZS8l7f41NUv5DEvn8GxL5lfiU3IRC+ZqupTEukkYa4yxtOt5P0xqxkKbmZD9J+fl6NtfnSJI2nAVmGaSO9kexOFcQHyFjVPMIuhFat4ria3Qth8x07Qiz5IynrUEVkX+KhsE6Qn95qhDU4/TGm3dR27yL9Zu3eTLentJkuMTX2t3xPl31PyU+FXyc0nb/mP5PhbEvyc1g7Evy74Ix41k3MDRD9DfgTnbsfwzclTW4K78X7qyLKYdA1EFxo8zDSvhGAh9uCKYf0wYwtTkKmfSjJsnGIFIBRb2ACy0IiCjcCwkDG3Q/jqTJUfZyA08ZZuEV4OJsSqN6BxSRR/sqc2VM9AObKameT+VqlX0rggMib4KS+X5phY8i37CBTHRcEMoaFVNgNWnz50j+Miko+m2srkKU7VK/RtlZMU6yv9k3DNrQFf+pPgI4Jjr6lgtt6zooBb9AxUnBb0Ed7Anrl20DdZEYXXZKBnqrdSo3ncrDkKcL+5zymAAiraUOo5CfwvgzAjm8KABpTs5mUwBTFZmGq6nXlAkKqj7KbEKhdpvdbObl28Uc1hImwnw62BiNyb/86gqvMGpBxCMafEp5QltplGg6i1FNVT2/50UxypIM0DSFvXBzz11TkBq3Ff76+t3wyeOPN673W+UDlbK1VIFcMCB4stkA1kGmSwkvH2pROPa/yAW0gB9o5UCuoRTlcmXMKItb9BBVBlQErUnRjzGDPzIIKUU7oCxrMnH7JRmZktUpIZScBfQusbYqxESBhmejGuG+wuyBDR4Ob0jB89wNOfiKHiazaQmnwGZGJCN//6jpo6VOZWVs/qvN2fTXaTJenJxWRHf280BZ14pLswIwm3Cs01wmn1daf4rGl1n1Pp9kcD5zdwRJxmIESZb+z4hLrR0dNr7Hmi7gaGhuOpdNCxrn7mwxTcfzr5GJGTPI7K7TwStVrNLr+1g6fXxUtyIgNCIoeGG8JUzYQsDuMnKvEn/nFqvwg11O94o7uI5SJ9MgRdYUlaqfya9/TX1lS07qY/TieJTNYS/Ik+nJfDZRC2dMZ8q6ghy9UpW/hxlDnTgqg4TUXU2DeS3t/golpE7j3M55P/WV96nFDo/ydI8YNGebB99oRaOPcsP97IuR28MVJgiD8zU4xMS5H8LoS745RmsjuFOq8WVcSNCRuXVrnQqKNRCnoxUOllGrtXIU5C99t4xcCy62evd3HjAfb+bk4VsyFA2WDGRVxiLlsyPpl4LmpRRoFJLHNgYUC76pM08yrehWV2pFu1s6hrOJPDV4Mw/CqCku/zxTRA5cbCHwm8Ac9+4LM1aMvLcjckUVlWRguJgPcscJK6IBNbpa5W6EHL2SgFRhX+MqovnyjA5njG+z0VWh93qR4Yidnnxv++gcXxkqWMddGM8/Y/BuAJlpooMxQHvzr8o0gHUTd71rPir9wmxxbj9qn7pjzdVYvcHWohjck0goNAeEKS5wIfETKcoyYWEYjGTG2MjEpqJJC9VC2/Tn93ZYMnQ5sZldYqjmdol71+Zb7fVC2Dtj5ALRs/rZOEimynUC5sN8kbEvthq+IL27jMSiOs1NIdwOISiWwlgwIehBDUTDlTHicEaC0QRRYFz4neM8bEvA7kmYkrjRZnHs8L6REyfWTdbr+cKA7iI+TD5E+UKaaiZ+zcKPTNXp2y4iuZHOGjfrGsiu4rINA86tyVaFw8ydYVY0TLTLNluFwnBm6tzAGFLsA42zKEaZ5mk0wbbuiOHY6uoq8dFc8k2c/8WGg9sAXH06xgPHRoPLm9Y5t+tcxnB6wjrC2VgKZTFHgy4l/MMIlU2GHxnY6MYp/SVLF7zTBThAczkWSPci436aFIXNhOsa7GPQLek2h3bKU8TLlSzkmUucO1Z0snMo6VQwhyjhmBOeJioEIz6Xt+jFkhGf6eHyQ1zAH6VUT2OTfPU2aqBgN5iQZSlwDzA3yxhjNTGLoo1JNghUWCZ4/3KqrmDHYqqOZbv9vCRfJINMhZoU2k9qUthYn6XekehGHUoUEPbdsB6JCx4bLxEc2u3EIacZmZwTgI3nDIdLBvQepkfHJBOJ2FUubxKTosFjNQ/UFlBKAwrZhpugDHX2V5MJVoff08se6jAbcoU3/pCoRC9V4gYG1AGyVTcFqWMVzohGY5EHqcCYk7LVWLZrgtvoVbDOrGb2K0xPmhBZ9I0Os/xptTXxvEKreueBXUwaeghvaI9Yr0q5NIDVhJ4RHeO23d3qdu73tGmqtGOVITbMuOSBojC4qA18xELu8aSSNZK4sDlEkusjWfUZTCKPaTAhDwVgH15+XOZlfpQXefU16oqPatSviDxQZMFHOtJtlCbx0ScnMAM8QRo6k8l8Aa01ESIv5VGjh5DYKKxXeZQzh17KTR+b5VZwiYHyCmMfB2f1lYoScaWmSFqdUBR9ldqpgFPlX4l2VeoYCKIqdHplvZkIs0k7Fx0ORqksfO3Gpel41BFkRPcWU7crm0frITJHXw87XLdkaF/9dkr+vRGGoBVP0c/dgSVjYxObfgnd63WTSYOhSkyRQPbHdiMUqmGBkVgbYzwicnHHI7tOPcWvjCBU4U7yzVLTzDz7x27EI3uqmkCyGGzLwKaJaPufAVgb6tO6oTeYg48TK+dNYhN4n2w1LhH3AWt8mm1+VMQcSdTFGa5vUrcQYDCTM5hJagDDJphAgb3/pVDnkwz+YYE+lkmCmH3z3HV4BWIguMRdGqljQeOUKDPohcx1MX0J+esek1HqsT73Cf0qTFxxy9w/Uk+e4FALOsFEFb+bk6SKo9bQEr09cTuTh3FDnFGG7//0rU+dCgFF1LCO9GzX3F2391BUPNa3Mi6oozAjvaCOkyzO34MA1bJ/MlpJggPACAWYWhmO5DPo6umU6H0G79rvto06Dfk5D9roAY2NMozZSOaZUTgl5tC9zNPo41TMltn8uJhdRJ+nK8bSkf2j7bKsDbVPSBzqhC55PKTIqnn9rM3FY/LzUuggjHSUUdey4pjMhbyzzzZLzeiIZXI+V/75bIzvEy+AWMJiLduJLkO2sMjSZQ4Ln8UGMPs2IHFjeGz/nLEkSe+BkOOWVbjs6r17D0JbN8aE/UX7cqIpDIBi3q7YHiVoFFiuVJaqtyseKi+NXx1L7imVZAX+JJtmFXVMDPYoTgXFJUlDQSbedPU66ROzzGZAh7hMNhkICekanrqu4bTarys0+J3lcqlPKWKFhdKPeGigKo5tDe1J2Hm4Y6DAZJVCuk5PrkRChYeELI2zcqk/szacDmT44MvcjXGh2A0b74ntPHjHd5rucvfh9oPuTmgDdyoPO1cmx57qaI4uOPQebKNNEQ95LBvMw6bmmETWoQQvHTYnj1lkZmUQUSL38328TrGe18mbeZ3f0saA0LJXDXGfcxmouZD1yTjN1/YyMb1MbtTLpKmXT33qX/fPp3z1iX6OSVbIahR3AMZl6GtZrpNckMUhid9nQRpiPAEUaaE+NWkIvGX0NPIze6/sO9UDlUJKzd88fpU4nU3glafwizMKNWaFGolMChjL+MzSYMnV+iKCOC6BwxZzwpTeiJEClHfxdWMf0Lij8/XtYL0NUhR5ErOquXDkTRJInh3J3+Z6jVR8fe2ujMZIZphd3m4GPERW10Gy0k0auFezxbRq3PjJ5vUFgVRNNRiIa75x56OpRBCKb/fRr2ZtwUAeJ6pna5WIiV4NRX4ejGk3k2QFcy59c7FcuVhDH10UuNV5gAhio2OyBViqzIF3peDwkhOIYVwUQS6WYV/vB5kkaRQb6Bb73k5Pcfur7u5zkN/nhzCA/b7SqxxcA+D9fb17Dn4cGsXSI2ARYYj9bwApVxPfBFbXlQeQXV5doY9qCkfUJ4oxBWue6tSDMsipH+ZQA8J5HUZGNRQB9WPCoNHVVZoPgqYJszjhAHHCqA5gwTBO86urz1JpNoQWz8UIPY8Gwf5/cjv/j9rEf2efIQ//45vU23nk0eMefqOw4VAasWMGsH08/Hu9wJBEyrrbPQ5VykmR1lDEvkQRqe3dvjjwGcZzhi9G3jk5ZPhixPHFiEf4BXwxClH8fM1hGIw0slj+OLII/3toAU+MA7l1hxw1DBVqEOcNRMc6tCAzpdbwCGtjF9EDjI5zySyzhpNXw3kTGpyybMYpS8Qpuw04ZZ/jlH3CKbswvB/qBPRi9I21kat5k1Wpl1yLiuogUsNFxsAKBydu0MWboCSn0jWIqak2tq3ZVzeAfP4pZehYh0uaJg9DVnlKAJlQ0JM8kKzx5v37+42oXCPfRK+7Teh1l6FXOBLj/f+LpkTieiN3LYRi8uFFTbonkqsrjJnpnAl5zGI7rlX08u5KmW6ilJeBw4Iy8ewgMAqEmpDTstHypVKfIg/ustqNnKOotLoDJWyGf+eijoN6yJXnOe9q796OYGpdI4VH/Ptr4sgSpQiPiRM9gWGnWVBo1cfnCUuWbCXbFZNsvz4NuJTjmW935qRlsWKy9r9yaB4tC6uruJo6U/Ak/Yb0l9JI1YGExIbIn4XEpnEc35jfY6MbBSwVn9ICCYpHjZIxR56MtIdpckuWZSW2thoFzuXgK8oqKCPezYTGG/93C42/zDDSgxYdb/WiNVJkbfCmBYbG5RSeHetUoOUgoInFeIQkaVxaBYiW8Fvp43IlhWovKAEZbB7JAy/twAp7uTTZ6Aoz3qUw2spayEfYKTmqSJmyhrZCKhVlbuFfE6NUwGkLCEbELhIzy1CKzIdNInOWc2IZD3luQpOQWGpfQyYxH6jqfcH5vt6paKTWJDFXk3sDuTkMgYouncXRi1KwRSHNXpG1GmXC0r4DlmfpLI/RHTnLwxZNr9TS9LUQjeqpf9/yZTFbQKMdkBMNIL6U65CqvLNK7I7xlNgtbfcyQ2m+lGmkm+lJWfVT4KoKa9bTfYgGddLyM261KA4qBrkAfuvZOFDeqgDQs8U8yXT6JZ39GLWgdqVXa9UY6Xo1RqqGcrtigaGCAtUYNDuFVGPgz7CuxmCPYFVIjVGQGiOVnhKvk/47nK+rK6XN8DpLLweMdnjYq0Ok0WFDD+qqj+XfUH3QnrQg6ulAwpoSRGOk5p0wNF3GxOAKbGGtf5kGQ7EObTlKE4CDxREO8Qkljx46t+2de51u9z6g0JGx+MW6R4BVouCanbUOCTZvLQv5bEMt9dB80VBsekJ7LApKyjOtyAdRGmQzjGtKdkz+IBXwCFwDrYwfSu37cBWVYVTGSIFgyDZLnyy5lQSjVUppxeJs5uX3IW29gAxv52ZVMd6KXtUcZz4XN8F7zuFqaoh9AgBlH2lWZGTjYLPIB+xpTLmTrdlwGKUmeQM7thvV7zzu326yzq6gYSSZa1GgbAeMQQELr+VaK1Tx8yzoYSANlY7T+KU5KRf3k5tZHtBWdUlFtm+ZCcK3jA9eWvcOba9pQnasyYxmysEUoNGuzjbrTOovXvZVqfb2j3mzrj7RepmXuzqPb5QJycMYZ3VzC4Xn5CQC5DW6pMPRUI3zAg2v4OcVrmFJ1OKT2fzzHkrlomQVBekmqx7AMN00NapEuJv1JpDmpghTMb7H+gG45AU2FJd4w5vCzAXWyONbZH7BkxNTMjKsGWP5WrJQTqKl4gERBKki5Sn1+wD2TdruXvUcwgU2RhuYPspKnYbWIpSIhNfV4HwM07exBKKch67zDN2qSObt1OmNKyfbdGWzTVeN9FW7TZCGUR8MBWE+ehg2vXQzLVdupmUZFqWeaRnJ8SxUwd9lruWqMddy5edaZg9sBZUJY7eq/DzLBvLJeVAZXynz8FKahtuM15FOt6ft/qRxo5nEyvEfsQtB3mHW1rGkJH8W8/bzmGWyCUrTALcKpHOIIWsH6YbiF8QlQBLgYYlGpDJ0Ppmiszzc5I9yTbJtNUBJkjV2o1+6IAPn3bdGbO24S9mrFX6lB2KuMAcDmZlXKzmYjjr3a+MxGb8jPWoZEA3/KFsE84EyZo6aUKg19fWsAl9OWXQxh6Hl8lUvz3JIsVwVcyiAOOV2cGTlHzpmwHDjELSNX/CM39zy0ljV2hBsZqupHeWZgXTvbclMNX72cwcjSCKgskHXlD2cPYntwW/3JNsAFSMnLIw21slqcqF57br84RzyOvxgOyPkNtjoRPXk1xsbgZf/2kkKZaz2GoJabkXPK+vEigI8kmyO8yk6KR3PQnGKMS1PM99fXRKLoUApGIPbW7370h/sXjSrUMDAXm1/qy1euNuJqGVpdu9LaqVLnfPBlnRGabYyq9m7A5MsLdlsao++9mPT516N0S+86grG6xuC2WHrZUsKtRnY9xm6gRGtaeLVSCFza8IzMGAnLZj7VNTp+8NIWq3XDkUZEtvffcRMop2vs0eby4XKyMcM/k9r4cfGKrOp+PopFqq49CmYUlIo6tpLih5KWsASEtA9eeT1OZLw/PYyQ7Aag37P9rWvI7peD90r13GCk40v0gb0ScjPhVTKuuG0Tf4KxuBN+ntwMzXjMKVnWjpGmG3ch/smVwiJO2VhtOiy9XW2H9y7v6P8JfaQiz4fC5UcN+wbrKAnjeOH7k5ksu6445D+DhVQ/ZvKUxn1tqH2kzH5x9zcay9LFDRiZuJCyhyUfw0w9U9tqEAi+cJIOd9Aj+JR4r20FoMbzMgMzyudt5kiqcI8/olnMzWCrZx7rZj0O5qcw09+N59swyfP1n2iXCiz+H0FowLCTJgYZ50dKN5qhTZMYCZhrhO5LigGvzlUdh5qBzvmhUAFS5y5ombLrYzxZHoWhRBx5WBA30Lw68K0PcDAbrVV165lLnIs40RDgTEKUKpoxQr2dejbOlaNU7ndzFFTSPGVcpaAIw0poMPT7ANiqI6yd8HPdJOY4u2RQcUheboY/3lMP2dfYpRZGXlZtbpyLSp5ts7GFJ/W5vkyiw9Sw6HUAKmgLKKXJfplWtfUbWT5yScVKY61FeizuorXrhxmglH5rdRmfRghaXA0S796hCFllIGyr8cTMrN/9v7VPkYEmV1AXY9mCcX4og8j4Lihp1JEB0gmn5fVHlFa6yR0QMHG1mWxYB4ocd7P+6FyuYy1O+jdrSsU0nHSyQQOJJUaullj7ix7BJqZYQwhxceWpJO7wXo7es9ozaXxrASqf3EWZMxVz9t2UlY/qMVTi15XcErmeg9WPlNcxM/mQWIci8NNmTzosYRAkmEffsk+oOzu8Ff4rcQQVfjkS3uUBYVrNVvURP+s297x4o/AzyIs2Pl4X08MUWbCOqvRaVFwSItz06DXABulhAgJA5R1bZirjwDDP54BnyPBqOBgBGPLYHk1b79GMoRQ5C9f3TRp24BaX9GcLHgzG1qAfoQZpVQu4uERoc+msaHqr9iwAjy2JEan5o9HSalRM4lST3I+uLoi5Voo5ESXGm4SH27SJpdCeqWCFyIO1FNyMqNAOwNJK0VW6k8vUsfQfatXk5QyEkzbte93GFOZYx4fV9KL66RXgctinEnfWTfpVZyrSc/jv46CvGm288bZdjWYoqK5rWhuKzO3FrBt6AlDR2uGQ6vqv3EE1qRclQ2r4FsV4AxEa2eja05s5Zx9/flutmTjdqjV/uDa4s7ucXvV+9EPO5wAcZePcWcqxImFkvU1PoxMvnH5MYCc0gv5TdhKpGdBieZ+pCsu6PBscB2v9d+AwLObLEfXYJDdGxU3g/nTBbwtAwXGZc7nUb7JmXge9zD0U+csK8lDUpRc5Ha7wiAM9HgTlTFZSr6Y5Nowz45J2Hvnjkg4O8bKSdVMTFEuGvwstKKnUARUqX0cNN1GLi9GYpFrB22HIHQQDhJyIeXB9ewZ6xyk1TjR2P2+FHWfz9I4DeoQJH6o2WayrwwZIYoRRjQh6tOn5Rr6NLzJ6eaAaQ8oN8lKOB+sfOnWjuLNuLheRro2ByPzIko8/5yA+EZUCWlLGTozCK+qxGhWR3X//v1ed0cEZXtr69697W3FlJaSxeWYdHJWZEBpmG8fdB/2jHD88QRWuOGVGm4RL+ZioXzEK2vYI5u/z3yYbfY2uSfRIKesvhZZeZplVcs6K29i5ClU628rdUCtVia594e7cXyGh8vNO26TzygtWlbTTEjzPc2LY8wglTBHJl3q9Qafj4OQWfxY/ZZ4W6D2iqVbH5tp2HhdhZpJMLodJcxX2upItpIXJtpHrhwqjTAzs5JtJ5exTLtpZfeGSjHCmsiVZ3LZdTIrivFZmaWtKPd7UPj6hLypB4WvPSjMgYz6D+pEQ5fktdOvyL1lNnHTrDEBCDP8shmNJBFgxM7QtQ7gZOneHNrMw1rPY/UH+VVcquUsnTgJ+LzZSoBeHbvPSqtNKq1eQUIkNv+3mmYtrmvIhAjn32GCEW6cgipstmOvdRbXUqfflc+hI3HSZ7ESmGjCSlFMihLShI2iKrzjfpoFDvPTXffChkRyrFiLmp6/iNdIwLOmx3hOOWGvMHGLeDqlQ/wXyk2o50OZxeC+M1bF/staaSUddTxeNZDSK6huH2jWcAAHRIbUsy3nZVZlwhEmNEQBh0oI6FgIi7dlgCecP4/AduscxIbXaUwdaSkY6pkNohHIKp+TvwMevPL+NzxcS0t7w5tkkGzUTJl1fc21ZLVTQEbu8bjpSq4br0m1r8SOLj8N2/+4ksYmli+2/B5XXLHoGlLYVhMT63ataLhQ513NodajC3Z2bCQQuy4rACPbKQkMnzGmBQ4c+PtS08u2+kpQD4zc21/ke3bE/1MGSbI+f5zhZxPGRdlzuPIZjX0SjXOiBIWQXGjz+l3QOq2qs+inny4uLjYvtjZn85Ofep1O56dyedLCnGFc63XTCroPHz746dW4OqU/r/ZZRVpY5ynmsbW/2b3WBNpq/Ru6KDuUzPOzqqG6oJXmyxY6TORTYK1RyBi3fpbF//HzP39SVy3ADciOTGbLjGQoQcIFKk5TWYFOX9CUiWmZl0T4of6oNah1QH0gLvMywrIrNLVqLkM2ZzDfOZCvg8RcxhsdIhn+QiP4hC5iee+v0007VV7XG0yskCjZYEKywaIvDVhSY8CSOtYIqbJFuXd1pS93wgTTNsABIecztZvJmqmkit4E6lNf9u7jtaspT13rlVSkcdpgvZLWrVfSRuuV1LdeSZusV7ARZb2S+tYr+g31xEiMueN+32yaITpTUwBwvX2OFlU1myqjkHx6tqjUtYEtsraAIxUYynErKuKNjWJzvKhmT2bJotSiZwmP+eSESnTMYw0M6Daz0sht5eLP3xIrKamcOEbfEObmHPfuIO6tfhDLakjdMGDaFKKsEeWSmi/xEay0i3H9fnwfUK3UjR9bDbBmWUqeWNOYDBQs77vigNXeqGI0ciAlhhRNxnF+dWWN/dAC9+xsnpXlM+0v8ft4PpXQuAFUzJMJ/5yOciVLRJZdx2h5hsYTaou+B5jAkaF4XnfDOSzXnZLSEiGvyTDW0mDcXKaIaYJZ0F3HPV+emJ6mrvtAr1O9SSZg9l2QNqrQD6qDKj81VjklpJGpaaYbpCmSHrUC+r6cFZTa6mRESDmKte4/a5PRbnoeMDHZlW4Q87VReaYd0rVChbMCSue2WRuaoXpYvIawQuvWtbsV0QJ977rWhlo3G5FeSWrpOVQ3l3ThoVwHDw2GGLGx7C7r8FCvCOGh/HfCQ2ngofy3wUNJ1Up4KG8OD3qZ5aMaZAwCmzxTBl7W6+K5hzX1WuRKo8aNKIHgqEsZinV5k79dwtrrc93ODYqTzJeC6sherWv3m62h8e832kA5Kdlic0ZYojc4zCiRmaI4mKgtFO9lwDomoeUsp6/fIYba6p+OZ8E1yp7atjY6DmDPlf6yXugh7v1fglkmtUXutircaMwcc9A2bPCcJTNqZQgldHRDFDyW4e+YJhoT/+nTm2I/d7h7fN3q+Tqb5yQmU1Wbi5jsIR0TNd2mwDhlTjRzJ9xUJRemIraRu7x00MtCGLNhJt+7OJUxo7k0T02TZ9uF5uAhmS79MSX/HsdI3brUcitmaXxu5uVTFoT/+Dh3fNZhdOQ3aoao97VWIhvzgw0p3cbZSkLhWLHWq8Ne3GSiZLMdZDeY2BK3lzHIt4EP2+2NxO5fuLPh1hnPS/iz9//iYO8WDQ4ANAO4Akam/H0T0i+428GA2CBJ2fvW0gkJEwoy22swVIyTyJQUshT6GhjzSbZ2A6oHHwg2JJhHNW3W5rZpxDHOhahcJ52cOyAQrJWDHIEsgr/XAVplxEYM2fSUqLFnJIby4DhNggaUYI6KNSGD1WNfTEjIL6o/Emi84gXGbbAYhEda3OXKlmsVhpEsmLtqMJbVneA3Z1kFsLAnFL0pvdNwdORx9Y2jQ7EP647FGxyGtVWpt4EhAutyWhb0NXjrcGFWMVubjHVDWi8hztdKiGvSVaOYZmxGhz+7ia7w947UHq2XvVtbDtUvUck8DsbXE07tu/jk/hU5GsvEz54onYu5bU2BqkoDb2XA9iaV95RawDKLqjEpjvS5r2w9h6Vj3fppSWppajE3JtK7q78zKZJpuK2YoRrr4AS8aSL1/2v9NLYMksixb1wq61t0EzfHXo8v/Q32Q122e1HvmnX7RUtp+H5h2yL9xrbYihhEO2LfGlAe150e/I8AQNfhNJohzxuh/uxhREvkeUvYRXB6aFdh/fQ7H2yrwbIJuj32k3q5h0bBkhAwC34TFr9wYgoji4Ku3+gRhnlKKOg7znabvKmq8LJQgTv7OrODFMhQzMt8WlaY6wRDK26q3M1xQZk5sFKWl4NEq5SBaRlePpEWYEqSuOSjO8rrecPc8ZWG9RsUTeMrvbQHpRwf9FKPr3DGJ1USBY1FLGMzDvKMZLng7QB19Fnl8joEWnsULykn/CjQmcj2aZilGIp9TNdbqHlWU0IW1WZK9v0p2XcWPOWqcTYVpPB2RpvzfITUoT9OKdeOTeEGDdkIwpTey7b01rpR6DBLBdozNJi6ospUxl/ynXOx1dyLvTWdyNh9Xjco+DVrflxPV6ejGPtZryousqxtfO2JbOeCb/lO1PTOCo/Zu5WOneRlb0T7LczGujjDvKKY1kmRtgD9NhWdGmTJB/nJyZ8qA8sXMa/RGS8TFzuuGzhHRRA2tXWcT8dF8fXS6aUWlbi+k4Z/9UraKBhN46fG80AWbOiA/NbMiBuOv5pwaCbQymua36IGx0apkP2gKiG3agRk947xIggbNAoA1/MEUAv8jelaPnmXkV02XpZZFetnob/cZms5q/40aUqHyEK7oh20ng4K8EXqp+xGlWcTnmPQaqT05Za97O2w6/vt9jBX+zu0z5nV2gHFtpIqsH5fSipu6hiNvVLPQu5Vyp2jSU5yEwfpvjbQuqcSZcDljr3sPnD9yetDU/JH3zKDjTrUGjX0317rNY7qtg0j8OmZkXGcwaJ0Ja7ZDTUm3WxohQrSF7pZZDNgLo0vCbx/CMc4OYPkDV4jeZPXSB7iYZbNVUi6QKZhxsxgf69aJNOZYlOJkWSU7tFsVu1p0Z5OCoyJTGbTpMiTzzyNiXoU705ZXKBCZVQrasunmDk2Q0qeXdmgIia0E0KUmXUXgowQrPG9XbSL+Y8sWt4w57k3Xz8w2PWjNN1cM8rG98zgzsHDXHPo54lCjGUNBivt+QbAUFXzHPBwVvbLzSKbnlSnaMMojQmG+iVp7crDzoewP8wCbRdOagzoH6G5XKG5xEdzico++oLcOs7Im/Jlgn/ziVb4/w4IHBCxc0CrZxH8E0uVt8LSUx1jtklz67hxnc3igznM2BkFdNtHB0kqqY4VmR19XrUora88wy9LfBLBJDpFBCw8f/h4mq6U1Wp0mce0zM4uCzHjmaJCfsuzi6uri3yazi5UXBUK3/hO14Zl+X1AOiaSZM7H05NsT4ZxplRTqIWYJqezuYkiXppHb46PMbwWSsDpSKQihb6TbxVJp5GHSMylXLfLnBmd3qpUvtgOENN3u2KIf0bo/Qv/DmDJz5XVq3OoUGDc/sEGKZJLKZM4MM1s0BkWAHF+B1MqIO0s1c1NpYZQCsO2c2S3haGB7sQHVues4DUUwS48ZhYvZv+cxwfQ392+7iZM7wFxDHKYRH1jEM+83b5zZxRLzQp0MRT4NMGn+7GUKA7xKTXEo2zp3SzJz4P4HD48UJb1dI5A68BKYXSou92rqyH9qpRLEuSWBGPDldbpShssnEJVoEMFOk4BGtDXWXxJK5ylaPwSVcLA6QjBJ8pX4mCOGw22D8CMtVGmHJNLFqUTlXWOfLPbUWoQGxkmZClLoMLK2sryqk1IBKwfTRYZrWpEElwU0EFpTlAp43JKVOryio7GPVvCxJZuzEiJSnM0Hv650jgsv3MnLOPqMP9AFrjHm/nkrFB85HO4dHj9rjGQ5U9VxyiKq+ybVfdUmoEEzh19OzzaN2FPtEIr96hh3C7ziqJ6K3Qc9lFivyYcbQDYKEGdx0c3pUZjtOFKIeOTirCxjb8hTpDa5YyUP8q6IYqHXfPYuslS/JmH4XLGD0Z81rWW9JoyUTT/s8fDR4qwJzpFXu6+efRHK5L1eJ62m0j/k5Eu8CGtltN7ZdHsM4/qdlst6/3IrdIfsW+ksxWqJPHGXp+pruwuMLIP3AwyRA1uNE0Xs8z1E5cYUY67/YZ8sp5tNkDk7zI1ryjaQGzcHgf3hCteIjBlhaTCLXdILb2BkQerR6s3HGjqA0uqNHnquDGQ6tklwdLXbJPrbSkwLtHr/yZAfF2vVkV7B6cjJU/g9j3Ux70ds0KufNCdIvySpsjBMk5gUR0qzjXlM+slGYsmeysk0OXbRrFFt6nASsl4KO/8NWN2Y8LYLJgEGUAKGpe4Hd0bPWavbDW50bR1e7oCT9jqgOR8UivS3XKLlJPa1K8T2qtQPCbeq6MMmh9tHgE1FWhnt70jnbXaE9ASnZ83ioSvrl5MBZpIA8iu03yZokQjv5gqqelZ1gcathDBGSYOR8Xy4DYNEzMzO6fng/sqgkhoJgK+LJH4TVauFMvFTKo0wx3jSaNPTd+x5rEKDZoa+Ab9eSsWgEtULHiieuDGX9QiB+VKxdCHVWCWql5rsqe+VSjRtMTCXalnblh47yGPT+hmq9Vd9Rv0M3YRvZqr18/c3NDPTVwuSSfkNYuKhUbQTgwFU4F5jajha2aCsX9FNnhvNpnk1ZP8KJsrEWlNzLamXPDGSnUvVw2HAWzks+zq6hPG10QPDBPAyAPtQe6rQ7H6u3cjdgrQBuKnQs6oVMd2PA/98FOsE5qPwY3xLOsDz5tbnjdzGngm/SBtr8sFz38Oo8AoAFCq7DsnOm/N2umaNoVeZTYduiK4YjLXZxnNPvTLk5lkShaSNUlNskaxSRa6c8TG4fC9OWWAU8avyHFl3/UdR6IPopxt8mcZ2nPAHNzWZrdmPDrOyI0DkghnGeZj5I8jqDfPnDee1s1ZgXwteYjL3mlaHF6bT+ZsWwI8D3pSeopwAHfbwgV+9zjFQoHeIA6NLYwvQZMaw83H8TalBYDDv7mdXjdqft6DDsQAmySgbD5w2FRA2cKjbs1LhvLpRNWeuU0B/RWT1BRB0fHAcg9XOCYv3dOViDRafgWLua/Dyh3VUvmf6dj6Ux+P9hv10aqfOnhcNuiXtjSobUU8sptz1Jko1yw+SuwcPpgycQL0lB97wBMkwh1L3Cy8+tgrVqPhdxxmZHvrnjyaQz7KoZMmlMaMMeNm88dQaaCLBcqaOd88HZcBUbab4zSFKyU/Kjk9hbHD+sVmdZpNgUZH3QSPk5y5eUkNLeHouayAsdMvfs41K14AK65YiPyw+IBp3zG/FepplWdOf1mTHyxd8hqTAuT4EM8aGEgWL/2jxoiunNPkupKaO1AIzi3ahNasdCzWgcSRUczXunugIQlQD4lIMea/Q5+IxAmCyiJIJJycCq0DsfbO80U1Ww8e7NDcmwBOzB09megQ7zZLOK7Fl6knUU0mrk7Tdg3lxQ7DWl3DsFpMvpvJlvczyp6KjEAA+HxLWNlwKICh3aKYTTkwtuyFh+b9uohzCRD550YJRKeAYWQ0t/FiqtBLE7OnnJATFcC+FJ45XXkKJFK6KU1J90ypdS9i49WPvvwAP4CxgqLGn2i/3i9T3D0/NrRtbRnB7EQc7GpNRWp4N2e20UXM4yzW88xW0WWxXsWLDu0OgXF1VfYzreUtlMSnyqsiQ5fDEmVbyk+v3P36fnyC1EqgCoSHnQ8i2EiurpLDv8Yf8OdLhj+bUyhVno2T7NfRczLtXe+micUB2xnFRdDKq2yCdhCtMCT7+tLzF6QddpqNU1f3k8DT80U2/yql87C7Wljo1j9uqd7CMpBvHHGiiVKFHGVo54xmKo5OGnbd51ak0n+fBfJetE7n2TH6guK0BMUdoA7xydUVRjmkzOBWrr4ElLr8OdUodQkolczQ08MlIFSsgA2Z6kXLGFWjBiN9F7dUhij5IMTMaG4N86zQFcAld7CjBw1fqFmR39CN+xU9avgumc/KcjbPT/Kp/poevaFHbh3sRYi2POVZkSdZsBRdbQOQrVaNK2xXSq011+klrmdvVqGlATpk4lLRrWglUv7orpZ6KBdMrdX3rJOuVI9byTjZmFutO+Z5w+ThxtBfT4nw59OFTxo+ws0AcP5Vf6jv3Y/104YKcPvdzc4X6JqsgAyePMYHbh3mcdO6AwYtMzt2uCUFoLPe8uF/ZK3XkFs7D5ALWNX284ojR+UvMEOPf2NZ5TsI8w9KGRugqolNsWAiIzBpj5VBzt1R7Wl0U949SjT7b5xoBut6Gq3pWBhZr4qqoTtkCeMfBrlXiSev/JFzztrOE/lwo2ZdYcIPHrCVzX92WdbsmD4VMGuw5xVHMq98lfe8IhH1tjd7xqPMHwMNrBQNZ7kMXVjSmY8KC/gcdecdZ5g7TcPcVsY033RJ7lFQ2tq01kadM1/h4vqh+7L3X+bacfnLVADluYu+Up4Tme7/FxSUMprRwkB+TZwVzSb61V7bz5eJms6umKGYtSbwML2t1ju/ufMOxQtPhu4U8CTpTTRy4RGrBZf0+nJPQaxg4ZGYwOS6NVfcI7CN/irrXE024mDtjG/YSDh7c3IQ+jf2GZjpWtg6zcUoC91v9EuM4hdTsY9yeoC5F1PM000y9/2rq6FZJ7xHafzITDq570hG1JN8b36kLEB5kcPxWA6c+/ZdzOnHHlx1RUmYWiOVIeoaUIlwdTUuKDOR8nBBfWFfR17Thn6Zse6jN4ZIvxxi1E+5A5GSGPJs0WFKGTe/FkbcBSdlVr01Rzqzp3HeYGQROFLHX4G2mc6mGfzkk7PZvBojPRKlm+p1LN+qwC+8cZVSfuilEZCdOY8PNLo7QHr8zcW03nI4ONDNSG5lKb82bZ8b+z45NrhvHWFwxTEMp9WKAiCPzsNNoCkmgbHhVFt9KIYOSjLGsJkJ8eFPs5xkNkSG8EpszxvrdzbYfbCmRZlQmk9tOXg7CXbRxzGCC77imEr2Zs3KdikcHiq41PUWAlqT6A6ek2EMTwnipGFhaTGNmIHHL8mYXY2KX5I1GplmNSNT+8BWgNMklRbK790q1muvfONTIxrkQo9vIqqcHIi1bx6jPQL+nGGwmuax+/A/hdCNolCLo10i1mmVyQn3nYB8UoaDK9DuSRtmE8RQWa/jpJl8X2q1JlJyqI81coJgoq9rBF9NGq37SvbBqdkkJhPlPhk7JsIn4STbzK1nckOdwRQCMZYiMSZylqNWSjiXvOKlSD2jAHXMq8NlreRvpGohi9ORGF7PQXR3uqHnE8Kojv1wZaNnbq2yNgZuZ87n8V14cJ8JXokuUYScZ5+1rTzUq7qHulrx/mxiHK+katcmsEBSktv4zDM4HQLXzpQ5dE2Z5L+u6l4nfJSGL0yU6EbBZFpuPB8vvzmehnQ712qStoXVE4RiXPh+X9GnKdMkSKBxohb2TdrtGymRHK1EvT2A/nLBAynUDDbc/jTU0IvWaV5qZQFn8GcaXOnZqnmZb/uacnKnbTZtEE0Lbpy97JIDUYd2gAIpFUeKnFxr9nQbtRAJTuPtMaxjUrd5siWAP6csejXdX1k3dqop58trDKJGtH8LkypUjMgwTLfneLQ5PlxL3htzyA8x/mej5JgnPabdtK6g5qM6/fLnoZYylXfuhL+cBsPD8gM64q3v+woWNNWWU0ko3o4DGci6ZvsDoDqdoLTEA1A76VCVFRKkyqzo2jqBFzKfe3yQU22qzIpKf9W3GsqV9XLooblmk9jv13ezZpRjPlpx3MUCRidccyLdY/47Dv3V33bor77p0F8pt3rjaVbxwOe5fro7RuETy+akJsV0sSEmsaMrXuPo39w/MkqSGZlYZyrWmYp35vFUB+5uOsLgMLy3XoF2PDHfNp9drMClDtjqILrsWkTH+gb8I8YsIDPPh8I/q1hBl45pqiH4Pzjv/qZHf17qVnjJu1q5B63CkUkt6B0eHDkmXk42Z9O3s7KSllT6aF66p/AySBsiEQxadGC3opbE2S20MxuXZb7MpOfxo4UMgCXudjQCHfqGBsNQcVfrVmLtGnW31r3pbUUe5nJCAKbOUbomfX3iiCV6A9ZUVC2kF9N1ZQLnJWYOfl6YQPfNm0VGTwJm1EIcYMHUg9nediNsAmpwaUKPQmHfMCzL+lRK+qQkb41vdHA9mWLNEHIxjFF6lLr7Nr1230J/UK2/FENU7cOOfeAxGLWlxUb3Y24ZnDYv6L63WE5TuKRwB8u237BsthzOd3vEFodNeeovkzsY9uGLNR8a+yX+4ZrzUcHgd2NebYqAsYCI3nJWp+BsZQ9nxQEyGHHBbRj8EfvlX6wpb7g8Wd4dIvElC5nLwPJKBc9j6A44W6xl2k4n17r6mddrnOdNq0Z3kS3WUx+7mD3oy1TUTLKuVaaYNtby0Sgy739TZG776ovLcSHXWZYVrlHKuqh6JvoVQM1CwOqYVBS2WXgKeM/c+2ttXjAgTtfYYbPwDepk9f08L51EyOlM2pxpvxLPCjvO+jK4hPme51dY8D44Nlg2fN2O9eLJfMMs6SOVcR8pzbEd5h/6SzTVPJugF3u4ogGvGiUPas82QfFkQuqGJgimV5c3MCG6F9FADSDLDQrs/ENuIeTCIH3h0R21ZwoHuzZ/1Vri2UHCKsJCY9pw7cC+FWKQHf5ZfHdL/EXpg53eaECjZ2yBqeh/d4HXylyMH18lridgYWEeOHIWGEVNauHmgshrc5s3TVtW25n0cI3w4kwZsNU8EuXELLOb+VvRcHKfklFYTvqW5GtAJv8Gv2X9v65juVAAqzGbJbJX7vGF7FZzgl3l+yKxkGlZSwGA1kEg0D7MUsxTOdNV4FRpB2ONpxIj9UVgHKNQmMwL0Kctcz2HnfA9xngxwXZLa0CJnjDyAK2O4suTrCJ72CezOZq1R8aE1WwHla2LjE/H1ZiMcCqTvgBVAtIhU/LNAUo9qRxKNUlUL/KVzGz1Lj+ZjgvbhIm6IZugw2o+K4psDqPHoquVyI64p/qr8VnNUx2eRfBP/FHFHXFbcV976vcNPjzAP2+VlH+Zo9b5NgY5F89JA/12Cq/nGfx5h7lwFgX8+T3BMKD44i3e5gv58S+qktv04d4cXn2dwJ+P87j7U0d8Vtr2L0rdeIKVPtbR9cbqFxt5S/XPVLGJil67QOHezDMPzexEBX9UbR0w8Q35pw/eVO27b6ro2eZ7ffzOZ0EYPToOGBd+NAkkTTTVae0D+M6GYJTJUV6rJa/i80X/fPHzz3FXBOeL9tbDrR7qFVRUxvNF3NvpdbcxE9Q0Vjli4cpUZ7Oj/G5jVlYNuaQws2M1ZeniM01pUVTo28juHuBV7+qKfh9SMJJkPE2y4q3OIYMsKdOPZxgGqROK9xgK6w00PBXELQ3H0h0skJMYmyi0t1H1Zhu0r+FmUVAKuTkSQ9vttl/nm6kr7VhydyWsaKfJzXWrh6GoJULaIEFvuwuPdPBpIB2zL2f5PFMZy2VPL2R0J6TGB8WRCpAxo+YwICtgCRWfi1LEhZe3YaY3CtXlTHQoCK/UI+kQsSjlUsvDzaHhu+kRipQuy1i30MUWNrqO2hEb6qmYvEi/Zji8UZbMltn866O8HB8VagjtJFRBDST2S2Pjaybf39Wws4WJEQiu0yi1ADowVxGFxk7lOZyRGbsS+1Z96O5CGSwszcDWG66Q5FcCDGqoTOxKoLEwOtsMn9LIsTU50Oc4OUPYJdcM9goQLoINCqq3DdZN4l8yxB4lNzf/xQhJ4CqJfsk2zxblKVrNFV/hJeb8WZVxKvPCYGJW6ohZA70IXZgJDvS02tpOaQUTpPk20gegzNY9gSM/COO90ASlJnV2G4PpohRpw+S50OZP0CAlE4cNsczdeFC3etEvmZ9PTTMt96LrVHlbvYfSERza3uk97G7fk+gnIxuuvfmdrU7nLoXJ7XZ+LqXjsNsTsbuAW5oHghXdsQqjBgADm0+y2aJ6Np6mRRY/nwTvJswhA7MZw/R/ngOel1UuCjgH4OgQiWi9h65WFSx3S9zt4KSXNqnzu0lw7cdUPX2lTLVUQDtcLkImFpe8m1ipi9Cc/kjsiwNxLnZ1vCZnHHe74iB2GX1xQEY2V1fBAdCv9x/c2+5QnFJzfXmAEVh07kEV34HMGCM49iYne/Zy92uVlXBZLkrYvWX29flkfAJPDj+Ii3EOMHkCRIR6ttFhzzAcy/v5eFrmODLMWr6YykrSaHe6EqfoKZGIA4kU51UcJM6yJ4O9OS13BC80LNLzrxP5nLACfLh/FBygNQb8s2EDctiLjadGPK+CjxPHEwf7IadcTjhON73COVf7CxdjY6QpoNXqo1wp50O2kIBMK2tOriyQtL5TxUYi25SOtIvsdtXvvZCpjVWuxfUxjpWh6myeWXPGMLy5Z1DJw1/00b+A8uBq86eNF1lAyVh1zK6NrvKfNbcrlSlEh9V2mVc5ABuZj1u15CY8PLNl+XFLFtWjTp+ZrtzMVGWlP2XJMHOrZMja8b9+h10NPwtyjpZAbDA/HoNnUI8+9+J/AbIhiudiPJ/oQiHZfNAZT5JvDPpd9m3mxawPSM2ISre6d3/H3EpwJnV//jnpF4fJB9zpWDscDZIY/HRM3vA8veanuUM27qjoxONFACgLjrWID3I6kwTinhMonmiuTihpwj1jpqLyy+xV4rdp/Luibo/QUkMcqEDXv4wpiv6eMkeyzC3Gp+VeilJioSpWRDuPzTd2XaMcfEdu5He7NL81RPiYSBgypm3Y+XzfNKMGGekA7SyJXscJQuaiQs4ij3+ZBjaLkLSFAk4jW8NpaNpNsRuw+jBvSQyMBjAcxHjAQalZDMlawMH3wERGB5hBe+i+DiEGjY6nJ5rg0FFpO0Y0pN+Ttw8AIEGU5sdLBVGUNAMgquxD/RUqsKHgvxIdePkt7szfF5jc0S7HF8XoX6j5ebb5LH4xJi/Lp8qObTwfwCY+P4UPYTK2QoqWsUj4w+0wgr/4/HUyeBAxzaxk9OBNa3b0CcNQ2mfkHunwfjtRF6c6wxUxiwmz2RVLMmdCgw6bJs9RSiI7JKHacii1nI4bnQi5JHbevKkGqUY59I4fUm8qOGQdroroWKwuxTOPYRTbPEygblfNpWn+xTiqWFQ9/s3QfjOMqyPByr2Ruz7eBuiT/WG0G9y17YBtTEFkhgEpBO/ydndru9e9f9+yI4vCe3Z1ddsmCQLkeJtxRLYfinEwgXf+qPp/VEBcK/EGTgGAH46qDzWgavPqijhaimeg+Wi1/VGVBMyH5CHmcCRF6eyWOpcOKrlLGOaS/ACgp2H81oieDipF9T6IaC+n8U6jM6qbhHUnsvPFXYmRXsNmRvFB1ZeY0u776ZiM3oBaI2OJ25iJLu54TrKa8MUaxLrP4Ug9or7OVSwba91GW3E/ZPSjdqEm14fTrCjeydOJKLhsfucOR9d/VLHcvqVAIEqcTXSbC08QB0AX2NJCl6Sob8/i9eEEzg62/opFVYjbWf1Crn4pV99d/IFZ+o/SzP3OvU7HgEFkcem3YCDDs0ceoAADxjHSQEE3qs85knBdPxWmBAZoZIQBI4Bc5p/9NTHy1lUWM7kW9ajXbtPvQ9wycpQIKPeV3GAlEunzbRWxFhaxnPtsG5/dc5/dj6hXg6DeK6CVm0d4P2y08qRlVLO052m4Ujz83SBTTgwwaVqKW46Y88HxWZCG0bIps7ozf4ZZN7m5mS0WAOTQZj0dGbfv/sjomaDISLyaByMYraYdjIda8+jvee47zaV2nFIKYwBW3anlSvSd2Hpogjo+0qGRb7Bf2abE/VjQfixxg+bCAPQAzqLaroQesR03rm/LdnvjfQFdqe3OIVOpvfAoMvF2Gvb9qEFubCATVmHwCtUmOPcsWfZfXF9HYmOrs2uwy7G5sbP4NxkNxEsdqdJNqrB/bzxtU/cb36kMO6QlOfa/vhcB3Qq7z+gfUxnPBNFHfIHB32E2BE0SNgA3q78zNQrAiJdwaefMpZ372pxJwbxCdC875K2GNbxB50yH2sk5taMF4IZJNSFvuJJAQi8ULUXSv3llmbECv7/zYBC8rmRU3+4AUxkCkl5DCG10owBoYiwkZOxe+d1D+bOlYwOTxpmJjrnCWTl0bPE0bMRaolf4noy4EEavSFllpv0VV+7pNAbOIJRijypAOZYaaGVXQB5kzzuuAQ1tFifAPrIHfWulz5hLkfFCOuTJCq9jndjAFOmTyLkjKdp7bCx7igSHUcguYSIch6Ny+2Ns83Gc94XXvdyGC+eSBCugh7kRuZ8eLfcimgE/malYD7WojTTYig0WOrDyFO042B0NZHaoHxskYBgFch27hhr+R0D/Kj3+CWWak6kyrxfFO4kgtBDCgL/nZXBffYHmYpRq7EpJPIgZE8lVfAA01Qnx47rTwmgXYJAcj4eoFcpQRVQhn5mjXihBvVCJSqHrbcAC5lKgHg4CG1KDx2zTz97O89kcPeo6IjkKjipRV8U9mqjEOCskIW5aHYo0bH+2HtxXqQEbIqaoV7DZUeH5bPM9HHjvtXH1880zAf/iHtC8f1QCicZtQn4y6jQahuj8DHBAplS2pAqK1eoEEdhn7P8n/POGXNMMNH1WOrCTTIrMUTfXlxzV4xwdA8dwVjWMQaVaXTsMVPY4w1BELnStT0NRuFzRwHI4KjaMolC/zmC4GDLbN9dBy0sWZxgYmmTTjTSstSHLdhv/d2OCtNsTDOfjBiJL1YXy2xdLKT4fmu2/Xwb4TFJd5AE3B8oFrmDDYXP7XOO7HwOT0xDdexkuvYDeQKotnXDeMaZk35zk02Af3ix5WGlL9x3ESz/OiR4Aujqik2NTzG8MLu0E+A6Vr9+5F/ZbQMeWPM6t6oI4qWz/9CSgYPlFJWfCTMLgpIpYSXiF5fobu5tQKdy12yfVP17g3k/jFxV+f1Jh7alc/U9xCmuEwYHFnrx8IVH4J+Bn4KNdNyB59+pql4UjhyefyFfSPpZBx+nFjC7xlQlODs/3zAcsSDk9l+XV2r+OD1SEBwI0QKuvUaVPaxnIRoVuIhS7Om59UVBxTIdL4x7ACMZpKut4jQXltASyG8K2GgXUwOOGd8KpA30tyXrmID78IHbjZX833mVxGfrhLg/T10UgQcVacJlJmI92RZEdw89mmaC9wT7cANI9Mw/ez85WIYkutamznCvP4FmnQREy9sgBjz1Cc/g0Pjhcfug/3VQNs/bip5vYB+G/g6bhFXQGOJh5vLFxNhNfZ/HZTJ2NFvmVhPwKQjv5amXOKzhOALX1eM4cjvl638J8xs2oCfGZlz+I9xrc0q4ZE3R0i43jDR/H9tUV/W7J8Yg9jOHvD6pC98qTSf97j1Go8V4UUL1wPmsDjlcTcijkmutQB3RzH/e1Hh428BftLPulDHLlyGDMsa4JaYopQb4ZzxQLYTBTwx0Fhmx202nij4536mQxy2gN+clr1pP7qSaYbmGqFN6o7CZ6SKBcK/250ICfasBfxsVh+qGfBAqxi0vj6gUIJPkshQPJ5xWe0Gr9sd1MnuirVVDl7S0lAEeaTopMhD/RIsjbvZ3uw62OFpaX7W0mec1mg2Jx504UaNMaYMnoktQgDLZeKbIazmC0BMtSMopSWpzM2GbEzmuRsRxQ7LkEl90ximEY6f7IamRuuWSKQKqLFTSAjil7jL6Ng/fbpI8mRIotAdCqyBvPrCUtHs7lVu8f+WCrF+WWzIJ9MdO2R4oCgTpT2C19ubscqCf1x3oCeqsbapffP0j8Q5tdTCZBYihocTwhly/N0KVohwPbfUnLQDYW/kaw3ibf2AwNBXFDJAbarUZPwRmjGYVadgYIr40JTxYnUy0NeJQETngKgZZL8ZlUDfZ4EsKA7Ix6ddsgleArdzItbYXUHoXxtkkdMtcP3JS9fE1kozEDrwc6sG6gzGfbpCFTAhGggB5l83ypZHlP5rMJLSefYBP5oXCcNPdwTt1TEBGcVgdsfDERL9H/TMoRUAk3SgNM/IszhgxdL+Su+L+icIVsN8hKq1CzV2hB5WrVHNt/5icaQtUrbcA+j6936byiuJ/ZkULbePMuq/oFWSva9GulzAYRkMEVI3fNF8J+EfZLGnQewmGCKr6OKCnaJzkULI48+4Kc3MJR7lsJB0AWR+vHw0UgxHvLHKxc2XwV+/roNgpxjOK5Hf8rF6S6QVr0TdXOQ5l+JZir83Suc73UNFvt9lan8w/K0b03H3ALOWV4FP0OfG+Oqk1ZPECrSW0gZ4c4Ulg2M/j08zGpWOM/c6ki9TdSVt9I8yNuqu0HWOz0ndhdmQwggTMQipGMhs/C6jpaik7/+ui1tbxzohY2p1/yxkvWuBetYm16xV7Pfcdj1l4b/mCruw2z1AwotYEnauDqNHopg8ySUfBrpYDJlbnqeIb66BFls1nQ9QVOlaXKyFSYfFXHqHrCNC9WlQS1KHko1As3VQR/8rEsBfsd64XTeAZbBxvqiOOjgC/22HowbSxm7fZoHl5iLzoo7LG299CrIn499yJoqAxO2qK6kUIL5QHYsSwnZjN1N5JAp3K21fpJHHR//lnq0bd7V1V4pxve7YqkHZftfwVp+19L1G4m7V6nu9Xbub/dHbDrK4CoQXLVizqrRBEtOY58F23H0ORPxqaDfQR1kBlbQdKjQRJ1AO2st369uvIM28g8IhRBAqSUsSLFNmC2nSb7Xn5VOGBoqRm2naF64VeHTMG7S1hAghBFnHT6F8ok5Qt8QELBizzsW+snstpTpIW/ZDyjLoz9HHuHkRqk5Yp8rkkYC1VlJNPlxiXhagt4GJIPY8sICQgw6ETRlNgxgjwMowXkphQVAqdOBNfV1Zi8YPRIAgR4Nu5z5u5g0sa6AKOxt74v6wY/GIzZs4JVSLfb7/yc9HVqXQllCTKZAHOpGMYlktYqn1UQLCUix+Et24UZHhaKz0+CJSlOhz+T7aRrWXwVI5jCubCUkurbqK15g392cdcR/TzIAeiqa4GuagQ6Ht1XZcaTFtfKjPP77LoVnmLYzVyNMzRluamgUhrb8f1ALgpS6pu37+ZCCX+9L3UPjArL7wBxd1plGim9IUBG5Ri/ojvOUeXGJH6wvXUPVh3e/FZ5GB4La4McIO4dU0XcRYC3pUN3faSZPyUwstV3TKOpqNc4tz27HZ7Z2PTuPrLJPW8okzYMSe4BD64ack94vvDneOg4yVHlEf3GGPMUFpQBgRY/DMuIgKTVD5n4I1oShAZkKD6/VzpcgzNu6OvAW8JI+hnaYO92KnG47tAm2tifBUBApPz+KGBifMupDQA6fhOzozAitM0pKGXtd5HH5oCs4j8wt6xOBPfrQvyqPEB+XSCL/eDBA80F/7ogI3lEkLEBzwtmJrbvZNT1QskhH1d+nRzNipbzzISXo3lmL1ji6Oi3BUae4yTlLxM3Pr4r7HZD1KpEx9Z3SYbuzehH5FJUAbdSZFFt5il6lpVO9FxA+pMWvUM6ngWDdWJYE9tYEbPwBD54NK7GlPB1ffRYbsR1esQd7pVCqlUujgBUgePKqVcsuGipbUVh4gHx/4qxuwmyNsdS+C0kTYPfV9m8nxLpDf+nrOwAPqZMBpOh/ChKvcDB9l0rZLmJAhljSGr7lCgAB/4S1kq23xLmQtnXY8I9LZPFvILRUhR5WWWwdmV0eInJ5HGXSmt0/YY7jiGDpyX/b+dUR5YqoLZU3zBOB79gmJoUthpfC2h/L4FVulQHMNqro9NaNBSTrDqdpVG5KS+E7HmUrGTfTSgKBaGJxw0vN89kdx7JzgG1c00vxPf3IoEuoO2QlKW8H89hkaJy9YFEadqGeIbMzOznpyaxbDnTorlkFj8tD8vZB5Eexclss5rtzy6y+R4cRtDXCT477HyAx7+enenHd6BcSVGgu2H/3TRIj0QLhntnchSu4PboFG+H03wyVrodABB4vnSfPwfYGyvwgbfv3LdSdURvWulRQTmOW1ji0WxxVGR7dC9fk9g9n9JbSknOnwPyphe7xWIun3/q4L11QBgtVA/eeC9YF155r/bo0JDvvpy67+R4PxYBPH01W5TZY7S3a4lDDH1SZrJD8nIJzz84Zfez8TL7dtm3sxwrNTWfyXtZXt80fWHqv+6Lpzl+sXeKChYMuU4Xt2gJbqnJvqUn9xYh0Vufs68p4Fr8XZzdMno9+WmLgoYDwr3VCnXtUukGtZuKKLr6lwpQ8+JWOh+fwCYwrbnV04TQPV3drEGJip8TyofxkxhLLhg0BP2AqmGrliVcYjdUwdbZGLANmxT72WP6zK3HTgvrMVXrd72pi6xyCXtO9aR0/Lc18KsKv8NbkJ4kP9gEofrFIm6Nj2bQTyCrMHSs/kXhxOLk9FaqwvsomMomZ1WepbeyaTL/elbRVYp/UYpxq5iN4QZRoLrEHADmVs7H2Rg6c4uawj+ANm+dzWcn1F3061MNwX3+VwZwkn2G6vEHS0IVRYH3kl27hdSemoTlrACaQX2tfJf4eMXZkRb+Ba0jgq1qdnJSZLckQQnbZYbS2ClQD3lKHb4lVXrqh9qjL3i1OlnJYgEzaj1hjaAMve+kOs6NNFA1RBqQOXfhqKcDiJh6c6pqR8lECTPJ6MV4ByF9IOu7i9xnnPbTu3e5KkegmaY+lsXIOljKAwhrw8w8ujmB5gRJu11u5iXaxY1PFI6fwaGSAmVrzFjjpSjduuKRNJGA49GaTz5fwN+VX1I6q8XDlZGdNymkqG83GIT4PzkCnu3rY+XQtIePyw99z8+eHmp4NJ4hd1ofPx4tjuC4bPW1JP7qKvhNqg16pGnRmah4qFNPkt7pI4deXMXboYBvcyE5HhIP/jqPWzKD7D7NFO6SO2T/AOdhOgNOA0iHd0AzTk+CrZ1QkQ09BtvHMxVYdaM6/HX+IbykHxRH/Xpcz6SF+pINpH49hI+JBI6M3B1GkMPokCuWlx2SrcuJyWI/bV/kZefrs1jM2BnUCutOQX21xrGpzMkL9hsLRackBEdnqP/TEgEp2/rtyDUsLuOnRx7PX8Z7sxXKji2jiPWS8lMpeTfelNBRnJVqtkhOCS/ChNgnyFjoBxenWYasVlCSk0cxQBG1Ml2pEBYeI7LYV2BP6hno8xkwSBnSoypWG1CYYbSmOAbLvkGlN6mJu5CczjgXJHFXIY0S2l3rLa81EUalrRKbSRGw0QIxM05EdsrvMpV2p/iz3RA/1LXHkkgO2S25Yup7GQ04tWE6UleiCeS/cfMcyvaG9Fm7na5rilrR1cU6AvjKz9hGPRgWwRI5PHegaNIlGxZDGeYef3bkT0//3kftWBLbeOIqw5plU1c87PSfx1zUIC3EErEffybTBjTH0cfMefz4VEcKQWMsAx7aEOvlAk2vTGBh5ZdhiTJ0uThYBFK2GTo5nRSVovKXE4nSinbjssOTCWkeIYJW5E1L7MajslYGCWIqdIQMQ62MPOnpnWxvfAyEs7z3y0qeRcapAZa5mk3J4Mbp/HjxRRWjW8PpyFtLabF72s3sHodr76j/7BZJennP6Gvs6+/HvK9IcOs+SNrbuatMLXT/Ja/YbUE8hb1nbeKtxEf6fkaL8/yEN05ISpJNqhw9sZ2wWIzdq3p342O+0reOTqW4dal+351Ckbe8vVtf8FHqwIekyVT1hkDD2v90uirRJzw+cz5PZmdf9TSbBZCsA5TNnLIns0rxWwqvquJALza/MA/ZBKlnDDbUEzZLjMVzH9j1UU/kjnl77C4K0aYRA3v9aDc+6dDpf1JZghRNGTdOKhU7RU+olPCzGQ3Fp/ikGpxrT5bzO609PVoS9Z33oVbAHJoW3YtH4nV/z0WiT+M9xCOv46dM/foULeUAwT3doBDr+NPbUb/3r65e2yRD5ip4Gn8cB3viU4hfSQHWiRJFzRfw4ql4ja4EL7QT+l68p7Ff5+cTTXVjGByivnaDc8BjUjSUi31Ago5Y65yJtU6qFZIM8gCTvpSU5Q/RY0yTZjewmkW+foCZWCFYYq8MMq/n0sH+I0bnnGOy93lWYKgTSWxiGrpjNPaQ4lDUEsHZMa+AfppXhxfFB0vUYid3r67OQxro/qY0q4Xm9gf7ET1x6KdwcO6a4Z6rE+R3+i6Sn4vdwZpeVTNtjQwoFc+FeTWQXZMSwDkzCwCooxQcaEM7J029fP0CajqpJCTQb+++uiCPknmlJJRRsBurStF2eRcKzCupAYIafz8GqPJkM59iT7Czp1ahJQJ/CRoWDluHmt+qml25zKe4JtzZM5+3yNx4V2+caG8c7IbiNfSXP8K5kMB4UgVPxd6dlsTPYldC5DnMEfEaLyq4duY+fg19kmLNArgT6PlIdlbV9glrk4cBQjlVd1Lp+l7jtVsfNPE0PpFm0k/FbrsNncsi0pRCrV+PYLy7MECo6zUgkKfxp/7TPn4QPA3D13fuwLXlc9MK9nxawf9YIIU1egoliATq/Pz67tN+iIglgJ38+u5d/fzp3df9cA+f78EO18+xAK0wIoK9q6s9A070wNqjhpfQzU8mzZ1uQFW4OlEuKsRuqpv+rk3ONgkoOAvMC7FaDGxfVG6pF2hNTuXQDFFjgdEA1nMUmv0Sn5vM4u22vfZktrux4Y8A/uhOKjrwm0oyPa3jHJNEEu0F++a0r03HxqfBeYgRwcrTEN7sKUMIuBwqL7QqvujIEfP+iI1dNCF3erJhWkYMgC3jEzjXk89Hsy+mO/hwPk7zWWsA4LZXBiNtA/1e5bOnLoYR/PxFgordSj7cRcZ4hMZli1OYxF0JksazuoRiJRY5R9dr2oiGxMPAumw6povJEUA1PPWyKJHuR58Mf5WA3nVZ2Dz0Eph4SbPCzHgLpqlYQ3zi9JaIYMtKJ5N8nOYVGtBiL6r5IiP88LqIy0r8UgL2+3WsnKIaCVV4C6VeF35cJU45/lGahMn9OiHYQEcaAhC/7IqvOLd2YhW95LHASOV+7rBgUM1kuamLyIchnSznZWiDUukp8+WeMmnrqypuEpO6OV49yW5U+wgFt2s/UWHJ618pgamBLiggWRi5GR4Vg/yUrAdg/RqbBDYXF1nPC2rt4HpP6ux6vYdN3ykVRP8V0VWn+E0xS8akim59nqHY4xGQMa8QnTR9OXhFbdb60m4/Ips6QNFocRcFZR7vi1dl3CKYRpedMh+USgcawQXziRGPCmkrAxB/Pg9G4hVg+M7PJaOGXskz4/YxXIn19BC8tARRCQSRGFbQZQoYGQ+rCDtYYKZ5eG6PfFsA8z4JLLTsDN51aPajL/JXLQP1z5P+Y2dfsc6WprO+mkDRvRKJrR1FyUfxCkdRsh6KUwxChQmLCO7/QHSfufr3hZa3ScrS6jttxVHmqfhyJm06n/sWSJmlqkVBfLhvVkWx31yzYAzyhPRTKammUtHPpaKfE0s1l0g1U/jE0oZIXUzL0/y4Cmg4GFYORVQfdZxCW04T16oQmktoi2ZtptG3UYCUQcHhBzvcr0c6FZMr5LilvT5ZDCHlWorWFzI28D172btvVP+V1HrbNp5O/CD3OieClHbSmZfizLJkiJg/tq/lRjmJl61ry4jntNcCcpLHmApQBlMoHLqUfV2qRViqRRjZRRjC6VAOghHOcQ4zKUZ6jlO+FjmlyoI9XsI3jYX1guiSaEqk43GtdAZlacnjaukzBvfpSuL0k6P4p3/O/zkd/HQijvB60YH/rv65ePLkyaOfTqzc94BZhQTcGISExWjdQaYd0I+zYpxkwcmR+N//z/+290dHlPnVGtRPHBvWLD6gnFvUDBqZsTQxFXckNgLaXB89aIIBO62lrU4K1is6p49m6deWjG9EukLgbcYtmYWnBc8/FZQ4LgrY94posHb0WA3mz67wwCd0TrUCCYpfw9DdIz8pxmWJQNeKfsGtIx+03HD6LaAknk/T7IsuBPc53Xvl0lwLAIAt1zz+Eli1XaDL5N1Fnlan6vo0y09OK1WplzijRdECW9GTYzKEclN4IxIk0oAGqII4hZeyc/TSVLaSlc0T3SamTo+UyLaFBx3VMYYpJAWATK2O/t/K09AYphh3CPmxY21UNDs1NNggFcwG6dpWilhaIZG5nGMc5M+UMnqJFA1nrGci65Lh9A+b9SpsfRovx2Uyz8+0vTeeXNLm+38Nb40QNaHia3LrYlzeWkyzL2cw5VlafL2l7X3SzVvPj299nS1uJVL5icWVNVAQ3pqMpwv0ixGojy/zNJvfQtr1RBabZ+eLrKze6dJ4UmFmb1XlP//5v+YZhuHBD6rZLVTNEqrASIRnTG9Gn94aq07JMrdOychuzloeF+WMuon1yYp8c5rN/xW2HP+XNYY4uST/zaQPJDxpzkjhBJnIXZTSBKxUsdz0S/z88TRBtgTLsNvGoq/IVkeXlHeNBeWRrgsq7aMqCGhEF81s09maZiemyUlzc5VpqnKbCftrtst/YWMAeSqF3gVzoAPWAh/Gu1Ov7DslqjWFP1aBFjeKqrEwkrxN5cnyo/JQFrAzc+CHiq/vsur5FA63Z+9f7UtUtGGDQujZ2DB47epqI2h9/HhaTQqkn2FOXY8MzEdJwTjiYlMW00m7ZBSWTX3wbDRl8qREntVmrjuEDrGc34PNkJ8hIq429XVsY+hhN9luYE/V8jq8I6xRKiuCix+tpVyckepmz+Vzfx/PSUkcOYWeURBmqNZ9rYWIxJM4j/ZQipBp/UBul0meanh2cMy7qGbSMow//QJo5fMzds7c8KjQ0N+0TZp2hGwokieWPpvWbY7X74LWaVWdRT/9dHFxsXmxtTmbn/zUffjw4U9UDTAlrDo3BUzLkynoST7LioImjDH4J6zAks0vTtUIUOy81E/QQR9I2GKUlbPFPMnKERwC6DVgTjKYWFYbLmg2R9//s9Mx23Y3BaJB/dTDeYrWo5q+AoLM6JngyJhdPIFmYf9nmT5zx+XXacLG+RaTX1vlGGCE0oUye2c1Wiq4t3v7Nk+Q2Xo+VRfu2xH0u8qwNbT+ZgTA69lvaB1EAgdJ9VCSSaMQmmmRzHT2apYuzBRP/e9mZ+YrtIIqn08BRjKzG8bpm2nx1dw6yzeXi50a3RfUZW6y8aQg9auc4SqbvMP3sKp/bz2/vZquCgwlJmhCBQ3DOb7Raa4Tdf4bXdL9/12QuwG8JRZcAFHrSzQzM/sOkMT3w3+7vZEDqf86wPwF3Z/j4od6B116R+0rIp1kaD9ADuuuDJoajL5xsJ/NzqSy8aNnJIenrsCH7HafuAL9iVcT4Twg3RYE88/QW/ZmaHKsvmmsb55I/ud76lPfNNU3+t7K1tb07nR28V01lfhBU03v8+o7O1XRF411IfX5XVURuerVNCl28XdtPQev9rGuBz8hDQ57KEErVfgqOsLP6rXtj5Fe+O7aCvysXts7KvL91alrt74csIIE67zGqxPN8h4OV23TYAWsLS8bQrAR9Eys9hD25GHnAzHUKERW129wrx526ZqEy+r6NSkU8vjJCdnfoHVcLrcablZuszaZXSsWuZ7P//8l0XytpOf7pTjNkpv/NMPyPczTv4Mm/xat/R1wjUaf58dotfnmYorSASDgvqLfpFSAImjHBsy7dE28fBnnGFir/D2vTgMj6MbAHLk2MBXlQG+Yu/cjZWuGPrbWxQldsjdU4tbD/IM0LWiWHuizzzdRTDBJZ6PoBvgAVZN73LN0LzmKQKoBWmnLEOIVzgQ/Xm3D/ClyDA3mkgVPPMLrLq6lmQwq4BbHw8zLcZkpJJDmS4e4kZfLE2PxZGSGY/VrXmmiNnehZXIiqQOy+DdkAdF6wlgyY7Ib/JOQ/j7BweUh2dV5sJOE2k86P0w+qGh4hBh0rnuNzVDQWHiKUXgI6KsV1RSmBk9cj+280JBb99Eq2EC7EsFgEMhcqIySpZU8qcYxvCZd6UKYMYKVUQX0W6XA0FsPhVk0ncrvwMzhEs06Y5W1fih/RiqzGPS2WD+lhZrSfcoMQhH/3Ckt1JSS6Azmbt+RSBPJkLoPE828D93nPm8/cl9rNrXxIyUjWPot3Wzl2KiaF9FFXGo9CrFvl/KPY8oFI9PyoOANM2zx1VEmGf7yiAIWJrFLUa5fihKP8iWsQ/lBLFV39SqUahXMJC3XT1LqvrSyowJeeGMsYUR6jFkMcBengomYNjYKHfZq8BnPP3pACUVMRnrznGzDnTkx2pParCQArIWdlXT9rKR6VtL6rKTurBTXzUrpvmSg4311DRAtG4HoYXcdBKVsdp9KygppL2eOZmdSS4DTMFw/DUMZKDk/HH4QhTcNQ431CASlcE9f/4B8zxvEkDJkyUHwjqf5uJid3Iz5w1tl4Gpu0YHKp3by4zmhGTkzkoaMnBODI4w8zWZG3oMWRjSJMvfRYsGTH31ElyvMfOQ1h+mrrj2gHHCqxjnKBNyx8SIZ0I9GuELSNHMsAtt0XTtyELRVpEXu2AjojqyFd2G0Z9bu5sSgP3SfMyc1zKOm0OZWKnVhKkPzIBT4yDkbrQe8kQa8UR3wRjWd6r/hBB3V4Y1RlHsl+dlgp/dVp/0e7+se71OPjSOV4oD2qX5FM9q8XmQEsKbGpa5xaebAnNpL212eG/Ko5iH0nyOyJF2gYpxJ0pd+UpWZqIEsEPsW+e7KUasIvPnhLpEBtUnYhUk4cGmDXbP+6kivH+dr8fEwPjDrWvx/1L3ZdtvIsij4KxSXlwrYTtGiXVWnNlkwl2xZVR5kuTSUB21dFUiCIkokQGOQxZJ41vmIfrlrdb/2L/R7f8r5ko6InCIBUJb32adv9x4sAsgxMjIyIjKGel+3twq+z3QUgQ/M5f1zi6RJ5V0yO/1MQ8bBf4YVqrZGhs3PNpRy7EMFiT+rSUheZhQ84ztacz3PGhmcQ/d9lcF5436+0sfzs7sYnGf/JIPz7BsYHDRi/WAwGG1YJXh3cq9guQdR/mnkcZ4BT3MVfLYoZHn2HWLNRQPrvrm508ys1zHFsizPgp31WDKyWDLSWLIjU23nEkEocvsMGaodyVfNGpmukcaNnbvZrs/B6K6lGzWzXcD/mTmggLhjII+B7mnIUXBFrNcseCY+u/xWDOtDCdw2gPJsyAyy1RIUKKZnHuPB6Vmv3aastWv4sWd89a7M6uWSxjUSQGPjtTGrf9YAu1q7phaVG7mMKxssZGU4wpkcE3nzjiQLOGvkD3O9gKO7OcTPQb5+AZ+5H6sD/uoOzO/LHebS2dgwiTlp3Fa/T8iY+dl6/lAmzDSr9RlAkhUNy5Whu8fn9euFLhAKQFlxF/O40W3mCbUTzEx8lsu1Y5brMyzXDgbqlqxqEx+L3kHP0NdEr9qzb2FoPxvW9XMjQ/v56wztZxj4M5ebJU0F49W+jSHjjN83MWcOl3gfTk36ZUkUwPW/aFr/i6+sP31X0LhgS9k3vKBZykO5lIcNS3l4n6X8VhZRuo9+q6h+WFnSZoYRYfeKwe5VE+xeKdgZtrEOPiqiuMlXhQ7GbQD4RgIQofdGQg/+1Ft5A6fX5wDAJ//o7p6Z37e3hmOVs3N5VUwnYOfyZ8NU/rwbC/60SPBnBQc+2Cl8kFP40DSFD84UZD/P9CWkavqDXhrDG78m09CqR4C5hpb2b+YaPdE/7Q5VYhtnftnONflgNRLYlLU23fLQ4zcWMBu8r0cBFa9RXiRFFkf5s6WMIcBN9jTkMSsXhs6Og7vqeu1MWVW0URH01Zy8BUYZmkTZUfwXmh/nnTiJizgs0ozMwa7gjY6wQklpKA0IgHOsEHwMI7qiQLT5Ik3Qgw1YiodBt7HfHdmvyfqBcSqx1cOnV9pImfSCO+6wPsALZ1j9NzSGD+RhCB955+OHwZu/eTs/Xw0wG9TWof/I29lClx603tzamonoYfDT37zRwzF8sZN71I2e+KJ4+BAzfivfTPKlxCdtAfyogGI/6oh0SXgVX+CQ0PMmkc4r5Kza9KFDBgeALYJZJqvbH39Q9H4gW2eVhgEzMkhWycRAzHjEu69Em2CGyU14X7+DfLy9vf2I5EHVQ7e/piTdVGI0DvoHqaeq8biC+61thvuvbNhBmfG3Ip82dD0nmXR94yyZandzM1K2mFF8kRxIHc5gm6c3vUgdW+7CMbRWPpVJquiAuY2LzGWgvcZr/li9x3M+qgs99nHNWcTz0q4tZO571pZQ95qSDBNeDav4hMFzVVhG6VqmQvpo+JBPg3JlW6QLcjNoU8aDYTrAPGvQIvkW0i/CWYytgS2+nAdqnnlEOzwt3SiL9rW6RhMvhrrKaBaFWVMl/kFXe296guNhHucO4Ryod7rwsenjMyY2349HWVqE+aVTx/2kL3Hfz39ul+2BiUxhd+J7NGDO09lV5Ml4iDLuut+RUXm+DP1V7+Xcgv0LOZpYAPBoF5L3KLgfz07sxrkM2tMoHLdtgQducEoi+CpxG15pYtTiI5v6sqiGhMwx/BCjJT+ROg5JfkjpTaDDRw/aMlt8+9Fm20Q82bZWibKx3BcZpqPQ/MJsa8skD6DappkHA/Pr382vDf0L+oDTou9Upat8Py+94u5MU36lGoIKc8hUq+EHkWPoj751w4k7kzjLC5pN3wZHHnEYUros7Z/aH53+FZ7d3mLAlvbR88OX747b+un445sX+uHNy7ev8ZoWHZldb1byqkUbiHwaRUgeYgekI7yyGKtgkHFg/TkaIIFf/D6snI2vTcthMeWdgylFv7CYMqtjSuzkNxpEA3hzDkQARjrejXO0CMSbcRx8ZyyfReUZ6WkCTEjPq36oNXV728ZLSDcYqLQO8ZWvRly3gVUF/J4zWEwv4AwXDQcCWYSEbsF+B3hfzZ/dajguui2dNWySmbtJ2OEmOZnC7IANQn/pzYXor3/9u/mF6A+sByzgzCwgU+ymPB8BQ1PE3gjPAb5YMu1BxFcUNkbf0AiTItUto8CCmK0OZWaR8euLnV3189nB7sc20FQkH8cYlcdE9pHnttoJsrDcCD23BG0IGcPma1vC1zVXVdLFTQuY3puc8R32qGv8E2NJApt93DE3tPtGRhCTxi+6Di7Wy7fvTnCnF8bVXJnYquAWhuzNdAwyIBNVhkeK5vTZNdEgi9gFxrRRzZkTuc/kDdIxFpUNk1H40FEFhHiQuz0g2m4tsmgUwahRTLDRplBViKw8Bap2W5e25vAdeGb8rUUu/QRbSQZWli/8egtwqOZ5miEvpBuiVwf0SgWcUE2wDw0tSXtC1QY9uLXpVTP8lM0ZYcL9wFKpryTFxhVAYwrMhiAHBk/usOBF02TwDkDPhXDWmQoGLPjXwRIEplEdI6QVO3z7BmysMOTFyuYK4vEhLBepd4kKtCYdovhI2+2H8iV5DlfrYVMuDOieBCnGyMSBl2MwYySKPE+8wiGGwjj5yv3KXH1ZjukhS6ZE42g7PsEVQgNL8KSP54LnvOviyt2PeKCN9u3t3eN1RmDmbMZcLKzTtju2n/7LY4v+i2M7Sh35lXzZNTPIHv+d8bbXa6psuFUGhBouO4T+CUvKl4PTwBtvlNxYjmMnLU81ViMRBzYkv1Au2oeYKAdOUI3pstSGYWrX9OtjbkuT/WUWMJ6fcpU0mgK2dw/2lZHjG4pUi9a+q35cN9RrLCncMc+4VS4JMBJJNlQivsBd1ptqVMu+2gVd6aP8xB4ZkiOSu0TCgxJcEL8fmfWKzGJHhvOPJL+vfuyZYnttt3UpgkRaBOHb1WgBSPB8URVyowVlDnInx1LFbPcLlcfH5e8MXuB0+lqeqEtClGVKD6i2N/rRGg5w4y5ekADy8OGqMupmKpWYCaITa5yW+X91kg/qIlmTwNYEgKIy4Udmxo/4pCojbZ5YvKiaiwa/ZpTEwOiwQCakYxz4tmrG4Y1qTu3vf3js+5WTnMRD3QKJhA3VntSqkQymq+FDU7XvebXmbFrf/9B1bOVRqLO6XtxLoT7q8r7OW9z3a+a7GPvBi063z/w+sOOFVMEsEoo/sh8uxGxhctDZLCCOMlGpI/F0xeSGMuUDT4rBv3joofMV7SNNIA5edsZ9+H9wM+mdD0XWuxyK3d6fQ/G8dzAUb3r7QzHv7Q7Fh97hUBz13g7Ffu9kuLKjPLcqqgikcw+tsf/E7Os2wgYLwXDJkrb9NcOooBFTlMlwID/QTx2vCvNsDK7HwJP3oP1Mw24Waj2RRqunqPwhFkW/sYMMF25k4xltJWsAF1nFIXSuRZEsQVVJHnyH7Pwp8NtB+7uHxcPv2menxE3DU45P32llccyb8fKHwXenjAXE8jGVB2l1QTGLcwzLDL8xFDNalAew3LNeIRgz2IsFdtaLVmLW+VxG2VJG0EdTBt/muYpA0q1kOSEhxBc7gHhCPqBx2ZAywc1oL3XCBYY/l9IaJSll2YJppQDku5ixBADYHic5ct6TCHZ6WwX3YfLvgTqtocpzGfsFKyGrLrXrWIWrOvYN7wY13qjf/er6sOVgywCtkoHc2WmYI1hppQi0fcnX0j2QSpFCD0dkWz2Qi0JvgM/Po0LVdkr57qKqT/FfUV5fX9kUfXNbwleyIQzBgkU1zmDYEzVYxWT3q4p2Kf6MghDTxVTClcorsKDET6tFQnhEqdyKYOkR/hjwKMy5EyJS7wo4F+aIY0C8oU3MaTkiG+UaypkcSZERYTEESqXcqESTfF1IDrpeKlWl/vXYu2uRUWrUVD4piVgAhMKkSLVEoBPmPOILPPb02IWDfnPyyW1AwpnvUAe70oKtsrabJ8vUL2l2OYts5Ng4KdxX6FIdjyJ8aXyR82mYRWPnlfu9giWowTCYQndfGlPcmUh8KVa4eTkWxOsIj29O/v/3JkUqqSY88rVSO4jXI9PMRaYZTq6GTK5TzFtOqI7WESpNpZ7PoHpnmgLfjy5WR6TjEXorRwGIaMbLXIUhz8lDb0T+bhtjHUfqRgkmvW2h1oc8lVYy3njzhvOvOqpW8IOUZexSM22TWmdR06YoCgBMJiy/HBTgy3FKMb/6Kor5ur3aB3juEJB3GJB3OueSt1EXPfYu5VC88W92Oik5eAeHAn+SEXTwBgPCNYhQEkl56HE93dugu6aOMqturvQYKrHH78WbzBujg4e/Ao4I6YILNxOgbSxGaZkUva6gO7fe1Urkar+MHeQ5tITow92ECBAn5ohD6I4pI2kPAwbJVMS53x9hCsugYRPkPpTTJwGcb0TVl8mot7FNexrorFrXHNf1i7xtRQO66oqqzUZ7ZERrOmJr2rBlMOrbyIBMEU0DrlEFXITIKncyBYNjEDuxENv/XwkxIeciKWT7/z/wKxdW0S5JkpcHo8JkYR88QwJOTRDByaty0fc/Yi5r1xiBGalJtW6PK5I40+LKK3HHUhfOPJnPUi1tDl2AMBBK+RrD0cES53VqihRepeXGgHgzZ6sysEmTd4LctgO5WGXtnmHiV7+nqiMrdI/aFRU/3Y/U1fnNE2QfmgCDWgI7f8UeNsMALz1tYoUxBWfMXRHv9haL3UXGGqa47thZiREBrQACJzzUDNcOIAzLubm5MQKKD0zG2KTYCYAoyhCI9nQiBgMZkkJmIa4wrsR6ydWks0pCxJWLuMpcYKDsC8wfCu/NbzGPxnEIb+gvtYRBA1Rr+FOgPAP7InuXzuIRVnZfrDQfREEvgVJ8HsKGQx9NNSOMmhjJEIANpok/PP4JnW2NMDymDLs8SUml+N+d4mxzKebHBDmMO0SnKGIjuoU2SaCMtW20h41YIBTYeEA146Y9p8jq2k1XJVb/TbtujYLm++8pxQ9LFR5atcl3VU78O5b7vGTlLG/P9snZKYr77TOmks4WTCcDR8YKcOGmzkYVbHcL+1POhKeQZpeiRWVDrRV35b7AwUU4OH8wM9uq2yP9bjP3O+uodoJIRPfhrnRUVpfJiu7FZNXrIq/FpblYS3NFozTHDjS+oKd4X+eIVix/FVtRhZantEvO2g/ZJUe+4JdGHcK1hw9FZOlV4HijSGWUK5qrRFvVJaOvp4QOiHn/bnQCRM+lNoAEBmOraDudKXlEZi/OA8KuWGOXCospyWAd4fhxIikm7aMa6tmEyFXjlNtbtIeqcDHSdkMNTEpPiirnPvLKM+F0XPgcipwvkBuql9dPt6J+juQy9MfIAsk5PJBPj/jhInmsUX8WwPZE8SV32DQQX9B5BNir+8xZbRZqU8lnI0O+18oyV2LHvxlrWeZKjI0ss7Ny2b8Zwqg2H4Dl6C5YjhqPAZLvif7TpItmsRhou20ox5kBMIADRL9FBisS9eCdxDtffJFgQ61kHWyUyf4OnjenSeds0g27PHemmCtfVzoPHPZyHeV/ItTW9OV9htUaO6yYV4H35vc6a9gssP2vWZUahpstZKuyjNeZJi36imBWlTp2ZjNv3XFT2dZngtET9vo7n7I7ysuGwezU5mxUwUyAOxNNGRBtHkeKQ013SnAkO6xoEPno964vT8nWRF3BjwajtZmuC+HY4Pl4EMXuFYSUenqxqFWNmLkUp/zHyhy4qJtNkMEPfxs5FhSiqDByrFblQ1R5QXHJrbUKVZHPkTJZsQP88r9qgIbFZdXsu8j+lrclv2WVO9cRPwPhqzrxlGCtb6XyACvKh77Ub1DEGEIO/AhMYa7CSymm0FQ1peWBp3h9G+mdHPIVay3jncSSwVT0BB0lwgu0evAo5+F2P7euCrnJYk3OmyTHesrSc3R6jZF+yA6XqA9adTbYYFWN2LCYCe51cviSTCvW2+Bb01OnbTQDarf746B4OO7rRIIIoTGcJoMrGUZ95Pfk1MfidHTmmwtydrWamgVqJL+KmlaTzZO9PMnng+phQDepractZZXVq9ze/MotaWJlQ9BBwyL06dng4fY3uvfVDmxs18y5tKrdkpyNJpt95BD4h8jarzkmTroHI42bFmCNv7VlfEgTtM6Qv+ikUd0ZXhDa5aygYmyM8TfZz1KgUNEwV0cRoBIzVJyRtldVbXckRT3nngKem0U6880GldSTUj9pVnjFCmwDq0d2cEYPYQZjXKRs3lYmAm14xZozt6icuU9kojPbzDMm+pAWZU07KhaJFOH5ws3Rdn8f33rqq9+hd1FO4UAp/F3jya86rLL7SlsWYntS/4RpH9ZzpzfAlgFDKOwNNrtNNg4iBsDoc1CJTV4Y4aMIPmYy0yvxfdI/AbkNEdfZkrjG/Gp7fhxwhVagtwGwxbM72OLRvXjgfxHzywe/Kjp2tfOAnWX8tTpSKGCyfa3OF6mV1UBSAm7T0j/RTJ8FeuwCfZ1EHN8p88aofKCbkRSTlhlOcOh6MvGhoyUcjUGO6BdkGp0CmKhGFbm9xZ/x/OI5Pg14PmR5Vjd7qZAhkdNlUy8F5guRKdD1ccpe9dlvFT3Eg7mKH6PvH0Z+X43r2bKIoPmdVIEXfvz4+Ift7b+hJ6WvZNk7BqlSrO+l2Uu6Ssdwbw54vnUi3zATz87g6U46+GG799P2tv8wssYrrF7M1Rv1BpnjE2425zmHznqu6dTHTAFgGudytltbwj7oqeMLvfj47vZ2g95VoebbxjhgEFbwTtQ+WONI/FLBAuA4nLd991FOuEAIEuL/XmUuf8k0V+xsY6plm9ngfLLakb8bdhNlApUD/LchCsOqFwFbFhNDIC9pofnb0HgubjSIe9qK7veMqcxjX8tn+E4G1aMr09iMAcpr3a8x1auJ2SjQEXm7r/hG5v/At/yca3Z2pNnZcZBj+EJvbEx+jW/S7e24wsXSmUd25e0kLVoAlLYifMhZNgh3qLmfBWN/hTmLqJT07fZXOReE1YX0XUb3dOUludrb2xl5M7ht5r7S9o4pUqbBa1jjmaW68BpY+7WEd9b8URFe3GR3CKR5TSAtavnfpUBakDzlVC0cgbRBNSAxf1IGNw8eyBO+91HAwYiRxzIphD9PAdPn+ulcXb+RA1MvLNwXj+lNMUXL5OdS981M7D4OeYBeGYYHHRFjStsVdDV8eeLwQr5cwHCfwyaK5JZWfcoH3IT4WXvAyg1KrUq69SvlZQm2dAeAYRjHnkwP6Q3C121LZhgMzIDsA8V4e6eLzedxwTrUTb/L4pQk2G35PrpexNLxG0lpHlzl3lZX4RPMI0wugNF+EybwSZK4aTSbHUn6QnCMMvmBcOYwGmGI8eWu4tBZRerIefMlzObsEQHpdiV7cd4pKMg32+4wSabFCWyr8UuzfZldkD5IKViSfPhSxJMYRH5gROPrQMEpTU6SUVheTAvi4oNcv37OXo70SzVfnKv8MlZIgXksxhIt7Bqwt84E0AKTjOWDHTW4BNMmzqIiOkb3f5mrUdNMS5OnizrWUvCoD8xXFmsZ9B7rAuIKrUi7RFc2yFPuNnj8PVKdl5H3REakoH/o9kAj9QhvKHWiNdgAwBaO0BwV1SfPNZ/tTD5yP45MDlA53xuVjrQ3E3G+G00pLnKEGqwRVkdjmWyEqmd2uTDmF0TFAIjOZ4Cv3/vMzv75ohJwO4BaOV7Q6C2jHG7si7w3q+4xvJGbx9IcbhEuifc2I45XyNebgCHSLhYAZA/dmdl0wQh1L4uYolBCczaxnfcRtQpk4/B7qH6xU3exYPECChd4wuZtLDpjA7sNLmvFMl1ftkR867PfQSyzzsU/R4MYwMwcfpTCTXUtqGObtndzU31gSQMXOmmgMi/uPiHnGZl5sKuNkT/h9H/8t+72Tz/9+D23Sv6IV1bsk6AhmEc2tov79QSSHdqBHWH0GWXaQp3DU8x7VYBXM5YHzocMIxSbHn8fVk09fu0c9+H/kiGTfPDLzqIPcL2Bv8FjOJVMldUkTjDjF30ZCayWs+n88q2N//QNjbOSCLEPme7jHKRSXyalVKgyTVXM3b0MRbGrBYVnNwzsnryQl235s3rCMVNS1RTR5vebm1vdnz8MO5Qk72CCzKR0tcnddJkjNFLPfe106cSow4WVmqDWE+loyMgP0BJFltxt0eGERPN8v8fQGj87fBXAGlUVKoiz5D+dUkATxVXlGIR3/XFfh3Hp/vzzk+7We6l8dE+i0+7ZLRD08Wbw7zurgwSpmPex2PxRS8nnWfBn5PkPQZITYQmHls8j6LeedEnd1+o+6V0h+o7EYx+D8Fr0vRL0Dl0BEIfxYUVQohUWIyPtV9YXP+Ra6RaMVrlptGFtpSbatCATtfI9ee54pwWXqIMWl6n2Itirii70CTFSfRFFsIOyhiFnehdPlRRhtEcqC7hxIIsD8mfQLjvdJ4pOTujKe8NNYIqO/jajuKqCJEP6Rt6/irrTNnh4Hyw091mKUg2c+pyr7Ck3NNsv0slCRtOR0bBVYwA+qda3SzFcNAS5ccIDq9hpMhqwepApDtTv1ERaq6eyHqULk9PJxH0Ky2vewng4cx51vmvzpNLlqGeThcnk8a5k4a7FmdKBrHvNmbApvYKbGLuatLshLfcizE2+p0VYGhgsbBarRYoXPpkDOvWONavemIZx+XUab5XSITcm2lnEMxpFkU26JnM3an0/X7oiLUdTZxD0xsKYHjmQr9IZyEjOIJyHWrpxE63yJQN7PWl4Y0LwdSm/GSYOZ6W2Nw8nACv2zFNCqzf24wRQPaeUY85AJzL3nPRkC/Op89EE7Ok5IVTZg5qMCa9k8NRB4MLmKMPn67hgj7MovIrYs0zLZLEMvdT4s8Vr+WiLK+xhFdQbW0W/uOJG+5QCxa4+q/9lGhlEod74XOgFH71qnJdRr1QpBaafVGQq2GoUDE5RnGGOwSLo0PrdhWirKNy6rWEhT7e/zIcnqujv5s3jH3/6/skP3//wY9XH/snjVf0NnTZ/pqjc/CuWJ8tz9fdc/Z2WRu80tj8v4+D0THwYBpZItBR5aLHt1tIbrWW3WEtTv5amey2HTrQYhWgZ2tBSVLFl6GELKWHL3Uyt6pZrKWLX0mSuRQSuRfulZTZsC8l0Cwh0i6haSw5LbosWI+otSYo6+WIWF1671fbtGX2lxI7KUbKOSCt4O9FdG/aNQqLn9dLVjWD3yXm9cH0L8F0yLUEWQskZzmj1/uXYcfC6SAuzSDwRHpx9tQ/jxta4D3npCposRJVKB9cBsSlWTu0YexYF1pvhLMUw1QdJLxLjdE4fUReJphv4+2gJSzffmwF+gGjMWgAJU2aXfa65hrx3mp+t2BWZR36fwM/YVyChRWhmhCq6TrWD2wBk0qDoVNsVOfMb1Ww8+SVtYaA5ec+OqkeeKXzIc7tXfO4M+iggAdoA+P6Kha0i9G0zwx9V+jmVft5YmuGPKn1Opc8bSzsIpINwmNXVFxOASNLbBNqB39J+S6U3so3aVhvQytiQseaB8th2x3e223AzfLSwzr3INatFk3xyRfJHwBNvbN4TMx0jE0p2DIphjgLU1AtbvegY9Awi8Ral7YXSGvILmgu0BFzZwKg87IlirCNgrP/lTZMW/Fu4b6fX2PDg8d08uO57xWu7/PbrzKgjTBFXhtjo9rkne3WL9bd/th7tatlQnuI0w9fyjVrDwPnat+ZEMc4iL7KSrtHlbT9eq5znAZrYyb4p9hhe4VNtFBPPcyZsGOP3v2Z84RQFEQ4gBUwO5JhpPMGLKmPOYMOWGPsaghMum6alPCAtOrfrY9t0BzX+wiRdnjpafDjL+cfn9PG5/njufDynj+f6I2xefc91vfBx/7FHFiHUXKnZOQbou+pVEUD8md7eejjmbZHgbRsZ8Z/nwB2gI9NzpfTz2Le3GKV2pnXv4vUQfWkpJHJVPH5BO/xVpqS+VyTl/VOdsP30Cs3PVHPyGo6HxYh+LjQSRg9RwFWaw9PoTMzwz8PuGVqjwo/HZAjWlNOG9gHI9nDkxcZ31cQ7k9aNRt+DwdL45STyICPUAj4BnNsKnojnIyCQN0oVg55ieD/Wy4VMvU7uJpSDPaTOe+iphURzteLK04ys2m0QFAxtrhAcFnsHDy6Gcp8yOoocTPuU0YHjINinjI4VB68iB60iC94YwBv/fGms6mJ9DTkLLuPT+Kw/c7CtIK2xi20yxjtQCtMKJZ28xBR+sK15dbm0/hGZaNc/bW5CE2q/SqLSaK394AHFy9kDbDqMZEBDZZxmM/ywiMYaYUwoZfiDCIMXrSYhIMMaJ/+fP769fYHDNSpE45yrq43QatANxoX3JTsmGyBpMkforWX786+CcccWM60Dghr/ehtTj75iDYlOfTXSKyf6h5xWcEVhHCW+zhBfZ4CvvqBJcK/U44XHcK+ghBt4RfeSOIRoUeC0YrxHhF4I4FuFuetpy4+qpHczpWvCrFf3/mi0Fhqbz3kwXvkrQZzXIfL7vfY8TMpw1hZSbjTP3GcmgvYt8+eBWCdyRUwx0J21NInFY25wFnsmVuCGCv2MAZ/tvLTKl31U5zeG7l72aa3LzKT5YeXUz8ijAuJG+i2RaSgd+Rg/Cs/uOizFNM7hRFziJ0DnUYRzXVmEtJ1YozK9SSk7Io/kxUZUvzbXYyQP1HuVzMvRCBVWeA1xrwrqZh6KO8vQ3d72OcGf0dlkG2wMrLVuuHcWXjPiO+uwQTdiFd83B6QeplvQc9oBSTjDmDtBsXqZAbOYFimuG3QIEkkWHKT1dzw8seK8as25imXX62H7776+NjL8JRyEdKs0X6DFNTHq5o4UNpgztDKZkzGRMzb9knvJW0Og2tisMrwBFOZ2iDzROOuK4zPXteKxUFKFHaq8LYhOv8xkZtQVM4J4md0P9DVmxKSzdUCPs9ALsDsB2DlyrxwZ8aS9QmghoBet1p2dIHLKK8voZzo6jeBAh2r/0lDlWGyTB7i8ZiGJCWaJLX5ZBGEHpL5cxfD/skDLnu7fO487P7VrjqL/Jr4shPnq9192JiAF7x7s0+V3A5KpQHMvFehyjWMq3ZkKa62jTClk5UeMSbfx008+WdPICO6dy2iJtyqdP0GI9NqiDceNKvn4x5/QhNVa0wWSTw80/gyOoKICdmBuvVVOXHuXVkgAfRrCEpV41qAFT29bKGD1NBiEHHWUvQPeEyR00lkokjtO522hUG9XSRlRdhhNer8KClE0iuEM+73S4oqxBufnhy92nh+f7774/fjg4M3R+S9vDp7tvDn/9eDg9fk5hh6XsH6fBXcXJW+F9xmKgcoQZXMTHjH9cpoV+V48jDIfL1UPogCLJQhm79PQF0t8saKg5TfmqmVZKvNd2g125bU9HJKsCvo8/rslInCIzII2Brg5GAN/tD8GXmXX6Bkik1ua7yzgdUbFPkUgk/YZ0Mw2OXNV7FZYshTpbFX5jnUqNi28CpqlVT7LGs+by5P5M/8oS1ftYHiVcdBUAm2+AjJg6YIgyQxOYn3LKE1ajtEqmciVpcUTBLhA1gdOCxAmBSyQkvZrK6T8Le5eI3XQwxqNcI3GuEZXsEYqb59eKpN2FVjAO5ZqRksV37lUGJS+vlTxXUuFBoG1pYrXL9U4iKtLFX9lqa6CphJYz5go8eI7AfvgLOg2An4w0GnFxI4yT8LVjIzJzXjhab+k6kELf45yVE/kaIFDZorGmEb63cZA6HMyd0f9pdEDzciwKhY7oYdrLw4SIohrMQgOPYVBitaZAwHekcR6uLBHZNmVLO7hQt/pHqZo2YZUpX+4CLq2qDK/3rgfccPQesaF5u6iHUqBuPv8hSN+Ezm7Z0Uv8SWJ80KQStIkT2eRtN+DF4bq4SrY2QVh13km0GTdACEi/iyD0SzM8xuugVKsxEyxg7kOv6hMpcshOuAMo8B9ZHarK/MSBmw0606bFNYv8bU53pGp4AvPD55WRqD1T7bCSWL7gJmDmKm519xb1yVe2j7dXjm93awqbcHhISYzsRuLNBR/LUXeDby/lhJKLcB9OEbz1p9lBWBwQEUY2BFkPjIqn8zs793Y/k5Dv1+a3yKEmdpTVKYxwdNyc1OlNKnKE3LVi1YZIJRCG0pyTXmvfRXn8TCeAbulLlhFiXlOJJRVrUYZoKEi8vt+BX7nZpKwCwghosJt6dxM3a8BG3ExlDb07hLe3npeGNjGfX0tEyoTd7KPLg2ITWraVa3/UHZTOoAHAJRNzZdrmg+9DLFSLlRGmSxg74UYXFRNeg9F9WjsZX5P4Si9AeyUg9LfQwMzQBIgyiHQ49KgDY7MrY5AUz/V4ody58W5btLvVzBdK7RKGHOJpMFfsdIK6m40IjsmPjn7tofrcTFLh+HsGDvTgUQV5HSsRGDTDd7I04WF4aatRdTkfRRe4hXubuw8pqHz+NfSF4sJvcq7YtQNWN6ZnpcArIKnTJrGF45zSS8JnjrOJglJ38TnX4Uz1oR+xdowpXQjtgwcO29jMZ6I50uRAn14vmykonrTQ9lR19IAqIeJhuzAtW08EsvS1kl4GRqYpmvnuozfqZRYVaZ7w4pWPq2q025u3SmyqgKi1j4HEkLJWc/xxHl8vkRQ06uUnb+TLjbsTGxb6tyn3cAhlfLsbe9GSdqOk5bFTtvYByLp1gS560xVK5IcYS6BDdNLbJ0PKT/FbA2VMGtzM3mK8ipeIHUfsWuUk6XTF2Yb68zDay956IW3t9v+1i5eeCXpFzjzuDLut/jbxzhLvr3OyULWIaSVAYfKoI2uMiK6BrmwlwmKZ4vbuMx7KUZMGccj1N5NBbn5vI6WvQkGIppFvfkqINF8QsxTRv+G0hvo1zCfAnCW8FGEHZmaNffNRZu5JNx4Ueoq0LKYsCLwtURCQo48igwOgxBoIOqJryKpFy9RJRvSC3TuHQI5l5kczLuhbdJ46UpYzRnZ29zElo9wXpRXZX57m25upkislbcLA8zt7RT6Qo6MBy9yYCvBWVLIJoBkxiCZinlZkAoGgTlVQJxKDtQAq8MK2QtKnDEVvEa4NRWFEcO36VpYN9QRvLSGUYYQkTOXc4CGMwIKiGfOxGGRGSLimVE5HvTyIlLsYWqU69JHYmFvH0u23V4dHbztSLfmeIL7yQuBDQmevk5h6gOuZSmBWgF76/nAzYzLUeR5mUihpJedpmdBCf8IkIduVn6vZJ0BFPi+wQuXcLCxrdOmwZ5Wv0JMGZcAGIzXctLgyRzad87gQh+NN7IlHsjY5Wl5JkL4x/d7AGUkbfOu1hlZdZ2bN9TStM9EWESpvLVp0CapAGHF0x+2TVD7sC+3Sxb8Ckjpb27Cn1DGU4Vl3fBep/T2NS1ktdI08LJB0uNzSXxfKfbEJMgGYc+dqJgHE/19CN+Ruu9kWbj05n7vZtUHPr61QG9gvJKC30fw++jnef8IL9hkp0uodtSbnB6dieMgOV2eiesghD845mOY7LV/M4TH4FjA4I5+nvbmXcm1JWKJ3tuLhw9NSqeVqiO5u2tr3SMX7HjDLJh5d73BbhOoo2vbnBzhfgBrcCyuRfkQDnYqsy/2ofFj6l0LYlN4M4c38GcKUBwyc5tU4h3t8ttbF74KfLDHKjgk37sWCkoewNSzCaZIQdxCQoXYZQrW7/gJFzTa0/ogLaV1QmxIVF+BOwYzNmYGQKcjzuMZNmn71Lxqwq0bcAlDq1m1gSqUVBNa9NeDpoZLIBQbZTWTbjvO3+niB5O2bwB5ERXsAwzLwtK0z+MtcGDUtmGRHhEBUjhGwVFOJYKowjwK3qLL2uKXfCjrjWacYQuRxeOGDKnc19VjvOxI8JVZODuahjgW52Bv+E7Y1Wv4QOEfBpKC+L2QEe6uJSqaYJx2Oh14eaZFhXJzM1MI8LQcZJ2c1PZdv5cxT5+mdkKBLX2lnW2xRU1Rsu5JcERBOjxm3Pirw1BtJPIs2cOMtaFW8IUqze5Mgd0fkKBceduzlW9vzU9Y2IsJlVfF4Cgh/TIuo9Q9/rEf5zmAsaWq9FrfPbhJLJuz+u4PoOmmRYZiy/swaAAlWJWNDVZx2NVIgdQyQ31n2ndRdRxN4iQyuyIR7Ty+SPCq+CZK0M0WFYJoi4FXNjg9Lx0MvDQIQbgUcIx76Dkl0k44hAM0Gg9Kz++lDaoE+o76g5sUo+YBOYH6KaCwSGjRjsvAI7UCjjQhDcVU054b4KdAMEAlyY1VU61IHNNfADxJEKKOga/6q9STcwcwGDrBN5aXAs8CvSZBKsJguvL7peJSgrYyRIFBq3ymNL4Vaz7zUv9GARJEOACcV8KkhNQ4wd5T2VH5CyysabwpEKTQcubdKCYPzd4n8WyGyYyuyLE5RUBBbyuh26hWkW+xRhaFeZpQlVBWIQhfdYMJk5SOuho0aAgdBtuw7ebQ5Bwhm9mfaXDVNQc6vg0HibQChTM5lTAp4TdZHNC6qa07B3aU2p6buzxVPJN/5kbVMKQ2htgG/lcv+xCh3psrpBj2QzibUeE5DHBk2hEu3NoScAxOjDlaa7gSVBXNpXKsj3tjiF2qNZzLFzhkfZsJYgmg09u0AFZxT8GIugaoEKY9wxYbvmfq+5FqKKO3KbyVxul/RQGCWkxCcRiLaSjOl+Ia5P7zb9cLhphx2DweMtXglKkGp/8C1SBeZWT6d/frisIUc3sb9eD6YpOJLJfdT41omjVtNhczzd6hZDz8qpJx+s8rGQ+/pmQ8/CYl47SiZDz8mpLxEJWMenIHBDWmUpd9ytdchRjWVIihUSHW9YEZ7dyQVJJxrlqrKn4meJUA/zq6mkNXkzN1v54vfZHLe4JrRp9ecF5I6j/ixOtGT/72+G9/S8ST6HvG/bxZ2sJeMhhozCF+S/0e5Kj21OPGE4jSdaeVbUhntbMTE70V28/JvwPIMhVqK1BlKJ4VQeJKq4l6ry4+4hm60tfKyPfcHuM3mgoSvBDPa+CFRKbobxrgeSamtDFTK03bk2oSnMAqkYkpCWlT8s2hypcE4Zepd+L3j71LQK9XwF7jVSHOyaDXKy0NXeJCziVBh5FsA001D92VWNDDYsI1yYBJSSeJKCeJuhpth7Mv4TIHAcmBPkkJozA5LPG+6YjawjXktd0yS5rZlPZdpgeLVi2pSUF+AogJQt8d5Ygho2LX1CXnBCzgsuASfnvUxoLGegLwWmmAvUNXwRq8YFvI6GIEI2zoBBpSydflcE4kvJU0aFo4sS2AGEjVUYvjaXGIpN4ThQKvAtRKbcMRXGFKZU90PJ4ErwZQYII8kmRcLn14WeFLYUb2jQagnMJSJ3C/VFPZ7bsjkmOJAJ9lbAHgCI/LjuXSBtu9J774qD/vRrMQyrzoik9aJfLRYV4/Att06fc+ilkRRAXdqNvIggVXl5Y/R4X7icV9iwpqh+REEPlmhX+DmK6N+suHD4W3S4uwF8YW5Xc1ymNlATLYJ7aUgAB6t14DANgahwNsvLfvuUzLQi1IqjV2fLMK6SHWmwitFJA8tYupvipGySt7c1NWPg/x6xH6hvWOBPmIyTaOYKQwGBymHOU+MdhS+T0Tl0vxcRl4l3dfN0wxQ0sEH9Klvsol1fwvIy14wlmiOJ1fRuuKiA+pPI0u6B3sIHOyYUQvLsfaC1upTwxh1njEI+vJm/BX0qtU9oIkkn0NjH6cvby93RZJDTO7jwA3t7f/BgeJr64k2MD10Til2zVrhDFzL0BsKXsEw8zMCb+CJ+eMu1wyqeGYnWwgDe2hOrindJO03Y7EUqCCaN9o34y2Fdhx7zjwYCGP4CVpkg+UTtw9Wo7QWD6svFzKGvtpFlW+HHfGcSY9gvF88a6Nthpt8CuFrzsLio12ewvcPfD83v5dpfep9LswC+eyChG0eXBDjfSgCfsdnvCc0TqdRUBRN41ceBIY3dCr4CO8BAH3o5BCuhRb6eEETXFW4jIAod9CrgIuAdRDtv5RfALCo+juidZiVsil7qAjpSsiMp9MWAYJEFfH1qqS14++Gvt7JerKJ2ALbkazGN38gHWkH/aGhF1pGCj1PgmzWL1ZMWijfcyXMBu3e2gkT7/QZyLsMSU9PGoS1XrlJWgHU6CsLF4HIQa9a116731xA3voHS3L3ooh3UEA3Vx0e0sjkcu1O/DUzMVrsefzddRf5CMAeA/NMQFm6ebmVMNJAeBjQObwZhZwSnwcfOn23izwPFBdTXnrk5XYDT55GS5bf64mANR/Vohd8VFGrzCNAw2YmmjdqXr9KRjSOTo53T4bDDJzmhoYv1lA83Na5uFToAGfeNJs3udcfPLF8OHD1Zcp8HLe8OePRg6dr/p2BRZoaAQ8dTZQiLgntRySVxCvFGSByQBGwd502XqVbaUYjxOxEPdCnwaEEBKlexq3V2il0bPDW3AT7Td4K6UWI+SLUa6ssi40EdM1ruk3T5FnuQAJG/hsA2UvPM3OUEGFf0pfMTEsDHj3jj7JFKmhGzhME6nElZl2TW8VAGb62A/RpwYHsc0HQSFkQjGeiXkolomYz8RRJHZKsZiJJBG/L0USiz+XYgdk+T+rsvzHpXO+hnVhPknYpX7IfjPjnzl7v2Tl56zMUWR/75T292JmNQIwYhS3S1MMaKFypTfU0AiP8oWlm9qkZJjTEZqjRqc0AxEa52zzAKtzM05ciN8QBSkwGOoMqTWNlQFDUPsBlaEBu/81TcNifFx4jFvIdYN0+uhTaKBNT8Y67htnWVYXePwA+ldsvRxSiWWofzSJrkm5sGBUQvF6FasYqxaAxamZuKg6Kw5rG2RUDSK46XQ652ZVUQMergRTVJ8jC2zZKkBU9U5N2GGWnOkpfoqBbXPT/taJ3xUrY9RCVbD3S5383TBJGoOkY85vC08WEfKPjMc33ikYywTLWSK3VOX8bjZclDP6QzZOdolO1/RjSpd6bjaL0hRpm8Ko2IVBEJNliNWn1KtMHKiAO0u17Ltm08Km960CRtyQh2KmUtoZLxlnwr3SRYFSLQ58EtINq15CvgeBMFsZiAKWrB+HGoAq21YJnsIVSoAoSmgdUyZSowcHQrkWTzONpxqn03rZ29u0Y1oX5aCUYseHSIuP8KtXZYK4eEE0sWOeBQto6d1IzQhdFNBeo8AVyumruh1neOSif72SCipNmopKXaOfUY+lTUBcUmAwL0/ndPs2S5jFQ5SoQPSIWzIm+so6HVTagrEf6OYoIKLnwyG1oazwdPc9Z4/yOyUdmTjOSVDA9lfst9OXxWSJfTIAI/tE5r7s29PtFdmqFBjR8R7DXgOd32IGHTLpQRoj4SNDz2MPbTJYMLYx/3x3IRZ/Lo26D6McjjEQeVW7CpINxExrf1WogJcypBRuRD2mZ0silyFePzaD1QZ+3ABazqaGFh7rmseyGydLr3GJkAqE3ExTaoIdY00LAfRFQkVs1smnaTkbExocJO9JOa5tPvuhVUWrtOLejdYo0COuA9cv8z1ddrS6wcNhGT3vPzOuQ52j/F87qnA81siCdK0yljgZzUqgAPAJE5C6H+niSuu4a2oLdnwkdNPjKcKqG9gZj/GGjfZnT9oDqy9Ia5EK4aFzv8HpI9NyVjWgYvxNNPtB87WwyoipUxHmaOGFERAM/3d7y86L35fsvPAHtoohuFJdTQS3V/tMqifDvnF26h5Qk+f6XXBr2P5rCLIyIYnN9tI0v2HjOQBoPDBtM+geTOqAlkRN4hQQ5xfCqGMEiGniUkSF+Ni3UeEr3MiG5UY8b7H+hF0olSBAcIOcwdX1LQ84r0kFZ7NKzQSWHWf3oJ9T8/Fp/ODZWNwDlNaZKxntXsBPmmVFvapmwjj3KjaaTi/fiNpNxAIk+6ezolan/6newSfDj60060aGYWhRgNp09GiPgLEJPoE03WzW8OnrZg1cWMLbTyUT0yXxlN9rf0K1Ep8wXk/uOiqd90ajYyUhK5Q7EpCUy+mVo6NJUR3znqwZtLGAK805ILfKhebXAIBdeRz3Pnm7Pl3sOFO64bqxXilUCw5bsm4G9alK7tMisVAahd6Uze+TLz6RBmoYWLFKmtxOUB0TtQfHXVd2kWpHl1caRtMQ5PysP9RnxbCjlKreXLjXpPOQiT0Y5PhuecLhGKTmNKLN6HlHwfwe2legx1+jQNSIUtd5y7tbXUoUsfM5isRvQG0rV0E1acL9LiZJb651PEJfAPZw83xq6WQF6aT1Mt3c/KQuMe2mlIw0E0/nsP+5qbcEHYou0iaIbEjowqXnaT3rV4ECpfG8wL9lJlnV3idB3GtvVqyoSbqHo7371fZkdE9Z7Tm/ePlqTU0VqXIm72MM6tGzsFdc1U/0UrArTVaAvRXykpMGRHZRdIund6ZUNDJqTFc+nlZAu37mzNjswY2rUFm18CRpxXmrTCR1HP9hPcjV6pKQDBvTu8ZrBnaww2gm8YVP3nYk5BrO7FoC7Vh8UpvNOwm8/TV1o6KAha1efe6rulxIUY19UjeYn+hYrOCnfKfu0BuONC3CUimJyE2naxWIn/rNzP9qJb9/DWd04AvC1k/I0l4G3qtmiEhXWw2PS9nYKwvLj4EXFfcD5kdZ2bhaWq3GJwNMbTNVV4qtVkB+XYcb9wpr7n5dJu5Xt/BR5DzulM7jwi2c2KbQUfT3ZVCPeLOeUtPeHrcd5VBuvyrLiBUslW02tIottGpREQtDno9YkSAVzQ/pnfJo2eM0KexwEuUUOJRWeKFEZ5XcXoUZrjWqaaeajCptiM/6CvRAE5RV5HHilId/fll6mUQFR70lzJkGw8SjRfpuq6a0NqunjU9Mc78tAFZSX1bR7YmK7qGX1bQRXWxhI1Qqrs3Nm/rh0QDo7SbYqlAmFf5ojsOSrQ9Spc33Ue2Fk5J7s6ftGdXq9Dm85L6diqquBOZSfQWTYa9Q18fcsuqTyDq1d9BCw8SmDSeqNicw+dG4pIN8fp9Hyqbwx3xWa4objWEVZZQqHehCnynYS4/zT39FnaE1jK1y+dxsDMgV3QJIQKHFRJPUyMRDSUmVorStI76FZGkh/uS36b84xtE334A6DpDf4FUxtz4a2L1l9iVZogdWGLuRuCIDV+gtrCkOuzv7beGMkZTGSUVLDJuPIQ9ruLJyXdOT3qCso4/kjGCUNMpQXDOAu3TYcaNx/sVD23P2LMrACp4iC8pBU3tmAusbNkWqPdjJb/c5aMIaGdmuqtQHGQcXfGcAq23c7eou3RbfjCZEJe9cj3JgSSazyKuzxnS1+EskDgvxVyl2I7GciUUo4licxOJ5KZahuID/zcRwJj7HYhiKXwpxVYr3qXiQinepKCYimohkImYT8WEpDpbir27gHXzFoJg0GtVryF8K9ptdJR6y93+xa8VdVmbJriEX7KoyZobJJ+z3c9bOkpW/4L9Zm0P2+zNrBwCigkoo33V9aVYawQigG1oxCcAqI46UZoQCLSmVEI2GsvsUWTL36hehpb9yCtyoSwRa2IA/8CAWrglyQywJjMRrtXUA7g7Xakp+7fcF++4e3YNds4CAGly112P3f1o5LljpYsJL1w2eG02d3VuV1Tolr+bWwsm6gbtqCwU41kalbUex/U+3zlqpWbfVA5UwWEUOrPiXxP3ClrGiAjb3j+yyV/OeztDNZdyhDP7rYPa52aH64p6OU6aCc2auLqiY2lAHIGssxXyX7y5Xz4s8S7ymsgwgPmu/JqW2X1wvSO3ZUhVbRdoaRq2wpaq00gwedBAgGFdYqHDFuS3U9vtsaWZrl4atgssHl51zBVaMGbaxl1b1e+ZmGVegYtKwRumtejrRLIxkbhjiGg04vln5xsa7YQP2083NXxxikInaCNdSBNFEEVKH+EiX7HstZgClyqZPt7e/xW59exPotgDlyuaP7jTep3waxgmJlXjglvjvmBS60p6bQ8gd4DvevZjKewzoZw5LF48UrNmGvwOJhmU8G3u2AJ5fKseiikInWyvhg5Z4zqV6VGQ+8+EAfiKzJ92iKvIZK52ZszNULK9sVb9ZrVy2AwewKjLYjHp6zOdU2dNfAy8tbkizrvzoZfbLjDJRpgsvhXGYmz18IgNApa5p64sxW54Spbar9wwR0I4sxjgy4ex8oaj9SzhLMFih2bFx7DfoA5zPNU/N9p1NtyawHsAjtiaz8AIVapglVuFOG3BYHEaTmfIkJgCg0GInYx1whiGd+p60JlJgJ6yoQR0WaWVuTckaKLhZudoR/tFfGTWyxMU1WLjmMMm+CVNLg5BKwPWYmXwdgzMy+lG3bGYK66iXoAkJ96I4dK++BgNUm9o+vSaCZ9EX7b75gMxV356xt+Zk2j2mp4FtSEyMZm6GsQvODS8sFiQ7oa2nvAs5N6y0DmJ8tApCsoRekmLlCF1XQJi4phgMnfO0QkZyvX4HTQeESIpg42BzEzhGnI14EBzQiRHCQYEeqX0Pw3w/QDohu1sqtdCR1uOYKzY6DWu9050IBpMGSULuH2/paOKkbOOvYEZKKt6vSl0nWlJ6tQqW/etgSX0TDC4DFZKkQ7Gap+kM9tmue/N5zQTvV3wvS2+pg/5U34xOO3H+zm0Hr0srTUMT3ty9KplXy/gD7yCYShhdolV57yAwjvW19hy3+spXz9vT+AHyTuViZ49ra1mpXq0ZccDvgl8F1ubsGu3Zpm67auQHiBLHZBRPMJZJsACirK2NSwwAMZVg9iZuOxNp149AlHUDcyaCUOdfm20QqstmvMAojdgndDUfRql/e9f+XWO+xjGbwwqe6+Kcuho4sIGv4MuBvzo3oieAyNxEwKPgAxUnAdO3ACSlXs23zk3LqqrZKITEx8DBQPFJPusM2kXwEb2RxG5gQSxeB9pX+5WjFXC6EYC5Kv/BR/itLlt61LpZ6jh/Ie8WSBdB6pQ3MoN2b1bAO/ZA+pTrivZkWbE/Wrtfnfu3ZV17qQsobYlbQr6sa2OWNTWqMPZsvZDbudn3O5gzbl9VryiHni6qb25v631AqXXdIqgifFLHiXyGLfHRwlIBHF7u4hKROrC3XHMXIWrkp3dsmzdNYUtkd9YbTiTZVid8j2sVhHYoswwLIoBkN3oO3xpKY8RVVXy8m1OyB8tr19gED5XXjHeS2A0gOIDzZVpg1IRiMC00+/RaAhhIJFDgwhh8ykbR5bLgVhRQn2ljXuu7OvJw9fsPvGmBzpzm6gt1Suqa5rhQY1I3NXoT9pjFOAw3s0+bmw+glpMOzAZY6NHRaKYOrVPEBaAd13jLyuoYE52etyHrRCqU7nGh3YJ4LRNT9fXK5UWMgpaxEmUDr79O+UMn5R18/Hru37IrVbui0ijjuPgjQBRGiUM7fjIho/QNt6R9VjfCSlCeGykaHyTPKQoosr95L11VOSp1oqbOCZpiIBHyOw1U7Lbb2w2MlsaYZ1SkVeMATbQix5saPwAo6151641B+ogDeQu7uTkhblwfBIIHL2LcozRDnRtMHgbzfk1EOh3KQErDM2wWmDUZ3YLrKT4sHTbXKKJ6GXmUVm5Mbpp42gZO0JFPXV3fagXsuuuYX7ghM91r2l238NK9tV2498Gx6+N/4j4+d1teunUvKo9uR0P38bPb8tCt+0vh3CVflc6l71otETGhJWP7lSDjIKoVvJkjBseg21uvDEpr/A4bcSXep/w6e61y0VjW3kuJQtHMuF/r7a3FPW0KDfvlAwVmc7y2s+BkydC5Zor8sGt2+UWjs25TRw3IuRIZOto/SOu3+V6TltGcSjIGqEML7irIqGTFMqxS0AcxsbsS79J1KFHR6Zbm6gF1MRtVeN9Dr4SO7F25CkyDZJbqM6XM2mbe0UMNcDM5grh317ReJs/C0eVFBhzN+PbWDchwl1ZwJdiY0Nl6sgZPXS2cWKv+WquWg8Yjp/Fzc9dzDyfrC+5kfcGcrGG9GhodNjdaxZYhb3XIW505rVZO6nvpQ2pndWjFJUQLZztyomM23mHBr6/+Qn89dbI3UnzPKtMarx+geu1yCWb6YensBPc2P7Q3I8q0Zl2EaHY02mv9u/TkNU141VqcNA5acS6v/A/4lf9zNxAv+ebo7ZdIHhhjhzRYeGHMyqRmJKQZW2qILPcOEhI2RCL3MIs087tzla+HgoHgGs21QwppKkJ7GUUNswZVCRmMtXkq5F5jzwF6b3xqjDub1ku4eggv8Xul0c85EVky1fxQhl1tSDz6y0KODUi5Ca6DbA1Rv4wNVEIJMHEDxPsyB5Y8jyxMbKAaxVqpPnkw1eHkXmvqeurUAMMaPHeQBO90kga3IZw3qv7OS7GfiMtIXM3EbiL2Y7G/FJfdwNv/dtfeXeaqe87uvPfZ+0t2j37FXHXPS+ZRK63CVXjdl+MgZA+GOsCY7XvaapZywJROz5o8ZG9v/+x6X3f6dSwE3TtM53oyvKfT6b1cbyvePecGeBXPHvbhXl49APK7vXo0EO/n2MNgzEZS9dlpAOTXx2P8ZdaPqO4zywZhHIPuNIkc1EbWYyPj7rPkd6Gcr1xPZ+vqDEhcc3W2tYD3ot6i62hUakdMOTBoL8Ztnmv/G11GeaxOxFwMRbMXDgXuELvifZ+HrzPMC23krxp1V301YMsypwwnXgIPt+1+tR9WZi8DKUHr/Im07G4sv5cM1rxH1T33nq3eUL1NW7Zwa4LcXxsjaipLe4zHcQ9INBrav1YKwb21dvbrmmu0sy+V3XyFiaWwUdvcer5eoG5A75RZY0PPsFiFD5MMr1+5Y1+3McQ02LBY3dHRljxpl48xTPzSk4rur0NEt2nQvBdaBeJ05VADadvdSZP9UvrlO7b/DSU8SXgBU9TM9qS7gOfNUYfvMKKmkl+986BBTwQinN/fwxTEFjoqaZOVI746UVWjt7d2ysqL67Xr2oCg1q4NWsyWc1kEnnERskCo+yJYzzoa3VC8FtzfR89FgwzOftk+BVOqwqq56aVs+mhd06xV7kFRGbVjuG+DKik/itcqf2MDibzPbMj7ojabxi6N+4Xqcu2Uvrb4TuCD3mvA6tfqcuY1cAqwadTYuB+ECxPuB6GHZ7whvrKOqqs9/6ZCLvfw2t10Ll0pqpBp6th6Uqxf5nt2OisC79O3oMGskJ1/Evra6Jsx4Z5Dex94u/dElPdyTLt2TP8UWBzvmXW45HjPSFTSXiucPSkTjCSkFZsrOLUdPeC+655y6aoyryqJhFwHlP1/gafIXU4i3+YfYiinsdlvdgux5bq6MX0xwotp8hyaVaM9qxZ2UrGIrhtDO4bpqke8tJM/a1bw/BBg2JuXw3lcVF0mqo4nfNzSMFzeDX/TKKvW8g2AUk4hte4UUGRjaqHczjNnadGZo2lxeZcVN45v8K/gUkbFt2JfcYLqsiD0V41ShitO3Olisc/1LSgrat8FjT8KNnU4SZP5r65QE0ikn4vFGNUuR5ZtaT0/i8UXENdLsbsUByCl737N9p2spaqC+owZlX/hwnmpDMslsQbxtjQ1jOm5eQcDwXdASOw7GNm2v5KaQaU/0awnlr3seiZmm3Bkd7k0VszvPXz4LjOj6pwbx2wTwUuvvbVXV+7X2cq988K7LTS1W0mTM41PAARlhGaEqCJXSV6YSknm0WHqpnMDN7JzQyOwQaYl8R77mlNY1tPwDE8AGIcr84YV2RvxT8meMiwWG6ZK5Bj6zIT6nxsqZZnCf3TYuK5dIAwGOI6uDybYMuZt2upiygmVZzoVXRlfsJWdbp8FFD+bta+GiNkOGyab1QR7FaEJhZTwvzorAWOvRnGiWAvT4Ol0rbSjkWQjvb1FM8xQzU5nfdEnrQ4g9S1YkrIYU3ac/tpBynDkUxPLQ5II38agciqmroKhHmmKTaRV/0p6Iq+q92bopqlsqJ3b7rOYhvDOdFY7q/FBEKhXMqjVDvA+lUQ6Exgnw3lKczDmuKESgm1sy6Bw/UoUJWrSxOP5vPBKYsvwBX4Ka2ajrI5WXX2WVoT+Sk24djnw9YyRFJCrnEdyBTWNqqWhbOi8XLP6LWcIejmRe0Rvz4WsahGC3cJSQN6Ze238pcIfVm6++elXYOqiaoC/xN7PjtJFVFN9xWM6p94m4u1S7IGE+fafOqHeJutOorf21Gk+Z0oboGOqH9AYZjBYToCKlfLOe2LWwZsaSE9ubz1pRrHDDyoT/iMVprXetH4iOdbE9jgSbsjJXmguiHblh9yjfDDmsJqA5DmpnFYAELKmYLY+TBf8Vh03PHakVgs3HjvyKoppeBvspN8qwsW77JeYN4jFmSudk+CtPQl4LXEXFWFDaaZMlQ1TJU5m/CtFXLx6Vk49kxrxObXxPLAQWUDBZj37r1Gfk2bq47g/6UqVtERu1rKn24NSkwjZLimreuV/iULZmGv3BXTIE/OunPBo39KErkRtrADiDvF5i/kwIvFrLJ7FwAyLo1C8icV1KF6E4nAp9oHdPWwK4p4QcDXlyNkF06+Mz33Gfl8xx8sj9vsNK3PN3r9gWWZghCpTFfGtt7c4hb2lZYFh/Il7LyXLHLBItM+wjEsWbm9vWICbq7DOWx81vAMAAb89V5HDNMcM8+icP3yoj983ZG/RZb4yANTFxGYh9+QFRIKWjbi/ST2pY0Y2HWa6ZQA2z7nMTAtgzfL8X9aDSZ+xwkOtTPSE8ajBDFfOxLe23ImjOQQgyblZVxM5JGkyewHY6NgJ9pbnRfiVPDcvQmtKYc1rWSYXNh9NFW4oU9yasBYmaWCcS7A0tfZrXG2t5o1v2jGHDhrlJ41xDZvOsRtz+iVGrrKhCvOofkb41TBMLJJMlOQgDzvj+OoIEjxlWH/y1KdHctnhHfALfxWw0voISQ+jxO95lKNGubK/nNDNOtr433nJXqJVETWmDYllezCGKo+dych++D2Ocj3R9YgAJw9ycgzWoWIeypW1HMaZsjmewlFwtqLraQZP4UT6vd+qirS6nBk/vKdBTf5gXhuTYNyFU2lKEtFko5KlstW8bplvgi5NyNGp1BGBKextXoGdk9/ROXDuBcwMgXiamVt/C66MWj6zyyXTr/8v2B6KDVPT5vvCNtWvWiqxKfODPtQ8UWkkEgNQlmG5xYfZKGx4ZVMXUvmm4g6vTC4osyWwF81tyhTSFD5khebUOiwzG43DGtlgnCr0dxbcc71TTDajgkDCVjUT4gJT5jdEamYhNaujaoRJ8xAcRqvDo3RiHKyGFFkELgyyTqH/khQTddVk9V4jbInQE4DvbngwqH8v5Ae9MmpRKj3UVuWeroj3Wy3Fz8KCbaQdHj4aE2N3bFhms67k5gZUSNkmK+2o9b4sq8bI02DKjZHTOwNoNUB9uvoq/qycE+U+h1hfmdgxmzxtdYc2ZP36nnRPOjvbrx1TKDMoL9NaGHJ+WPor9yRLGvxq9ZemjaPMcWXQymoTiQzLz6JainqrK+uT09yKrVIt0TQgyV04JSuH77pR1fmStXoc1ZKT1m3A+LE19RoCwlfsROsMApbY55KE18AAYqFdR5SolQLZhzIBuKUSa8uF8gjjJLRags6KcyMzkYqBMs0LduzV1BsrOzPbkt0iTOTGNo3IDUzezcqmNeGnDSWcz4xeBwhFNfdsVs3rgbIUTkiDr3FOR+6cuJXTumnV22uc2dG3zYz1fO/JNVMZym3PonrYFPd6lCyEKeAFARVoPh63WnivLJ2FO53jwjZOV7NmXobFAQrMXdKWE49lO0HTwLAhAE6VLNa+O1HKNqw9LzbH6b/bkPNlYyM0Vrq+2HBaRJ8WEzaYqvKEjjrV6l6c5QV1yVMVUHFltIu0XISrNZdUjBJpVxq+WoOkV1kejRm0QPXj3EUcvYB1JHUKNi2j0b2x46eixf/VKvZXmPnXUd786qqZn7mPV66z0pH7+MYtfO1+fVHJqQrjf70M3imPwefyWtbTIvtBGSRGYgqhGJBhXeb1koSUjbAejudt2pKkmHS+LSAKogU1+Uug31cxRsEoUvzeQo7NWmytxG43MDrjRIAUPxtnEd2NANNI43gxmaBFCHGRsCJShyGTAScdo9SAzX2anPniovNnfg1j7uiOxY1Mie027otPdWggDr7tklGoA4FPAIFPtkWr6z+0SbE3TK4zWuxD5POlFWRCCVAz5wUwfRQeQb1K5DX1Sbc2JOzBF58bBnUCg/0V3ksxj4u7NuI7C5BrQjAllW3PrP8xcbzzVZw6bYjyDEPy8RJ99I9gFvx3ug7f3lLoGbT/OJRyENC8xHGhQDrgr8SzLuFjdf1hwS100WcMl3wl3iAOZWSi31Me5FTiGZq5hqgmF3zMvVJpzzOhh47Zz2EZOspVHlhqNkh4SjpWO7W5iYQuRRJUSRgC8CthSApYGQjI4jc5ETpeDA01EgJKXzwrSNozmSnTwaAbPRGYd1JghjLDqvbZb+3E4S4jZivHMDqll8mffg9+Sr8ZQgCVBZPlSfWSWmpM/UbI1Jcr8VEim4KTcnSXThYWNBuh+N2UqxNeAwI8N0zsAvFhYfGY5V1UsWgSzazK5PEuCvDQnl2t88DNpEy/jRvjW/RgSIPPXUqJfFBiyFWM1dEsdXj7gXcNnxu4RH321wwyzx3kH0bAsUje2OhA96UO9FpMtOAyl304jk+o+phwVdIQ11/rhMfk3NKfNEVdyQZO1JXecNC2hdraQOa3rjdB2uFNRCrmPmw2L/VNCs2Newzo9OhMnhFS76NzI4feVOAt3DI46jSFtppQWBHYPUM8UGQDy2T04hp4hyScHcGwI/n6uYrgRimFTYSN48ER041rmRnL5t4lYPkHnX6qdVR1fY4KIBZH4vhMnhxHTb496z74okaHjrgbzAQJ0UQcQdu/I1CXvjopPyzg6Qjj6cB033QNjVo20ajUpVETlxBLgjW3BGti9tJKd6eiWGBnMi3kt6DvSQV9Qwyh4WKvSSGJUxSTrwXU2nA8YDc3P3a9JV7DmQTji4EBUK8eWUcFY7/kwc6VxNpRFp56LSqexCah5qTTEFBgsOwddXhEsiXzAjtMHLcyoih/dbUJ+odu0Fb0oi32usEfj662Hw1h/WZR/ujBzYfu6g/xuhv8sN2Xd/f75R1p4kFAge031Zf4gCQP1HVMW95GtNmbEXDT/HkcFWE8wyLyjjgEyt3eWcQy0bw1ti0xyqmyCAB+XClzVe1gykIBf+pymSyRtvX5+7iYeu33j9r+AF6RRdNjYAGs9MKKfdf+jsg6zte8wIhWVK0rtro+cF6mw1eVDqdROMa7VyQ27Q9bv6NQkWKsRvSI1fJYaPQ9lQovjkNrm9QqBzAdm5tTJerRPV/PtKYa4C8mZNgQEpaRx0aoHA0S4CRTkxT9RpZYGc8hLw3CqhlH1GAdnhLoUXl4ePL2+OX+izac5543vV9tOIujPA8vsIE/sgj2LsasIBPi1hcAckuucuvBTaIWfPVHn4XX2y89/QHtPYQ3uV+/E40kfhV6r5Y1RSdFg5+mY5jjLy+OcX43mMp2mI6X3Lk6OyVbZKAXW8iKtM9AGF2gmRyJWI8Q2iQjxpN9hHil6svJFr2GaqYICPQo0mKnwO7iz19f7Oy2ZYUPW4cSXtF4C/ER+6O9NoyirTJuW/ceud5S+ffHg5u97grACXv5Rk4L+EWFa8AxAns+hhnE4QyNhGHfbcFZexEnbYHT7VVmPXh1dPC2I83cyPCAPhvElIJV2kkvFQmXIwEETX03xDW9TxVGojABHGt1ZV523WsKXP+TwzdHwC2NpjITrncziaPZGK9MM1iKeVgAlW+LGZzTRe+Ihum97iJXJXXeMoQX7C9aMKEU4fAXyX18bT7Lx7b5AMtovo3KLEeipC1GVRLMlQI74NMfj8bpKB88AN6uSNUo/JVNN5JVZ3o1cRRIMkV42QeGy+v3WXph6oDAIo04Q2lwiibbHezSFxtZJwEafS4HqdI1l4HzdmWk1cow3lsSpiOR48qUtanB4fAAy8KcYHO86iqb0o2MidSwU0u9U9u/vzg8ennw9nz/5dHRy7e/tEUbGl5AR1FrFGZwfI9bSdoyVPIRkr+WRNK2xZx0BCO6kkUA4Jb2Pug6yl20VYWFAipPdwdRghTr5PDl83QOfaJvcefPNE6oBEbsa8HZ0U4v25oYmxg6lhc/mlh16ixn7utG24ZRVPPNzRldKkBjIEjnQUJrqBa2hVaiEz9ExYlp4B0feilD8CSSdysn2ooqYUd6cWVHso7l7IqjiT7ko6vgh+iJnUlyhR0mPJXMfkkSkzGO/X67O4CJtcskLIFgZPFfGNmz55R4QiVyIObQKLJacVYr9PjvcH5CqQy4mXPakxQhVA0sviIw73fV7ak0AJd2NN6Nck3qJVcrv6qEvVEsX+9GulZudEUlKghpIXDN1GIMoiv0dzC2qqzqagUdzK6C0/YsBBhNkX60MdMW/AGMa59Z0IVXruZO6SVmV9Y1m69UeeVwBA3Ui2waQnniX8XRlzZuJ/UcA6hAvrvB9z3oufQHZc+O0WhcSXjvxOMgQ+N203n2tc6BImLTeMiYRpHdyc1ghCyB5DEem08wLnphr6pCRuUsx/IH0r/VH712W6ets9sK99zeQrxeWNh+Whjj2CT4QhHLO7NUHqXQMY67zyC/t4Bp7y2CBBoJCNA+/LLT30n49AkYAGo4DKtNL8JiiuwmHJHhqv55iqmj/uir18BswgZbEtVVJgLozNFuIz22Oz3DnZ5NfFSRmhHlHHkys9FVy/D04gookw5sAkcQ8PYymbEiBzcZowe6nrziv6MqIzWjKw3iUzhXHYmXAkr2OVXh0qGMDmU0goqzaD86Py/jR9I0ty1u1nISOjYtJUhNLweZOvbJE8Z+uylvb0Mvg8Oaq0dWavIlKhlXFM8hsVNKr7ybS4AEml2Y1cZ5wmJ7NcYQgVVEJxnGQmr/XGazp22DU0goHDo1IM0rUK9xfIWzQwnoLcwKbVZnKcxrC+T2KAJGKUtnaOQwizIQo4xS9lRqbtvTLtbWb9uH0EdL97HS+t32wil0nKateZgsW4pDzuEHUsdxC4DVktOAPyMA92zZab1LZzPYfS1AVuCf08UiGndahzDKcExXpy0kZy2SgOEUmqco4nag87MVrAHp6ypk/L9p7s/lHQ4u3CzNCzP9vDL/0/YxjroIh//5H/8TpiRH10I5fNz6z//432AKsNCz+DKaLQkibQ1Gkit5l8AXQy/tlgwd0foSIihJyIvGovVlGo+mrXmcFBhOfwJfpqY37BCqLDHKfrEGxr+kLRmXP6VhAHznKMm3wmQM3aSLKKH3QHlbwD79WaJCCugkBvz3smgrK5ME28Qyo3Q+x2rxBItiL+EMFn28BJEbccXvtM/kiv33rM1RfJFsxQlhHOHA+sX5mJZZa+fdy9ZltFQQlZEhMVsBjlyh0RqgwQFwx4Idnbx7cfjsxYtz6OD89YuPcvliCcgouYqBz0f8lbkQ1MmV09fnb14KGAtAlR6RBN2JGa2tLbmVdB9XiurLtnH5IraBBLaatMyqSnRRa0vLmtMarQPbIfXVWz+kktYXjfmkuuXLXeoWE3jHGPiTzkTl5nmZLMrihXKxVIEhkcUh167OHI7wNuAK/mDszfRKylvAzT46/Ue5Df/Zwj/dCf77b5OzRyDPwOaB4+f29tH/OA23/jrrPYr1O8b7fylR7gxXrTmiPMaHR0E5hFUcyYS1OaIKbUMp9YetcRZfRS0pbXX+IHEisWxV+x//aMsoU5a1pziU6PaCFKx9e0t/O+ZHp71+REMUO5I0AVFdblap9AJ0mIVoEAUDsGfM2OH64BChmNTeo3/849GFoJHYV49uHouVem1bmDu8GLXHJwLHtYcnkjmMJlc81o9tZ3GlhA1987FhXM4QNvBrLjnetjtzJLyjaAEs99jMP4RlSbai+aJYtmQbHambIixgNdrI/3Gwk/prG9VfdgmAA3yTfomy52GOCnajMmsjivnVhagOhyOIHBcpRIEUX9BWl7cqSAS+g/a+67W+Q33Gdy0vxnpAYgBQGo9Gqu1JPINJKjKBTJ6PiyrXYIlb4XdkcRn2X7gMMzDhwEuhbzCLeqkYfgV+DHmekpEGRgWW/mtxTn8pv3nYCQurOWmbBuF1u9cu4jkeRPNF2y7w9YShGg0IV9OpOGAjg2e8vtQNqdm9XFq90Lnybz4fLtt2qs9SblulcMm6L+IdmMQlFA6wR/mktTxWX8BttLDR05fLM8Bk/NmxPes3IRKumv5teMUYf665+gb+kpQPSYPaKXGDqVgdaFUB81VR7SYmJhPlNa5dk2MEObFETN3Cw2FLHeUg/4SO/ufrUygbpmAMHJW7RKmmgLE0qJ/qXI6+AlCU6fL/Kjw9zwWoT6JiPhgAg679EQlmJYiKRmdTdtQvUcQFMCdAN/CvGGbx+AIfQwpSgJYpJXqXjbKYRP7BDXvoOZ9WvZuVLE/oNbihPz31aL+aXTK4MT977LUtuUDThkTqCQY3/KnnfsQq6K+G4lE+kQp3q5JiSUzyyWDgQQnp/iI9pEyK48Y1Qpnm3muk1GNUp3d6JtLLidKj9drbnS7mRlWI7a5Z36lYoV8deov3HU3tagrYse8s/Rjw12oI6tLhq0NdYUp0X+QTpiFjkESoqkQnqpGEDB3YITkijZyXMDuGRB5UIV7G83sgAAsKzqgPetSm7EueWscagbj+qjrFiv8piv+vFkDx0JvZ9+EcWKAjjodK6nkb70+bChcpL1qkVBBeU/wppXzBB1Jbw1+mgKlTpAj2U/6vo0CuBrp0Eajlok7Woc79gfoB68xuyRacmbLuOadnFQRM/AEwzclZdSFeOAtR3TrIpz9Cea5tLjva7w6Ojtt33HPou5Ab9zanV7/MEfU7mJ5zBbOSlyaVSxKY7kUMj8uXdIQoSIcNkA4rx1W45rh6MXNvRjgYkv8PzTz073OwtVyssshyfOXcXsOsFXmUwVryR0CNF2GGQpQUBBHAPJKLaekL5+Hr7eBJGiPOwMSzFCSo4/QSBLKEN/EmvbsJcoO4u4md5lHQyfnIqNqd2fDqf91VHQ5WgPjaus/vqjuOZiD0oNC/rvrLxZqVkA3I89tdBqW6kiE+CE/Pr4In0RNxeRU8Fn9eoR0ZmV4iCT5KywykCsBdZOOfM4xFT7B+Bf0P2GS8f4plFGhTHc5wkr5zq2GnvA+dBH9eiTA4uHLvIDFIVuboslM6NDBwYldMxFw+DYNtY4RE1zmUr+FhRn+ebrO7JTjfhg+Drphr25B5JxymGApQtWVHhWchbKi5G0X7REYrwDrPpYA9i7L+PDhR318Fw37onXTkrNUJiqZIG/qd7BDTP17K9FLDzc3p5uYCDV0aL3qqWlrXhgVmEpzAcTpXpynf1HIGaW0GsHoR4gJagaTBiTjppAny0ya/RqoaBXiJjY2p799MyXLMnKWvSO/uvyLLZKyubA2CV6oBkGdOdL+Ud4sMJC4DIltASUB4faV8Yji/srJd4GJPWqUPh/GlLzshcwM5SD1CGNe2wLgIJx3S4ZGSHb5dXsHHk85olqKYLHRxiT6+uPYoWIdlOgBUE27IPgmq2QgmOlkNrdQx2pCeX/E40PvQxoIMUyduYHgWan6CpoMmU7xGwpSN06L3kedre6QbY7t2nEqDpNw7sXeZdMNx4otjbd1c6usLeLkvrcdtA4cR8ca2flarn1Xra9VWcRHso85/l6y+i4tOw8ASX7xt+Ky6TZjZ5e7VV6VjzkROSxDCehjUO9HhGn604H/bfGXIml2nQeA87SFvhZpk5s/DpTu44ZJL77aRk4qCg06MmOk31HUJsGJeVZkxCHsYwUo77R1eSSEvQyEPrQ9WHOU+Ox1Rt9bASoII/fEH7TLRY8DsRVqZBPAvYRK+P5Cw3coiPGWwUHseol1utEUUPpujmlr28+tV8Oh/eP8Y33y/8rfw72P79/S4OFM/e+qvN+ixn//o4O+u+DtMY+AP4I13+umvM//WO324deazOgP1G4o9eMQUKsSoBO0igzd48WYPjF+vKOozwoAYIeOJg9KivIyThnOCIj0H7e22WNC/KuIz/j4LSrEfvCXrZrR8PtG/U0zdpn5PfXGpf0/QQlQ/zH3xUf8e0jBOfu7e3p487T6uj6b1ic4SjErobVPhTyh6nBw/34MyH9HvA+2QgVC8wkZePf2E19XwmWoAnbl8+vjJ7W1UPP3h77e3H+Ffpw+ytijgZERgHGkw7enhHfviQP++pt73qLmDWjtF4KEPZXurPdjq9rr+37y9v/24/fBAMxu7upkFEPbxCxCpngiApNVfPgEx870z1/cNE93qildQTn35FdiU3FPBt3e1WPQaTdCC9iiKZ7ABH512t/5+9khqxReqO+hs0O1t623wHmFGbpv+1qz424/R9w9fsxMyVGrejaRhfcLg2ZXCJuyWTo6Kd1dpp6VCI0B3ZlaoUzTfffcT86VN36SjcBYp4VGdMjdzYC+mwEsBq1pgvNtlD43uYRePyL07G9ysejdLaMu+X4kpgI2VA/msLKJe+/HWGJgxvAZUa/Z+QVlwLzI4ts+V0ah4c8XUmdWvdgv+5hCdBo9nIomAn6Rn0NCjBwU+babKvj3W31pvrpi1kcsMg5hPNmgdfXXmBuo3n3XI+mbd/kd7+fIA4/u8X9Qypfym173c3HygYpSpkxgv/mC19rCn3vuFQDMFYHzkc8lYit+vqsEhVMfSfuv2duMdRS3q8BZgFuot70d3buIjpORUWBrLlF+uvLRSR5SnbtNnjtHKOxeyygMSFr1I8bhDa4yDLwmaPUdZoYJRU+4O6zNh5qcqjyNgTCNdhT4qB6pSRISS6K+HkQak1FCa5y9ZXKjfBkM/4M2BtB1sj+OM7NjoBlG0lZw8jWYL+IPSsPqzhVcRbbKCnkVbdAvfPuvrLG0frkzw8qvgJ/EaZKTtbfEJ+3HUU+ymIsrvqb4fJDWV/YuJoi2frsyBi9Y8nKXBuAk6GYohOooOkE5LG1qS9SReXJkgiss1N1evaminYhjBUa/c+0/TzkUK/ECSi/TMOt4nmud4MbGRAHQqdDWotGlQu+mojXxtpqK7gSg1GQD6h3DQOhX8nvMIZzAM/nritmoGhDrtlOu0U6PTJkOUqVJtQxuVYeFrfzCgylJJ/X5Z6UTH7YHK5DHAaZ0vpCdw1NC2/uKLLyDZ9eAAGfrCqrmHuEarFd7XgVDpoZU+hsQ0BcjcaRaheWSYRdC2+eKjGEAjr5SZqvnY83TvSkdcsR2neCZMUUM75cqEq7pdL0rSDSdaWbWqSvxQhaaJx5ThXkMfzXNRYKAP5hhjd1X8VoS8pcLgMGGBW05lMIy4WLbPhHLr7VmFvWTVgEc7U9o2HhHi9GrioaUSqqfPDKagei3vTRAGc7IyLKXJ1WE0kQZXcDSbF0r86teMr3Rax92Ski7OydC3MyKxZszY6c1N9UmF1GOfQPjLOiPpBMSEQEcGNAVgVPpnTdq0X3SK1E49bEozSDGq8muUTM0NEomvHuvu60NbSQ/Jmv/S21K7U37DcKSDrTWaJ8F/AJRK/iJ/jFyoB3tRod/I+xG8xJgGL/GkK80w1xrShdX8WJ6pZAhiSrtoAgRxgpRiohH8jNLUncomzsivQPsbDrgRmbUHQqlpS7NR1vBFeTq2NDD+8z/+T2DBKIo5WYwMHPuVxuZa7PeWiljPLF2ep+VsTLf6ZIKmO0LTF+Wdob1A0J4p5TJh80wmUTSWtgp8Ih/TsjVOk//8j/+JBlNXUQst5nRn0mQozpVpR2sZFZ3WMQiPly2VerGFrZIVWetI8Zff5a1FOcujPpr0AI/7JW8toZMv07QF5TEMAAIO9cnTEJrbS7NWdA2EDtqHCvP4YiqrUS2yPAhbRZhfkpWUdIQet4YwyNbzWQiHZAtAkKAPeWsYTcPZBIcWtkjqRb/zTKCZjGrneTqOrlWFLxkaAJaLFvYVthZoR0Ozilr5Mi+iOY01Rxu/noJoOWsAKUaIZBA1qKfqzGKnzpRCjyJWgmhO9WPsin5l6ZctMohq9+wn1rTGqWFZFMgnqchQ+rE6MGiujUl04Gy5JFvuHSDVZAlNNtkCDmEcB+zhil0bqioXYdIwV8xg1GAGt6Y07m5WekLbfYVeghLrNzdVdxedPWBm8fKfG3vd3XgeLTget/7v/6vFTEHXVapuZD0UMhmDgWkm4L9taOthq7t2qACc3LDh7bjOtHnb11ojzsJp6j//43/HlqSxADz9H2RnB6hIfNTt7aSDfI9vZr6uZbyZiRK8qeHNq2a+Arc2sFpZDAiLNoGpteJbBxJs0lktaZCgF0v2KAeuev7WRblfZSzjjANfGEtDQdvZUdAXy39evIgunDBYS+Sjk7V8NAoekmu+S7qQjLzkqnFsjVw1NaWZ35Azv6FkfhXrd6F9+cO17G/isL9JI/sbqo5FDA0yhjeR8eqwfWYK0sDvwklfNQJQOp8XeDfi60jefS3qAGRTFGdKKc4QPfLR3KY/kU5g6DxIRgLymzAOQBk6lJm+ToH7P6MrjKkUB5ILZMGoCWlKnwq0qQsXMrUJknzoGAhyjs6bcD7EF5aJa2WOTIG+oaoqMDlT+zRgXwbd3lYX2sIm1dG/lfInlDlwJDWRg+bMMPVdTaoMFWq69oiU70DaRSrko+kA61akIJT3tleGC6yJm9GF0XpPpdCE2OCaOxqRNwOEmaI0vfa7b4De50NJjRhV+hrIanCaPdIoHC2DH0VxFHzPbhCjo68LN7PZFnG0TLrBg1VKLiScVGpIGyRb+t2y5mW10UUuOgOBnTuToD6gyvqC9HKEqZyPmsSXpyChHDUJL0+36VrlK0y9nZnh6tdJCESvvqlBR0qYaikB9p0w7kyeV5q3BlmOMPbCEBcXEFhhvlxa+qJUHb5y4zSsPOYwNg9aCv6n2Httk5hL/l73IxN+8Yb/hZy+6bOZ1TcxQoAiYmQNMQzmsOLjEjDfOxJL9Nl7uOSkQMgriCElCr8TGhLUdSHhbWpHJYWAF+jVUWB4F2TTM8lSA3efAcuqmH7krKMsEi3MK76QPDtRpPbKBhbJ9DH4DmeTwZ6UHk39CnBrfhpyqA28aIxW+4Y3lk5vDm+sJilRrC3I6nyazsZR1vtjj162HtwMV87a/yGkujNDfpq2XQ8wMIWdWIQZnCUyQJ0v2ph3aGsWDqMZ8PCqNdMQ8huLwaJDNMlKavl91+HUXYg53q63iK3TYCS+jhwoel+B3JYMO5I3QHBxV/mtEUZkYrXUdJ4uOMoN/nhw47xY4eGM76jwSo49yv/o/VF9aZ4xzjpwHb12BID7w7L2VSFMjy/9kjvDot4VrZBVZxcCT4rekUAMfY3nNAbdOlLc25kV9NYBjVCZdzN3e0iOxA2V6R1hu+qsJSbx/2Hv3ZbbyJYFsWf7K0CMjIM6LLAJiFK3iiphtEVyi2Kz1WpA1JbYPOoCWUVABFDoQkEERGBinibm0eE3R4xf/Qt+cjjCn3J+wL/gzFy3XHUBIbVOTPiEQyECqFrXXLlyZebKi/Ed7tRlGe1vdw7nr0X9t8bmqC84HDAmWd9PgGGjg0986NMvXDjZ7TMVHmPlcyrybdrjfjWby568WToCqnJbhHNgrq/ontoSS2coLW9FziZypdV4Rr4cK/nyvtpZFB5bmLpBfeCkUjWr/uDqCoQDD++tOT0K2tV//a//CzzfFk6CKwp/sIlUuRmC9209g8LtyEgjrjWvZ+GiVtsyAtrmK4mbpQHnua1MiOtbu3zJqqSzgWKVqt2xFlnNFhhe12mwY7MRAwyIZ9w2CnUnakDfrBYxkLxPMTLOKkaCNSKiafabUTIrrkuJiRbxHgFVtpARUcdGRNUXb4OOf1fVXlqwMb07Oqq8KpouVpD9ssEVXF2HFforyq9cVX2SxJMY00yqFi4D4KCv0P6zpAFVY+VigG5dL0jSQQSCfGk9XQATMHX81qNdN+j4j/C+3/Dusw7Zjpg0kMCJY+QCkgYpBkx8U10utS2AvpPDKHrAkKPSTUS3+jiasnxkyZaOhwe1hTEEhrajeMckqSRPNVOlG41lwLzBGKPid5BW08iEcdx4J5h+jCNxWZxtsq8vhON9dWmho+/BzBsmw5J+POy4ur/YTRoRF++SjoqtkbVzQC5L5iIVaCpzkU6SwWc0v1G5LClVo3pKnsOk+L0EiXKG7E08Hi6s1QMcnFTwT0M1pZKJip8fSST92EuCMbBm5d1QsUovDhLgHamwS1zyAl1F+gGZ2n5Nt4NxmoThx3H8Ud43l3ctbJlTFU8JnUyx74q6qP6mbtOPqCBgaV437lfMWdbeqHMBn0IY/yHeoQIMA0SJKbXb6hJ+9UdxBxLidvtibsXt0wyEV/ZV+Nd668doMp/pRjz8aw3PxsHnYDBEC4XMqmA5lG6kBMcLFjdslRCKNhwVZivVnVGeNz0PsQVlWJbv2PuKmapMS7Z/FZBZdTIYR3EyEk7bEd2V6Buf6iYUoooIKhcdkRgGvZiS7AcDTwdDushBh3JlgVQhS/RGA/V9veFg2qcrGoH7eAdEmENiJXl33088qkEBsUCff4z6AHwA+c6PMRJBBbofy51Eg40wCjU86ClfDbwzmpYPtboZTalmdrLaBy4NhyCchJNYDEzRFUkCKL5DBc9TnACukA5WASfoAIOnkL+1srXBezMUt6cwlGBUETFGoVVY02Hl7wNrdtUNadP68cOIdXchhj8eX4Yq4gIBmGEDrSMGzqpcDwQNE2+nUKG6hlj9gcWxAWt3i9Adk/ifpooWr1y8+gsqIFjgHFHPwJGgF05hfHr8f6whX7rHkrkT0KXvIvaZGxgFkDTrVV1V6gAQeacIu1Z6WDh/FFG1Pyi6BmlJrIYDtfoi+gY0SntM7d2puNoUL/HqNYalXvxRSt7+uNTapqtQxNoIK5zchKJ3pFvtP9gCECGjSER/FJMzTlKARg1GhleISL2Cg8V+2Roa6yy1easZgriOFDI6F7CMXn9on6p+LLxVtO8phfBjbo5EHdF9QVJkFrmIwoAF1yFeFRyDwFGnLsiX/GowHQ2mUzKcZh4OGFvHBNXpyJxq7/bX65Rng4Z0tTFa4t7nnJb4xH9GzR1ps5xOvX7kn/AcJLa55tGOBJ2zKtJMo5cf10x3PhepoYWJzXnfjXIKiPOR27Megjg4yRrndMwDqrNwu/mG5u5p/uFb91X2YZFCHOFyOa1jvogTWy2O4vGR/+wIpWHXvJbKcYz5e1KmRz8p1aPX79N7S7CS4La+JFv4lXOfzh3neH+T39i5bcVzI/XzeSsqzEpGi9PDta7f2Ph2szPCmKZbtEFQXrrZSeI4lWzHXWzFx1rFddh8ogSZ5BQ25uaeYnk90jD1zaWB+94vGZEvR1SrifoiFL77wX+PMUF9jJy9XPYLrMZwv524R8LMXhsm3emv/pYyRl8BpgEqTnQheyAnIk52JxyGFHem2m9VTRLEo51I5gOFPVWAAnevEOjipZw5Wu7LFfmqSTtI64qI3NQQObkoLiNzypNrJZQ+DAnk0A78m3aC6ylJTrtNvW2myjchAwvsUIoUl6pCYzobjYJkUaS8bHHlZR5GGOgHw8VINjcTQ6ygq4zly017rSZPLAKFQxOswBr9zWSAqjVz2WLCKR2U1zrY0d+lsHEgNEbtNluFPwT78eCuG5inUv3QbmeewOGu3Nf0YA7ISd5A534V2y3y/Y1eOs5rfReWzq2LpHvrhHW2aFf7yKupONayMcHjDKZtBAlsWdqxu7Xa1gcNnq8YViXoxbNUDJAPJ7LVmVU0TuM94+WAvhYUWCPuBN2bWm1htKpXGeWt6BhAEA6L8Ftuhiz6XqX8aQ6b2lURQR3vmIi1Ygh8dZVT2+ejZIk9jiigw/m10ZXsZhzfYhgD28Roo0HSkESa1OKhFMyCMhROMWJVPF+oAHAyyhys02embhJEi5RNlXqz9ePOLvxrOgABIflJFvP//j8KtFOsglsB1rBBwqhwxnWq3zRXsXFK5zpltFACU/9muLJRX89xD5f2tNHOdvJmYzkqTLzyZTycjcbTNZiaqTAKBlzrfP6BmY8VkW7GjFeRx/UmrPJImGBvckdC9B1E8mOMxeY1mmznvpM7V9mjttdE4VNlsHwgpVa3Io2FQRgbAaaCtI1aEZJjnx+rm25EzMkQg23BCXQDqDmuDAefZYQtEe4uidF5xsUH6L0izGCh4A6QRmP69pdI6luLhr3KkdS3OZKKNuEw5jgJM4ifvXViK9WQ9rlFl8XiisYgq4AO3ha4whrAJbF5iDbDGIyDogwuyLSWYAgCYTh1YYCXgynl5iJbX7K6dYu7eAF8K0w5bUyDKBR9TCs3YTihsGWC/1KrhLFiQHIMJxNpc4wRQCsxDCFZ0wNhUIxysQxjCdwRHK1TCl4odBmUTnKKLeIkMAw0zJg85zF/ByltgJx9CZNYxgh13+b2fTGs1VKV3MvrQb6mAIqDBDHK1fON0RqhMhhN4iQNAA5ct9cL01tSzohZwXTiS5DkSfgeLghMNogocKgAsFjFOEqhPsGazkdaSjwzMO4jrB8I5ThtwPOdynOlBFJ7aDAPp3Q/mPaTUFB25Z1TScgcQEzgFrU3DKLT4UAsH0YJFeMg7MEbJ+SLKlfBAsZnZoUlKPCrAMpOeYRYWE1jTgEnyBBvMGV0SgzsfYVDQQc5mMbrkyN5GoWV11jgBOY9xOA8aMIOIPYqcQLcAfCjhiTIeHrk6SlDsVeA9cTZEAAJ1moIQIQkmHPt4PaZ6gUkarJT+SUWBjiC1kwAh1KshIPE2eNtnLJ8xxlNTXMIOtyigqgJbkZ0rQmiLhIo43/0dBN4IdYtGAkTeongiONIwJt/mYC/hFW4iivHlDVuEyp+Gk/T4cIl+qp8GbTqUe6Mq/jfNdmd3rDZ4h6kyPS02QwMK9MbkDVonftxfCMOMa3xl+cVcUykkL8exj2kDDsc9HbH59WX6DNyKdLPKVgDuqOOEQlDu/IKg1NOg4UBPV7es7H/63/+b8+vZIhY2AqKDVQ89v8mAsvKrbcQMSnxkoBkA3qEuIpJkeExCx6bA1IXI88S6QjEWSxU5EM8jWC8WUL91XS6BDvlkRiI0VaQYyK/FBLN9NLQMZKSjwueLWkpuHoLARABa7e0XBQndkGiRVEYgDAeSq3xKLghWIbBdCERIRzhAhCU0hjOkj7x0JVhPL5uUGglDKGaxEDpR1P0BVJIdT34jORdzLUHp8oloSAG2kWqjG2gfQiyAFCaPGsExUGYCGwUoWyJJKJRqDp8tQ5eYQQcSuqYJ+WnDvIMgEUrjp3Ka7yPINRAqGOGydnEtW0U9dkpOBAaiuDSBmMLA10ZiDqFtf8cCggpLgZbH4ch0IQdoUdTRLD1l4kgRladVmoYoHwwCadrqB/ufVw7pPk4fUQrogVqQ9OBIFyoSMXu0m2J4LdgYa/xN/Fno2AiT48rTk0krzNI9+mi6RIPRYywFwAKJ+SuhVvx3zN5BRL1ghzPAFIEYnHnQmauRGSRZRUPyYcObznoHgzFUIy2c2VZwcJRDeNIFzuSuhV3+ptY+UpwdUUn8QKErSvC5tlk6mmaK9C3jvzdoiLvThxX7mB5IeVWkji4guVdR8pLqTPGGrdOiNlEEAvEKNWFJtQECvsswkh4C2SoVfj1v0hjs3wcl+KiYTgnPpSggU5THtH6uhLhBBVw6NAQcQ3EcyQFmhNDrFUk01AKEYOCtkeAvCKspkhMvW+awJq4XkORIqU/mBi+TfOa+2aLYR2K/1aJSesB2BRj9HpkoMXer0wAwqjYFwgmJjgYCvdMhG5liqeYq458vBoTMxuIaGcwe5ysWAWsAIRC8nQ4DGLTxVSJuwOyjiQFa6gFlHAK1IjkUQGn1UL4dippjqjiCJ5iELLKdHZ9HVLSHlkvZjILHuBjUQET8l2G5IOJ/kh0SKP1SzCBs4qCanPa+vAv01byJejFIHQQI25mvjaZQqgZYbJvEGonY+AgwChvkCnIPV4no6w0lTkQLocoU8IhhTYF/47IZQFXmOdHBXjMsSpPJYBIAz2/hPRJhgrTPtkGwCtkY+HAQZUkB1YuC4G4OCbqY9/6axuSdWzhEeoIRFYCEKRxbfTFeoheyzBWxO8INrynOVy0ClFcAEV4q8SzlMoJfoExMOQOPZQ2ABjQSHAta/QP3TAYjbBoBTNsiZQXQM7U0CI5YNhHhFLfh3HNEVV5706sGsrs8exa8GGI18wUBZFfphFRjBgegvscAW6DoTgVdENIhMYhBqpGmRVXH+gt+ZET3QqGgy/kX0897VSOI+BdMLMhhakXN7YmQYUirGL5hFVBck28nFYjUBY3aNKjaoMxHM3YgdT14XrfhJOUhEjga+DnNPgsvFQDYgwVH4hKpsFQoggqC5SwjvL2TqX+XpHb4TRG3ngildqTAMPNa9skoBsJggzWVZqbqCQmUpNtG0FZRh+ErAlBQljXCFMf0Y44n8iaZ7rjEOUsoWnqbilNgLm3FWBEf1F+Q4DJc13pc+T+HWCKkuAyxWVHDyeh/RF7gqMHHVoiP92UzrXjSBch1QUZJ7mcNOinAP1Yc6R867HCXKMoTmzaicGAAKoYYxFhVmwdoZ4Sp6HCoE+zK5EmAYUfkRQFU4bIlCmmK3HaoXQrD1IB9IKcJcWbj2hFkQd9fhG6MAwSdsi0CNZ5RyxEF9AqZEI95nug2bnIe2XIrnTIijGasXBoux1L0qtFAJwT0RjkL0nyR0mN1D2XcTIOEx3sQTGAgiaohbklP6SBgJkCmQ4hgf7Tmu/bSAM6Dj5XNwpJwCshBVFHI1qzwymHplCpBezRdhMACLPZo/UaPdv9iivEzBDzV4g9PHmZsfZJo+nwK8W/AR+HSzh6+rD9V3qtWM8omHnJMAbj+kP3ZNsexi9Yw7g6fd0QpE2A6RHtb05kXthnzeWSki2z3v4eo0lnNR+2YP3FvnqbZ+seWpuExGQEaphqM53yY1C3f50MuJsGVEZroRPlTNPvuHdoS+OdrNwT5U3DfEp1D1/nTUp8vrw1nik3UnMt8L0cSKkbdB6d5ZxH3S1rFltsFBqA1iXcGhjmvBPLM10RQyD0siqAi9JWSH/SDMOIZFsyy+KSDUjL9QwTsCHRCXeubfY5L7NeWuI6Suq4AIIPF8mngFYWCuWWxpEImtJ53JLylBQfUuNxUXazcDifiGReYopSVanUA7CJRDPhVRtVaEJkmqbYPuq8kxCZg6vKMLwOLhfywkAlWiMjStLHAWEmDT2xBqRC/G+GsYdpABeMFxqRJOhpTFnbYsGGj0qvRb6HSDK3KNJpTiSZrxdJYGTzjVGw9MasQFUm0EEwbi+7pz8LbTIB5Sob7GiGGevXSB0iajvhCmZMw+wEYSJDE62XVwiiFcqdRJhm1A6IIkKTOqCwRxSrpTKJRXI9YTprmFE4wYdkSY3LO5rhtV1k8VGpQKwwRG0CnooNtJbTQMCYujMKz0jAAO5ZCFzE18E8UALRqa4oIj9OT5iXY9YovIALdW8U0KtynKKpP3FOwDHCKHvxHGpFCXJZxNNeAW5D8+MwFbp4nAhUbWAyPJG6hvA0GeAG2q+oVADEktMWwRlq5gV1tQmOUfCZKOuRVlrARlx8ovmIvK4UTmWoiNDbGhnRJJ161bwgfJ+cW868GYc6TUtwr07ZfaOWhGCDAwm+dalEgwxWUMAZh0O5IvDiKgluESmm4TAygieJQTbvufEItcMev14RzDCNFNBuOJsqHJLee0SUSQ0mO1dUiUadBjeAMSFZLgr1DumeRJjpSpZL3nikxgNQjRSh0JDJzgC5EHn3xfD7ISBIEkbkxDFIOW5qmSvHjWaoBEg/N9Cq0nfIG36MPqJENJGqAaTvgWSzL+PJQopoIPDpG4sXPx8LMrKeHqiefmAkBSRJcQUAMyFhg9Lt0U00WfmK+YoTYhNq8ysmYyYAouljySlS3ojxhxHcDbU0JP+aYRilpLsUg2lg+yyKhbnlkTb/o8G13Jci/xQ8xypTcbUiTvzLEETXiyK7pe/EN/5NhI/QR2AIHF+urwC1DQVGT/L5V1urbjq45yrCoh7eu89yeGhtWK/X3/k3OySETQBU04y18TvJyDnt9q5j2OEIpggLQjm/eW0GZeO+EHXquvCaMAXNApeBu9Vm4Qe+Gi6b+3mbyTXS+PqaIgffE4KgDxxK3/Jnf6cbqdTRpV0GU6k6ubBl3xwIIK9w1SPPhhUck4TSlxLKNO8br2sWIeZXgEx4x2fBtbWVnPd3yGf7IhMGIJL5CyJXl/C2Iv195WwU2MH0j8TAinNA7QDU+jvIua+xpDZtYEEugdHvdW74pupGwR0MMDKL65o33xpC0AwFM25akMAHKMRZkJjeM5/RlSUskvRDJ1RVE7osuT839J4y/ALLBqVF/4wqu3KquRAnfaAeJD/zjOIYkZ9FhXNn/qBzPt4RZ+lFlmTcj7GafiAXh6HEkYnEXhsg24uweMUxHrBMcZCHQrLDQzGwnIllOgBrWA2sYO1innWxVGNot1EccLEMf2bMM8BkRdabaGzFaSxCHbvzbAjGsQrB6AYbt5EJTRGYFM0iXMLUr35uVt2rjv+o2frn5m5rzx11/Md79JUFebiWvszxkJK3CJ9kcnSRzIbMl1oVQQAvAeFcEYIN0SO+PMZP4l7hk25u4TOUorqMTFy9MOkGtljTGP8B+5WRnuAXNi9+QSfialjFrMc2WGmZvIBn8CWlS123XhEDV4nDlQjGLpypXUdHkgdYIM2V8dINAKZh2hBh86muJ2Poi+hVajj4jFwCZXh/edBnh0tZEuSxh2lK1PdnP33FRFBgAO41FGF9gYMNEjmtKsvgSEwEBVREV/WFDKJoT0suHK2jF+zQp5xlIicYu5nVhHKZJ5RkS6xtkp+GEG0EO5pLcl21kn16OawrHJpBIDnGOzF7T8IebyQOJfxnjkgAGIh1WG0wmxUiOu0HxFocF0dagw466sdCJdH59t2x1cV4pFTD3ivU03KpkypRIzy99kjjmPNs1GElM93wOlu5tzLWGXadfSMRtPXocX5tcXTqHkijJ+ooIrpAhBWTki0WdCtkXIOhpEEAjgETHu9VTgZ/E9JMFipliGF2o0CNsY0aBXszt+Rls+euxsN8RnOZEAtg5Cs3w2xmrHx6ComS12H6q8oW8jriiaegrWw6keVSpRtgbtWBHatV1rkJF1PK2i6y8iU+Ou0GF/K3yZqj1dCJ/IppCUh1q0Ok4svz/gVPD8/zeeCqd2H9DsfI2SSUTB2/Ye+o1vpZRPoyyYKiTXPCUx5clrjshyrhoQ5OWv3992oBZHnyd5XmwyTrmsmm6XNHf9nBfGhY7BuSxbN89521kYjbBLin/t7uk8ceey2jHrWzAYrGDi/Vi+NhCIc/y62YdamH9jMJTQH1LL95ioPC8Jlo1B0jbN9Mq/JEQO5/ou1SgaSvsSnir0UKXGHfVbbp8awqprliaPnuZ2NgrCeUJFKRIpqUIMmMrhaesMdX+lDCY1UfTBUd0wutzoQ99mU4SSuDK8YyaGJLg2MYIJ+oBPXVqkitS+Q6cJ41Wz+VHZRaOVwZo4EQauMrolVOOaEBoUyummzLZZTfGlYx5VMDnDGOpJDgZ6pvOFpoCnWbCSwPWoSJlcFNJA+ufD/0nLUu26yrFungcBClcAdVxM6ie3a1fdadHxbbYx8gwT1nB89Zdd3JbColeQHuxlN2FOMXQ/4Kc6fRHgf2URRGWiVweUfFeKvViPkVT4GInRcdiTn+6cKQUR3KXDYsAmm2rzreT0IoYGlu4AR6pjIC3sU33lbTlRee3h9yj0l9rXxslupycYlWJkifOAo8uJv9gL2scOH+WIl9rqZKSnrtIagApEiUSuKr8lsNDMFC1klDeXCV4XEGV3SO6GATj/dsRqudmVpmHFnJQYzDJYLvAh0QJMzwOooHX3nU7q5ud5yZbmZlLckqO1mZrZiIs6hnT1q/z8xdP0cQ6B8GEsWLmxka4+kkSWfbXDea4ejYRl9RGlsVFXBmkE9vThtQd2L2Xjx1hYoiAylX9+mxSanE2gnmXWVn4KZzQ7pPcT0qeSKBFCW3z+Qxg0HBireIdPqu2FtFDrjyTxj8B+e3+qc/GDVJhjzHHAMFm7QNFhE+GKGCn17Az/tpSWMD04o0eqAP7w55Oa/62+Grwxfdw4Oqnkygs9n2Ov5P4UP3swgY2en4j3Z33Tl9GIXCYaeo4+rn3arsVdxxQbcYpAi6FWlwKS83RYahDnVzA57zQfHd7WqdwqOFqVP1coyQHG2345OBsbi+MhGa1NVZKm4vB1O6NKaDhAKYDYVhCd66KoNkutVWq4c3d2RxQM4IPShxg64IgCd4+ymUNKaQjINToYQ8lKF6p/JbKKwlYHDYtSAjl/3w8qYi4o4mFZX2npqnwxRdTwaf0XRB+sJOKwNxMS09hyoqM8N0h2WfvJVaQ5E3XesNMxGF1uX/Eg/i7IN+9kFkRyUa2T972eIsqtGuFdJIvF5kH5x33XlRFKVT923R41fuTdFjzI9qP4eHH9xhWlT4wH1X9PjEPcpf2Lx2x2n+6QN3XthyN3X7BcVfuse5h0EqnrwIhkN01uW51+LUX6joOPsLk7ALI/HMU7VQKbVzTH9VzBpgJtIdZQXQjW9Q8f1zXM8+zKRSX7nnF477uXBEM5YsTfRQlzFxrJRpJheZO7MGLBu/LWo72aztwkxxEn2t36KrL0VdfUYp+pbCBt3CTC+cwohNWw+cOwKoClWk10OOK5Of7pgCoXQ6PMVc0QziFDt+UBSvCHs9cO7G6Vd0i4Wh3/mG/R7oUEhvMqCBHjBHnIJhnAIi1WqnejlOgTDrOE2wOj1d9NQdmchOFHDpFGZ3WNg+gv4L/NctbW+7fRurI9aY27HfvZMIf0SYPpe/3srPG/k5VLP9AlsLhjJIi8aCIbasGfX55L/UKbzWF6g+ym0GeB+lbhqabfoJKultitGlPqX25fInVFli8CToFAH7CVmNP+FHJH6IQ+UY1fLQrky+C0gqV+vP1L+j+h70rcp6aehCI16UrvYN9v+ZmqPhMqzrk9WU8KFMrfanGgGDQc8qg+9rtY79THVeqwX2CxoeNUvfduT59o5wcSur63qZYtYYGB7GEtMNFeP4nb3VXVFtGCLmr4BX4WobePoiVC2/+FxnI3Z20AGgXr+7CtHMCM5przde0RqKcfTG7UFaF/N2vBfhcomjhC5oEFsvYHaiJD4GUjkMZYCxW0AxQJTLYkTBTUH4tsVgDQw8rnyfwTCGh4f1bgdbPCyhSkS7tupdLcOd6m+8qVOTH/ke2ELbp3B0d5DmQ7+fU5iFe+p2NZ04zE7KpCVVu3lf06jtbT3B/W/d1kyeANiJfKeHKvu0DUS1T0rajszaA22IxIXNwnHf43eZQ2uozlB4FMxSctUOJOctMmrXalu5d+pXeNWuv4PWDA2SNMnx6m+RCMFvqDxLhkp3h4XvvnYiFpDWUL0oFc6M40sUHEVCTehesflSOxBh5EBJHd1xAaLVrWFk+9MQO8TltxCBk3UMjkg9HKZFZ51GmSjVv9LQDzgR3UphC8L4p/EsuUSFS5qhKstlj7ENOWhq0myQEvb3p5QR1esOrg9FAcUe/1Tsh2KjXwIGhjDAT5nDIjuS/JMdEEDTUwH5ehC61X+uwsYehr7sjyYItCa+ce6kpD8MjcDLFHpAbUBu5C/dO5mruZqEn0h1VVUCcqESTCHAnxoXVoCh0C6IkKbvAe+UfsvAdq6pp1PorQha6nGplkdJI6FvCrvdod+x1rkL8BajCbBbl6ICC9NXKWxZdneyatUM5nhS7w7dIJQk/sUYluwFbuHJcEHkWv2AJcCXvLMX4/ymgeKZTfNi7DhOhil7wWdlVgentDBhL8XyvQi/ddGqIhQwQcM4CuIV3ET4I0gj02BYXWVH2BtnIN0bFw/oM4gCm49nk8XJjeUk9O+QW/mUMm0HjGIwPhriLTfmFGISzgngyWc4khnyKcWSWGTalzCnT5lzdcFIwgmwArDKYp6In5MEHQphqiQLwat1shBD9eJGnLuTTAt+tkn3hOgCqiPo6MAC/De+VxBAamuJciDgZYrrMWVEQb2msAcAxyXNWgeY5bJe1obGiygYDDdFiyDMbyMYfGYbwfBWDkvELXHjMmR4egl8Fmzoy9BVpFks+MtULTinxXSavkzJsutX0oLknyCPtFyOsucDE1t2c1IJnWnrzuMCwyirUzNHeDyd9dB+qYfsBD9eQXSDt5JOfeWhoiqKo2XlEnww9u4LlbmTnTa5A4zIPpwqtphCZN/hCVfrgBG5g1fH4H0RWkMCokotwFjy2PAyx4m8BE6ERo/c9L4dSzy4ujpE9eHP6B8yDpN6VVauushXMTFXKBXXFFa8zoDYHbcgGjYJhDIcdpzm42ED9J6BkCYjYqsSOiT2vmFXFYRBOrRJbxpixl0jbUZaTQNLZAMX3mYHYWJsZzo3QbaduwJ+58tn6Fjunz8VflyG+3+mjIdFAdTGDj5Q2IhmWo4a9GWYG7QutAZnDzvZqbmZCTmSUyIanB3XYb3a1epcpncdaD2uxacXnkw7VcQ2YsFtSOpbNDjq71RPuLcpaQL6KSULirSFwaZkJR1UgIdnII0tXpjpvA7kvny1oy8sV7kFJgMFjWZIsJzl8pXWvkDx3jDuFZe/CRdQ4ZUDa3BIkinqRsfAeLuH90VGV+UPTXTw40KBrxIr7IHz+0+QEkPY4wbvFxaX8RKkWxvB7WOWuHp16mnZJ2UH4S4dhLtqTCkRMuAemHAIpItUODLlRrUtRMXbz/Vcf554BSd+7pXYmuUHZaTHd4/yFbcXLkhQEsv8U1pCQmEr8h0CR3CUMlYfhVTaEYI1gZ93323IcGLYu9se8mUZ1X+5fsjfxD8MC/iHYY5/GCL/oA6885eA3m/WoKtGzwNCywi1Lq+XyxMFH7rWBw5CidbmSNex1bOcCmCioa5HhKIGJT8pfcVzQkKteCpCsgNrpXAknzhNzptLqLskIj94y2UKA12xNaNvkeob3YPEnU9pIe7YI7EbyvA8QxSf8+v0KXeyf5I6htfuiYs65/ti2ZP9OQkVG8VQNsUbvSApMO++3wyemkCEKUtpyFCAeUT863/5nysvgfau9Ypgw8smKAxT4e/wof0d3dfprpEcBypV9wOGXD9of5Wn/TsW9kOco4RpilQK33uvqxodyJW6w0jUb9zimatC0pnVq1Lsr4Yw459SFGuYU5j8Spl3vOo4bqhHUCm59LoyQn+YwgphLADP3tSGvTJKUNrjliYU+H68DlCPupR32D0F2QKYjHhMCEwrf2fuOlAp6qJyeeV2He+rIIkhbkkmB0DIkAUH5YEVBGFscAmPcPIKJHqAUDxEkIrMSUHG12utj1hBu6q5q0EwjK+Vo84ovgqG2k+HpWEGut1bVOU0LaYqh9Il+Y+L5hYuwh75SfEgDzl0Y3uLopGBZLXJOKrPKRCxue8nz/3gijuzrgmHW+pIe6AdWarK9nEq4rQI/28Z4IhOv+lan9KDnctgEoggdCI4EPlt2/69V8Uu1JsFvVfO8V+T1GD8bXkLcOpf29VBRo8u2QvtY5BzJd0Ap8axHaym+lx5vpODO/nHTkPutC889LW3sQwHoPFELkpFtBMKH23hVHzbR6sioY9GuUPMRgTows5keA0zBHK+pygJ1Eo8zqRZkBEBaXxoekV4K8bHIhVc6TG9kDIP4R0OQDj+U/DI4BowM4NLGxEcOhynm5+iGIcD4HjlnSA/ZR2fxDm+EewlCxyI3ALf1vcfz3KgFHxxsx55GpKTtiAGFGDzf6/mSIOOqwNDevD/ZfJcNMLvS59NZHM+2gIKvclQqip8mAkXIgTadWHKaU+U0tQH8npI+CRWVcQFGewOj2Ljdpwj7Q92UuIHDIX/jrT4QHkwfSWR1IMii9NvI86YG7y0X92BSLL99a0fkej21dMiie/b5vM3ip5S2uV5NWMbzY2iZceOZomTsHAnYBMNeImsBsNZKdE82BERXNrtKiqQymY5WOiSzrdN9Tmm0/7vO1PK6H3fJFWhb5ojecd+NQJJF9pv6bGrHKi/YTeqqln+5FvYE7JXFdEFiQ8YXw1kGk8R5FfyASYypzAfFXGGkCXAna2ib1LKgNuxzgCFZrBWqOp/4/O/iwqVl/nj+DitY5wcPPP/bdiAtR0LdSDruJu2xcFj2AE6hqSZsuEFjG/1845/tzJ2VF86tmfe846bKF+cmdp/xyOQ+Z4PU+bf1c69RFP4OFf1ZToaFlbDF55Ol1hJrmEciRvzRPX4KHBnpNp50SHlNXyT3l2DcWWsfVH0LX0fWq1iGDugZcoLhlxDajWQ0lOqhX7i8N1Uhh9YpqrAarU9XNSBm5dvaDjSbL6SdZ9sY1EqgTlxjd2WeqpdCc4v9odhWon9RpMcnve3t+OnylV130nO4wsfJw+fVFHDaAej/9aRSuvWXzBnvq2t+ljdf5EznvT5VEsfLHytpxTh8A6HIf6qVwfoe63Nrsn5UVlbV2vV7fF2db+6j7Mdj8MEt6wfaM8teIyusS+ExGO8NtGV4gXQnOepdhpvNNFK8NETWAL0kJuGo4F0bgzaW01vxtL3jgXU3ESNJPY1iBB6fX/XjWhpn+62A78RPIvbu168HXiBj99jD2r7s2e77Zm36ybaaz3ccyJfLB3ecNQTvAudYVz2KK0jtF3hmnkZ1jGEibMfDqcU37w+Q8SRr2hZ+k8TvWiRn0i3zL7b38ZerGZ3s81CIR9KuQF9MK+sMfdAqGgH5t12nUCio87sQikXLwDk4s4WsK93+sH09e34V+AUwyRdmCWdXvMlBQKAIJwxBJwxBPzYgRGPz2dGuxmYAX6UBIMaoNozCu1mlqk+W+xgYCooN3Pa2I5KI7lc1vEn9I8m+AF8pXHQMvYdbCvCtvrOnWoidiOsFZ9HF7Bt1KXJyO/Dg/2bDr1w7Y04ctojb9Q+H114UIO7Y9zwoePc2YbUYAg0GOo4QLytJa8n4l3aYy9xdjCUMr109mlNduFfwvbk5bVNU6XH7CRIpuEx7DZ8qbfJ0ydiAzQxnsKz5sNabfb0YYu+tx7jj+bjXfz16FHrySP8/ejHh3t7+OTx3pMf6cnjR7u7PwGUZrXHjx49fIRbjL7kH1G9ZrO5B//b1f/n//o/q5I1or2Am/VXjCxYn7HZfBlzJxa6mA8Ai384/z39ffx7UrnY/uEadQOOefUvlWXlAT6Fh7ZXchq/nUzUL4m5v4T++wG097zxIWh8ufjBcY/kk9+vzLNPHfHsPzT+6Z+3f280nvhtePkvjf8ELw2eR5bTt7G4HxNM0QWn2fpRdXwZUZO/X0Hzrzumy6OgEWGXp/LZVuMHr/Efzxt/3GV6W6SFvY2fNloGfr+mZUPaFSN62GLQvkkzLkMNOe5GU5WWo59McXR4jfJbeH04n6Cn+eTu19USPzorYKRnVcdxO0MxySkfOFbUvQTmeQArrx7P9FBnzxpNpH0Yqr7O8UUSeKjEow+8TfOkO2knjaYnN8KvrzvH3eOzw4/Hvxwd/3Lcfa8IutoUEVvQek+PCGDTc9pwHIeYAx2DY4zgAZBA+Mv8/rM1arX+9vbTGCvicOD8g4fuyPGwpfkAsd3FJhzlKnYALFKKd6iDL6H3S4dxS790OBkFziFN0Z2wjmK/2N8J9UFZjqZKCXgs4tcTeyMI734e9AkQLmRvRr6y0zTDHemrOr0NBQiqw8E4PCRbuSqeMKaCK+dml5BLQw9/TcJoMOe8RIxDyPaAUeqvk2DSh+p9KMBiOmFxaY3n6/KX/dn4pksxqO/k/LvEA6f0jGSzeDaFs97QQNgNsx2MW+330J2r50ZWR1EBaMTkTGdmwnzAa0AIe3fkcJxgMOPN9glPWKFI48lvHE/edlZusmAP/uSI89ZCHEQXmKfkAxPgZGK3D9yMCpCwz5D5PU09eapYKNXKB392nuggWcGOCn6ZkPeV/+G8eeEaBP1wvnuxI33shHVez5040LgCxwS/6257qls0F8s0vfORbD6OhvGtc7fmpS9NbGOMJK1N6T/4wQ45T045MweixQf3QBzCw7TR2MeoP6rg+TC9gOHjKYzLU0V7HPameaG5f1o37Lvq3B342VLh+Gqfcj6sboDro37f+R9Ep++eZofl6OrvVG0fAywdrNx329sa7mM9THeYbjeRLVMNCXbwA9DgTNv+O3fCQD+yQD9RoIcJmTWn+3wlknShCLkMqKu/F4rk1Gr5Z7hCwO1r35vKKVYPgJWH/ZrMJqkPckNRU1vxzsfraNRFwfRggTGnL49VnZfB5Y2eQA757la489AntJ4s3I67cKwpdnCKyndHYIeLS+J2rWILVixQ1HUYfFmcBzvj+Ba4CSRjICptGUi5ka9exlE0xftQq82u1WbRsNWOgYHP3VN74HNWG7fGTLCC50EOerldc5Gd3alc5/eaqBlQ7HLK9T5LuWI/Xi41QDALTV3OmSgYI8O0Fdy7j4omJV7sWjQ5ogKaJmMowbfWKN/mRvmqblFJsdvwSvnecQPFfW9R3PeOW9gaevDiPjIYKknJyKLFUP0tG+qr+nv3g6KOQzRXog0I/EoYjOSO+VCrDVOxaMIW5P2OmrwPchu5ytE59B4FlPduvCMSXXVuBrAvRZwf9MckNVcd06rZiCmLCMQUgsaBH2coCxGcA0nk1MvzA6IyorpA3acRjGcrUwDI0HKZfyarPIsc20XkXSG5PQEKdOS+FiM5yZLbkzJqe1JKbKH6kXP32s8UNRT3yN/aXWF3tM8P/Hf7B2so7oFFcV+v3AOguJzUnhRR2ncFlPaAi3+Iyzj9D5pcCAh8aDQqz97vM9yZnX+42M/Rh2GKhyr8hbMUYSNEVBCVnZWOUfXe9Ieb+U7hyjni2wVilToW1Zf7j1A2hz87SpkkNxVxdPcyolrpSgoOzv65ZTWEQnIHh82CWaEOGfOnjdHJw1HmdHucK5zKsDImzhhJQMtlZ2hijFWauB0nU/aEiUyL6VeqzGS5vo86M4wsEQ8/h8+Hw33Y0luJGX8fLZADvy8UPYmgBH3HnGTKKTny78ZCTZsitZTJ6VWz3suOq/m8v3E+72VGxYA8P7J27ggZLrdTpG5BWJ3P9KZDoge7jh6x7aYH0kF7DAz9acoIjHHusPHEB+lCbukxcIj2XqYn97YqynwUIWUVHQ0TysEV1uV7hyv4dlHDUFByVlCSsKOue6Gxg2yr5oK94jKpB4a6NdQjTiWd/+khrLFpzyqe5Ipvb96s46igFPsg32zW/LOmWZV7enjWbLc8pYNaEKVjnazcrnzEaq72p4v6wm2AlARfum4PA1eIK4YeNCevgfVSelWgCf1gOpjqRy614y1c6MLLdrlyR9/UWn6c1Hx3BdQu1x6JVaYtISnydhgIzCB54yugnblmWZO8uYgPCB+M5ExZP75V0OrLN1XcCRAhd0M0APSd+Nfj+sQ9P5c7WlV1gwv3XGxH9ujCwaAimRqxLCt+RbxmZL3qUwuqAaCeQQFFH4wxSH1nEoyJqKM+mo7NBM5S1IDYI6Be+lYvIz4A60cs+t8Q8dv1jt9yC+Azy8NnZuDjdZApRH1rAnR11ki2H7oUNDrZnqjrhU6jJRkOYjZIyWsT203Iat0qRGGktX9DZWyOqb9l7s5KjlLdxWmQ3GA2VQJ/IotL9hNwGk5OKZb271GE9f2e4fTzMxB6sYxGDGhuDybcN9deXBkmydDEV+x4UasdHGIPw9tsdeA4F1mtYwy6pw9YeNv1t+BZLN52rLeJhuJE0HkUPTGu516rvfAW6B2EMc4QE+W5wAp0vS4UgAa3Fo5Q2DG+aLoQS4GzGs5G420f2DJF8un7x94sisKEkr/CE3nQ/9zRB/0sjTHnddWc7G/4yf5Gc15SZ6OmEu8zBdo8r0DTDTPpTD0TGGEpquZGDVVQKlOforLCjFFPxRVzZhi/YItc6JqjBsub44XAXnsGP70J/OHKNlMZS+09XC7p85H8fLxcHolGE78JmDZ3sk2MMk08+ikzABTveiDLrW0feACQsZ8+bGUqoxCIDWCflsrK7vQx1bMBycD1HZbCelFFCkpgFTzvnFT14hMvcKIpgozgbU+nZ+l+MnPYy8y943ifOvkFnTjezFqBDmtILNYCe7YLLbIr/bhgmToSV9ZCUxJK9eJwFAyG1X8jEHetOeAvYicVCnHUefxQ0eZTX7wHIrLYzxFAGMSpkgAIREq/O/PvJphrKEBLBUMX3nO68D4rkSVcp9/nVxF9p03iWmwr4OG5F8MfrojvM1qvUGpBLQRYfIbFlaxy7d9xza5nVNB/72DE8EHq/aPjCipHIdnezMhyRxc74/M562RlLzynColdRKCPCD1U8ZGfZORZrdUmD2K8AlZ4wQdz91HXQnd52OY74oDYZXvVVFCwK3pXgGaRwaaCcn2z+JF1vxHx1YvY1VNuJO/6IOSLZCv39ltYo7iQQPn6utfQBz8I//5Vy2fNjnCzb2sHkr+uGoCmvX4pYI3qIr6mcWNJU/QfdG+Sn7+2aYmu1QGuI3ceTi+DCcfvI47fRxvuV6ZJtdtlOBfSkwJ865slzZSJi3f5aQf3dr2s0zMyeSrpobRs4WuBUpyA9PMg/A3dlYSIp6F4wqF4UoxmQkezW3qZtVgDXtOnpcbOvi2A9qJgsvnyPc4rmIGgg/HDR0WgzzTxC3SVDC6/tmdTbSJ2clkvat36/sMmiPVHoduB9i3uwB71Tz/BmUAWDbsbDP9lOA8wR+IoGH7tFLJVN5jCY5jB6w5yD5tN+UcofxllZ4w/8YhZSKOxWKFb1y8fs2xUi1BQ9yis1bZuo3qSVVCBqAE82WL9KL8Z48qL0CZUpw7MDxiWGBiWPmfAFsTu4ejURr1cFPMjr+CYjxfEBdBFH76UGxpo8hF2eMU28ge+kT8UbmTUsBT1NExXxvgO/o8UlHv7bHMdaDSdwHeOwAeqm3fAJkhlf2Kr7BtNfand99/Vau+4tM6Opva789ZFdj2xMN5FybY8GKF/wDDWgMMpenqUIz/2Ky4LWzPrsDkfwEBH7Xq0vc0Q5oAWM3r6ENDtgJ3o5R3AmXwgz+SFW71l3AI2sIA/Fitv968ZxgOnXdZXFRXg+ooN+EpoVt3aXi7ct+4H7MnaGnYDx+MormavHIV5UNb2Q8ZcWeElqDXw7kYDZw2zXVU4GgKMd/PtDRDE5zmIOx4O78njWk2sr1pGtsBd66a4fF4LhQGFUD0NUdv0lVA9taF6+t2gKkez2AwCp9bN8UERk+d+cF851t55ZRVcb9d0UGLXdMNv+UxzlPqdbaQwtbnb/naTdlOYWiOin2Xwy2+R7FoO41t1sL231+X9xtuUtUGjyUKa39F/sAGYWUaSEfjshtCe+849EYqsI6PIem1o+Ot6PzUjLVyUA8OKpvirYFXGKQvpnhY2madJN1QQ1+vAffD9hRFo23uAf83QHvCR9VNBvg/uPwLmNFLHO7Gbm6dF7R3BcWCDbA4jOXrmR9TX/YeBBko3zRAnnFK3eCzd/FiMLgEaLOsaunzHG2QS2atvETAjFfseJWy2X0q2eVSyzfslQmRiGWEk3DpI9BjUjdXem1iLOxxJDJPzDtip404xA/SA807vNgfFpEDwsVDULZK+HzlQkU95orrqbMI/dWq1Tgn3hG/y7FPHZp+e+XvtqE7KxYmlITazmaiF7WE5wKoJUkhF7Y87buT2cBJraOQIXlvK43zrhK+TNTQSh2SRyAnqibnANykkkQz+Ac6REYVvQfN78XCRUSN9Jf7HjleCJjn1itHG3Ysmo1ptVIomowI0GeXRJDCzQ4B4M7bhfu3wDde1zYDDubKr8NK52WfjOdtn6RyVQHhaBdoHqLHnzvyHaF6xL6wJ7Gs9BjZjWqBeSsJJF33BumpBUTVjZrG9nTwNjKEFt42SEz2gq8M7+z5Rvfw1uKKeXKuj/OvZtt9yg4ZvXW1C/42mG2xv0yh8GAbeuIlzro0WkYFt7LFlzw6v2vyEblKgKM41KQOEgFNcMEKanYudxdstVgrv1KFBQDH5y/g+QUE3acSNloMzom9ugtUdbRBVdNMazjM+FE8eL5d0fyqxm303CG5bq9laMMaZzDMXe2ixU3gBuygm4sb+3H5m3ccuLBJnK3KePM7I/WhbOspIiZkWe7amJKvRkoftAjYlXUQxmpPXUjNthnrZExVxZH1/3cxQ20daG9z9iw1o26KEtvWyZ4TZP+5kvSJMHhHyxk2Mm46MRebIYE0S/Dwb7JOs6mndGsWwRiDSU+LJ9rqVyr6is4Y67xfuJzHZFbkKVwbzO83swq4PnDvC9GGIETnbIl2md34hrPgSijB4frG6BpkhIM1ZgE5GwTNf15K7Y9tUUDbmJizbb+g8LGOzvQjGFJFNRGMZ4O155Y/qdrBd/YPc/ipiY1fE7Tom05oC/cYi9Q36hFaMpi54mq3R1g+AQnqm+nmupUawna0MBAABURG/TLaI+4e1El6bdo1pmL6YJVOAya7DwL0ziSd1ZzXVXqEmYVi7XervpPiFNTPeUU0ClQ6eFZcTIxAF8yBJciBxN4Eb+vGhF35Yd7zcaBzyJgjS+jf1z5oGkGlPWu4oNlsud/czAD8NUtgqCWxNGIByJOn7fAiTkjHEbtkaGK/qWu16ZpAVBuP2zThXtL4lmFDatmtmLvBDuIzK3fuVDYiq1MRpMF58VTPWzKAR7ZGcayOD1bJTWb6k313TAVVzA2uBdTlBi7YoQWMWJ5A8ZZ/VarmVhJpIyZ7uynesNL5yyII9t50ytlkCkxXelWOGPakZnxR6g9uN5jFwLXFpbNIxLZfVL0/cOeM2xrvkA8/d28di9fBsYN7r+9y1mRWR23cGbCZWdpDdtDzSr8pcx23b5n0lmOIJMkB+zdg6d4yhthgKHR37zkz4gJO3UwezTKMr5qxWS4r9DDBjDxVqNB2bWZ2mxyBxaqGl3vOpCeP4ohwH8OKi/7Sn8ax33i/he/82DMY32FYf2G9nbSWplAXRQM64rPAWK7zv5JrRXoc4A/ny42B6PD4aJFMVX+F19LOcLsUS3t4mx5bEsh53aPZMVwwNypTbwFQMrseA/cN5vQPHFRpQ4iK4EzS1EOhC7ZFptjLJEOvW92eaS9/vSxvzSK5cH6TwUlEqWgdjJ8qYvtdjNPSjVmOz0Pl6rEPeHZpSmpls1aMS4TY3LAFWoROAxSRpax/HknBLYT4waTM8AhiIbRSjKe1IB35IMM6sEn3cWSPebgJj76xWxn0QwweUEQRXNQv0zd2aMB3u3LY8He8Ilg8F88T8aimviUAHO+grV4rIn7H9sR8tl3WMYSEUGOczjj0X9ZlyfZoJpJAvEFm7STAAoF5T9P+yl4hbJnhDpHZjD02qJ4qmdNyF20W6Mgc8O4WN+haIm6jzyj9/K2M0zBUREbPc3qaVgJ0FL/b7gq7Fjjtnk4OpdVR4DukONscS6Om1XHa4P9gCI8Qzn6+5mvh83U4UcydfyekN4lHphsWoIMIhqPOd2pRCM1rlzgFyYlakIpiTiqL7dKSp7+i8m/EHgScoKNv7j4qZnSHLyAfmtXF126JC2vYbH8Hw3/pdQPdXArxv7SVRzk9z43+nnsgpiONDoQoiyrxd36gJx3sluC7Apldq7l0kV3K/3Pgjua9ewahd+LPdvMCLFr8vKu73pGNnmMLT7RsjUbAwLvCu5d44BOqeOaoJhQnuPQ33yfnpdk/A/sKXX2Gnnm778mtDvoWaSvWpYvbM/TulIEuYgmw6X7mzebGS+pIrzxKuOqGz3GWKlemcR3MpsogaFSk95HlHGb/5PaVEz+xFpaqwArHZ8uznEQeUd38b4wp4wj1fXbbN5sBm9J36KOuMH2fjEWSVvHxUXBZXT4J8pIGcfWg2MoBpT0Yt+CogWCEQMEQRteHGjMO7nH+D8rl8yt+kay5QNGd1zNL4U2voI5ObD77vb66C3vrmmz2gRt9Lez02xhD1ovGgrzTIqkHGQnF0raKdGG5YrdvE7y2Xa4OedMz1K4vWtKjfGNtMMiA3erXELGlsvvb5kt7oJe2jVYJ3oxfpRurI8HOvSVbpN2gBdcOUb6yDyHwdfa1Jwlto1DL0yEyJqSTLBy+/xfpbog1iv21Uc3tU8+JRldtHjNCC5cbJwhQt/GEDMFiy6WCBJ632qTe3TDSySyxbkqvzxHJ7gFbmjoej5QYWuoWtDhy39ohwdX/FETn3z0h+iywo0yw7Tye1GjW3mxlOZ3vbfSvAsNfMvms01LsCtNvNol0eVK8827HfBtXerpliIaigbwQO26QTa5Oq7RkZo9UReqTos3e/0COjbAfmfRnsjdkp9ssYPXvy5IlwEDEuI0+a8hOdWnvy+x58BzJX/dgfXAHhO4rjFGNvdmaTSZxQTMMoT6+Er4loS6NAf8Ohm60GWD3fQKs/LzlFMgagG+zQhe3Wk3VSKQIV7b25s1yOtrcRqGUY3yFfpYz7DQgHPX/rBhuATSbQqestsj4mbAi645YaQNZDCfYG3ryQK4mZSQYHReS7Iivpru4Os+Fi0Db6fCI+99YcBmoQXb6ekS+r7TU99Bn2ZvWudXVk9xeZ5svbLCbHfbyq6dpXNUWNS1TsIcfgdc11VZfwrbsBvnXXcS0Tm2v5ahTs2HPoZOcg1kGzPd1SEkvA4AjXRfGAUGzhdSwsL+zCpmxd2k44GoZVndl9DHxs7rFw6e6HbVwC2xkqnBIyroylQV3iztoc1h796Mwi4dgUo+VNbDyV5soQgCTsgQiroMWWPog0UYlIc8VFmv683PlA2w7vF7pD6rmzEaD5SJkH5ORaBPlI3DEwdjOX1fsZo9VXc0+k9XfuuUKKUk/J2P8yzluor2GeKbKCkGObbqMpyZdwtszNcr3vXUG5XtZdkDtY/kqnAuHexMn7kPJTk/jjjg26g3CaDsYyO0Dx858HMIFgeM/rAmCzQr8Ft2WvClejYyGKMmKK5u4CI1iVuU7S0SG2QzdjmTcvdFfMnWbmjM0sBploy5NdKKWutIIroMNsZp8xV/N1zk0jvn4juX4xSdWzUrGcjq2+vX5dkfwg+6RgNei5BvaoRFq/oeEQCKMMCGFsUamIPuIgHKFvpJqKpDgjTXH6QXL1N1To5rzDJpy0TOZf6R2WbTfjo1Xi7iVcOfWK5xtBL0/bS2thphIGSJGfp3Mdk8a7ZqqhHp/QNVfwGOsptLp5yA1dsgZAbBFQAU53ILNG61mSj0xjF501sGg+zML8pRg2j7NAMe4wsOmssSdbbrTK2nZE48l2E2u1W94ejAhr1VU4ENYLDytiBeigQCAsUIWJUcIjV25Q0c0Ht1zJ8BQUnKJZGsijz0Nc9PNxNCwFXW++SdiBTkHYAQ0LCtzZsbbe2vLMdiWy6kWsXofc5qSfNedSOhRfoMODP3UYqhd2M4IiiO0d62jMdsbOtcJWetRKh9OE4p5pf3WEm0hH0p1Rhu5YgksGr5Cx69jWV0VjZRDpMWOucgjwA9RuUExINL0GpHJ0Apz2CCaakHye++fV4OoKSMeUMu+kg0ui5gHGh4HPXjBVH1GMCkvhd/uncNRWWTqAUMnz+1LidRVjAdDf6ySeTfAcuKLDIA0GQ+xKZwC6GtApgSkcKBENpbSoUoaPaSi+Xpv24ccM031UIxB8qaMoTkb4IdLwiU9Rsd/EPy388xD/7OGfR/jnMf4BMMkPaqdPfzBlgKsz/1WH4TVsb/wyoD8YEqQ6CgY4lFE4nskPwBUcwzjASYxjMQb4SjCIJ6mCQaymgT8wNi3WmoZBctmnLzKJUhUWahQkCFlK5YWfEtIpDibFyeNnn/6IicgkRNU0oT+U8rE6G1Yv3GgBi0xJUqoiLSF+SReiNGBJAKcNFOvMi7wGESIidKQ8Xrqx12UHzC0w6vMSRv0LvDssefecH0zdAqNeccMXNBoY0YusYrMx0WyLXD1QZ99YkYkQXEHmILHUwtruVwR5MqUFpYff281177UNCZyjLZte366RTZR6uFDPdGg2PHznTOlhAdehJ+7mnkkDR7P7Dx13wVlX094hEhRLe3FICmN8vvdj5nkfxb+34uXjbKUYbbG5N6F363i/4KtMwcgvCiAOL17hAXBo8cr2QPce5fpsoVb0kFQyuXePXNTpnRaPIvb38sO1u5/f1/099U+xvsCBQepXXxw87z4/r+6zFjGApImLN9rezo5yJApJiz+7vwfeabbHt2zEfw30r7ClQVQ/1EePwAjxiSpqOIIOHTY/8d4dpX5kR/xXNzwDDCjcr9WihbnLGaEHUuw3M36oh+ihBa17n+embKZZqvjYHaSZOd44XkljUP5H3hEFhlznrgE1++0Q5+m9xxZWFjJQpJk8iLc3hvFNBr8et9bi14NsfRoZE6ByYwlTx3ttVXmfRensFn8tdtOjn8RCP4FZFiHSB+Kcco/fZ/v7kNtCEpEei0/ez1FxP8PUanGYZqGW3fgHxWMbpmIVTVMHmZYMnuNVjGjb4PuhMAEnrDiUSln6fJLpqOcfuu+Kx3CA3nR8CO8yQ+jl2qJIcUeiS83UHjpiHHbhd6zhk9K5mXFn9nTpnOVebxPoM32esD6PcshlWhLQQPhnkPj1fZtgnGarjNPCyQm44FYvhH2+nQc55KzVKGhdpuZLeeLtitdZfDuWr1vi9V7m9Rd1XorX2WPzVh5f8nX2iPmckkL80CEhF5oRcfV+5KqD3KlPBhPzufsGPUyJ9GWhVFZ5ngpKaY3hge3aypkR0dXhHF1S3zj24Z0WsS0lCufDMndP5j/cX7fsc4WbxawQHQCmqZf3ney34swwNY7vI5yRX626QZqtF6TsIDUxsgZlp2SFn46D1MkjE7XPz3i0V5O2vz9tfBjlR/o5C94nD+8Dyu19e1fiftnGyjX4Zc0Kl6HsmwKM/cLafGOjodUEqQEOufr0+bfY3fxFn86+dJb8K47NBoRr1Zfxxjuy7ArIaMV/m4lceFKp8MJoJwG6Qomm5b6PXO77eI+AVHgjelssAmU979SznAh0mwn/ZNq7zYlAtxSp6Ta3zW8FF3GbE39uifX5Bb9kHp/g2t5aeh27Z5v03NIF321Onrl1yG79tLiTMM320rmvl3m2xiJTQ97H3ko4ZOuLe1ocSeQv3GP4Zu1BKGHfn98/nIU1nHmmBpCWl2ww2GCmxinWEAj1JSdsYbUvXNbqZ2QtAjCWkaLWWyFc3VrC1ToIPckixCsGobeFELItXOzGc83doEXLrSU9lEPo/tphWjCb5ZI3pEcfpoXDD1NLsFgHnNxu+cCaf1/Yuh3epHiq760pDfmUirbJQXZFD3JoSVJIUcV3VsV3rKKexzs5j5s03wLIAy+tFk427PpE0SG1NsSMQ7Gj+m12OkfZNrPE66VoDIWuWyPc5fp8zRbnaM2kjrKTel0wqVsp7WU7PirueJxaLY6zaPo4SxYfsMGO0zWjRf7/yGr8QfkW2JWfTQP2WyX/SZxGOeo2J//dombpliK76GE9WDOqB1m872YCydhDjHN9SRP4vjyXzL7T3c+Lt+88EyWmDBZmnsWw4TApQdM1M+ynOaTdANNf5glCZrEZo2exA/ZjFQnz1uL0bwv5RbuZtbzTbQnvFKSWYHDLlTe38hbqc/r9Ix4B/D7b++pzuo6hktOMsIrKGa3ToQzRlOUQr0dYNpTTObsoOGAXBb/MV+7NnOXE+w0efOIP3sKD1/zBn5xXPGV3BNqDacbStQb5HDCJL5X76BYnE3ThE1So6csAnAXlra4ul5nHP+OFT+4pTpllsyxqqb3ntfYTnjMAk/vGq1UmlS/LVlarSQcwndV3Zl0mHBRe3rs6YaA7EoCYqWRSvsqYIFLGxfz6A2cVF8wVc8Z9HIwxH/nnUDq9FeSjKa5aZ3XRvWml3O6Ee0BBO/W4eBmK2ndEErpeMMT86lfojIkuiCagiSkJ+GwCpNAg4vwKok+VP1OeCT158T/O+oDqVtsCbl51QIO00pT0s+lOxOOxHX5EJBuZKBODobAZ26CdiFXvWNXzGVP628l2qyhrSsSvrVYrLVr5xjShZ5kmTNAAwR1hao6RThDS32662MVDx1GvTP2OSP0hn39l6hFsdc+NGg9F+hHWOJlDYNuumAV9NI2lxMTqVrUXbTcLmumJsrTV+marjayt9ssasdTP2N6RmEobL5Ybz5jpxXlUMoSmvIxG90whjfvOXd+330lkX29A3G/3zQZto5mpx9w8tVGZPkaKTBDvBK71yeoFkUvqIVYOTzhoyGTmWYHlIbfezRRhT0Vj99or7+2yiGM3c8CaqN3xFg7OtStkafP+k3g/ke+hJBkdWx1wm2VT8/VcJLLsllgGB9YbbtDbN6uIV6gz24D3t7Uqm4KQQ3jUzhI7Tq16tj5Uca6UZZ224NaBC2kd2HcwhlDfCl/Uz4TG2Wu2MVqOR5aeeMGtO7LtPAueGivP8pfaqrCgiLDwLHihTLwfthxr7FHxNHs0zU5plKaZ9SYXPnxPRh96Ij4BI8lqcoJWk2pwymbS+p2bm20vmRvTpHj4nYKinfwq1f8qvmRfKA56YaX/3lyJOiq0s0bGBrrQEejNdwYu+eRe09KvI3VfY23NzU0LrVOFIapJ3fi1pqVJUUD8ZE1U8j5foWyxuDy9iHQQ+osd5N7kMw28nFtyRAfPFXE6cnHiecQyOLI8i1wy+Nu3IJl9LomOs6cVPS2Y+ihzONnl+sXIN9Kq3HsOxNFGB6IacbQO60bSY2yNt1hS6C02wtsEYzr9c8FaEZeywVK94Uv15hudmRnEfs6kzyoDY7QRGGVr/eIrl+hb4ZcJM/teh5nloUlMDiEOovdSzlOEw7yZ1ZONL22SdT5RQcaTW45yNlWjTPvhCI7OS7JD58mB+EDP8rESCx1uCsLd2u2LkK3FMWVjf0JBYctjwsZsS1ntWtbAGBI2eeY/pGSMViBZdp+YHVZA1eyAt72i7lmkWQzXyC18y4Z0Q0FsC82NJ8A+URxcuS5nYWlSp5O5TOr0au4qBJvy67YjKPD3EhPMY3j3j5J3H/hKH81L8kKs8+YXqSHiWi0uS9oQFzjkx7mkDZExc7fkmrnJ55XNMkW9LZciD5h0zDSp5doEo7fjOLmCs+mqKmD2Wv6iCEqnKgaQKdXeyvUyIooimi156V2iAxmpP8oGWfjcP9UE7jSXDstxC8bn5AmDFQhLOIRpaDwy4TSmwJkaxy2c/hYzN5Pln9zffu6NCsiMzmJWSrVCNzKCVK22vR09be62s3nxvMygoqctNIQpAXt73ZLMpbu4SHPHtn923BPjVbXWB1xXXO9XlytVMkC/HNG0Sc9vM8skcOZ12HX83+du183kzpkzJjjTOnlnBUOKowXHYShDibnde7zc6iWoUJL+rAASBeW7WYB31w0dw4v6/e0c617cETRvKAv5zDGO/GQtZ5Lcm5edLw26dBdznbl2olkCJ0SigT/17y+C2qN71pCd81YgM7cQhJj5olxmun84W8Jnr77B7CSw7kdCWRC5WYxM/f1bNvvlH3OAVIQgKGGj160+ukGbnagaJ/CbHs5CQq3vf59jCZUf1qKwyTa5GUbs2yKiipKxQQz5qFZbF0wP3+YP/sg++IvoNw6Mp7w0JhNzlhiQYmYWHKn8Yu+rAJWjUn995R59O3S3KHcowLAEyLnR5pOE9heKz5+G6P/zFsaXIGZyH5937OruAWcG35XcQ5EDqXUDlbvwMddARQEz7zCMvtBjZ8ugq9R1Ekz6Ilb9TF4tlTVVq2mvnJnbBKrfzzuqMsdqcZWkboIidcEigKPcBAvS0m9032N8annUfKttcYlD+d50eMhdO9c7CzWHNzC7BVnjnVwae3WfhONwlAOrH7ky4CtPH29dfzz42pAKE4ENndzdyEIgREcihMbuTnkqgjVltMtWSRmDSQu/oIiNSNaNyTrvD+IyGedpxbW31hFPF4qCP5E5SMpTpZQ3YPmB3iv3WilOjNC5rlUmePZcO0QHCJ49OwFLb5MELEVAYKKzyvzBb/bTFk/p0eJBhUm0RMLCrEsTdpYSfS+OyHYsjnqgRJnzd00dKGzKBXM3dpxMxBhtkD3L6GgBo1VCZpFsXilGZYVVua5GBa0tVKfmiwU7l7MkgVZeqMErRmOW0eT+hTHdP5x7RiIXOmzpKJWoFuxd152VO27519d1FVfHcQfiN7nKs8Pw+toEqMw0Msb9S+Xbw5Yno3uaMypgCBXU86qKYhQ4H1+4QPtZSroINlJhwo8OS2TZcdroN++N8l7qsAAdvQAz5nWdWYCZDssiTGxmlot4sTs5dVyfqdAgomJfOHjb9bPu43xUkuSpcLoLPwYiSdSdopViilUVu7r7dJE1qZn7i/Mu2dNsmWCrIJrq7+ruJtFPHN2lIrdNHsK8x9a8EliriMkAxK17o6m4i+3t+Kk2mtl3+ibTzQyO2FptlrlSJzDRER9jng7UJGCR5ZIX3FIFybsGfvUpic3MnKA+FGdJbGbmOG65caPfoKQ1fcxd08/lrmmPaSrejM162LIDt+v46MYBmowJZrhsOjz+mtRGjgiZ0cxPnltDyQIw1sCKgZw4SmGnzu4IYS5C4dHY+ixo7gRwpk9IgB3FEZ4Nem9TRObIn6hpTLi1ddRoOhQAcN/ByGgRNEoGQsLUCPvUVkN43gBYeyhiQVkdxHsCywOt3PXhmbTxoaj35cGoOQxhVWFSeFzquQh+zwZ0b7kcPW21+fnI4saopjVX+FGkPEFOf+7125GXyIjI/MV25H6kpCnmLf3c7rvYDTxVAZPdy3g4G43lE/GjMXLjKIKzVj4VPxojw4AmiuPUHOBE8aiqQ1GJhCvTRtsOB5/I5NSag961bYIsuxtKEdByVrPtbX20qGjFcA7stTyQffce0t9H9Pcn+vsE/z7apb9N+kslH1HJR3v0l8o/ekx/f8S/j1tefL1yZ9Dwk6YXz2Fe8PW80brw3sTuOaA2fj5swd+VO4VXDx95i7kLg5hNsfvz/sKdTS/cx7teZ+4+bnrw+8kjfPnksRcv3GYLP1buJVb9yetfu09aXgQ9xtTNowvvPXazJz8f0ufDh97LuSuKQ09xhM2f/9xxX8wvXBjmz3Ns5Xw0d6NrePDQex5hp1AOOv21s3IjaBwJs3cOz8LWxcrt6yd7LSgLT670E/gxavlyxaIkDEF2lr/ErfavSTwJk3RRv/v4cZLEafzxo0eGVnjGjU1Yr6nXb6m4NZJx8mYtV8qx3hV8jS/hPBmnXtBykVXypuJTlU5arjHm8qKWKyiAd9ly8Zz24tbK7SxGvXi4k8bicr4bXLt3n1G/6lVP46vZMKyuHHb+T1r2nZK9sYAgyQ20K3bMDPY2bZjlsqn2DD0T3/Gp3DP0VHxfLndX+8p68w5j/ugo+Odo7wa/tE2g5Au8d/Vh6rik4IPvB44rD1sPg4Lj1vDei3uYD64WFbCge2d+ouqezP9QJyCWxFZTeDAYE27ee+sKEQZTOoE84p26gn3xxiZqNLVia1K8rssIuzd3KcS8t5Bx9YHuK55JnNQT4BZ0vAx2g1ur9VXmF3fCwxGPU3Y/CvQiQoN691UdUzBERgLekibo5xde/aQeuEBzJyqA+2Ja7+tfQG70d0vxO07dB7qr61Z9jl3bPqh8MIuWGAp3BJJE3kYjaFei0QOBRvNUIU83VQjTT1d+IuHybdW5vxAOMz4fiwj5Fz58ETXc13XL9Ufg/TgVR24iD4inUZYLe+BH5+otP4cfsHMYmxinvioGZwCfBibPqduPfGRZZGk8DFOUtK06D/Q4buoP+LFul3Nkxg0oxNV0NwSGjt+pW6sUpvR8QR+oREYYAW+QSBhRTAgB1m0YFHIFD9str4mwQzcRYgfkXRCWp6qy/LaTm3ZbTXF728uMm2paEPE5nA0HkSmF6W90ow5is85CwNMev5cYLRnp1H+wXN5pBdE8FVwblIGvItgMILDeGlppI05iQLoJGr2Kx3PKIcz9pBCkCldGMpOB7OkB8QeFbdO5/oBafmD5U4mRn9AnuRBbzlPi7QOkHmmchHXLQcraxvN0n/u0wIbpp+5LgfbHcESh18OtGujzJAkWO4MpfUJZp/0G/3pVRcHQAKObwtPzbnrheF/w7T7zIb401OGQdXyY1o81eN6k/nEqiVWtdpmeH6fAHmceClPlKPUxy549rDc4rNR7k7bP36SUfy9XJIYiMZyHUCSmIlpV/qYepQ4OZsXdlNmwj/3LFMACbPglT3HVfukdQrHzAKZtah7eM2HtJ3NUx3gC2DS0Kq//l8v6JC/cX+KxB9MPRmGtNtlY7y2rOO1RWnc8+GWfOQ8yLKf8dQknVkrKrAeOB+eSO0jdUQ4+IPuyaY7TOqKMHSBgZBW5NXjpbm8H6dNj5dt5WD8mEHovuUB6IlEWqDQ/Drf6Zn6wu/T5iIeSKUpuHPpoe2C2mDwYH7Cyupy0JXyA3sa8sS4mHNKnJn9eZ6en5fin0HosqMcD3xAjoBB+fondLj7N2LSnvsBg3Ol1rRC5w594yEl4Atj2mScWavABcoz64fRzKIWUy+7PhyZHPhACPA25EyG0SKcBpgiL8TQSFP5pi5F7EEVFoQt2TOhnICjysNstO1VSYMlhbmIeMPJOsjJKS7JUX/1kZQT/SF5GqJp1gJVEUV2ua+L2nQs6EkWajLHOsxbD+fQMhVmdDul892JfHuYjc5i3KS2WylSTOF60I/NSrvrPdjHug/RtilWfu9CntrqIWMI4S++gHakSxQTHRhORc6fqk0uRmascZ58zHX5fnP3T20F62ae7rWAaNh55d5Ff/T1Rend6uIcP//gf/+DPHtKz3xP7aQufBu1qBaTw/8Fqo+lROsGgVosdaSQV7kNXFVUKOOpgNky94ohXfWcV+33SNKDGCoEYabAlO5/iwbhe5clOekxZnfgmIevUm17Xz0ctpP71MR7szg4IQSEISFBkuTxHtxMpbnlx/aDjSF7/Co8MLWrF9d8waCZKW3H917nj4oUECgZStorr45Yjxav6AATvgjDf3KTXUmEyE+sWIiWmRWe74zNNjZZ/i5ID7bP0y2LGVwv/h/Pfd39Pfx//nlz8cG1a77QU8wr8WoAhUESI8ELbTnJXU1DsKdSbuJT1y53viwRzwXYBhrX7WpiEkwXzC5KfYohCVVKPlkupfANp+FIsMGbD2pVDQj0g51t3URn1+FHrxye12gLYv5nW3S2e9g36A4ZdLXaGwTQVDN8CxDh4EM7DS0qr4k/wcCTysKXVkfKBp9px577VdxfTuDl3ATwVW3bhSJSF7pD1bMLGRmv9LlA+R2ahQvcole3K2mgY+1aVeWTKwOSfds0r3ZXbxYNm2+82FhhzgTZpZde7k+UeP3r08CEW2GZ7rfLEI+zo+JSE9TIcDOvjH/acf95zVc8tZx/qPO3s6/E2Hd5C03TR2IP2/WZmlyaINPB4tcCEYSuTlR4nyOYX6F8gnvZY1jZUnktknbf8H37/vX6+1fjBa/zH88Yfd43/dOEsa/X/UG97v1/dNd0fV8v5+e9XQSO6gF+PV86Sfn3BXw+bK2f/h+sB46JaPPE4nMWTYQCwnLfcbosLrlqHgWpJRyu2yQU1i3sPH7F0t/xtExXJFGSqtSsiPf30k9pLl9eYhE+on1ESgqLt5mOvuasp1y305SyX7FI3mZrBbwF9kjtrvOVXY+K+qu0qENdJPBWX4nDiQqkqFqPv7RFI/jvqtYMpEgJhAY3FMEiqLuUIM2f1ThzT4nUU0WuWcZ2eaLIEtfHyHqs72zCcbfVENMIvWxasHjZCl/6Un2+72qhuq0cwMn4ZwmvBewUFoC9jSs1UbY+9pgqOe+3frXb6wfT17Vhp1Qw23LYyLhyBbi7wNVDxEsEPgPqo7fi8BStTB1Lbwy87ivDXHZUKEOgoNYxZEjlr99y6Jb1Lk2A8xdi3pB+6DMYvhC7pMB7Ck2o4msDAB1MREfd6RKY+Klq4DD4rLsIxFmwSw8MLqcm6C2ZpjL6uXr/eG8NWkz9/RWUirIN3pB8djoIB/dZRh6HOZQh7EIMEv8EgwfAgJtUZdHgJzYuo5lBHP/lN+YjgQ0D+I/x+BfUirKcf0N/jcRR7UfbpaZgG8qmytaHqbiQawBMCHqQhf4Cu7dDjlfigFuHUJdtPfKzNQ6Dip9Rx12QOgK4L8ztYz5kzFzxXywON/wmNZ2K+w9OX/Km6blDPZcwq+DmkKfE4WDB25bxvvWdTJgdmePkiRPYChgsDYuutLIngZxCanwIyXZcZS0OJk9BdiDLaFJmeOq7GMPjdHcKJpJf50M24bEH/pW577J0NQsvqQKKdwGSc2hgzWDPLe5zb1JHG8ncMX3t1x81H4faGqUZyUcTC+DdpflccpxzrsU4G5wUAXxcgvlDIvwznATAtsDpDb5SWFvsF6EUyuCwuIvq4LHrlHaZ8e/Xqr3K7y3tbuN/mhfvtNLNnXtv7r4fJt/Tm69X7aWbrvRZb7zXfagi1dRvtQ8lGC9OSnfbe7DRsO7vPeihy57eZeKx2WY+0a9Yee232WA91TvYOey13WK9+rDbY59TV/vpekLrm3hbVyRLLXrK9h6PlO039NrsMn5g9hr+yu2qQrtlWt4Xb6ot+6r3J7LBe/cRxSw2LvHduzqbNO1AbEkdnb8ceSvr7net64CppaXQF/PWhJTI5OszH3aown9GZkDnSVBntJRQZ/bI/GF4BKPC6TF3mQBFgDy5vvPM0vRB2Ix3x+wLlsmhw7QXyBBwJMjFxhYQvSBDe9nQEzs5W7pdUSS1nKUrRUmg+S5+e8ev7s/Oz9CJrpqlcTZbLwtfMp0O3YFlRfkkFv3uWCj27ZAo+hD6+IU0vDCqun7kfQvcsFVlpxTAzIzQ1g3PV0cX+Z+l/i7X5AJ1a7UN4bj26ECVtbd5d5kJK1MiZ/K7cHuwc1ZyDUk9PKgppYVROzl02TKvAeVFxtJSFkUOLy+Vi4Yjx9VJXWinBm90LAZE01eysL8MavB7Uz3S37TMoqu08vTu669HXjPpmcXfl0A18tu6ZTq+ijEbWNbFy2QIFO4a702sFOM6fI9hgCsDkp6naGmnKrcHO3DRFENMOAXxN00ZT9AJQ8Lea7p9j9zUc36H7W6jw90v6FGCsEeNd6p+df0kv9qWQ+S7VuEASY9aTSj97bT0x52LVu4M2ODa3z9Ltbe8sbTRgGEqwNRJjzhgu1wBw2H8CJ7/1Wwh/zjCU9wITTi9wNzimTSfbqMpSpsdsXH/sZ9Jfx35YWDtne+0JsxYl3OrBIK7TWHNzMRDOG3UjwaDrryavKHJ31/MVzbosl/m32t+NxNQ/ZWil2QCgRsjwWi/GbMAsfz6PASNmA7pz/DwuMUVaLsteSYPGO1GbzcDo7l7j6p2dvw6ZuXS2AUJgEKZYN5ZnLQx+NtCGRFsFI9UQtV8ZTN2wAFvs8qISg/JgsfwiHGEEtSL03XodAv0Kn75GqgvLs/NxOoG3VzTtP0ms9TNUdwXTbmvACaIl1h1lYPdMGfRgy19SZkMOdADKtVBB+SVF91X4gxi6Fhe1En2gAxLJAlVXjtUDGiPpanakomkhrhP1lPti/88xrJwZqxqnuPOEN7mBAv1SFqi/IVKsdIytMzzoKW6OBB2cZz0eRZoopBbfe+y+rJdCz87dSJweZEF6hk9c/J/CvoWzw7z6Yl1PRXXnjoxNidsQJ7WEkJHEOYNiWZBqom2aOGet6TNuR7UgWQHkr+w+1SN2QopbXupA6UkvEDEKjsE0LVgdbpV6pgGXMsClaR0Hf1arnTEA4Tk/sX/zfLxyHTSfxmeC3AwyW7mpEJsDSArA/4K0UJlxntEX2DNp2rZW6cylco4HVWzuwHotTRfSfhLfVlC9fJgkQA6rL4LxOE4r5PhV+aO6LfrZrv5RqVe3k6kKjHTGEoSdCc+L7arjVQbpv/7n/3VawSbiSTiuwnFk2A+xm5F/sLVVnboG8pdOPQsWyzlTIgyypzvhfIKZhMbXR4Nkmv7MjzbcIMzC5owo8UY11fqkfH0KULN1sa9wx5fZzunS+HgszfAzfl+Aps1diar3jj6Hh3N933kmhiUYdRQ37hlnk8YJp8m1f1ZgMfSN7Y1AMubtvbUWBq91XpCQjFZzy6UAiBAy6hwGdkGKpWcZCf2VIZL1HWwTpb7+4V/qvyft38fL3xNnab4++OHarVbXDEquBbPu+c7jyo3FMhk6yyKk7q53f3c9XHkQx32ihTsDPH8H0SBMMO1qMZY6dpB+btXz1+ZNebs4znz4iw3OkiFvblgAqzUNIL+Uoi3pJO3naHIWKEo4URVAdlhxuyCO/JZ6oDOcJZOfNcdmkaV3XzVe3XXJCFHn9Gs8GKf6tq/Zbnotbu2x8SizKH9kRno/0ukTe1/KY70UBVgmtW59SZEz0w4JwjkGjjIo/Cmkc7BYYs2f1IjVdNrD8ZhnDb6kVqjmYnDLI1btzO0SALvp/efY+KtR0CxIkL5U+jkO61SD85x9t7d48bDcwraVsCOddLY2w4haLdixr16MiVCaKqVJ/YjzGY772vpphaHmqMhHx/fHPP0+lNaK+fydW+x/9xZfZhvcFIEGY60Cz+Igvdda0y7FY6lO+3GSXs7S6r5k8fzqbyb+3JldHg+QqxA2dFg5Q8JrfhBZFyKofmbOGVOOzqH9kuHkKM7x/w8FETE7T09yhKl3P6eq+YDDFurSCniBtPTc/5xuvhbutzApZeuHFhK91I7mrPNdpMBB6YOmZyij/yUVywDPgiESUJ6857syHF++N0P0xiKLHBJZxDi0StpIhHYIw2AyDa+qli3pf2dG0i0dbzQbDquWTesZn13+ho+qie1qql1+1V5Z07JkW2DKbWRILq/rNGeKu7D+qrLabu56zcd8qiWDl6paD9q/jXDzycubs/tX4kzzKV8Yah+m93I39zEvx9SEfWbvfw17itujGOwMxb9HJ5iYeJjGXnX7vu7iVGsWpGqKZ3Xmyimm18rVQda66qIILfyQUPgV36SHV5VVT8Ns9cEYFbEvqJGCCp9y/bGQHa7ZaVBLXrJS10Q9xFeAid3kn7kmjZlM8aQvc6PWJjQkdXi7JRVf5iFMQQW5B3C+bco+XQCLF3ngiUipudm6QNzpN1fWjbO1RSLrfOXiuZyERtvHdL1VV11FnxXeLEjdr3BREwrhM6WLLekpKO5JaJUL2ggvb6B74UpX2GB3mJ06M3wqrvIiBy1pH1VS/lNubUhuK1rG3jRX1Io4yY1xgRKZSAh0bzi2XIOVSZy6QxxL23fWROc6Y+qtLbuDfKKMAC27bbeVxGlTEwkQ5BZ98uxy3I6cWp6hlX6Ad9bqAhmt4xx5dTiTN4a2uFT17AEkIlCPEFPRpdm6tjO3n19XT1wfiLs6uvLI17ZvKLAtV7fBHQgWYtZSPdxeoyAeFyuIx0xBPGYK4qByNYjoLASSj3ruSh0aCVQjboU3ErBGAt1IZTCVymWvbFzK3NCF/v5CL9N0MBzKvlTSvxYL73LQck1Q0ZU7v2bvfrHfHfJ3v9nvuvzdW/vdR97fn/a722sV4Or29va5NNRiQVFft4wH7Zfrlftcl59Ia66CSqes0guoFAxUpRDP3YIan1iNj1Dj7RjNWIzCtMWoAZrLvB2vVridpkN/7yexWafDp83Ww33n7fh8Orzwg4E7HW5vwx/KodWGz8ePPPr1BF0g4duTH519KL33EEvTt0f622P17Yl+9mPrwj+HZp9fX+DP5u6e9funH8XPW/m6+cT8NhSwtS6LY2EwFR2OfquPP5bLrY/XBYFDlssvJmoUZjpe8MyuQ5ETQEPeCkFqvSKrPYqoZIXF5FH9aRw8pNKCQiqh/f3jvczznoxzX5oEYO+xDq/6seV2MLzqQrSFidAWJvEZdtknk/dM++Wh/q2SMQmDxYH++7VaXKv9goHsNUB5sNNCCJW8pohOCycX3/916xvieUdbvv/Tj7UafgJGweJ/2Wjxo29b/He3tywZ8osWi/c0v2Y/Dq/dvoNRGmcOdFWShLUEPqqPcuBZqVlP1+wY9FMBlGiu3zd1RKIfWwKZYNc6tdqLIiDWalsWFL8FgC/TdIJxzewUwkqvLpJE2Ltmlk+eAWzBL/gak0fJHMWPlG/Exi1TcCIifQpyXT/OZE+GIpjpBZhpGPVyqb9PWYhkvtdWG6X1sDMoLtDjYuKJrdtzshOeZCqLqGnRlCgdpepYLjtD+pjgQ0HYytGyQzhZltCjBOvkqq3f0Py2JhN6Y3f9Lq5jbPyffoRp+bSLYWGTpw/bdYx/bgXhjx0vIpIIBbJZz6N7Uh5HJo9hPr/xL/aA3bKzxo5ghxkoJ0SANYnuXrs9wFoMf2di3P2KMe5omfADYw5h7mpYronTxqh4XpZuTzAXQ3m4PugPfZu8euwnzDvLrl8ceC9eLhMgkv02htPzAoqpZ1IG2XGk3HsXjoC6t9uuz8pWqolLOWvjQtCDhw/FKmNqG/r8SX4+EZ8YTDuSwcXpU5ZDUEcy2Sd9yvKYN5I+ZbtP1OcjiU2tx3xtAkw8JIei1yYSaxNh4pXIyitJEylHJ5pdbuY8WEdrXWoWO7cGQmYkITOSEBlJiIwkREYSIiMJkZGEyEhCZCQhMZIQGEkI1K2MICCDUQc/ZZ73xXM7ze+I1nIkQT3icBsJuI0KE9bEmemJWjRw2c6TZlErSWn06F9wMO1ofW4cAYn8hEVl+7FKd8KUOq1NU+mw2IYlCXCO8GUbY+V6gR1i+AsPUjfWsBlL2IzlYo/lIo4lrMYSvcdiUQl43IvtBWt2C+bL333k7yj8IWZE7aO/HId2lBnYnuxuTw4DcW5sOE7ew5fIpNQ0WSeR9yDhI2B2n1YmzfpGaTJlhhrKY8dS16FbsPFzhVfX0UidSjLL17tgeBNeHY/TmIorH9Fs8kx0fN9Cl95c5N21bZIJ5UxlIeJi5JElRrIEQ0xS057aGIJMCoDQm8oMc8B0lCZtigi0VZC/4+8t6ZL0j9ZqJdy6i9t9AZwdzxgD9Z48ZOV+jSm4VzC0KwRXV141iMh6Ulf+ucXiPL+Bjhme/9zaPPXhvooKoKPnsgFPKbXF/1vd13W3bSSJvu+vIDE+GmAIQiIlOzFoiJNYVCZyaHlMKh6LYmxQBAVGJMCAhEiOxHPm6T7v3bMP+wvuD8svuVX93QBIyZnMnt0zE4sA+qO6urq6qrq6quC9h9c6aAgBmTZRXAXPpDXEOwGFVHU/8gaSimSZLMoeHgaFtJp5q70ZsxyNg8wZ2/YciwMi35ZHsEuPFFoXkuWAG/Nn3o6kiqOCpIp8L59lHFnKmJgIhQLpcDDjGcksZGEDVVnKYOWHLSmTBlJc3FnDh5JaxJp6UUjwgmDgxdkwWXBuPVI4Ky8DgleUyJYspS6+PVTe7gBahLlghtfc0triqCy7UJxsCkrlQ39bG9DOi3vjqese7ZP4q2zpUS2zacRKpEiQbmIlvKN41ENdidVbDCNPmrgFxngnbBlsUNRtbBFa/TpMo1vegxK20+VRHrZ1G+6chpDhfUqirwDBEDTVlZy2Cc0ii7gjf46Ub7Ea2zLWUuGG2tNILag9hLT5SLoY6MgQBREOEQRKCbUpygL0GElEz0v7sb41D9NvYcAhqAujwtxKBZlGswtGMRc8kbusn8hdBlu0cMLysjbA4pX1tG7VjHCFrfGEkrKASriWo1CuiE9iz7KGAAzJffzyJcsH+vIQhJYR/c2iqUu5em1ZijWCWzteHorkFjoADW4D2TJAUY4rhLsTXnYtSzUQ/c7TuqWQkjZUzWUKxDsiglqo6WprDOYCGKk3O+5se35TRCctx5Getd5Aq6ju6yaQH3/n9YW5y+wpx/5AuV9itneuMEWKtByZ/YsaHHYVJyjfQtGZUgVT2S6cpW31Ziqdy/G0Sc7EYjqSTf2G3ncu15Oie+FfuHI7SIdtzcrWJst3RJdvmy/fKf1Nl29bLt+2snzbIpHcY8v3wnsc6dmVHBbKkRfWf8/MP14UM3kp67mN63lK1vNIW89tmssO1vPa7aj3WTL0VGN4rvNZUNdzm7bawVOTthZBVm/l+dcKVQ6fSIoF5RQ2GsLAYhZaiSXXXNnFeFHTnGUJbaVA6uMX+em7rHlDyTPmK2biv9RJKaXRv9WVrEjbuIvizF5/SlKkwmZ4Kqnnv2PSqF0dPTWD1FFhtqg3dW71wLACzhwW1iTojifDQCoJLD0SrLrbAM/605tQUaBDNe1tLCITpDxeqJkSUqenuvcYVTzZqKGyWSjvpL/JB+Vm36BSf7PRDLgYMQ2hHiiuHAMlNDAyqt6gn7lQTF4peNXGxKM3dIGE4sRP1koFmuOMdjnzWBKAGdPmRr1ZX7+ATN58WT+0wid0I5DdKqHt+atM6HpeUSs5y5W07rWhFwME8rsK95ZCjC46nnQIUulii66iAbVFY1FGDXrLurADmh7qkU62a2MaFqGTrtcTmkzHnqp6DW2LvaPajfaKFlvDU99eYVThXDRYSeQkIGxjRcKhdu0uty4e2Ou5ubJHzFYxAzVngEeGIAVmyvU4DOsMkIM8kLlXOLA+aXNkz6rQR3VWObS7oFx4s0pXqGfcsIi0PaDhF9QV9cVrx9RJjmbfaOSDcIa4mmHgIgUFzU7D47R26DNllUSUXMtTnW6jcIObUQvz3l6n19G1b5EeSw9HZDRRCnXNkUhFtXt0lo27VHbT4iJMiAdjXOIBOLggtD6uiX6U3RVjLdJcs2sM5lpOeXksy5bbmTfiCaYeg+wW+28LTJ9RpuKVbx8ebgEe7KF8YZ8xnuaVLx4eLvj7W3tKdtzN9QQWTemyLmN6AlUwj+upPwOxfuMPh+jUhmlpzurUT5c+bvjYfHmjFuo48zhZmBxjGPZSemcA+6xiVNcN84vG4jLAM8NHg25TmQJqzFZqZDs+aFhplURKp0ER2friFal9raI+1vqyY3yu43rhEOj1GplWLaXkgbANU49qatNt0DiizMRUikel2PK5nNQQpTfZkat3e8+YQCKTAB2Q24kkxO4BRgNW0MXilsavIhVPNOEgGUjM9isfRSL2otaveGhzYY91zX+Q3QSLK15tQxul1+cJRH1VoPheM3+Wa7np8fOhdGNynkJiQhIgY938qeXMXmCA7dcit2HCY/36FT3ZDyl3EkzGUzzyYOJq05gEo4XhGlGMidlEFp3tPbAsjX71Ca3LyMCJYDqNpBf2PfIP2nmx96ZxzXwwjWR8Ey6MzWY7HKKP9/GSG91J6Tgj2jxSlcthDR+nkB8OKvdMlVMdEnCXil5M9iPtKTLfs7oq9L3TT02e7To1ObC3G9rOecIHLycZU9KJFsfwU3i7yHK9SEZhIj4vi1wQFvmKx+yIFiC/0WtA1DuWJQggvTSLmqbO1ZirQCAZr0JC6/IFIrt54g5kJgP4dEIIdVtSxWYKQ3dXC/hXtfad560isktFtxXdYpLuc83gJps4JzvREbMk2SFQgWV3tOKdTHHmawKgrRG0Zgi7l4mzp6b4pUYYsjEpcDyWUO98S0K9Feon0OEt6ZCoWR3bWCrKIn41EXp7hBIGRm6KyVjYABWllq7jYDI5Gd+BHJZsg6CgHMFRRzWtsvxya6iox5rI4+zhQSD7HRmHcDNkjSCiNS+Ncwo+KP5dd63p7HrrqPEr41Sqo0OlNpkrpao2XzX7UUrMoFBnQTbBuTJB7d8/kTPA0EYcqaEodEzgef45tWKcYXGBlZFmFvwnSODCcif6irxQYFDGf5Yn0DOt3lkGdrS8UArOw5rbUnbAmy97SxFx9Jx1cEsI7VxNVQpQXyKImbHd5vDb3EYFp+PJhPQWLEjzmZbI23xTyiBAG3U5HkY5BpLv5/fE0EclL+yW7j7qlPexeNYv87N+qeHhMs98m21Oqup04PkHSbLYJJjcBp9grPIb2wj8ommYqNOQap9Otu4stI8PWukPBeP4XXjshzwqzIKthI5OwfyHgg0hy6bf6HP45rdw6Q/bufSp+0ZLM/JULv3GchEURVZ6l0lAYZNjDSom9Q5s8r8+MAr5e4rsdwAFSIIAeegVLEFb25GuYkXSVdhtb4WOBCs97GBblxwJYTVN2lWZ6BfmzdrsglQ3wH5hC+NhxgaYPpJnjeRy4hbzTHun9afN7D5dBxXLlBk9ZKbFPsxGBk6kkIeH9g6xt2kShK45uDmspiSBOOKV5MKEAXe0wXwbD9f/ggF16IBgpndCX3c7zUO3ZrmY+qatJzLdPnARYW9bAc7rCHZgHwJlj2qRZtgjueoOiPUGSISYkdfeeE4mP7RjHjoUjw0lLi3aRpqfInXNY94C9PutuV/SD3Y0wsnCOnZK+8v1I0kWaTL9TaQC9WwOWHMbXCmC5I4k/OLriH/F9fuvmjKCsENENbXTUSD0xdkVPMfnVx3slBr08Laj7rYm+QP/gpcAVxntcpXTLnE2ydtP/gQI3gO9nzdATl5ErhQZXmDOTRjona6chyCvbMppRM0Y39WbGRwYbE2eEH+naUZTb6QAM5uTsDgk5NxXYCTx7fDMCBcnPKhW1pAuT5H6Uq9Y6xNjHXcWGm1jD4MtjGGAKcBZv7W+xhdox9BHnQxF2kR1CNA81cm8O+xbwmY+3QbSbAtIHWvTINYhClVdh2pNoUoApLq8ayLpBaNQ2ioBATDEnNPl+aJzHa6Enb4rTcTkQJha+Mlb7WCaXiTGpo+xw4rIE9X26LN94eHXKj4BsdOxtO0Lu4cGKj60wz7h+IpBHcfGyTUWGWueRkWxIKE4Tz8y+bUdKjmn1nIZSItRD/cjbUKtBnKQuBgGvCui5ylEHy0LEzw+sXxC8hUzrBCUhIpMA5BoucHQPgeySaqLDSztiUsynoiDP5g5PM1jARtanrAhzW/x/vprPLBVbElRSznZC1qZa6DoALxoqealqPXkW3YDRQXm5wllLv6Vqbd1l4FFAiwyXnI+4pEWs76jOIgfxCA03UT5sNubtLhoqF0akJCDcDqwmlsgIIEgLyJ29/9JHeaqjCx3QBLqPDwMaIadnb29/tK+Xqs9ITrVew9ynAPhyfB7YbTwq8Gu5A2020kSjDVBN/r0os4BP7mHgXRTH7c2hP7MAWtI2eJaGf8EorEkusai3siI5b0maXGL8cJFrLY7aSn3GjC1Gl6XttET336D/6D11sa1oybAHKz1NczyhEWWkq3OL8tsdTLKKzJcdmG+RQKQBsOSODAzqD9X4qGektK0XueY24mddpAMtA0LrxVp3+24ws9JxNmUYoD2yRAlZNGTIfNL84xDkExHtd97uLq635hW76r/07PKn5pOH8NnXl092zMsWapKX67qQ3mFf+TJsyoKWURniJ/OXbcURGLSJF5c3K28mevYjmQqJKswq2tkNVPEg5u08jX5KDkZkCK50LwCLRwam6HHLsVJifZe8uclIEeAYqNQI+lZ5FRiCR30UBlSq8RQEd5r6sku8A7jTTTydhwnpsptqLQTKiE3MCtYL+w7/mw2WdNDxJg7jpX5MW+5pqyFRAMzUvpO1cEAJOJ0KaEeiDSTHgbmiCxy2BKikIXd8w75PeOyevQ2VxcfdOMr3fimXOskqzqTkSOl/o2SbKzka3WpDMD6LJtxC5ojCb5E5KPUZhSQKFm5EhbZ0o5Fhj+VW1zLTVQNlRir44hEPt88be7tyUxnbDXc3hAJpYXq1d0alcawBRR5O54ZckDDVuaMshF7vvCsB2KJ0Xpca0yhGBsAiGampV0eISoMm7m1NxDwDSR8zYF7v1EWx5phXawQodLIAv7NW5BClMyJ4p0rCkXZEkRwYbEwmUhF01TyBGigdRlYyLDvWYSbKB4GGOOE3cKpmKum8cqorCrGMchJhoVBQ4yNkDc1/wWKtZV3e2Oj2HpGlAyKEdWNQcw5amDeFGgGynRA9mNK2510nF5hEwYP1YMTOsBUgfwFR9StN8CCt+IDKnxEmQpbJHP6Bazeysg+8zq4/V77C/PWalwcY+6Fi1e32YijQqcMFp782LvoU5eIqRkscHgw83ZbgMxdExsXfNbaIEgqRI+P7kVlJG6+rVSpcKoSd46pRm5BbrveqGVHfZdx9ebtjduL+srpWUbOjJGCzZSm5wGxOk4CkpUHpPx1C5kCucalsLmRkjSTLA2mwkw1gifkTr1aqjW7yyuvX3XyGnqnt0YLXrfZFVjl5In8zFzZ7WZb7Lgri7OJLieIRtdb4RWxrvQwwf61m9bq8tPozu56YW+EngOYvBN/1ege0fYOhJfKWhIDh2NGUXOLXCMgmYK6SvZQ6jLx0evSBKIzGriOCRMfZVYe7yNt0J4svHuaS5S/GUezdEGe4K/N8hrB1tOxZ/0Naf7EW+Fe9BEqq7vqiVztsJZOvBOZsqYgetXJxuXqHFSE0TTVcVxWaq7ZhiVzubcXLLRMB2ojbHzMd6RtX8IWbOv0emI1eQMA84nlnsgWT9BF+LLyEWP8M+ewW+JeWe46N5N44E+oj0Ajh1C+am6bZvsVh4I28SUAI7jKHLO7Omc2uaATLCzLxSme9e2zSsDjOasho7IyBvqwZJfrI/IeMGAQ+uA/Jr6VFulsEqB0g3ocuteQF3NDJswqY3qVh4dMR2gBAtYAq55JtHLtJq/SvJNKCmptgznu9G5axE3Fsgct4rZhSSOCr+z9KlvKy3IkZNb74AbGZhIB2DZuMGCVsiC3NCBkTRiAEFPl7q4mMlZVaiVP5jctkeMyEw7D7bTsoog47o+xXRBXo+D1h+US3vIEg9nml1ua77YKm1+1ippvaUaBDkETdRQk6uMXxPaz1VvgP8aiIZoHjbbnZDMcKiKaWn3VylUHFDy1dqu4Ng0SqtRo8AX0WCxMGsvM9mlETAz84u7vF0fEVOHo7h4Fma0tQ1gqE4Hat/rtG/KN7Ku93r5J4tA03av9q/2H5XJpNr0rx7LMXtW5WvYr8OOn0tXiKrmK+n+y9m/G9t+BYHvKgjHM5ivvJ9Dv5vDf7P7dhvzpbGgTV8sKNPJn+H2FzWGS4yuHPVgVy4CVlhqW/brV79v3dDt3e4xeyB8Z4VnLSvP3lmq+o6qNYRA+9vMNSLgPD+b+T8v9sYMKFogFNOdtJaU5t0M5C8CzP6G8b0nlg1vEb+F9JSE7VRmPIbIlpt4u8g4rfgVrKURewNdpmU1fOOzjkUazN7ULyuKnTd+dKqEaFFGfAQejT/DGwcPDPqB5+Kn/bJ/iILWa5Zq7c0GKWK1+xfizAch6BHRSaKMGnvyka4VkY1qYhiOMAmWTK52v6g8Pfs+XywSmaP8TA1b7gKHY9nt+9e/fVC+vhv3CIpbWWH1bY/XHG4Mi6qH1rTai/V7Z2PujZTtu49Vx8wqmowL4JTs8NRSUeXLtHleu+o0IEUE26APbp8KSxbR6HwkkUewzoJZwvhJ7xHRkmAa/GkufsQTZH5MyzbsWH8P2GFW8VPSSVGp41sRfkMdsL3jfsCFgTRWR++ebjNWZinRqJnAmVmImdRZ6ib3BA0wShyWlgaRgYWHmMP/hIcVwRV8pmP1ZRMbm2WaUGG5bNpIRu36jxH0virprGPp20t7R1ckjXZ08EuF31zb2ViMePZJ3+ui2Qc0YdvqEEN5RLoR3yoKAK1LQ+x2bwsX/KEh/2QHpXxRBiglOhVeM3Z9bduaDe669KrzP6La3lHFPWlySKu7vbb6/90/o72Jbf79ootW3yrBzmdVpzgKZLV27nOD+IADX3/9V6+CHLeuAtb2dyP+6Y7I+5ieLnBa7P7ZscYjsdta2cuwsHt/HS/dvAnaRt/mUVXW/U9v4Ltba4I/YxnexOs4fM1sUPThv5AfOvGjIZ9dHb3tpiVbMjXgQR/zYm8RVO91YWVTZaqKALraq5U75Loe/ggrZrAJ/2zJbwsti+3x9F2+fr856R7PoRLKj3dOWjNykMZBGbjiwJfieLw3/V1dm7+rqoQ8Cpv2mZUmN8cmMh+Zm8e3iYb1p0R2Na4Y4Zw9G01dVvEuVVAnFbT1Ec1dIoVtP8/CzzIJ9pq2y1TrHZ3fkAhGKA2vZixTvj20nfIrLa+tLOsMzAEwelE2uaQjjr4TDMwZxPAn8SObcfOJciYsoqTRJHpDOE/TOF8MjeaaEzu/rmarwGMMeyYOMOGslmHp4rICtTkWTMso6Rmqaint28A0DdiWMhhLN0oKCk2alQQGnmSqml3CMWQjcVCRtIJcMxG9+biBzOuhXR7kdlECQKSNC52ypDV/SzJe8z0G2Lkq3m+Jl8r1cAj20V9i419q489jIyG1cIoqc+CFrRZLXq1K0/5DjHXo1yjBAAMS/DkvuSx8cAwlORk7TZPoyLWHd++waF0/Hu2HGn7TI1PNMX+oAI9oghSaCCh88+8pz33J+jscR+a24hGa2Cdg5pyaXdvd/Qg2ij/8cVF9WnGr/T0SBlvomqCMU3fMP40VoCtUq9+EPaqefRhT4Oz8phYIJmmbomQJiqAALptk0DIu/apJXFrOgMwf+kIFsYdEGRznMw7sWEc7LKfqoMCicKWZd5mYrvCVLTHGkmgbuPhYTikVNS/Y+wjBb3BKLWgYie+qNjmHFSA1oZIHI3Eg8mKipnZIU6wksOjX1owP/27cq+yTZ4/TOTHTQxHmisoHAAJ6R8o1Fshb3T+/wrCveXPsY7X9E42aUxlAbY6EBhS5TrWFq8BxtuNNM16u/qNeOjuwAfgVHdtT1jg7kqUFrrZEaBjSkuAfksjSj4/kpinMo9j48RK9qsOW0/UXoTIHeyI/RJIZFE2HAGUkGwzk/6tb5ITQhA8LJTCXqa5KuQwYVJpyLEICkZMFJC49pfKtJZZ3UOx4S/Y2tDgPnTfGx6KrHmDLBNEka0SwfuBnY0aVEQGMx2iQU6ZZris2L4VQMvqxzbmGCERcbJdNJCNORx2rIfQDMhHKcRI+ct7f3Cb0hErTJEZDYSSwLBil4jTj65vKe4g7S3WlV3tsDNnG1rFT79zW7frThhpjIan4extdVFGirz+6jzWc3K92da5E9tQXYQxay/9PVEBo93OBaob+s+0OlB8Who7vVoYPG4ESWsN+7mu83//Bn9+qqL9rIsQOfrC2fOLlfvP/B/ExMh+7+Pg5i/7NF19m9Uk3wZydMAgytrlSBd/F8gce2UPfhAYYs31hUllaKSI+CriCQcpZykbfmritL+FMCfyrgj4ogJhyPp1wo8zjdLu5fTjoPEoSmzDY0Zwbb7DJOhvJFnCzYAwwolQPSgMmQLMlP4iOhoigi63CKI8hrqEBKw8aN3DBiZcNAiQlrncbJSXyd2Rlingklws3hc/NuHCw9oMi98dB7BmoaEubF++9fx9MZ6DURoafPdsJRsb8PiwvT6eCFNljS4+G+oZzmpSqBlWEJAGH1hQ0SkaTtJ/uEnkH6v1odHFSvVvWDq9VXI7UCny60cjpxMr4ZE68J9la8s3I+OCcsLGoJ1N1FUJqm6EQcoKMSYLdKa5WSYOIvxncBNiZdl5RVfnLDD6AjdDvw08niXUK8Q4Mhct5BuljECBGG3CXJlt8Ea/x5vUgm7CcREtlvf0J/AX+b0XZOaKvEFBJHb/278Y2/CAB6IGn1OCAqiLrDpFBk2Caawr3jt2gA9smNilitvlzrft/ck8b5eb4yjUVi2PdCtcu2jHFevGMREDVuGosQ3cCHhj3zwt5URMyhrQ2gKQxcQPw6ZozbgfII3G4muJ1UJLsYEYNAjHESrQ38m6hGtBtp5MaFAmJxGi2OPdymVm+BVueWYDMD+DQE/QSvs+FKk+VRVj6OuoVFyX7bYEmB6LbDMgORrcvVt9MG+SL3JFfH5ExFpJgzHBKtyJN1ucLp+HP47F6XCmBgZkRzCNuggbyA9adjONzWB0suxFOIZWDDlFU7gWNppTLVeLKpnVWZnShTFd4+Uk8RZDJ1aS43lSoJ/mVVUsAVSiLuxyR7utXITElC2hEkafDtV7FmZPoUZWM717+CaCVFXQZ4NXndzvGTtGVyEJHDMpihbwPelGLbv/CsbrIOYkQsvV/AOG+oeNWERatMds2Hm26fnY2AjhgBVAiZFUDD8hzvkGuYY1DFirGgSTCPpovqmDSaBbJXUAmNRU48Q16A8Wji0XjCJOAgAbmS0+gMiuYmmXQ1ZaFtRS/Av379r/8LDOzX//p3YyOQQU45DFvEg4VBDuKVYbN700O3fCDyu8U2pns7jyZrDMttWbbAXV8iT8+kliGQEDmuJINBUZmBXoYIrupEMNkVqASFWYEkzFjy/dAmfn4CLnpXhgu53EwC4lRsy5rA7lDEIRGp/wJyyFwspSmTjzm+fYAMJQx3CpiYoMcdhrcJkhIe4Y6CJCHhvf3kJli4xqcBLMtbmAF9dnA8Vd6lMj8jlUSLJ5ZUpRTAjjF30QgTfAzeF3qppBGLnTEsUTCzAEjh9TcSnwojuXlW9efoQlHFj+Oh4YZbhixwC+JdKGcHVNnoNWjRt+7UOwaxZGprHzPQU+ZKglm7mYX6e6KU9DAvUZGQZNsrgUAFP++CZE4OzeTiNnosRSSRgpqf3RJoDvgThAKgYqNv9CWxU/O7Su3EEt9s9vqEK2bVWL7hjO+K2AC0VV3Cdp3l+HOT2/klG+yFikmKy0e4bauFQJzCcElEMDmw8bYw+mTx0gNyX1WWDoXBRBWooA0i+NhTENbKVF6z+ur+QtT57G5cOHuJv6zSXJ2F+yWTXHlTROJRvbm7mpflPeUgbkIJAbQIN954ghzwzim19lFny4PGSPqkjyqVrXLavSp2MQOskM+EVwXwssSOeqO+0M2JIZfzLq6ai2uBOBgozY0KIJKC/qNrPOYUVZ0plQe3ErV1z25n7V4owfAmqCZ4xlK4qqcKxe+cMtIOLJOBMmcDSUQ7KvkJ7d5Pxn41HA+HQYTieJKqEo3x6//5D+NJzeX43wzJ0B5Zis01gxl/F1o475oW8a4O4V0de1rIu/7XY2zzBHZEmqDpaiWH2KDcJW87dKVi37VXQrVvrU0T73ySu7jzjGLfxZWGV+Vfh34ytxdd9PrAGqttNVZibdpB12LBofBagRc1BBfE05HQC4UFN6U5/izhKLWso0KCm2uELH/u9iZ4UmBPh/580VJef08OENAofE8WvXtgM37gIvuj1OD6NgcKY5QOvJHg9faMX4jpINPB45/Oq4F6i6W7Nge9DrBlJgRZ8noqq3nhdWjNC1Fzb49Uu1CqacHiztBKg9+lbfEsa01s0/VxZjUuKpUNC8wGbLUNhI63AjreBY0Yxj6BVksAndo1+l1449yDIkWyuVASunFOQdMkCVLvVXITmIsfHqacrdp0lt17lRDcVCJ0KiZcPZX8Zv2IJZOffzSjnK3yWjMEq9Z14TX88KC9b6fYIDwu0vmx9/zggNnbYxo/oxMszB69+mIbZP/BdYuRD+FvOgOWGww/DWB7/X6N36cBtDSdITMO5tfJeEZddWBbv5kbfcXJf9Q1MVMObGvRhi6sN8Iqfp7CvtHDIHreOzTzdQC4ADSCIXSO1P4+Mu9/SYNk/SZYo79FfA1CTN8mr04j14TN/EMNzfiAh2SNFm28kJCvVUUhGVTP6dSPhrkm7u7UJmyUoxfX4fd4EH+H+X+w1VG21dtxNISBioberYsrTovAGfjXt0jA8xwsqzu8a4moQlLL1vUnkypKRGrHZAQj8x5rNAgWW6NRcL0w8cNJap56x/fmqQPdztGVLLoJhs48xpAs3vG5M0aFF09JWIkkmMYgm8s4VRF6kvnc5AjT81fodwwfCiYGQM72xCW6XAf8g0X0zEeb11G2sezH6iio2qB8Z/d8qGjZWQwlgtx68Lnhz9fRdUkJIndq3aP5Gu3eETURxolzPRnPBrGfDPPWT/EJNB3/zh9PiJgLDS/98aJU0ISzTECMQRcb6MvGFuLZOCBXMamV3DRG0Ax5s8lC/zYlf+6fPkH/clwLVItQyVx4yW3KM9BKqqMEzcID4Au0a9ViwMUSauwVNgL+mG0K4TaExIOI+QbWD9rZXWPip+gokhiqoxBIHv9e+gsshp3ihwIm44tS1ieKA7l/5Izn7wISys/K6H07xq2OtWOrpkxZGuGvUratCk0/xMSgiVj79R//z6CA8KtLCM17yo4IXWKqVRSalQAPsIHEToAfBfysaHnNd+9TjxWxz73T7F5yyvYSkvfuqPFPDXq+TYMMkulYt1L0HsVSSfldJeAr1c+bn9/GiLTSH/H87I+lYAUS4RxVaPTOKA1gQ58Ez+6zGGwapV//8Z8lWMNTf10K/bugNAgCPMgg/AyvN26cz+7n13E6GZYwzfoEJoh1ghq3hj/a5KkDu+gc8OKy2+mn1uazpMR/GdV/CzVKi7gUUsrvU+2XqqCAGbe78Si52Cuvi6JZtJhidPrEbvN79CsiiIGWeAKcxbIvPJBl4B0uD9D4urCv2GfeB3iHEZm7vomf8VKehRHwvF/u8MNHz3wDUiZ2lJGP3zh4zQm3rlPnBtCbREhlbcu+1P1dTlFC/NhEV5OPUCWYDHGD+SUdJyCTqS+pjOtP+m6vT4Psdp3QnwPCs3rtubfqndLUhkwiO/eUkzXlHbP5au+Ee9be3iW7KnVqM5SdW7D9XPKNz3thqYFXJwtvSjBBDC0nRCJr+7PsWAeiDF+isDDVGaJT0MiDvrd3zoTJvb0TZw7C3ilO0jm/8f/BA92n66AFhdg2uS2CTKV2POaeqhRGdpbx0D3F4NXcagElTpwb7AOFkn+WM2AexutJwVnCjFi1ZJU1sxthHQw+X2CuCUZJMA+rSz+JSKKXBOYLg+xnuGtvJ1fircxTECiT9TbmJNab5AmsZqM0HM9nE3+NDHwRBiX03yEMIxhyC55jPMoJ1DVPVk7sMBnUVJf7e5Rs6Tq3Q0JAEk87xycE5q12AqUPFLFLSDQlv8TZtquMIXusRCF5dIzUdEAzMyImZ+vSUBww004FmDl8zEzai4IN4o7FRKwmtoc/6FsmZjVpL+yJ9im4pCDKkMbqyuGOGixzCAtr6tgvlIZmxW1U8UjbeIqFZjbW/IPbj1lSxip8uLw3yJaIfRSY1XkfkLfbEAeVVYMuVDLckgE1NzbwU3tr5c+8MpH0Fgk6Bohf1Wf3wWLzmZnAjfM3pyVaYjEOQDQEoROPDAh9wQLBuw7DEg0WpZm6SR2EJljgbJ0JS3KWYs/g623uqz7QZRiohvRbnQi2LB5qgxaVPjjMrgDVPnB7gVx/s6IGSJlqFOv+/0YX5ROUXODPBC1hRCJB9oGsuOQPYKfEb4ADjFIASlapCx9HsLGWWDAx/EwknYAJOiUTD9RQrFmOFyHgjQOWXa49Y57OggRkHgICqWXYSD6IEMNyDAUx84Bezy3gLBOS93YOVDAvOBQoxqhUR/Lrqq5z2jHekR7gerUnC9V3uFhq1JqvYvYkde6MtzHIhMCirzF+EZUPcfDrYOEoB5j6aS50S9YSLCVlJdFD2iz04sTpCd5AZJufoksQZ3PRAjS/aJH3ZynYnUllPOIQMPBX9qmD7haSJIvXwmBSpbcQFYog9GewBsjSsD+DoEsbdvEXfsBf55vP/JCFi5sy3lfXvJ+TWGhevb7RPWQQnLsbHRp/NiNny4a9HA8XoRvZYYCZBOAHDvrbeOUaB6WD0vNaHf8z7BEwSJb0oNgSvZpOornL76Yul0tneejEyc1+/eDgYJ8AkN/h/UVYDBew7xXt9H2KrAwnJx4C0x26RrtUf/7COTgo1V46L1+WfgAAnRe1Uu3wa3zJHw+/OqKPrPDRy7pzUIPnoxcHzuFL+Z09s+qXJdH8i0PnsA4Fvn7p1I5KtecvnRcvxOPh87pzeKQ0f/S18+JrbK5ed75+Ib+zZ1b9UtnMd4we1I27BNc+HS6A9vKwVDs6dI4QoEMY4fMD3vMP/Pvhi6+d5whCDUYE38Vz/atD5+ArWZ59Z+1dGhlaGmIcGSrQRt7iDtaCzyyL6+i6xY6hO4s4Ccz5nX05g/8T7RcdyYz41tBUdzO+s+/RzodqvjgK8B2yVIl/LMlY7AMPZOxl2bHv8S3IzT7ZWF1ZGpeiVnjUtZlhlJVlnUIbTxCaAd9F8mqRWIJTw99n6TjsYm9P1zixLWYE+RKNs8P2DkPbP6f+WNuTU0URhf1JOBsuYQ7ipTOJr8nmQVwsrcYgBTXGT67Ddz7oDnOizxkkTh0JFJv9TB2lRAmbNQo8HchhzX3aqQWa3M0GJQi42QDdTRch8YYlT7RR+hu6DJGzMeJ4f+Nx2RS1nxbd+L9dfz80jSSOF/REtfz+Jm82nI7nmH2u9AcsV2IiAzpG1pxr2GsXwXt4b0JNhx750xNB852DyuX1og27hYJI+vGkhmQwxjON8V3W5WpIJn5DEov/2/8HSLw498jGBQA=" },
|
|
78893
79605
|
"/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2": { contentType: "font/woff2", gzipBase64: "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" },
|
|
78894
79606
|
"/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2": { contentType: "font/woff2", gzipBase64: "H4sIAAAAAAAC/wA2QMm/d09GMgABAAAAAFcQABQAAAAAzrwAAFagAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoMkG/p0HIlOP0hWQVKDKQZgP1NUQVRYJx4AhFovRBEICoGBMOZ3C4RIADDoWAE2AiQDiQwEIAWEbgeLCgwHG969N1C9ds4vQm9WFed8bvrxZyNqt+M7lhAPFHBj6IaNA4AmGZH9//9nJMghIwn6R7Bt9d22IAqpoBI7iIr2hQzbEEyP1hG+DDEsRbZ6qHFCVQUIyJxRmxGz0jGjEKqEjEBHcdLg8OSUCldUPu8UbeWAT9/KcjzRGd+RVbwJQoKQIJ3grGvPn2fr+w7Z8v21uOOvt65Ydgop8/AVJDuIlfzfT9LmAJb3DKd/B5zCx81oHuXIlREEiJUppXXyhSzdn+vVndgO39KdQgrnjfR2LLQO3znnrQJjl8eIqFgn2pfnn/xldu6rljSAbAK1xsj0vSEwRg4XTNliRkBlEc05+/exj2AhQMTRBpNCwGtOqZg7oTRQFaBuDM9vs4fB8PP/tjMSkSmKCFISn09IRNmoGCigs+byXOUtXcW5aM+tZbul7iq3q/Jqt6vtIqd/N/s/EVGScBIgWJBSSinLtvvM5ffeSaDP7Mv9S8xWTLvefdvuUhj+3fT/4IVtd2sn1jE1Nr/39pl++X6f6KfJV1n33K5qrxulGZVRTAKEOMlJchKSEEJIiNrv2ey9r6ZkS4KpGorCz8HQbFEsIi5B23xRMFseDcIYi8OYFupKyOeHa58zgcK8pExGolGBz3hnW97Y/bYE7lSBleqULa3m6emZBZZ4JftYZy6fDiGNvtyroyj59KMPDxCMknlHu0PQsMgmTjIoJQlFdaJygf/3d6G+e27y26dgNqN5ErNpmhCFCtTNfV8uFWFpl9YGFVKlElIzS29quwL4hxuwc0Jgi4lXKJCPrBITqwUGHn5u7cG8jpRsQTAvLK34wSL036992r3bS3LPQoBHBXBqvZm84PsnYfUyKoBTUYDCgFCJk8CjgizklzEmwvv8valp+x9A6JaCA6C467hQXDjCqRfh2FKuXDsX3d+/C+5+LBZY4NICIHUgSFrLA08GwJMEkgpYgncD4s4zpORwyTHTKX/yEuiIk5wC5RhjUblTU7osQyydi662T+3Xqmi/iEdKvdBuqIROvXl/h/2oyLK7t4uYhswQQqUWk/Qj4slC5d6517a9ZJAhyk9TrlI2d/dffiEDRMUKqG9uwgEKPTk5P6EJHn//Tm+CxdUZcSGPYoycftZ3w/rmxX/vFjqUUgYRcUOQEIKIuMdx+1uvxuv49r9z2nUcIiLykvQYU/+LZryx7fJbmxpDCDUHIhI8ESm1+QsqYs6dPcHSLjxqCkiPhrqVA95kQ8yXpfUhFMxYsASyDnKsdFKt+ehIOcVorRSRyufy0islSpUlHeGxnGbH8SdG9QhHddl/nsnjm4uwbHB7/0qexVg1TCUAT4oIvBFf/oiWFtGzInaBSAgHEikGiROHJEhEeorBmWEG8lc4Bd9iipqi+x7oscflpTJHH33SV9/yDxH5lUkk+e0PFnUFLgHJpUQIXJUUChTpyJPkhgiJQGHh8tc7zFMZEPjOdwmKZvmeICqGkqygKE7SLC/Kqm6UNhaimFDmvJDte3Hb94fX7jvIw6gQ15JGZ74Li/vGb45jKYCAOULUlnDiyWdeaPqd1z14t+l4oHsaCA6746b77/apn4Lcu+74Xiu9SHYv7R3aRFdvkhLz7DcguF7bbF/wwKg58OWs/KkwD1rgyBt7Q9dwd0X2Tve1S4VNdeT+qtxBg7SiBo7866GpUrrRHPuBovf4pa7Uhr2/7Csg4s5pHUOK9OgLBs/BJ+H98Gp4BTwKd8ONcDmcu/0n9x/4/72GFI36tiYJ7SiFsGZpqoY2VqO23Daz4Rm4v9dP9V19Wu/Wy0C9WJfrDNSHa1dtrBW1oHqqverLU7bSFFYbiwO1o0iVWgT6n0f5Mu9Dvp6JxDMG+Xj2Qd6cY1kDGfJl9mUgkTQlEFs0wVIWSjIDAym89cwd+eAL4LmssRU0gzO1z5KZkEQDM7XP4MxLJeZJpggz5wIyQMvOih90CrSIgX0+Dpp/mRovm2ECVm16hScBHDMAJ+zQEpmpfaRLPGCZn6l9amdQwBIMM2MALRGZOoKA/h6LCDAH0AZo7tS6Q18cH8PiDeNfgxYRvYLx85iBwMyjgOZWpsYT41NYEmD6OdCSkKnpE+MdWPbCgf8GzUBgzwdBiwbGbwYt8bD3raAZOPE9y0BLzUxNx8Yvl5gkmH4raInOlJjxkyXGCdPfBi0JsOd2I2FPcFxLmfx7lqajHQaXjGdSPd5NJV3Fp/+5nBAB03+We+83+h78412opn/mUSgY9hxpJ0HIbSkDOHBHkcb63tdL6TBT6omAhH5RHFn9olNg9R6itoj3BLL76VPo9Hr0oRvPkTT4qePtQ6iffl3fzTpRUx+JV3KRe+NjXwnDrrgrOQGgr0m9dsRIsJWO5yTEhW9SmZ+gXjCr6bk43qyL1vWoP73/Ekfpn/xQdk+0t0TbDNDoBMmECLMoNocvEIokMrlCpda84L44E1MzcwtrG1s7h9O7Zs7sab0fflGCz4IPg3eC1yMTwZOA+wG3Aq4GXAg4HXAs4HDMg4qPHYDGnanDg4dDwBTiFaJCYczs8Wixf9oEi4PkhQ20wn/Qx2ibcDh14fzxvYHD1+g3HP8uIVwJshb+rnfDP52NOp1v54eHjSHKF0itH9/+HMGR4vb5KwG344dygN2/3PmHBBHWe+/iYbvS3r3DbuwZPp1Q99lmTc/3/uF4Fw7n8PcYZ/oBH0ZnNmdQftwZh93V2eld9edkdv5CAYcHND/rEXLV6zO04l25rVkfJ1Dn83z54tXeStP6MzM6fnJPIxCEvZZDYqMkklwxeMh9MdcO2wPAuucz46lIQ/FGjDUlCv1pS3Opfl25YLVjh55PNdH+7o+eDK+RzzJ+nBlYGfqqO9McDaiqyXsFf7nTWd1nTQjdfFm7x9DsiF0dX9tO5Nv9kXGHP//Ix3XE6pwme8pKmIw1enbYW9C5Ujnu2jpdGnJ5m6PpLTGabCXLHDHiX3or/GVPNlrMgC/LeC3nkOilC1WKCnfFtKPP+lPCJZ5KJhql09u08Pn9h3fHv+vttgaNUOX/7PNm2qcTh+v+YpDn8tgXya42f+B94evOxt3/p1jq5r3orFWE3ykj30dKLy9v7uFt6Sc98q5yH2jn2j6vHh6lustfi+fjrmutzH86X7dysbnN5dkrR7Kpnf7Gt+VZXTfqfcDwfRD5rJjBu9JHTmEsKp0QSRnSit3s4PkAcdvj8D2ShKzJqpxmR14IyY/XP/g/O+TA8dR3c5NH8IfBZ8bf/tKoraGFsrWFU9yRaI60CrvLcvYfNs2vPCbV2cw9XifrLOPrj6LOyPRQc9G7Z1vZ8f8AzfrnA5cj9x86jLvv3YZ8izkicIjKKMjeqgth0/sHnomPg9LT3u4uSPHMhncPUntfKPKP1djVy0/XpMT/fR/VpH8BHZhPAJRglPwXgkeT5n9q7T+KMfOR8XTvzUi78uU3E/PJOOLOkEJu4bSl964yzufnwB/CtgYtRMWnYeUOqWG7+rXyD1wQ+/7lLpM2WiqqVS3Kz0v6RpzYkDzAuiPsR/WzXvrg1QOplBIc40EqQSgJ1zAT3Ryva4mJT4vQb8yu3sKiB0EusKMwxttTntn8glhNyVjlS2WRkFyugsVm4Zu2GZ3HR/v2bGYwEuKVMpyANuZgLDmPm/JrxPiPHGbVhnWwKoRd/0UKmfGMAzF0J4kguJdIRXy0Cx/v8AmoWbw8WxkfKEBVC0hmr3QwYh09PrCWa7t1Hy29ODZvgZwIrIJVD7/xkRiwhxJrnslcwGdzH2i9Y8IDm9Sz2ducfabSXKex0RivHMM8NdiNJLRBe1CEpSv4JI4/jU5iV2L4xYeNDKPrq9azplhJO4/VSsym49rZLIhzrm/tWPmSszHZxXvyq3xrpTphh2WO8/79RbfzzUM/i+40YNlvbccKw/s/q9H3uf+mQJN3AKkfmkeGRh4kt0BrETQv8IgUns9pQ1fX1qyFHmLn674hspL1vJgjoNlRr3lUZmzokv8PAiV3WyvV04/bS3NrP5CnyA87/y+Zcbc0Sd8las4OWQPpGCW34fR/HsZpbHzB+5h3eTPq18sccRAHiMmyiL2knqqlx3fzuxv0yyPike/H8/h4fne1K9YUnZA5GmUvQmzAMqNa9VQ/NCn+jxWRzp/IDy8BJQmT+iw/7f8vRYtnA9uFM4sULVSseA6JkkRKloUrhwamJi+JxgK0GjTSadfHaI7l8qy0SgdHbTLSq1xGeZvbGMWKjXXPPeM89dR4L5WZ4Lvvpvrpp2nKQQevDkJKzEhqUs1MQQrMAnMH4JABmDUACwfgsAHYdwCmBmDPAGwagJUDcOwOnLQDx+3AxADsHYAlAzAzAOMBOGIA1g9Q6kvCExMR7dLoNJoOnU4nSR2EBByODo+nIxBAoZAnEgGx2FwiEUqlFjIZJZeLFAo9pZKh0mjr65MGBtqGhgwjY6aJKcPMnLCw0La0JKystK2tCRsbZGtL2tnp2ttjBweJo6Olk5Ous7PUxUXl6mrk5mbm7m7q4WHg5WXi7W3s46Pv62uIO2ZTK1SJVqGanFLV55WjsYAcrTTK0FkMXi9dEgwyaIahhnDGGI83wQSeJplBZKZ5yHwLyC20iJfFFpNaYhWyxkaslZAhoMEbb/RF8I5W3zL4LrkfkvopuV+SKp/enISjMM4YJnw7H5yGo4ZhRlOIVMSTKZpQ9yenIKZUAJWCeIRn5UXMW8RHMdQivvKikcBPWv7iBCiWVgY6xdFLxbDfbzayBcnYFCrQ0nkIScO9dqFTkWYAH+TWDx9FmFKIRKklySZZUVIUyakKUhUmTRHSFS5DpTLFlCWanNtpY4cMOfLORyXqiZNCydSbczh99OmOSSiIIVLHG+ppOKPNTwVcqGJ6mgck4x45XyThkoz77gEzEJaGeqhXSkiUSqbMkmDJJFgSvH34WNG9ui8KcCKg98xH9g9pc6Z81lXn/Cvr/5H1Usw2yQ1D5u3suam6UxtP1Kb0SZag/AXBKmnE2wvP79XZ3K82FqrfpbgjdLP+4eT6T72o1KNrx+3M5x1z3+u5B3m4ekCsXUjXVqOOMctQikI9U5ya2ZCAWVuEwzY8f2Fx3ggv+wfTSGSYRDwRCRklD958qL8s3AG3DTIxh20+SPD+cETs35IkTQYlFQ0tHQMzFzcPr4AGQY3ahXXoFBHVbcCgeeZbYKFFnrbYWOOMN8FEk0w2xVTTTDfDTLPMNsdc86Yj3Xz7YksstcxyK6y0ymqbHJDvpkK3uD37tqffVeaN9777GUCN5KQi72SFFApy4N8iBasHSU/9dBqRoC7MPiJ4J3RJ1TJTXQ2ps8ckbZi2VrYuyEtn9k51v7BnpzYQPO0bqIle97O67bv/C9KUu/9fmoTyI4LK7zCykLlhXt/cpCnoBQcMMJetS1OFolGP7fRslrguOx92gZe8ooRSyl5VrIryiRfV4D4NaaaMQyc5eEfp1p2iBIETX+3F0X92Ib6jidf59YqecjoEa2DivXSd1BmpN7WV3wnNtYvcZacr3ehOD3p6QkULLLLwYmIUc5aUAcTDKWEQjy6cwnp7VqagkZ3rTZ40H/wW8Hf+OYjskVPfqcb1pL1LpUDg0pat4O/BVPQQGlvzxomdp0hgW5kvXbWvU58Hrl0jzwDPPkb+AgS2TyGAViIOQQiiSwsWo7oQlR0bB4vPZQ5H4NKo7h0ui+ZLTIfUYzszQRHXVSdk7mXvocQwhjOCkYxitMe481gwjvGe4JGVngymMJVpTGeGZ4JZng3mMJd5LGEpy1jOClayymva8FqwjvVsYKPze2AX7B6AX0a/IkoopayCgwex9s0OxHd9YgVlL6eQHza6KOB0wdjRJGcoUyPyDmDFXoIofQfDDoxGpKGc3Io667lLoCvd6E4PenqSgSeDKUxlGtOZ4ZlglmeDOcxlnud78QJooQYs8hLGS8EylrOClayyuwf+Xu2fdCscPsB5kj5Es3eS5SMq4VJlF/KYd7Qab6LpdhtjhLaFuRv1D8sJq20l7BsHM7Z1HI6AoxhH48Ex3a1RsVB7xa3SPKfMSfYvmunt0W+Suz1BgLMTI9J87M5xl54iPY90Brdxu+8Ad3IXd/se7x4KhjGcEYxkFKM9yaMngylMZRrTmeGZjXkWmM0c5jJv44XC841FXpJ5KVjGclawklVe0w+vBetYzwY2Ot/eLtg9Kr+MfkWUUEpZBUcNWBPz0gu6QtY/71Uwv+xxlW7tLW4GLFC1qppYsDOPZWKovE0hJvtms3VCkuj+oyLL33HxkleUUEpZge0HN834cOd5mpkyrjnXBsknIOFtj9elcgrMEmLFYPJV61TpduzQO26HgtwNKr+CvaxcgJ36S2vQSqJOoYItg/3LuWIxDy+laDXrGMz2juBlzVesa3m1fUz7RFbe9Fov4lA3Nq6veT3paiyVC3dezgnisfgMz85n45smWVBajIXMHFa3IQjsYxVHtuy3x/6pedvDkJlQbB0kPxpHWWaE3YsxSLIwq5lA/SZz8OUfl0v5QC1Vba2qIUFX5jf9lRlSMG2GKd7ng+scxCMZVLErPZbmKuaIvlyzjhC7yyp8oG89Tfe8l1/nLRaQFW23StbX83PllET126YBuTSksVvxbg3auLOGu4CudKM7PegZE9q5Sa1oYbMzryI2xMY69dutj16eQt88ZmOJJxx34SaQdT3zRHjHheef8e2mge6ZBQrDk5CSEQo3XHxK0dFTSL0Z4GHpic1HbFyj3WBRWDAU64qCwf9/ALoHxCLhtkbQHulqjoCmE7U3+GL90R7g6F4fA6Y+bEyHNIBQ44MCMQKS8N3fvr0zpaF05ec1jVKPvjVaw89fUvLiVGE+zK0Mpy/Bctxf7+n2myvCt2kbhlwJ1ASEjxonmkSSKCGs9DQ8uXBCleEEy8cJ8hLHphRjE6rkmAn2arsD5WgM/X/HxUiIJUlkSLYP3mYGKfA8OHaK9pfIIOOUSSxdmhTJkhDBc299CI54Ukyt9U9+ZnWkZr0elRKXg2Vv7OSM+GaCp157p9yHkkBK0iQvBaIIa+Dz9i6OP3tXQns3InZDUG+WF+uRN1f1jpzPLKYkkC6Z3nkdhAxblDf3Q445iaRPlvfeZDrJ8SwAhSTJBGSVAo7bTzZxlIJvfCHN/o5hbp4o9+0ZyHiDZy3o11wjyUCadeo+uzrUjjjSwmx7FENrNSUwy20f3xnaHQo6lKcMek7fiRV54JNv/iTXzKcHu3nPcX4Cu5iXxxiEkbuyXpNqyq5++MWoH0p50Qvc99FXv5NDDEbaMhBSzYivo1nPzFMN4FYraD8QYVSUQJovzYwvw/kMYzgWqAHyuJiyOvbGZU9GCUFA+Ah71y2zfkRNRrzd7WlqbHk5T+zl0rm9RG+EkRc5cgon82HN8hSuR/U0r9NZ6CieoihtQ/OL5MQ3oiVpM3ahgKfz80tL7Wqz1WoOd0iHOxTDHfLh8nK2/JxptloYxk9sS7no2eAkCOueCGf9YdRtwsvUPAFwaxSc83vKkcgF/5ui2Rb6VELxE6n8QGoL/pijp6cOKntJXOxLdDuO03jM7KXDnmzc/KUKMnxJnSQPR3n/kjFaWIOnhKjj96x30XDkOG09VbGynkvxoGdhR3dp1xXOHMuidC34BkLBM+W+kzX5vWefzX/5pTZBc/wP+pDTNvMbs31DrhwvgGEpPfFmu9sfbt9hgN9Ph2c/qsgwiaBeWQHAGcfCuRovRdYbHOAWwO0CJ1+87z9PuWU59uD/OIyeDnUToDcB+XnFwSYMIVIEluHBOtwjt9z6YACYRc0uCgEJOUADFY5mQ30OysFGX9XYNCpdlxA977RJi3i/bhMIfWdD2ssLYphkxn8hqjLgQgrJ1JQiVZShWtA8izzvEpfHSnxQ7puLu+I1Ue/Xhw3HeCZjtk0MZS5lGXRhACMYw3k4gI/f9KPNheFnNm/ZkhoZMw/zmUVJlqlGo/kOOO2yAk+U+hhuXDWueCJgjUmPXwpt6J1qBy5d6vcDZkFfgP4O0J/oT0J/vD8BHQP+P//+eSwB/O95Bv5s5adnAcAPjyN4AD/c9ul9BPrJqzvrO9b28fY9QOB8wN2ARwGDiYDnAd8Gf/cTwF9jlj9nA1yD9f/Dpgmrs/Y4qCMLHb02VzXUwMPAx+95J53WTAsVM7Vb2puQw0jrtv+aOm+v3fap7oSrttvss/NJtcM1F5xR6JZL/tqmrVfctMUXhxx2RHPd5r43rlX8dufVZr3HjZ7I74g11lpnvQ022Wi0Ve4p9lFBcvx231e12bk4OLn9mxTQUySZZUM6x4hJNmUmxwsKkNMSeD00+GtqNM8l6p6FwvCtQJ2MVv1GWnwvsOIaYPRZaI8CGAEoDOHQ2eCYbXKl+j1N/UsLXq6RjrZ4qbEmIfeqUOzSsnRjhi25Gk5t0XpnKSlndJdolS2bmXbewPCxr8EmURtarnXD7cITlXUFrVVX6ykmo/w3sCQ1oqkrt6565ZyHEvVMF9dX7kvmwXAJaXzHbvYIHAhIpKxYopwgBKQp5C9d5hozlEfhCVU5HFvch5XobsEhwShwTvJu0Jq7gUeLpxliNjJ700apUcWl4DiDgcVhtdDNOMEwLeX9m1DBf+4bG5SoAojNQo8tmLD+jLhvIl5sR3qqUugZSmQwUEcoEKAPAKxpBJHbCCEQRKEp5CI3DVHGSp5gqcz0RqmruMEKJoVs12ZvFQ88gJSFKALzWighwxcAyOdu4Dis9OKrs1wxO0+HNeBsQUS/28CoWqHRhaJFCCBXr4e4+dfQuMIQdxQYSB8XQUQbD3CP5OQQLskUTi/uTaAS41Tq1geAPrqSXMhIS8Cwwv4hvFMVvkwFWHeYtb4Nnsgg3CnWC+cEBLCc1pHTr662OooJjZOcXMx4MOzJqayu2MWwhlO514co7JWwvHHfJloor2FEOyWGAWCCBvQQiao2UzDHZArNZJ32VLJd9F+qtNKRnpg2uITVV1UTQ4Fp+DZa04ZtDaUNNojS2xnT571r/DPa4Qg6dogPNE+sXfiQ41EHHneh+F2hbiJT0GldaigboncE2rtLAmIKYoWPk5gjj9RQ5FEeryb2hDQ7DyQjwuK20G4Rm8dzo9GEWtLwurSMAq/ZsacFeYp/pfSQBATJU0z7IRjgS1xEIh1gqPRB4FhbY7jIgkhUPfI+uE+UczpV9HWsUpfP1+wjypqs7SLtnjvX/tw1h6jdPWb5wiMPuGPHs417xrerEX5TiFoYXIIzTe+UtSrT2uVE1s0rF3LsdxJgwfEWXj27RBgo0S8qm+qMwRAayRPHQIMiZLVDPvE7Jcz1jwpFy+8ncsFvqKb13mQGUkMAPoTrLqRyKyQTz34WTrRpuChNb/zcEEEJsa5hn/7g1Mc2A53wItwy3X6v5lDvsjutIMFNioiiRAPtR/Q+jZEhVrrGJPYg9UEtiGE5yIkYjxKECCVxtbebA+mMPHhuejCZ8QU1GbHSkDYMpL0Xv34S7ZktqnxyPJp76w3A02WV4zJjlzF+pfUDOpQii0/rHAokNPJaJgw4SeoybkO6hTPvabSYnNNTWn/XqmboY0Quf4akOy7efMzgjjTcQX+LTx/yNjaNbdRYQwLnSTqjNWRYqNq1VnApedg64pPdakX+kJcKrlOPjAvVJ/S3dXtNR+vXjNB+oxi0PYi1QxWiEbXHECBZ+r92g5vXiwPpjA8HDWpx73zig5iCI20N1bEHHT4iPowjmNJENUtt44qTPgnVIVuYsF9ujV5uQBW634qChPYSkhKRXb2DrB4FSh0hgaMJRFI7JKEdfXe7zr5n7o1oaxAVF8d3F/dS8wg3xtK6ni88jxhjg4zzlKHjL1JdjyFFeYm4q54Dg3jPi/O07Za+dRIaTJvvddmBqmsOkaGqKxGGUzdQXhDIHtSzLr1Gw/2DVLVzkvRduP0JGqV/+WtwiOdtLoZTmeXDgcJZtZvusGT4iSTpjNVZ6lKle4FwPqdwlLntmR7ERaePrQO0Ye4K01mqSVgzN/MUQcOu4sDCyN0As9GppiYngpz4fXqnEy/HD/3DU0bN4O62N4tOrLaP/c5X7AJxr3fC/GK63XiJv0cMzC6BB9lWU/Or9BfqDyKlxH+xBLvoDwe08YVKxXhVGGKpU9CRBxjO4itDZ/5t7zQXsiUDeKpGWOQH3GxdvZPV6XQ1L8jLrLULMg2LktSqg6K6UqzfNXXIgO/TyD/vzP6nsvLHL2Y276fcaecXTq5m+/vQT+pIXbJjN3TeCxqiDVCZIt1n04IedevESd3qaLW+hd8XRDGMqOsKmtv0T45utglgFA0b4waSCrAnY/YgtNQZ1ekrmhM3YpNwkj/JQ4BBADXzg8iuQXVp0ptivu8+0ViJ4ap0nuwtRbfMcfzTxlKn1HWsQ2jZJnkfnYl1bX1PbJxnGg6B/Y7pJ8Pk8tvkyetzTrLyTEJiTyPb0gnRp8+TDBNvzxF75XNkteMiLGiG8c6dWquTzcopklB7aFrsvt9X6fXLPF6pr3VjYHN1QarpwIr7I9wY5dQVTi5eEIrtNrE5wo+25f6jzmt2zrZnqbln+WWerSakdu7wizWXdIfbqt39A6q1y1niRBu86aZuCsLcq4bqnVMj726StzD9TAzZWeOauoS9Tes3ckdMKs1eHivTkL6H5vXpmqFiRlXEQc3ql12OY8lU6aVnkZNhrpxltCqx0rMI41m4A99ax7lUcLVO60VvEqr1st5s5Y9Netw9Z5q5lNnaZxoKv2XPiRK34ShaHW/ZrcAQHzpjw/ptd8pjrcygoxp1cavIT2tjBwr1O7v1lAFXeqg202d3BcJrZxmvhlli+4ncE2mqLcNETu8P4jEjBmzgQ3Epl5fGnDmN2ylH5Jjab8pqNZ11tLkjGtsjF7pa9SDQUAE26cH0sc2N1kuumzdZH9ZzqS6DqG2kIpD1Oz2C7vEXzt9lvaqs8RY7C1qCRJNq6mu4qUW9jdYXgYZ6Rgua1o5yqDrJdlFVBAKxj2qUP8OPEyTY8OYBPNSu46mILMV8za7eUgfhdXM/HciCF5svtkynGDUaBQ/bwHOlaw/bu1a4eYPc6ca3G7CK3ULl6NsoNAlViDk7yCPKhulYDbI8GGLDVmR7cDIIr/VPwhog6e6Pmt9tNXfabCJ5e/1cqUfuJ8a7vrL0/KQ4dNbMbAvU1dT7biOhUdW2GGBX1eYYdhW3QqgQa9SQRqxWsCim1kBqTPPW9rQdaRcrfdVxpVeVL2fmC2dM44zQmCoGm6VjVZD4ZPbzllmccjPlJXoy9fWf4tPeHUtlAtKX4z3waskV+Qpbf81dcRAGCSxkCGE10joG38YncBvc2+FtITsXEgud9WXSc+IzZotWQpDsGeYz2JjWpkEhVCztGLAi8zdvXLdvnTqYP29o1UCyYpqvOhJsjPR3HuqU1RjsOL4ZCmRgPMb9EoFW71izZfGWHatXt4hbY73hgZVzettjrcAXP4q14c2YmdCJ+dkfwIJ4NaZWASPimKNQLqojwQUrZ59NVOxxcBTbmoaqaF3612jx1go7fOmqLue/tkIRavAxpwqpnrx0cZCEhPp6olwF12iutTlktcbRBRgeM41GW3v27l0KqyXV4ar+xhqbEj48s6QbQGHhW9vgZnBhXD78pD0dOjySfjr/RRWBXbUdWJD5m0RHm/oei/PETR1fcJtrauxMMPIHP1ckyptYYn8lXIkFmsplt6n1cbPPqIY0HoM1zuGDacVdirfQVaklk7Qi4IunKpsYqEsC6dWOD2HKn6xHiq8ps4ogevPLNo9Bk6xxGRwvAwwx9/PVEU+aIq0xVuvz1zkqy5YYyH//v6HJrDCIxZi7janVxtiKWh1bwRax1c6CCmO9akWgUZd/iUVqykQmmUxaFeUA/JLvsHTsuyXAjJi7+ZWdrvuK+/VN1VVVTdX1v2yXvHM2H/z76bj69WG40dUXFnh23riyaxu8cdsAOoyu7B4+ZyMbUL8NflVtvcmCb7Gs4Es76wQfvssH0zP+PWJ5qQ5udIuXyAD8wPYCaB12b/PBcwgDD5EKVyFbzeH+7yzgjdEkaqVSYZLf2Xi1QuMtldaGGnwPySQ2X1HAp0yD7q5W5rxjra/1ws/xNUw2W8cDNYgjINfDVVhcyoDvPTSRBKqwVNZtha3y7rDUJnC3husIdXXO7WpLMGwgQPQxaeVsK2Sr7KZDvS7IF3piJ3U0hb5EIHBzOAEZQQbGEji2O7tPbkA9s9WAjijDUjnH7yxZd4dUKTSSHt6DGdI4VgXrA3JlAwwRYo7JZbNNsHnze0FErtO0o5IOE2VfQnV7k0Njkkn9n9rcpX/Tgom2Oo/J2OAB10cPCA+sobbRBoURMnnJiHBkFFT+BFvl0bBEKV/HaBPVT7MIFQXkN+DJH4wkobJDIov93qewthpCbWvrpNZaQk1bGwgo4qJeOqHJ5Qv8DL5fXSqlOuwatbm5MfTrnmdyBP7jtUDBQ9offtz78Ac7vxxxEJjCFPB3SpZMYhA8gZP1AiXPWEo3cK1SPf+RGLOaDLScUFZVw5lOqe3kXQHQQhNDgJhicmm3GTa3+HuW6UmNUeBrjlQTqp3zeUMJZhj4J8+oMO5o4cO7bDg+AyqBifTDJJx/5ceWPe3nyXzhFT0HbPKuWAvtBjvzhJqc6/u8DH49yhWjCpFSpuKAbCSwwI0ET/TBupxSqYHDYGpmrb5/30g5WlbZpHe5QyZYN3+niY2KlHR66Xn0fpad/DVL22YCBFobNbRHuOei9OIJ4YlaMrlHCFJT+IE2OMpu15lS5dSADy98pdh/CW50xTcLHIt+JW+4Bi+41ooOo8u7h4cXMADvxd9uPzLvm4Ctm407BcvIq7DPAbZOCklk8r2OJK8g+tV0abGhJe0fS5uobTSgcOnckEw4z6V/shxCIEcGVm1Yf2B9nRz4XtMvCgYHwsfCJIPk7z4AhpEdibpR+tw4wLRmgS9YoUwrmG4qo6v5ScaQ2+YOB2oQKWKpbO8WGgwRvqS+MkXD9zUIFelkh4m6QJh1EgUsxNgjUnRY0uTp3nDQ62uo0eH5M1xkXpsn7wZ0CP20Ovs6JFK2MCU+JaSUBKMCsGPjgEny2eDjeei8jT2Tgtfh0ruAiZiimLRdi8ih6pYqhy/Y6Ce4axstzD2EzbX9d9AVM+Aju3X5AlkjKm43QDqsMyIDfEQbEynCpt8tWCQqsVnDIkGdRK4NuH2BYNDbCc8KoDZlGypt1cN6RVtMpBE5W+pcBBHL7mQKhQWfbBHBNVhxcCC7MD4j89eU59BfjUXEZ4dys4EEcfVx5AEJJGRp1dTb8MSdRSwIU9i7yvR6YzMwiLXo/LvwWyrqki2EJJvwRqZTVBPR6wj6iK6mpth6gq5XU13ja1bLCfJz0veYA2UIRK4eO6nK7a1q4BTtkjYdbFC0FrS6qKg/2fy7WRyNScwV3w93CA0n9ICQ5XhRwe6vyP58Rb6fPMxfnkcuIect54O0rwpzuGY58PtX+W35BonSjJmVEgMK7f5kxSZqIpxINRXLmBpVtBombND+Vc0yuWFNt2+2YfU3q4Y/H9ezZIVlec9SsUH0K/4C3Oylyy0rZi9RnH+QZPVsX7dhTSVInkxtXiYrywDvE5KUBLzRy9LLkuZqPaC9fEYfkvN/zrcyYOwty6ZkEcmenk0+eZDttpiB93iqPJV8iQa/357JJHkSefzXzh/HzcxPDv7rlStlrP/sFC7XM6tCI6DLyzSVtV1sg76TJ/GLRXSThnvwX1pKruVkGfL9vVwAvahGLW/Tv6K/chTySubHh/7V/f9a/u+gcL51a/kBdWXdPOylI525edoLpkbEVz41DI1UAm1ebuCrqoD7K7QUvfPeQD/t5+S2grwbBQU38gq2HzTAGUbvoSBzcsnLLf23N6RviN6+3fJ0+oLxpvCVpWmr6oe8WSXNBQi8DPuBh9XLhTFdql4YrZNj3A/QLbAZ24Ich2doxM1ziP2Bg/s90dTuY766U0Mzh0Knxny9N4T3f9IGWmqgmoNUqw20BeDAOw8AaF2ZyClhFik734euaUxqqchVQxcuFw5JPQota64yj7a7V9obEoZ07wv2z9wv9yl1Or8SsN9mBdR4Y/VH/7cOb8WrAz1Meuth+GqjGj/D6h8q+EP8aawSX4QVEdTYz9xxaQnx3MHnsQf2K2DDpnzpvrP7d+t2R8Q+dNXy5QOegdIqsG0vNsHypqzBbntfXcRMwl6f8FJyL2Ls1GADRgM2u12lVodQNGyibkzyNTXblTp5GZbKtFI/4lmD9V7oosjIZLGs/CWeqNlo7NA6LjEkJqVSZZe91X1FoA6UyjRVIlZGxjPTN+TcyHIUjhW5E5wBj8FQH3BxKynp6pBrMXvxemKaZdH8Xkp+a/6mbuvYkF86L6owCVA3t7xKQqgKRb3eEq96bK/5tyo6XAX4iCkql3abEPMZs1Ima1Sfo4BfjRkNmjYU6zAV7E0MtLY4NUaZtPUnuYuutM02nYbn8RqmWeBpiVQTqkIRr9d2FaG6fY93/1yfYKt1m4xNfrAJEQeKhYbm+c87xBKJqoJLwZ7+gVOQkzOr5bUiD4Nt5ArKPHS0xnpLct0jmxOt1ItdtHI1vSxvTSrhDWIWMuLQlJ5ks8u1LirwTy6TMIgPJlZd7Rij3TmLD+8TSVc9LdDiace8UcFZt8gmEAptbMG8bPqrbPbfixhXTZVqtUlXuSczncKk5X6bA8dO3vxBNIGmDBZ/Syn4D7zvtjcGfb6StTuCdxQsY6Bac2UlJkp+7wA8EuoJ12ZJU7UOu1mikLLYSqaBWDvDrZZlT/x8h5fE4igchVxvp9NeJC0ocVwq5OqYHIGNqUKcT1VhUu7BscmsabraqkyyvhmhaYs18BOX+GZOydc2xPcDIGCQspmBuqWQFHWHGIqP49Lltcs1XSkZKS6HWYLH7FYQIHoWKbSrOjsi2pUV0wN5Fyg0KyMdnZpVqvUuJYQH5q5qX9UOhAkdeaHXrXXkyi1yu9xKjdGlzJDkFavLS7i8XaxYUck4O1OSodA5AUyX1vOFdTJZwa9mabHxgrW21ppwljpkXRnpx95iT046Q48HNFJZIs/IELn7uU9lTJ+e/hQXJH/0sV5wFb+L0H9cEscLx7Hl8fGLcUvh9UJLHIy9vYK/4hTC2+jbe4SV/JWnlFIbwp5Te0Bjw86dZ3NtDCaRZ3bt3PWHjcRgRn5zYueJDSQbkxH5zPGdx7+z5TIZbf/aiRP6uFyfGOP5vFyhUDzPLxb/jvg4c5NOWltGpCNAjpqSdXzdsnCsMxjkBQ9L5GKT0aPXmTymJSv5K5NbUJBJvfvTpgADf0+8S/3sOH8Zf2lXu9V9/Rcz2PIAewCUxBjvfAwMIWMV58di5/U+nxFv8nn1LnhNeGPva0vH5izgQrz5HM58HsRd4GysnQqy1168gF64iN0tBpqV6AgK9u6ZsyPtOdt3VLE8sfPluW9cHFfmZu+f4CVYmXl2LaszbfGz5xwNr2veCElB82JdaCNEdSNTQfb68xfQC+exu8yj9ZSO6eiVtKZ4CSw7v4Z2fA1W5RidKiQjK//HP/d/jkD3W52aN/8/JZ2+OR2aHACvPfR2oAfWg/G9ZepimprJLPg1UMZQFZhvw8NlfAazoqysgsngA4mSz+TPY9olCZNGk6akU/nizI8ysz5s7uvLWZmvhDrxpDnIJSlhWJdaapYCyRNlv83ZDw68QC6Ub//bnplxI+2pg1lUqION19LeLc49dGMbWoiDN7n9sLzZXtqvg3fazXAEKBRnvpyZ9dKDjmdlxl8qdgRlf26b3yKVIHltmvqErMwDXTBx9BhvO2vajz+2Pvts/WaBHtMLNtcf9NZ7R+AuYnaJWaRg6uew5m4xy83XaAqDVXxXA/+SECSxpl8uE4O3v4Cyj8fbRynYzz3O7iLlx9jsWD6pC8yNtCxYr1o4qHBtHy1lDZ/TbNhWvpXP9/DdXe206gssEy67T6NDwqE5pPHfrlsX21jA1FLTPVvjW+GTSaHu16gOQnZKTEw4esuhKV3e0Fy2c/9J38Y3EZ1DGSy2L2BxGopLAnTa3l2Ku4XMnzrg49+zaC9n0DC7Hvwa+Eh45TXv+26mO/D60v1n4c0jYMfGHpMo7Ah0TfJQcWfbRTVLrZalYP2fzn6bsh/Yc/IvmRoRr/xhGJqvTCoNAHVObuCrZiclLw5YVjTNQM06lJp+MyPT/vd2eSGZdPNQXvEDWsX9Rvt+wcCUdAqkiBq7iHKJt/H3S3kmz0ipdqtOqW8IKZNb3wz5rZcGP7FKDOU/ZsCPgWgi9bGS+hjcRNQ2sTnJ8ITL6y0pgAcQvsRdKZH41VqtXyUZkPhNmpO8tcUla3jcXSXFu8FGCozWiYK7rfVANYxsSNQeoQ/GVWJIDNzfK3teRXlp8u6C0t6yst5S+t11rc/alZGxKysTT95I39e+PJH1WFn6+O50XrOUx6CRMp6z/Cb0hMmQbnn3uYV54HJ24V5W8a8pr6EzjVziue7cbPAiovWrMbiKQCE0mctderk58DwNQ45vSYf7s/Rm3RsgJF6hlqwAlkoehTdXP3K1cHX81vOd5gvnB+9vqmuIokYhSyv7nsnaUVgSrJDwVmqhL5hc8SotpAAGHkrt0+aDlsLh+5t+y8z4NOOTIgi6Yhjrdk9lBV8rInYAmv+a83jjHzlZQsEnJIj4YtUnOmL/t7lvSJgIfV8FSDl8rVo34/TyQoqBydolfSpZ6a1UqRxyoUgj+OjaJvs/TJCDJ6lSjJkIXkgxejxGgamVmNwek8A40cjg7eHKebt59a2+knP3xB63ww8w6dFk6Ch+ObPqp9BwpW5GO9xp7i53xr3vyvc867AHsywz5VtBRWXhp4AdO+URIzc3mqLlvL5ot71Ebi7myQQ/nHVhoaRvU8DvfbICkrYirrVJdy+JbdFePefBXeKuSLEyElOX29CfiactKu0LS7CALZIAdwUhZY0KbwbYp77nKxN99S0KP5485c/rtalWMCpT4XORGncQy8tnvwM4GAJFNdNvs5XgrMyGz0R2KhwU/rQlCeA2kEfhyccb3k8psK84dmcv2hJwcpv75zVGMtKa+wtLYuvS9tFEVIWrwpo6L6j7t8IP38eXr2Ch785b1f3PJBUceddbhxVMkw5wCUd8MZ2Vk07qrpLyOsHGAMbJGLgkYlJnR3X/JpsggMuQ0PP+zQDsSOLiDgfO3GPvsl/eFV3uiazkLkl+6wN3gO3YNYMiSJzbx2qKOCBXn6UONNMllIOujGZqEjUfR7XFCk9LGpXxla9V6mLv3cUvNOICzpYL72QebKVglcxg2qSR16qGNIMpcxOpU8mzpSlKevTPNGDhXwb4b7ePfzNPwz3fHj6+r+2iQ19Pm/Xx5wE4HvDJOdTNvm/7HOLML3bOi4ePiItBS90lF1n9T2S0B0aBHMnkMcUoqxXGcyIrMTtVSFCXtm5Ei/h6fMHFjsno5TLWi6IIXVlxeQNhvRGte2VrGeAjHtJzvlHR1yDrAYZOQSSRx7QeimpVHaMoEY0gCPPBJNSlhqhK0SKVQTOhzmxBNECtOKKN+nb7DhgftpYvyGMrmosaoo0aB17M0g94Yg3Az0K9AAnrPUhDjYdqSe2WmkwNYLoPLcABwCpz1KtZRFUp2m5YbV5NvVfPru56y6p7ACPEwp2FKq44MD2j/iwLkROp3SEsvjogUvybDxftl5MMDXXq3ZrR9TBirxcZ40hAn2yOrhW5RWaPhng0BI2CSqH2llZHoRrlnUOa1GfQNdP5khqV0HpoKjoNzRI8Q5KKi6Dt0MpQDmfPNZUFIXuB1GaWx9FsoA4m64hnJjghEQSxb1okkyqkCEpXAy47/2M/qMdR173xJxAlRhd7OrMoa7I/o3kjP1ZeqWphra6Req4m6kF9W/80QQu2Ne1C+6j9Piob6Uf2kX/UMeoddZwD77X3y9k00nHN0tkzV+eFIcbYXVu+jq3fZ3Z8Xz9AzZzjdt6bBwnzc9QzyGZ2M8JZLnODZYo0YVAwcXOb+0h4kUSbQCIZyUdR9AlfTCyUoUqzR3z275mUYxY6LjGlWiERfRZYZp2t9hhxynlxd6woaqKGkNCfv3h5a++6LaP7L/xqU1coRg4VammklZJOMpGLqqmJOqiH5tESwjjKNjdceeCFN/54F79hRa259VuHrPesjtoRb8yLbXEzbmlSRZ0m7brk0xwt1TPardO6oo/VYz0uhUrPTHJgoIcN7OQARznDRW5wEwbdZcMT33a71XO90fe85krHXTj9nx7bc/uETRmiDHmGlmoa6WeItRzlNqRAkfll5mYyMvmZssxmuxzwiKc9700z1pUCRVmcLEXeauvpUMcbbbyJblW7L5vsX7YgW5od/PIf/+gv/ZUrN7P1ajmFKoD2PUDl+o/WlUgKdbqNxhIug1VN9Ai1B9Vmh29GjsivRrUeV+PFoSZyzY/C+mORd7V5JQyLxYJYqjbnuouB7XLlNouijuzyFJLKUoRus1MhgdXagqXVTOiTrOtEidpFjkxO2c5Yk3mc0XVFMiZCy0HVefhsqiIvsyQrGwPwdAwWiFLKkeMSuC84my99SP5P9/C2zv6wBGG5ShIEgNN9RWp4jdMybp6XnCd1f12NauVylh5uGOqAvpsL7008NUBvr9Zw/qcALlOs3+nfseuSDxpHA0yMi3CMEZTac4iR2J0QKC5iIbqaUoHAYwZDM4jhC0MVtEtg3NUe70yZNTTZngCYHCGj0NhQgzyvbqQl0qFmz3A8pIRwyZtcYCHhwM0ObdVhtj4wN7JzrTGwGszxz2jGfBixMg0cWVAhIGmIYhCRAgsiZ6qpTDKLpfaf+3BWh4TLkNSmQfAw9czGLJraeyYJ1ujZm0D1vpaJoBuJ9q1tSF9tcOVnrCl1pOpAea3UFSRJo251LtOOlNLzwlof5D7te6J4sJChut68xXWW2OS+Eru37E6kYK9EujfA4DFcldrAkx/agWbBYkZPtM9D5EpOLJV2uTqbAKbM+ABQesB9SWUO+PMnSaQkfsMFfI9Y3jtw6K2Fuy5/y2sPOEKOxBnwSaTRuAEkAzCK7AiMFvo/vLzKCCFSlv02I/0/2bsq0B893G02gX2svNgdI4uLyaJ+BQcJ1d8/cKy5x/86hY9Zs7JSC0s5n6p2HFRUXElBpMclQQpt9vI+YA1hyVUk1CSFmaG3GTmvvOFINT3UI5qfBJwARluddhrw3TNB7M5yOyZwBuByrNXaUhIpXBxwT8cXctUU4VnbXWnYFhRjODLP884iilJ5kR23M3wriYs84QmVUQBjnnAQOz3FVNHOQK2dCKJHCx2T/jMAkWPWHVtNaaydpJCSSHXEAf906lj7CyC8w+nV+gKCzvBCza1KS+1urJFFiaTXgHH0hVhVbKchDWX2hsHFdgKC/8vMpESFCBUfquOQt+FdtokTnGyoGTo2lkl1SdxKa98NDcmmUwxdTRaYVhCbwbEZ7gVfdUiEfQL+DKpQUgYMUilyoPO8jYcVtKudLQFaZmhsoGTkhseGOnNdkOikxpoLKF8c86X59BR8yp8AUzlCEu0PGtIh/Gnu8/0jnxH1yyee8qEmvAKgspd7WRkeI7UagdxyUlxGT6L8p51da+cEenqPLwuc76wi2ayxHQJ3l7eep1q/TycJ0GUKcDnfnwGcgN9OqO33frtRCvYNA4qC6fK+sC9c/2s6iT3/2MdwC2925hM1XCaPsubnJXu2V2mu61mpkHQjcp7KZEWdVAx6fckODOdg6gCXmYsoF52+AtSyIZF9E5UXQQ4vtBkpdlwUEAftM+J9XiMDL99GYHiGEw/DTm/cuiGX6l635umiSENeR1HLAu0Mm8vpYENmqEJRc7kH47w628b3HGwN2N93cBYVGFMZvto3G3hqf7GyxpRlyqq2Dvvtak1yvKjtDiNOMavLUWprsJRZ3nqYEp6QtOXhDDZzUsJieL82WDAyCavfBFm8KUgyqenRzexiKpMBl92ksBqp4l0PU574T3k/H8dj5YhSCDxxKArVJcdBNat1vkTn5uR1ZnXRLIrk3K9/fUwXTXBNjnxIKReSoto6lrb2J1asTYCANbl7M/uqhFqZ/k/DUf9YgmqCr3nWA7ssAzZkStRqMXFZvE5lsWKiF5MKXkEbh1FJYBs3a319crnIrWTKUou5NiuMTydc6YEUQq66Flktl1lx0hi5+yFe5pEmkRg/MwxIHhZGECe30Arahq3f8k7VN1xHN9rLiyO/zQC4HNEHIldyJQUPZ6RNltcKUWhAPeZphUEgP1BWMJ1wreqdOf3m8rMElST4wQIrHE4QNBdCKNaCgMBzEmWD21cz8jTddWWaUEQpNOXxRqKjvOLvtUnbVShCDHV1Th+tovqhRpAqSZpiOdf33MfUm3J6rQtpw1VNysTEiYJJh2ETvYRG4AmjoXKyBZyhujEbwsq5nhG6zqQdt3pXwNdut99itHwHmzF46in7IMa5XE67zMoAnpWI1b0x1CVPpGXtoVfr9shO6GWaKHOtToWYeKjsWZVHPMYztRRp+rvCkxgGn23SPcVsgnQNu5CYSKoxmhatmWcNHhHfMJfGCRQMGWr1fAsWCqWktVAO8ZlO5zh5rdnSJbyEmTRakj6eeGQjrqakZ3I0l1imUpT5Lss7nbokFpEMCbsIBBM5io+B+tBpiYDNoMD1RLVUreONp0LD+xLdtpePYOBoLHfkFgQfIHgQubuovtIu487l+CQeeGydpLcWD8cWsb8wVtlAx7FCAaqBzvMuW5Wt7VZhrpUZQEjJj7wuS6Bb7u0HIkJIjOMMZLVgvCDML0ICcy8fGABepkRMnGqyMFDpYgHlC/n0pvdJfEV568Hur+9Hp8BlM1rzeCMblkirRQnhM5Pu5qkTE//+3Q1zp18lsP4gVECIvYQVWDoW2OHk73D1at7nfLndg5210KI20kvbuS7pGkWE1+OE6FV6mRC1+zkfAM5Fkurv/249lbykYlkwyTGffHPAGf7iaqdDjKHX47FHWMoP8jSspMCHpl3q0VGG2RZHZyripQ2eesrYiN3A2CTGyqmBmjwaAyF9daPyyceDtsawTEaWnSq82KqHDr9P08a93Ac8abTn0HVOzboVlkLM6xBcKGAYrH/Yxui0JlFULnpsbl7DeIEJ8LAxxs5E186zPAzkntT3yoOBfcKznDJs9BB0TjCRoLg87eutwRd/fCdG6BuGXtEy1EZigJAj3dhVZTcGkniEm7XykdGPMCzJPj+rNgNccArVgsw7sC5Efe1iuv9Y//PG3tHSOZkxn9U3YP+XDwMq9MIxUEO16onkJHjc+EXpAelE0rypRN2zc4u9pi+0+5+XUWiAyky3ABrXPlQ5eQTfzSS7zEpSUkynj1UCVqkECQy1m+vzAXK4VLuoXDkU77nuIWs4Xl056Jdc07AzZIk0qYTRQ6rG3bjlB7UjgsQWgMxiAu4XlzEkXWs9J5TtNEQRwWDwVIDhqJpRqapibEubfaZNj2yzb/76E0eph+MSFrgTbNLv9PQ//B1L4i+g3pRK4COjK6EWsHG19UwqlamSV+BRacJdOwhsqg6lC/TP68JxRCsCGTbe5g8jXnwJsJMkOC0zyYM4A5tlA1FobFWpWdKma9Nt21gVYARa8NRTZaEVE9a1Z/VDA9fFQySWjrMDccfKykFwvzMKGhKUMjybo2UtCcOimkoTM4yDuCBLgoqNTqYoJ+WG8lzm5AAJpG8xfc5h04nSM1ONIGMV2N+vinp8hEmnnju2q30nP6h1kYWP93WLxSZ+sQCUSoigctPrAofh2Kxb9HnlxARHppsHgPIkJQHaFiXpNIRW/s8ZM0VBwhSemStNZZXqJ0/xkw8bu7DbXf41rr+UJEv9n3hQBG1ZaNSadQPtTSGN2wGGQTpY64fdPGMwzlIWBC8sQB5Y5C90+YfVUE4JU3zLM9JxrmcYooVsg86YHlRNviM2mfy43PX9pJj4IKeSCjuEp0VfZTeI7kfz4koymJt3uhnGmbnnh0WfAxoJi/P5M0RDgsyJffqsPiQNuy+crANH2yGBylrgEhA8TKxi1se8kPVnW0xAbZaZkeBVQwL23Gl9HDxakFd/3hTQGfSZA8zuTkOGI7D/SM1ufWMuJsGSWOWg1TZ/IEIgYogwlPYeTLafyNlxxStPtxgMkAAAdEqHUQYCsRbaQeuxUh8MpXpjBC6/Vl586oZ+iYAA9MIjHy0peFd12bT8Q7xTQXhZ6+KbOZ2+9+wHUX6M4RAhKKdx++J2B2IGbFvqFPJBvu91B2EnYH999/f3BAAr9EYbdP5KkWKr2fcke2XHLfXROlcqwzqFgreWCwjM0N88sp1SewlsSeMZphvFMC+UXB7Ti5VjTJdJ9GbGeU2ZRGnWNAYNM3prvPh07bgYGxjqdCA0NhJVxUfdDjos5qy4uSypizCtLaLoGgobURt8MYGWbYQwE52+1HIcDHb+MIyv4SRtCHduaKfj8dVwsoYjITK6+C50HzGFgusAT9LTth6vKV8kcCUjtA/Z9u6QPn+13uGM+0eFIbPmTknh/FZo935d8SRB9Od/DAEUoxBd91/fBSrOBdAc7ElQ44fsIicgdG7K9gUVA7y2kVdeXi722b8p3bHCkI7rrIiMo3Sl5SSCviLoRxVgJeN5lOELTVuI2BynboZrE5ZXch3IiSqMeyRVXVpYWFqKKuT3yGvvSQ/1GyvC9iJG20ObdZzilyTwTncuLoeAE8SIxwTlbRic+b/rB8sIl+Isl/otX7he+zpXCqWSaT5JPQyTflyftwrSlsHp9c4wAmx/tsD6SX2T4XE72yVGLy8DjTnDCkgYmuO6bATNiMXi2I9rc7ReWAhRPS7ytz3u1FyugOsy4/1vbILADONYu3bm/IDYMZDqWggsZZd50Dl3mQexWmFnbNSXkqxy4jwPC4/ATFobnulYSimJ4xqEtThOSorlmJ6XsWFMvQLleQw2JEc4Kq+KiPKMCRkKxnwaDapcqesESzFiNVepFHC8UKnkqiJDscRcOHaLJQOylVWO5kbzR+NXbYRGtXUshdnpVoZt5c/2LPaoO9u5CO7IEZVK7Q/PUR9eHhMEsQ/KhWO7CgCM42y83JsCd6NJ0frRWr2HYCNaIFo0Wr+3C9zeCIhVNhCtRjWtgiSasGoM26r90uopg0E2qmkbepyhtCy7vXuVN4BWYnxkZvjtk6QyGcohfr8/5rcrBdDS9+StvHLrXp1vCL3m3NuUTe3opRLfdXBpBCdS1Kfe3X1osozDYKtJpmf91uR6m4C00srewQxpo/Gr1sHniitfr6z+EpeX17LLbULoWvrVb33lH1ga8+78QwGgnOGlBC3TammHUGmh/PtiR2F0v0lwXLdNRgKdfewTP/pbMwlefzYLMaXMFZZCFbgqTPUZRemOYoPz55XrZgl2C85nEXNbIwLUojEEvZEyR2Y2GtSVljIGo9GdIrMNqzt6BJbwytGGtpMFbdCcwnPZcqXS87jgK8wBk3kxY5JRg5VbJ9ZNASrTmgWEYgwBgpjrepg83bX5DYnApwY1lURhlieNELk6WBs/WW4yCMG1unI0Pprkbc8wgtPKT6JFolm9ESC9+6CMpoA+Y9pozCoKHi0u58NUpWy9ysObnCR3ijW8lS/QpBQW0/PfPlCtFgstUeJopA4VTOfYi6V88Qu/3tfbCP7zFk0X0TdHE/nI3ZEBnDrnhgdHzrxel+I2VpLPeJ/saFl3dQ2PMJdXVCPnPM9et5E7lgw7pkxavlLRoTik4u4cAegYyq4WEMut3srjxe31VqOyaJwHocwCqoXAzpYOYo0qBJokBS1t0KyY11f40ZRoJFFk6pmqjYUEoaRWmnETx9ZVmUbV3iNAWw3K0ZxoUjRzFUw8Kw439dxcf6HuG5KflnVGfn2hP8xO6BUE2hm2SORx3oiP/5Io1c2HDAOvLrQitYxAUv65WM/idm7LUU0NlQMIdMQVNC8hO1+wvXZkhghmMrMwwb7SJLs6um1zBJ6jda9mJBu7Bgj82FRqMlJxw9MRdLOOtUcKtcW0eWyjK7xqW2FciPsXSD8lMCiS3D7IoYrWyBBxU0b4bGHlHpRBcX7KVd/nG/IgyAk0vFNjzvq7FveLirvFM9EwNKoAp3AfS72F9DgcCcXIt83dI1bASZnZGNwv9LitF0MjUp5lFLtWTRGnpZ7VqhGnM6qU0y9BxxAujHhGMXM9QUFxS2KVES3ojmhDYWDlx26kIjdv9yQEYynBzz7ZtuP41Hv2WniKlAVdmdJkG1EL47h6k8/ngdrfozFGjVQ/hY/nV6hePKzMNJXGsOhwaEqsTfMQFVk3L8ik1+UZ7hF0Q1Ada4HXqbJL1MfmwJQZEaFV5MHw4FFjO5shSrb2HMr9P3ahxGRi+e4kCHLaXZ6UlBfU6H79HfGQ0as/dqGmpii2E+isylkBCkbhzlqKPNMchDDbC16514+yvMqzXygqVFWSXLE7ms9axDgK4QBDxmuAMQB5zFqlAE801wFwctMmxVxPwzAYRqauf2huVlmCQI6QAD5A1jbLTLUzVLxPShdBabZ71qmE6VsnJO7WdDjXvRg/uwvwh/GLAHeaQMDRAda7oVYzcaguJnWFAJsL+F0p8ZnLO7197RDQng7u/LuWElwDnZNz96EoHPB0pxQVTkipudCtKODGnys+U1UB6iNd9aH3XBAYLNOVlwlqvUbHliimQrRAX4l1VbmtcQWVPxq45IHwT2ObuVTX9G7sMpmnPOKGEJ3m+16hZ2laKeTzQLRD3TE40+2yNq2ZXA7z3N76e1iMd8UjWkQPkmeuXW1X2MRWYPeuWhSd6uwPs2/yOEU4MYlc7GasyIE/xvFHMB6sRTD6K9qJNOxVaYO59o85XAWdaNjXbCyBKz9lN7jYkOQOG8wWmrreBXH/RO9eawgWEvOvTdmm4NHx2wd368N0eRFm9aJMoUpvLAtd3QkEquynQlI2StDlrazAWF7E5MCa3AbXZwxOzByt1jAr1RgSx0Ll3d/rxQSvasW8zzCBnzEhjpl/qmkgTtzgQTUHGTVD+SeZtp0OMOQHd04FBwjvWdA0WOT/1A99h/FZnDjaM9tzzhfsHQ8t9M9Brg07uFoWNoPr47p5/Qb31EGHr2pXQaKCKCjOqD1rneb3gXqIzY4ow/N97uHbqeefe3cPY5W38u/Su1uPVbVy9HLv9UILZ7i5vn4vSM9rNXcMVlOycQTsJOr8uIos9Ou/5RrPT4I7QfwPUtfRjs0mHNkOhljnfPxG/PyWAWD7IqimeJr4PKjuGK8iOB6DXyH/7k0JNRBxmfC81tC1+qpIjJtXWZrG95k5/9fwZj5IvtxKWtLuYuMBRZB8PV/Oz1tdCtoJAO4rt/9oz88IqqS1/tHArasNcL86qM/UtssPbVvnGwhHkzi2VDTQKymMzXQJtxF3KhWTmiBqBNtmVOq5qed6OOMG9yiDidRfXOfbk/NF4Gmp4oImTkIyp4nMORAhGW3egMLW7gQgL3CykmJMgLXA5kaRYYOuoaZQ88KAvUhK+DXmEbNK4GuwgD/hjTEnTPWtoeQ9x7OlWNvRJDANjpcEXQjGKeJKfDMwP9msrQVke4oeTa5Jo6U4Zei5ZMirVqofMxPtoXhFEPScxnUZhpSZSgj6UlRAnS7eXEd3xhTY05yFDNjQaiSNRHBlApGm76tETLN56BaskzaZ/Eqx/Vi+zRrIu8KsRJpjK4C2a8X3ZjE1LObMAUZ7D4rmp0n/qS36pKy0mFHocG8FgyyL5jkclNzXztUAvLIywZfgFThXQ/Nj14gjjTGHkPGdyv3o8AZRlLGsjqQtRiSUsgSK1dIduPVoi34z4QX2CvG1Lc6Y9Osjr/G/9PUZ+e3qF70m3vJTjj2eQDjFm9hKZi2Gdh/bZeLpXT2ac7KexnlxajgZpK/yb5b1rWCd3FlkhDaX96EYI0LAljEaiJS+xF1roqmJqpLzdlsM24WPB/x4IB+sAnjRYN2MTYpNYyCFPs133F5ENmtOmaARF4UgJOsAbMoM90FbNQcBXMjDwxSSW0Kkii/T/AbeQrB3wV/cM+3pnG9EJPJAJdUKHOZR28G73GT69JVvi5lATCMQmVmsRneSwbUBCi8RkwfepVNrDYeemyU4rYtsmc4auYmDx5xjFaoRgh85WnG3GjAtfKvY/OxHmrxR5/U1x9lm7+EVjf6cpi4neXf0QjIOAOrdebk1he4RQmvb3d0+Zm69eNd1eEnrOlISFerkXa72MBLQ5y0Hjpr95gisroghhgYmhzJa76fbAX1tubvTXzenUTg1MxCO0G8B7kbRnS5KwXXGaD0GGBl2DwQPGy+HfkvuOV9unW69wh2YRG9OAmkJpPkkB3C0xQCN5dPFf7H/q/vDvavn6UVU4D9prIana2OAJEAHFftBQaI7xpwJWt1A02EvNpu9DH9XV69HS9p6UVm+CNCVWkDuM81dIX1hLa9ncYy95G7fEUm3m0zdzxeHDCMNibiwFdq1zYRntdSFmLlAUd9lZibpssdC2apBdz1t3dBN5q8ZPQyknNLsuGqcWWYJ1OM63f55Rjs1HPPYNqVoSBnaunm+nxyM34zTqM76MV4kAsDK2I0hez4J3CMsJ92EsyonB/jF3keD3L7dwxJMwJPrO+ixDoDH0tngbVbXYbej6+DB8jqZEwxuNOYbjY/PINFuP9JzKLcZYy9EjFgP3tEydK8Jy95wGRNLdKYBahK0ro2vE4YXsqqJmae7kE7ambg27GaRV3Q+Sa9neEJ3IJMCl2UZIUpYP1JAQhq5GWiRl9XUBKBTKNnFSR422evAMW4f9hCUyUyshWuTD6Y9G7xvCELv+hLgsLmr7fr5jSeiXZKl+umc2OKiLM8hH1mphaAgtGCYPBRWaywHuJIjSWQ8VyOcQYdAwK9FNpURPelXB0ytAig5WXbEaL2BVfK10zneA5NhOUiMsMxLIRw0fA9Nb4zZ1rqHADkY6lG1jA5oDzzLhhyfMwSmadu26CUBs6o+07oBj1XBkzUzF2lpB8K4FIOquow7yqHeOf/SACZTwkecywSRxAqDvPFQfAEopKW7yRAXFuxasGeaDcXH1w+IXf13f017n6vTuREnrDSJwvizxXafBypBqE2tl6yrGHxbo0GOAOdTvMsooOWMqvVrawYnKhgWYmg3UpCQ0L0jqEQ670F7J33YwnfXQEkYRJhKq+Dd4MST7r0fczEeLQm/+ZqWBxV07Q5qz7MnVyk1w8KcfGDJM/ukUUmS3mERPVmM5GuX1o+YvxraBzyWlS+MIt8JmYK9lW2oQRi+/7t7WVlOLKYSuyzAsVQRgjpgROIttkZfKrh6SCZp0Wtqw0iCZJklqeSwTVh+9fhOoOgWYRQbgHmnR0x9WxCu47Z8l5jRgdpsUpwkEFYbrMWlgOHwgLRQoHshiTkQSOnkrZ2uAWystFCQ9sw2kxoEHdEWDIxgnGUMUDz5nhP6YXFZiJ2Un1PNztpqhaAVGwQGvkxvlVdAcIe1BMys0RCBzbBVaSAQbMnUHeRyrslq9aoEZPA0oJS+d6xAGAy4JPYSfQbb9jpBtxpb17id+rUjBQ9CPTvhnu98/6tHA8bFR+///ne+dGPEIVwS8TqTKBvsr6vpjsvTn+aHmQwZmULqbhIZRkZcpALTInqaiBb7MkIBGiE8/1Bw67veuGaj9G+zElkp8J13H9j58AL/eWzt//J2biQGkzhA4H/P0n/HoMP972s7I+sS2dqcaiYAbFxqmXoQqbaKqsUyZvg8KpI3ZOiWNrRRnoejFsyqlVCRvFVNtwnd5ZkBgjnZdsLI8qTaoe5EkFqT0pqPOtN+ZqnwSy6xVmg8NRQiG/JVJM5Yy+rSIQEPZXnUzZpxwnCrvntCRkRKG4Ohs88Xd6aEvMpYzZyTLaiVSi4XXkqhGF0UGd1KXfUjqImMKCwftJomDMpWg4R1FI1OwELpOSQkpE4vxXVD6QavVJ5MeYLXnFkGOVTSUo1c29waCFktFiFOJsRJK+d1udPOrR1tnGFMgLwiXNu01ZRpwiuAA0fRCFxTu8ejQQH1BVXp7mspZjSNwC09CS4QkDESNAxcG1NG5m11Q/CQBNXo7oVUb1yNwG1IcToExtQY17lM44wIy8WJ/4gqHnNdjT+rHCklFVazMSsCnTOju2/57PLP6GK6BiGo0ambyLJDjGMzBGPgaADTjKmtGVSSVE7ADTgGm2EExEh5hdrM+EzBkb5Tpwspi5CfLdbCuFMgdxqWufCQhSM1wMs6QnL9ZDh1mrn+YWxvglgUM4gK2d9ozBoayDVVopHdI06SlVPyrEOeZcizD9nqrZb2ui4pCUBeyQ65j8v8E5LrqNxmZj8FrzQQzVnN3GTZyMwGEZBBGCuc408zrtaaDqPj0AfcUNfw+v/BoPtY3fLkVg7SJKLnRXj/Ic0RtJf8Yup7DQPzrcXQSAZ4OYSYJUGeZTkq7iyTYGWa57MiWuOzYnatMyoJwvYRMI8RWYJAfVrboUCk9Kd4SMHxukSEWLUICesXZRHWpl0fvxbCLXgr7NYLE2lPPo826xHuaF+mLMuGRZT2GtA2L7wOHQs3bQxVttDr0ZVpCzt2KjcAn9FTu1SXGIoYEaLO9ZfRFJWZyxZrgQvLwv0iGvWIW1FuT0nJq3X9vLxUT0Y8GFFb1ixXoGXGOkbdFDqM5sp8pv6OGV1tYW0d0r18J2H2WfdrwtJOlyi2jiLL+LBGMZ3+jV4LI9bxPvPe5ToN0XFO+d+yfo8Y+81WSBEDY+f6YUOIUM4fzIibEXPLx0vgGwUqhlI4pb7oWjp6BkYmZhZWNnYOTr4gCEnDUECV6l3XquM74r+dOnppMtQLIlLw1so30glEDjpkvwPOu8CLBwOjbXjrWK110ime9trnnEmyFJFR2uGKS3Zqq9lG7X3rmg7uucrluhvydfSWAjft0skmuxVzK9LZ997pKqxTVETMAb18p49uPXr16zNgjkHzzDXfQgsctMcUoywyZIy3jnpvhZUmmmyaqaYTO0FigoXGO07qm6++U/ngo8PMTCzmydRoxDjZ1rvjrpnueeiR0858D6DTG4wms8VqszucbA6XxxcIRWKJVCZXKFVqjb6BYaLQiY1NEjIdZGUYmMqxsHFw8VTgExASQYlhJKRk5CopKKmoaWjp6BkYmZhZWNnYOTi5uLPtsVgS1HdKY+3va2nuijZN63/DnPZPbPt4/gru7F9+e7/ZckmiJzvlfmTnp+6f350N3JkIVwFTleG7rLpcmdfZHom3zhiKPsbcsf35lMav54raNSFdZCCR7uILaXEnBEy+vzVJwMSNxNbSmlwmG8LQbbCDRcabIqMRwjVKYSqemmAXn/E0BLugK4VyOroMBOKsJvZozvF0w8x+C2mPrk7+4jHalxoymZMp4Yt4+LTHZV5DdfryetTsz/IAh+KiDwtI9u452P7lMDEeN7kMDWKE0JWMDj1LePCZZHJBb5uZ36dxPEOt9OS9Tdfa9jse+CZ4RWsTP/nUC3u8BwQcQlNvG8Q3AxHA7Y3sL7Y9z2dUgyikebOzJRoOLdYSoa/0bRFmoSZiiL97ao09+sQE4I5097VIiFyDwB36u2qgw2PQIOg0TfZ3p7C+T3dyeR0RmmLHJ36XectF+DMAYLoVahBXAAA=" },
|
|
78895
|
-
"/index.html": { contentType: "text/html; charset=utf-8", gzipBase64: "H4sIAAAAAAAC/
|
|
79607
|
+
"/index.html": { contentType: "text/html; charset=utf-8", gzipBase64: "H4sIAAAAAAAC/12QsW7DMAxE93wFq7mOkC2D5aHd2rEokIyKxMRsZMkQaaf++0pxOrTT4Uji8XDtk09OlhGhlyF0m7YKBBsvRmFUdYDWFxlQLLjeZkYxapJzs1egfxfRDmjUTHgbUxYFLkXBWA5v5KU3Hmdy2NzNM1AkIRsadjag2a0YIQnYfUwj5hNiq1e/AWjZZRoFakijhuSngOVBTswp04UicHZGacslGWuKHr+bl2OWV/e5336x6lq9Iu60QPEKGYNRLEtA7hHlL67PeP7Po8P8Ph3fxq1jrqXoRyun5JcinmYgb1ROSeq/4uvRY6vXan8A1txw1GsBAAA=" }
|
|
78896
79608
|
};
|
|
78897
79609
|
}
|
|
78898
79610
|
});
|
|
@@ -79229,7 +79941,7 @@ var init_url_file = __esm({
|
|
|
79229
79941
|
|
|
79230
79942
|
// ../cli/src/ui/managed-authority.ts
|
|
79231
79943
|
import { createHash as createHash14, randomBytes as randomBytes5, randomUUID as randomUUID5 } from "node:crypto";
|
|
79232
|
-
import { readdir as
|
|
79944
|
+
import { readdir as readdir5, realpath as realpath6, stat as stat6, unlink as unlink8 } from "node:fs/promises";
|
|
79233
79945
|
import { homedir as homedir22 } from "node:os";
|
|
79234
79946
|
import path40 from "node:path";
|
|
79235
79947
|
async function captureManagedUiLaunchIdentity(authority) {
|
|
@@ -79634,7 +80346,7 @@ async function listManagedUiStatus(bundleRoot, options = {}) {
|
|
|
79634
80346
|
const home2 = options.home ?? homedir22();
|
|
79635
80347
|
const fetchImpl = options.fetch ?? fetch;
|
|
79636
80348
|
const root = await ensureUserStateRoot(home2);
|
|
79637
|
-
const names = await
|
|
80349
|
+
const names = await readdir5(root);
|
|
79638
80350
|
const statuses = [];
|
|
79639
80351
|
for (const name of names.filter((entry) => entry.startsWith(RECORD_PREFIX) && entry.endsWith(RECORD_SUFFIX)).sort()) {
|
|
79640
80352
|
const raw = await readUserStateFile(home2, path40.join(root, name), RECORD_MAX_BYTES);
|
|
@@ -81452,35 +82164,6 @@ Examples:
|
|
|
81452
82164
|
}
|
|
81453
82165
|
});
|
|
81454
82166
|
|
|
81455
|
-
// ../cli/src/meaningful-change-order.ts
|
|
81456
|
-
function meaningfulChangeOrderKey(id, frontmatter, okfVersion) {
|
|
81457
|
-
const value = meaningfulChangeTimeValue(frontmatter);
|
|
81458
|
-
return {
|
|
81459
|
-
id,
|
|
81460
|
-
timestamp: typeof value === "string" ? value : "",
|
|
81461
|
-
timestampMs: parseTimestamp(value, okfVersion ?? void 0)
|
|
81462
|
-
};
|
|
81463
|
-
}
|
|
81464
|
-
function compareByMeaningfulChange(a, b) {
|
|
81465
|
-
if (a.timestampMs !== null && b.timestampMs !== null) {
|
|
81466
|
-
if (a.timestampMs !== b.timestampMs) return b.timestampMs - a.timestampMs;
|
|
81467
|
-
} else if (a.timestampMs !== null) {
|
|
81468
|
-
return -1;
|
|
81469
|
-
} else if (b.timestampMs !== null) {
|
|
81470
|
-
return 1;
|
|
81471
|
-
}
|
|
81472
|
-
return a.id.localeCompare(b.id);
|
|
81473
|
-
}
|
|
81474
|
-
var init_meaningful_change_order = __esm({
|
|
81475
|
-
"../cli/src/meaningful-change-order.ts"() {
|
|
81476
|
-
"use strict";
|
|
81477
|
-
init_define_SUPERBEE_BUILD_IDENTITY();
|
|
81478
|
-
init_define_SUPERBEE_UPDATE_POLICY();
|
|
81479
|
-
init_src();
|
|
81480
|
-
init_meaningful_change_time();
|
|
81481
|
-
}
|
|
81482
|
-
});
|
|
81483
|
-
|
|
81484
82167
|
// ../cli/src/commands/list.ts
|
|
81485
82168
|
import { parseArgs as parseArgs18 } from "node:util";
|
|
81486
82169
|
async function list3(argv2, deps = {}) {
|
|
@@ -81731,7 +82414,7 @@ var init_list2 = __esm({
|
|
|
81731
82414
|
init_output2();
|
|
81732
82415
|
init_errors4();
|
|
81733
82416
|
init_invocation();
|
|
81734
|
-
|
|
82417
|
+
init_query_order();
|
|
81735
82418
|
init_command_text();
|
|
81736
82419
|
LIST_USAGE = `superbee list \u2014 query concepts over their frontmatter (alias: query)
|
|
81737
82420
|
|
|
@@ -84039,6 +84722,7 @@ async function recipeEvolve(argv2, stdout) {
|
|
|
84039
84722
|
throw new CliError("USAGE", loaded.error.message, { help: `${cliInvocation()} recipes` });
|
|
84040
84723
|
}
|
|
84041
84724
|
const remote = await resolveRemoteFlag(values.remote, values.dir);
|
|
84725
|
+
if (remote === void 0) await assertKindOnlyRecipe("recipe evolve", values.dir, loaded.recipe);
|
|
84042
84726
|
const bundle = await openBundle(values.dir, remote);
|
|
84043
84727
|
const target2 = values.dir !== void 0 ? commandFragment` --dir ${commandQuoted(values.dir)}` : remote !== void 0 ? commandFragment` --remote ${commandQuoted(remote)}` : commandLiteral("");
|
|
84044
84728
|
const planCommand = `${cliInvocation()} recipe evolve ${commandQuoted(ref)}${target2}`;
|
|
@@ -84094,6 +84778,7 @@ async function recipeAdd(argv2, stdout) {
|
|
|
84094
84778
|
throw new CliError("USAGE", loaded.error.message, { help: `${cliInvocation()} recipes` });
|
|
84095
84779
|
}
|
|
84096
84780
|
const remote = await resolveRemoteFlag(values.remote, values.dir);
|
|
84781
|
+
if (remote === void 0) await assertKindOnlyRecipe("recipe add", values.dir, loaded.recipe);
|
|
84097
84782
|
const bundle = await openBundle(values.dir, remote);
|
|
84098
84783
|
const result3 = await applyRecipe(bundle, loaded.recipe);
|
|
84099
84784
|
const registry2 = await loadKinds(bundle);
|
|
@@ -84140,6 +84825,7 @@ var init_recipe = __esm({
|
|
|
84140
84825
|
init_recipes();
|
|
84141
84826
|
init_recipe_evolution();
|
|
84142
84827
|
init_recipe_source();
|
|
84828
|
+
init_refusals();
|
|
84143
84829
|
init_command_text();
|
|
84144
84830
|
RECIPE_USAGE = `superbee recipe \u2014 apply a recipe to this bundle
|
|
84145
84831
|
|
|
@@ -84220,7 +84906,9 @@ async function classifyCheckout(binding, home2, store) {
|
|
|
84220
84906
|
okfVersion: await storeOkfVersion(store),
|
|
84221
84907
|
local: openLocalBundle(binding.checkout_id, { backend: store }),
|
|
84222
84908
|
projection: await readProjection(home2, binding.checkout_id, store),
|
|
84223
|
-
preview: true
|
|
84909
|
+
preview: true,
|
|
84910
|
+
// What the host said at the last sync: a preview makes no request.
|
|
84911
|
+
definitionWrites: binding.definition_writes ?? null
|
|
84224
84912
|
});
|
|
84225
84913
|
for (const id of report.pending) result3.unsent.add(id);
|
|
84226
84914
|
for (const id of report.conflicted) result3.conflicts.add(id);
|
|
@@ -119715,7 +120403,7 @@ function checkoutGuard(binding, home2, folder, options) {
|
|
|
119715
120403
|
}
|
|
119716
120404
|
const rel = pathFromConceptId(id);
|
|
119717
120405
|
const reason = heldPathReason(rel);
|
|
119718
|
-
if (reason === "convention_folder") refuse({ id, path: rel, reason, message:
|
|
120406
|
+
if (reason === "convention_folder") refuse({ id, path: rel, reason, message: heldPathMessage(rel, binding.definition_writes ?? null, "app") });
|
|
119719
120407
|
if (reason !== null) refuse({ id, path: rel, reason, message: `${rel} is a reserved OKF file, which sync does not send` });
|
|
119720
120408
|
return rel;
|
|
119721
120409
|
};
|
|
@@ -119738,7 +120426,7 @@ function checkoutGuard(binding, home2, folder, options) {
|
|
|
119738
120426
|
const rel = documentPath(id);
|
|
119739
120427
|
const bytes = Buffer.from(stringifyDoc(doc2.frontmatter, doc2.body ?? ""), "utf8");
|
|
119740
120428
|
const stored = await storedDocument(binding, home2, folder, id);
|
|
119741
|
-
const held2 = unsendable(id, rel, bytes, stored.frontmatter ? { frontmatter: stored.frontmatter } : null, { bundleId: binding.bundle_id, okfVersion: stored.okfVersion });
|
|
120429
|
+
const held2 = unsendable(id, rel, bytes, stored.frontmatter ? { frontmatter: stored.frontmatter } : null, { bundleId: binding.bundle_id, okfVersion: stored.okfVersion }, { definitionWrites: null, sender: "app" });
|
|
119742
120430
|
if (held2) refuse(held2);
|
|
119743
120431
|
const current = await folder.read(id).then((read) => read, () => null);
|
|
119744
120432
|
const expected = writeOptions?.expectedVersion;
|
|
@@ -119755,7 +120443,7 @@ function checkoutGuard(binding, home2, folder, options) {
|
|
|
119755
120443
|
case "deleteBlob": {
|
|
119756
120444
|
const key = String(args[0]);
|
|
119757
120445
|
const reason = heldPathReason(key) ?? "not_a_document";
|
|
119758
|
-
const message = reason === "convention_folder" ?
|
|
120446
|
+
const message = reason === "convention_folder" ? heldPathMessage(key, binding.definition_writes ?? null, "app") : reason === "reserved_file" ? `${key} is a reserved OKF file, which sync does not send` : `${key} is not a .md document; files other than documents do not sync`;
|
|
119759
120447
|
return refuse({ id: key, path: key, reason, message });
|
|
119760
120448
|
}
|
|
119761
120449
|
default:
|
|
@@ -124134,14 +124822,14 @@ __export(update_orientation_exports, {
|
|
|
124134
124822
|
});
|
|
124135
124823
|
import { randomBytes as randomBytes7 } from "node:crypto";
|
|
124136
124824
|
import {
|
|
124137
|
-
closeSync as
|
|
124825
|
+
closeSync as closeSync4,
|
|
124138
124826
|
constants as constants7,
|
|
124139
124827
|
fchmodSync as fchmodSync2,
|
|
124140
|
-
fstatSync as
|
|
124828
|
+
fstatSync as fstatSync5,
|
|
124141
124829
|
fsyncSync as fsyncSync2,
|
|
124142
124830
|
linkSync as linkSync3,
|
|
124143
124831
|
lstatSync as lstatSync9,
|
|
124144
|
-
openSync as
|
|
124832
|
+
openSync as openSync4,
|
|
124145
124833
|
readSync,
|
|
124146
124834
|
renameSync as renameSync7,
|
|
124147
124835
|
unlinkSync as unlinkSync3,
|
|
@@ -124313,17 +125001,17 @@ function inspectStateDirectory(home2) {
|
|
|
124313
125001
|
const flags = constants7.O_RDONLY | constants7.O_DIRECTORY | (constants7.O_NOFOLLOW ?? 0);
|
|
124314
125002
|
let descriptor;
|
|
124315
125003
|
try {
|
|
124316
|
-
descriptor =
|
|
125004
|
+
descriptor = openSync4(directory, flags);
|
|
124317
125005
|
} catch (error51) {
|
|
124318
125006
|
return errno2(error51) === "ENOENT" ? "missing" : "unsafe";
|
|
124319
125007
|
}
|
|
124320
125008
|
try {
|
|
124321
|
-
const stats =
|
|
125009
|
+
const stats = fstatSync5(descriptor);
|
|
124322
125010
|
return stats.isDirectory() && privateOwnerAndMode(home2, stats, 448) ? "safe" : "unsafe";
|
|
124323
125011
|
} catch {
|
|
124324
125012
|
return "unsafe";
|
|
124325
125013
|
} finally {
|
|
124326
|
-
|
|
125014
|
+
closeSync4(descriptor);
|
|
124327
125015
|
}
|
|
124328
125016
|
}
|
|
124329
125017
|
function readPrivateFile(home2, filePath, maxBytes) {
|
|
@@ -124337,12 +125025,12 @@ function readPrivateFile(home2, filePath, maxBytes) {
|
|
|
124337
125025
|
const flags = constants7.O_RDONLY | (constants7.O_NOFOLLOW ?? 0) | (constants7.O_NONBLOCK ?? 0);
|
|
124338
125026
|
let descriptor;
|
|
124339
125027
|
try {
|
|
124340
|
-
descriptor =
|
|
125028
|
+
descriptor = openSync4(filePath, flags);
|
|
124341
125029
|
} catch (error51) {
|
|
124342
125030
|
return errno2(error51) === "ENOENT" ? { state: "missing" } : { state: "unsafe" };
|
|
124343
125031
|
}
|
|
124344
125032
|
try {
|
|
124345
|
-
const stats =
|
|
125033
|
+
const stats = fstatSync5(descriptor);
|
|
124346
125034
|
if (!stats.isFile() || stats.dev !== before.dev || stats.ino !== before.ino || !privateOwnerAndMode(home2, stats, 384) || stats.size > maxBytes) {
|
|
124347
125035
|
return { state: "unsafe" };
|
|
124348
125036
|
}
|
|
@@ -124369,7 +125057,7 @@ function readPrivateFile(home2, filePath, maxBytes) {
|
|
|
124369
125057
|
} catch {
|
|
124370
125058
|
return { state: "unsafe" };
|
|
124371
125059
|
} finally {
|
|
124372
|
-
|
|
125060
|
+
closeSync4(descriptor);
|
|
124373
125061
|
}
|
|
124374
125062
|
}
|
|
124375
125063
|
function inspectUpdateCache(input) {
|
|
@@ -124451,7 +125139,7 @@ function writeCompleteTemp(home2, directory, baseName, content3, maxBytes) {
|
|
|
124451
125139
|
const temporary = join17(directory, `.${baseName}.${randomBytes7(16).toString("hex")}.tmp`);
|
|
124452
125140
|
let descriptor;
|
|
124453
125141
|
try {
|
|
124454
|
-
descriptor =
|
|
125142
|
+
descriptor = openSync4(
|
|
124455
125143
|
temporary,
|
|
124456
125144
|
constants7.O_WRONLY | constants7.O_CREAT | constants7.O_EXCL | (constants7.O_NOFOLLOW ?? 0),
|
|
124457
125145
|
384
|
|
@@ -124459,13 +125147,13 @@ function writeCompleteTemp(home2, directory, baseName, content3, maxBytes) {
|
|
|
124459
125147
|
writeFileSync5(descriptor, content3, "utf8");
|
|
124460
125148
|
if (currentPrivateStateHost().enforcePrivateMode) fchmodSync2(descriptor, 384);
|
|
124461
125149
|
fsyncSync2(descriptor);
|
|
124462
|
-
|
|
125150
|
+
closeSync4(descriptor);
|
|
124463
125151
|
descriptor = void 0;
|
|
124464
125152
|
return temporary;
|
|
124465
125153
|
} catch (error51) {
|
|
124466
125154
|
if (descriptor !== void 0) {
|
|
124467
125155
|
try {
|
|
124468
|
-
|
|
125156
|
+
closeSync4(descriptor);
|
|
124469
125157
|
} catch {
|
|
124470
125158
|
}
|
|
124471
125159
|
}
|
|
@@ -124872,12 +125560,20 @@ async function defaultSummarizeBundle(dir, route) {
|
|
|
124872
125560
|
return { root, unreadable: true };
|
|
124873
125561
|
}
|
|
124874
125562
|
try {
|
|
124875
|
-
const
|
|
125563
|
+
const malformed4 = [];
|
|
125564
|
+
const docs = await queryHeads2(bundle, {}, { onSkip: ({ id, reason }) => malformed4.push({ id, reason }) });
|
|
124876
125565
|
const { name, source } = await deriveBundleDisplayName(bundle);
|
|
124877
125566
|
const okfVersion = await readBundleOkfVersion2(bundle);
|
|
124878
125567
|
const facts = await bundleHomeAt(await realpath8(bundle.root).catch(() => bundle.root));
|
|
124879
125568
|
const copy = unboundCopyOf(facts).copy_of_checkout;
|
|
124880
|
-
return {
|
|
125569
|
+
return {
|
|
125570
|
+
name,
|
|
125571
|
+
nameSource: source,
|
|
125572
|
+
...summarizeDocs(docs, collapseHomeDirectory(bundle.root), { okfVersion }),
|
|
125573
|
+
home: facts.home,
|
|
125574
|
+
...copy ? { copyOfCheckout: copy } : {},
|
|
125575
|
+
...malformed4.length > 0 ? { malformed: malformed4.sort((a, b) => a.id.localeCompare(b.id)) } : {}
|
|
125576
|
+
};
|
|
124881
125577
|
} catch {
|
|
124882
125578
|
return { root: collapseHomeDirectory(bundle.root), unreadable: true };
|
|
124883
125579
|
}
|
|
@@ -125112,6 +125808,14 @@ function buildHomeView(deps, summary2, remote, binding, bindingError, board, hoo
|
|
|
125112
125808
|
}
|
|
125113
125809
|
}
|
|
125114
125810
|
bundleBlock.root = summary2.root;
|
|
125811
|
+
if (summary2.malformed && summary2.malformed.length > 0) {
|
|
125812
|
+
bundleBlock.malformed_docs = {
|
|
125813
|
+
shown: Math.min(summary2.malformed.length, MALFORMED_SHOWN),
|
|
125814
|
+
total: summary2.malformed.length,
|
|
125815
|
+
rows: summary2.malformed.slice(0, MALFORMED_SHOWN)
|
|
125816
|
+
};
|
|
125817
|
+
bundleBlock.malformed_help = `these documents' frontmatter is invalid YAML: readers skip them and sync publishes nothing until they parse \u2014 fix the lines between the --- markers (quote a value that contains ': '), then confirm with \`${deps.invocation()} status\``;
|
|
125818
|
+
}
|
|
125115
125819
|
bundleBlock.docs = summary2.docs;
|
|
125116
125820
|
bundleBlock.by_type = summary2.byType;
|
|
125117
125821
|
if (summary2.trust) bundleBlock.trust = summary2.trust;
|
|
@@ -125345,7 +126049,7 @@ async function homeCommand(argv2, deps = {}) {
|
|
|
125345
126049
|
}
|
|
125346
126050
|
await home(argv2, deps);
|
|
125347
126051
|
}
|
|
125348
|
-
var HOME_USAGE, HOME_OPTIONS, HOME_RECENT_LIMIT, HOME_WORKSPACES_BUDGET_MS, HOME_WORKSPACES_LIMIT, BOARD_CHANGES_SHOWN_LIMIT, IN_TREE_SINCE_FIELD;
|
|
126052
|
+
var HOME_USAGE, HOME_OPTIONS, MALFORMED_SHOWN, HOME_RECENT_LIMIT, HOME_WORKSPACES_BUDGET_MS, HOME_WORKSPACES_LIMIT, BOARD_CHANGES_SHOWN_LIMIT, IN_TREE_SINCE_FIELD;
|
|
125349
126053
|
var init_home = __esm({
|
|
125350
126054
|
"../cli/src/commands/home.ts"() {
|
|
125351
126055
|
"use strict";
|
|
@@ -125373,7 +126077,7 @@ var init_home = __esm({
|
|
|
125373
126077
|
init_cursor2();
|
|
125374
126078
|
init_hook();
|
|
125375
126079
|
init_skill();
|
|
125376
|
-
|
|
126080
|
+
init_query_order();
|
|
125377
126081
|
init_catalog();
|
|
125378
126082
|
init_build_identity();
|
|
125379
126083
|
init_update_orientation();
|
|
@@ -125414,6 +126118,7 @@ ASLITE_NO_UPDATE_CHECK, NO_UPDATE_NOTIFIER, or CI.
|
|
|
125414
126118
|
"no-update-check": { type: "boolean" },
|
|
125415
126119
|
help: { type: "boolean", short: "h" }
|
|
125416
126120
|
};
|
|
126121
|
+
MALFORMED_SHOWN = 5;
|
|
125417
126122
|
HOME_RECENT_LIMIT = 5;
|
|
125418
126123
|
HOME_WORKSPACES_BUDGET_MS = 500;
|
|
125419
126124
|
HOME_WORKSPACES_LIMIT = 15;
|
|
@@ -127387,7 +128092,7 @@ import {
|
|
|
127387
128092
|
link as link2,
|
|
127388
128093
|
mkdir as mkdir3,
|
|
127389
128094
|
open as open3,
|
|
127390
|
-
readdir as
|
|
128095
|
+
readdir as readdir6,
|
|
127391
128096
|
stat as stat7,
|
|
127392
128097
|
unlink as unlink9
|
|
127393
128098
|
} from "node:fs/promises";
|
|
@@ -127450,7 +128155,7 @@ async function preflightDurableRecords(root, input) {
|
|
|
127450
128155
|
let entries;
|
|
127451
128156
|
try {
|
|
127452
128157
|
await assertPrivateDirectory(authorizationDir, input);
|
|
127453
|
-
entries = await
|
|
128158
|
+
entries = await readdir6(authorizationDir, { withFileTypes: true });
|
|
127454
128159
|
} catch (error51) {
|
|
127455
128160
|
if (errno3(error51) === "ENOENT") return records;
|
|
127456
128161
|
throw error51;
|
|
@@ -127651,7 +128356,7 @@ async function assertExactStagingTopology(root, records, input) {
|
|
|
127651
128356
|
records.filter((record5) => record5.relative.startsWith(`${VIEW_AUTHORIZATION_DIR_NAME}/`)).map((record5) => record5.relative.slice(VIEW_AUTHORIZATION_DIR_NAME.length + 1))
|
|
127652
128357
|
);
|
|
127653
128358
|
if (authorizationNames.size > 0) rootAllowed.add(VIEW_AUTHORIZATION_DIR_NAME);
|
|
127654
|
-
const rootEntries = await
|
|
128359
|
+
const rootEntries = await readdir6(root, { withFileTypes: true });
|
|
127655
128360
|
if (rootEntries.some((entry) => !rootAllowed.has(entry.name))) {
|
|
127656
128361
|
throw new Error("canonical migration root contains an unexpected entry");
|
|
127657
128362
|
}
|
|
@@ -127662,7 +128367,7 @@ async function assertExactStagingTopology(root, records, input) {
|
|
|
127662
128367
|
if (authorizationNames.size > 0) {
|
|
127663
128368
|
const directory = join18(root, VIEW_AUTHORIZATION_DIR_NAME);
|
|
127664
128369
|
await assertPrivateDirectory(directory, input);
|
|
127665
|
-
const entries = await
|
|
128370
|
+
const entries = await readdir6(directory, { withFileTypes: true });
|
|
127666
128371
|
if (entries.length !== authorizationNames.size || entries.some((entry) => !entry.isFile() || entry.isSymbolicLink() || !authorizationNames.has(entry.name))) {
|
|
127667
128372
|
throw new Error("canonical View authorization staging contains an unexpected entry");
|
|
127668
128373
|
}
|
|
@@ -128609,7 +129314,7 @@ Options:
|
|
|
128609
129314
|
|
|
128610
129315
|
// ../cli/src/hosted/publish-state.ts
|
|
128611
129316
|
import { createHash as createHash20 } from "node:crypto";
|
|
128612
|
-
import { unlink as unlink10 } from "node:fs/promises";
|
|
129317
|
+
import { readdir as readdir7, unlink as unlink10 } from "node:fs/promises";
|
|
128613
129318
|
import path45 from "node:path";
|
|
128614
129319
|
function recordDir(home2) {
|
|
128615
129320
|
return path45.join(userStateDir(home2), "hosted-publish");
|
|
@@ -128639,6 +129344,23 @@ async function writePendingCreate(home2, canonical2, pending) {
|
|
|
128639
129344
|
await writeUserStateFileAtomic0600(home2, recordDir(home2), recordName2(canonical2, pendingSuffix(pending.bundle_id)), `${JSON.stringify(pending)}
|
|
128640
129345
|
`);
|
|
128641
129346
|
}
|
|
129347
|
+
async function listPendingCreates(home2) {
|
|
129348
|
+
let names;
|
|
129349
|
+
try {
|
|
129350
|
+
names = await readdir7(recordDir(home2));
|
|
129351
|
+
} catch {
|
|
129352
|
+
return [];
|
|
129353
|
+
}
|
|
129354
|
+
const records = [];
|
|
129355
|
+
for (const name of names.filter((entry) => /^[0-9a-f]{64}-[0-9a-f]{64}\.json$/.test(entry))) {
|
|
129356
|
+
try {
|
|
129357
|
+
const value = JSON.parse(await readUserStateFile(home2, path45.join(recordDir(home2), name), 1024 * 1024));
|
|
129358
|
+
if (typeof value.request_id === "string" && typeof value.bundle_id === "string" && typeof value.host === "string") records.push(value);
|
|
129359
|
+
} catch {
|
|
129360
|
+
}
|
|
129361
|
+
}
|
|
129362
|
+
return records;
|
|
129363
|
+
}
|
|
128642
129364
|
function clearPendingCreate(home2, canonical2, bundleId) {
|
|
128643
129365
|
return clearRecord(home2, canonical2, pendingSuffix(bundleId));
|
|
128644
129366
|
}
|
|
@@ -128912,7 +129634,7 @@ async function rebindToWorkspace(canonical2, bound, options, deps, mode) {
|
|
|
128912
129634
|
}
|
|
128913
129635
|
async function bindFolderInPlace(input) {
|
|
128914
129636
|
const { canonical: canonical2, target: target2, bundleId, deps, resume: resume2 } = input;
|
|
128915
|
-
const { identity, reader, listed: isListed, workspace, reference } = input.connection;
|
|
129637
|
+
const { identity, reader, listed: isListed, workspace, reference, definitionWrites } = input.connection;
|
|
128916
129638
|
const home2 = deps.auth.home;
|
|
128917
129639
|
const placedFiles = /* @__PURE__ */ new Map();
|
|
128918
129640
|
return withCheckoutLock(canonical2, async () => {
|
|
@@ -128921,7 +129643,7 @@ async function bindFolderInPlace(input) {
|
|
|
128921
129643
|
}
|
|
128922
129644
|
const identityNow = await folderIdentity(canonical2);
|
|
128923
129645
|
if (!identityNow) throw new CliError("RUNTIME", `${canonical2} disappeared while binding it`, { help: "retry the same command" });
|
|
128924
|
-
const binding = {
|
|
129646
|
+
const binding = withDefinitionWrites({
|
|
128925
129647
|
schema: 1,
|
|
128926
129648
|
checkout_id: newCheckoutId(),
|
|
128927
129649
|
path: canonical2,
|
|
@@ -128936,7 +129658,7 @@ async function bindFolderInPlace(input) {
|
|
|
128936
129658
|
created_at: new Date(deps.auth.now()).toISOString(),
|
|
128937
129659
|
state: "hydrating",
|
|
128938
129660
|
folder_identity: identityNow
|
|
128939
|
-
};
|
|
129661
|
+
}, definitionWrites);
|
|
128940
129662
|
await writeBinding(home2, binding);
|
|
128941
129663
|
let store;
|
|
128942
129664
|
try {
|
|
@@ -129061,7 +129783,7 @@ var init_checkout_adopt = __esm({
|
|
|
129061
129783
|
|
|
129062
129784
|
// ../cli/src/commands/checkout.ts
|
|
129063
129785
|
import { homedir as homedir37 } from "node:os";
|
|
129064
|
-
import { lstat as lstat9, mkdir as mkdir4, readFile as readFile5, readdir as
|
|
129786
|
+
import { lstat as lstat9, mkdir as mkdir4, readFile as readFile5, readdir as readdir8, realpath as realpath11, rmdir as rmdir3, stat as stat8, unlink as unlink11 } from "node:fs/promises";
|
|
129065
129787
|
import path47 from "node:path";
|
|
129066
129788
|
import { parseArgs as parseArgs39 } from "node:util";
|
|
129067
129789
|
function checkoutDeps(partial2) {
|
|
@@ -129081,7 +129803,7 @@ async function entryKind(target2) {
|
|
|
129081
129803
|
throw error51;
|
|
129082
129804
|
}
|
|
129083
129805
|
if (!info.isDirectory()) return "other";
|
|
129084
|
-
return (await
|
|
129806
|
+
return (await readdir8(target2)).length === 0 ? "empty-dir" : "dir";
|
|
129085
129807
|
}
|
|
129086
129808
|
function bindingView(binding) {
|
|
129087
129809
|
return {
|
|
@@ -129133,12 +129855,12 @@ function capabilityRefusal(error51, named, target2, listed2, resume2) {
|
|
|
129133
129855
|
if (error51 instanceof RemoteError && error51.code === "result_too_large") return tooLarge(reference, target2, null);
|
|
129134
129856
|
return hostedFailure(error51, target2, resume2);
|
|
129135
129857
|
}
|
|
129136
|
-
function tooLarge(named, target2, count5) {
|
|
129858
|
+
function tooLarge(named, target2, count5, limit = CHECKOUT_DOCUMENT_LIMIT) {
|
|
129137
129859
|
const reference = typeof named === "string" ? { slug: null, bundleId: named } : named;
|
|
129138
129860
|
const text4 = hostedBundleReferenceText(reference);
|
|
129139
|
-
return new CliError("FORBIDDEN", `hosted bundle '${text4}' is too large to check out (over ${
|
|
129140
|
-
details: { reason: "bundle_too_large", bundle_id: reference.bundleId, ...reference.slug !== null ? { reference: text4 } : {}, host: target2.origin, limit
|
|
129141
|
-
help: "use the Superbee app for this bundle
|
|
129861
|
+
return new CliError("FORBIDDEN", `hosted bundle '${text4}' is too large to check out (over ${limit} documents)`, {
|
|
129862
|
+
details: { reason: "bundle_too_large", bundle_id: reference.bundleId, ...reference.slug !== null ? { reference: text4 } : {}, host: target2.origin, limit, ...count5 === null ? {} : { documents: count5 } },
|
|
129863
|
+
help: "use the Superbee app for this bundle"
|
|
129142
129864
|
});
|
|
129143
129865
|
}
|
|
129144
129866
|
function lockFailure2(error51, folder) {
|
|
@@ -129251,6 +129973,19 @@ async function release(folderArg, deps, mode) {
|
|
|
129251
129973
|
)
|
|
129252
129974
|
);
|
|
129253
129975
|
}
|
|
129976
|
+
async function checkoutHost(flag, folder, typed, values, home2) {
|
|
129977
|
+
if (flag === void 0) {
|
|
129978
|
+
const real = await realpath11(folder).catch(() => null);
|
|
129979
|
+
const bound = real ? await bindingForPath(home2, real).catch(() => null) : null;
|
|
129980
|
+
if (bound) return checkoutTarget(bound);
|
|
129981
|
+
}
|
|
129982
|
+
const retry = (host) => String(
|
|
129983
|
+
commandFragment`${cliInvocation()} checkout ${commandToken(hostedBundleReferenceText(typed))} --host ${commandToken(host)} --dir ${commandToken(folder)}${values.workspace !== void 0 ? commandFragment` --workspace ${commandToken(values.workspace)}` : commandFragment``}${values.json ? commandFragment` --json` : commandFragment``}`
|
|
129984
|
+
);
|
|
129985
|
+
const chosen = await hostedWriteHost(flag, home2, retry);
|
|
129986
|
+
if (!chosen) throw new CliError("USAGE", "no hosted Superbee host: sign in first, or pass --host", { help: `${cliInvocation()} login --host <url>` });
|
|
129987
|
+
return chosen.target;
|
|
129988
|
+
}
|
|
129254
129989
|
async function checkout(argv2, partial2 = {}) {
|
|
129255
129990
|
const deps = checkoutDeps(partial2);
|
|
129256
129991
|
const { values, positionals } = parseLeafOrUsage(
|
|
@@ -129296,10 +130031,10 @@ async function checkout(argv2, partial2 = {}) {
|
|
|
129296
130031
|
throw new CliError("USAGE", `'${positionals[0]}' is not a hosted bundle id or <workspace>/<bundle-id>`, { help: `${cliInvocation()} checkout --help` });
|
|
129297
130032
|
}
|
|
129298
130033
|
const bundleId = typed.bundleId;
|
|
129299
|
-
const target2 = await requireHostedBundleHost(values.host, deps.auth.home);
|
|
129300
|
-
const prefix = syncRoutePrefix(target2);
|
|
129301
130034
|
const folder = path47.resolve(deps.cwd, values.dir ?? bundleId);
|
|
129302
130035
|
assertBundleOutsidePrivateState(folder, deps.auth.home);
|
|
130036
|
+
const target2 = await checkoutHost(values.host, folder, typed, values, deps.auth.home);
|
|
130037
|
+
const prefix = syncRoutePrefix(target2);
|
|
129303
130038
|
const resume2 = commandFragment`${cliInvocation()} checkout ${commandToken(hostedBundleReferenceText(typed))} --host ${commandToken(hostArgument(target2))} --dir ${commandToken(folder)}${values.workspace !== void 0 ? commandFragment` --workspace ${commandToken(values.workspace)}` : commandFragment``}${values.json ? commandFragment` --json` : commandFragment``}`;
|
|
129304
130039
|
const found = await entryKind(folder);
|
|
129305
130040
|
if (found === "other") {
|
|
@@ -129321,7 +130056,7 @@ async function checkout(argv2, partial2 = {}) {
|
|
|
129321
130056
|
});
|
|
129322
130057
|
}
|
|
129323
130058
|
await assertStandaloneFolder(folder);
|
|
129324
|
-
const { identity, reader, listed: listed2, workspace, reference } = await connectHostedBundle(typed, target2, values.workspace, deps, resume2);
|
|
130059
|
+
const { identity, reader, listed: listed2, workspace, reference, definitionWrites } = await connectHostedBundle(typed, target2, values.workspace, deps, resume2);
|
|
129325
130060
|
const canonical2 = await canonicalFolder(folder);
|
|
129326
130061
|
let createdFolder = false;
|
|
129327
130062
|
const placed = /* @__PURE__ */ new Map();
|
|
@@ -129348,7 +130083,7 @@ async function checkout(argv2, partial2 = {}) {
|
|
|
129348
130083
|
}
|
|
129349
130084
|
const identityNow = await folderIdentity(canonical2);
|
|
129350
130085
|
if (!identityNow) throw new CliError("RUNTIME", `${canonical2} disappeared during checkout`, { help: "retry the same command" });
|
|
129351
|
-
const binding = {
|
|
130086
|
+
const binding = withDefinitionWrites({
|
|
129352
130087
|
schema: 1,
|
|
129353
130088
|
checkout_id: newCheckoutId(),
|
|
129354
130089
|
path: canonical2,
|
|
@@ -129363,7 +130098,7 @@ async function checkout(argv2, partial2 = {}) {
|
|
|
129363
130098
|
created_at: new Date(deps.auth.now()).toISOString(),
|
|
129364
130099
|
state: "hydrating",
|
|
129365
130100
|
folder_identity: identityNow
|
|
129366
|
-
};
|
|
130101
|
+
}, definitionWrites);
|
|
129367
130102
|
await writeBinding(deps.auth.home, binding);
|
|
129368
130103
|
let store;
|
|
129369
130104
|
try {
|
|
@@ -129483,9 +130218,10 @@ async function connectHostedBundle(typed, target2, workspaceFlag, deps, resume2)
|
|
|
129483
130218
|
} catch (error51) {
|
|
129484
130219
|
throw capabilityRefusal(error51, reference, target2, listed2, resume2);
|
|
129485
130220
|
}
|
|
129486
|
-
|
|
130221
|
+
const limit = Math.min(CHECKOUT_DOCUMENT_LIMIT, capabilities.paged?.documents ?? capabilities.bound.documents);
|
|
130222
|
+
if (ids.length > limit) throw tooLarge(reference, target2, ids.length, limit);
|
|
129487
130223
|
assertProjectable(ids, bundleId, target2);
|
|
129488
|
-
return { identity, reader, listed: listed2, workspace: tenantId ?? workspace, reference, client };
|
|
130224
|
+
return { identity, reader, listed: listed2, workspace: tenantId ?? workspace, reference, client, definitionWrites: capabilities.definitionWrites };
|
|
129489
130225
|
}
|
|
129490
130226
|
function catalogLabels(bundleId) {
|
|
129491
130227
|
const base = bundleId.slice(0, 60).replace(/[._-]+$/, "");
|
|
@@ -129557,7 +130293,7 @@ var init_checkout = __esm({
|
|
|
129557
130293
|
init_marker();
|
|
129558
130294
|
init_checkout_adopt();
|
|
129559
130295
|
init_reference();
|
|
129560
|
-
CHECKOUT_DOCUMENT_LIMIT =
|
|
130296
|
+
CHECKOUT_DOCUMENT_LIMIT = 1e4;
|
|
129561
130297
|
CHECKOUT_USAGE = `superbee checkout \u2014 mirror a hosted bundle into a local folder
|
|
129562
130298
|
|
|
129563
130299
|
Usage:
|
|
@@ -129568,7 +130304,9 @@ Usage:
|
|
|
129568
130304
|
'superbee catalog list --hosted' lists the bundle ids you can check out. Signs in if needed
|
|
129569
130305
|
(AUTH_REQUIRED, exit 4, carries the one link to relay and the command to re-run), then copies the
|
|
129570
130306
|
hosted bundle into --dir (default: ./<bundle-id>), which must be new or empty. The host is --host,
|
|
129571
|
-
else
|
|
130307
|
+
else, for a folder that is already a checkout, its own host, else the host of your last sign-in
|
|
130308
|
+
when it is the only host you are signed in to (never SUPERBEE_HOST alone); signed in to more than
|
|
130309
|
+
one host, a checkout without --host is refused and names them. The receipt names the host it
|
|
129572
130310
|
bound. The folder holds plain bundle files, so every command runs on it with --dir <folder>. The
|
|
129573
130311
|
link to the host is kept in private state, keyed by the folder's path, never in the folder.
|
|
129574
130312
|
Re-running for the same folder and bundle is a no-op. A checkout whose folder was deleted, or
|
|
@@ -129612,7 +130350,7 @@ id another workspace gains is bound again in place with --adopt <folder> --host
|
|
|
129612
130350
|
<workspace>.
|
|
129613
130351
|
|
|
129614
130352
|
Options:
|
|
129615
|
-
--host <url> Hosted Superbee URL (an origin, or an agent connection URL); default: your last sign-in
|
|
130353
|
+
--host <url> Hosted Superbee URL (an origin, or an agent connection URL); default: your last sign-in, when it is the only host signed in
|
|
129616
130354
|
--dir <folder> Checkout folder (default: ./<bundle-id>)
|
|
129617
130355
|
--workspace <id> Your workspace that holds the bundle, by name or id: checked against your
|
|
129618
130356
|
memberships, recorded in the binding, and (on a host that names workspaces)
|
|
@@ -129640,7 +130378,7 @@ Examples:
|
|
|
129640
130378
|
// ../cli/src/commands/export.ts
|
|
129641
130379
|
import { randomBytes as randomBytes9 } from "node:crypto";
|
|
129642
130380
|
import { homedir as homedir38 } from "node:os";
|
|
129643
|
-
import { link as link3, lstat as lstat10, mkdir as mkdir5, open as open4, readdir as
|
|
130381
|
+
import { link as link3, lstat as lstat10, mkdir as mkdir5, open as open4, readdir as readdir9, realpath as realpath12, rename as rename2, rm as rm2, unlink as unlink12 } from "node:fs/promises";
|
|
129644
130382
|
import path48 from "node:path";
|
|
129645
130383
|
import { parseArgs as parseArgs40 } from "node:util";
|
|
129646
130384
|
function exportDeps(partial2) {
|
|
@@ -129660,7 +130398,7 @@ async function entryKind2(target2) {
|
|
|
129660
130398
|
throw error51;
|
|
129661
130399
|
}
|
|
129662
130400
|
if (!info.isDirectory()) return "other";
|
|
129663
|
-
return (await
|
|
130401
|
+
return (await readdir9(target2)).length === 0 ? "empty-dir" : "dir";
|
|
129664
130402
|
}
|
|
129665
130403
|
function shown(paths) {
|
|
129666
130404
|
return [...paths].sort().slice(0, SHOWN);
|
|
@@ -129682,42 +130420,98 @@ async function namedClient(source, deps, resume2) {
|
|
|
129682
130420
|
);
|
|
129683
130421
|
return { client: reference.slug === null ? account.client : account.client.within(reference.slug), slug: reference.slug };
|
|
129684
130422
|
}
|
|
129685
|
-
async function
|
|
129686
|
-
const { target: target2
|
|
130423
|
+
async function fetchExport(source, deps, resume2) {
|
|
130424
|
+
const { bundleId, target: target2 } = source;
|
|
129687
130425
|
const named = source.binding ? null : await namedClient(source, deps, resume2);
|
|
129688
130426
|
const client = named ? named.client : (await connectCheckout(source.binding, { resume: resume2, deadlineMs: EXPORT_DEADLINE_MS }, deps)).client;
|
|
129689
130427
|
const slug = named ? named.slug : source.binding.workspace_slug ?? null;
|
|
130428
|
+
const request2 = { client, slug, source, resume: resume2 };
|
|
130429
|
+
for (let attempt = 1; ; attempt += 1) {
|
|
130430
|
+
const chain = new ExportPageChain();
|
|
130431
|
+
let bytes = 0;
|
|
130432
|
+
let cursor;
|
|
130433
|
+
let moved = false;
|
|
130434
|
+
for (; ; ) {
|
|
130435
|
+
let page;
|
|
130436
|
+
for (let tries = 1; page === void 0; tries += 1) {
|
|
130437
|
+
const answer2 = await exportAnswer(request2, { bundleId, paged: true, ...cursor !== void 0 ? { cursor } : {} });
|
|
130438
|
+
if (answer2.refused === "invalid_input" && cursor === void 0 && attempt === 1) return verified(await readArchive(await wholeAnswer(request2), source, MAX_EXPORT_BYTES), source);
|
|
130439
|
+
if (answer2.refused === "concurrent_change") {
|
|
130440
|
+
moved = true;
|
|
130441
|
+
break;
|
|
130442
|
+
}
|
|
130443
|
+
try {
|
|
130444
|
+
if (answer2.refused !== void 0) throw await exportRefusal(request2, answer2.refused, answer2.status);
|
|
130445
|
+
page = verified(await readArchive(answer2.ok, source, MAX_EXPORT_BYTES - bytes), source, { paged: true });
|
|
130446
|
+
} catch (error51) {
|
|
130447
|
+
const again = error51 instanceof CliError && (error51.details?.reason === "export_incomplete" || answer2.refused === "backend_unavailable" && error51.code === "TRANSIENT");
|
|
130448
|
+
if (!again || tries >= 2) throw error51;
|
|
130449
|
+
await pause2(PAGE_RETRY_MS);
|
|
130450
|
+
}
|
|
130451
|
+
}
|
|
130452
|
+
if (moved) break;
|
|
130453
|
+
bytes += page.bytes;
|
|
130454
|
+
cursor = joining(source, () => chain.add(page));
|
|
130455
|
+
if (cursor === void 0) return joining(source, () => chain.joined());
|
|
130456
|
+
}
|
|
130457
|
+
if (attempt >= PAGED_EXPORT_ATTEMPTS) {
|
|
130458
|
+
throw new CliError("TRANSIENT", `'${bundleId}' kept changing on ${target2.origin} while it was exported; nothing was written`, {
|
|
130459
|
+
details: { reason: "export_source_changed", bundle_id: bundleId, host: target2.origin, retryable: true },
|
|
130460
|
+
help: "retry the same command once the bundle is not being edited"
|
|
130461
|
+
});
|
|
130462
|
+
}
|
|
130463
|
+
const base = PAGED_EXPORT_RESTART_MS[attempt - 1];
|
|
130464
|
+
await pause2(Math.round(base / 2 + Math.random() * base / 2));
|
|
130465
|
+
}
|
|
130466
|
+
}
|
|
130467
|
+
async function exportAnswer({ client, source, resume: resume2 }, input) {
|
|
129690
130468
|
let answer2;
|
|
129691
130469
|
try {
|
|
129692
|
-
answer2 = await client.carrier.stream(`${client.prefix}/export`,
|
|
130470
|
+
answer2 = await client.carrier.stream(`${client.prefix}/export`, input, client.signal);
|
|
129693
130471
|
} catch (error51) {
|
|
129694
|
-
throw hostedFailure(error51,
|
|
130472
|
+
throw hostedFailure(error51, source.target, resume2);
|
|
129695
130473
|
}
|
|
129696
|
-
if (!answer2.ok) {
|
|
129697
|
-
|
|
129698
|
-
|
|
129699
|
-
|
|
129700
|
-
|
|
129701
|
-
|
|
129702
|
-
|
|
129703
|
-
|
|
129704
|
-
|
|
129705
|
-
|
|
129706
|
-
|
|
129707
|
-
|
|
129708
|
-
|
|
129709
|
-
|
|
129710
|
-
|
|
129711
|
-
|
|
129712
|
-
|
|
129713
|
-
|
|
129714
|
-
|
|
129715
|
-
|
|
129716
|
-
}
|
|
129717
|
-
|
|
129718
|
-
|
|
130474
|
+
if (!answer2.ok) return { refused: refusalCode(answer2.body) ?? "RUNTIME", status: answer2.status };
|
|
130475
|
+
return { ok: answer2.body };
|
|
130476
|
+
}
|
|
130477
|
+
async function wholeAnswer(request2) {
|
|
130478
|
+
const answer2 = await exportAnswer(request2, { bundleId: request2.source.bundleId });
|
|
130479
|
+
if (answer2.refused !== void 0) throw await exportRefusal(request2, answer2.refused, answer2.status);
|
|
130480
|
+
return answer2.ok;
|
|
130481
|
+
}
|
|
130482
|
+
function exportTooLarge(source) {
|
|
130483
|
+
return new CliError("RUNTIME", `${source.target.origin} answered an export larger than ${MAX_EXPORT_BYTES} bytes`, {
|
|
130484
|
+
details: { reason: "export_too_large", host: source.target.origin, bundle_id: source.bundleId, retryable: false, next: "the person exports it with Export bundle in the Superbee app" },
|
|
130485
|
+
help: `${cliInvocation()} whoami --host ${commandToken(hostArgument(source.target))}`
|
|
130486
|
+
});
|
|
130487
|
+
}
|
|
130488
|
+
async function exportRefusal({ client, slug, source, resume: resume2 }, code3, status2) {
|
|
130489
|
+
const { target: target2, bundleId } = source;
|
|
130490
|
+
if (code3 === "bundle_not_found") {
|
|
130491
|
+
if (source.binding) return await bundleAbsent(source.binding, client);
|
|
130492
|
+
const text4 = hostedBundleReferenceText({ slug, bundleId });
|
|
130493
|
+
return new CliError("NOT_FOUND", `no hosted bundle '${text4}' is visible to you on ${target2.origin}`, {
|
|
130494
|
+
details: { bundle_id: bundleId, ...slug !== null ? { reference: text4 } : {}, host: target2.origin },
|
|
130495
|
+
help: hostedListCommand(target2)
|
|
130496
|
+
});
|
|
130497
|
+
}
|
|
130498
|
+
if (code3 === "result_too_large") {
|
|
130499
|
+
return new CliError("FORBIDDEN", `hosted bundle '${bundleId}' is larger than an export carries`, {
|
|
130500
|
+
details: { reason: "bundle_too_large", bundle_id: bundleId, host: target2.origin, next: "the person exports it with Export bundle in the Superbee app" },
|
|
130501
|
+
help: `${cliInvocation()} whoami --host ${commandToken(hostArgument(target2))}`
|
|
130502
|
+
});
|
|
130503
|
+
}
|
|
130504
|
+
if (code3 === "validation_failed") {
|
|
130505
|
+
return new CliError("FORBIDDEN", `hosted bundle '${bundleId}' holds a path an export cannot carry`, {
|
|
130506
|
+
details: { reason: "unexportable_path", bundle_id: bundleId, host: target2.origin, next: "the person renames the document or file in the Superbee app, then the same command is retried" },
|
|
130507
|
+
help: `${cliInvocation()} whoami --host ${commandToken(hostArgument(target2))}`
|
|
130508
|
+
});
|
|
129719
130509
|
}
|
|
129720
|
-
|
|
130510
|
+
return hostedFailure(new RemoteError(`hosted export answered ${status2}`, code3, status2), target2, resume2);
|
|
130511
|
+
}
|
|
130512
|
+
async function readArchive(body, source, budget) {
|
|
130513
|
+
const { target: target2, bundleId } = source;
|
|
130514
|
+
const reader = body.getReader();
|
|
129721
130515
|
const chunks = [];
|
|
129722
130516
|
let size = 0;
|
|
129723
130517
|
try {
|
|
@@ -129725,12 +130519,7 @@ async function fetchArchive(source, deps, resume2) {
|
|
|
129725
130519
|
const part = await reader.read();
|
|
129726
130520
|
if (part.done) break;
|
|
129727
130521
|
size += part.value.byteLength;
|
|
129728
|
-
if (size >
|
|
129729
|
-
throw new CliError("RUNTIME", `${target2.origin} answered an export larger than ${MAX_EXPORT_BYTES} bytes`, {
|
|
129730
|
-
details: { reason: "export_too_large", host: target2.origin, bundle_id: bundleId, retryable: false, next: "the person exports it with Export bundle in the Superbee app" },
|
|
129731
|
-
help: `${cliInvocation()} whoami --host ${commandToken(hostArgument(target2))}`
|
|
129732
|
-
});
|
|
129733
|
-
}
|
|
130522
|
+
if (size > budget) throw exportTooLarge(source);
|
|
129734
130523
|
chunks.push(part.value);
|
|
129735
130524
|
}
|
|
129736
130525
|
} catch (error51) {
|
|
@@ -129751,9 +130540,15 @@ async function fetchArchive(source, deps, resume2) {
|
|
|
129751
130540
|
}
|
|
129752
130541
|
return archive;
|
|
129753
130542
|
}
|
|
129754
|
-
function verified(archive, source) {
|
|
130543
|
+
function verified(archive, source, options = {}) {
|
|
130544
|
+
return refusingArchive(source, () => verifyExport(archive, source.bundleId, options));
|
|
130545
|
+
}
|
|
130546
|
+
function joining(source, join19) {
|
|
130547
|
+
return refusingArchive(source, join19);
|
|
130548
|
+
}
|
|
130549
|
+
function refusingArchive(source, verify) {
|
|
129755
130550
|
try {
|
|
129756
|
-
return
|
|
130551
|
+
return verify();
|
|
129757
130552
|
} catch (error51) {
|
|
129758
130553
|
if (!(error51 instanceof ExportArchiveError)) throw error51;
|
|
129759
130554
|
if (error51.problem === "incomplete") {
|
|
@@ -129837,7 +130632,7 @@ async function removeAbandonedStaging(target2) {
|
|
|
129837
130632
|
let removed = 0;
|
|
129838
130633
|
let names;
|
|
129839
130634
|
try {
|
|
129840
|
-
names = await
|
|
130635
|
+
names = await readdir9(path48.dirname(target2));
|
|
129841
130636
|
} catch {
|
|
129842
130637
|
return 0;
|
|
129843
130638
|
}
|
|
@@ -129878,7 +130673,7 @@ async function exportToFolder(source, toArg, git, deps, mode, resume2) {
|
|
|
129878
130673
|
const target2 = path48.join(await realpath12(path48.dirname(requested)), path48.basename(requested));
|
|
129879
130674
|
assertBundleOutsidePrivateState(target2, deps.auth.home);
|
|
129880
130675
|
await assertStandalone(target2, deps.auth.home);
|
|
129881
|
-
const exported =
|
|
130676
|
+
const exported = await fetchExport(source, deps, resume2);
|
|
129882
130677
|
const abandoned = await removeAbandonedStaging(target2);
|
|
129883
130678
|
const staging = stagingName(target2);
|
|
129884
130679
|
await mkdir5(staging);
|
|
@@ -130156,7 +130951,7 @@ superbee export --in-place. Nothing was fetched from the host; history is not in
|
|
|
130156
130951
|
const early = Number(status2.sync.unsent ?? 0) + Number(status2.sync.conflicts ?? 0) + Number(status2.sync.held_files ?? 0) + Number(status2.sync.held_deletions ?? 0);
|
|
130157
130952
|
if (early > 0 && !keepUnsent) throw unsentRefusal(early, status2.sync);
|
|
130158
130953
|
const source = { target: resolveHostedTarget(binding.audience), bundleId: binding.bundle_id, slug: binding.workspace_slug ?? null, workspace: null, binding };
|
|
130159
|
-
const exported =
|
|
130954
|
+
const exported = await fetchExport(source, deps, resume2);
|
|
130160
130955
|
const result3 = await filesystemPushRoleLocks().request(checkoutLockName(folder), { ifAvailable: true }, async (lock) => {
|
|
130161
130956
|
if (!lock) {
|
|
130162
130957
|
throw new CliError("CONFLICT", `another command holds the checkout lock for ${folder}`, { details: { reason: "checkout_busy", folder }, help: "wait for it to finish, then retry the same command" });
|
|
@@ -130281,7 +131076,7 @@ async function exportCommand(argv2, partial2 = {}) {
|
|
|
130281
131076
|
}
|
|
130282
131077
|
await exportToFolder(source, values.to, git, deps, mode, resume2);
|
|
130283
131078
|
}
|
|
130284
|
-
var EXPORT_USAGE, EXPORT_DEADLINE_MS, SHOWN, JOURNAL, JOURNAL_SCHEMA, MAX_JOURNAL_BYTES, NO_HISTORY, HOSTED_UNCHANGED, ABANDONED_AFTER_MS;
|
|
131079
|
+
var EXPORT_USAGE, EXPORT_DEADLINE_MS, SHOWN, JOURNAL, JOURNAL_SCHEMA, MAX_JOURNAL_BYTES, NO_HISTORY, HOSTED_UNCHANGED, PAGED_EXPORT_ATTEMPTS, PAGED_EXPORT_RESTART_MS, PAGE_RETRY_MS, pause2, ABANDONED_AFTER_MS;
|
|
130285
131080
|
var init_export = __esm({
|
|
130286
131081
|
"../cli/src/commands/export.ts"() {
|
|
130287
131082
|
"use strict";
|
|
@@ -130365,6 +131160,10 @@ Examples:
|
|
|
130365
131160
|
MAX_JOURNAL_BYTES = 8 * 1024 * 1024;
|
|
130366
131161
|
NO_HISTORY = "not exported: the folder holds the current revision only";
|
|
130367
131162
|
HOSTED_UNCHANGED = "unchanged: the hosted bundle still exists and was not modified";
|
|
131163
|
+
PAGED_EXPORT_ATTEMPTS = 3;
|
|
131164
|
+
PAGED_EXPORT_RESTART_MS = [500, 1500];
|
|
131165
|
+
PAGE_RETRY_MS = 1e3;
|
|
131166
|
+
pause2 = (ms) => new Promise((resolve2) => setTimeout(resolve2, ms));
|
|
130368
131167
|
ABANDONED_AFTER_MS = 60 * 60 * 1e3;
|
|
130369
131168
|
}
|
|
130370
131169
|
});
|
|
@@ -130772,20 +131571,20 @@ async function planPublish(folder, options) {
|
|
|
130772
131571
|
skipped.push({ path: entry.rel, reason: "not a plain file" });
|
|
130773
131572
|
continue;
|
|
130774
131573
|
}
|
|
130775
|
-
const
|
|
131574
|
+
const bytes = await fs15.readFile(path50.join(folder, entry.rel));
|
|
130776
131575
|
if (isReservedFile(entry.rel)) {
|
|
130777
|
-
const text4 = utf83(
|
|
131576
|
+
const text4 = utf83(bytes);
|
|
130778
131577
|
if (text4 === null) {
|
|
130779
131578
|
blockers.push({ path: entry.rel, reason: "not_utf8", message: `${entry.rel} is a reserved file that is not UTF-8 text` });
|
|
130780
131579
|
continue;
|
|
130781
131580
|
}
|
|
130782
|
-
if (
|
|
131581
|
+
if (bytes.byteLength > PUBLISH_BOUNDS.reservedBytes) {
|
|
130783
131582
|
blockers.push({ path: entry.rel, reason: "too_large", message: `${entry.rel} is over the ${PUBLISH_BOUNDS.reservedBytes / 1024} KiB a reserved file may hold` });
|
|
130784
131583
|
continue;
|
|
130785
131584
|
}
|
|
130786
131585
|
const dir = path50.posix.dirname(entry.rel);
|
|
130787
131586
|
reserved.push({ dir: dir === "." ? "" : dir, name: path50.posix.basename(entry.rel), content: text4 });
|
|
130788
|
-
if (entry.rel !== "index.md") extras[entry.rel] = digest2(
|
|
131587
|
+
if (entry.rel !== "index.md") extras[entry.rel] = digest2(bytes);
|
|
130789
131588
|
continue;
|
|
130790
131589
|
}
|
|
130791
131590
|
if (!entry.rel.endsWith(".md")) {
|
|
@@ -130795,12 +131594,12 @@ async function planPublish(folder, options) {
|
|
|
130795
131594
|
blockers.push({ path: entry.rel, reason: "unsafe_path", message: `${entry.rel} cannot be a file key (${error51.message})` });
|
|
130796
131595
|
continue;
|
|
130797
131596
|
}
|
|
130798
|
-
if (
|
|
130799
|
-
blockers.push({ path: entry.rel, reason: "too_large", message: `${entry.rel} is over the
|
|
131597
|
+
if (bytes.byteLength > STAGED_PUBLISH_BOUNDS.blobBytes) {
|
|
131598
|
+
blockers.push({ path: entry.rel, reason: "too_large", message: `${entry.rel} is over the 16 MiB a file may hold` });
|
|
130800
131599
|
continue;
|
|
130801
131600
|
}
|
|
130802
|
-
blobs2.push({ key: entry.rel, contentType: contentTypeOf(entry.rel),
|
|
130803
|
-
extras[entry.rel] = digest2(
|
|
131601
|
+
blobs2.push({ key: entry.rel, contentType: contentTypeOf(entry.rel), bytes });
|
|
131602
|
+
extras[entry.rel] = digest2(bytes);
|
|
130804
131603
|
continue;
|
|
130805
131604
|
}
|
|
130806
131605
|
const id = conceptIdFromPath(entry.rel);
|
|
@@ -130814,14 +131613,14 @@ async function planPublish(folder, options) {
|
|
|
130814
131613
|
blockers.push({ path: entry.rel, reason: "document_id_not_canonical", message: `${entry.rel} is not in its canonical spelling (a segment starts or ends with a space or an invisible format character, holds a format character other than a joiner, or is not NFC); rename it` });
|
|
130815
131614
|
continue;
|
|
130816
131615
|
}
|
|
130817
|
-
const refusal = unsendable(id, entry.rel,
|
|
131616
|
+
const refusal = unsendable(id, entry.rel, bytes, null, { bundleId: "publish", okfVersion });
|
|
130818
131617
|
if (refusal) {
|
|
130819
131618
|
blockers.push({ path: entry.rel, reason: refusal.reason, message: refusal.message });
|
|
130820
131619
|
continue;
|
|
130821
131620
|
}
|
|
130822
131621
|
let request2;
|
|
130823
131622
|
try {
|
|
130824
|
-
request2 = wholeDocumentRequest("publish", { kind: "document.write", target: id, base: null, content: utf83(
|
|
131623
|
+
request2 = wholeDocumentRequest("publish", { kind: "document.write", target: id, base: null, content: utf83(bytes) }, okfVersion);
|
|
130825
131624
|
} catch (error51) {
|
|
130826
131625
|
if (error51 instanceof WholeDocumentInputError) {
|
|
130827
131626
|
blockers.push({ path: entry.rel, reason: "not_sendable", message: error51.message });
|
|
@@ -130831,7 +131630,7 @@ async function planPublish(folder, options) {
|
|
|
130831
131630
|
}
|
|
130832
131631
|
if (request2.kind === "delete") throw new Error(`'${id}' became a delete request`);
|
|
130833
131632
|
documents.push({ id, frontmatter: request2.payload.frontmatter, body: request2.payload.body ?? "" });
|
|
130834
|
-
documentFiles.push({ id, rel: entry.rel, text: utf83(
|
|
131633
|
+
documentFiles.push({ id, rel: entry.rel, text: utf83(bytes) });
|
|
130835
131634
|
}
|
|
130836
131635
|
if (rootIndex === null) blockers.push({ path: "index.md", reason: "no_root_index", message: "a hosted bundle needs a root index.md" });
|
|
130837
131636
|
if (edition === "unsupported") {
|
|
@@ -130852,9 +131651,7 @@ async function planPublish(folder, options) {
|
|
|
130852
131651
|
claimed.set(key, file2);
|
|
130853
131652
|
}
|
|
130854
131653
|
}
|
|
130855
|
-
if (documents.length > PUBLISH_BOUNDS.documents) blockers.push({ path: ".", reason: "too_many_documents", message: `${documents.length} documents; a hosted bundle is created with at most ${PUBLISH_BOUNDS.documents}` });
|
|
130856
131654
|
if (reserved.length > PUBLISH_BOUNDS.reserved) blockers.push({ path: ".", reason: "too_many_reserved", message: `${reserved.length} reserved files; at most ${PUBLISH_BOUNDS.reserved}` });
|
|
130857
|
-
if (blobs2.length > PUBLISH_BOUNDS.blobs) blockers.push({ path: ".", reason: "too_many_files", message: `${blobs2.length} files that are not documents; at most ${PUBLISH_BOUNDS.blobs}` });
|
|
130858
131655
|
let history = [];
|
|
130859
131656
|
let historyPlan = { mode: "current-only", versions: 0, skipped: 0, note: "history starts at publish" };
|
|
130860
131657
|
if (options.history) {
|
|
@@ -130873,24 +131670,49 @@ async function planPublish(folder, options) {
|
|
|
130873
131670
|
skipped: skippedVersions,
|
|
130874
131671
|
note: "earlier Git versions are imported as labeled, unverified history (imported:git/<commit>); nothing reads them back yet"
|
|
130875
131672
|
};
|
|
130876
|
-
if (history.length > PUBLISH_BOUNDS.history || documents.length + reserved.length + blobs2.length + history.length > PUBLISH_BOUNDS.objects) {
|
|
130877
|
-
blockers.push({
|
|
130878
|
-
path: ".",
|
|
130879
|
-
reason: "too_much_history",
|
|
130880
|
-
message: `${history.length} earlier versions: one creation carries at most ${PUBLISH_BOUNDS.history} versions and ${PUBLISH_BOUNDS.objects} objects in all; publish without --with-history`
|
|
130881
|
-
});
|
|
130882
|
-
}
|
|
130883
131673
|
}
|
|
130884
131674
|
}
|
|
130885
|
-
|
|
130886
|
-
|
|
130887
|
-
|
|
130888
|
-
|
|
130889
|
-
|
|
130890
|
-
|
|
130891
|
-
|
|
131675
|
+
const draft = { documents, reserved, blobs: blobs2, history };
|
|
131676
|
+
const sendPath = publishPath(draft);
|
|
131677
|
+
if (sendPath.mode === "staged") blockers.push(...stagedBlockers(draft));
|
|
131678
|
+
return { documents, reserved, blobs: blobs2, history, path: sendPath, skipped, blockers, historyPlan, extras };
|
|
131679
|
+
}
|
|
131680
|
+
function publishPath(plan) {
|
|
131681
|
+
const bounds = PUBLISH_BOUNDS;
|
|
131682
|
+
const objects = plan.documents.length + plan.reserved.length + plan.blobs.length + plan.history.length;
|
|
131683
|
+
const why = plan.documents.length > bounds.documents ? `${plan.documents.length} documents (one request carries at most ${bounds.documents})` : plan.blobs.length > bounds.blobs ? `${plan.blobs.length} other files (one request carries at most ${bounds.blobs})` : plan.history.length > bounds.history ? `${plan.history.length} earlier versions (one request carries at most ${bounds.history})` : objects > bounds.objects ? `${objects} objects in all (one request carries at most ${bounds.objects})` : plan.blobs.some((blob) => blob.bytes.byteLength > bounds.blobBytes) ? `a file over 1 MB (${plan.blobs.find((blob) => blob.bytes.byteLength > bounds.blobBytes).key})` : null;
|
|
131684
|
+
if (why !== null) return { mode: "staged", why };
|
|
131685
|
+
const base643 = plan.blobs.reduce((sum, blob) => sum + Math.ceil(blob.bytes.byteLength / 3) * 4, 0);
|
|
131686
|
+
const bytes = base643 > bounds.requestBytes ? base643 : Buffer.byteLength(JSON.stringify(createBody(plan, WIDEST_TARGET)));
|
|
131687
|
+
if (bytes > bounds.requestBytes) return { mode: "staged", why: `${Math.ceil(bytes / 1024)} KiB as one request (one request carries at most ${bounds.requestBytes / MiB} MiB)` };
|
|
131688
|
+
return { mode: "one-shot" };
|
|
131689
|
+
}
|
|
131690
|
+
function stagedBlockers(plan) {
|
|
131691
|
+
const bounds = STAGED_PUBLISH_BOUNDS;
|
|
131692
|
+
const blockers = [];
|
|
131693
|
+
const noHistory = "publish without --with-history, or with fewer earlier versions";
|
|
131694
|
+
if (plan.documents.length > bounds.documents) blockers.push({ path: ".", reason: "too_many_documents", message: `${plan.documents.length} documents; a hosted bundle is created with at most ${bounds.documents}` });
|
|
131695
|
+
if (plan.blobs.length > bounds.blobs) blockers.push({ path: ".", reason: "too_many_files", message: `${plan.blobs.length} files that are not documents; at most ${bounds.blobs}` });
|
|
131696
|
+
if (plan.history.length > bounds.history) blockers.push({ path: ".", reason: "too_much_history", message: `${plan.history.length} earlier versions; a creation carries at most ${bounds.history}: ${noHistory}` });
|
|
131697
|
+
const content3 = stagedContent(plan);
|
|
131698
|
+
const current = distinctBytes([...content3.documents, ...content3.reserved, ...content3.blobs]);
|
|
131699
|
+
if (current > bounds.currentBytes) blockers.push({ path: ".", reason: "too_large", message: `the bundle's current files are ${Math.ceil(current / MiB)} MiB; a creation carries at most ${bounds.currentBytes / MiB} MiB` });
|
|
131700
|
+
const history = distinctBytes(content3.history);
|
|
131701
|
+
if (history > bounds.historyBytes) blockers.push({ path: ".", reason: "too_much_history", message: `the earlier versions are ${Math.ceil(history / MiB)} MiB; a creation carries at most ${bounds.historyBytes / MiB} MiB: ${noHistory}` });
|
|
131702
|
+
const parts = packParts(content3, content3.objects.keys()).length;
|
|
131703
|
+
if (parts > bounds.parts) blockers.push({ path: ".", reason: "too_many_parts", message: `the bundle needs ${parts} parts; a creation holds at most ${bounds.parts}: ${plan.history.length > 0 ? noHistory : "publish fewer files"}` });
|
|
131704
|
+
const manifest = Buffer.byteLength(JSON.stringify(manifestBody(content3, WIDEST_TARGET)));
|
|
131705
|
+
if (manifest > bounds.manifestBytes) {
|
|
131706
|
+
blockers.push({
|
|
131707
|
+
path: ".",
|
|
131708
|
+
reason: "manifest_too_large",
|
|
131709
|
+
message: `the list of everything sent is ${Math.ceil(manifest / 1024)} KiB; the host takes at most ${bounds.manifestBytes / MiB} MiB: ${plan.history.length > 0 ? noHistory : "publish fewer files"}`
|
|
131710
|
+
});
|
|
130892
131711
|
}
|
|
130893
|
-
return
|
|
131712
|
+
return blockers;
|
|
131713
|
+
}
|
|
131714
|
+
function distinctBytes(entries) {
|
|
131715
|
+
return [...new Map(entries.map((entry) => [entry.version, entry.bytes])).values()].reduce((sum, bytes) => sum + bytes, 0);
|
|
130894
131716
|
}
|
|
130895
131717
|
function createBody(plan, target2) {
|
|
130896
131718
|
return {
|
|
@@ -130899,14 +131721,89 @@ function createBody(plan, target2) {
|
|
|
130899
131721
|
name: target2.name,
|
|
130900
131722
|
documents: plan.documents,
|
|
130901
131723
|
reserved: plan.reserved,
|
|
130902
|
-
blobs: plan.blobs,
|
|
131724
|
+
blobs: plan.blobs.map((blob) => ({ key: blob.key, contentType: blob.contentType, base64: blob.bytes.toString("base64") })),
|
|
130903
131725
|
...plan.history.length > 0 ? { history: plan.history } : {}
|
|
130904
131726
|
};
|
|
130905
131727
|
}
|
|
130906
131728
|
function planDigest(body) {
|
|
130907
131729
|
return digest2(Buffer.from(JSON.stringify(body), "utf8"));
|
|
130908
131730
|
}
|
|
130909
|
-
|
|
131731
|
+
function stagedContent(plan) {
|
|
131732
|
+
const wire = (object5) => ({ ...object5, frontmatter: JSON.parse(JSON.stringify(object5.frontmatter)) });
|
|
131733
|
+
const objects = /* @__PURE__ */ new Map();
|
|
131734
|
+
const keep = (version3, object5) => {
|
|
131735
|
+
if (!objects.has(version3)) objects.set(version3, object5);
|
|
131736
|
+
};
|
|
131737
|
+
const stored = (text4) => ({ version: versionOfBytes(text4), bytes: Buffer.byteLength(text4, "utf8") });
|
|
131738
|
+
const conventions = [];
|
|
131739
|
+
const documents = plan.documents.map((sent) => {
|
|
131740
|
+
const doc2 = wire(sent);
|
|
131741
|
+
const text4 = stringifyDoc(doc2.frontmatter, doc2.body);
|
|
131742
|
+
const entry = stored(text4);
|
|
131743
|
+
keep(entry.version, { kind: "documents", value: doc2 });
|
|
131744
|
+
if (matchesFilter({ id: doc2.id, frontmatter: parseMarkdown(text4, doc2.id).frontmatter }, { prefix: CONVENTIONS_PREFIX, type: CONVENTION_TYPE })) conventions.push(doc2);
|
|
131745
|
+
return { id: doc2.id, ...entry };
|
|
131746
|
+
});
|
|
131747
|
+
const reserved = plan.reserved.map((file2) => {
|
|
131748
|
+
const entry = stored(file2.content);
|
|
131749
|
+
keep(entry.version, { kind: "reserved", value: file2 });
|
|
131750
|
+
return { dir: file2.dir, name: file2.name, ...entry };
|
|
131751
|
+
});
|
|
131752
|
+
const ordinals = /* @__PURE__ */ new Map();
|
|
131753
|
+
const history = plan.history.map((sent) => {
|
|
131754
|
+
const row3 = wire(sent);
|
|
131755
|
+
const ordinal = (ordinals.get(row3.documentId) ?? 0) + 1;
|
|
131756
|
+
ordinals.set(row3.documentId, ordinal);
|
|
131757
|
+
const entry = stored(stringifyDoc(row3.frontmatter, row3.body));
|
|
131758
|
+
keep(entry.version, { kind: "history", value: { ...row3, ordinal } });
|
|
131759
|
+
return { documentId: row3.documentId, ordinal, label: row3.label, author: row3.author, authoredAt: row3.authoredAt, ...entry };
|
|
131760
|
+
});
|
|
131761
|
+
const blobBytes = /* @__PURE__ */ new Map();
|
|
131762
|
+
const blobs2 = plan.blobs.map((blob) => {
|
|
131763
|
+
const version3 = blobVersion(blob.bytes);
|
|
131764
|
+
if (!blobBytes.has(version3)) blobBytes.set(version3, { key: blob.key, bytes: blob.bytes });
|
|
131765
|
+
return { key: blob.key, contentType: blob.contentType, version: version3, bytes: blob.bytes.byteLength };
|
|
131766
|
+
});
|
|
131767
|
+
const root = plan.reserved.find((file2) => file2.dir === "" && file2.name === "index.md")?.content ?? "";
|
|
131768
|
+
return { root, conventions, documents, reserved, blobs: blobs2, history, objects, blobBytes };
|
|
131769
|
+
}
|
|
131770
|
+
function manifestBody(content3, target2) {
|
|
131771
|
+
return {
|
|
131772
|
+
workspace: target2.workspace,
|
|
131773
|
+
bundleId: target2.bundleId,
|
|
131774
|
+
name: target2.name,
|
|
131775
|
+
root: content3.root,
|
|
131776
|
+
conventions: content3.conventions,
|
|
131777
|
+
documents: content3.documents,
|
|
131778
|
+
reserved: content3.reserved,
|
|
131779
|
+
blobs: content3.blobs,
|
|
131780
|
+
history: content3.history
|
|
131781
|
+
};
|
|
131782
|
+
}
|
|
131783
|
+
function packParts(content3, versions) {
|
|
131784
|
+
const bounds = STAGED_PUBLISH_BOUNDS;
|
|
131785
|
+
const parts = [];
|
|
131786
|
+
let part = null;
|
|
131787
|
+
let size = 0;
|
|
131788
|
+
const envelope = 512;
|
|
131789
|
+
for (const version3 of new Set(versions)) {
|
|
131790
|
+
const object5 = content3.objects.get(version3);
|
|
131791
|
+
if (!object5) continue;
|
|
131792
|
+
const bytes = Buffer.byteLength(JSON.stringify(object5.value)) + 1;
|
|
131793
|
+
if (part === null || part.versions.length >= bounds.partObjects || size + bytes > bounds.partTargetBytes) {
|
|
131794
|
+
part = { documents: [], reserved: [], history: [], versions: [] };
|
|
131795
|
+
parts.push(part);
|
|
131796
|
+
size = envelope;
|
|
131797
|
+
}
|
|
131798
|
+
if (object5.kind === "documents") part.documents.push(object5.value);
|
|
131799
|
+
else if (object5.kind === "reserved") part.reserved.push(object5.value);
|
|
131800
|
+
else part.history.push(object5.value);
|
|
131801
|
+
part.versions.push(version3);
|
|
131802
|
+
size += bytes;
|
|
131803
|
+
}
|
|
131804
|
+
return parts;
|
|
131805
|
+
}
|
|
131806
|
+
var MiB, PUBLISH_BOUNDS, STAGED_PUBLISH_BOUNDS, CONTENT_TYPES, HOSTED_KIND_WRITE, FORMAT_AT_EDGE, FORMAT_INSIDE, WIDEST_TARGET;
|
|
130910
131807
|
var init_publish_plan = __esm({
|
|
130911
131808
|
"../cli/src/hosted/publish-plan.ts"() {
|
|
130912
131809
|
"use strict";
|
|
@@ -130915,9 +131812,11 @@ var init_publish_plan = __esm({
|
|
|
130915
131812
|
init_src2();
|
|
130916
131813
|
init_src();
|
|
130917
131814
|
init_hosted_transport();
|
|
131815
|
+
init_versioning();
|
|
130918
131816
|
init_projection();
|
|
130919
131817
|
init_sync_scan();
|
|
130920
131818
|
init_src();
|
|
131819
|
+
MiB = 1024 * 1024;
|
|
130921
131820
|
PUBLISH_BOUNDS = Object.freeze({
|
|
130922
131821
|
objects: 1500,
|
|
130923
131822
|
documents: 1e3,
|
|
@@ -130926,7 +131825,22 @@ var init_publish_plan = __esm({
|
|
|
130926
131825
|
history: 1e3,
|
|
130927
131826
|
reservedBytes: 64 * 1024,
|
|
130928
131827
|
blobBytes: 1e6,
|
|
130929
|
-
requestBytes: 3 *
|
|
131828
|
+
requestBytes: 3 * MiB
|
|
131829
|
+
});
|
|
131830
|
+
STAGED_PUBLISH_BOUNDS = Object.freeze({
|
|
131831
|
+
documents: 1e4,
|
|
131832
|
+
reserved: 1e3,
|
|
131833
|
+
blobs: 1e3,
|
|
131834
|
+
history: 5e3,
|
|
131835
|
+
blobBytes: 16 * MiB,
|
|
131836
|
+
currentBytes: 64 * MiB,
|
|
131837
|
+
historyBytes: 64 * MiB,
|
|
131838
|
+
manifestBytes: 3 * MiB,
|
|
131839
|
+
/** The host's cap on one part's body; parts are packed to {@link partTargetBytes}. */
|
|
131840
|
+
partBytes: 3 * MiB,
|
|
131841
|
+
partTargetBytes: 1 * MiB,
|
|
131842
|
+
partObjects: 500,
|
|
131843
|
+
parts: 400
|
|
130930
131844
|
});
|
|
130931
131845
|
CONTENT_TYPES = {
|
|
130932
131846
|
".txt": "text/plain",
|
|
@@ -130951,6 +131865,246 @@ var init_publish_plan = __esm({
|
|
|
130951
131865
|
HOSTED_KIND_WRITE = Object.freeze({ strict: true, persistActor: true, producer: "process:superbee-hosted" });
|
|
130952
131866
|
FORMAT_AT_EDGE = new RegExp("^\\p{Cf}|\\p{Cf}$", "u");
|
|
130953
131867
|
FORMAT_INSIDE = new RegExp("(?![\\u200c\\u200d])\\p{Cf}", "u");
|
|
131868
|
+
WIDEST_TARGET = Object.freeze({ workspace: "w".repeat(64), bundleId: "b".repeat(128), name: "n".repeat(128) });
|
|
131869
|
+
}
|
|
131870
|
+
});
|
|
131871
|
+
|
|
131872
|
+
// ../cli/src/hosted/publish-staged.ts
|
|
131873
|
+
function isFinalBeforeReservation(refusal) {
|
|
131874
|
+
return !refusal.reserved && refusal.route === "bundle-create-begin" && ["bundle_exists", "document_id_collision", "document_id_not_canonical", "validation_failed", "result_too_large"].includes(refusal.code);
|
|
131875
|
+
}
|
|
131876
|
+
async function runStagedCreate(request2) {
|
|
131877
|
+
const { client, requestId: requestId2, target: target2, content: content3 } = request2;
|
|
131878
|
+
const sleep = request2.sleep ?? ((ms) => new Promise((resolve2) => setTimeout(resolve2, ms)));
|
|
131879
|
+
const progress = request2.progress ?? (() => {
|
|
131880
|
+
});
|
|
131881
|
+
const route = (name) => `${client.prefix}/${name}`;
|
|
131882
|
+
let reserved = false;
|
|
131883
|
+
let planHash = "";
|
|
131884
|
+
let requests = 0;
|
|
131885
|
+
let bytesSent = 0;
|
|
131886
|
+
const objects = content3.objects.size + content3.blobBytes.size;
|
|
131887
|
+
const contentBytes = [...content3.objects.values()].reduce((sum, object5) => sum + Buffer.byteLength(JSON.stringify(object5.value)), 0) + [...content3.blobBytes.values()].reduce((sum, blob) => sum + blob.bytes.byteLength, 0);
|
|
131888
|
+
const maximumRequests = REQUEST_ALLOWANCE + REQUESTS_PER_OBJECT * objects;
|
|
131889
|
+
const maximumBytes = BYTES_ALLOWANCE + BYTES_PER_CONTENT_BYTE * contentBytes;
|
|
131890
|
+
const unknownOutcome = (why) => new CliError("TRANSIENT", `${why}; the bundle may be partly created`, {
|
|
131891
|
+
details: { reason: "write_outcome_unknown", bundle_id: target2.bundleId, workspace: target2.workspace, host: client.target.origin, request_id: requestId2, retryable: true },
|
|
131892
|
+
help: `re-run the same command; it resumes the same creation, sending only what the host is missing: ${request2.resume}`
|
|
131893
|
+
});
|
|
131894
|
+
async function send(name, body, headers) {
|
|
131895
|
+
for (let attempt = 0; ; attempt++) {
|
|
131896
|
+
requests += 1;
|
|
131897
|
+
bytesSent += body instanceof Uint8Array ? body.byteLength : 0;
|
|
131898
|
+
if (requests > maximumRequests || bytesSent > maximumBytes) {
|
|
131899
|
+
throw unknownOutcome(`${client.target.origin} did not finish the creation within ${maximumRequests} requests and ${Math.ceil(maximumBytes / (1024 * 1024))} MiB sent`);
|
|
131900
|
+
}
|
|
131901
|
+
let answer2;
|
|
131902
|
+
try {
|
|
131903
|
+
if (body instanceof Uint8Array) {
|
|
131904
|
+
if (!client.carrier.bytes) throw new CliError("RUNTIME", "this client cannot send a file's raw bytes");
|
|
131905
|
+
answer2 = await client.carrier.bytes(route(name), body, client.signal, { maximum: ANSWER_BYTES, writeRequest: requestId2, ...headers ? { headers } : {} });
|
|
131906
|
+
} else {
|
|
131907
|
+
answer2 = await client.carrier.json(route(name), body, client.signal, { maximum: ANSWER_BYTES, writeRequest: requestId2 });
|
|
131908
|
+
}
|
|
131909
|
+
} catch (error51) {
|
|
131910
|
+
if (error51 instanceof HostedCarrierError && error51.code === "unavailable") throw unknownOutcome(`the answer from ${client.target.origin} to ${name} did not arrive`);
|
|
131911
|
+
throw hostedFailure(error51, client.target, request2.resume);
|
|
131912
|
+
}
|
|
131913
|
+
if (answer2.status !== 503) return answer2;
|
|
131914
|
+
const delay3 = RETRY_DELAYS_MS[attempt];
|
|
131915
|
+
if (delay3 === void 0) throw unknownOutcome(`${client.target.origin} kept answering ${name} 503`);
|
|
131916
|
+
await sleep(delay3);
|
|
131917
|
+
}
|
|
131918
|
+
}
|
|
131919
|
+
function read(name, answer2) {
|
|
131920
|
+
const envelope = answer2.body ?? {};
|
|
131921
|
+
const code3 = typeof envelope.error?.code === "string" ? envelope.error.code : null;
|
|
131922
|
+
const message = typeof envelope.error?.message === "string" ? envelope.error.message : "";
|
|
131923
|
+
if (answer2.status === 200 && envelope.ok === true && typeof envelope.data === "object" && envelope.data !== null) return envelope.data;
|
|
131924
|
+
if (answer2.status === 200 && envelope.ok === false && code3 === "staged_manifest_missing") return "no_manifest";
|
|
131925
|
+
if (answer2.status === 200 && envelope.ok === false && code3 === "request_conflict" && envelope.error?.retryable === true) return "busy";
|
|
131926
|
+
if (answer2.status === 200 && envelope.ok === false && code3 === "validation_failed" && VERSION_MISMATCH.test(message)) {
|
|
131927
|
+
throw new CliError("RUNTIME", `${client.target.origin} stores an object differently from this CLI (client/host contract mismatch)`, {
|
|
131928
|
+
details: { reason: "staged_mismatch", route: name, host_message: message, host: client.target.origin, request_id: requestId2, retryable: false },
|
|
131929
|
+
help: `upgrade Superbee (npm install -g superbee), then re-run the same command, which resumes this creation: ${request2.resume}`
|
|
131930
|
+
});
|
|
131931
|
+
}
|
|
131932
|
+
if (answer2.status === 200 && envelope.ok === false && code3 !== null) throw new StagedRefusal(code3, message, reserved, name);
|
|
131933
|
+
if (answer2.status === 429 && code3 === "bundle_create_limit") throw new StagedRefusal(code3, message, reserved, name);
|
|
131934
|
+
if (answer2.status === 400 && !reserved) throw new StagedRefusal(code3 ?? "invalid_input", message || `the host refused ${name} as malformed`, false, name);
|
|
131935
|
+
throw hostedFailure(new RemoteError(`hosted ${name} answered ${answer2.status}`, code3 ?? "RUNTIME", answer2.status), client.target, request2.resume);
|
|
131936
|
+
}
|
|
131937
|
+
async function status2(name, data) {
|
|
131938
|
+
const missing2 = data.missing;
|
|
131939
|
+
const staged = data.staged;
|
|
131940
|
+
if (data.state !== "staging" && data.state !== "importing" && data.state !== "created" || typeof data.planHash !== "string" || !VERSION.test(data.planHash) || !isStringList(missing2?.versions) || !isStringList(missing2?.blobs) || typeof staged?.versions !== "number" || typeof staged.blobVersions !== "number") {
|
|
131941
|
+
throw hostedFailure(new MalformedAnswer(`not a staged creation's status`, route(name)), client.target, request2.resume);
|
|
131942
|
+
}
|
|
131943
|
+
const answer2 = data;
|
|
131944
|
+
planHash = answer2.planHash;
|
|
131945
|
+
if (answer2.state !== "staging" && !reserved) {
|
|
131946
|
+
reserved = true;
|
|
131947
|
+
await request2.onReserved?.();
|
|
131948
|
+
}
|
|
131949
|
+
return answer2;
|
|
131950
|
+
}
|
|
131951
|
+
const manifest = manifestBody(content3, target2);
|
|
131952
|
+
async function begin() {
|
|
131953
|
+
let data = read("bundle-create-begin", await send("bundle-create-begin", manifest));
|
|
131954
|
+
for (let retry = 0; data === "busy"; retry++) {
|
|
131955
|
+
if (retry >= CONFLICT_RETRIES) {
|
|
131956
|
+
throw new CliError("TRANSIENT", `an earlier commit of this creation may still be running on ${client.target.origin}`, {
|
|
131957
|
+
details: { reason: "commit_running", bundle_id: target2.bundleId, workspace: target2.workspace, host: client.target.origin, request_id: requestId2, retryable: true },
|
|
131958
|
+
help: `re-run the same command in a minute: ${request2.resume}`
|
|
131959
|
+
});
|
|
131960
|
+
}
|
|
131961
|
+
progress({ phase: "wait", seconds: CONFLICT_RETRY_MS / 1e3, reason: "an earlier commit of this creation may still be running" });
|
|
131962
|
+
await sleep(CONFLICT_RETRY_MS);
|
|
131963
|
+
data = read("bundle-create-begin", await send("bundle-create-begin", manifest));
|
|
131964
|
+
}
|
|
131965
|
+
if (data === "no_manifest") throw hostedFailure(new MalformedAnswer("begin answered that no manifest is staged", route("bundle-create-begin")), client.target, request2.resume);
|
|
131966
|
+
const answer2 = await status2("bundle-create-begin", data);
|
|
131967
|
+
progress({ phase: "begin", state: answer2.state, versions: content3.objects.size, staged: answer2.staged.versions, blobs: content3.blobBytes.size, stagedBlobs: answer2.staged.blobVersions });
|
|
131968
|
+
return answer2;
|
|
131969
|
+
}
|
|
131970
|
+
async function fill(from) {
|
|
131971
|
+
const unknown3 = [...from.missing.versions.filter((v2) => !content3.objects.has(v2)), ...from.missing.blobs.filter((v2) => !content3.blobBytes.has(v2))];
|
|
131972
|
+
if (unknown3.length > 0) {
|
|
131973
|
+
throw new CliError("RUNTIME", `${client.target.origin} asks for ${unknown3.length} object(s) this folder does not hold (client/host contract mismatch)`, {
|
|
131974
|
+
details: { reason: "staged_mismatch", versions: unknown3.slice(0, 5), host: client.target.origin, request_id: requestId2, retryable: false },
|
|
131975
|
+
help: "upgrade Superbee (npm install -g superbee), then re-run the same command"
|
|
131976
|
+
});
|
|
131977
|
+
}
|
|
131978
|
+
const blobs2 = from.missing.blobs;
|
|
131979
|
+
let next = 0;
|
|
131980
|
+
let gone = false;
|
|
131981
|
+
const upload = async () => {
|
|
131982
|
+
try {
|
|
131983
|
+
await uploadEach();
|
|
131984
|
+
} catch (error51) {
|
|
131985
|
+
gone = true;
|
|
131986
|
+
throw error51;
|
|
131987
|
+
}
|
|
131988
|
+
};
|
|
131989
|
+
const uploadEach = async () => {
|
|
131990
|
+
for (let at = next++; at < blobs2.length && !gone; at = next++) {
|
|
131991
|
+
const version3 = blobs2[at];
|
|
131992
|
+
const blob = content3.blobBytes.get(version3);
|
|
131993
|
+
const data = read(
|
|
131994
|
+
"bundle-create-blob",
|
|
131995
|
+
await send("bundle-create-blob", blob.bytes, {
|
|
131996
|
+
"X-Superbee-Workspace": target2.workspace,
|
|
131997
|
+
"X-Superbee-Bundle": target2.bundleId,
|
|
131998
|
+
"X-Superbee-Blob-Version": version3,
|
|
131999
|
+
"X-Superbee-Plan-Hash": planHash
|
|
132000
|
+
})
|
|
132001
|
+
);
|
|
132002
|
+
if (data === "no_manifest" || data === "busy") {
|
|
132003
|
+
gone = true;
|
|
132004
|
+
return;
|
|
132005
|
+
}
|
|
132006
|
+
progress({ phase: "blob", blob: at + 1, blobs: blobs2.length, key: blob.key, bytes: blob.bytes.byteLength });
|
|
132007
|
+
}
|
|
132008
|
+
};
|
|
132009
|
+
let failure3 = null;
|
|
132010
|
+
const settled = await Promise.allSettled(Array.from({ length: Math.min(BLOBS_IN_FLIGHT, blobs2.length) }, upload));
|
|
132011
|
+
for (const result3 of settled) if (result3.status === "rejected" && failure3 === null) failure3 = result3.reason;
|
|
132012
|
+
if (failure3 !== null) throw failure3;
|
|
132013
|
+
if (gone) return "no_manifest";
|
|
132014
|
+
const parts = packParts(content3, from.missing.versions);
|
|
132015
|
+
let last = null;
|
|
132016
|
+
for (const [index2, part] of parts.entries()) {
|
|
132017
|
+
const data = read(
|
|
132018
|
+
"bundle-create-stage",
|
|
132019
|
+
await send("bundle-create-stage", { workspace: target2.workspace, bundleId: target2.bundleId, planHash, documents: part.documents, reserved: part.reserved, history: part.history })
|
|
132020
|
+
);
|
|
132021
|
+
if (data === "no_manifest" || data === "busy") return "no_manifest";
|
|
132022
|
+
last = await status2("bundle-create-stage", data);
|
|
132023
|
+
progress({ phase: "stage", part: index2 + 1, parts: parts.length, objects: part.versions.length });
|
|
132024
|
+
}
|
|
132025
|
+
return blobs2.length > 0 ? null : last;
|
|
132026
|
+
}
|
|
132027
|
+
const outstanding = (s) => s.missing.versions.length + s.missing.blobs.length;
|
|
132028
|
+
const missingKey = (s) => `${outstanding(s)}:${s.missing.versions[0] ?? ""}:${s.missing.blobs[0] ?? ""}`;
|
|
132029
|
+
let current = await begin();
|
|
132030
|
+
let lastFilled = null;
|
|
132031
|
+
let stalls = 0;
|
|
132032
|
+
let commits = 0;
|
|
132033
|
+
for (; ; ) {
|
|
132034
|
+
if (current !== null && current.state !== "created" && outstanding(current) > 0) {
|
|
132035
|
+
const key = missingKey(current);
|
|
132036
|
+
stalls = key === lastFilled ? stalls + 1 : 0;
|
|
132037
|
+
if (stalls >= MAXIMUM_STALLS) {
|
|
132038
|
+
throw new CliError("RUNTIME", `${client.target.origin} keeps naming the same objects as missing after they were sent ${MAXIMUM_STALLS} times`, {
|
|
132039
|
+
details: { reason: "staged_stall", missing: { versions: current.missing.versions.slice(0, 5), blobs: current.missing.blobs.slice(0, 5) }, host: client.target.origin, request_id: requestId2, retryable: true },
|
|
132040
|
+
help: `re-run the same command later; it resumes this creation: ${request2.resume}`
|
|
132041
|
+
});
|
|
132042
|
+
}
|
|
132043
|
+
lastFilled = key;
|
|
132044
|
+
const after = await fill(current);
|
|
132045
|
+
if (after === "no_manifest") {
|
|
132046
|
+
current = await begin();
|
|
132047
|
+
continue;
|
|
132048
|
+
}
|
|
132049
|
+
if (after !== null && outstanding(after) > 0) {
|
|
132050
|
+
current = after;
|
|
132051
|
+
continue;
|
|
132052
|
+
}
|
|
132053
|
+
}
|
|
132054
|
+
commits += 1;
|
|
132055
|
+
const answer2 = await send("bundle-create-commit", { workspace: target2.workspace, bundleId: target2.bundleId, planHash });
|
|
132056
|
+
const data = read("bundle-create-commit", answer2);
|
|
132057
|
+
if (data === "no_manifest" || data === "busy") {
|
|
132058
|
+
current = await begin();
|
|
132059
|
+
continue;
|
|
132060
|
+
}
|
|
132061
|
+
if (typeof data.state !== "string") {
|
|
132062
|
+
return data;
|
|
132063
|
+
}
|
|
132064
|
+
current = await status2("bundle-create-commit", data);
|
|
132065
|
+
progress({ phase: "commit", call: commits, state: current.state, ...current.written ? { written: current.written } : {} });
|
|
132066
|
+
}
|
|
132067
|
+
}
|
|
132068
|
+
var STAGED_CREATE_ROUTES, ANSWER_BYTES, BLOBS_IN_FLIGHT, RETRY_DELAYS_MS, REQUEST_ALLOWANCE, REQUESTS_PER_OBJECT, BYTES_PER_CONTENT_BYTE, BYTES_ALLOWANCE, MAXIMUM_STALLS, CONFLICT_RETRY_MS, CONFLICT_RETRIES, StagedRefusal, VERSION_MISMATCH, VERSION, isStringList;
|
|
132069
|
+
var init_publish_staged = __esm({
|
|
132070
|
+
"../cli/src/hosted/publish-staged.ts"() {
|
|
132071
|
+
"use strict";
|
|
132072
|
+
init_define_SUPERBEE_BUILD_IDENTITY();
|
|
132073
|
+
init_define_SUPERBEE_UPDATE_POLICY();
|
|
132074
|
+
init_src();
|
|
132075
|
+
init_hosted_transport();
|
|
132076
|
+
init_errors4();
|
|
132077
|
+
init_client();
|
|
132078
|
+
init_publish_plan();
|
|
132079
|
+
STAGED_CREATE_ROUTES = Object.freeze(["bundle-create-begin", "bundle-create-stage", "bundle-create-blob", "bundle-create-commit"]);
|
|
132080
|
+
ANSWER_BYTES = 256 * 1024;
|
|
132081
|
+
BLOBS_IN_FLIGHT = 2;
|
|
132082
|
+
RETRY_DELAYS_MS = Object.freeze([500, 1e3, 2e3, 4e3]);
|
|
132083
|
+
REQUEST_ALLOWANCE = 2e3;
|
|
132084
|
+
REQUESTS_PER_OBJECT = 4;
|
|
132085
|
+
BYTES_PER_CONTENT_BYTE = 3;
|
|
132086
|
+
BYTES_ALLOWANCE = 64 * 1024 * 1024;
|
|
132087
|
+
MAXIMUM_STALLS = 3;
|
|
132088
|
+
CONFLICT_RETRY_MS = 6e4;
|
|
132089
|
+
CONFLICT_RETRIES = 5;
|
|
132090
|
+
StagedRefusal = class extends Error {
|
|
132091
|
+
code;
|
|
132092
|
+
hostMessage;
|
|
132093
|
+
/** True when the creation was reserved: the request id must be kept to finish it. */
|
|
132094
|
+
reserved;
|
|
132095
|
+
/** The route that answered it. */
|
|
132096
|
+
route;
|
|
132097
|
+
constructor(code3, hostMessage, reserved, route) {
|
|
132098
|
+
super(`${code3}: ${hostMessage}`);
|
|
132099
|
+
this.code = code3;
|
|
132100
|
+
this.hostMessage = hostMessage;
|
|
132101
|
+
this.reserved = reserved;
|
|
132102
|
+
this.route = route;
|
|
132103
|
+
}
|
|
132104
|
+
};
|
|
132105
|
+
VERSION_MISMATCH = /version or size is not the manifest's/i;
|
|
132106
|
+
VERSION = /^sha256:[0-9a-f]{64}$/;
|
|
132107
|
+
isStringList = (value) => Array.isArray(value) && value.every((item) => typeof item === "string");
|
|
130954
132108
|
}
|
|
130955
132109
|
});
|
|
130956
132110
|
|
|
@@ -130963,6 +132117,8 @@ import { parseArgs as parseArgs42 } from "node:util";
|
|
|
130963
132117
|
function publishDeps(partial2) {
|
|
130964
132118
|
return {
|
|
130965
132119
|
stdout: partial2.stdout ?? ((text4) => void process.stdout.write(text4)),
|
|
132120
|
+
stderr: partial2.stderr ?? ((text4) => void process.stderr.write(text4)),
|
|
132121
|
+
...partial2.sleep ? { sleep: partial2.sleep } : {},
|
|
130966
132122
|
auth: partial2.auth ?? defaultHostedAuthDeps(homedir40()),
|
|
130967
132123
|
cwd: partial2.cwd ?? process.cwd(),
|
|
130968
132124
|
...partial2.fetch ? { fetch: partial2.fetch } : {}
|
|
@@ -131058,6 +132214,7 @@ function summary(plan) {
|
|
|
131058
132214
|
documents: plan.documents.length,
|
|
131059
132215
|
reserved_files: plan.reserved.length,
|
|
131060
132216
|
other_files: plan.blobs.length,
|
|
132217
|
+
sent: plan.path.mode === "one-shot" ? "one request" : `staged: ${plan.path.why}; a list of everything, parts of about 1 MiB, each file, then commits until created (resumable)`,
|
|
131061
132218
|
history: { mode: plan.historyPlan.mode, versions: plan.historyPlan.versions, ...plan.historyPlan.skipped > 0 ? { skipped: plan.historyPlan.skipped } : {}, note: plan.historyPlan.note }
|
|
131062
132219
|
};
|
|
131063
132220
|
}
|
|
@@ -131069,11 +132226,17 @@ function createRefusal(code3, message, context) {
|
|
|
131069
132226
|
case "workspace_not_found":
|
|
131070
132227
|
return new CliError("NOT_FOUND", `'${context.workspace}' is not one of your workspaces on ${context.target.origin}`, { details, help: `${cliInvocation()} whoami --host ${commandToken(bindingHostArgument(context.target))}` });
|
|
131071
132228
|
case "bundle_create_unavailable":
|
|
131072
|
-
case "bundle_create_limit":
|
|
131073
|
-
|
|
131074
|
-
|
|
131075
|
-
|
|
131076
|
-
|
|
132229
|
+
case "bundle_create_limit": {
|
|
132230
|
+
const open5 = code3 === "bundle_create_limit" && /staged creations open/i.test(message);
|
|
132231
|
+
return new CliError(
|
|
132232
|
+
"FORBIDDEN",
|
|
132233
|
+
open5 ? `you have too many unfinished large publishes open in ${context.workspace}` : code3 === "bundle_create_limit" ? `your bundle creation limit in ${context.workspace} is used up` : `${context.workspace} does not offer bundle creation to this client`,
|
|
132234
|
+
{
|
|
132235
|
+
details: open5 && context.openCreations ? { ...details, open: context.openCreations.map((record5) => ({ bundle_id: record5.bundle_id, ...record5.folder ? { folder: record5.folder } : {} })) } : details,
|
|
132236
|
+
help: open5 ? `finish one by re-running its publish${context.openCreations && context.openCreations.length > 0 ? ` (unfinished from here: ${context.openCreations.map((record5) => `'${record5.bundle_id}'${record5.folder ? ` from ${record5.folder}` : ""}`).join(", ")})` : ""}, or wait for one to expire 7 days after it began` : "ask a workspace admin in the Superbee app"
|
|
132237
|
+
}
|
|
132238
|
+
);
|
|
132239
|
+
}
|
|
131077
132240
|
case "request_conflict":
|
|
131078
132241
|
return new CliError("CONFLICT", `an unfinished publish of '${context.bundleId}' from this folder carried other contents, and the host holds the id for it`, {
|
|
131079
132242
|
details,
|
|
@@ -131083,6 +132246,109 @@ function createRefusal(code3, message, context) {
|
|
|
131083
132246
|
return new CliError("USAGE", `${context.target.origin} refused the bundle (${code3}): ${message}`, { details, help: "fix the files it names, then preview again" });
|
|
131084
132247
|
}
|
|
131085
132248
|
}
|
|
132249
|
+
function targetLine(chosen, bundleId, json2) {
|
|
132250
|
+
if (json2) return `${JSON.stringify({ event: "publish.target", host: chosen.target.origin, host_from: chosen.source, bundle_id: bundleId })}
|
|
132251
|
+
`;
|
|
132252
|
+
return `publish: creating '${bundleId}' on ${chosen.target.origin} (host from ${hostSourceText(chosen.source)})
|
|
132253
|
+
`;
|
|
132254
|
+
}
|
|
132255
|
+
function progressLine(event, json2) {
|
|
132256
|
+
if (json2) return `${JSON.stringify({ event: "publish.progress", ...event })}
|
|
132257
|
+
`;
|
|
132258
|
+
const mib = (bytes) => `${(bytes / (1024 * 1024)).toFixed(1)} MiB`;
|
|
132259
|
+
switch (event.phase) {
|
|
132260
|
+
case "begin":
|
|
132261
|
+
return `publish: ${event.state}: ${event.staged}/${event.versions} objects and ${event.stagedBlobs}/${event.blobs} files on the host
|
|
132262
|
+
`;
|
|
132263
|
+
case "stage":
|
|
132264
|
+
return `publish: sent part ${event.part}/${event.parts} (${event.objects} objects)
|
|
132265
|
+
`;
|
|
132266
|
+
case "blob":
|
|
132267
|
+
return `publish: sent file ${event.blob}/${event.blobs} ${event.key} (${mib(event.bytes)})
|
|
132268
|
+
`;
|
|
132269
|
+
case "commit":
|
|
132270
|
+
return `publish: commit ${event.call}: ${event.state}${event.written ? ` (written: ${Object.entries(event.written).map(([kind2, count5]) => `${count5} ${kind2}`).join(", ")})` : ""}
|
|
132271
|
+
`;
|
|
132272
|
+
case "wait":
|
|
132273
|
+
return `publish: waiting ${event.seconds} s: ${event.reason}
|
|
132274
|
+
`;
|
|
132275
|
+
}
|
|
132276
|
+
}
|
|
132277
|
+
async function sendCreation(plan, context) {
|
|
132278
|
+
const { workspace, bundleId, name, home: home2, canonical: canonical2, target: target2, client, yesCommand } = context;
|
|
132279
|
+
const staged = plan.path.mode === "staged" ? stagedContent(plan) : null;
|
|
132280
|
+
const body = staged ? manifestBody(staged, { workspace, bundleId, name }) : createBody(plan, { workspace, bundleId, name });
|
|
132281
|
+
const digest3 = planDigest(body);
|
|
132282
|
+
const earlier = await readPendingCreate(home2, canonical2, bundleId);
|
|
132283
|
+
const resumes = earlier !== null && earlier.host === target2.origin && earlier.workspace === workspace;
|
|
132284
|
+
const requestId2 = resumes ? earlier.request_id : randomUUID6();
|
|
132285
|
+
const record5 = resumes ? { ...earlier, ...staged ? { staged: true, folder: canonical2 } : {} } : { request_id: requestId2, host: target2.origin, workspace, bundle_id: bundleId, digest: digest3, ...staged ? { staged: true, folder: canonical2 } : {} };
|
|
132286
|
+
if (!resumes || staged && earlier.staged !== true) await writePendingCreate(home2, canonical2, record5);
|
|
132287
|
+
const refusalContext = { bundleId, workspace, target: target2, resume: yesCommand, folder: canonical2 };
|
|
132288
|
+
if (staged) {
|
|
132289
|
+
let data;
|
|
132290
|
+
try {
|
|
132291
|
+
data = await runStagedCreate({
|
|
132292
|
+
client,
|
|
132293
|
+
requestId: requestId2,
|
|
132294
|
+
target: { workspace, bundleId, name },
|
|
132295
|
+
content: staged,
|
|
132296
|
+
resume: String(yesCommand),
|
|
132297
|
+
progress: (event) => context.deps.stderr(progressLine(event, context.json)),
|
|
132298
|
+
...context.deps.sleep ? { sleep: context.deps.sleep } : {},
|
|
132299
|
+
// Once the host holds the id for this request, only this request id can finish it.
|
|
132300
|
+
onReserved: async () => {
|
|
132301
|
+
if (record5.reserved !== true) await writePendingCreate(home2, canonical2, { ...record5, reserved: true });
|
|
132302
|
+
}
|
|
132303
|
+
});
|
|
132304
|
+
} catch (error51) {
|
|
132305
|
+
if (error51 instanceof StagedRefusal) {
|
|
132306
|
+
if (record5.reserved !== true && isFinalBeforeReservation(error51)) await clearPendingCreate(home2, canonical2, bundleId);
|
|
132307
|
+
const openCreations = error51.code === "bundle_create_limit" ? (await listPendingCreates(home2)).filter((other) => other.staged === true && other.host === target2.origin && other.workspace === workspace && other.request_id !== requestId2) : void 0;
|
|
132308
|
+
throw createRefusal(error51.code, error51.hostMessage, { ...refusalContext, ...openCreations ? { openCreations } : {} });
|
|
132309
|
+
}
|
|
132310
|
+
throw error51;
|
|
132311
|
+
}
|
|
132312
|
+
await clearPendingCreate(home2, canonical2, bundleId);
|
|
132313
|
+
return data;
|
|
132314
|
+
}
|
|
132315
|
+
let answer2;
|
|
132316
|
+
try {
|
|
132317
|
+
answer2 = await client.carrier.json(`${client.prefix}/bundle-create`, body, client.signal, { maximum: CREATE_ANSWER_BYTES, writeRequest: requestId2 });
|
|
132318
|
+
} catch (error51) {
|
|
132319
|
+
if (error51 instanceof HostedCarrierError && error51.code === "unavailable") {
|
|
132320
|
+
throw new CliError("TRANSIENT", `the answer from ${target2.origin} did not arrive; the bundle may be partly created`, {
|
|
132321
|
+
details: { reason: "write_outcome_unknown", bundle_id: bundleId, workspace, host: target2.origin, request_id: requestId2, retryable: true },
|
|
132322
|
+
help: `re-run the same command; it re-sends the same request, which finishes or confirms the creation: ${yesCommand}`
|
|
132323
|
+
});
|
|
132324
|
+
}
|
|
132325
|
+
throw hostedFailure(error51, target2, yesCommand);
|
|
132326
|
+
}
|
|
132327
|
+
const envelope = answer2.body ?? {};
|
|
132328
|
+
const code3 = typeof envelope.error?.code === "string" ? envelope.error.code : null;
|
|
132329
|
+
const hostMessage = typeof envelope.error?.message === "string" ? envelope.error.message : "";
|
|
132330
|
+
if (answer2.status === 503 && code3 === "write_outcome_unknown") {
|
|
132331
|
+
throw new CliError("TRANSIENT", `${target2.origin} may have partly created '${bundleId}'`, {
|
|
132332
|
+
details: { reason: "write_outcome_unknown", bundle_id: bundleId, workspace, host: target2.origin, request_id: requestId2, retryable: true },
|
|
132333
|
+
help: `re-run the same command; it re-sends the same request, which finishes or confirms the creation: ${yesCommand}`
|
|
132334
|
+
});
|
|
132335
|
+
}
|
|
132336
|
+
const forgettable = record5.reserved !== true;
|
|
132337
|
+
if (answer2.status === 429 && code3 === "bundle_create_limit") {
|
|
132338
|
+
if (forgettable) await clearPendingCreate(home2, canonical2, bundleId);
|
|
132339
|
+
throw createRefusal(code3, hostMessage, refusalContext);
|
|
132340
|
+
}
|
|
132341
|
+
if (answer2.status === 200 && envelope.ok === false && code3 !== null) {
|
|
132342
|
+
if (code3 !== "request_conflict" && forgettable) await clearPendingCreate(home2, canonical2, bundleId);
|
|
132343
|
+
throw createRefusal(code3, hostMessage, refusalContext);
|
|
132344
|
+
}
|
|
132345
|
+
if (answer2.status !== 200 || envelope.ok !== true || typeof envelope.data !== "object" || envelope.data === null) {
|
|
132346
|
+
if (answer2.status === 400 && forgettable) await clearPendingCreate(home2, canonical2, bundleId);
|
|
132347
|
+
throw hostedFailure(new RemoteError(`hosted bundle-create answered ${answer2.status}`, code3 ?? "RUNTIME", answer2.status), target2, yesCommand);
|
|
132348
|
+
}
|
|
132349
|
+
await clearPendingCreate(home2, canonical2, bundleId);
|
|
132350
|
+
return envelope.data;
|
|
132351
|
+
}
|
|
131086
132352
|
async function publish(argv2, partial2 = {}) {
|
|
131087
132353
|
const deps = publishDeps(partial2);
|
|
131088
132354
|
const { values } = parseLeafOrUsage(
|
|
@@ -131133,22 +132399,33 @@ async function publish(argv2, partial2 = {}) {
|
|
|
131133
132399
|
help: `${cliInvocation()} publish --to hosted --bundle-id <id>`
|
|
131134
132400
|
});
|
|
131135
132401
|
}
|
|
131136
|
-
const hostChoice = await hostedBundleHost(values.host, home2);
|
|
131137
|
-
const target2 = hostChoice ? resolveHostedTarget(hostChoice) : null;
|
|
131138
132402
|
const withHistory = values["with-history"] === true;
|
|
132403
|
+
const yesCommandFor = (host) => commandFragment`${cliInvocation()} publish --to hosted${values.dir !== void 0 ? commandFragment` --dir ${commandToken(canonical2)}` : commandFragment``}${host !== null ? commandFragment` --host ${commandToken(host)}` : commandFragment``}${values.workspace !== void 0 ? commandFragment` --workspace ${commandToken(values.workspace)}` : commandFragment``} --bundle-id ${commandToken(bundleId)}${values.name !== void 0 ? commandFragment` --name ${commandToken(name)}` : commandFragment``}${withHistory ? commandFragment` --with-history` : commandFragment``} --yes${values.json ? commandFragment` --json` : commandFragment``}`;
|
|
132404
|
+
let chosen = null;
|
|
132405
|
+
let ambiguous = null;
|
|
132406
|
+
try {
|
|
132407
|
+
chosen = await hostedWriteHost(values.host, home2, (host) => String(yesCommandFor(host)));
|
|
132408
|
+
} catch (error51) {
|
|
132409
|
+
if (values.yes || !(error51 instanceof CliError) || error51.details?.reason !== "ambiguous_host") throw error51;
|
|
132410
|
+
ambiguous = error51;
|
|
132411
|
+
}
|
|
132412
|
+
const target2 = chosen?.target ?? null;
|
|
131139
132413
|
const plan = await planPublish(canonical2, withHistory ? { history: true, ...board ? { board } : {}, now: deps.auth.now() } : { history: false });
|
|
131140
|
-
const yesCommand =
|
|
132414
|
+
const yesCommand = yesCommandFor(target2 ? bindingHostArgument(target2) : null);
|
|
132415
|
+
const converts = plan.documents.length <= CHECKOUT_DOCUMENT_LIMIT;
|
|
132416
|
+
const uncheckable = `leave this folder as it is${board ? " (still bound to the Git board)" : ""}: a hosted checkout holds at most ${CHECKOUT_DOCUMENT_LIMIT} documents, so use the bundle in the app; from then on, edits here do not reach the hosted bundle, nor its edits here`;
|
|
131141
132417
|
const gitPlan = board ? {
|
|
131142
132418
|
branch: board.branch,
|
|
131143
132419
|
upstream: board.upstream,
|
|
131144
132420
|
head: boardHead(board),
|
|
131145
132421
|
sync: boardState?.block.state,
|
|
131146
132422
|
...boardState && (boardState.block.ahead ?? 0) + (boardState.block.uncommitted ?? 0) > 0 ? { not_on_branch: { ahead: boardState.block.ahead, uncommitted: boardState.block.uncommitted, note: "these travel to hosted but not to the board branch teammates still sync" } } : {},
|
|
131147
|
-
will: "unbind this folder from the board branch; the branch and its commits stay, locally and on origin"
|
|
132423
|
+
will: converts ? "unbind this folder from the board branch; the branch and its commits stay, locally and on origin" : "keep this folder bound to the board branch: the board and the hosted bundle then diverge, and neither's edits reach the other"
|
|
131148
132424
|
} : null;
|
|
131149
132425
|
if (!values.yes) {
|
|
131150
132426
|
const blockers = [...plan.blockers.map((b) => ({ path: b.path, reason: b.reason, message: b.message })), ...boardState?.blocker ? [boardState.blocker] : []];
|
|
131151
|
-
if (
|
|
132427
|
+
if (ambiguous) blockers.push({ path: "", reason: "ambiguous_host", message: ambiguous.message });
|
|
132428
|
+
else if (!target2) blockers.push({ path: "", reason: "no_host", message: "no hosted Superbee host: sign in first, or pass --host" });
|
|
131152
132429
|
deps.stdout(
|
|
131153
132430
|
render(
|
|
131154
132431
|
{
|
|
@@ -131158,6 +132435,7 @@ async function publish(argv2, partial2 = {}) {
|
|
|
131158
132435
|
home: facts.home,
|
|
131159
132436
|
to: {
|
|
131160
132437
|
host: target2?.origin ?? null,
|
|
132438
|
+
...chosen ? { host_from: chosen.source } : ambiguous ? { signed_in_hosts: ambiguous.details?.hosts } : {},
|
|
131161
132439
|
bundle_id: bundleId,
|
|
131162
132440
|
name,
|
|
131163
132441
|
workspace: values.workspace ?? "chosen at --yes: your only workspace, or your default one"
|
|
@@ -131168,11 +132446,13 @@ async function publish(argv2, partial2 = {}) {
|
|
|
131168
132446
|
...gitPlan ? { git: gitPlan } : {},
|
|
131169
132447
|
then: [
|
|
131170
132448
|
"create the bundle in your workspace, reachable only by you (write) until you share it in the app",
|
|
131171
|
-
|
|
131172
|
-
|
|
132449
|
+
...converts ? [
|
|
132450
|
+
"convert this folder in place into a hosted checkout: no file rewritten, a read-only .superbee/checkout.json added",
|
|
132451
|
+
...board ? ["unbind the Git board first; teammates keep the board branch until you tell them"] : []
|
|
132452
|
+
] : [uncheckable]
|
|
131173
132453
|
],
|
|
131174
132454
|
network: "none (preview)",
|
|
131175
|
-
help: blockers.length === 0 ? [String(yesCommand)] : !target2 ? [`${cliInvocation()} login --host <url>`] : ["fix the blocking files, then preview again"]
|
|
132455
|
+
help: blockers.length === 0 ? [String(yesCommand)] : ambiguous ? [...ambiguous.details?.commands ?? [], ...blockers.length > 1 ? ["fix the blocking files, then preview again"] : []] : !target2 ? [`${cliInvocation()} login --host <url>`] : ["fix the blocking files, then preview again"]
|
|
131176
132456
|
},
|
|
131177
132457
|
mode
|
|
131178
132458
|
)
|
|
@@ -131194,7 +132474,8 @@ async function publish(argv2, partial2 = {}) {
|
|
|
131194
132474
|
help: `preview them all: ${commandFragment`${cliInvocation()} publish --to hosted${values.dir !== void 0 ? commandFragment` --dir ${commandToken(canonical2)}` : commandFragment``}`}`
|
|
131195
132475
|
});
|
|
131196
132476
|
}
|
|
131197
|
-
|
|
132477
|
+
deps.stderr(targetLine(chosen, bundleId, values.json === true));
|
|
132478
|
+
const otherWorkspace = `${cliInvocation()} publish --to hosted --host ${commandToken(bindingHostArgument(target2))} --workspace <id> --bundle-id ${commandToken(bundleId)} --yes`;
|
|
131198
132479
|
const { client, identity, workspace } = await connectHostedAccount(
|
|
131199
132480
|
target2,
|
|
131200
132481
|
{ workspace: values.workspace, resume: yesCommand, otherWorkspace, deadlineMs: CREATE_DEADLINE_MS },
|
|
@@ -131206,48 +132487,35 @@ async function publish(argv2, partial2 = {}) {
|
|
|
131206
132487
|
help: otherWorkspace
|
|
131207
132488
|
});
|
|
131208
132489
|
}
|
|
131209
|
-
const
|
|
131210
|
-
|
|
131211
|
-
|
|
131212
|
-
|
|
131213
|
-
|
|
131214
|
-
|
|
131215
|
-
|
|
131216
|
-
|
|
131217
|
-
|
|
131218
|
-
|
|
131219
|
-
|
|
131220
|
-
|
|
131221
|
-
|
|
131222
|
-
|
|
131223
|
-
|
|
131224
|
-
|
|
131225
|
-
|
|
131226
|
-
|
|
131227
|
-
|
|
131228
|
-
|
|
131229
|
-
|
|
131230
|
-
|
|
131231
|
-
|
|
131232
|
-
|
|
131233
|
-
|
|
131234
|
-
|
|
131235
|
-
|
|
131236
|
-
|
|
131237
|
-
if (answer2.status === 429 && code3 === "bundle_create_limit") {
|
|
131238
|
-
await clearPendingCreate(home2, canonical2, bundleId);
|
|
131239
|
-
throw createRefusal(code3, hostMessage, context);
|
|
131240
|
-
}
|
|
131241
|
-
if (answer2.status === 200 && envelope.ok === false && code3 !== null) {
|
|
131242
|
-
if (code3 !== "request_conflict") await clearPendingCreate(home2, canonical2, bundleId);
|
|
131243
|
-
throw createRefusal(code3, hostMessage, context);
|
|
131244
|
-
}
|
|
131245
|
-
if (answer2.status !== 200 || envelope.ok !== true || typeof envelope.data !== "object" || envelope.data === null) {
|
|
131246
|
-
if (answer2.status === 400) await clearPendingCreate(home2, canonical2, bundleId);
|
|
131247
|
-
throw hostedFailure(new RemoteError(`hosted bundle-create answered ${answer2.status}`, code3 ?? "RUNTIME", answer2.status), target2, yesCommand);
|
|
132490
|
+
const created = await sendCreation(plan, { workspace, bundleId, name, home: home2, canonical: canonical2, target: target2, client, yesCommand, deps, json: values.json === true });
|
|
132491
|
+
if (!converts) {
|
|
132492
|
+
deps.stdout(
|
|
132493
|
+
render(
|
|
132494
|
+
{
|
|
132495
|
+
published: "created",
|
|
132496
|
+
bundle_id: bundleId,
|
|
132497
|
+
name,
|
|
132498
|
+
host: target2.origin,
|
|
132499
|
+
host_from: chosen.source,
|
|
132500
|
+
workspace,
|
|
132501
|
+
access: "write (only you, until you share it in the app)",
|
|
132502
|
+
sent: {
|
|
132503
|
+
documents: created.documents ?? plan.documents.length,
|
|
132504
|
+
reserved_files: created.reserved ?? plan.reserved.length,
|
|
132505
|
+
other_files: created.blobs ?? plan.blobs.length,
|
|
132506
|
+
history: created.history ?? { imported: plan.history.length, verified: false }
|
|
132507
|
+
},
|
|
132508
|
+
folder: canonical2,
|
|
132509
|
+
home: facts.home,
|
|
132510
|
+
checkout: `not converted: ${uncheckable}`,
|
|
132511
|
+
diverges: `this folder${board ? " and its Git board" : ""} and the hosted bundle '${bundleId}' are now separate copies: edits here do not reach the hosted bundle`,
|
|
132512
|
+
help: [hostedListCommand(target2)]
|
|
132513
|
+
},
|
|
132514
|
+
mode
|
|
132515
|
+
)
|
|
132516
|
+
);
|
|
132517
|
+
return;
|
|
131248
132518
|
}
|
|
131249
|
-
await clearPendingCreate(home2, canonical2, bundleId);
|
|
131250
|
-
const created = envelope.data;
|
|
131251
132519
|
await writePublishedExtras(home2, canonical2, { host: target2.origin, bundle_id: bundleId, extras: plan.extras }).catch(() => {
|
|
131252
132520
|
});
|
|
131253
132521
|
const slug = identity.workspaces.find((w2) => w2.tenantId === workspace)?.slug ?? null;
|
|
@@ -131296,6 +132564,7 @@ async function publish(argv2, partial2 = {}) {
|
|
|
131296
132564
|
bundle_id: bundleId,
|
|
131297
132565
|
name,
|
|
131298
132566
|
host: target2.origin,
|
|
132567
|
+
host_from: chosen.source,
|
|
131299
132568
|
workspace,
|
|
131300
132569
|
access: "write (only you, until you share it in the app)",
|
|
131301
132570
|
sent: {
|
|
@@ -131340,7 +132609,6 @@ var init_publish = __esm({
|
|
|
131340
132609
|
init_command_spec();
|
|
131341
132610
|
init_command_text();
|
|
131342
132611
|
init_errors4();
|
|
131343
|
-
init_discovery();
|
|
131344
132612
|
init_session();
|
|
131345
132613
|
init_bundle_id();
|
|
131346
132614
|
init_refusals();
|
|
@@ -131348,6 +132616,7 @@ var init_publish = __esm({
|
|
|
131348
132616
|
init_account();
|
|
131349
132617
|
init_marker();
|
|
131350
132618
|
init_publish_plan();
|
|
132619
|
+
init_publish_staged();
|
|
131351
132620
|
init_publish_state();
|
|
131352
132621
|
init_invocation();
|
|
131353
132622
|
init_output2();
|
|
@@ -131361,9 +132630,16 @@ Usage:
|
|
|
131361
132630
|
[--bundle-id <id>] [--name <name>] [--with-history] [--yes] [--json]
|
|
131362
132631
|
|
|
131363
132632
|
Without --yes, previews only, with no network: what travels (documents, reserved files, other
|
|
131364
|
-
files), what stays (dot-files, links), every bound the host enforces
|
|
131365
|
-
|
|
131366
|
-
|
|
132633
|
+
files), what stays (dot-files, links), how it is sent, every bound the host enforces, the history
|
|
132634
|
+
plan, and what will happen to the folder.
|
|
132635
|
+
|
|
132636
|
+
A bundle within one request's bounds (at most 1,000 documents, 100 other files of 1 MB each,
|
|
132637
|
+
1,000 earlier versions, 1,500 objects in all, 3 MiB) is sent in one request. A larger one is sent
|
|
132638
|
+
staged: a list of everything, then parts of about 1 MiB, then each file, then commits until the
|
|
132639
|
+
host has created it, with progress on stderr (JSON lines with --json). Staged, a bundle holds at
|
|
132640
|
+
most 10,000 documents, 1,000 reserved files, 1,000 other files of 16 MiB each and 64 MiB of
|
|
132641
|
+
current files in all, and 5,000 earlier versions (64 MiB); the list of everything is at most
|
|
132642
|
+
3 MiB. Every way: 64 KiB per document and reserved file, 16 KiB of frontmatter.
|
|
131367
132643
|
|
|
131368
132644
|
With --yes, signs in if needed (AUTH_REQUIRED, exit 4, carries the one link to relay and the
|
|
131369
132645
|
command to re-run), creates the bundle in your workspace (only you can reach it, at write, until
|
|
@@ -131378,12 +132654,12 @@ branch, or any other folder that is its own Git working tree, is refused.
|
|
|
131378
132654
|
--with-history imports each document's earlier Git versions as labeled, unverified history
|
|
131379
132655
|
(imported:git/<commit>); without it, history starts at publish. A local bundle has only its current
|
|
131380
132656
|
versions. A retry after an unknown outcome (TRANSIENT) re-sends the same request, so the host
|
|
131381
|
-
finishes or confirms the one creation.
|
|
132657
|
+
finishes or confirms the one creation; a staged one resumes, sending only what the host lacks.
|
|
131382
132658
|
|
|
131383
132659
|
Options:
|
|
131384
132660
|
--to hosted Required: the only destination
|
|
131385
132661
|
--dir <bundle> The bundle to publish (default: the one found from here)
|
|
131386
|
-
--host <url> Hosted Superbee URL (default: your last sign-in)
|
|
132662
|
+
--host <url> Hosted Superbee URL (default: your last sign-in, when it is the only host signed in)
|
|
131387
132663
|
--workspace <id> Your workspace to create it in (default: your only one, or your default)
|
|
131388
132664
|
--bundle-id <id> The hosted bundle id (default: from the bundle's name)
|
|
131389
132665
|
--name <name> The display name (default: the bundle's name)
|