From 6617b776bb769ce9d58171661d89f6c06fef64dd Mon Sep 17 00:00:00 2001 From: Denozordec Date: Wed, 14 Oct 2026 14:30:33 +0700 Subject: [PATCH] =?UTF-8?q?fix(backups):=20=D0=BF=D0=BE=D0=BA=D0=B0=D0=B7?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=20=D0=BE=D1=82=D1=81=D1=83=D1=82=D1=81=D1=82?= =?UTF-8?q?=D0=B2=D0=B8=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B8=20=D0=B7=D0=B0=D1=89=D0=B8=D1=82=D0=B8=D1=82=D1=8C=20?= =?UTF-8?q?=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/(main)/backups/page.tsx | 12 +++-- backend/package.json | 2 +- .../acceptance/backup-availability.mjs | 3 ++ backend/src/routes/backups.ts | 15 +++++-- .../services/backup-local-file-state.test.ts | 28 ++++++++++++ .../src/services/backup-local-file-state.ts | 28 ++++++++++++ backend/src/services/backup-service.ts | 39 +++++++++++++---- components/backups/backup-confirm-dialogs.tsx | 7 +-- components/data-grids/backups-data-grid.tsx | 19 +++++--- docs/ux-ui-external-acceptance.md | 20 ++++++++- docs/ux-ui-plan.md | 20 ++++++++- docs/ux-ui-progress.md | 20 ++++++++- docs/ux-ui-remaining-acceptance.md | 28 +++++++++--- docs/ux-ui-stage-12.md | 20 ++++++++- docs/ux-ui-test-server.md | 20 ++++++++- .../acceptance/backup-availability237.json | 40 +++++++++++++++++ .../acceptance/backups237-deployment.json | 35 +++++++++++++++ docs/ux-ui/acceptance/backups237-live-ui.json | 24 ++++++++++ .../screens/backups237-missing-desktop.png | Bin 0 -> 175682 bytes .../screens/backups237-missing-mobile.png | Bin 0 -> 59954 bytes lib/backup-file-state.ts | 13 ++++++ lib/data.ts | 1 + packages/contracts/src/backups.ts | 3 ++ shared/api/backups.ts | 5 ++- tests/e2e/backups-file-state.spec.ts | 41 ++++++++++++++++++ tests/e2e/backups-record-only.spec.ts | 13 ++++++ 26 files changed, 420 insertions(+), 36 deletions(-) create mode 100644 backend/scripts/acceptance/backup-availability.mjs create mode 100644 backend/src/services/backup-local-file-state.test.ts create mode 100644 backend/src/services/backup-local-file-state.ts create mode 100644 docs/ux-ui/acceptance/backup-availability237.json create mode 100644 docs/ux-ui/acceptance/backups237-deployment.json create mode 100644 docs/ux-ui/acceptance/backups237-live-ui.json create mode 100644 docs/ux-ui/screens/backups237-missing-desktop.png create mode 100644 docs/ux-ui/screens/backups237-missing-mobile.png create mode 100644 lib/backup-file-state.ts create mode 100644 tests/e2e/backups-file-state.spec.ts create mode 100644 tests/e2e/backups-record-only.spec.ts diff --git a/app/(main)/backups/page.tsx b/app/(main)/backups/page.tsx index d49454c0..1b0d1d96 100644 --- a/app/(main)/backups/page.tsx +++ b/app/(main)/backups/page.tsx @@ -44,6 +44,7 @@ import { useBackupJob } from "@/lib/use-backup-job" import { backupJobOutcome, backupJobResultError } from "@/lib/backup-job-poll" import { backupSchedulePayload, backupStoragePayload } from "@/lib/backup-settings" import { BackupsHistory } from "@/components/backups/backups-history" +import { backupFileMissing } from "@/lib/backup-file-state" import { BackupsSettings, WEEK_DAYS, @@ -148,6 +149,7 @@ function BackupsContent() { notes: b.notes ?? "", storage: b.storage, uploadError: b.uploadError ?? undefined, + localFileStatus: b.localFileStatus, } }, []) @@ -304,7 +306,7 @@ function BackupsContent() { if (!deleteTarget) return const target = deleteTarget, abort = startOperation(); if (!abort) return try { - await deleteBackup(backendUrl, target.id, { signal: abort.signal }) + await deleteBackup(backendUrl, target.id, { signal: abort.signal }, backupFileMissing(target)) if (!alive.current || abort.signal.aborted) return setBackupList(previous => previous.filter(backup => backup.id !== target.id)); setDeleteTarget(null) toast.success("API подтвердил удаление резервной копии") @@ -314,6 +316,10 @@ function BackupsContent() { } async function handleRestore() { if (!restoreTarget || !restoreTarget.serverId || !restoreGuard.canStart) return + if (backupFileMissing(backupList.find(backup => backup.id === restoreTarget.id) ?? restoreTarget)) { + setOpError("Локальный файл отсутствует. Создайте новую резервную копию.") + return + } const target = restoreTarget, abort = startOperation(); if (!abort) return let sent = false try { @@ -607,8 +613,8 @@ function BackupsContent() { returnFocus={returnDialogFocus} backup={restoreTarget} busy={opBusy} - blocked={!restoreGuard.canStart} - error={opError} + blocked={!restoreGuard.canStart || Boolean(restoreTarget && backupFileMissing(backupList.find(backup => backup.id === restoreTarget.id) ?? restoreTarget))} + error={restoreTarget && backupFileMissing(backupList.find(backup => backup.id === restoreTarget.id) ?? restoreTarget) ? "Локальный файл отсутствует. Создайте новую резервную копию." : opError} onConfirm={() => void handleRestore()} onCancel={() => setRestoreTarget(null)} /> diff --git a/backend/package.json b/backend/package.json index deaae921..d3ede88d 100644 --- a/backend/package.json +++ b/backend/package.json @@ -27,7 +27,7 @@ "test:config-sync": "tsx src/utils/server-id.test.ts && tsx src/services/config-apply-plan.test.ts && tsx src/services/entity-snapshots.test.ts && tsx src/services/gre-native-identity.test.ts && tsx src/services/gre-ipv6.test.ts && tsx src/routes/gre-ipv6-validation.test.ts && tsx src/services/network-disabled-server.test.ts", "test:ros-file": "tsx src/services/ros-file-contents.test.ts && tsx src/services/mikrotik-response.test.ts", "test:scheduler": "tsx src/services/scheduler-running.test.ts && tsx src/services/scheduler-recorded-run.test.ts && tsx src/routes/scheduler.test.ts", - "test:backups": "tsx src/services/router-config-export.test.ts && tsx src/services/backup-scheduler-run.test.ts && tsx src/services/backup-restore.test.ts && tsx src/services/backup-deletion.test.ts && tsx src/services/backup-dto.test.ts && tsx src/services/backup-storage-update.test.ts && tsx src/services/backup-job-execution.test.ts && tsx src/routes/backups-operations.test.ts && tsx src/services/s3-backup-client.test.ts", + "test:backups": "tsx src/services/backup-local-file-state.test.ts && tsx src/services/router-config-export.test.ts && tsx src/services/backup-scheduler-run.test.ts && tsx src/services/backup-restore.test.ts && tsx src/services/backup-deletion.test.ts && tsx src/services/backup-dto.test.ts && tsx src/services/backup-storage-update.test.ts && tsx src/services/backup-job-execution.test.ts && tsx src/routes/backups-operations.test.ts && tsx src/services/s3-backup-client.test.ts", "test:ipsec": "tsx src/services/ipsec-config.test.ts && tsx src/services/ipsec-state.test.ts && tsx src/routes/ipsec-history.test.ts && tsx src/services/ipsec-restore.test.ts && tsx src/services/ipsec-operation.test.ts && tsx src/routes/ipsec-mutation.test.ts && tsx src/routes/ipsec-nat.test.ts && tsx src/routes/ipsec-group.test.ts", "test:live-maps": "tsx src/services/gre-keepalive.test.ts && tsx src/services/gre-read.test.ts && tsx src/services/ospf-route-parse.test.ts && tsx src/services/vxlan-live.test.ts && tsx src/routes/vxlan.test.ts && tsx src/services/containers-live.test.ts && tsx src/services/firewall-poll.test.ts && tsx src/services/gre-catalog-poll.test.ts && tsx src/routes/filters-gre-catalog.test.ts && tsx src/routes/bgp-catalog.test.ts && tsx src/services/bgp-catalog-parse.test.ts && tsx src/routes/ospf-catalog.test.ts && tsx src/services/ospf-observed-values.test.ts && tsx src/routes/ospf-legacy.test.ts", "test": "node scripts/test.mjs", diff --git a/backend/scripts/acceptance/backup-availability.mjs b/backend/scripts/acceptance/backup-availability.mjs new file mode 100644 index 00000000..e346ff4f --- /dev/null +++ b/backend/scripts/acceptance/backup-availability.mjs @@ -0,0 +1,3 @@ +import assert from'node:assert/strict';import fs from'node:fs';import{createRequire}from'node:module';import{createServer}from'node:http'; +const database=process.env.MMAPP_OWN_SQL_DB;assert(/^mm_accept_166_\d+$/.test(database));const url=new URL(process.env.DATABASE_URL);assert.equal(url.pathname,'/'+database);assert.equal(url.username,database);fs.mkdirSync('/tmp/'+database,{recursive:true});process.chdir('/tmp/'+database); +const require=createRequire('/app/backend/package.json'),Fastify=require('fastify'),{validatorCompiler,serializerCompiler}=require('@fastify/type-provider-zod');const{pool,closePool,db}=await import('/app/backend/dist/db/index.js');const{initDatabase}=await import('/app/backend/dist/db/bootstrap.js');const role=(await pool.query('SELECT rolsuper,rolcreatedb,rolcreaterole,rolbypassrls FROM pg_roles WHERE rolname=current_user')).rows[0];assert(Object.values(role).every(v=>v===false));await initDatabase();const{createBackupsRoutes}=await import('/app/backend/dist/routes/backups.js');const{servers}=await import('/app/backend/dist/db/schema.js');const{databaseBackgroundWork}=await import('/app/backend/dist/services/database-background-work.js');let nativeRequests=0;const native=createServer((_req,res)=>{nativeRequests++;res.statusCode=500;res.end('{}')});await new Promise(r=>native.listen(0,'127.0.0.1',r));const[server]=await db.insert(servers).values({name:'owned-availability237',host:'127.0.0.1',port:native.address().port,useSsl:false,username:'fixture',password:'fixture',enabled:true,type:'exit-node'}).returning();fs.mkdirSync('storage/backups',{recursive:true});fs.writeFileSync('storage/backups/available237.rsc','# harmless own fixture\n');fs.mkdirSync('storage/backups/directory237.rsc');const fixtures=[['available237','available237.rsc','local',null],['missing237','missing237.rsc','local',null],['both237','both237.rsc','both','own-test/both237.rsc'],['remote237','remote237.rsc','s3','own-test/remote237.rsc'],['directory237','directory237.rsc','local',null]];for(const[id,filename,storage,key]of fixtures)await pool.query('INSERT INTO backup_entries(id,server_id,server_name,filename,size_bytes,kind,storage,s3_key,created_at) VALUES($1,$2,$3,$4,1,$5,$6,$7,now())',[id,server.id,'fixture',filename,'manual',storage,key]);const app=Fastify({logger:false});app.setValidatorCompiler(validatorCompiler);app.setSerializerCompiler(serializerCompiler);await app.register(createBackupsRoutes(),{prefix:'/api'});await app.ready();const report={date:'2026-10-14',block:'12.5.237',passed:false,checks:[],externalS3Contacts:0,chrContacts:0};try{let r=await app.inject({method:'GET',url:'/api/backups'});assert.equal(r.statusCode,200);const statuses=Object.fromEntries(r.json().map(r=>[r.id,r.localFileStatus]));assert.deepEqual(statuses,{available237:'available',missing237:'missing',both237:'missing',remote237:'not-stored',directory237:'unknown'});report.checks.push({listStates:statuses});r=await app.inject({method:'GET',url:'/api/backups/available237/download'});assert.equal(r.statusCode,200);assert.equal(r.body,'# harmless own fixture\n');report.checks.push({availableDownload:200});r=await app.inject({method:'GET',url:'/api/backups/missing237/download'});assert.equal(r.statusCode,404);report.checks.push({missingDownload:404});r=await app.inject({method:'POST',url:'/api/backups/missing237/restore'});assert.equal(r.statusCode,400);assert.equal(r.json().outcome,'not-applied');assert.match(r.json().error,/Локальный файл/);assert.equal(nativeRequests,0);report.checks.push({missingRestore:400,outcome:'not-applied',nativeRequests:0});r=await app.inject({method:'GET',url:'/api/backups'});assert.equal(r.json().length,5);report.checks.push({failurePreservesCatalog:true});fs.writeFileSync('storage/backups/missing237.rsc','# recreated fixture\n');r=await app.inject({method:'DELETE',url:'/api/backups/missing237?recordOnly=true'});assert.equal(r.statusCode,409);assert(fs.existsSync('storage/backups/missing237.rsc'));assert.equal((await pool.query("SELECT count(*)::int AS n FROM backup_entries WHERE id='missing237'")).rows[0].n,1);report.checks.push({recreatedFilePreserved:409});fs.unlinkSync('storage/backups/missing237.rsc');r=await app.inject({method:'DELETE',url:'/api/backups/missing237?recordOnly=true'});assert.equal(r.statusCode,204);assert.equal(r.headers['x-backup-delete-mode'],'record-only');report.checks.push({missingRecordDeletion:204,mode:'record-only'});report.passed=true}catch(e){report.failure={name:e.name}}finally{await databaseBackgroundWork.drain();await app.close();await new Promise(r=>native.close(r));await closePool();fs.writeFileSync('/checks/backup-availability237.json',JSON.stringify(report,null,2)+'\n');console.log(JSON.stringify(report));if(!report.passed)process.exitCode=1} diff --git a/backend/src/routes/backups.ts b/backend/src/routes/backups.ts index 865da2c6..7e3f21b1 100644 --- a/backend/src/routes/backups.ts +++ b/backend/src/routes/backups.ts @@ -215,10 +215,17 @@ export function createBackupsRoutes(deps: { listServers?: () => Promise { - const hit = await (deps.delete ?? deleteBackupRecord)(req.params.id) - if (!hit) return reply.status(404).send({ error: "Бэкап не найден" }) - return reply.status(204).send() + app.delete("/backups/:id", { schema: { params: BackupIdParamSchema, querystring: z.object({ recordOnly: z.enum(["true", "false"]).optional() }) } }, async (req, reply) => { + try { + const recordOnly = req.query.recordOnly === "true" + const hit = await (deps.delete ?? deleteBackupRecord)(req.params.id, { recordOnly }) + if (!hit) return reply.status(404).send({ error: "Бэкап не найден" }) + reply.header("X-Backup-Delete-Mode", recordOnly ? "record-only" : "file-and-record") + return reply.status(204).send() + } catch (error) { + if (error instanceof BackupStorageConflictError) return reply.status(409).send({ error: error.message }) + throw error + } }) } } diff --git a/backend/src/services/backup-local-file-state.test.ts b/backend/src/services/backup-local-file-state.test.ts new file mode 100644 index 00000000..301cbbce --- /dev/null +++ b/backend/src/services/backup-local-file-state.test.ts @@ -0,0 +1,28 @@ +import assert from "node:assert/strict" +import { mkdtemp, writeFile, mkdir, rm, lstat } from "node:fs/promises" +import os from "node:os" +import path from "node:path" +import { withBackupLocalFileStates } from "./backup-local-file-state.js" +import type { BackupItemDto } from "@mmapp/contracts/backups" + +const directory = await mkdtemp(path.join(os.tmpdir(), "mm-backup-state-")) +const row = (filename: string, storage: BackupItemDto["storage"] = "local"): BackupItemDto => ({ id: filename, filename, serverId: 1, serverName: "fixture", sizeBytes: 0, createdAt: "2026-10-14T00:00:00Z", kind: "manual", storage }) +try { + await writeFile(path.join(directory, "available.rsc"), "# own fixture\n") + await mkdir(path.join(directory, "directory.rsc")) + const rows = [row("available.rsc"), row("missing.rsc"), row("missing-both.rsc", "both"), row("remote.rsc", "s3"), row("directory.rsc"), row("../outside.rsc")] + const result = await withBackupLocalFileStates(rows, directory) + assert.deepEqual(result.map(r => r.localFileStatus), ["available", "missing", "missing", "not-stored", "unknown", "unknown"]) + assert(rows.every(r => r.localFileStatus === undefined)) + assert.equal((await lstat(path.join(directory, "available.rsc"))).isFile(), true) + const denied = await withBackupLocalFileStates([row("denied.rsc")], directory, (async () => { throw Object.assign(new Error("denied"), { code: "EACCES" }) }) as typeof lstat) + assert.equal(denied[0].localFileStatus, "unknown") + let active = 0, max = 0 + const inspect = (async () => { active++; max = Math.max(max, active); await new Promise(r => setTimeout(r, 1)); active--; return lstat(path.join(directory, "available.rsc")) }) as typeof lstat + const many = await withBackupLocalFileStates(Array.from({ length: 100 }, (_, i) => row(`${i}.rsc`)), directory, inspect) + assert.equal(many.length, 100); assert(max <= 8); assert.equal(active, 0) + let touched = false + await withBackupLocalFileStates([row("remote-only.rsc", "s3"), row("../outside.rsc")], directory, (async () => { touched = true; throw Error("unexpected") }) as typeof lstat) + assert.equal(touched, false) + console.log("backup local states: real file/missing/both/remote/directory/path, permission error and bounded100 passed") +} finally { await rm(directory, { recursive: true, force: true }) } diff --git a/backend/src/services/backup-local-file-state.ts b/backend/src/services/backup-local-file-state.ts new file mode 100644 index 00000000..4d41ad5f --- /dev/null +++ b/backend/src/services/backup-local-file-state.ts @@ -0,0 +1,28 @@ +import { lstat } from "node:fs/promises" +import type { BackupItemDto } from "@mmapp/contracts/backups" +import { backupDeletionPath } from "./backup-deletion.js" + +/** Inspect local copies without probing S3; preserve unknown states and bound filesystem work. */ +export async function withBackupLocalFileStates( + rows: T[], directory: string, inspect = lstat, +): Promise { + const result = [...rows] + let cursor = 0 + await Promise.all(Array.from({ length: Math.min(8, rows.length) }, async () => { + while (cursor < rows.length) { + const index = cursor++, row = rows[index] + let status: BackupItemDto["localFileStatus"] = "not-stored" + if (row.storage !== "s3") { + try { + const info = await inspect(backupDeletionPath(directory, row.filename)) + status = info.isFile() ? "available" : "unknown" + } catch (error) { + const code = (error as NodeJS.ErrnoException).code + status = code === "ENOENT" || code === "ENOTDIR" ? "missing" : "unknown" + } + } + result[index] = { ...row, localFileStatus: status } + } + })) + return result +} diff --git a/backend/src/services/backup-service.ts b/backend/src/services/backup-service.ts index 6b6fd845..298b0aa3 100644 --- a/backend/src/services/backup-service.ts +++ b/backend/src/services/backup-service.ts @@ -6,13 +6,15 @@ import type { BackupScheduleSettingsDto, BackupStorageSettingsDto, PutBackupStorageSettings, + BackupLocalFileStatus, } from "@mmapp/contracts/backups" import { mapBackupEntry } from "./backup-dto.js" import { pruneBackupRecords } from "./backup-prune.js" import { assertRestorableBackupScript, importBackupOnce } from "./backup-restore.js" -import { deleteStoredBackup } from "./backup-deletion.js" +import { backupDeletionPath, deleteStoredBackup } from "./backup-deletion.js" +import { withBackupLocalFileStates } from "./backup-local-file-state.js" import { assertBackupStorageConnectionChange, planBackupStorageUpdate } from "./backup-storage-update.js" -import { withBackupStorageOperation, withBackupStorageSettingsUpdate } from "./backup-storage-operation.js" +import { BackupStorageConflictError, withBackupStorageOperation, withBackupStorageSettingsUpdate } from "./backup-storage-operation.js" import { db } from "../db/index.js" import { parseJsonArray } from "../db/json.js" import { backupEntries, backupScheduleSettings, backupStorageSettings } from "../db/schema.js" @@ -47,6 +49,7 @@ export type BackupMeta = { storage: "local" | "s3" | "both" s3Key?: string | null uploadError?: string | null + localFileStatus?: BackupLocalFileStatus } type BackupRow = typeof backupEntries.$inferSelect @@ -59,12 +62,12 @@ export async function ensureBackupStorage(): Promise { export async function listBackups(): Promise { const rows = await db.select().from(backupEntries).orderBy(desc(backupEntries.createdAt)) - return rows.map(rowToMeta) + return withBackupLocalFileStates(rows.map(rowToMeta), BACKUPS_DIR) } export async function getBackupById(id: string): Promise { const row = (await db.select().from(backupEntries).where(eq(backupEntries.id, id)).limit(1))[0] - return row ? rowToMeta(row) : null + return row ? (await withBackupLocalFileStates([rowToMeta(row)], BACKUPS_DIR))[0] : null } export async function insertBackup(meta: BackupMeta): Promise { @@ -92,14 +95,23 @@ async function getBackupRow(id: string): Promise { return (await db.select().from(backupEntries).where(eq(backupEntries.id, id)).limit(1))[0] } -export async function deleteBackupRecord(id: string): Promise { - return withBackupStorageOperation(() => deleteStoredBackupRecord(id)) +export async function deleteBackupRecord(id: string, options: { recordOnly?: boolean } = {}): Promise { + return withBackupStorageOperation(() => deleteStoredBackupRecord(id, Boolean(options.recordOnly))) } -async function deleteStoredBackupRecord(id: string): Promise { +async function deleteStoredBackupRecord(id: string, recordOnly: boolean): Promise { const row = await getBackupRow(id) if (!row) return null const meta = rowToMeta(row) + if (recordOnly) { + const [current] = await withBackupLocalFileStates([meta], BACKUPS_DIR) + if (row.storage !== "local" || row.s3Key || current.localFileStatus !== "missing") { + throw new BackupStorageConflictError("Файл больше не подтверждён отсутствующим. Обновите историю перед удалением записи.") + } + // Never remove a file in this mode, even if an external writer recreates it after the check. + await db.delete(backupEntries).where(eq(backupEntries.id, id)) + return meta + } await deleteStoredBackup(row, BACKUPS_DIR, { removeS3: async key => { const cfg = await getS3ConfigIfEnabled() @@ -481,6 +493,7 @@ export async function readBackupContent(meta: BackupMeta): Promise { } async function readStoredBackupContent(meta: BackupMeta): Promise { + let remoteUnavailable = false if ((meta.storage === "s3" || meta.storage === "both") && meta.s3Key) { try { const cfg = await getS3ConfigIfEnabled() @@ -488,11 +501,21 @@ async function readStoredBackupContent(meta: BackupMeta): Promise { const client = createS3ClientFromConfig(cfg) return await s3GetObject(client, cfg.bucket, meta.s3Key) } + remoteUnavailable = true } catch { + remoteUnavailable = true /* fallback: локальная копия, если есть */ } } - return await readFile(path.join(BACKUPS_DIR, meta.filename)) + try { + return await readFile(backupDeletionPath(BACKUPS_DIR, meta.filename)) + } catch (error) { + const code = (error as NodeJS.ErrnoException).code + if (code === "ENOENT" || code === "ENOTDIR") throw new Error(remoteUnavailable + ? "Файл недоступен в S3, локальная копия отсутствует. Проверьте подключение к хранилищу." + : "Локальный файл резервной копии отсутствует. Создайте новую копию или восстановите файл в хранилище.") + throw error + } } export async function restoreBackupToDevice(id: string): Promise<{ backupId: string; serverId: number; filename: string; serverName: string }> { diff --git a/components/backups/backup-confirm-dialogs.tsx b/components/backups/backup-confirm-dialogs.tsx index 270096c1..c2e61b32 100644 --- a/components/backups/backup-confirm-dialogs.tsx +++ b/components/backups/backup-confirm-dialogs.tsx @@ -13,6 +13,7 @@ import { } from "@/components/ui/alert-dialog" import { Alert, AlertDescription, AlertTitle } from "@/components/reui/alert" import type { Backup } from "@/lib/data" +import { backupFileMissing } from "@/lib/backup-file-state" import { AlertCircleIcon, LoaderCircleIcon, TriangleAlertIcon } from "lucide-react" export function BackupDeleteDialog({ @@ -37,10 +38,10 @@ export function BackupDeleteDialog({ - Удалить бэкап? + {backup && backupFileMissing(backup) ? "Удалить запись о бэкапе?" : "Удалить бэкап?"} - Файл {backup?.filename} будет удалён - {backup?.storage === "s3" || backup?.storage === "both" ? " локально; объект S3 — через текущее подключение к хранилищу" : " с диска"}. + {backup && backupFileMissing(backup) ? <>Локальный файл {backup.filename} отсутствует. Будет удалена только запись из истории. : <>Файл {backup?.filename} будет удалён + {backup?.storage === "s3" || backup?.storage === "both" ? " локально; объект S3 — через текущее подключение к хранилищу" : " с диска"}.} {error &&

{error}

} diff --git a/components/data-grids/backups-data-grid.tsx b/components/data-grids/backups-data-grid.tsx index b5d38680..ea7ff42e 100644 --- a/components/data-grids/backups-data-grid.tsx +++ b/components/data-grids/backups-data-grid.tsx @@ -8,6 +8,7 @@ import { useTable, } from "@tanstack/react-table" import type { Backup } from "@/lib/data" +import { backupFileMissing, backupLocalFileDescription } from "@/lib/backup-file-state" import { Button } from "@/components/ui/button" import { Badge } from "@/components/reui/badge" import { DataGridShell } from "@/components/data-grids/shared/data-grid-shell" @@ -70,6 +71,7 @@ function BackupsDataGrid({
{b.filename} + {backupLocalFileDescription(b) && {backupLocalFileDescription(b)}} {b.uploadError ? ( {b.uploadError} ) : null} @@ -134,7 +136,12 @@ function BackupsDataGrid({ accessorKey: "storage", header: ({ column }) => , cell: ({ row }) => { - const badge = storageBadge(row.original.storage) + const backup = row.original + const badge = backupFileMissing(backup) + ? { label: "Нет файла", variant: "warning-light" as const } + : backup.localFileStatus === "missing" ? { label: "S3", variant: "warning-light" as const } + : backup.localFileStatus === "unknown" ? { label: "Файл не проверен", variant: "warning-light" as const } + : storageBadge(backup.storage) return ( {badge.label} @@ -187,9 +194,10 @@ function BackupsDataGrid({ variant="ghost" size="icon" className="size-11 min-w-[44px] min-h-[44px] sm:size-7 sm:min-w-0 sm:min-h-0" - title="Скачать" + title={backupFileMissing(b) ? "Локальный файл отсутствует" : "Скачать"} aria-label={`Скачать ${b.filename}`} - disabled={!canDownload} + disabled={!canDownload || backupFileMissing(b)} + aria-describedby={backupLocalFileDescription(b) ? `backup-file-${encodeURIComponent(b.id)}` : undefined} onClick={() => onDownload(b.id, b.filename)} > @@ -199,9 +207,10 @@ function BackupsDataGrid({ variant="ghost" size="icon" className="size-11 min-w-[44px] min-h-[44px] sm:size-7 sm:min-w-0 sm:min-h-0" - title="Восстановить" + title={backupFileMissing(b) ? "Локальный файл отсутствует" : "Восстановить"} aria-label={`Восстановить ${b.filename}`} - disabled={!canWrite || !canRestore || !b.serverId} + disabled={!canWrite || !canRestore || !b.serverId || backupFileMissing(b)} + aria-describedby={backupLocalFileDescription(b) ? `backup-file-${encodeURIComponent(b.id)}` : undefined} onClick={() => onRestore(b)} > diff --git a/docs/ux-ui-external-acceptance.md b/docs/ux-ui-external-acceptance.md index 57f8382c..96afc087 100644 --- a/docs/ux-ui-external-acceptance.md +++ b/docs/ux-ui-external-acceptance.md @@ -1,6 +1,6 @@ # UX/UI: протокол внешней приёмки 12.5 -Актуальное продолжение 2026-10-14:236 — по приоритету пользователя проверен REST:384 paired samples из workstation/Debian +40 diagnostics, отказов0; current credentials/policies/addresses/service load исправны. На7.24.5 сохранены828/304 rest-api sessions и2 api на каждом; после3 дополнительных reads delta0. Найден vendor fix inactive REST sessions в7.25rc, это гипотеза, причинность401/500 не доказана. Runtime ux-backup234/ux-routing218 unchanged. Следующий REST шаг — корреляция сбоя/renewal или согласованный firmware control; общий следующий237 — missing local files UX. Этап12.5 открыт. +Актуальное продолжение 2026-10-14:237 — история бэкапов показывает подтверждённое отсутствие локального файла; скачивание/restore заблокированы, удаление только записи требует отдельного режима и receipt. Production SQL/API, 39 уникальных E2E и live UI ПК/телефон приняты в записанных границах. Backend/frontend ux-backups237; исходные10 строк каталога сохранены без изменений. Следующий238 — длительное REST-наблюдение; затем S3 restore через UI и retention. Этап12.5 открыт. IPsec78: реальный PSK responder established, mode-config198.18.78.10 и online=true подтверждены API; точные собственные объекты удалены. Сертификатный/DN online, late failure и history restore остаются открытыми. [Отчёт](ux-ui/acceptance/ipsec-mode-config-2026-10-09.json), [журнал](ux-ui-progress.md). @@ -18,6 +18,24 @@ OSPF84: real GRE Full adjacency/private routes/Ping3/3 и4 live PC/320px URL/bro BFD85: Up/Full/own route/Ping,4 live UI и loss/withdrawal/recovery приняты; exact own cleanup8 коллекций×2 passed. Withdrawal5,245ms не подтверждает sub-second BFD timing; этот вопрос открыт. Runtime routing83 без новой сборки. [Отчёт](ux-ui/acceptance/ospf-bfd-loss-2026-10-09.json). +## 12.5.237 — отсутствующие файлы бэкапов и безопасное удаление записи (2026-10-14) + +API добавляет необязательный localFileStatus: available/missing/unknown/not-stored. Локальные проверки ограничены восемью workers и не опрашивают S3. Ошибка доступа/каталог/некорректный путь не превращаются в «файл отсутствует». Для local/missing существующая таблица ReUI показывает «Нет файла», описание и блокирует скачивание/restore. Для both/missing остаётся запрос S3; состояние unknown и старый DTO не блокируются по догадке. Проверка наличия файла перед импортом остаётся обязательной на backend. + +Подтверждение удаления отсутствующего локального файла обещает только удаление строки истории. UI отправляет recordOnly=true и требует HTTP204 с X-Backup-Delete-Mode:record-only. Backend повторно проверяет missing/local/no-S3; появившийся файл даёт409 с сохранением файла и каталога. В этом режиме unlink никогда не вызывается, включая внешнее появление файла после проверки. Общий gate обеспечивает координацию одного процесса; несколько writers/instances остаются отдельной приёмкой. + +Contracts/backend build, TypeScript и scoped ESLint прошли. test:backups прошёл после разрешённого запуска локальных HTTP-фикстур: первоначальный sandbox EACCES127.0.0.1 не был ошибкой приложения. E2E:37 исходных сценариев file/data/operations/storage и2 новых record-only receipt; после поздней защиты повторены20 затронутых сценариев. Итого39 уникальных, повторные запуски не прибавлены. Production owned SQL/API:5 статусов, download200/404, restore400/not-applied/nativeRequests0, сохранение каталога, recreated-file409 и record-only204/header. Собственные DB/role/container удалены; S3/CHR из этой SQL-фикстуры не опрашивались. + +Production backend/frontend ux-backups237 собраны и развёрнуты:508 backend source/1068 compiled и529 frontend source совпали с локальными манифестами. Реальный Portal login и UI1440/390 показали10 существующих local/missing записей, disabled download/restore, корректное описание удаления (только открытие и отмена), pageerrors0/backupwrites0/globaloverflow0. Исходные10 SQL-строк сравнивались целиком до/после; ни одна не удалена. Отсутствующие старые файлы не восстановлены и не объявлены доступными. Приватный SQL-снимок удалён после сверки. Откат: backend ux-backup234/frontend ux-routing218 сохранены. + +Доказательства: [SQL/API](ux-ui/acceptance/backup-availability237.json), [live UI](ux-ui/acceptance/backups237-live-ui.json), [production сверка](ux-ui/acceptance/backups237-deployment.json). Снимки: [ПК](ux-ui/screens/backups237-missing-desktop.png), [телефон](ux-ui/screens/backups237-missing-mobile.png). + +| Референс | Схема доработки | +| --- | --- | +| [ReUI Data Grid Filtering2](https://reui.io/preview/base/data-grid-filtering-2?ref=mcp) | История → статус файла → доступные действия → подтверждённый результат; missing → только запись → проверка409/receipt204 | + +Следующий238 фиксирует уже выполненное длительное REST-наблюдение. Затем — S3 restore через реальный UI в пределах собственного bridge и retention. Полная конфигурация CHR, arbitrary PKI, другие ОС, public IPv6, multi-instance и внешние jobs не приняты этим блоком. + ## Паспорт стенда Перед внешним запуском зафиксировать отдельные PostgreSQL и RouterOS тестовые устройства, версии server/client PostgreSQL и RouterOS, HEAD backend/frontend, роли пользователей, число экземпляров backend/планировщика/отправителей и способ их остановки. Для Telegram использовать тестовый чат, для остальных интеграций — тестовые endpoints и учётные записи. Зафиксировать ожидаемые изменения и способ восстановления стенда. diff --git a/docs/ux-ui-plan.md b/docs/ux-ui-plan.md index 5352f153..a214c1c0 100644 --- a/docs/ux-ui-plan.md +++ b/docs/ux-ui-plan.md @@ -1,9 +1,27 @@ # План реализации UX/UI по пятичасовым окнам -Актуальное продолжение 2026-10-14:236 — по приоритету пользователя проверен REST:384 paired samples из workstation/Debian +40 diagnostics, отказов0; current credentials/policies/addresses/service load исправны. На7.24.5 сохранены828/304 rest-api sessions и2 api на каждом; после3 дополнительных reads delta0. Найден vendor fix inactive REST sessions в7.25rc, это гипотеза, причинность401/500 не доказана. Runtime ux-backup234/ux-routing218 unchanged. Следующий REST шаг — корреляция сбоя/renewal или согласованный firmware control; общий следующий237 — missing local files UX. Этап12.5 открыт. +Актуальное продолжение 2026-10-14:237 — история бэкапов показывает подтверждённое отсутствие локального файла; скачивание/restore заблокированы, удаление только записи требует отдельного режима и receipt. Production SQL/API, 39 уникальных E2E и live UI ПК/телефон приняты в записанных границах. Backend/frontend ux-backups237; исходные10 строк каталога сохранены без изменений. Следующий238 — длительное REST-наблюдение; затем S3 restore через UI и retention. Этап12.5 открыт. Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-14. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат. +## 12.5.237 — отсутствующие файлы бэкапов и безопасное удаление записи (2026-10-14) + +API добавляет необязательный localFileStatus: available/missing/unknown/not-stored. Локальные проверки ограничены восемью workers и не опрашивают S3. Ошибка доступа/каталог/некорректный путь не превращаются в «файл отсутствует». Для local/missing существующая таблица ReUI показывает «Нет файла», описание и блокирует скачивание/restore. Для both/missing остаётся запрос S3; состояние unknown и старый DTO не блокируются по догадке. Проверка наличия файла перед импортом остаётся обязательной на backend. + +Подтверждение удаления отсутствующего локального файла обещает только удаление строки истории. UI отправляет recordOnly=true и требует HTTP204 с X-Backup-Delete-Mode:record-only. Backend повторно проверяет missing/local/no-S3; появившийся файл даёт409 с сохранением файла и каталога. В этом режиме unlink никогда не вызывается, включая внешнее появление файла после проверки. Общий gate обеспечивает координацию одного процесса; несколько writers/instances остаются отдельной приёмкой. + +Contracts/backend build, TypeScript и scoped ESLint прошли. test:backups прошёл после разрешённого запуска локальных HTTP-фикстур: первоначальный sandbox EACCES127.0.0.1 не был ошибкой приложения. E2E:37 исходных сценариев file/data/operations/storage и2 новых record-only receipt; после поздней защиты повторены20 затронутых сценариев. Итого39 уникальных, повторные запуски не прибавлены. Production owned SQL/API:5 статусов, download200/404, restore400/not-applied/nativeRequests0, сохранение каталога, recreated-file409 и record-only204/header. Собственные DB/role/container удалены; S3/CHR из этой SQL-фикстуры не опрашивались. + +Production backend/frontend ux-backups237 собраны и развёрнуты:508 backend source/1068 compiled и529 frontend source совпали с локальными манифестами. Реальный Portal login и UI1440/390 показали10 существующих local/missing записей, disabled download/restore, корректное описание удаления (только открытие и отмена), pageerrors0/backupwrites0/globaloverflow0. Исходные10 SQL-строк сравнивались целиком до/после; ни одна не удалена. Отсутствующие старые файлы не восстановлены и не объявлены доступными. Приватный SQL-снимок удалён после сверки. Откат: backend ux-backup234/frontend ux-routing218 сохранены. + +Доказательства: [SQL/API](ux-ui/acceptance/backup-availability237.json), [live UI](ux-ui/acceptance/backups237-live-ui.json), [production сверка](ux-ui/acceptance/backups237-deployment.json). Снимки: [ПК](ux-ui/screens/backups237-missing-desktop.png), [телефон](ux-ui/screens/backups237-missing-mobile.png). + +| Референс | Схема доработки | +| --- | --- | +| [ReUI Data Grid Filtering2](https://reui.io/preview/base/data-grid-filtering-2?ref=mcp) | История → статус файла → доступные действия → подтверждённый результат; missing → только запись → проверка409/receipt204 | + +Следующий238 фиксирует уже выполненное длительное REST-наблюдение. Затем — S3 restore через реальный UI в пределах собственного bridge и retention. Полная конфигурация CHR, arbitrary PKI, другие ОС, public IPv6, multi-instance и внешние jobs не приняты этим блоком. + ## Актуальная точка продолжения — 2026-10-14 Этапы0–11 завершены в локальных границах журнала. История выполненных внешних блоков и доказательства сохранены в [журнале](ux-ui-stage-12.md) и [протоколе](ux-ui-external-acceptance.md). Реальная Telegram доставка201 и Portal SSO195–199 приняты в описанных границах. Multi-instance, внешние аккаунты/клиентские ОС и оставшиеся профильные сетевые ограничения открыты. diff --git a/docs/ux-ui-progress.md b/docs/ux-ui-progress.md index 23fdca6a..b7fe0db6 100644 --- a/docs/ux-ui-progress.md +++ b/docs/ux-ui-progress.md @@ -1,6 +1,6 @@ # UX/UI: журнал реализации -Актуальное продолжение 2026-10-14:236 — по приоритету пользователя проверен REST:384 paired samples из workstation/Debian +40 diagnostics, отказов0; current credentials/policies/addresses/service load исправны. На7.24.5 сохранены828/304 rest-api sessions и2 api на каждом; после3 дополнительных reads delta0. Найден vendor fix inactive REST sessions в7.25rc, это гипотеза, причинность401/500 не доказана. Runtime ux-backup234/ux-routing218 unchanged. Следующий REST шаг — корреляция сбоя/renewal или согласованный firmware control; общий следующий237 — missing local files UX. Этап12.5 открыт. +Актуальное продолжение 2026-10-14:237 — история бэкапов показывает подтверждённое отсутствие локального файла; скачивание/restore заблокированы, удаление только записи требует отдельного режима и receipt. Production SQL/API, 39 уникальных E2E и live UI ПК/телефон приняты в записанных границах. Backend/frontend ux-backups237; исходные10 строк каталога сохранены без изменений. Следующий238 — длительное REST-наблюдение; затем S3 restore через UI и retention. Этап12.5 открыт. Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md). @@ -38,6 +38,24 @@ | 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 | | 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка12.3.83 в границах журнала. Внешняя12.5: блоки1–236 завершены в записанных scopes, этап открыт. Runtime backend ux-backup234/frontend ux-routing218; backend25/UI52 и дополнительные SQL/UDP222 прошли. | +## 12.5.237 — отсутствующие файлы бэкапов и безопасное удаление записи (2026-10-14) + +API добавляет необязательный localFileStatus: available/missing/unknown/not-stored. Локальные проверки ограничены восемью workers и не опрашивают S3. Ошибка доступа/каталог/некорректный путь не превращаются в «файл отсутствует». Для local/missing существующая таблица ReUI показывает «Нет файла», описание и блокирует скачивание/restore. Для both/missing остаётся запрос S3; состояние unknown и старый DTO не блокируются по догадке. Проверка наличия файла перед импортом остаётся обязательной на backend. + +Подтверждение удаления отсутствующего локального файла обещает только удаление строки истории. UI отправляет recordOnly=true и требует HTTP204 с X-Backup-Delete-Mode:record-only. Backend повторно проверяет missing/local/no-S3; появившийся файл даёт409 с сохранением файла и каталога. В этом режиме unlink никогда не вызывается, включая внешнее появление файла после проверки. Общий gate обеспечивает координацию одного процесса; несколько writers/instances остаются отдельной приёмкой. + +Contracts/backend build, TypeScript и scoped ESLint прошли. test:backups прошёл после разрешённого запуска локальных HTTP-фикстур: первоначальный sandbox EACCES127.0.0.1 не был ошибкой приложения. E2E:37 исходных сценариев file/data/operations/storage и2 новых record-only receipt; после поздней защиты повторены20 затронутых сценариев. Итого39 уникальных, повторные запуски не прибавлены. Production owned SQL/API:5 статусов, download200/404, restore400/not-applied/nativeRequests0, сохранение каталога, recreated-file409 и record-only204/header. Собственные DB/role/container удалены; S3/CHR из этой SQL-фикстуры не опрашивались. + +Production backend/frontend ux-backups237 собраны и развёрнуты:508 backend source/1068 compiled и529 frontend source совпали с локальными манифестами. Реальный Portal login и UI1440/390 показали10 существующих local/missing записей, disabled download/restore, корректное описание удаления (только открытие и отмена), pageerrors0/backupwrites0/globaloverflow0. Исходные10 SQL-строк сравнивались целиком до/после; ни одна не удалена. Отсутствующие старые файлы не восстановлены и не объявлены доступными. Приватный SQL-снимок удалён после сверки. Откат: backend ux-backup234/frontend ux-routing218 сохранены. + +Доказательства: [SQL/API](ux-ui/acceptance/backup-availability237.json), [live UI](ux-ui/acceptance/backups237-live-ui.json), [production сверка](ux-ui/acceptance/backups237-deployment.json). Снимки: [ПК](ux-ui/screens/backups237-missing-desktop.png), [телефон](ux-ui/screens/backups237-missing-mobile.png). + +| Референс | Схема доработки | +| --- | --- | +| [ReUI Data Grid Filtering2](https://reui.io/preview/base/data-grid-filtering-2?ref=mcp) | История → статус файла → доступные действия → подтверждённый результат; missing → только запись → проверка409/receipt204 | + +Следующий238 фиксирует уже выполненное длительное REST-наблюдение. Затем — S3 restore через реальный UI в пределах собственного bridge и retention. Полная конфигурация CHR, arbitrary PKI, другие ОС, public IPv6, multi-instance и внешние jobs не приняты этим блоком. + ## 12.5.236 — коррелированная диагностика REST и гипотеза RouterOS-сессий (2026-10-14) По поручению пользователя остаток окна направлен на REST. Исторические220/224401 получены непосредственно от104.165.244.7, включая независимый HTTP Connection close; UI/кэш приложения не являются единственным источником. У старого221500 на /interface/gre не сохранён detail/body, поэтому назначить ему причину по HTTP code нельзя. diff --git a/docs/ux-ui-remaining-acceptance.md b/docs/ux-ui-remaining-acceptance.md index 13a026f0..e0ac665b 100644 --- a/docs/ux-ui-remaining-acceptance.md +++ b/docs/ux-ui-remaining-acceptance.md @@ -1,10 +1,28 @@ # Оставшаяся внешняя приёмка — 2026-10-14 -Актуальное продолжение 2026-10-14:236 — по приоритету пользователя проверен REST:384 paired samples из workstation/Debian +40 diagnostics, отказов0; current credentials/policies/addresses/service load исправны. На7.24.5 сохранены828/304 rest-api sessions и2 api на каждом; после3 дополнительных reads delta0. Найден vendor fix inactive REST sessions в7.25rc, это гипотеза, причинность401/500 не доказана. Runtime ux-backup234/ux-routing218 unchanged. Следующий REST шаг — корреляция сбоя/renewal или согласованный firmware control; общий следующий237 — missing local files UX. Этап12.5 открыт. +Актуальное продолжение 2026-10-14:237 — история бэкапов показывает подтверждённое отсутствие локального файла; скачивание/restore заблокированы, удаление только записи требует отдельного режима и receipt. Production SQL/API, 39 уникальных E2E и live UI ПК/телефон приняты в записанных границах. Backend/frontend ux-backups237; исходные10 строк каталога сохранены без изменений. Следующий238 — длительное REST-наблюдение; затем S3 restore через UI и retention. Этап12.5 открыт. -Это актуальная матрица после 12.5.236. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии. +Это актуальная матрица после 12.5.237. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии. -Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-backup234`, frontend `ux-routing218`; production lab с195 использует AUTH_REQUIRED=true и Portal1.3.1. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись. +Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-backups237`, frontend `ux-backups237`; production lab с195 использует AUTH_REQUIRED=true и Portal1.3.1. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись. + +## 12.5.237 — отсутствующие файлы бэкапов и безопасное удаление записи (2026-10-14) + +API добавляет необязательный localFileStatus: available/missing/unknown/not-stored. Локальные проверки ограничены восемью workers и не опрашивают S3. Ошибка доступа/каталог/некорректный путь не превращаются в «файл отсутствует». Для local/missing существующая таблица ReUI показывает «Нет файла», описание и блокирует скачивание/restore. Для both/missing остаётся запрос S3; состояние unknown и старый DTO не блокируются по догадке. Проверка наличия файла перед импортом остаётся обязательной на backend. + +Подтверждение удаления отсутствующего локального файла обещает только удаление строки истории. UI отправляет recordOnly=true и требует HTTP204 с X-Backup-Delete-Mode:record-only. Backend повторно проверяет missing/local/no-S3; появившийся файл даёт409 с сохранением файла и каталога. В этом режиме unlink никогда не вызывается, включая внешнее появление файла после проверки. Общий gate обеспечивает координацию одного процесса; несколько writers/instances остаются отдельной приёмкой. + +Contracts/backend build, TypeScript и scoped ESLint прошли. test:backups прошёл после разрешённого запуска локальных HTTP-фикстур: первоначальный sandbox EACCES127.0.0.1 не был ошибкой приложения. E2E:37 исходных сценариев file/data/operations/storage и2 новых record-only receipt; после поздней защиты повторены20 затронутых сценариев. Итого39 уникальных, повторные запуски не прибавлены. Production owned SQL/API:5 статусов, download200/404, restore400/not-applied/nativeRequests0, сохранение каталога, recreated-file409 и record-only204/header. Собственные DB/role/container удалены; S3/CHR из этой SQL-фикстуры не опрашивались. + +Production backend/frontend ux-backups237 собраны и развёрнуты:508 backend source/1068 compiled и529 frontend source совпали с локальными манифестами. Реальный Portal login и UI1440/390 показали10 существующих local/missing записей, disabled download/restore, корректное описание удаления (только открытие и отмена), pageerrors0/backupwrites0/globaloverflow0. Исходные10 SQL-строк сравнивались целиком до/после; ни одна не удалена. Отсутствующие старые файлы не восстановлены и не объявлены доступными. Приватный SQL-снимок удалён после сверки. Откат: backend ux-backup234/frontend ux-routing218 сохранены. + +Доказательства: [SQL/API](ux-ui/acceptance/backup-availability237.json), [live UI](ux-ui/acceptance/backups237-live-ui.json), [production сверка](ux-ui/acceptance/backups237-deployment.json). Снимки: [ПК](ux-ui/screens/backups237-missing-desktop.png), [телефон](ux-ui/screens/backups237-missing-mobile.png). + +| Референс | Схема доработки | +| --- | --- | +| [ReUI Data Grid Filtering2](https://reui.io/preview/base/data-grid-filtering-2?ref=mcp) | История → статус файла → доступные действия → подтверждённый результат; missing → только запись → проверка409/receipt204 | + +Следующий238 фиксирует уже выполненное длительное REST-наблюдение. Затем — S3 restore через реальный UI в пределах собственного bridge и retention. Полная конфигурация CHR, arbitrary PKI, другие ОС, public IPv6, multi-instance и внешние jobs не приняты этим блоком. ## Остаток приёмки по группам — 2026-10-14 @@ -15,7 +33,7 @@ | REST и достоверность данных | Ошибки OSPF/BFD/BGP/GRE/WAN215–221 явные; latest API smoke222 прошёл | Correlated236:384 samples/40 diagnostics без отказов; current policies/address/load исправны.828/304 retained REST sessions и vendor inactive-session fix — гипотеза; причинность401/500,10min renewal/version control остаются открытыми | | Клиентские ОС и внешняя сеть | CHR↔CHR/Linux, private IPv4/ULA и synthetic IPv6/IPFIX; Android full-tunnel/reconnect227 подтверждены пользователем | Windows/macOS/iOS VPN, расширенная Android приёмка, независимые WAN/multi-WAN и public IPv6; public IPv6 на текущем стенде отсутствует | | Масштаб и длительная устойчивость | Контролируемые lock/dedupe/loss/recovery и короткие native проверки | Несколько backend/worker/writers, длительный rekey/REST/traffic, physical disconnect и maximum throughput | -| Внешние хранилища и jobs | Локальные API/errors/RBAC/owned SQL; реальные Portal1.3.1/Telegram195–201 и Selectel S3/client/API/ownSQL228–229 | Large native exports проверены HTTP fixture; S3 restore через UI, missing local files UX, миграция между buckets/multi-instance и retention; provider/container/Gitea/MaxMind jobs с соответствующими endpoints/аккаунтами; private/paid credentials не выдумывать | +| Внешние хранилища и jobs | Локальные API/errors/RBAC/owned SQL; реальные Portal1.3.1/Telegram195–201 и Selectel S3/client/API/ownSQL228–229 | Large native exports проверены HTTP fixture; Missing local files UX237 принят; S3 restore через UI, миграция между buckets/multi-instance и retention; provider/container/Gitea/MaxMind jobs с соответствующими endpoints/аккаунтами; private/paid credentials не выдумывать | | Расширенные сетевые конфигурации | GRE/WG/VXLAN/IPsec/OSPF/BFD/BGP сценарии и точные границы записаны | from-pool/EUI-64/multiple-address import/export, outer IPv6, произвольная PKI/OID/policy/path-length и длительные переходы; BFD-only gate гарантией не стал | | Общий UX, доступность и производительность | Полная UI192 исторически; latest backend25/UI52, scoped contrast/live218 и keyboard206 | Свежая UI226 принята в записанных границах; профильный performance и ручная accessibility/screen-reader приёмка; scoped axe не полный WCAG | | Границы выпуска | План/доказательства/датированные блоки сохранены; коммиты локальные | Определить требуемые конфигурации и принять результат в этих границах; невыполненные варианты остаются явными ограничениями | @@ -42,7 +60,7 @@ Portal offline JWT действует доexp после logout/role change; э ## Следующая последовательность — 2026-10-14 -1. **215 — legacy OSPF/BFD read errors:** пять GET endpoints скрывают native failures; сохранить success envelopes, различить empty/partial/all-failed/disabled contexts в own SQL/HTTP fixtures. +1. **238 — REST длительное окно:** сохранить протокол наблюдения более10 минут и изменения API session records без недоказанного объяснения прежних401/500. Затем — S3 restore через UI и retention только собственных объектов. 2. **Профильный контроль:** для новых изменений выполнять затронутые SQL/API/UI проверки. Общая регрессия192 выполнена; не повторять её без изменений общей основы или нового основания. 3. **Внешние зависимости:** Portal issuer/login/revoke, Telegram bot/chat/разрешённое сообщение, клиентские ОС, независимые WAN/public IPv6 и scale/multi-instance — отдельные группы по таблице выше. Ограничения текущего стенда не превращать в обещание приёмки всех конфигураций. diff --git a/docs/ux-ui-stage-12.md b/docs/ux-ui-stage-12.md index d8a7f2e4..61b843ce 100644 --- a/docs/ux-ui-stage-12.md +++ b/docs/ux-ui-stage-12.md @@ -1,6 +1,6 @@ # Этап 12: итоговая приёмка UX/UI -Актуальное продолжение 2026-10-14:236 — по приоритету пользователя проверен REST:384 paired samples из workstation/Debian +40 diagnostics, отказов0; current credentials/policies/addresses/service load исправны. На7.24.5 сохранены828/304 rest-api sessions и2 api на каждом; после3 дополнительных reads delta0. Найден vendor fix inactive REST sessions в7.25rc, это гипотеза, причинность401/500 не доказана. Runtime ux-backup234/ux-routing218 unchanged. Следующий REST шаг — корреляция сбоя/renewal или согласованный firmware control; общий следующий237 — missing local files UX. Этап12.5 открыт. +Актуальное продолжение 2026-10-14:237 — история бэкапов показывает подтверждённое отсутствие локального файла; скачивание/restore заблокированы, удаление только записи требует отдельного режима и receipt. Production SQL/API, 39 уникальных E2E и live UI ПК/телефон приняты в записанных границах. Backend/frontend ux-backups237; исходные10 строк каталога сохранены без изменений. Следующий238 — длительное REST-наблюдение; затем S3 restore через UI и retention. Этап12.5 открыт. План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push. @@ -4152,6 +4152,24 @@ Real Portal/browser API, provider local verified: создан один job ро Runtime backend ux-backup234/frontend ux-routing218 healthy; новое application image для volume-only fix не требовалось. Пароли CHR не менялись, S3 mutations0 в235, configs body/JWT не опубликованы, private local manifest удалён. Исходные10 missing local files не восстановлены и records не удалены. Force-recreate — не host reboot/power loss/fsync/DR приёмка. Далее236 — UX недоступных local files, затем version retention границы и оставшиеся7 группы матрицы; multi-instance guard не принимается. Этап12.5 открыт. +## 12.5.237 — отсутствующие файлы бэкапов и безопасное удаление записи (2026-10-14) + +API добавляет необязательный localFileStatus: available/missing/unknown/not-stored. Локальные проверки ограничены восемью workers и не опрашивают S3. Ошибка доступа/каталог/некорректный путь не превращаются в «файл отсутствует». Для local/missing существующая таблица ReUI показывает «Нет файла», описание и блокирует скачивание/restore. Для both/missing остаётся запрос S3; состояние unknown и старый DTO не блокируются по догадке. Проверка наличия файла перед импортом остаётся обязательной на backend. + +Подтверждение удаления отсутствующего локального файла обещает только удаление строки истории. UI отправляет recordOnly=true и требует HTTP204 с X-Backup-Delete-Mode:record-only. Backend повторно проверяет missing/local/no-S3; появившийся файл даёт409 с сохранением файла и каталога. В этом режиме unlink никогда не вызывается, включая внешнее появление файла после проверки. Общий gate обеспечивает координацию одного процесса; несколько writers/instances остаются отдельной приёмкой. + +Contracts/backend build, TypeScript и scoped ESLint прошли. test:backups прошёл после разрешённого запуска локальных HTTP-фикстур: первоначальный sandbox EACCES127.0.0.1 не был ошибкой приложения. E2E:37 исходных сценариев file/data/operations/storage и2 новых record-only receipt; после поздней защиты повторены20 затронутых сценариев. Итого39 уникальных, повторные запуски не прибавлены. Production owned SQL/API:5 статусов, download200/404, restore400/not-applied/nativeRequests0, сохранение каталога, recreated-file409 и record-only204/header. Собственные DB/role/container удалены; S3/CHR из этой SQL-фикстуры не опрашивались. + +Production backend/frontend ux-backups237 собраны и развёрнуты:508 backend source/1068 compiled и529 frontend source совпали с локальными манифестами. Реальный Portal login и UI1440/390 показали10 существующих local/missing записей, disabled download/restore, корректное описание удаления (только открытие и отмена), pageerrors0/backupwrites0/globaloverflow0. Исходные10 SQL-строк сравнивались целиком до/после; ни одна не удалена. Отсутствующие старые файлы не восстановлены и не объявлены доступными. Приватный SQL-снимок удалён после сверки. Откат: backend ux-backup234/frontend ux-routing218 сохранены. + +Доказательства: [SQL/API](ux-ui/acceptance/backup-availability237.json), [live UI](ux-ui/acceptance/backups237-live-ui.json), [production сверка](ux-ui/acceptance/backups237-deployment.json). Снимки: [ПК](ux-ui/screens/backups237-missing-desktop.png), [телефон](ux-ui/screens/backups237-missing-mobile.png). + +| Референс | Схема доработки | +| --- | --- | +| [ReUI Data Grid Filtering2](https://reui.io/preview/base/data-grid-filtering-2?ref=mcp) | История → статус файла → доступные действия → подтверждённый результат; missing → только запись → проверка409/receipt204 | + +Следующий238 фиксирует уже выполненное длительное REST-наблюдение. Затем — S3 restore через реальный UI в пределах собственного bridge и retention. Полная конфигурация CHR, arbitrary PKI, другие ОС, public IPv6, multi-instance и внешние jobs не приняты этим блоком. + ## 12.5.236 — коррелированная диагностика REST и гипотеза RouterOS-сессий (2026-10-14) По поручению пользователя остаток окна направлен на REST. Исторические220/224401 получены непосредственно от104.165.244.7, включая независимый HTTP Connection close; UI/кэш приложения не являются единственным источником. У старого221500 на /interface/gre не сохранён detail/body, поэтому назначить ему причину по HTTP code нельзя. diff --git a/docs/ux-ui-test-server.md b/docs/ux-ui-test-server.md index 830f0ed3..aeaae4b5 100644 --- a/docs/ux-ui-test-server.md +++ b/docs/ux-ui-test-server.md @@ -1,6 +1,6 @@ # Тестовый сервер UX/UI — 2026-10-10 -Актуальное продолжение 2026-10-14:236 — по приоритету пользователя проверен REST:384 paired samples из workstation/Debian +40 diagnostics, отказов0; current credentials/policies/addresses/service load исправны. На7.24.5 сохранены828/304 rest-api sessions и2 api на каждом; после3 дополнительных reads delta0. Найден vendor fix inactive REST sessions в7.25rc, это гипотеза, причинность401/500 не доказана. Runtime ux-backup234/ux-routing218 unchanged. Следующий REST шаг — корреляция сбоя/renewal или согласованный firmware control; общий следующий237 — missing local files UX. Этап12.5 открыт. +Актуальное продолжение 2026-10-14:237 — история бэкапов показывает подтверждённое отсутствие локального файла; скачивание/restore заблокированы, удаление только записи требует отдельного режима и receipt. Production SQL/API, 39 уникальных E2E и live UI ПК/телефон приняты в записанных границах. Backend/frontend ux-backups237; исходные10 строк каталога сохранены без изменений. Следующий238 — длительное REST-наблюдение; затем S3 restore через UI и retention. Этап12.5 открыт. | Параметр | Проверенное состояние | | --- | --- | @@ -34,6 +34,24 @@ OSPF84: real GRE Full adjacency/private routes/Ping3/3 и4 live PC/320px URL/bro BFD85: Up/Full/own route/Ping,4 live UI и loss/withdrawal/recovery приняты; exact own cleanup8 коллекций×2 passed. Withdrawal5,245ms не подтверждает sub-second BFD timing; этот вопрос открыт. Runtime routing83 без новой сборки. [Отчёт](ux-ui/acceptance/ospf-bfd-loss-2026-10-09.json). +## 12.5.237 — отсутствующие файлы бэкапов и безопасное удаление записи (2026-10-14) + +API добавляет необязательный localFileStatus: available/missing/unknown/not-stored. Локальные проверки ограничены восемью workers и не опрашивают S3. Ошибка доступа/каталог/некорректный путь не превращаются в «файл отсутствует». Для local/missing существующая таблица ReUI показывает «Нет файла», описание и блокирует скачивание/restore. Для both/missing остаётся запрос S3; состояние unknown и старый DTO не блокируются по догадке. Проверка наличия файла перед импортом остаётся обязательной на backend. + +Подтверждение удаления отсутствующего локального файла обещает только удаление строки истории. UI отправляет recordOnly=true и требует HTTP204 с X-Backup-Delete-Mode:record-only. Backend повторно проверяет missing/local/no-S3; появившийся файл даёт409 с сохранением файла и каталога. В этом режиме unlink никогда не вызывается, включая внешнее появление файла после проверки. Общий gate обеспечивает координацию одного процесса; несколько writers/instances остаются отдельной приёмкой. + +Contracts/backend build, TypeScript и scoped ESLint прошли. test:backups прошёл после разрешённого запуска локальных HTTP-фикстур: первоначальный sandbox EACCES127.0.0.1 не был ошибкой приложения. E2E:37 исходных сценариев file/data/operations/storage и2 новых record-only receipt; после поздней защиты повторены20 затронутых сценариев. Итого39 уникальных, повторные запуски не прибавлены. Production owned SQL/API:5 статусов, download200/404, restore400/not-applied/nativeRequests0, сохранение каталога, recreated-file409 и record-only204/header. Собственные DB/role/container удалены; S3/CHR из этой SQL-фикстуры не опрашивались. + +Production backend/frontend ux-backups237 собраны и развёрнуты:508 backend source/1068 compiled и529 frontend source совпали с локальными манифестами. Реальный Portal login и UI1440/390 показали10 существующих local/missing записей, disabled download/restore, корректное описание удаления (только открытие и отмена), pageerrors0/backupwrites0/globaloverflow0. Исходные10 SQL-строк сравнивались целиком до/после; ни одна не удалена. Отсутствующие старые файлы не восстановлены и не объявлены доступными. Приватный SQL-снимок удалён после сверки. Откат: backend ux-backup234/frontend ux-routing218 сохранены. + +Доказательства: [SQL/API](ux-ui/acceptance/backup-availability237.json), [live UI](ux-ui/acceptance/backups237-live-ui.json), [production сверка](ux-ui/acceptance/backups237-deployment.json). Снимки: [ПК](ux-ui/screens/backups237-missing-desktop.png), [телефон](ux-ui/screens/backups237-missing-mobile.png). + +| Референс | Схема доработки | +| --- | --- | +| [ReUI Data Grid Filtering2](https://reui.io/preview/base/data-grid-filtering-2?ref=mcp) | История → статус файла → доступные действия → подтверждённый результат; missing → только запись → проверка409/receipt204 | + +Следующий238 фиксирует уже выполненное длительное REST-наблюдение. Затем — S3 restore через реальный UI в пределах собственного bridge и retention. Полная конфигурация CHR, arbitrary PKI, другие ОС, public IPv6, multi-instance и внешние jobs не приняты этим блоком. + ## Развёртывание приложения Чистые frontend/backend build contexts подготовлены по .gitea/workflows/docker.yml из закреплённого Git HEAD;образы собраны на сервере без push. Локально docker CLI сейчас отсутствует, на сервере доступен Docker. В корневом .dockerignore исключён backend, поэтому обычный backend build из корня не повторяет CI: использовать отдельный backend context, как main workflow. Не передавать .env.local,backend/.env,ключи и локальные node_modules/.next. diff --git a/docs/ux-ui/acceptance/backup-availability237.json b/docs/ux-ui/acceptance/backup-availability237.json new file mode 100644 index 00000000..104bd0c7 --- /dev/null +++ b/docs/ux-ui/acceptance/backup-availability237.json @@ -0,0 +1,40 @@ +{ + "date": "2026-10-14", + "block": "12.5.237", + "passed": true, + "checks": [ + { + "listStates": { + "directory237": "unknown", + "remote237": "not-stored", + "both237": "missing", + "missing237": "missing", + "available237": "available" + } + }, + { + "availableDownload": 200 + }, + { + "missingDownload": 404 + }, + { + "missingRestore": 400, + "outcome": "not-applied", + "nativeRequests": 0 + }, + { + "failurePreservesCatalog": true + }, + { + "recreatedFilePreserved": 409 + }, + { + "missingRecordDeletion": 204, + "mode": "record-only" + } + ], + "externalS3Contacts": 0, + "chrContacts": 0, + "ownedDatabaseAndRoleRemoved": true +} diff --git a/docs/ux-ui/acceptance/backups237-deployment.json b/docs/ux-ui/acceptance/backups237-deployment.json new file mode 100644 index 00000000..b463cb32 --- /dev/null +++ b/docs/ux-ui/acceptance/backups237-deployment.json @@ -0,0 +1,35 @@ +{ + "date": "2026-10-14", + "block": "12.5.237", + "backendSourceMatched": 508, + "backendCompiledMatched": 1068, + "frontendSourceMatched": 529, + "originalCatalogAllFieldsMatched": true, + "originalCatalogRows": 10, + "privateCatalogSnapshotRemoved": true, + "containers": { + "backend": { + "tag": "mmapp-test/backend:ux-backups237", + "imageId": "sha256:184aa8844b1c3aaa12e06ee47332a214e84e6962405360acb4026b392dc407ed", + "state": "running", + "health": "healthy", + "backupsMounts": [ + { + "source": "/opt/mmapp-test/data/backups", + "destination": "/app/storage/backups" + } + ] + }, + "frontend": { + "tag": "mmapp-test/frontend:ux-backups237", + "imageId": "sha256:baf9989cde6527715890e608c2c3271c5ea40dfb235ee47a48e21939b0ec1fd0", + "state": "running", + "health": null, + "backupsMounts": [] + } + }, + "rollbackTags": { + "backend": "ux-backup234", + "frontend": "ux-routing218" + } +} diff --git a/docs/ux-ui/acceptance/backups237-live-ui.json b/docs/ux-ui/acceptance/backups237-live-ui.json new file mode 100644 index 00000000..0ccdee4b --- /dev/null +++ b/docs/ux-ui/acceptance/backups237-live-ui.json @@ -0,0 +1,24 @@ +{ + "date": "2026-10-14", + "block": "12.5.237", + "realPortalLogin": true, + "noMocks": true, + "existingRows": 10, + "allLocalFilesMissing": true, + "downloadAndRestoreDisabled": true, + "recordOnlyDialogCancelled": true, + "pageErrors": [], + "backupWrites": 0, + "screens": [ + { + "width": 1440, + "globalOverflow": false, + "screenshot": "docs/ux-ui/screens/backups237-missing-desktop.png" + }, + { + "width": 390, + "globalOverflow": false, + "screenshot": "docs/ux-ui/screens/backups237-missing-mobile.png" + } + ] +} diff --git a/docs/ux-ui/screens/backups237-missing-desktop.png b/docs/ux-ui/screens/backups237-missing-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..4058f6319cb47cc5fd5b03e38d97131a6e55247b GIT binary patch literal 175682 zcmd?QWmjCy7A;H+l3*bO2^xY0574*=cXw#q-5o-3cXxLP?hU~mx^X9HOaAkS@=Gpa{QUBzw52vwV%4RlywQ@l>UbSw zX|>weN5|5&id< zQSV-0{P!O7YmL|cUgi!fAcm45-M4Qe!^2p&4T*_~pK#7mQ9VROMGI^H&!c67+S&-v zZ9d`R8k?HFfBo`h4lZs)zbRdLMaA@YaaUIi3zfI_|2(qWEPULwqO1%|8osl$V`6Ol z7SIHNKsGlG@0D%jTv$Y%F3gLhK9BpD}DX%hPPAI!0g>!hJAU^Yl3i~{J;Qzm;E^;I;%Y) zK3)P_tj68Kxd7}p8&Vtwnu6h!#E5zKn*bUeI8bgy>{YmEhKIMa%D&N6lvx3e%!ml~ zhlVFcn7)#o=f|~B}_sL9%yK2|18P> zCO8}D881049H7Sw+|t?k!TLkb`5uxW_6rH6n~;{4Hj1Si|NlHnQCS&bXCjk{F~72} zGc$GWKhDIP^_}HG(=LGEX=!;D3(xKCZTrc@$qznY!gJH^Q&@BF8psCj>yyRf0ssI? zPjkpT@x#I-=j~Q_9bp>A+deO+UjN1+WN?*;=-H4!{9)PH_>b+sKM05W0{TToiB#nn zKDT*#d~~0LNC=^-n2$0}M<;jbxDs1sBL`4fXtIDKz@fg8F0g?Z+JeKRwG{N`j2aK5ukI0GdT zX@-uAL)&ly)q;jLI4qfA9C~@V$3$xq8tu{XJlS=q^a=6zyqzyDE*3QxT_)|UtpS|& zvF<&$OO0oNfq}m(=Ao6^X6os6ZtK1;uN0M(e(3$uVoA+trZ~%HJEE9|4vg%K(o(iL zpZv&iJ6!^@!5<4*Io(Cd|+1>=^KZ8jk^1aJwwW%mGKBdIo)cEVF zJl|j5xP{rO{D{bZGnYNMx_UfObx0%WV35Kj;rFFPF75U!dvGzl-3~LWXwunpC*0)4 zi)VRKaj+^hyikafNG@ls6Z!UPdVbzW=?7DGl;64Y#8Dbdh#G2Lq?#H9A?AeX1?7dM zFai@{7hLs5uhV~*KPj6#8x6q9iVP17i&Ur30L$7D2xs=Q_~#thNw5<5!6;H+JqUfGGOm>%NB7jZzCK5@$8xO3OB9;g|uo@A?XY-Cr(f?hEq?A?A?* zBugmZShs7;^~nM(D@duif5Sps!&dHJWW-ThSlAn@taqZ`HwXvz^;=k2QBtw@9A^;| z9l=lca#U2goc7=!h`eKqdA)E)x6UCD;6AjW)JInu^^#=OM=pm;ywCq*NwggPo3^yN z+9qxf7UO%4dMIpZmJZ6ws>?>`F*)`MHAK!!;aalTf%^`1CUZYxodm49u&3?#T7<;<^Y zK+f5C9GADV*K;V(K-Q~mN&HOO*K;`^vE7ibd1h{){#d~#@A6Q&$G&u}16R8BL@G*R z3Ay2i8?{a@a*XZ-?rj;eY?|Sa0=u;i4}A& z8fJ95u3|c{S>4MLn{W!*h*Gl=>d&kCQ}`jl7bwsQrBkGkPM>8l>vpmzT^3j?PC@OT|4oku5Epl=c&Wse@Y%2cMtH-3o#O#Fr5Uwk++musGK(^q@Zw@qbtZYLZXt5w0WmSioyE{rg<`MQ70iT=rl_d+ z4e4XdyIh$p7BB?D@^w?K1_-*pzmFjm&}_9t_bHCxc5@|WbHvxx`ubrC&1$|%UQW(n zqPw9iAxbt9dlOqO6V1WJ#rGaY!}s;8tsKkt=pR5fE!VenPQQ~(sX@8iv`{_=E?*%$ zyF=^;!x1G;5|X)&A=w-g=KwVefMb`%)_U3%!7G7>-K9msQz=sqi}`m*NP<_UJ`d;hYgNl>^|K-jZS?Ds1%!+9@MnjCNff;W^gEwbrWXZj z$L>?EeZZGFA+AmnL|z0QHKpn;NlibJidyp`kS913jaI;ey=H#}UU`35Eu|({ZE-nN zonX=x@9n_nD@pS+47SrKw~;^L100EOHE6oq*OI0VX-^0ZsU#_)T@KdKfVN`Qhj)fu%|3;Zt(2o#YLO5gSxVE zQ7ujznQ4-XmHOSiYY7j{H^!zW%UMuoKzQB7HE}z1V)|{69vsBN!a|Q*(HPYj+~zqI z`}fu3{nI-9NnTnx;e?D~abjYwr^gVs@NOcDn-PAD$H%8j5@WUo8Cz_{4k>UvUUDI5 z(!UPJ{ecIT<#aWd7yd5ocNazS3sy_s4bJ=&2n;=9feda*$e8DuujPxI1vKz@S!`$x zj}3zrG`UYJ2J@I}ME08~cGJ8c7>UPQf3=L7G4`1z?`>$cc(rKROYSCErPT0^ehP=s zCMsv*Vt;-re-zUta-v3g;>g&bTnlw4BgvKpcdsq?3Z;xkba~(Bt8hu3tCJLkUDnAG z@zC@~T!%FLcHp3CaiIftz{_{DmaK|r)#Mn=yPvPCLTk6EW>^OlQ|mZdmZ~Aw*eMK; zJ-sqnDUQM)!8fT*j;RC3=Mk<+CaG)Dcp#U*!5Mu3{Xa1UZOc{(iC$(+@H+Rd+rd|p z`=eq@YAu6j5ejX#K|k>GGYM|Q;C6T~5Fue?VZr>m((VZbqx{oq?laE^nG}|3*QO>_ zHT3j_RVC)X+Z?ZaaZvfSI~FJnmzLy9PM+S`XE}-3{B0hDOVGQT)MO-BoL!?=#+R)>9eTGa#Smnx|#_W;^q*5aM>QNPdjv~S0`T|%Ib06 zgLMpbyUC#Qr2i(MTTazU1%HgfdDC=*LR{-ub6@RV-}slcUX4a?cm>hVw_XK$QiIk z%;NpS7vYOx2WRI(aMW_M-E2up_+WBTZ{?-%-UFJ(sJD$asjs)jjYaPeWu1NmN-MyZ z`RRPc`6!>1=RD2g!2q=w#ig0*d_IOD=Wf1}R`0UzIn??IvB}yrLdeIW6RsL?!~n|`!0=!<9EpVPUpMTZ*l6V6~dHjM!io&dgHdVGxj!X z^J2I6WtHhczaQST*0~wIw3-o8{9O=Jqu*k+zZ)=HxnoXcT|tw*Ihq*}FZrc!uBE{! z0+MOGs5~4P#wtm|NNr`}VJ%SgPMi}jxB{OWK%Oi~gN!uZ-A z5UF4x7B)eudz!{vX<#tBdEn-3g}T6V%TT^*#ul|4rHP5kDo-8Pr&oZHiQ-(mXQcsAQa zZz@PTajZQmgAW|=c|@m;i0~%YZa2!2HpXJ%?lsK5(G-`<|OS@m#q55pWREoT%LHv^T-bjKQcL&_Oua z_;)Wk$_3X4MSuA<0}o!OQTn&mtkYbiu8Dk_>HUysrq8DG)uH)>)0javcTFLmwG%zM zo3$})_4zxmS5e+v9~-V$XWfF!#F0e1dcOP*3#dQI_(37U_2BXq327>@)dlzI*c2JN zs;?{|q8fyCX}^C2^r%g1Pr?Z6YL_jy5MQ8BC)a(5gQe$G<(HN!;r55-;=Q1i5kJf= zf@e%cW!QUPPO|R$dR-@RPPU>8j6XG5U(eos&fj0Z{=m-QuRG1RKIXe{(e;8#6iXYF zb3Y1t?b7`2@J24THa&;^X=6R!&*?+ZUMCrE zs>g;*mHN4IpM$aLDZ7t=^H*c10e`kt>QI|YB1B9CAGgpNQmrvmweZeaWt)*q+ z9F8myO2_b#k8f^#-(~v9*&MA8%8_dPO>Xg=sSL;mvxe7APcQq_o6TqQ9r_+={C2u- z<`G@rm%f#>ko4Yvfh|h2zrWcdQehlXa#ESub>rbl+to97y24wculH$XzQ0`@(=G+$ zxx#k$qvCqnxt<-Py>=}e2EH;ASVPctVtR*BdjHfU-cZq={6JGejT0}1hjSInzqiwo%vrc+WVE%{3U(mdE~D2Z=wbQu2~RHrQfo|<=i!`5 zX}CVDI!yOAUa2wxB8NI(iQ7r*7}V3|A;5`Shhon$7+A;zvh)4VMSa-UUDr@tAS` z#0Wq654`%3QIcupamFgwh6HwEDPC)-s-r+Yo+QXsN85Yc+xOa~DXy1v&#I5B4NBp8 zzGX?ZQw0%I;FcMwoZrrY&m=|pRxjB8cH90C=4WnZIR9PX(P!fNt%!&Hp~BElx@V3) z?R%ba=~u9|=BAA@Ev;7ljCKdOjaYxH-0egE)YQ)o4i}nC;H0)js+)sTgy-2*Plt)8 zrn+7HFG@${-Sk zW@;fZ^!a{je*W-ar}gA!w#jB`3L21{Tx@(bD4#vmJ<=-<*3?`qFVDnf(2~gnB!z}( zK6xG#USnW{hleAIYh>j6WZYfn)zDCFfPl|Ro6n#Y@5jJSA8k*CyEku=lW`B{s+AN} za>?)!=*up>WOSBb{Uz=8kI0AaY7B8#k@ohbvlE-h#0F=H)+QgqOUkiAc;+zo&ahPG z3i;?<$X-}+)hoP6*kxzOZbwi^*5gyB^mX`yrG1;6?#4kCsV7CN5?8fR%Kc&!6;?B} z!5<@~FT{3*(H3uq#2KF%|k;NMW6+0lJfvql!%Z_Ifj}Z zLXL1SZATxaGJltnAU8hU^G^6J_abSFBVR62$0$@ecygqKAv%@V|pU`&F|mg7em5l zIIya}(oX#zWh{+VJpN)3WGbQ>&UawVu> z5_8ezwiS*K{@Rq@)Wi-}J2Wi#EdXrf1tk&^yPjmSE3zIM+ZC7R7U|xxh<$h(#C(`V zYjC2YDk-6g&(8>xL+P1sRvF@M&fPoGB=lyKRcibUU(RmgXU}f}^y0~L&l@d*ey1Ie z^;H-LGTwUnI@h3k4QPa?do4t+J8eieCJ&U0`Y8SMIdn&<$1+qOUm~kB`<-l zL{fgonIb1VQwc?6bekzs&3zFR@jbPwHRq<`k&%3Lo5J%cx*7~(BDR+F=;&xd4%=M4 z$Lzs@^k(Z}v|chz&*zmiOAz)oM3H(iE)Eh!<;p;yM>aa-qs%*s{0A*{ZZv#Fb8lC& z>nM$$7nfz+C^bH-hTH(znY=_tr#Q5Z;k|YZq1(41*Vj+J3r6y=wLh$&EJqQYpVdzr z2F7s4x-@u7+D8%VJn)gtA((X{hrcZM;=jX)u!bS26|s_hU6B$3Z0Phf0lqZtR`j13s@aX zT|?%V)SwdEuE5wR>N-d6e#U6WeC$fWrE+kWt+OBh96H{?)0$c5WQN{c(b)rL{>lpX z@`A?I$!fyDF{4h0ih_cXJjp!}?|l%W@+0Qq*3@h?9H@^it}5y`9KO8sF5Z#^0!hZ@ z4}yb9QhO}EY)y8tLtH2$%wOj@nWe}PXU)v0AkYdZ{nIUT1Sio%dD5u27c4f#49qt< zjP(RAV2;pY|MdMV!oz8ADpX8TQqr^-S}w1qCa0V$`46t^$&1ZTJ_86^a<+Y`MYB`mO5k>bSzsb>2Mp}4^t<{ z4XH4)HZUFUL*6F%6Rcf=MBQc@tR6mgk_tCV?2E%^JX_|o14|YFs1kh}b zfwFizxV32B&s;5an$#Ds{cY~6&8u7}@bl|RMF1fQgDV(K*SuD0HSgO!8y$acod!1K zgtpBgDTd}{hG{cVKjl;Z$#3ChKD^pH?Hozr#Szf+$RwH>vFJHRx7oVu3j`8x&ot>0 zw*!65`GyI;8}|eTIO$R+#T$z(WsUqt%Q*2{eUden4mcWuc;6EbOYcU4SZ zwK_fRGI+$bk*nrF7xsW_!>)1L{4nuukhbs=bw33TG!kq0)K3fW_Pn8>t`Vp5<>@fu z@T~pNl-oN`J<75>K!weEZ+9@E$qKOnbphtfDx2GX=?sh?N0tJ#B&aXC5aRPU`j_pr?KHV=U z!)#`HWm5XGu;7WJn|N0?oux~v#SN?`SW(%_kTkb<8NV-O`jrolyD#QErh0;PSkHGXWH!vygqwng-oP>o5bhdzLg z{Nzn+FDmrns=g%%)+fgh(?}b$^a+sSZV#Q!NR5Y%WhCO&33Qg$`4%5#jcsBaZ#y$c z=jf!A?f%k^2KK*SZA%UpgN~=jjurc5zFii)HBnc@!*RWQXFs!fzBLGlmtyKk(@{xZ=+5uL4THG0Dg9cY3{h{p%3ms^GLtLC|{p za4Jj8%{i4ibc4DZh0oQd6kH;obM77lK-zn9!_s zyqY2tiY8uSO64$H`xO)~3I;PXZEjX+X&yiuau=(0T4~?eqrE@7IXOs5NZ|AP6C)l? zqTS{W9*XO=TA%uDAZ+fu)iZ8lcd(6G>A&{-V~B|nF0R%T_{P&*t2PjDx57#U!c zmzJ9EHaj73=aQP5LD*BP?-rH+E+g5t)~0;tApTpDk4>WUC05j!Q|(hw){RwLC6#wYbwV9p(Bzsl{5ZHKokk~53mEu*eQ1~BVW|1~j%DL`XU0;$`^)_~CdPBKuW;1Ik9eNe!cb<` z=K1L*u#Y~sWPF^{e6&933{1>q_ows_95vp>?007|+*Uk&lYLtqLX(k_gquT zuv>?HDjNPv(ekn^LVtWq-DV!k0VC<(t&<#F`8Ov|)Z)Wi3D_Z879VUm0+(0=iR zT+akICOqRn?|b}h@(`$}Ca_jt-lHXl{cIOW+}g~*z>{OV{CD)%xhZ+5O9Bd5vs!!(+uF2(zD!OTkYkc^NfEqz zs&o5ttGAzsz=T}voxkQ|y%Q;LRMFD4^Yq$zY%Co%&OIEf=s5B zDo*Of-=OL^acS9i%Y^ugzEaP~I2#h6zL1d2Qj z`dMo>neAlg{3Bk1Rf2=sYWCNB;{UJ!e1e%=gHPz_SBZ%;*wn(7!*};CrqHC{0`R5O z^z>bDzs=Ho0-Z_jJRHm%gQ#{8IRE&sJEyK3cvg1y$t9ix9#b&OG4UrHoL8@qpF5!9 zrbwt3fUnI4Tf0@uuG@QinD`qU-8DJJinW3t99Vw*+5BFvumy+VuQ)g+1UqqY zNj8fRYeZA->FFMk93nh~bM@UsJMHEG!N|zS)BSa^mw9dt6CItAzWzU*tn3$7Ru$7F z(cqA>vM`vCg@wg<7LVCd1C3ub{3*u83iRw59v}bF!V?4ew9|t;Qc(B2nh0$?alF&( z*fy(B=sMn}zIznq$eNz?>8*R7i$2Pk05V*~VYcisWCgIAB$ujIKvcX~s4I9K1 zK>tp4UC@N)rZnkif8Bf_t)`CK*ruYwL54G*&TE?JSJQN)Jvza^QNiPLXBJD$?36)B zl$7p$EH4kSncehf?-)IN0&ykkLr$9!I1QK58T44Vhux+nh3<>!yO23MKigZ;)At-! zpT5H>ic{d_@d=a!edOmr7;3(PFO$FHjU81KkawW6je)E6AvPhyO$0BDqv7Tgv$GS2 z@eUBk=QRVt=CWK`sw{j$vHN(s#&05=N3#&Q;G{2ek{^eS(V1J%4893VPxFwrQ4Oke zI^+0o2($uS^Xl_PwTe9gf$tsD(LP zuiX9g*K>DonZ~pk+CQ)Zf@~fpqKUIW_)~sM4Q24Bn_`B|MJK%b>*K1tJS-C50>fwB z6I3!z+~M%ge+0yw2W8 zJJTp)0gIIdu$o%c$4%^ui%XPyOnr=l6ulJq>EP+{k@a#zHo1>NVOSm*-3S|;ng$pE z*D4pR{d`R5+jUe8jkeN0so+V;nX$p)yYbJmvu;b5Y;hIlqrX5PD-`8VIHJO}p~)kT zHm`Wc)*IAg^GgecsT}JzZK-rrU0qFgNWCO>lX%W`J0CnntvgaR##mrkoOyIyUGA&> zD@)fQRz?{f$2IRg2$V3C(`E(Q@(S@jeIdD)>@9{bVA)8HRqGSXfSpcwj!}u%wk#rk zNNxn1@X6HGz*|#e%QjWz6+FYy$IB0Qj ziV4DPquBC9W4=N(MEUs?_E6R&OZN& z>Ow=mr{RQBb2DuW=G=JlV7(u!{T4SN%9ID~X3gV13qG6u_UpQ*)4%IY zJPn2_C~Y~Fu0|lz=@U3R+)jSOzj~WBF)3{^FMvE{G%Ctx)Xr!bMZTH8$@;Oh(V#$t z^nLu3JNyyraug(bVR+4$3Ew3&c^rdln{~M!^hno;9$(g<+N5%T+S-Rt(p#%f!`{5m zK0&s|TJ?j%^0^KrYHT+}5#ELPK|H46u>FVRqNu(7(75mP{fVqRx%G2rY{nvpr1$yD zVX+ErJaXqJIt+gMLl(NybWOD+0UQ>mc?sQx`cOmv6;f>zrieX6iyKXyLf&wDU~nj{ zA}%qrPP-x|tqA)`(Pd$BR zZHnQ#tqQAY1sK^62bT1u`zx)#zQ!W55wwly1urm6(~H+ZKJ81qs*R0qUrAp@VNIC} z9$n&*n!;pJP`oaaO%Wt5HDcUCEh3D;=>lm*MQ~cZ-P#1|?qt??Uu#RPgOQ{LlCR2C z@`XYxyK8N2bT{xTt9JSAC3WkpT33xCc;ThmWa0-K0vqXBjb1%jl z=Bj~0{QG7>mN=RR=BJ5PrzLX7#U(5a%)~zK;;jx8jSI~tE2B2H>?Fc zoV5GDLYY$;8hmdL5C?p_9F5P(%HkOw4tr?><9@t8=2`dVDTx+Jh>`xd+CmF@kx?55 zZXe`a6aQ&+QTUFvSe}pO0Vw5zkkZ(Db`_1%pzd7Vpe8xozH|D-`y-*G zR4{u@tTdx_gDVpWtki7#&WAVfMk!|SX)OAX2E95c-v^u=#*vG^?LYy<{w4j;2blh{ zSu2_W9@p!w4%X9d-Lh`1peSv;-9KW$u2aRMrOMAh@loD?8SDYcWJ? zR*XYRK!UWMn|5rh(wokijES`Xqt|HejQ~fz;*XC}s&c~pK_n3sMso{OX z1t6#-)z#oih(9t@A$EP;h!|yAA}}R`y`uo}=Jn(!rS(6%87yguM@oEG^4|x93J7Ty zw*$<_aEUH=$4AG;ROm?gZ;lr0yPmEyVq)YwPx61^5>4r!uKf}&36h&#K4Fi{ZQ(pt z&9Z&-4>g%IzN}0VXiE~aF5&N6N{xdP9siMsv3dZ+LPj0K-2681CgfS+V7Y>+tP6q2 zSXx;~nik}fury1ZAFj)LswfhyF8nsYE-Mjx{M@C9eWj{sg8c?J?oQ)I%Z37ws7djq zwIkiLSONgXB?35-`D84R2?tL>k)808Y*$lXsE?fF*E#Piy_|xb-FnNBzu`1j{D<0{ zp55~!JHC$PB@t=FuU{{H-dPUY|J|f~&AG;b;Hw7Ad}_)yh!*RhIWm*`gyF6&f@BFv zeStwoS5Y2^TKq<9YfbbG|BLmB%vwJ``<_t_2HvQs$d|8Psa5L8@@GFjdgI{Wq`5^W zL7Mp(!V#|%oK8qcD5$BqnFG?E@lQ=xS5_uwX9K0PiFw>&KJ%4>I#qH{UcY?7H(a=% zHy;LbvD3KuYz~4(tc8-j)P%TW5OGeGDVJdE+~1tWP>CsEH%~C4V4f5Rp_?Ylt#n|C zVGoO|Dt#RqwhaV&H+<0ggdl?dEDjmm+S$W1w`Y6nZ4YZOGclP?$xY@(fXM>%k73G?VfB|o~5Dtn%~L4%5eLC{7w?TQrBb=c?{D62#~ zrC=~x!0-7-{6blQatz6;wz*YNac6$S$$HHPGiCq)e`9_f0{Mj;)7w)`%;Wp3Lw*{R z9UmKeww@QfBDGslBL>++Kr0CY(-kQ-6%ni{qq4HHJU;hhQ5jg)?8|V}uIpoBXkWcq zEiBT3GxLS-)2HqA6|Hs=4aa@Rj?*4ftXTZn1!a^&rDkVlm;)dViX0G3?f!_Urg56` z^NAubt~G3e`Pi=*5-I<~ z0uY9vuArc-JU%i~E$tj2#MC3q6cUBc-%ycK(&`}%)9}CpRAUi7JofZU^SGYarrU7f zi+=TXacMj{B6^vFa_=~emjya2j05cIy}uu%V`X)k$mELuG@O)2!AwmZ0@O+v$Q|C% z(ri3HxPiVtiLmkHLNB+g_ixYSB_&%wJ5;FBjUrgckM(YP=1?3{nkZYDY)&Cb&Hd*9 z6e67H96dcgzE#l$)hkUObL&c9Go50;jG^E9wCv*Nk0h!c+?iII0NQ{Z2r@>xzxO$B%gs8S6uTg{;n zY?yO{(Su8Cq%fZA5QgJD0_|siauJu6jVc()i^E9U_3iyd754mAMMp=bK;r!TUE_^R zSvW8pesO3A6WXX35+;PvVlqchzV^x6K~$z@rtt%pYp3}=G7`TU0c}F{arcA(bA2(- zfjd;Z{f3~R)^=?(0=D0cHoZHRL$U80<0>ko#l!~c*3}?gc>s52n}biDPmJ&ETUuSz z<`vfK%}x=lLuc2=7UnAL<*AoBd=W{Eh4QCBXI*Y)*D>|x(-oiFv$&KLl&H4|N;>de z`-rja^4vs!Yr?Nzj|tTB@;O}U7D>y^rxH>Hc{zW3gQr^95)wkW32H6;ad#Oa!oz!O z*7cWCr!ebl?A&Z@su1+@*jUyi;QsT|y(1@WiCot8{;q5Q&PG?r=C@p z5X>-uptiLC_3;wO9jgn5r^p9J)Ph4;!uvu9K}Aqtrs+~D8jN(~cvV$RO$}mQC~K90 zXua!pddfOt5Mp6(eL)y166q`XNJJk+s74d&Vi$qS@E#S_otNK}*2hzW9yg<^w6IV| zrO$2!ihPIUrkDq{gKcMhCctlS`(2{=PV1e^0dyuWpm&#HIRNvK!xUEPYI97nSXou2 z)i4#_ar3jRLP<$Uudjb`L8IB)VgP2q%*vK0Fvbc-r{$&^K%DQWMwcR_kmzcRkls9O zDyjkJ{&!o0O%~Jli}hx~!NC|9*V@g;3TjFO?A8*drlzj0*WLblsi~=nZ-XEe5-D@F z1>~#P1Z~CVZ;gz$#qwH!*KFbm?sLS`P<_s7yk-M{+kV4EgnNWKRx~Ax{KCEh!Avm^ZTuX{76Ok3c)C^e4ZM+ z;AEObN)`?d=cDSC#f0g+7BA7wT3lR{Qp||C9FK0p5*W18Wz%@$25dvk-Eppi(KAT- z!(E*YkKjQ$6!yZSr@LFSn3>4V66hKi7kG@or7nTglfN9S#jP!zd)wPnKSy`y)B^%A zxw%|&DWL}k5KdIA=A*M4Qo&xv+S*CVUdyp3Tin&=U%z^ULt?%!mQGYN0)S4Bw~~)7 z|0SI0!*UaWU2QQ*O|F15`*w<>rJRfjmH6yije9S!_D)&H6@Lx}13l}ro6illwn0Ra7vOuB6y9;57%Bt}N$I5`|W^&GWJ{GQC~&A3B46Qw&pr~Cb-4_p6izbmlH?5T<#0J&t9l|Q z#NXYsG1x!<3bM`8U2dq|N6@p;ztTV0n8;E}5U7ENA_Nu2X19IMgY*z)GixFJg6?Y>=MZHWNjM=|b*NZxW^dJ8T_(n-dNf7^K^N*CSZl+$B zug}B8s%7&~!&NTx+jI9KPXhyWCnu+eo5Shag6VBZY+v1bzZ%H2pWe-00n~iB%79{A z*qq3pKh;8ec@8io*o$kUwTuV}yL&s+J}nMgyI`Y1iy<*(W!EvCZWH5!*EBan+TlXJ;u9X~1FAaXhm)?CL5Q%6y(%Sgl2@(H=zrEW{VOkBgYV707}`3@PM*} z@WiCJBCPPv2Y8k1&oDfu%{I5oJEx~pYWZND){g^~KTy4~@Z7FfJlftVD<^!OE=I`w zq@<-0u!Ocn62>vH`A8R>B=ETy*CD;LMO6xAFht4OXO>QJ^q5J z?>9Bs*oqx_Ki-~i2)%gmswz!@gX9!GBeYa*%@fsy z=YhJN><*Cm!t(}e3sZgl*u+GY#wrx7n-_@BqB^t%)_+k($eyt}H^I(FF5D*AhGWA} zg&>=(aU)ZYmmxe}XKOi)h&L&=@T&ksxSI9tB5H#dn-<5Ah_WubI2{tH~p5 zIk{*UiIivi3=1f18;Y<#5&>TbwE5sp|Nk!*%|S-yEF}fy%xfHTUcwa)zQ!(Tx>;Gvw&lWA+e+JYw+bwtL>49@GgORT~-6{pYAUect2q%O%c$TMW zFBQZA-9rCvz(zex?ghqAsy7Ur|4#60Ux6b2(INgb1eF7j5Jl^M2EglIG3YoVQlMkcs46ZlF6>KANlA%|BOBL4bk!Uj91O^q5Q+QX7S?|@=jSdaVi%X7P^h_i zDI%Qi?(Cl5=19;BW>X@5MqQJuZ)ljAl$4d6EcWkirgL#ony9`!lT=Vp85$iWj~eXm z{yDBTCNcSK8|S^$>uqJSPw)5tB4oQBLAWoZ|7wJD7k~VG zl}li0Y5C?&P>%gFx&`bzLUp@OhW($rf108qmSg#irWTR(4w)6Sl!lV9{2S5Cn?7tH zl?Hcocw^MeQh=Tjem}AVb#6ch{8V4(#3dNa*eJ$5AIpakghU$;BU;lZMIU4;-By@7C?Yr3z zZci5#JY=W+MGWn|kac5y!o{U#+u7@R_opestJZx=E}q=D zY#znX9oh8P*m_ndF{58YTNTKiZiHzB-ZU*9h^bq1qBxqa=|MttIU+ZLwWmP(@uDAQ;r_0|NO zkABQhW3PV0_Vc_Gh_f>#MxHznNpHoi;;Uri!p+9ro(%|>R?!_mYf!CBEw20fIg+N^qA zO#Q5B8?50=5PJ1ampb}f!4MaV*sH4sIffvm-MiqMmf~LHin#ZxU*u^$8(GcTIdrY9 zH%N|L+-26=)qVEa%EXJu(0r-R28*p@l8bQ*xv6ZbyN_GHu1j@y|B8;0>MSv`J(>s` zFnoGt7qayqvk??#``!(1mbX*KGefTyQ!|~5%HR-|%h@@1hkVY=Ki zzB0R}GD{|IkuTAd6Jq6ykgMdBsA1<~?|kXCL|FD)0wJ@ihd*P-iG^0*q~^&Hm=JCi ziDYv*pD6N^dFl>gHhQ;tZQcDQdeihjEZ`G?@Oc`MG5la=M4X+~D?@dmwK8;-5VE=p zqma2f6=r54XT2P!m;cfkYxVc!ujL=gH2G>>&^5iXM)FF2RY>DZl@^c>BMNJwrGad+ zCx4V_Xpt&9%bCSiWILlZpH9AsN=yd&Nh8Rj5H-2;>~s63 z?p8lhJMQVO*;05cn&Db~y^!Tl{F4k_aKq4(HoDma?8E|#$1r$#*o4us=x``u7 ziF|EKqvFRvKgE@cqVIou^g?9u-oRW0>YqnSaNqyquzq5ekm=@hr7<(;Z{WQTf6vT} zNC)v=JyOXMP13Uf0J+j|9r(k%a*4Tx1r-$~)=&BPG!VOF7>InenEy%08W+r5S7;Eb zW=gB+vGnX@DwD>(lX15mea`;LXC`rB#JcHaf~Mg1qBRcqDqC$H>(#Oqh2FyX;DF!P z_geSS1jf>=^`90;ewmf9Td%ck*&Aoq9_E6s^JljgtP#Lcra9XwXky9Qgp%^3k0srB z)8AXx7usjA7IRPdmAZ&zQRO4%_?X>wrGqX5v^eQM@|e-d!lTK^Fsqt1lIUIBDroP- zY_l64>W^D)jLwkj-%NVyi;aGQc-S5!wNS`%iBH6ZG3w2l?y-xAGSPhPWih%nUAirJ zU-mD4`2y>5lijlGSE?Gw-^h!N0isn8j;>7u zQxT&7kGHc9tEzkZJc@#fbV;jpOE*Y2NH-`*HypZDq@}yNyW>zwcY}0ycf&07d4BJ_ zbImm~f6e)mv-e@|z1G@mt^59dKlhBtv5q92YzYe+YP};0scSeX;}*^kQ)!qw<=sK? zu}ZSzNd31K19a^oiVvSZ8WzQ25zmSe@9u?51*MW!S5?-G8_ZPXK#wf=iA4i(IjA~& zzDLG}QokO{=@=4EOo(GO9~1~*(Kl%1_`OlXoYp>;TT$m*Abww5XTr--e_f@xkXczP z-ZcV`oXP6E{*x(<9x3tR-3Y_{p+Un6a(rkpJ9Q-oIf<+EIB?{4u4HkW!iWPobEJX;U2td1ZovoSdB4h%LOl zw7}{(lk~IUx{--ZU|=8-k2B<^HCLig045HJ#~e|h>;lunTt<9Am#kuxUC2`bzs&xy zkA`F94&4WOzGLHZOgi+|NgomM@Bq`FMlQk=g_vApH_Qqxz7Dn$nml3>o>rnnL;3W{!a#XEUbDTwpGH1{ z@chC_qVbFCvzfhHEv58xx)~=GW^z*|$32Ssz0`ccjnx_?6`tdteABHhN--zNOllAo zO%!L^tn2qK@Mx6X#iO}}{1&}_qcb?VIT=himgNRDfvXl3=pT@1u&YCG~ckhw13 zSRL6zBHt9Pv|sI3JCcc18nQ49zNuv>rq0OJH|XA0L}HADe_CUH>wN{q{rsKKFV!}S zQ!^}DYw>-Ub^}@AWZw7B<26x5S-3+G0zR^J;gwl--Qg~m6RDn-9#*gQu)3Vh4XVV1 zE!M4_bp`YnK+4MU zlV~1V{)=;t!M9#;T ztfM$uZ27RC)Nd*zfsqblkNPRM$f%O6FC>S&n6GSbU0L8ZS7eFMnW=k^QV2_Qs zWi{X6F!wjSd|`d!;Z`TVSALWt^eEZAh`A!rm!dg!@nlSZ+?tX8PU;|?4Ntyoe?oYB zXb3?9*41=c{8y#5LwN>tq!3x0yZX~~CFE#sGG^;IO<*so?|J$@@9JdyZxoxr&Ti_i zwRRF^?Kg~!1`F@uT_&NS0#)US{8Nbyr7Tz$x}QjrFUwkg_NCK&RViq}kjag!gEFLZ zTR|}9tC;N4wipd^-0r-T0(sv(nJBs+guxcHp9A)>Gm+1%uCzsYjBn@#lyBXn@eOON z3MYCk>&{D&=JAftmbPpmN^Ar;xQkr19Tir1Yz z>O&ry2&Ufh6v?W>C{-&&C**FcFH&B_8Ll`aJGaYxD9sBk-rVT30M1QSA@pJNd%-d@f52! zure@gPRBBV(1g)*HVYAyFJu&F`kdC)W-YZCWX8wE=7vT5@|Gi}l7%}oX$lM;41q4b zbWJ)5nibbk6hDnG1gs%%shhrRP)6L_&{B7|_I%>iQA5?3@E-Jqfu1(|d3v9VYrCCz zvCB#l=>$d~n5KWfgEg7&`p!gcKbLVobuoam@q6fCs!QnT5eAk7iy7rgH1hjTIq6h1 zD2fe(f%W#)1HiW^w!)*r)l$)M-MVZiX6Ht1$JNGEujtllV-ocVaFqX>`imTK(?;uW<{)@$WgC6n?rCL4IMO{8aw3 zJtSxTm|P7TR<*yDx@ir2Zw!KMm82W0TqYND*d9G{Zf^Z9eSR-p&LYQ#5=NF|Ubv+D z#xJ;@%n6~<`G96bFuNPkVs3XMZys_J%3`X6{PM`^IEuR8ufdVx7f&ZQSLHAN?jrsM zTE_u840Wd(jUfs@q4~ai*j+;042#GMbI3=fZ(Tar9 z->eEhfE44!q}k9w7Ak7B{qCJlpTYfpHqnp3Ktf*sEM!jek16yRQQD2JnH3d^GBT{< zGhe;h8I3Lkb!26=q?yk?Iy-ZYl#d5~SLR7m%wPE3Jne6B$C8V0FWLf$bB%p;>pYGjovcA0&ca2L9_hj)4Wo9w9 zG~{2B<@>Ykf$O>Je{}+5uL=w zIWOiv(MtD$RR45UrOU}iD2R4{6POGxfvAT`Yd7xjexvG6BN8}1W=P^?R;%y4#an?D zy>MrkJVUVl_L}-?;|jKS)odr!qvhnAE7`y*5i%MvCUctbiAkj!vt28TrD>t+~{8{>rbMWn-75?`gYSoK_buX^tMvG}spp z{N77X(5({wjAk*NLT6Ab$0g*_FQ-C0$uMT``dq8)vTd7gZQQ{yuOUE!RQ!#p2a*$$>C*YE zP~u=R+wiLw6O_#Ztk*|pOamFmhDjVmtGLWoMlWA%i(F0)hI?t` zJdF2dD42#l+gTD4@MpQ8js1>pK%od2QxHxzdN#%*!loSGc9yA%s-YE|!~{;O+8J`$ zr2d#YmcTDNGqu-Sl?TB3xskTA5>a1&Q)O?@M)S5;N;>ezkFc;XJ-uY~A!*f@!2RTe zbv@JG4h$^1$$aE6(oyetboaZTJq_}H5fE`yRz~&x9U8rvs=`H1^Z zZGjT2HKI)=ICC$cXT+{nJHbqX}s)` z<&MX*g%Fo>D7hh+ZcjkuJA`~n?5r>Y%rvk#^)pvla&oNprfN|v^kv`FPy#x z8}DpcdL&WdFzFAP+@Ee#`NjRbfvxnL>!&ySqq!mXNCaxIq(GGZ_+wj z{hz4`#?Si+`zsK-w_;&o0%?GYoL>VLW~|V{M0016cEIV%V9L+Qnejj&bz4_)xwZ%E zNGaC1uW;;P3i7OGzs*bxt~TVD_fQc|$9x|lfmk^RQMY{?FzOWqJB(~uyc5rRF0@lk ztJN2ORdY|jihSbJr4TmY_%{|%)_-_vh&#;t^x=9^YC-HZ-C9jUBk<1TGg$I~B>eOD zp3J%r%UTk8w&0F?%``JADtuB>dreKfd1OppG*Tq!J7fmkhtn_WnIi#U4Qkp7lB_`> z4=G@iUMWSHdV}hGGI-J>)($mod* ze-25h4Ofs?CWT3U@>JNXzMgy7(Z<#mWU0qS$3E+?e%Al|g!Ht=+E77c8TZA}3yJP- zAV03Hb)uxC{3o;+tA`4cqo%Ho8{em_ps<`{Qxm6&gM%}C6A8qO*x1-uM@!4-gG_&( z84NEXh$`1V1&Qsy*N5)S@J}EbCS_9a3+&%N!^H7`yZZb2|MzFCT)t`6!Y1IENYGTX zA|WL`_3^q-N9Uuzl9QE<7N?;^y}P?6l0zo?8v}l5nu0g9>_!klNd*N)E{mNFUN`3< z_{0#B;g`&K|0D!q9Pe?5zX^hM5jB_T%tcqPnS^{ofs|T`P*{z1i?cX-uzC#?dfRA_ z+1QvwLP}3>xpzbK%@aAyK?LFa@C+B9onqxA*3zK=pQJU+fuD)kmvq$4%}s#jvzTsV zS{gU!++O*e>e1A=k|>?<&f+NJa0?d~q@>v_W^Rs)5&yOm3=FSUAl5>S+j{>oHobh< zQjFTy_wOw4kS(<&0d5d%!^ZLvlI8O9RBCy}#cbwVpMhND+pk~gqQRC^^^s&i zmG{|j!eG0K0HlaBvjK802WT|1rz|r2RQgkP zH1u#yE|)Op;qhU#s29si%lUL=WhSQ+$=gyt0<{~ZMkhYpFJ3!&d&AvpRQ#T-B@R^h zp1>>Vi90-!L`VqwA7rYpuslWegQ6m2ab^?kQ`hMM9)kNts0gP>&?{DtIR}B%cO0Z` zZEdx-h7+Wc9A*cTSpO^=$Gr>Q z(ag?eZrfR(1e-D*A=SMIAg%tqS!O=%FpRi6*#I_J&0PxF`*VR9rzxMP_vXqS+PcT? z_ombH^9BDMN}I-=T8c(1Z6jT%uQBg-uH+ca@Qa>BrvPTU2 z5s6q=qBHNa^Yimlix&6xM7Cbj(|b&oVFH=O`~hmZpdkHpb$R^Ty=I$rnHAc@k3@jH zR_k#86&UapKB`aUFTmdWsr07fD01Y1b`YBJ%o2K?Q}y+4?f^u72oQ~bqMjZMwTdfH zlQOc&=k9AMg1jh5D^X^BeO>ZMOcudQ0C(zR76Jl-N$wxpz}2&@wC%GKlIGBYzdIBLJ4 zeJu?QCBaL~qLk7U6j$r|`7=p8n*kfQ;1h1-D;(SxlHb7s`aie%3GulVuzMtPW2PB? z?B-UFi?uVFPZ|w}LZ=HX4PW8lG)PIke0E?+7#A03Q)WZf-VS6F7?Wmkg()Q=ydF$? z>eE&Bb~GH^H+2Awaj+=JfgeDy;d>=v&?{K_{dwg*SlH8kwbv2yxwRkvq*9rghiTCK^M!?fpys0C*IV{Y4 z*S65ifAXfmsQsi^jiz?FL)IB$ty8HxY1u@#czpTk(?p&9X@)6jy=!i9F*YDJkTiXc ztEHp~)UPle;j|iT{(1)slEuc3;0$U&Xj3lK26S27?g+n;ENL)j)VklcA7SRlVuJa5 zcXM)ebD4tde!rPAYCka_B;?aN)5xtBKg_TpIJzgMX+9OEGOW+{~|<~gDr z;^tSeeBotO9ob~3Rf!nL+d!Hdup`}Qtv$w0;I!MD>l5YYUzFd_?|OwZ+H1K!s(rM> zajaaVzC4qw=iF{8ehK>OA@VcuD$zHbCOf-C$l8S?W@5^Bn17T+s0F6V{sf+m9k`|( zqn11tX7;yT-gvqHTnV!@XwVxl59oOC2s3(908OuffK9wA?rh3rCzswYM8x;$f=1_$P8KiEtl+lG!O^`}(`HCWnWqejp#crIX?8f1F$cG~9(_RGEii7WmKGwCw)= zgE)K~X>&J_C|t;~kq-+O*Ha@(V(ZO|JE@ zwjVz~=@NZNvLGz68fY_oF7Cupd^{Yc&HHSUu{80-IqOjX(sw@RSd#t&PD-9dx!*}o zzpf3dO$F+>Y>XdgoJ^#>q)%@_ra=rbd4qN!Dt1wLaG>GRm?=!)aZt}a-A1b?O%l7d zgSwu3!H!*T=6X%F`n>=#BI9WxPsfTT-iOizg0Y}gyc*VwE%|Fd(_m3lpU>SA0>p{~=YXhHw-Iz7?zUSf|?&mY!rDsYAxqEW2wXF4sI8FpOh`nw6!McI!0-Oc28X43IYqWzI0!|mtD9jO;Q&c zRbBIGuAIo@cw?N>9D!^{#O9cmCQxkKi%L z@Ncz!PPJ1@f396+WZ%_)xwHXCzjxvv>*)#CKMA4q6M6r8yk#8!mB)3l^AQ^gMv!EMei;tlMIv9;-kLw zlAv-g4v%}kcUdFjR+2(=U_l7wUFXGNx^QsY^uBNR8?*eR^v9hpjAr}JWObp|me=

fF5*V{#Xr{)~qdKLG@gk*D0Un=Q#KaQGf)Y-nhRZr$^( zKK>2f^TWHj;zGx>yP~;A0d0k}GCthnzML2zB_KRL9+LLAQ2VnBH)hGRmnOo0$rXSe(z_yfKhhaCmrh)dt#!)U8$2FpyM)x2~G3Y4(w17m}^T|B^lj?6Ncd62w^U zdZD$XgEgB%o}EIiyl2$?#T$>1t3z#QM)7l=pi#xfq9W&( z<3HWxJv!JBHBW;q6aOVd++K4fw#g$#**;h2?$Pk>E0o`*-5}x#Y4MY}ef+qmqjMqC z+aiV)K;$kgwUQ?CL_dz9GOO;qh@K+#QX4L(FW;a+{FGxl{LY7@`O~mRi}#(SJ@4u8 zJo=TQ|Fe=&>FLpB+@wA^!)jzzrw=~6Oew=*WlYVbM~G#425suBX?qOXny>Z`ix~6; z1AV)clHCO5wwui)=#cx!4Ye~aotpl9IbZ=mA7RJf}_S64sa(}FCxsUBOIyn$q$Ca$~Q)wUz~(a zb13=yLitUyQd^lD7uK`I_IpknqGKJu*4beXoYf_bAoG|u48DDzhblU^9HMt#)?*;W zQx}Yr+zHEG&Npc(hUw{E5biFV>AV1CXVoOlxjk* zBZ0kxL(2}4*;U7gWoTMKhJ1}e*-ZqjztufSyo2uMFUmHWPXy^b&IUhfTuQ&<(l>C; ztC@WiPjugOXxoj)7~_bvkwJ|c|8}?TWNoxhv%YKUNQQ`bnyKY$NW|}txl)ru%N@}j z(o$734R}T}kcQY)>OK9D*WaDnQmH$qG{)fByIZ{oHAd}s9Fd1q3G3D{J1$5>wKM35 zL->sTjRhQKJS}swZu*g|HkbarT_^!j$R$}_!;y@d#OgUmb*F;l>~TlPa%(isr-%d^ zt~a;_iQMy$0fxhhk7o?DN|5--BiP)w^aL~OV=P45q4$MqsU9z9gtMNG@ge_tBFyMD z0WX@lE{HFj^EPy}g4JBw86CJ8p3jtgI`>A@U^P?a%p!QByi5*aFfX1Z@R~{%mqogo z_syMT_-YZ_=*%3Y?55E2oqrtOY0`kY_~d-2Ex%TtNfHm%$1`dch%j6V;+R`9b^qD0 zjc5A1;mlJiR*tEsuI{_RxN~|aZUx@Ha#c(2p(qudzmEM{QjVB1v^g-qwTJa;_iC3* zh^xsxN@w?JN6|KulLAQ~LkWZjduJZ)HSgCjblqX|Rd1L>6!MdZJ)+)|FHZPZ=a+Q^ zotFh{YDX3pF;zuh|9NT0z6URDhf>qEx-akKY+r`oQSWEbFAaTo9B-@~idtt7lq20S z6<*FQs#dB-_7xg_b=(>MlH}C+fb44E<{sf}mbW*qaF5%~a_$LXaD?Fk&)l7d?Glwm zusLSQsztN292wbH>~e>$Ue!$+OE`G9<-@?+jK;i(7ASTZcTz!N2&KhbnA>c1V1=$J zB*A&%RCQ?1_BYFps+~-~HQqoYDW_|G^XWChF__AK&;wBHb_$~0BU7ixx#&kN6_Oc^ zjtoBou-h74{^`ZTgWq5m5?c##7Fe0s$po3Di+5us4-0&LGTp)#VCuZniNj)d8tGFc ztN0oEosV!onaT0>Nbc$ib4TblU0VPidPxuC!II#F3{nEHQn!~0vf(@TqDP3bJ*kfo zM3|rP$WZ^bGs^Xose|P;-D|C9^xKD<}9%F_HO6KI5jZjpBaMnzb!kvMBlO;w3bSa zRX#1*$NWgUM-fJVj&GA)_jc<1S%q>wUCZe5^QBa}GQo8`WL48YZbj%Cq8o{&2;rp1 z5uq^#OA^YTZv3SiW#Nl#M+c%+y(}gy{y*zaDnV?_KVJj!*V$a}+KSz#9Ml2rtwAsBosO;X3f*v9L1QZ10rm>NhBp zmKzM{clE@_#YiPF-`#ixyvZIIZUw^5|Ac&;owH#&z#a+EecrBI6{s2ldJy%u7$90g&3ZSa?^6V=^%i#2irlBz*k8T2^D+6P51;{PcD#a zUO97+ti1GTiGAl@P!+WX0PG+Y_iun`aE7@);Kc~v>eiU)$&hc0m7}wxR2=)K-i=~_ zbf@jrpwp>>%*{+PC-ROM+Xh6@aMUL8xD=>WCcx1cT}AVM1)e{;t9b!>dSqNIYn!ci z=g`UZ0q-C93_s}X?Du{H?G`L7EGLiMQL9|K_sG#Eq$kP%081vTO(nBI@c?G0;fsPD zGa1w!6q>Jz6t`ioWOuB(T%?_F)%$X`I;iPqOdYwWzee2J22iutLoc7 zm-qfyaUa+c-G4rzch_j_=6mfc{t}8yh@r^3un{-bLpp*O9(6`_(d+^F*3Jk}goWL5 zV}pYSyJN*V9v-+Nv1|^kh~hvwiHL}ZzcUTQqKTZCXlOPfWt>`G{U$m2&^m~&{EAuu z@b>_7oP?NI$Xp1JiZ?d$RGG~NZNRzi0VyOM^w$#@*LPvT1iT&(*R`KAN6U_;-G~tk zmHSzFuw8EGHd0%@JqGGaFd@3WE9Afxp}-g(gk#cDRaJe9!2$)(_lLEfC^aQ@L%(Ap z2wtgnru&uI*g%X8l$FQO05d%@GBQ@p(vsfxII1VQ825HeOq?(Zzh|gaP*d{;bh~Ho zG3l1wH^Zv#s#^|MpOf9LOW7|Pco*NFiajAkJ z(y3Xdd-Mgly>38JXYQ`gfyO(~1of)rjO))p!(B+UK&K8xp|4wDVr2|_*~>roC{UN3 z{WsGHK=qd~mI3KHKffm-x8q0CiN=QXV}NU4T@i9g3QyFc!cf=HP@>|Ol+4c%dWB6s zMeX$T(%tQPP;08nEgM3}@Aq*a$*r5J8?bH?ar$9Xu<(l?(QU1Slh#9B%n!D!+>2~d zoAw1DunR5zGnIQyFMZsL3aFci>mFVizzYijrtR<1^u|v<0hKH&b&bhcpfn50_& zQI6F3&w+elsSB;d{wzzhTC6?7A}r0Y%ay5B(*Z^=GxQD_vdFmTrl7_nioo{Cmpf1g z^lbY8-;>Y+iB>gME?P$D-KJ2-RA0sc$nSqO^48m1X_kiC zQ8#|5m+Jccb4aMLz-kUbypEZ)$V&;<B0w!?9I&P>{bkHHHM1ay9v?Mt#jaPPwo{ z7nZ)AnU;BtWw%Vg^8oiYd^hS~z^>mM;)CKiuZm}}7yiOoXb5V&rjUMb@?m*#q9Xh| z1@3Pb7xs-Zr(6g64|7(KBze-swg2uPj!`r8)qu;DxlC) zC0lf63AdRaqgetOrTA*EUy~hMk|ZA z%_J=^L%@qPR&Tgv?>%4ddSX|dzWzmje{ss6I)sx0qi2x+1WtLap$^@dQ$9>*t05aG za)Wruo z^e&UX$?kz0dWO&ZL0EXQAafGHT~0TKXhAMwLMK|M4#Q+R%MJj-!^wh(j#d{YiggSP z^c^5JQs8IH?GsB=Q?s*uF6gLss?2vmbQ6TJ0HNlb8Cc&OOii~5xa@c5%A>LF#&S?E zFE8)mh*G9^w^ng*oGd5yJd$_q3>R~d5DyD8lSzo0) zWRz#*aY$*4vZN$F7c}e7+$>tqelNBSs8LRubyZ&zopDzansQ?(6*ctfXU%h}72b-{ zBH4ueTq(+vTPmc02E}a6cZnTPNL3J#xzD?8Pbh0?i->#X8_&&EVtyK)4`JElU5yWI zNHG5a8Jnb0lGZD?*K&2mSJG|K6(Xor6m}U7RS40d$Z%QO%}R2-l!MFF4`|Jq&Y|Zr zL67psveo3oS+{7y*zY>wReteQjr*w}JiU(LSjQ5&{sM=qZ-9kg!V49J0PUHx%}GY; z8w>eUh9F$zChx?RnxF)xVFitt(2n&u=%u5Ef4QWkoHMfUrn$|4|5+r^?{R14H*8VM z)#df%?0dUx`060ovhD9-JzWa)*O9hWi_0?_Ow|Zx6`rtc$Mg$c?-{RMA|?~cliGxY z-zkW?R4YiLTLw6(bgmm5uOcQmpH_4?QSxTI@X;E{r6Z@B5ti-L4G0qJ8O%x#m+@9y z?9~X``%Hcn70^XT%NIMV?ypj6wP8j{Or=xo8SI%Gb>TLwEGwtXuN084c(47|FXkw$AMUj#VhvGwW!ikcB1UpX8#jM`<+q#V&>uxG7~?u+*>Drw>apctexD~~EN(CydF8!4W*aXBUQXF;{?7ql(2**jKCr6v=XIL&h zI7K%{Lpz>4Ty>ClC~H{Vl}6`ly|x>nFSj##dzPNF6mr+q8aLM8yh~Jc+#m7{o)}Cu z@1CP(A&~6rc=j-lo({9qvisI(_?HgZ$Pe66{`?8QnJ%wuV4%F;2+Pe=2WV}H94u(uH*Fw*K784f#2d~F|Kx(nK~C*#TB0j0cD_FqxvRiOr8;k#$Kmd= z8_Jisii2H!`e*ms0)&UuvbxZ7d!@iRs8x0in@_>);M0~Xm+u7#b6EU_fwu;-i;_j^nwUExmZOrqhehWuiKhrWNX~rFjxYU!XIv z|Mu6@Wbyli$&-i+`y^<-|uQ^ZZyA(8X-UR##=7yw6pt?_(_%Rl*{zTbvkNJ zA{f+fx+bd4qjx^>acQ8T@|%3vUBpvq3SZ-CC@iNdP)C0&qkI}ymEvLdFq`5MiWIPGoVR@lb0sUv zy^1}^gFrOP8hY*!89Z}#?0$%t%~6EDJ}6jM#Z`8tM4fD6OgT|ysdpFRuhVh#D|60< z)pI@QXrHi-Q)u+=r;tiGNy0Rp^LcHMR(CyZQsN|;NieZ{az^5BW!|VC2ydK*R?E|V z6%xD@6A1e+f$Y;~`qDRs(oq;itzA52W^Og?Hbw+BA2X8oS6SY~F5-C@%HBCIu>&5Z z{1j_6^pLgf>X4(s+Vs-q@w_X8V9*?x4+eHH(TZK1J5X=r{i zIGJ6I^6+q({DdEdm!hf%#-VQmHXnWCX*@}3Lm&gaiN>WW<}Y}tN0P?K66qExz16l7WcQmwb4 z#(qzD==<|rg6!>&$d?D{sN?QwrmEqrSooV0OE*)O>um~LSR>o=|BZy4`4#=}t&)NR z+ggDw1cN%VXp5yL-}PeAcYJBsFEE#P|J0VifsL#)O;Po=SZv{G?U&RhMBSjkOgu zG8!N%cO#JdIsEFG7H$*br8cwFm3|gTRbN-*9)9J3PJS)?d4v)1TJ~&tPVIhLDVHs| z42=s2=KXk)V*MVwAUhan7kx-kQGP8qT55azQCm(>Nr0-zm|(Eus%`Q3=n+8=+T4{j z3PHq)%i5J^24SLqpF!B34mB6Nyy0DIT(Zz*jiy_86>FiLZ$bT|TXZ=e zRNs939*yCLMQutDE^RZvbTY&CY&zaUnGZyHb3K$V4*ERJ(>r6AnM(BjfFU5Jb?9X2 z4M(xiu&F_R3)={(^A-2to1Vyy7JlY=(<8s9-MGe8IzPY%!Jbv|?JO1N&kPV9>foS< zc3UnAynTHnApwyXbMIXFTBZ4`M@mxc$3X8J=Ss`an2HaiH(TmB2MC#PToe>5=;A7D z=)s!`v#kn8q{h{bHW>zEMDBrHUCUz*ijS*$qUR(~@q$UJl5Y(LoRmaq-xxHa`#7+K zuCMBokdduti4&DR2x$#MkoAkWLwRc@==kTlQR9QiIV++vx^i)2G>jq#GKKgg`wI=4 z^0>zAJ}lCzbb8q0YuedcD7tC|$W@*uo3-o|y52E${Ve;V&|U9x!U|Wt+e4Em)cDZp zax5QyVLP!z0Og_x*R?|?&)gthr`m&6QKIB3ikp=mE;VWko07Mgj9OulRtG@(Hl^Ge z|56b(6mWb>8w)U#;J;4@# zUTo_}mm6RblsOK07}h!E?JupEC8iO-WC@kK$oeedZPP0gPNtWH+;v(~TvkSHV=NdR z-8BEy7}M-qJMw?7;&Vr*WuIwS&_dc~-5W_I8mVENo_67GNuCfw#O(p)z zB*>)-owTIv5R_KiH&B%3R67Usk+$|L^ecFU{vfq^-Ee2>m zzAHxvqhs>V(_CFDld`<(7qc@)U9>-}rsQslX(Y{%{XNZ#6gkh77Q}sXQRXYmV&Z%$ zG|91L+0TC&>u_-Wi}QSRX}-vx@3h^$Tx$z$A?HrjMCKu|_QlyKVY>CPYuNAcMy(oT z8KS}~;*(j^bDK?;s_=`uw=-34b(~u-hVyOGYj@a~kA(mW@ zCSSs9qvFB}a;kl68|GWP2;)jq*EhXN!_WdS-oc8Lyo8?FhtzRNoN6ep=7i3uC?WA3 zP0hLn?6oA+ob3D1Ot3b$aPv_uxvy%{5YUporKi8b(;IRdrMQ=w>E_7ex!H1HJnl|( zEYf>#Y3pQN_fRG1=&4_ZGMRZnvKPL8=+$n+u<6k3#H>JQw3K2bhByP06ud2a22$@% zfzEe)zfc*pCTi|)W<7J5Em{4sGaUt6aV+&UmU5f4*rRPUY+K$rpHTA~sy%l+;~6sM zKG$k0alEBgv3H(6KV_uhYCvCiWgE@pMoL-dEnzBGf~FE;Ih_~zahg-8U&tac`c7SF zTxJskZ<9w`3{oQg$9~9)9Av{pHf>KxWs2+=?c|J=!sU5;Uo6jPq{6kkjky_SF+r{B zD&l=quwdr7)WqCwt$3)4DdA3fRkUmeOLHc7Lx9uX>;W{*A&;AKB|yV>aDat2ag<-W zLtfzz?O;??uWAA2qLsp$<4_b?^hLfJhKtqmCPVn``pw%d-PbE^-UWQ}3iH?B2DO0d z6fRJMWUuCpnBVV)+M6X-F5bS+qiLB-p-;+)b~Lc5j0KZ%4rL=BD`|NzYUCV~JiJn( zx^`nm>(XAi`zAe=Pc+0jphj-EazurP4DO~r$C5!Zm4uR+M00FlRk8`%vxl-N`&IQm zbGfrVaFK;jlJ@V?4f%mI@MIyp8AxVb7w~SW@@zP0v<(bW4|bg*Yc%bxwGFhLieDV= z(%z}tv-`CuMbZPf+dd3>rQTkeynFC-%7XT3&Dj9P!}v)S_ti5ldGSg@_dwE~vRX~j zAvM=(E@?$~THNB#sOn)aa+jfLb5xD1LXVLCkRJE7Nb5o+)M+0DRb$e*p^>br*tVOz zX-w=}Et9-rOw%SeW^Vqe+16uQ!G3hZiG4x0b=|G(e%Z|@!InpzP3Q3_j|=Z%raItF zc?#dmwXkk5e(4;eU97^@nfjXkc=x>1j61NVmJ>Tu&oIIM+=}N#Zt3R-9v-Ry(^x%L zpkmpx;?i`bVQ@({;mK`^gqlpWbZcq`v!cy~wN}O~4KDdAAr~~>Do)kfLVP_@%qbN8 zJr^JLudW))SQ=c%q7qB}jDG`K@n0yLFFsD+EjQ zpF{gqGfE!_LA>{+cg0iXr(3Jr%gb)d?SY_H-TLb4P=pf#79fmYT%B!;)LF;J zhc6MF>Km@_GSPJc@hwKC$ZnOK4}RVQJu0}j(YA(ihz!4YS0a}KEiEmG+SXV$8AXN? zdrwYI4v!hX^AeFIlf~U%-Q*vk*M6aOzYYiR|9xI#1B-Ms zD2U+k4Sc=CfNHHtU}NJPsMMO6fRFG30aOKQG(J}TR~Skpv<%Mfeubdi38NC{^93TZ`_g$ znwgA@EGjBWCYBLYps-%w;{l3v3QB6zoP1Lgo8_e?$?pQVvJ7l&*%~iFB~v)YESaQN zC<{bb_JMHh35i^cn>1M4)%ucSib_rK&@UqI@2+eU{Yr;=qW!LLxAZaG`mu%7G&By6!fhDp`I``?J%yL)@<94RAY&Nt7! z8XE}%C3@rUc@hbj9gW(zCwS`YG)iq)5;KE=PeT+reNzY&2{b<8mtVWE)-(E@mLVjT z4gd7QVPm1h<(yE3ZJ>Woo6BJ@YcU3kw!(N3sCM7fan#9iN;|xl{{_?JJ~yZRnBVWD zXxO(adD|m%^qTZ4fWD|P^asVrs$%r==I0y?ca8Vc0GNf5y_Qd|Xqz24!!s?6Oe z+G$ft{-ics9%n_9sr>KXpNPK=AZ62=QY`XrpQ)W6*?^NywZ^(WO9VAF*nreiC+aS_ zsHn)h&KnB-SC9SWd_VCqK1d&dVFzm*va@6M^yyP#J>pFv(GH{@cP%tf(8omO@NmzW z^yH?L7(QDz9yp}pqT^Mr$y9A@1byImTrb{jEeeY3T9>AzgotkSPEQlj^aJJk-&jD; zO#NzqB2-dhu43VX%0x+NX(N_GR+?hV4_xY-ExZ1HwiQ+R&#;)vPT_H?Tfh=e7w4L^V0nW@Ycbw~zj zuy>RX1Kim7C-d{eqrK43B>sQiNehBb*)TpSLLspaXyNBsc+Zk`gorG)&KEp<1nG6o z4mQdb_xTD6)Q39Ts+kO38B#nTy~`e+$jVSqY9QblbsLJEv4CrMwmGs5 z>KAO>QTSW_lK-G8_5cGYG}qwz&r3i8c0WzmjATn)Ko36bfZtTZ#Xxs!f@w>&v)8ie zx>9wpTDBNq`i3XbhIX}x4f~R)-E=UGJA#s9u4i`|T5*ow?j(?j zD#qV~VxS&(N~!RDAc=T4S7LmW;nxv-Cu*qE)USEJuA@@)eXPPqShx+u5ly=fw#zUd z^LK$kPgwXuwFcMuI}g(V`_rw{>a|oLj85RP z%fR*rDNSDYn~byG{|PF+-pRG`ujF+#?i;0ao@x$p5EVHoM{GSCNRV}RQ`yjPTs@~n zedbr9sH#r23G>&C0fPpB(PfN`LdqgRq|^iQD9@feeR_GqcQnTg^h{=-M{CPX*Zcb` z4X3N`n?dgJS+md4-D7-^g#|<6#fu|u!lq$F&%b?mp-`2EgH@w6Cx@M!JiDeQrXC&$ zWr5jqpR)OaYM8x-mU0?zv+pVpw zlX4aLw*_^I{6cctN$qb}KffacyD8>8`P2^|b?zYI4b^&Wv`{$*+Px~1=5Cw3Z8n;01l>NEg1b>40TxJUq^mB=m$5%s`Q zP*I>x<#QafZ8aU$0bj_C%6kBZO?MA9O6;(RS?gCUe3&r>W#wE*y1~`%2We>@rehZO zi^niug1@yN0$F^mCS4++6xnGaoMM9)vL?%zjN>TTokxJj@s{NkoK3QbumY z|3aIk#F|HX1hYU)O-TuAeP=156~=6Z5j~vA{B&$wN8nR#K>|&~#oNFqf5<^pR1u0h z32EJn0Bp4|{RaF#q=GT+?^!s1&O!xeJ?3Zl&ncZf)DaSaw0Rj|`Y~Q~sgYv>NFi9? z{0w>PQ$@UoTO7<#ENqhSN(-PL7DIV}5CJDL!2%#onzSxTf?hXAP#6<2kG1grp%+L? zXI=$p+YkNc;DUmJ64xh4;O%}DD!8l-geLMvZ6q|9!xDK}FCUsY<$0ds!xJ3-_Z011 z#V?*6e~-1jgAlan< z=O;e1EY;u*gF6KuqbL;cKfbJO+>YtI^8DZ0qFl27s9^Z{ze1J(9Gg0GWF4flpEny8 zgGc%rCF0rBUt#U_kI)2_gYG)g=0;xgfL=2x@Ngl0GO)1t%->O8y?W;|&gSLi1zb5_ zzrvpH-9DH`!XR;mS3lIQ&+a8*cy%&e-BEA90W&zrm26J1KRCM_fx>@NMV2=?IXYUj z=`~1)qYTHa!ooDKzxdPCl3?TyQndHseR@u>b64dW85kH@7Iw7DiNf4<9Mq zLRS~OUTk+C1q}umDkzM=ArcB?8za`~kIe5*RcbZrj%D>}Jb!PiqTaoHjES)V>@j%f zE~!swm9?dWg-N-%0y>tf41pE}*Lpl@cn9JXt6;*i^ufi|j6J^(47B)W;cF3O5n&Mr zT7enmVE`MolT)4!5D&W0dyOhyNAkdy2Lqok-Yn zw(%G&=Oe48$9imA4^ja^&YFJ7erLuF0I%N$RRJ|plEpU}A|CrCP^AzQk-h<3lp=5M zlR9znt~ZALaQ_hnNyqY<=T%jWkDGJp0t4<>FY58Q_Ubbr&(5f@FqdutUamZiDzo#G z0|4kHCMSledy%U}6KKC%5}mMUzfbZvhSN!YkI32VOD;1_rQy z1;BKy7gbaUy-o>bj76TFiURFfQBo2@O0D7J-RRw@Aj*;VKUn+9u&TPKTNDLFLZqZy zN zCBYDNbvv`&TJ+k3Bm3Ok0j!jl$Csa0A+8LZ92^$SSi*xFF@w8{k4eURJg?{i$a!bLV&Sj%sI7A&;B?j~(U#1G5^?CL;1Lxb zt0|zrgw)<)(<~x(Mu{WU@6Er(58IyqAgp)wCybQT?7XSzRjOw6zo;n`B7mB@HX8T< z`m5?)sG0EMzkgqxDkM(^PD@8uzGz37f{cu%s3@{Dii-=kDozwJH+8%>6Nqo@?C?&c zHEZ<=uUC9m-&Z^1C65j$nJ_U{SzCD>|2ar>N$r6-qiC-j#=PLy(z^R9@TXX(zSn0g zf*I3m>(#ikLs)3p&tE4scR2hkLwig|LYLl-GNs~yN|ZW9uFYKUsD$>% zeO(=>>qU(9%ng!wX(D+DLGzkr4fs^B0!pV7_!`Cr6u4ui1faG z`#$MT*r~#@x2CqnLAZ~ejGW>7m&s|P!A2`cLaOT6u_;Bl4q8@iRPVCiL&=iF!O_Nh z*?A|dh5(RqKg@&@N$1jr@_0h(;h;&Xr$-KuJK#h`9@@`UBmi+#&WdI^0(^Wx@@dX^ z0jOBoLrIIWejM{HIoaFW>rs}N1FHP1f*>?BG>xKnF%N#5Pnh)Uo2h*nkyBT%1Z>-J zuS@nXJnt$gtQvepxnUtzUoh{)xf6bomdAsUylv6Fm`i6^`p)D2WSx*8{1WcrslUzd z79WKoEXa~C2L1g(t0V6kO76}`W85bs)P9!?dUbS8b;j4P9IYB36G{KVp6tWc`r|V1 zGv*Df@5#xPuQyMK?*c%r=foFH#S(HM{0I?YXPMKFQJ3!+AC#%+qM^UPn&jjC4l_6_ z638%H8=GOM7sH)bGUKF+u6}$A6?8rQeyte;X7sqXL81s8ZRlU`f!>r93` z7e`GUQwXcBDiV&70v~JwcFxSxn0%7_33By^O?PnqJ_mY7Cw2?ao$XXM=ud{eq6;Ix zR#e#;^!?)JCpc^tf&Dl}-5TR*Cn%DSN63Q!EXWYfBY#h0nD7SA}w_|q6-T*{FF_>+_>kksek zsdY0QLHB9TZcl=qhI&O3&Bw$0B>b;3)1F_6w9r!L!ko7ZJS=XKbcXyWmVdQiRY` z`m>N8hb;A7H!!`&6~I2}u--Dnjy(UWHcgwG{>XDQf%M3!z^y~)yLPSCm09(167QcX zZ7qAO24kQpLD7a;gdr_)K7$@<$H6x<*w!v`0INJ?{TwL_m$A+?ao4Qiq6tz))d+_7 z5ubi%A7U%KQWPxOL2>3V%6^{}6TaTT(K733rkk4NlWH-ab^)BKgNEU!B%H6(Xf?Qi z0wY1+;=j27=Y0)CkK$r${-ACs3_xJ{3W0CtM|zb(MKlAB-1j&*2GRT ziMl^q18Sli$oSF_j~FvsN;!eblkgLM)@M&-sY!qRX5_TDx7%G_wEVq#6y*Prus+eA zIn+@a9+jk+;IDLn?Xnd3UN)&)u;%UZMG%+P>FyMCYj0sKUNs+nb&# z{_w-RY+wk+`ZqY^;1bx+zn_7IKuuM-~b1t!KFX!N%{+ZrY)I2qs2NY zOmCiNhUom;y_yH86#z&ZdehiAIaK`qVZG-?F!aVZ@3MLYF#HMx28X##m)Pt9(&hyI zK9xd^lF?B!HlyxVv*8?|`12m>Z7>6ants=BY444qlNazl7Cu;IAHTU6?~0gUceN}az=&VJ{xFRHi|S50!VBr>MhENlvoNUN27H~qn{+(RWE{bOam zU86G?f=juvoiXG*-#Pn|sO+webNlbQnL9bFq{CHqF4bu_-JPW&>_fum*M`7eu~bZI zg;*PG@#!@d()9Kv5IZxd3gnv_?y->7%PS}s&zr%tU_|)P{5>6`fo}0H@;*;mq)0&I zp$<~zfSg3P-2Gc=&;gKMD|%b|&M_*Y35jTg{`qq?6_v6w>$WUtB?(rEb>s#F0%0?t zlQG635m??B%+AYO@0oCjZ1p+Y>FVj(oN;+IDvs#zmFibWI$*|l`)8sm$P1paNuMPq z@H5Zn)wdY+LK(NQ>x1#Co%;1>>&MvxzauGy^8g=Q7FO5u&={#-wCXNMX$jb%%5L^t zL_0(*gwH$ZS$8{eC06_*J;Z781B>D-nUv)Bgzv|6KNl4@<1Y`EeDsg`&6vd-I%4|v z)5VP3pjxUB686>mp{99`u6ixN0I7IR#Fpjf~fp z$k3y$;T_GM^jzSaCgNJ5GFc63H(BRK)6&QDxxaf?J>KXjq|JGmG{ge^6b@NBQyzmG_a<%A>Fh3gc!a?dK?&z$=Ig)&((9+(e6S_PXB2A-7i1lO! zl8kbyz-!MO@zk}pa!AQ5GU;^&6}eM+)yZMGJT$uXO*QG`WwUr7>E$1?q23)D?E0s- zPP-&M`7m6#D}%RwJ?i+U7J~|}Yc)BI`+3cIZ37QUOwot+4SlIYsy!iU&8lE#=IzSM z#_sy>ox{$@4kORZ^sw_IDP(4gw0*wmWjsa2ZsS>AF$#i|`4>FzTA4iEG5Vb&^2o`G zH&UnN&UlT%;^GQkEzu%UP*nnENat^_&-}D^kvJ76Wr{}e-HuGrrE98smEkxkLS7)9YJE0%m#2jjUoljj8_ zUQgYJWU}b_Ht*a4VSC|6Z8e%fjE!iChgKu{1M`&kkcc8;ixkfe@6g|K+c*o~5r%(K zI4r(Tu7tHY?A^3}nn4Sx2}!~XerF{hSaq2(NndiuKz!@L{f#rs?Z&rW^pv~jyN_ei z8)pI(c3HX;PS%xHzJFP0?m+K2Jt5+okQKOGTr4&KY7t-a=`Mr7Pm=S}@kQUz0aMv#;@}t>PRl7-U_pPc`5mOR z{0NZpqyyYDf76wmD1u(sSCBG0GDk;86;;)(Mv$U5^Y%{p_)%}>joD0{Q-?w_Q08RJ z2Atbs!tRbs?HDR1($YbUjNjX9yHbB-_}8h}d24tpw>jRjOT{I(d2CfTRj(Q5+w$I$ z1b;FgdQ@KKy1cX5D7;sO2J}_33Ja3}hv7~Jp!a0xw0BP`;#S^qyc|94Naz@H%P38# zoOr1*-AMZG>(~AUyT!I;Dm`sfPV*jEVM@3AdyV2CkpB||DIzr<#!x5HvjZEPNBaq? zs;Va&V>_VfgS+q^J32ZBKQF(eq;Pjv7cF_px6~NTnR!c2GG(#NJ2_Xw{1sUTVOJ9;AaNvSq*^}+SQt@(;ymx}D+7m3#j93;V{B8dXZkR(9h zm5T%taN$1;=+?e}|L$PYuc0lLNe1*;I7KTFNiv~WOg;m7HGb&~;^@$^S1>tblH-JD z{*ZI`pQBLDDUZ!UkY!Ygd49(?97y|AI&F<{TkL**O)&VE!p4++(i{VNZC+1Pr;Mj9 z#xY=qK6;xT`Js9ywz7zA6X!cHbNk&wkt)FmLAl65v)&4lsaoiUINa z^O=(Ddh4tqZ?&!8eRact{h+DC7je71 zcjNl1TdqQit3_YFu1~Ka3K+$DS;%70dDu@g6$4uVchc|i1ha|!1DZBNnLWt7;;d#U z(!e|P#XOXpN=PTwW_mP#rV>*i{w+a zs*43CAs^Ezy%gj;q10a$U}x}fYjZ~`e#_F6Gz_lgL-@g*cxG}a-rUv7{-wD_Ula%N zv+#>+Az+gF+jc7CpOIkcmd}amcxrPYG~*nVJ$Eq@Lm?)Jr@p$2SVzy;*bcy=1?xxM zk0>V420ux5mf8RZqq2JCK*tSULisW{CQ8%1$h{X$Xjot7?28GQcTW}tNc{Aa<@JX` z9~*c$AYkvE#$qZ|8p2VS9gnKD&sym>*n=#c}tQ5IMBxr6lT#FhZhw;yOMWxUO`2{`^e z_qMufg|NJ2??WT0%E4B^m7AY#)vLCuDNC?Tw_UJlanu}Fx)1L-4Wlf$`#@% zlyP)h$f9zXoYw2ooYztc0M)nlG{(RkP4}dbQabCtHaR z2OBdj2r(b~Zf5fonV>gegxDN3H8zP7wAT*VFgh@1B10=)Sc}{n)P1&1&ySN(gw7;63)0;^Q;`Y&pw*mye0n$F0TtsQsZ{*@Q$WmWy|v*I3%J-+y|F*O1I>$XadC9y_%rk~oMxWNytT)L zdKiz8-$67Zk2Wa~XY$|Nv<0BFeM(F?*l|o)o`sVzAOV7?H@~TgE>FoHpS)#bFKEa_ zgXVR%w|66ysE!EYaasFW?nXS3PVq&$LAqhB&@z=24xX*^LMYeu-m+J~Q^w=l)}DPN!}$F7--U=yQWple8OOVs0uRx>Z(M6+3H98D8x&2L*)YbbpZ&sw}ri z2_Uc_@b3I)x^8=`z{cY2L{4SzaBlxg>q!--OlnE=%r{FF-(-km`Xq+4tCOOmdzL?% zS5}rgxwwRcgvXhbg39ACw}_)7x>?Gy;fm?E-4-8_EaL2>XQ8ayc8t(!Yz~E_ur9;b zSsiBO!=ntTJqniXdJN!;+*SkLHTbQxKWjfuAT$-71nC0{4c0hESv~d_2^I$er?mih zQ14-4Ja+R)7&Nt_Dr3ohHo6n$=3v6ATUFs?VG;ZNJ;?38v^tNH5Jg8vhn;ThY)?mY z8O#-1`9QsaPSv29A{JI+sPv67Y+N+p-k>EA*sucn(^eMa)iySD0giR@7Q~{+*UU+9 zxcjDI@zdnAauUn{{Mi!S)Ku@QMp**xx%w3p+ERx0@Zp&mRpirhFgBtPcS0VVb z`=D~<$r5=ot&Jr-YHAAXMoz8U&8u1H;=2S|XTfff2`@R==^+F=DVd*tc&+&(azblU z6Vfw>o$LnhYZ%~5bEz&v3MhA=d)FoC{r=^HXg|M(R9$F%e229*qyge#;IfeOZ!W-7 z&?^TbU;&ExS(rIqg0)^Az+==^Va!(&UATa|q;5=d2FrXimOByTEZIsK> zb>OVzl;)tN7WD~LQBs;e2q`OLA06ddw~IIn^1r`PE$Xezrlp*2iMnYxv69uSF8N;7 zMeAE+#VdgXhn3u_JH)L~toS$XIpf8RJ!h}E&h|=LjuP@JOfi@ zc{^3c#guo#fOxIb-tIN*WNXIbw81;s%+QbrBpou2V=TU&k*DG4DkkUU=WpyTsKyPk z=r+DaCef~|0W514pmUgqkgB0V?5)b%xAX}sc!wjSBk^WlUS70DMttc%eyHW&P2qE+ z3T5A(I@|j`F*jDWv8XR1LK&WrgX5@CCIw34I})1z6{E6&6c8M2PdxQf?07ifc~X&7 z8XV+tD=I72StVWeB%C)EV^dQV6PXX*h!Mh^it_RTQMP$V!ZI?bWJ#JSLj$~7aUa~{ zRG>4TV4`D!JD-z5LsCegw*41S|3A?U4R~Ck*)0JR+%J2QNF~7G!FyYe?|lbCe6V|9 zr`s<3^NqVRkc2@AzfUNH#Dr|5DwrsH>W1Y2hw;8+2ovt&I@EfQ%*SVDVSz_L@FhUk z#nH0=`Qp(z=ndxl*4#7nPD3*H%Q6ZR0qd8(D`(8)cn*)%&WIM;`vnCB?rv@a`Zzkz z#>%w+696;xkWUsTLDM~3dq=`*$Fi1a8pQgR7A8#EM8kMr0t430y?SNtp2Wc!8?@`I zfLuU+LB6?#MTda5Tp}Bo2P#n?RGjDspk97>=Zr*S>09}9sd0K?7CxJOcBiM9gD+?oil_Lak;f3gckFz3Y_f#Dihz%GxkGA!GHvG zT^sMlQq?&G2eHY!ZLJdzvFOwZ7#~Y%YXd+X70B^YJhUYdboT6tR|bj a2S`yX!_ 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

D`B_(w0V@=pVN+b8EQ1|(JCh~er>3|wKdWZF%R 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 bc>W|4v*vM+s%Q-O=84!BX`xa99iRUP7Sfx} literal 0 HcmV?d00001 diff --git a/docs/ux-ui/screens/backups237-missing-mobile.png b/docs/ux-ui/screens/backups237-missing-mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..ddd2bb636cbf0aa2179b92914f558e6a9e5d2b00 GIT binary patch literal 59954 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 P9TXKs4TX9+%kcjINCg&4 literal 0 HcmV?d00001 diff --git a/lib/backup-file-state.ts b/lib/backup-file-state.ts new file mode 100644 index 00000000..aed3ee9e --- /dev/null +++ b/lib/backup-file-state.ts @@ -0,0 +1,13 @@ +import type { Backup } from "@/lib/data" + +export function backupFileMissing(backup: Pick): boolean { + return backup.storage === "local" && backup.localFileStatus === "missing" +} + +export function backupLocalFileDescription(backup: Pick): string | null { + if (backup.localFileStatus === "missing") return backup.storage === "both" + ? "Локальная копия отсутствует. Файл будет запрошен из S3." + : "Локальный файл отсутствует." + if (backup.localFileStatus === "unknown") return "Не удалось проверить локальный файл." + return null +} diff --git a/lib/data.ts b/lib/data.ts index 6349faff..384b5bda 100644 --- a/lib/data.ts +++ b/lib/data.ts @@ -198,6 +198,7 @@ export interface Backup { notes: string storage: "local" | "s3" | "both" uploadError?: string + localFileStatus?: "available" | "missing" | "unknown" | "not-stored" } // ─── VXLAN ─────────────────────────────────────────────────────────────────── diff --git a/packages/contracts/src/backups.ts b/packages/contracts/src/backups.ts index 62641bed..fe7d1be8 100644 --- a/packages/contracts/src/backups.ts +++ b/packages/contracts/src/backups.ts @@ -4,6 +4,8 @@ export const backupFrequencySchema = z.enum(["daily", "weekly", "monthly"]) export const backupFormatSchema = z.enum(["rsc", "backup"]) export const backupStorageProviderSchema = z.enum(["local", "s3"]) export const backupObjectStorageSchema = z.enum(["local", "s3", "both"]) +export const backupLocalFileStatusSchema = z.enum(["available", "missing", "unknown", "not-stored"]) +export type BackupLocalFileStatus = z.infer export const backupScheduleSettingsDtoSchema = z.object({ enabled: z.boolean(), @@ -74,6 +76,7 @@ export const backupItemDtoSchema = z.object({ storage: backupObjectStorageSchema, s3Key: z.string().nullable().optional(), uploadError: z.string().nullable().optional(), + localFileStatus: backupLocalFileStatusSchema.optional(), }) export type BackupStorageSettingsDto = z.infer diff --git a/shared/api/backups.ts b/shared/api/backups.ts index d6476277..aa2f87f7 100644 --- a/shared/api/backups.ts +++ b/shared/api/backups.ts @@ -38,9 +38,10 @@ export async function getBackupJob(baseUrl: string, jobId: string, options?: Req if (result.id !== jobId) throw new Error("Ответ относится к другой задаче резервного копирования") return result } -export async function deleteBackup(baseUrl: string, id: string, options?: RequestInit): Promise { - const response = await requestBlob(baseUrl, "/api/backups/" + encodeURIComponent(id), backupOptions({ ...options, method: "DELETE" })) +export async function deleteBackup(baseUrl: string, id: string, options?: RequestInit, recordOnly = false): Promise { + const response = await requestBlob(baseUrl, "/api/backups/" + encodeURIComponent(id) + (recordOnly ? "?recordOnly=true" : ""), backupOptions({ ...options, method: "DELETE" })) if (response.status !== 204) throw new Error("Удаление резервной копии не подтверждено: ожидается HTTP 204") + if (recordOnly && response.headers.get("X-Backup-Delete-Mode") !== "record-only") throw new Error("Не подтверждено удаление только записи истории. Обновите данные перед повтором.") } export async function restoreBackup(baseUrl: string, id: string, options?: RequestInit, expectedServerId?: number) { const result = restoreBackupResponseSchema.parse(await backupJson(baseUrl, "/api/backups/" + encodeURIComponent(id) + "/restore", { ...options, method: "POST" })) diff --git a/tests/e2e/backups-file-state.spec.ts b/tests/e2e/backups-file-state.spec.ts new file mode 100644 index 00000000..aadb31c2 --- /dev/null +++ b/tests/e2e/backups-file-state.spec.ts @@ -0,0 +1,41 @@ +import { test, expect } from "@playwright/test" +import { backup, setupBackups } from "./fixtures/backups" + +for (const width of [1440, 390]) test(`Бэкапы: отсутствующий локальный файл ${width}`, async ({ page }) => { + await page.setViewportSize({ width, height: 900 }); await setupBackups(page) + await page.route("**/api/backups", r => r.fulfill({ json: [{ ...backup, localFileStatus: "missing" }] })) + let operations = 0; page.on("request", r => { if (/\/backups\/[^/]+\/(restore|download)$/.test(new URL(r.url()).pathname)) operations++ }) + await page.goto("/backups") + await expect(page.getByText("Нет файла", { exact: true })).toBeVisible() + await expect(page.getByText("Локальный файл отсутствует.", { exact: true })).toBeVisible() + await expect(page.getByRole("button", { name: "Скачать " + backup.filename, exact: true })).toBeDisabled() + await expect(page.getByRole("button", { name: "Восстановить " + backup.filename, exact: true })).toBeDisabled() + await page.getByRole("button", { name: "Удалить " + backup.filename, exact: true }).click() + const dialog = page.getByRole("alertdialog"); await expect(dialog).toContainText("Удалить запись о бэкапе?"); await expect(dialog).toContainText("Будет удалена только запись из истории.") + await dialog.getByRole("button", { name: "Отмена", exact: true }).click() + expect(operations).toBe(0); expect(await page.evaluate(() => document.documentElement.scrollWidth > innerWidth + 1)).toBe(false) +}) + +test("Бэкапы: потеря local copy сохраняет скачивание из S3", async ({ page }) => { + await setupBackups(page); await page.route("**/api/backups", r => r.fulfill({ json: [{ ...backup, storage: "both", localFileStatus: "missing" }] })) + await page.route("**/api/backups/backup-1/download", r => r.fulfill({ contentType: "text/plain; charset=utf-8", body: "# S3 fixture\n" })) + await page.goto("/backups"); await expect(page.getByText("Локальная копия отсутствует. Файл будет запрошен из S3.", { exact: true })).toBeVisible() + await expect(page.getByRole("button", { name: "Восстановить " + backup.filename, exact: true })).toBeEnabled() + const download = page.waitForEvent("download"); await page.getByRole("button", { name: "Скачать " + backup.filename, exact: true }).click(); expect((await download).suggestedFilename()).toBe(backup.filename) +}) + +for (const status of ["unknown", undefined]) test(`Бэкапы: неизвестный или старый receipt ${status}`, async ({ page }) => { + await setupBackups(page); await page.route("**/api/backups", r => r.fulfill({ json: [{ ...backup, ...(status ? { localFileStatus: status } : {}) }] })) + await page.goto("/backups"); await expect(page.getByText(backup.filename, { exact: true })).toBeVisible() + await expect(page.getByText("Нет файла", { exact: true })).toHaveCount(0) + await expect(page.getByRole("button", { name: "Скачать " + backup.filename, exact: true })).toBeEnabled() + if (status) await expect(page.getByText("Не удалось проверить локальный файл.", { exact: true })).toBeVisible() +}) + +test("Бэкапы: исчезновение после первого чтения подтверждается новым receipt", async ({ page }) => { + await setupBackups(page); let missing = false + await page.route("**/api/backups", r => r.fulfill({ json: [{ ...backup, localFileStatus: missing ? "missing" : "available" }] })) + await page.goto("/backups"); const restore = page.getByRole("button", { name: "Восстановить " + backup.filename, exact: true }); await expect(restore).toBeEnabled() + missing = true; await page.getByRole("button", { name: "Обновить", exact: true }).click(); await expect(restore).toBeDisabled() + await expect(page.getByText("Нет файла", { exact: true })).toBeVisible() +}) diff --git a/tests/e2e/backups-record-only.spec.ts b/tests/e2e/backups-record-only.spec.ts new file mode 100644 index 00000000..e08825d3 --- /dev/null +++ b/tests/e2e/backups-record-only.spec.ts @@ -0,0 +1,13 @@ +import { test, expect } from "@playwright/test" +import { backup, setupBackups } from "./fixtures/backups" + +for (const confirmed of [true, false]) test(`Бэкапы: удаление отсутствующего файла требует record-only receipt ${confirmed}`, async ({ page }) => { + await setupBackups(page); await page.route("**/api/backups", r => r.fulfill({ json: [{ ...backup, localFileStatus: "missing" }] })) + let calls = 0 + await page.route("**/api/backups/backup-1?recordOnly=true", r => { calls++; return r.fulfill({ status: 204, headers: confirmed ? { "X-Backup-Delete-Mode": "record-only" } : {} }) }) + await page.goto("/backups"); await page.getByRole("button", { name: "Удалить " + backup.filename, exact: true }).click() + const dialog = page.getByRole("alertdialog"); await dialog.getByRole("button", { name: "Удалить", exact: true }).click() + if (confirmed) await expect(dialog).toBeHidden() + else { await expect(dialog).toBeVisible(); await expect(dialog).toContainText("Не подтверждено удаление только записи истории") } + expect(calls).toBe(1) +})