From a9e15faedc1b07a2219b79f7e59ab9bb17903efc Mon Sep 17 00:00:00 2001 From: Cheng Zhou Date: Tue, 16 Dec 2025 17:18:26 +0800 Subject: [PATCH] =?UTF-8?q?Step=205=EF=BC=9A=E9=87=8C=E7=A8=8B=E7=A2=91?= =?UTF-8?q?=E4=B8=8E=E4=BB=BB=E5=8A=A1=EF=BC=88=E4=BC=A6=E7=90=86/?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E4=BC=9A=E8=BF=9B=E5=BA=A6=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/api/v1/dashboard.py | 51 +++++++++++ backend/app/api/v1/milestones.py | 94 +++++++++++++++++++ backend/app/api/v1/router.py | 5 +- backend/app/api/v1/tasks.py | 114 ++++++++++++++++++++++++ backend/app/crud/milestone.py | 48 ++++++++++ backend/app/crud/task.py | 77 ++++++++++++++++ backend/app/db/base.py | 2 + backend/app/models/milestone.py | 26 ++++++ backend/app/models/task.py | 28 ++++++ backend/app/schemas/milestone.py | 39 ++++++++ backend/app/schemas/progress.py | 10 +++ backend/app/schemas/task.py | 42 +++++++++ pg_data/base/16384/1247 | Bin 122880 -> 122880 bytes pg_data/base/16384/1249 | Bin 491520 -> 499712 bytes pg_data/base/16384/1259 | Bin 122880 -> 122880 bytes pg_data/base/16384/24576 | Bin 8192 -> 8192 bytes pg_data/base/16384/24581 | Bin 16384 -> 16384 bytes pg_data/base/16384/24583 | Bin 16384 -> 16384 bytes pg_data/base/16384/24584 | Bin 8192 -> 8192 bytes pg_data/base/16384/24590 | Bin 16384 -> 16384 bytes pg_data/base/16384/24597 | Bin 16384 -> 16384 bytes pg_data/base/16384/24613 | Bin 0 -> 8192 bytes pg_data/base/16384/24618 | Bin 8192 -> 16384 bytes pg_data/base/16384/24620 | Bin 8192 -> 16384 bytes pg_data/base/16384/24632 | Bin 8192 -> 16384 bytes pg_data/base/16384/24672 | Bin 8192 -> 8192 bytes pg_data/base/16384/24678 | Bin 16384 -> 16384 bytes pg_data/base/16384/24690 | Bin 0 -> 8192 bytes pg_data/base/16384/24695 | 0 pg_data/base/16384/24696 | Bin 0 -> 8192 bytes pg_data/base/16384/24697 | Bin 0 -> 16384 bytes pg_data/base/16384/24709 | Bin 0 -> 16384 bytes pg_data/base/16384/24710 | Bin 0 -> 8192 bytes pg_data/base/16384/24715 | 0 pg_data/base/16384/24716 | Bin 0 -> 8192 bytes pg_data/base/16384/24717 | Bin 0 -> 16384 bytes pg_data/base/16384/24739 | Bin 0 -> 16384 bytes pg_data/base/16384/2579 | Bin 16384 -> 16384 bytes pg_data/base/16384/2604 | Bin 8192 -> 8192 bytes pg_data/base/16384/2606 | Bin 24576 -> 32768 bytes pg_data/base/16384/2606_fsm | Bin 24576 -> 24576 bytes pg_data/base/16384/2608 | Bin 122880 -> 122880 bytes pg_data/base/16384/2610 | Bin 40960 -> 40960 bytes pg_data/base/16384/2619 | Bin 155648 -> 163840 bytes pg_data/base/16384/2619_fsm | Bin 24576 -> 24576 bytes pg_data/base/16384/2620 | Bin 8192 -> 16384 bytes pg_data/base/16384/2620_fsm | Bin 0 -> 24576 bytes pg_data/base/16384/2656 | Bin 16384 -> 16384 bytes pg_data/base/16384/2657 | Bin 16384 -> 16384 bytes pg_data/base/16384/2658 | Bin 131072 -> 131072 bytes pg_data/base/16384/2659 | Bin 90112 -> 90112 bytes pg_data/base/16384/2662 | Bin 32768 -> 32768 bytes pg_data/base/16384/2663 | Bin 40960 -> 40960 bytes pg_data/base/16384/2664 | Bin 16384 -> 16384 bytes pg_data/base/16384/2665 | Bin 16384 -> 16384 bytes pg_data/base/16384/2666 | Bin 16384 -> 16384 bytes pg_data/base/16384/2667 | Bin 16384 -> 16384 bytes pg_data/base/16384/2673 | Bin 98304 -> 98304 bytes pg_data/base/16384/2674 | Bin 65536 -> 73728 bytes pg_data/base/16384/2678 | Bin 16384 -> 16384 bytes pg_data/base/16384/2679 | Bin 16384 -> 16384 bytes pg_data/base/16384/2696 | Bin 16384 -> 32768 bytes pg_data/base/16384/2699 | Bin 16384 -> 16384 bytes pg_data/base/16384/2701 | Bin 16384 -> 16384 bytes pg_data/base/16384/2702 | Bin 16384 -> 16384 bytes pg_data/base/16384/2703 | Bin 32768 -> 32768 bytes pg_data/base/16384/2704 | Bin 40960 -> 49152 bytes pg_data/base/16384/3455 | Bin 16384 -> 16384 bytes pg_data/base/16384/pg_internal.init | Bin 160044 -> 160044 bytes pg_data/global/pg_control | Bin 8192 -> 8192 bytes pg_data/pg_wal/000000010000000000000001 | Bin 16777216 -> 16777216 bytes pg_data/pg_xact/0000 | Bin 8192 -> 8192 bytes 72 files changed, 535 insertions(+), 1 deletion(-) create mode 100644 backend/app/api/v1/dashboard.py create mode 100644 backend/app/api/v1/milestones.py create mode 100644 backend/app/api/v1/tasks.py create mode 100644 backend/app/crud/milestone.py create mode 100644 backend/app/crud/task.py create mode 100644 backend/app/models/milestone.py create mode 100644 backend/app/models/task.py create mode 100644 backend/app/schemas/milestone.py create mode 100644 backend/app/schemas/progress.py create mode 100644 backend/app/schemas/task.py create mode 100644 pg_data/base/16384/24690 create mode 100644 pg_data/base/16384/24695 create mode 100644 pg_data/base/16384/24696 create mode 100644 pg_data/base/16384/24697 create mode 100644 pg_data/base/16384/24709 create mode 100644 pg_data/base/16384/24710 create mode 100644 pg_data/base/16384/24715 create mode 100644 pg_data/base/16384/24716 create mode 100644 pg_data/base/16384/24717 create mode 100644 pg_data/base/16384/24739 create mode 100644 pg_data/base/16384/2620_fsm diff --git a/backend/app/api/v1/dashboard.py b/backend/app/api/v1/dashboard.py new file mode 100644 index 00000000..c53920b0 --- /dev/null +++ b/backend/app/api/v1/dashboard.py @@ -0,0 +1,51 @@ +import uuid +from datetime import date + +from fastapi import APIRouter, Depends +from sqlalchemy import func, select +from sqlalchemy.ext.asyncio import AsyncSession + +from app.core.deps import get_db_session, require_study_member +from app.models.milestone import Milestone +from app.models.task import Task +from app.schemas.progress import StudyProgressRead + +router = APIRouter() + + +@router.get("/progress", response_model=StudyProgressRead, dependencies=[Depends(require_study_member())]) +async def get_progress( + study_id: uuid.UUID, + db: AsyncSession = Depends(get_db_session), +) -> StudyProgressRead: + # Milestones + milestone_total_stmt = select(func.count()).select_from(Milestone).where(Milestone.study_id == study_id) + milestone_done_stmt = select(func.count()).select_from(Milestone).where( + Milestone.study_id == study_id, Milestone.status == "DONE" + ) + task_total_stmt = select(func.count()).select_from(Task).where(Task.study_id == study_id) + task_done_stmt = select(func.count()).select_from(Task).where(Task.study_id == study_id, Task.status == "DONE") + task_overdue_stmt = select(func.count()).select_from(Task).where( + Task.study_id == study_id, + Task.due_date < date.today(), + Task.status != "DONE", + ) + + milestone_total = (await db.execute(milestone_total_stmt)).scalar_one() + milestone_done = (await db.execute(milestone_done_stmt)).scalar_one() + task_total = (await db.execute(task_total_stmt)).scalar_one() + task_done = (await db.execute(task_done_stmt)).scalar_one() + task_overdue = (await db.execute(task_overdue_stmt)).scalar_one() + + total_items = milestone_total + task_total + done_items = milestone_done + task_done + completion_rate = float(done_items / total_items) if total_items else 0.0 + + return StudyProgressRead( + milestones_total=milestone_total, + milestones_done=milestone_done, + tasks_total=task_total, + tasks_done=task_done, + tasks_overdue=task_overdue, + completion_rate=completion_rate, + ) diff --git a/backend/app/api/v1/milestones.py b/backend/app/api/v1/milestones.py new file mode 100644 index 00000000..ba6ffb60 --- /dev/null +++ b/backend/app/api/v1/milestones.py @@ -0,0 +1,94 @@ +import uuid + +from fastapi import APIRouter, Depends, HTTPException, status +from sqlalchemy.ext.asyncio import AsyncSession + +from app.core.deps import get_current_user, get_db_session, require_study_member, require_study_roles +from app.crud import audit as audit_crud +from app.crud import milestone as milestone_crud +from app.crud import study as study_crud +from app.schemas.milestone import MilestoneCreate, MilestoneRead, MilestoneUpdate + +router = APIRouter() + + +async def _ensure_study_exists(db: AsyncSession, study_id: uuid.UUID): + study = await study_crud.get(db, study_id) + if not study: + raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Study not found") + return study + + +@router.post( + "/", + response_model=MilestoneRead, + status_code=status.HTTP_201_CREATED, + dependencies=[Depends(require_study_roles(["PM"]))], +) +async def create_milestone( + study_id: uuid.UUID, + milestone_in: MilestoneCreate, + db: AsyncSession = Depends(get_db_session), + current_user=Depends(get_current_user), +) -> MilestoneRead: + await _ensure_study_exists(db, study_id) + milestone = await milestone_crud.create(db, study_id, milestone_in) + await audit_crud.log_action( + db, + study_id=study_id, + entity_type="milestone", + entity_id=milestone.id, + action="CREATE_MILESTONE", + detail=f"Milestone {milestone.id} created", + operator_id=current_user.id, + operator_role=current_user.role, + ) + return milestone + + +@router.get( + "/", + response_model=list[MilestoneRead], + dependencies=[Depends(require_study_member())], +) +async def list_milestones( + study_id: uuid.UUID, + db: AsyncSession = Depends(get_db_session), +) -> list[MilestoneRead]: + await _ensure_study_exists(db, study_id) + milestones = await milestone_crud.list_milestones(db, study_id) + return list(milestones) + + +@router.patch( + "/{milestone_id}", + response_model=MilestoneRead, + dependencies=[Depends(require_study_roles(["PM"]))], +) +async def update_milestone( + study_id: uuid.UUID, + milestone_id: uuid.UUID, + milestone_in: MilestoneUpdate, + db: AsyncSession = Depends(get_db_session), + current_user=Depends(get_current_user), +) -> MilestoneRead: + await _ensure_study_exists(db, study_id) + milestone = await milestone_crud.get(db, milestone_id) + if not milestone or milestone.study_id != study_id: + raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Milestone not found") + old_status = milestone.status + updated = await milestone_crud.update(db, milestone, milestone_in) + detail = None + if milestone_in.status and milestone_in.status != old_status: + detail = f"milestone {milestone_id} status {old_status} -> {milestone_in.status}" + await audit_crud.log_action( + db, + study_id=study_id, + entity_type="milestone", + entity_id=milestone_id, + action="UPDATE_MILESTONE", + detail=detail or "Milestone updated", + operator_id=current_user.id, + operator_role=current_user.role, + ) + return updated diff --git a/backend/app/api/v1/router.py b/backend/app/api/v1/router.py index 45cc9979..de9cf9a6 100644 --- a/backend/app/api/v1/router.py +++ b/backend/app/api/v1/router.py @@ -1,6 +1,6 @@ from fastapi import APIRouter -from app.api.v1 import auth, users, studies, sites, members, comments, attachments, audit_logs +from app.api.v1 import auth, users, studies, sites, members, comments, attachments, audit_logs, milestones, tasks, dashboard api_router = APIRouter() api_router.include_router(auth.router, prefix="/auth", tags=["auth"]) @@ -11,3 +11,6 @@ api_router.include_router(members.router, prefix="/studies/{study_id}/members", api_router.include_router(comments.router, prefix="/studies/{study_id}/{entity_type}/{entity_id}/comments", tags=["comments"]) api_router.include_router(attachments.router, prefix="/studies/{study_id}/{entity_type}/{entity_id}/attachments", tags=["attachments"]) api_router.include_router(audit_logs.router, prefix="/studies/{study_id}/audit-logs", tags=["audit-logs"]) +api_router.include_router(milestones.router, prefix="/studies/{study_id}/milestones", tags=["milestones"]) +api_router.include_router(tasks.router, prefix="/studies/{study_id}/tasks", tags=["tasks"]) +api_router.include_router(dashboard.router, prefix="/studies/{study_id}/dashboard", tags=["dashboard"]) diff --git a/backend/app/api/v1/tasks.py b/backend/app/api/v1/tasks.py new file mode 100644 index 00000000..5cead312 --- /dev/null +++ b/backend/app/api/v1/tasks.py @@ -0,0 +1,114 @@ +import uuid + +from fastapi import APIRouter, Depends, HTTPException, status +from sqlalchemy.ext.asyncio import AsyncSession + +from app.core.deps import get_current_user, get_db_session, require_study_member, require_study_roles +from app.crud import audit as audit_crud +from app.crud import milestone as milestone_crud +from app.crud import study as study_crud +from app.crud import task as task_crud +from app.schemas.task import TaskCreate, TaskRead, TaskUpdate + +router = APIRouter() + +ALLOW_ASSIGNEE_UPDATE_STATUS = False + + +async def _ensure_study_exists(db: AsyncSession, study_id: uuid.UUID): + study = await study_crud.get(db, study_id) + if not study: + raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Study not found") + return study + + +async def _validate_milestone(db: AsyncSession, study_id: uuid.UUID, milestone_id: uuid.UUID | None): + if milestone_id is None: + return + milestone = await milestone_crud.get(db, milestone_id) + if not milestone: + raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Milestone not found") + if milestone.study_id != study_id: + raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail="Milestone does not belong to study") + + +@router.post( + "/", + response_model=TaskRead, + status_code=status.HTTP_201_CREATED, + dependencies=[Depends(require_study_roles(["PM"]))], +) +async def create_task( + study_id: uuid.UUID, + task_in: TaskCreate, + db: AsyncSession = Depends(get_db_session), + current_user=Depends(get_current_user), +) -> TaskRead: + await _ensure_study_exists(db, study_id) + await _validate_milestone(db, study_id, task_in.milestone_id) + task = await task_crud.create(db, study_id, task_in, created_by=current_user.id) + await audit_crud.log_action( + db, + study_id=study_id, + entity_type="task", + entity_id=task.id, + action="CREATE_TASK", + detail=f"Task {task.id} created", + operator_id=current_user.id, + operator_role=current_user.role, + ) + return task + + +@router.get( + "/", + response_model=list[TaskRead], + dependencies=[Depends(require_study_member())], +) +async def list_tasks( + study_id: uuid.UUID, + milestone_id: uuid.UUID | None = None, + assignee_id: uuid.UUID | None = None, + status: str | None = None, + db: AsyncSession = Depends(get_db_session), +) -> list[TaskRead]: + await _ensure_study_exists(db, study_id) + tasks = await task_crud.list_tasks(db, study_id, milestone_id=milestone_id, assignee_id=assignee_id, status=status) + return list(tasks) + + +@router.patch( + "/{task_id}", + response_model=TaskRead, + dependencies=[Depends(require_study_roles(["PM"]))], +) +async def update_task( + study_id: uuid.UUID, + task_id: uuid.UUID, + task_in: TaskUpdate, + db: AsyncSession = Depends(get_db_session), + current_user=Depends(get_current_user), +) -> TaskRead: + await _ensure_study_exists(db, study_id) + task = await task_crud.get(db, task_id) + if not task or task.study_id != study_id: + raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Task not found") + if task_in.milestone_id: + await _validate_milestone(db, study_id, task_in.milestone_id) + + old_status = task.status + updated = await task_crud.update(db, task, task_in) + detail = None + if task_in.status and task_in.status != old_status: + detail = f"task {task_id} status {old_status} -> {task_in.status}" + await audit_crud.log_action( + db, + study_id=study_id, + entity_type="task", + entity_id=task_id, + action="UPDATE_TASK" if not detail else "TASK_STATUS_CHANGE", + detail=detail or "Task updated", + operator_id=current_user.id, + operator_role=current_user.role, + ) + return updated diff --git a/backend/app/crud/milestone.py b/backend/app/crud/milestone.py new file mode 100644 index 00000000..3cec213d --- /dev/null +++ b/backend/app/crud/milestone.py @@ -0,0 +1,48 @@ +import uuid +from typing import Sequence + +from sqlalchemy import select, update as sa_update +from sqlalchemy.ext.asyncio import AsyncSession + +from app.models.milestone import Milestone +from app.schemas.milestone import MilestoneCreate, MilestoneUpdate + + +async def create(db: AsyncSession, study_id: uuid.UUID, milestone_in: MilestoneCreate) -> Milestone: + milestone = Milestone( + study_id=study_id, + type=milestone_in.type, + name=milestone_in.name or milestone_in.type, + planned_date=milestone_in.planned_date, + actual_date=None, + status=milestone_in.status or "NOT_STARTED", + owner_id=milestone_in.owner_id, + notes=milestone_in.notes, + ) + db.add(milestone) + await db.commit() + await db.refresh(milestone) + return milestone + + +async def get(db: AsyncSession, milestone_id: uuid.UUID) -> Milestone | None: + result = await db.execute(select(Milestone).where(Milestone.id == milestone_id)) + return result.scalar_one_or_none() + + +async def list_milestones(db: AsyncSession, study_id: uuid.UUID) -> Sequence[Milestone]: + result = await db.execute(select(Milestone).where(Milestone.study_id == study_id).order_by(Milestone.planned_date)) + return result.scalars().all() + + +async def update(db: AsyncSession, milestone: Milestone, milestone_in: MilestoneUpdate) -> Milestone: + update_data = milestone_in.model_dump(exclude_unset=True) + if update_data: + await db.execute( + sa_update(Milestone) + .where(Milestone.id == milestone.id) + .values(**update_data) + ) + await db.commit() + await db.refresh(milestone) + return milestone diff --git a/backend/app/crud/task.py b/backend/app/crud/task.py new file mode 100644 index 00000000..9e8ab977 --- /dev/null +++ b/backend/app/crud/task.py @@ -0,0 +1,77 @@ +import uuid +from datetime import datetime, timezone +from typing import Sequence + +from sqlalchemy import select, update as sa_update +from sqlalchemy.ext.asyncio import AsyncSession + +from app.models.task import Task +from app.schemas.task import TaskCreate, TaskUpdate + + +async def create( + db: AsyncSession, + study_id: uuid.UUID, + task_in: TaskCreate, + *, + created_by: uuid.UUID, +) -> Task: + task = Task( + study_id=study_id, + milestone_id=task_in.milestone_id, + title=task_in.title, + description=task_in.description, + assignee_id=task_in.assignee_id, + priority=task_in.priority, + due_date=task_in.due_date, + status="TODO", + created_by=created_by, + ) + db.add(task) + await db.commit() + await db.refresh(task) + return task + + +async def get(db: AsyncSession, task_id: uuid.UUID) -> Task | None: + result = await db.execute(select(Task).where(Task.id == task_id)) + return result.scalar_one_or_none() + + +async def list_tasks( + db: AsyncSession, + study_id: uuid.UUID, + milestone_id: uuid.UUID | None = None, + assignee_id: uuid.UUID | None = None, + status: str | None = None, +) -> Sequence[Task]: + stmt = select(Task).where(Task.study_id == study_id) + if milestone_id: + stmt = stmt.where(Task.milestone_id == milestone_id) + if assignee_id: + stmt = stmt.where(Task.assignee_id == assignee_id) + if status: + stmt = stmt.where(Task.status == status) + stmt = stmt.order_by(Task.due_date) + result = await db.execute(stmt) + return result.scalars().all() + + +async def update(db: AsyncSession, task: Task, task_in: TaskUpdate) -> Task: + update_data = task_in.model_dump(exclude_unset=True) + if "status" in update_data: + status_change = update_data["status"] + if status_change == "DONE": + update_data["completed_at"] = datetime.now(timezone.utc) + else: + update_data["completed_at"] = None + + if update_data: + await db.execute( + sa_update(Task) + .where(Task.id == task.id) + .values(**update_data) + ) + await db.commit() + await db.refresh(task) + return task diff --git a/backend/app/db/base.py b/backend/app/db/base.py index f8963b28..71a6b635 100644 --- a/backend/app/db/base.py +++ b/backend/app/db/base.py @@ -8,3 +8,5 @@ from app.models.study_member import StudyMember # noqa: F401 from app.models.comment import Comment # noqa: F401 from app.models.attachment import Attachment # noqa: F401 from app.models.audit_log import AuditLog # noqa: F401 +from app.models.milestone import Milestone # noqa: F401 +from app.models.task import Task # noqa: F401 diff --git a/backend/app/models/milestone.py b/backend/app/models/milestone.py new file mode 100644 index 00000000..ec8030f3 --- /dev/null +++ b/backend/app/models/milestone.py @@ -0,0 +1,26 @@ +import uuid +from datetime import datetime, date + +from sqlalchemy import Date, DateTime, ForeignKey, String, Text, func +from sqlalchemy.dialects.postgresql import UUID +from sqlalchemy.orm import Mapped, mapped_column + +from app.db.base_class import Base + + +class Milestone(Base): + __tablename__ = "milestones" + + id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) + study_id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), ForeignKey("studies.id"), index=True, nullable=False) + type: Mapped[str] = mapped_column(String(50), nullable=False) + name: Mapped[str] = mapped_column(String(200), nullable=False) + planned_date: Mapped[date | None] = mapped_column(Date, nullable=True) + actual_date: Mapped[date | None] = mapped_column(Date, nullable=True) + status: Mapped[str] = mapped_column(String(20), nullable=False, default="NOT_STARTED") + owner_id: Mapped[uuid.UUID | None] = mapped_column(UUID(as_uuid=True), ForeignKey("users.id"), nullable=True) + notes: Mapped[str | None] = mapped_column(Text, nullable=True) + created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), nullable=False, server_default=func.now()) + updated_at: Mapped[datetime] = mapped_column( + DateTime(timezone=True), nullable=False, server_default=func.now(), onupdate=func.now() + ) diff --git a/backend/app/models/task.py b/backend/app/models/task.py new file mode 100644 index 00000000..3b35e2df --- /dev/null +++ b/backend/app/models/task.py @@ -0,0 +1,28 @@ +import uuid +from datetime import datetime, date + +from sqlalchemy import Date, DateTime, ForeignKey, String, Text, func +from sqlalchemy.dialects.postgresql import UUID +from sqlalchemy.orm import Mapped, mapped_column + +from app.db.base_class import Base + + +class Task(Base): + __tablename__ = "tasks" + + id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) + study_id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), ForeignKey("studies.id"), index=True, nullable=False) + milestone_id: Mapped[uuid.UUID | None] = mapped_column(UUID(as_uuid=True), ForeignKey("milestones.id"), nullable=True) + title: Mapped[str] = mapped_column(String(200), nullable=False) + description: Mapped[str | None] = mapped_column(Text, nullable=True) + assignee_id: Mapped[uuid.UUID | None] = mapped_column(UUID(as_uuid=True), ForeignKey("users.id"), nullable=True) + priority: Mapped[str] = mapped_column(String(20), nullable=False, default="MEDIUM") + due_date: Mapped[date | None] = mapped_column(Date, nullable=True) + status: Mapped[str] = mapped_column(String(20), nullable=False, default="TODO") + completed_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True) + created_by: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), ForeignKey("users.id"), nullable=False) + created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), nullable=False, server_default=func.now()) + updated_at: Mapped[datetime] = mapped_column( + DateTime(timezone=True), nullable=False, server_default=func.now(), onupdate=func.now() + ) diff --git a/backend/app/schemas/milestone.py b/backend/app/schemas/milestone.py new file mode 100644 index 00000000..8a711a7e --- /dev/null +++ b/backend/app/schemas/milestone.py @@ -0,0 +1,39 @@ +import uuid +from datetime import date, datetime +from typing import Optional + +from pydantic import BaseModel, ConfigDict, Field + + +class MilestoneCreate(BaseModel): + type: str + name: Optional[str] = None + planned_date: Optional[date] = None + owner_id: Optional[uuid.UUID] = None + notes: Optional[str] = None + status: str = Field(default="NOT_STARTED") + + +class MilestoneUpdate(BaseModel): + name: Optional[str] = None + planned_date: Optional[date] = None + actual_date: Optional[date] = None + status: Optional[str] = None + owner_id: Optional[uuid.UUID] = None + notes: Optional[str] = None + + +class MilestoneRead(BaseModel): + id: uuid.UUID + study_id: uuid.UUID + type: str + name: str + planned_date: Optional[date] + actual_date: Optional[date] + status: str + owner_id: Optional[uuid.UUID] + notes: Optional[str] + created_at: datetime + updated_at: datetime + + model_config = ConfigDict(from_attributes=True) diff --git a/backend/app/schemas/progress.py b/backend/app/schemas/progress.py new file mode 100644 index 00000000..31028325 --- /dev/null +++ b/backend/app/schemas/progress.py @@ -0,0 +1,10 @@ +from pydantic import BaseModel + + +class StudyProgressRead(BaseModel): + milestones_total: int + milestones_done: int + tasks_total: int + tasks_done: int + tasks_overdue: int + completion_rate: float diff --git a/backend/app/schemas/task.py b/backend/app/schemas/task.py new file mode 100644 index 00000000..6816fb9a --- /dev/null +++ b/backend/app/schemas/task.py @@ -0,0 +1,42 @@ +import uuid +from datetime import date, datetime +from typing import Optional + +from pydantic import BaseModel, ConfigDict + + +class TaskCreate(BaseModel): + milestone_id: Optional[uuid.UUID] = None + title: str + description: Optional[str] = None + assignee_id: Optional[uuid.UUID] = None + priority: str = "MEDIUM" + due_date: Optional[date] = None + + +class TaskUpdate(BaseModel): + milestone_id: Optional[uuid.UUID] = None + title: Optional[str] = None + description: Optional[str] = None + assignee_id: Optional[uuid.UUID] = None + priority: Optional[str] = None + due_date: Optional[date] = None + status: Optional[str] = None + + +class TaskRead(BaseModel): + id: uuid.UUID + study_id: uuid.UUID + milestone_id: Optional[uuid.UUID] + title: str + description: Optional[str] + assignee_id: Optional[uuid.UUID] + priority: str + due_date: Optional[date] + status: str + completed_at: Optional[datetime] + created_by: uuid.UUID + created_at: datetime + updated_at: datetime + + model_config = ConfigDict(from_attributes=True) diff --git a/pg_data/base/16384/1247 b/pg_data/base/16384/1247 index 3f84f3d6c193a1d0140d58fe9aaaa2c1e3d67b16..f8480d631d1d11b34f34d2592100ca6d8beaeca5 100644 GIT binary patch delta 473 zcmZoTz}^5vTNqgm@I2_9$H)K#EetbwCJK~H4hj*Q_`qV&BR$RgOdw}7FbIQ5J_cz9 z1qMbAh5!Hm%Y#MQ6BrocOA?E-rzc)z3})&`nCzEirGc(X3QboBP!~*-_4M248F{A9 zzre`K+XfVef%fSeFEE~axhQ~a*h4=hVzUK0ssz^r%nI> delta 244 wcmZoTz}^5vTNqgm@C1CH#mE2zB@7k(69rNx2Ze}Dd|)w*5a0HS^Nbw=04%G1zW@LL diff --git a/pg_data/base/16384/1249 b/pg_data/base/16384/1249 index fec67a044a886f0eef274483aade267535ccd8f8..1d3faed6e42e179d547c7396c8ad1d7e71e33a0c 100644 GIT binary patch delta 3745 zcmeH}&u7U8m0l96;iRl8Q4THx3AizW|}O2M`yesMmCM?C1E+ESz(|(t0KP^WMCj z_vZWEa=E|!tiN0_DuIewu_|`OdBUw!N9x0d!Ng~W&6(BkxnK`7SX5k49t@PK&pLvv zEdCc)^+j(jY4pWk2RxjyL-Koueam9ZXdB$!JuiP?w_(fXc@6tU!;+2#7k?b*0Wrx;tzUoT|clDo8! zu5G)M@NU@dfVJPvA+41s)o4ieinZEc_8%vHLR~AN(qgTp6?b7NU8>#qVX`)7IH75a zv0d@8SP(WY1>$3Bk`q2j3dKym2oap~pd%uhMjUC7klIFpbb z=L4`g#KT(UV?M!4?($+WQ-IAM?J2RW4G$lgiR0?BU;0FrG9@r#j`zUrFcsr{Fc{)t ztu@DeLa%4C?s6%g!;&LsdA}@KYt1n=8s$g8fbDiMHQ&W}M5^Zqjv21W)c{d?ZQ!pnVoyTQ z{k6}YIBEn{OiXNRSaO!H!t-1FPhou5*7!Yf`%m0pG|3Ob6Psu6Uoh-Yy#97|g{?=c z;qPk~jnkqO&#*pUpZ8!t%)rs+p-aeFKgSL#qyB)p{*eaOsbF`h>-RJ;DRIF)Bl&~6 zK4MbS2u580a3h;kuomnNwFbnbf)R{Z17cF42u7>{F{wfXBi4YJ)Ez;TRZFrf+0r&j$cnDepM| diff --git a/pg_data/base/16384/1259 b/pg_data/base/16384/1259 index 9ae22a67d8801b4d2de674469340d1a670e86890..9e639dd9c313abe435d61cf1e0a7df097af4bc74 100644 GIT binary patch delta 1702 zcmeHGL2DCH5S}rKo78q`Ow!Pb)D_5}=5THDwSBt3NxDnb=p zR@h!NG=);Bf?A|_G6xS{1;K+ze@8)xZ{F@Uo7YkVd-P)y_RSl{`8g$!tbiP27{Gb@Z z1di}9#2*t;F-%(4lifNecgKaE$>!n)`f4!4|EMz;f%Yfw76$Ws`{nCd(||y2{NX?^)AWLcj2zo7ZZn=>0RU@Z BCV>C| diff --git a/pg_data/base/16384/24576 b/pg_data/base/16384/24576 index 64aea0dcbb1c94b485dbfc120f5b477e0562695b..1250058c03102ab072ec4474f99bfda53dc4e8fb 100644 GIT binary patch delta 313 zcmZp0XmC(r0D=d<=QDz66@~^m1_c%c5W8VM10w?vH_T&T+^85MSO18Kf#C%Z!vHe_ z8^a_<2?kl|V50}B{$ATs%G+1V-Z&wgT$C7JTAW%`tzwjX(=6%;_BD2zC=goa6RS zJTIB*86E;He~IJ(Ca43P6W8{a6?;r?P0lMfc^&aaupk%3{!%ZG2zL|b?121mmx2(> zsKQ*2AYVPhfXLK{pmM#yM5mGv?=aIe7c;}ku)KVuu%Iw~184RCUx@V#3}RJVfDT}1 OVz>^p{PE;g`Dy@)NL5Y% delta 51 zcmZp0XmF5W0D_Lgvl&6O3`2uFg93{Jh}|%sfpMduzuZO#QAXD5ObiV7Cb!C00{{u^ B3ugcT diff --git a/pg_data/base/16384/24581 b/pg_data/base/16384/24581 index 8d1c65e9242411bd52a352412d0458ffc58f81ae..5bf27cfdc8f6b549540e41ad7244351a295a64fc 100644 GIT binary patch delta 94 zcmZo@U~Fh$+`ytB&vAM_BLfhqFszXOAkU%zV&9l=z_0>{56m~%=-4T*!^|MTAS)eg r^gz|$Yg8qF delta 43 vcmZo@U~Fh$+`ytBI^q5lMg|~|VYngxL7qhc#J;gvQK4IYVt~cuJN7C74fYI| diff --git a/pg_data/base/16384/24583 b/pg_data/base/16384/24583 index 6de5b9c647abae8802e3443aaf055404b2020dec..d4a695edd91fb8016a2b387f45312b0b115c53ed 100644 GIT binary patch delta 86 zcmZo@U~Fh$+`ytBA8>j;BLfhqFzk^3AkU%zVn3L#z_4S!0mFs)3L70~%BwIlNH_>5 c7bV7*7N-`06hHwJgMfozK`vN$@&kJX0N)rEQ~&?~ delta 43 vcmZo@U~Fh$+`ytB>hWL-BLfh~Fg%d|AkU%zVn5ids4!c8Vt~QqC-yP`24)Os diff --git a/pg_data/base/16384/24584 b/pg_data/base/16384/24584 index 0b70a971ab947d1b02cb6998a2a5ee1e3819f078..a6c7a595fe946ffd5df09eedd435b2a5785d6e17 100644 GIT binary patch delta 172 zcmZp0XmF5c0D=|2=QDz61qK6o1_c%c5PQb_3k(MHFKkp4l&^ox#K7(UXR{#J2 delta 43 vcmZo@U~Fh$+`ytBdZBtYBLfh~Fx-&;AkU%zV&B-TsL(AxF~DN-9eWi33XcqW diff --git a/pg_data/base/16384/24597 b/pg_data/base/16384/24597 index 7df4c79821c332f590ed82ef241e28e9cc9538cd..53d093e0a43e7f995b562d8a0e22916b5c474bdc 100644 GIT binary patch delta 78 zcmZo@U~Fh$+`ytBZ}5LUBLfhqFdUHoAkU%zVqciAz;FPFAIw+S=(tc`hM7UYK`_|J YB-z-^2qe!0<{Ks@TbL$JeqgTv04{bD-2eap delta 41 ucmZo@U~Fh$+`ytBTu?KckpT!~7#_%fkY`Z*STfhjU7&I6b$T29eD1g{2=5JsK0OB9>HZUvz;!!Xf0;3@?8UmvsFd71* zAut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0;3@? z8UmvsFd71sguojnRNX8LYz$1C5)8hj&JSYsyfd49ZmpVd`MLKFnWNi0tsJ(kxBV0S zBUHLVRyx?|fvUgPwv_Vr)v`BEa5@J$f+o4QNpb(+dCA1^8qHj0sJT9S1WK|qTwI%+ zm|b`F?0kW4u5;qr{<30^>8;6ml4VmPteR|gqpkM^S&pmmibNCKSk}e Rrp1%*=;q>b?*x8`xd6pRc%%RT literal 0 HcmV?d00001 diff --git a/pg_data/base/16384/24618 b/pg_data/base/16384/24618 index 314573e5a07b6c6c8ca4de18ccd371bd5ebb4efa..08f3afb3df216d274819a9c29fd31136ba341e64 100644 GIT binary patch delta 207 zcmZp0XlP*6WB>w#^Ya-&vCv`34&ubLDeb7$g{cOPwFY>Un22``lVJ;qr5DkbY*MxX&Je zlI#o@*Cr=s*PT5(Ux37!fZ`4RT(+{Nx>;>WH(j`ZTh$39&IlCW@_FBrRm=P)?4P3c PTGQgmcaS&?FasF?Uq3WW delta 42 scmZo@U~F)ZWdMR7Q>Qb6Xb*-D@*m_`6hQ1GLskZsiH?dJ?GDKU0M&&F?EnA( diff --git a/pg_data/base/16384/24620 b/pg_data/base/16384/24620 index 3c8df0fc5d6fb85da068c8e99dc096721c8e3c7c..56a8238207e72da435cf8cb6e0fa177294fad6b9 100644 GIT binary patch delta 272 zcmZp0XlP*6WB`I2=jStmXb*-D@*m_`6hQ1GLskYBAPtrP(GwL#H`*PNR|iQRU|Rqd z*I)>MYgjNpfZ+rX2LN%!{D6&)y7Kib3>pkOWR7n0v~t+C-u6%Qk5K6fS?OS-2de&F z+fvHgSIgcw0Wyyni#q4Twf$wq9@ATs^U6(LN4x>4V*;x4NLtZ+&DP7PAndfPwIKSHG|K>C?+h%*7j gJ(5;5U$gZx>bU;>x=>@87)U)M4snni2rvUN0K!5vBme*a delta 42 rcmZo@U~F)ZWdMSPGt(JCvn-3B+y0bewGb<@ByJKp5ksQN_vbilPurEHZRlR5fD$wRpRiDdK4Yqnzajki(!n3tgX9H*8f&x$g3P1rU z00p1`6o3Ly017|>C;$bZ02F`%Pyh-*0Vn_kpa2wr0{@G^gnIT(!;vM3dPyA8oZRia zu_Dvoy7OsTQ*%UzFY!)KPFiM9NBZOre?dZZgv5IHYESz{%10c-r?z*wHYPt?n#`E; zw-n_wCZ-_2$eeAmZ>DPk=YU>oBsfaoP!f|LxKkiequyXdIXxljcpWJiv@GyStW@a* zjKkspXa=x2?6jG^exk~oedY-7+J}EE{1l#N3+C?5Ug3{?uSUKq`WFTJFOhs|T(sTX zf1%X-b3oI#p#FICR@%hSMS*LG%!0%D3XzpWVb0hMA=90o6`f(hPVTX#chwU++uPGQ z>T4>GQFg|Zm6VEJ$?X#F#hy4gUTIG|+Pt>vu282*3dY)UtaLsjW4UcJM*+`a1mz@o zR3u3Qii>&{r3fR2Vj@ZKEP+#)4g>RLBdYi#`Nvn2;s4fO znmf{cvF%m&F=p3%zB)`VIw?7u69^u~S$U{A1B;_ZQ4lx-#TsyfIKOY()#>inif(nV zd$jlGp)Ve5bo;ix+_96oa`l?eVc?C$)DT&`{&L*J*C?-4DePB%jW5WvI!u9y7F&+}ozL7CaD1ugQO)!m zSPUL?Z)vF=K7NB4>zq{ndG4Nd!5K9>Y&P1?=*{l3GSMZ?&;V{fV1=?0*W68k!CO@` G-Sr#8VwjQu delta 50 zcmZp0XmC(q0D=pLW;23l1%?}P3<@j?Aa=%l1I8Qk6c{%;ic4<{SjfEjhMWc?03_%P AlK=n! diff --git a/pg_data/base/16384/24678 b/pg_data/base/16384/24678 index 6e1c685179e9bdf62028956f0eef14ca7f0e602e..a449fd6ac13842b7ddf6d6b00e02a72c66962cf2 100644 GIT binary patch delta 193 zcmZo@U~Fh$+`yus?;yT_kpT!y7(C=Z$g?Pb*c0X(FjN5X3Ly3X;shYR0mKL98*Frx zl&@!JkYJdozBO&Tpu>+jv6rp-CUUO_>0<+mFEdZpm*Der-n%HL_~(AbJs@#bpm@?n zm)*jb{1SI>+i-tJU!f>SoCPS(n{|J)&q0?*J!UdJt_Nlpfy9}C;sqjSo+__#E!=Cq XOJC)L?xI^aXHcu;uZR>6S zME?ktu26Li@$hsGjt>rX^7RZ3_Vo9|6ya25V373l4~Y*BaSRG^bpaVY^SHndo|jB; z`Wes-FOb~9h~^GOyB{C-=6K!Sx@6wntz98;9!V>jui1JTbzJ{`U8u244AWLj5p3>w MGIjqakUL;B07OYv$N&HU literal 0 HcmV?d00001 diff --git a/pg_data/base/16384/24695 b/pg_data/base/16384/24695 new file mode 100644 index 00000000..e69de29b diff --git a/pg_data/base/16384/24696 b/pg_data/base/16384/24696 new file mode 100644 index 0000000000000000000000000000000000000000..f2a4f51a050f05da277d7038f63405ad078f17dc GIT binary patch literal 8192 zcmeIuO$~rB3CfRsMBL{!wHAA1&05x; zk8O_9!?5!C4u?C21PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfWV&uOMCtT D1zZND literal 0 HcmV?d00001 diff --git a/pg_data/base/16384/24697 b/pg_data/base/16384/24697 new file mode 100644 index 0000000000000000000000000000000000000000..9d8db47a4fba615b58e575e828e0c003a72ad9d3 GIT binary patch literal 16384 zcmeI%Ep9?V5CGtzrAd2%riz~%6pKJN6;)_NgFw_4g{eVc2p8x>a0O&jbbA33g06j3 zRkDwipA(?INj5XPBWCm2iHPX^W~G$kA@XWoE!T?rxp5Wcly{AjT=b5SfA0IoHx&T_ z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNA}PJ!$HVbh!GZjE1y#bN)y%GczImSXYcFzsNFgJ(Pg@90aNxKX#fBK literal 0 HcmV?d00001 diff --git a/pg_data/base/16384/24709 b/pg_data/base/16384/24709 new file mode 100644 index 0000000000000000000000000000000000000000..7f3fa2dd946351f5ed5577dc243b38e1c4f2e7a1 GIT binary patch literal 16384 zcmeI%F-`(e5CG5tF(FjO!k9q99zm>#35g}zQ`zkyj4h$@7E4KIN9?5G3cxWovCzW8 zzeHJ1K=mg1nfZT;`FZU`L|l9pjg(>>WxwpVvZ~Gp=g~@e-#E%uua5HLzhA$p2oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+0D)5qwEu<;JM;Y-Ka162|Gz74VwH{{ zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1WqH+jO%#st(OmX_sh4@&(rs$ e`%+DAr1x>Ym~BRnx3Al;?dA0O>i9=z>GBJx^BkZ6 literal 0 HcmV?d00001 diff --git a/pg_data/base/16384/24710 b/pg_data/base/16384/24710 new file mode 100644 index 0000000000000000000000000000000000000000..b4c206d803941f4d44b15a8d84668597805c75c1 GIT binary patch literal 8192 zcmZQzU|{$lx_}W#F{m&|$T29eD12mMU`Uwnz<6Mu1Ea*e0I(cLeiV#`z-S1JhQMeD zjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mk zz-S1JhQMeD480Hl%>g3=W(M8{W=(~Bd8nYlv>mq#Z~I@L9Jx79NBt_-4w<9dJgpqI zt+)LX{UcPm;Wuu!_(b^+r{6{6==tDE5RQ;FPRve6W8{a6?;r?P0lMfc^&a4_`LvF zJl+r@{~qX0WVZs{>A=jYkS|MXcZT@8_@g@xXeZ2lF!}{rI5INuGB9%@+{e<<`LXZ3 zyZOxXncr^k@+*2It!Tbx>t)n&{rh#H#xgNQyB{C-=6K!Sx@6wntz98;M28~|_qpxa K{|OYXFd6_2lEvi! literal 0 HcmV?d00001 diff --git a/pg_data/base/16384/24715 b/pg_data/base/16384/24715 new file mode 100644 index 00000000..e69de29b diff --git a/pg_data/base/16384/24716 b/pg_data/base/16384/24716 new file mode 100644 index 0000000000000000000000000000000000000000..91056c37d1009f0c5dcddb5fe0b9d0161f437bb1 GIT binary patch literal 8192 zcmeIuO$~rB3Z^Xx=K43CRaO3{nFkvFntQ4hNJk)?cYT;-y7iTv}ge|b|8AV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0=E=+_#Jk9T%OnX&Di|!|M!bdY|;?~ z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+z-u`Y<~5cOS2-_x96Q drI=hw@7Z|rJ>9-M&$n+s`)aLq{iAZaoB-Bl9q<4E literal 0 HcmV?d00001 diff --git a/pg_data/base/16384/24739 b/pg_data/base/16384/24739 new file mode 100644 index 0000000000000000000000000000000000000000..226a307b6cb72d9f817bc03156a82c7376a3a670 GIT binary patch literal 16384 zcmeI%J!*nM5CG8eCtxWS5-^}gP)k8bsrFXsJcQVWG%0ffE$!^YP8+WfJ;v7=Aw~9+ zBzgj?H?Yj?PBF`CCnBPHo)=PzL1fLWS#IU^r1KEvlrN2&ocFGgZU6e$Hx&T_1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNA}Pl3wsu#ei}vc_-4?tlM(oVR0_jvzpQ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjZ>BT$UT*gWmm!`}0H)&G9^8aHP7 bz8ASKwvZ=yXhU^CNRP4gjW@38er4 diff --git a/pg_data/base/16384/2604 b/pg_data/base/16384/2604 index 2003d687ee62bec43842462ac3e7d725d92c39db..d23975778b2579fe15a517a6ac5fd4d7c43c44ec 100644 GIT binary patch delta 240 zcmZp0XmAi<0D=>%<}rfk2nGg`i2@b^4$~?a8>Ut;9+*Q1O?p2-U(W@wn2q9_JC0;rh} zs<;fOxCn^3fr@9U8(~$;3sqYRRm%l*#tdc)gWAo1#BMS(a!$S`wV#o5^EBx!767Zd BDUtvH delta 49 zcmZp0XmAi<0D=OZ*^D6CgMmSOqJYK5#QDM-3nZC0iC<-AkF6b~vss_nsx5@JzNtojL>B0+q$k`!!Jupac}gD`r~ z8uc3}c=P1Rs~-P=3QBee_4Zak*p&b-e`~Hpu3D_|KHdi++C!fpWeQFGklWNrFNfAZ# zlJQ5)=u}Dcabh+?_%${6)RGXzt)|efPM8xW&eD(W50&Yxze8yRK(#y7$$>UdY$n_(*XQ<=|4~-F8 z513)C_-ZVTN>)!GRrv4x%et(vGLEyllC>OsVRMz)PWf{|^ZA`6J% J0P!F30|4>O4b1=m delta 13 UcmZoTz}Rqraf6J*Mwut_04Em(UjP6A diff --git a/pg_data/base/16384/2608 b/pg_data/base/16384/2608 index b846db0ad94fae438e327121047b8d8f676c41b3..bd0ac36f97cfc3ae4a29b78d58db41cf70664fa1 100644 GIT binary patch delta 3381 zcma);*-jNf5Qb|I1w{slMlpzjxJ!)j#v8A^5f|LWT^n~)P}%o6tnT7|+z{7zWul3R zUg8^Qd;lK6m$0j*>ZGPUqcb5;-TYtw)zv-SlbXm&*`F_7?nFVVa@+&^tj+oKxu_y1 zz3#i03MO-~3!sXA`!E7|0Qn{GI~U-sp-zfNY>d*nunUA+O>G~BncFY};EmPdv&P0R z4TVr2{>gBwsO<+Zq`=oKP5{E7;$9`-R)&T!pty0fo_hb8=?Vt>8KmUWH6OjwGAV*c zQV~hnJFhfTUy%e_!f9izvAzY?$*u2lcJEVZk1>atJmuJ}@3N2!pjUw}l7rBrxaSGD zrJ*5oEAE-DZ(OEJ80=z@W)-ckNID~uNPR`pp(UKQ)OVV7a_d{k?(Hh=C(L0c4>@-0 zyExtN{Jvz$-BzZuKdabC+U~?E~=PvYO!oL!C6iQI7Re(EJyY#)nG^y#F5%kuv5Q z6?ZQIw}80@$lFMVB_4Wr6M&@*UR0GCO*gz(M~O%-L?yq}Q6iG_TEgzK)w3Pd^Vz+g zIn>@(S>NGU*B24y0yw7(MJ$H6gWLrzLE0|pS!HS&0A zWSgOYrz0SZMux~`OLPt!o?@=buICM_#YZMsXl%osp@1h9cpZiI5pbrBU2Zlhd^n*J z9Z8RUP^&DGI+je@d0#ce0mj!jc8e#RQJiQcB^<@&ifL$jAs<&c4YLV?cur(1`m7Ly zW6a^pFvJ|5H7Sl=!y@L6DsE6#ISF_~fddH)eKtI-xPF(zd)m#kkikO?QgYE7N+bs( zlE@7uk^@@8_EO(`>*Veg+&}mh?N@0BhC1n3?B>|b8owqi7eK87`&f)qhy(4v5QKe- z>rKE-XKt_Jdh{1SoFUE{4file$wiMvk?f92^sy+CU0PyjXnGgp_Ah=Fp!-hda4qO= zv%Q!}m%;!4y(^dtV23gku`H-(L3cr?(r`X(SBC9|Ix~r4%Uw{sGcnN`#dXLFgN8Ur zwl`G3Z4r=0BSYk}C5nA$xRp6P7Tc^AADLi*u?=^I0&Y=YD+=u+Anr1kBY`#CtP*Xa rW3f&?wMA0R5JLSv delta 213 zcmZoTz}^5vTNqgm@KnUkW@G>Y1I7&k8wC^?ryCt&tefs|h_PTu5R*3~DQ(|yfiZv| E0Ji~ClmGw# diff --git a/pg_data/base/16384/2610 b/pg_data/base/16384/2610 index 47353b1628cd94d0a3d2ab71c0aca3b377bd2888..09ef1dd4e58d09e429adb0d2ac049f35a0b6c271 100644 GIT binary patch delta 314 zcmZoTz|?SnX#-0G&kCjaj0`~F!N4FfS)f5dB4Bm`|Nrb@0fxm13=D0PYm=JcDkY&RxzSYiLR8LeR)d)- z235%gQptfZvj?cMJ7IF2W*6L0L8wwrG(%f~N{djeXM?KbKvP)>Q8^dkP-dt~b~NiN RfGW!;pPe&#Gsm1C%m5Z9Jlg;O delta 39 tcmZoTz|?SnX#-0GPlUy6Mg|}-U|^7$EYP5^Ij~{9_~wKLMV3W#SODmn3&a2b diff --git a/pg_data/base/16384/2619 b/pg_data/base/16384/2619 index 4961cd71126043f38a6b476718c880e809e625d0..3f1ad759ed9a57c317c0937ce0e9b3e254d49c81 100644 GIT binary patch delta 2467 zcmdVcUrbw790%~;AEd{y_#kONpR5nUWTR;Xk!#Tki|Blt6_M&kN1;#ou;{4NF zKtzWyc6E0u8=zT?Qxi>0{F6ERqT7SXrcXSWOkC=4jB%gDC zJ)HYH=bn3dsGiE#^#XmIeX7{iqG)oS5y})Tk?B;GmNxISYO8teG8>xO!|s2z*{;8G zjHM=~O7fmh31K)bqyqimODtC7OhNElm=qSY>_-r_*=!EJgMMnJUq8qJw z3Wyw;F6+cqZ!_mAS%cwq1s>`aPlskV$lO{c#)T?)C5v^e8?ua5V*L7^;j{LvwDvTU zC)ms;Yq#~*ZkT+Lai#I_s-Ekz^ei+74zTu}AIN7qgQel?l>V%5CAxk_&+Y3IE14^i zRc3Z-L>|}zLD&X6pbNTTFATtQpu-Hj4sXIq5XHI>YqLCFf$>!+T7>RxcJ~6oM+9sB3bol}K%PG)j6%f2YLcEi5NHLpyu!$E7tvMgQKWJXVa zRaE2mfzHf2rk|6qV@~&n-?T=IKbFh4lu{0fg|X&#WyzgmTrF-l7Md%tALOcKvVQV| z+g9A&YWfbcispVyVgL@ph@6mhfKoX?EOQ9pIqgQ(m(j$T&kOO|Md`xbm01mq2@O@f;k1uq2`8v z^fzYW{3a2ca;SL$57mZIZRSq%s=-4EUJ0jp5dN1q|Ik=369qObX3SVtOLv(T>2^xZ{$V9t2lK<@362Wr7~! zZ^HUMo$`IkL*4w@!KRJaN5y{eDn;eO`D{7+@!I9FejVRTekx2~`s+V_HB02AfhB-I^^BNA11q6%mj`rEv`;=|YYC`#VEd6U?Bb~pAyml{dJ3fDr{BZu{MYG4N z{ALb$m8JhrHLHikZ?#tY!5rN|sw(t8Vd$ R7EzU9bFChw)L2&A{{eGi&@KP~ delta 116 zcmZo@;A%L)+0eqcg^9(1=fj&IMg|5J1|Nn4{L=*-m~1A0TA;SQ-~porBjx18hIQKy J_%k^O0030@DgXcg diff --git a/pg_data/base/16384/2619_fsm b/pg_data/base/16384/2619_fsm index 63545ae7e7a8517fa7b8360a7f98521399074e5d..311639de268c2a34627ed17b9d7101208d44f47b 100644 GIT binary patch delta 84 zcmZoTz}Rqraf6J50uvJh69WSn11UHSVuJwFL`8WyG=|Q3>X*L)xav2Ze&dlhKm>D(GRd5ym{K2QMACiCljqj z@GrY?;(!N2;u-t|egG5n~a9aG$B)?`^IwKUjyS z{$9P)kNMGynAhY=dNKdG9`j|nhHEira&=Z?o*wsRPDYesY&yTNMRuM!qIP-;_ph^G zrMlCO!t}VF-4mYZcNnY4^(tF&XB&p+IWQIy-jo0AW(~LIw8L8}#3R?|iAAfh(+xt` z3$(3h*#nA68@fQ~TK2$`Nry{{?R%c+%2;D^>79{RSpK_C_$u(5re=#{&1K-%2!Ad& zGBvkUh(E&TPpq0tK%0aw4w8auH=mh7mGEkM(LfA3)p#%@Tb7B&#Gp_ zn}?n|QRN~Ff&mwYUxO1aZ#E~@&C&&Z6HMtRQ+G%8C>%`>^f=yU!yxtV9DKVye(*hn z^~J$=*wpE8Rwe1|%H8|<+_Z3Rwyk$K541w)PJ!awXo@ev&0FHBGajf|&@Nl32qjYFGGlN5@M?m0{Z>G5Mw07rVP=| z9(wYWimcwB&0+?!7$qUz7D8D4KO5o_gm6fROoo8|M|f`7$LvL*BZR&wP&_v@#r_-0 N2~FXExB8C<{9k#EI?(_C delta 73 zcmZo@U~F&@U;qM#nAwaVdItjo`$T~in-dj0*fz0?@-uQw789G#$gz2w*nLJIXPN|v PVrfDUA^3V(d0cbTFchDI!NsxklU(AV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0;35y{~xVm>Loyc009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0Rl&X{rP`Nk(OQSwT?1xtK+)F%e>!T;#cRV&tJ`Rw(slwXLYrT z|NZ@2Iro}J|9kC>x(K{4;QN2ySOx+F2oNC9n}Gj+Zyiw&0RjXF5FkK+009C72oSg_ FFat>a0jU50 literal 0 HcmV?d00001 diff --git a/pg_data/base/16384/2656 b/pg_data/base/16384/2656 index 3e55a033c2c26764eee467c9c180105f2813e5a3..a929537124b3ddcc1a4f9bac7f68d63a3addc882 100644 GIT binary patch delta 108 zcmZo@U~Fh$+`yv1!?AiEBLfgbFno}kETCY)uP|SMK>&yufcV2ag^iAL%IAS_8Tf$wq67v8ZYZA@%IBJ_YkwI4wP+HM delta 34 ocmZo@U~Fh$+`yv1vw>$eBLfh4Fc`>B7ErL*==4TzvWfi}0GyWzoB#j- diff --git a/pg_data/base/16384/2657 b/pg_data/base/16384/2657 index 591b6232ac788adbf275e19cced1197d2dadb178..daa5735183be50903d7d7c3ddf939d74692ef76a 100644 GIT binary patch delta 105 zcmZo@U~Fh$+`yv1&yufcV2ag^iAL<;(;a1Q@y! fK*}J1AIR@afbkd@_<;N}Bt9>YUz#vk%l;YwmhTd+ delta 34 ocmZo@U~Fh$+`yv1^MPkJBLfh4Fc`>B7ErL*==4TzvWfi}0HT)(+yDRo diff --git a/pg_data/base/16384/2658 b/pg_data/base/16384/2658 index e1244a1244f43ce23144cff2936f55534f0c5b73..7e47dc80ec26fe393e09a5dcbd1c722d59160276 100644 GIT binary patch delta 1809 zcmZvcy>HV%7{*_h7Sd8^N~sjSQ$EYL`L1*s!h$;XKSbpPih+%A>P?_uR*OdGBqvGj05SXv6#CUuV8(gr_&u zo!HLqYr9&IUDql9Nv8#93u;51^*qgk@8W$Qnq4o_AGA%d4B9fOeV&po6tM_155n@~e743#(XUwMbiN4?0*BZ5t}Xkb`zHptDva9q$Bf zK^gQn(QcycVay!bC8&e<9jFWCpn0eX5u`(9==X|FKcStKJatzz{rmI1@t{Bxlq-HK z6M5XPwn|o291~H2PExk`p-dE!0-b>GJ-#bTzWu7?nXiQnzHx>3#~%lO2R}C!Yo^oZ zW0F_uMw5bYl4zn)+0hgo$y1Pawq z94}BGjF{1*#IN#)v0pg}Mh_(S-C!^RMo6A$L#YVvr}$z^?3U3z%13^u?$*rySwyig zx+}+d+~B?!N66@oPyN%C}lT$DVW9~Tn8ng{0-zsk==`~_7~ z334``XyB@dV?Cqr_@*$*3BK{`P@4*-@!I%LET<(;$1){(I+jz3U)}R$;#YY#;=w<$ zi25crq~2DB`WEr@Z54G+_-%)qNy;L2QRf7AmTj|<)JaC7&Iumncv8?9i9#njj0*RS zTAb#LMv;SpyEVhMQ9kh#%jg}35=4WPynJ|0Il*u>;W`F!;hu-)YgsNo4q%16A$l;siZB<|TTI zo`F4GG-Y4ENDnyw=P1rM+)jt z`+VV=1{$jHfxIB!m*?es@|=8Eo|W&&b@{fO%D3d2{r|QDH#HEqG+ZZcJYzng>MFAzv2_()z|Yv) y$`<$;TU(j^jIFKAe#X{TW2}BLfh$Fga}IckpGJoS>w!(P^J>Js*Q8g8;+g1dt>M@G%Gj z`Mn8X4wx?pkCIFR87eW94 delta 39 ucmZo@U}|V!+Q8z#eZq7$BLfh`Fg@7J@8HX{xy5Op@Wg-Gu#NzDY_~Me%l*;(b6rf2nI6&s{0igy+J~uNb zwYVfdFBMr4L=8k856~PWMFrWZl~6Mv@*E5jNb*qgH{aCK7UhY!F%Rtc7^Vo`$pQ{G zd_Q^}7%ub%Fw6kb1-+ZS9QHA??dUaNi0IwS=48XI!^a>DG!5cputjj!3IbhQkRD%> zpIBTHZ)9R_XfRpNPs~dI=r~ki28LviyTE{tfgffZkdN#sE>z>pEWyT!a-tds6b2f% JSMvVeol<`{=PjGGmlthgrz+}JGT_bd-x@P$qwABcYd zu|t;ugF=_XW`3n=_IhRpb_NZHlEmWd;`rpE)Wnk1l=!5|__XZQN}zc&I6$U?05by{ zTwP*uab|j6YHECD3REGoI##&4+{~QR;*$J4ghFI>EDQ<`B^h9gi%UvVD&eL<6fpy> zlz=*{0PGr=I1|tUxY5P&`Q>@3MR3hPr^3`RBCDIss4Xp~1hf)KC)n5-9Geem*@*%G Dj2~LK delta 45 zcmZo@U~Fh$+`yv1(-1J5kpT!~m`-p_7EmzQ?4xjjakGI^75l~j2gc2(w9G^S9AXUI diff --git a/pg_data/base/16384/2665 b/pg_data/base/16384/2665 index 83ac821804fad3148b796ecd662c855867ffe827..32671e38a0da063f2fb4fc766d91aaa900d197a5 100644 GIT binary patch delta 348 zcmZo@U~Fh$+`yv1lOQ;skpT#7m^#=u3n=g~$$NApFs$fsV5k7n8`=XHI)L~F5NiO% z7&-zrI{LHLGc&L=XgIVbfOIl2lq42s7sn?Tr6!i7ro<;z#;0YcR)S@i8Q3t?B^DQF zrst)m#%HF$6*4ohVyMf_%toyz8AS72q@Y@(zmIx%3u=11mo9016*3Y7o= diff --git a/pg_data/base/16384/2667 b/pg_data/base/16384/2667 index 50228a1fad345f68f61010616442d2478f8fb11d..2f2ac90448ce82534fadda5914aaac0ff331d50c 100644 GIT binary patch delta 195 zcmZo@U~Fh$+`yv1{XlR&BLfiFFePl}SKwumzc5{a;Q$bC0OAEeJOPLsfVcpN6Q(O{ zbW|6uXJ%k$5MY>>0MZBo%nWQm{>%h02h3*$@~0s2S%Cb0BtA2c--pC!0`eP>_>4e) UHJs1HpakSs!T6gWn#*$l0PnmUY5)KL delta 35 pcmZo@U~Fh$+`yv1oe(&ikpT!~m>z8ASKwvZ=yXhU^CNRP4gjnu3Eltz diff --git a/pg_data/base/16384/2673 b/pg_data/base/16384/2673 index 4725b92849c8e977664f9dac2728675722648e3e..8a99c40d0dae4d90e692755c8473d6419ec5f61c 100644 GIT binary patch delta 1888 zcmZ|OOH30%9LMq5(h#C$yD=Ub52n$B91O0W8pB~VF;*0;icnv$Dq>YsC=hYYuJa zoFwr4wgqc)isrC&&c{@dKz+!MG}M3;v_7qhA}XL|ltBgxARqD|H>yKxQB|y>6|{s> zC>UMbaaan=A|_m-X^Rl=b@StuM;6oM3wp)Ow=AOM^UNdUbId2n-!Y#sJ&X^(Wdq|h z;SKXK^4H8q$TQ4`$bs#UlyG- zFkKxe`6cow^NZvW<`>APn0JtenYRm1`Rpgzz*(9w!Mu%pT+e+v(tdDjT{2tx$#&b7 zoYVMdtJmWAr6L72;NUK^kg6>q*?6WV(5mbik?NZ(XPl?oX+o5ACVP zwTR+($mj zyp?3PR>-1MW-?d-*AUoXK%Llw9xtwW5lX_c= zIHLkuMj2$F0P-OZa-%x5hVxxTD`*L&P!Q?Ji&W%F=0lp~lX2Kn*g_+=oULv_m>1Kq z@UVr4$YtI_&p2nB~P+-Zf)>QhkbLy0R9E^$Ra@gRIix% nmc@B;gZViN_y6x5rG?JWz!+QTw1uCt@RQ^rJ^#liZQJ)38ky|6 delta 139 zcmZo@U~6b#+rZ+$qmek9kpT#Ln0Byk7I5HUnq1@bZ)3m$rp>!ty{xz^e#`<(hp-fE z=5JWZwE0An7xTn`g3U#3lV~?Ma4=i}-jJ h1VfZWF#ZsjF5tkJv;B+%qaWYK00XA&zXBN9^a1&!E0X{K diff --git a/pg_data/base/16384/2674 b/pg_data/base/16384/2674 index 02fca4342390bdcebf2528dceddf45b1afce711b..26329de28acf7cad3b63a6c127e2fb9e72be910c 100644 GIT binary patch delta 2226 zcmZ{mT~HfU6vt0UBoXkkEwx0Y!_J7xNNKnDF&X>7KqrjT$2|CeqYr(s%8S#?2&5f~4KqG4_Qn6by9rC3+?n6GXaDD( zd(Q6O4MZZINX9ec;g!kX6E4EIpQ56gZ}Uc{bxKX^=i2wxSNW)nG=14a)bc=jG~B0G znnTv=nX+KII{CBfCjPBK!Su!N4^=cUdYk-o39F-A?pPR%g0?=u(|tdT*0^UbCeq%_ zm3o&?tX`_ADzxyEE3+xBWoKRKk@ml<i}jQvk&Aa4VniTkOHAePUfUZ0r>i)(LiexCS@lKI*&PtISTqgH)sR? z2~*_sZSLTAruZd$TR1juQfM48G-JXKz}JBfOz}l!0rnym0V<0k$1~BWu2Y>zyrxb{t!KRoE z2?}38(eoe)qM#9IU=2-VK?EECCJ2CeG@1b^5ChqfB+U&Qp0Q!n9B#(qVJrp#paUP6 zk8{ePSPI1C-2xsr&b4<|g&Cd1nUbgCB)3k5bto8p1ARvYQ3CqS>i1>oXd(w;SO_5e}nIOX#1J&<9HBN1&svFdaq#=hHfD1?cDvg+I1+`C8p* z#TtzI?E*u*pvjrhMshBu0le1lIKr#h(kcdk-QiUmxRzh@2UHVCy%YwqAR; z(>JU?;8^cUU&)_GwsaYcaF1 zb(7rb5fyk;*~div;vM4Os};htq}6R#TC=h{l-&tyr)QR|^t)By9%UQF&YVh5&n~B2 z;rFmsKJZg~<7fP?LwBB=9$S|$;udUZ4MzJNdR0M2=kGi8q70o|dRToC&OnEqFvvGH zwA-OO8+zW>UQWp5-st~%`#Q~VY3FKE;x+dDqeRwQe0wJyrx!W ztPe)d;DXT$V*g^7=vnZKsztwecyX&}jaP`@7B#P-;tz@=xn41_4Pi1W$tplP5g1~u4+c|vtiV#?2F?1wG(cy9u(nx6JiZYeMs4tWK&``uUol! znR~B_v@83HxSsD)xt*&`w=!x{>f_433X35IS3BzDe;XPj`td#@FT}zxm3-d+0ZeY3 AN&o-= delta 1137 zcmZ{kO-vI}5XWb_D>PtB3AL={qiYbYp!mc@8$ZFIX*})0DC&X7$p$Vxkl1)>6H$sl z*@nY57?bM79y~NzA{;#Qh>3|kc<8~zdJC&qAhAIdXdsTmlwb?M1PQSH481@ExPioBa%a}avLvYh1e%ty(H6*qGzbG9*hj-E&_StoYhZ!|&;Ws*r&tf- zOL3~8R}r<7i$V>LE=uw(qDdM}z&0p?9EhbQ8L$zc12@=R5ZUpm7BAf*jjZAk_NzA= z-h|@?TuzQ}Sg$&`o5w8=jHL!yQ?J*GsWXym+Z( zbq0CB6M;0+M)asIoeJ_XoaREUfe~cC_2DQ-dq)voL`}|(WsS#+57;T2KI?ROC>v=w zUK(klpJ}3>ZlVt#Tzu%@;$Lv_>9A9J_rEPqHqlQs(FdF8#}7s}fb_qSeaFbG`2Ytj zR}X8LR0wHH@4=+zf-F5jgpEmU-tXikMLDELtRH?px0ws@2CLfN6`K=1EM1DC3+rtk z4_aUQIHjnFruuoa_b?!y>{h}+y1oI>(zW-qW9;CT$p%^ JGyd9N;SbD_{!IV? diff --git a/pg_data/base/16384/2678 b/pg_data/base/16384/2678 index bd0ae35cfa4449050640bd8443daac86e1ad72e4..6df278b6fe56f41d22a29cbad7d5d9fa15a75a83 100644 GIT binary patch delta 148 zcmZo@U~Fh$+`yv1{X%IzBLff^FwNM^ufWM9eq)LP!wDdM0mLhScm@#fn4+-JFU&GaRUIzrVFJ2 diff --git a/pg_data/base/16384/2696 b/pg_data/base/16384/2696 index 80e8830a1bd9d8c626746e00f17b424d6a94f431..d5ec8ea99c8b66fb4f9ef5083dca0b1eb5077475 100644 GIT binary patch delta 831 zcmY+C%}*0S6u{rC6sndo-GX00I@xX;px;GB5@=Suc;K)xG2vu3go8(doM8v2V*>V+?bw?Z??~`O@2H3n|b@@>-oO$eWL>O1kXA`w+|u8 zMY$oRzt(+BqWPCXK%C(QN8|-QAxLDiA zv-t?WHUnI*I%qY5uy@-PXw)3sszjl2_gLUb)eC!#x(Lr|p1@wI`D(i?@LQ>c&E?bZ zWTBl1`^!HCT4nc6yh@cBoMAlIV8%fK>JG_;`VpMz|4XmjUD=rmdqtZ6$E=H1DZrJv uomyPhajL&bepkDKi$B%=y(8hGqq_Is=Zc0ttbdlFb0iffp)sIp0r&+M`i*P= delta 486 zcmX}lPfHt76b112#u&s!7)0zck4&aEwaOT6Qv8#S!9_tA0~LhQ+93!nu0qx#(@h#k zh~u1%%YZ9)BLgnO;6lVz$OkATD_1i333^g#FZ{Td_wGB-^EA(suf(|e-{iP`5J@)4 zrqp<@El-LR``-)pGkfl;a+{r>`t`i~Jsqb1?YbQ$9J0wG)lqn%enfZbP~u!!8J&lM zlC~1R+qlkGrw1Hk3fs6hKH;;mJC}5MO9P52q+S=Vb4NJNZ)B`fCX-I$6hUqumxht? zx#dxv+%8JSOFZN@Vdk?lAs9eDc~l36<~j=IdRlKWq=lxrhC?%t*qr^C{N(pEpqN7H zkxw4g$t8zuvPh9mf|4fR(|}?Mo9b+9C#rsNWYj1m62XCk#@7?*g&IZ&K8A0LNR=xH z-aC<2(j@k*M?5Xs7!_U2ST>#(yr{A2N)(s;sJdcF)E0fz78vs;iEfq{TwU(TNP8Dd RV!PbG2sX8h_+Jy8{s2m7lc4|r diff --git a/pg_data/base/16384/2699 b/pg_data/base/16384/2699 index 42acad65fd385010489ac3ca6a34447c781e99f5..404da3489c3eaa1d42e75de1cf2fac7288f0c5c0 100644 GIT binary patch literal 16384 zcmeI1J8lzU6h`k52f}-J2SV`h2!vOdhz(dYP`aX_8Bx(7xlc1Yz(o`Z0g0F39mGrU z0w}VCSpw%qm|X4xkdVHSj{Z3wU5$05TaB67=Fh!?!`@lf@A|#U?>}xYTaWYjK{)-{ z$<-Y$o}c`tI~7m?6;J^cPyrQC0ToaI6;J^cPyrQC0ToaI6;J^cPyrQC0ToaI6;J^c zP=SA0U}f>L^@HQj_^U;?w)p;kbWqtGW-x^bjG=`QG%$n#)KEbQ2Hk#TM=*yOOko0J zXki2m3}FB@R8WFJ_k($u!wjY{fibi&f(C{#fEp?&!JzxjJj`JRQ<%UQS{OkCLl{5} z6_jAmedE-n0xF;aDxd-?paLqO0xF;aDxd-?paLqO0xF;aDxd-?paLqO0{=yU!Y*5B z`_1Cd7IrE5#pD-~pU1z3`E$w7CSOT@2Hy?yr;{%y?^y`Qzjp$sggL!u-SJ50c+c&X-R65a#>I?Qz7Jbr v-uEH8??ZIohv>c!{V?zQ5Z(77y6;1D--j~H`#wbXeTeS+5Z!)XOPs#|yIZ~>a@_p(r zZLc$))1p3SIi6?pFF8XNl%m|zEV;B=q`sB=*Z0Es^l2!kt@7#pwz_G~O+ zO5lxx`A+gKo|BWD5L^guTJ)8yF>=P#UB1_g{NyqjdTUXWV)7J`Q9khYLo@oODP`25 zK-ZK|i<%UZr-+R5zW=Ow8g@4o>ld_ypgJk8xXk Xgj4Y$z7rqdTk$@=`SaJ+dAG0t^a(;1 delta 35 pcmZo@U~Fh$+`yv1qYyirkpT#HFcip67EoBR(P@v&<`UZ;CIGJQ3TXfU diff --git a/pg_data/base/16384/2703 b/pg_data/base/16384/2703 index a93daba0e6ccad36d069af1be36ca0cd06ca993d..35886a83e95cb5ec8230aa791080b0506e847add 100644 GIT binary patch delta 107 zcmZo@U}|V!+Q8z#tmN-Mg|~IVL7mw-$9gRvx$oz_r!pJ&4>K$3;^xH3=jYS diff --git a/pg_data/base/16384/2704 b/pg_data/base/16384/2704 index 46146488380ac074caa1b246c1004b21a40a4a6b..7bf3ab6ffec7faa752e3d551c90d608680e6dce1 100644 GIT binary patch delta 1819 zcmY+EU1(Eh7{}kFbp~~9rrkJGrU#qG(=^&sS0y;9XJw46^dg8Gp$MMpigB|wBpC}b zNGM}wGDhsvYWf|zn<8FBvy0+3C|(t>N-w0yE~M-tcrilRMUY+WcbZn*fnWa5`#$e^ zzjB^`cG;cHHk2Cm%yN3hrFd$t^>?aA8g(aLowwBDd_-j-3L)AWsCiSZ&e^IoXQ@1- z=S*co7);PWL1ordE3=j=p?Ne8)~u~`)I(o&##HN2oQY>tj=-K_5zuBVRhzcdIxJ6{ zY7w&2YyvD|4OQriDNC(Pkwf^v3r(^pdrw~1J%2n29{wFa(CGf8U+gs@IrNhgH13F z79kJu44n}O(eO;z>cx0OEkSXdi6Ayk9yL)f)P%*vQcF;PENvSNqXz1M${4pd7EuLA z6GtHgUfR_=Y~qgT{L5RRo5HE6G&i+Q?OB>wA@)K6Zg+4s0cE3=a>D zq>?0@WsY5xHIA@x?7UnzH0d@@%SKOFMvb`KZr8nT^}*IlvB5-rriFGxde5b0p;ePj zUU=N9%b9lWq1|k0P%X~j!7JCVrG|#Lm;SreCj-8t@(&mEm(P&z+x%~NxC-4Cv#X`m z8Ra~?>O!La=s(TX!-i71+4|h=F8x@(+}pp~+oTS%NNO*s>(gf&ENRaE;kIs-pJq2)?&z)Z{n315ut^!Lz+9)uc4~-}tMz#PZ0kQ7z*fz`Z?e=Ma@|>wdE0%Kpz!O87?(FNxzJQP}a6 z8a}cPr8z!Wydw)XZ3_%y4_d)D96u?}QqE{>mdcuqWL_Ie1>ac4KZcgf)qB{T;%ShO{?I>Bb4fEC2iFz8Uj5>{amvJeGx zfFBQ3sQDEr3KQZ3G2$>7py;cNVaL>ek^0Y~HiYRjP!Ck`gH?Q?1O?*k9rNMGzcv4| z+2xYQX1Kh0(sIeG69E}NZpgk9hWI)S`JK3%xWCgc8^;53@q}Lz^pAE>qn!cSXZpp> zn4=xKOga6Gebiyd%TA1g_$fv8D9D^aU4q9C%TeNf#{U`g%UU2H-vvzZ1q^ur{lxzU zn4huFJNo34jvhH_>axb3QoMVz+mf56A&Ks&eAT7PQ`)!DJ*Q&Q7c^uOFG-xL$Qph3 ayNvR{Y27XEuCT0~JM48n+{QOP;{N~yfiVmK delta 1602 zcmXw)Ur1Yb6vt1ZtU|X%Yiw=wR87-X!#0MLKBUG!F;*&l6892H8B+G(Lmz@qp=>OaKJ0rP3w-iD=iKu< zzjMxoBo?cP?b$PxO7!rbl#TF7SEMUS4V8*z7ghwtCL|q=ODaJ_z1?5&Wa!l*g zIt?3s$xpf!k^FI3kuMjWdjo!AOr+Z9td(kOZU+{ zFwxi^G<_cfK@AWB0w{=46ko*@3Z`^Qq$J6NqzHT+h!i%FKq8bt@t#Ke_XMp16BzI% zv=!=vmXm0D4h<$Htzz;FdW#A*;L&7*15&S8*3Bb?m4MoDM{=&%J; z0S?%uIgR@|&+~kzQu_g&C8y~7_WID!z_pQKB1$^=T)@S3ZQbk-DE!yw3V+uY*-hhW|y>9ODDO}gC)}AJtRoCbb_YVz>41|a2 zkBj_$i;KNT2>U|Z+b;Qedx(Ah9{$ze%yEAmyE?9YSWOP=VE@QS_=n4*BLl|OWp<8_r?8<-gS5?tDFa~yeZ!JBOl zpGIsPyjyp37d#2-KX(^PjXkglVACRyw>65 zKI)*G2hwuvuDKD_UvF+_o+E~A$#zp@7%}6Z~Z4v zU6g6~{};ZvQj=}aha2Xki`Sw()rr6V`xl5*7RoKETC|PMW>@vfuRD3Gk`b(h&_PV0*Ez$SOSPS zfcQs;0>g|62}~OuKQY(yF^Dn%I|^l1)%(HD4!q7Z-esr np!`-Sp9jjXgz~wd{0b0X7HArsfIT delta 26 icmZ4Uh;z*&&W0_FZx&7tV-}iTC(Nj{U11R;&v^i#`3jE! diff --git a/pg_data/global/pg_control b/pg_data/global/pg_control index 90f7d7e91f198dc51cfbdf0ab8b4514c6d80c53c..f7b477f1745e91a31500bab17cf97d0c9cb7eeed 100644 GIT binary patch delta 95 zcmZp0XmFSyVYExxF_QrZ1SA$Pf@p_7^T9NTfMJmMD<%-hz);jM(MwKn8&nrW3@AIX Vayg4z!}e>N4H?hNO?F`91ppum5}E)2 delta 95 zcmZp0XmFSyVPvA58#`AKM9T<55AY&0X diff --git a/pg_data/pg_wal/000000010000000000000001 b/pg_data/pg_wal/000000010000000000000001 index a07d6f566fc79cee8dbbc7ebbe754a8ca2a9b8ca..7410465f9205652740d370f50af49b3a5fd62ea9 100644 GIT binary patch delta 777221 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 zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X z5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfI zA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnY zArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X5+WfIA|VnYArc}X m5+WfIA|VnYArc}X5+WfIA|VnYArc}X68=AyaBVbF^M3(A(fil{ delta 730126 zcmeIy>6RA)9LDj}LQ_VOrJ5{b5A7smDM}5Q$W~~xBq~uT```4XvPFxr+=g?y0Ti?~WFAXLogXi(AstmbJVUt?ZueZB_TRy8C;e z2V2uaJ=`Nb+S=CjSdX{94L#AuHZ|6hJ=Nx(ZoDl$)3a^uxt{NZUhJi|wY`^nrB~b0 z&UUrCJ-ycJz0sTP?XC9pcJH*m10C$$4)tE|ceo>c(1(50(T??TpY&;;^?6_PWrMzI zqT|)qebb3fcB*gtuJ8MyA3NPo{oI+(cCPdN(qzB(TfhJL$KQWl82M*>Z0h9he8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e& zNJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8 zAqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dY zgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo z5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjT zNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TX zBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{l zkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!H zLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*( z2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUF zBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Ex zl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e& zNJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8 zAqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dY zgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo z5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjT zNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TX zBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{l zkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!H zLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*( z2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUF zBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Ex zl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e& zNJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8 zAqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dY zgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo z5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjT zNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TX zBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{l zkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!H zLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*( z2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUF zBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Ex zl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e& zNJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8 zAqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dY zgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo z5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjT zNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TX zBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{l zkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!H zLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*( z2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUF zBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Ex zl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e& zNJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8 zAqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dY zgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo z5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjT zNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TX zBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{l zkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!H zLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*( z2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUF zBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Ex zl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e& zNJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8 zAqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dY zgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo z5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjT zNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TX zBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{l zkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!H zLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*( z2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUF zBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Ex zl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e& zNJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8 zAqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dY zgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo z5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjT zNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TX zBq0e&NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{l zkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1>8Aqh!H zLK2dYgd`*(2}wvo5|WUFBqSjTNk~Exl8}TXBq0e&NJ0{lkc1?>I3zqfI%W7j=mBCh diff --git a/pg_data/pg_xact/0000 b/pg_data/pg_xact/0000 index b23ff82b2d5b15db92403ba9a669d591162cad66..2a37dfb497bd5c2f13de964bf23325dec31dcfbf 100644 GIT binary patch delta 18 ZcmZp0XmFUYoh39hly&1ld-;hM*Z@NK2L}KE delta 15 WcmZp0XmFUYol$h-L3{a$7dQbi1_l@a